Compare commits
240 Commits
Author | SHA1 | Date |
---|---|---|
Guy Sartorelli | c90670265d | |
Steve Boyd | f1f44476f6 | |
dependabot[bot] | 88a08f5387 | |
Guy Sartorelli | b9c04c7356 | |
dependabot[bot] | f2e46f3a06 | |
dependabot[bot] | dbde364f0d | |
dependabot[bot] | 01aac4b2db | |
dependabot[bot] | 4680186ecc | |
dependabot[bot] | cf1e88af7b | |
dependabot[bot] | 38b6862f2d | |
dependabot[bot] | b519c53412 | |
dependabot[bot] | 2c6411605f | |
dependabot[bot] | b0ef21dfcc | |
dependabot[bot] | e7f7253ced | |
dependabot[bot] | 8374146d8c | |
dependabot[bot] | 6601755b88 | |
dependabot[bot] | 4dc6296962 | |
dependabot[bot] | 172ed0f6d8 | |
dependabot[bot] | 968feb9385 | |
dependabot[bot] | d68e4e496e | |
dependabot[bot] | 13d5ce8f49 | |
Guy Sartorelli | 58f3dee7af | |
Guy Sartorelli | 6a47857687 | |
Steve Boyd | 92ec942161 | |
Guy Sartorelli | 92ce27762a | |
Steve Boyd | 143c61fef9 | |
Guy Sartorelli | 4401d768f5 | |
Steve Boyd | e038dc3a6d | |
Steve Boyd | 793a5476ec | |
Guy Sartorelli | c62be20b57 | |
Guy Sartorelli | afc42e0495 | |
Steve Boyd | ebd634d994 | |
Guy Sartorelli | 563f253f36 | |
Guy Sartorelli | dfcc4ce482 | |
Sabina Talipova | 2f7109ac52 | |
Sabina Talipova | 1ec807ccbe | |
Guy Sartorelli | 1c5ae8a047 | |
Niklas Forsdahl | d420a29e9f | |
Steve Boyd | ece0e209ef | |
Steve Boyd | 81f34cdd7b | |
dependabot[bot] | c34bba4508 | |
dependabot[bot] | 8e58660029 | |
dependabot[bot] | b265fb622b | |
dependabot[bot] | 7825986aba | |
dependabot[bot] | 1027fc319e | |
dependabot[bot] | 0438493a97 | |
dependabot[bot] | b99a6da26d | |
dependabot[bot] | 8295483734 | |
dependabot[bot] | d756579486 | |
Steve Boyd | d51a26a872 | |
Steve Boyd | 4e82c461de | |
Steve Boyd | a2aa7475a5 | |
dependabot[bot] | 94f21a958d | |
dependabot[bot] | b4816ab02c | |
Loz Calver | ff9127739b | |
Robbie Averill | 3be003218c | |
Thomas Portelange | b00987b735 | |
Loz Calver | 7652fee82f | |
dependabot[bot] | d8f33e0c98 | |
Thierry François | 7de4f77574 | |
Dylan Wagstaff | 7f871a7cfa | |
Garion Herman | 2c4587b0d9 | |
Robbie Averill | 5581c11df8 | |
Morven Lewis-Everley | af8d20e93a | |
Martin D | 52d95ae82c | |
Robbie Averill | 148d5efcea | |
Robbie Averill | b9dad64ca8 | |
Thierry François | 7f2045e7aa | |
Thierry François | cc2ff3c53c | |
Thierry François | bc2b317a35 | |
Thierry François | a1dcbc00e6 | |
Thierry François | 482139fd35 | |
Thierry François | e26ad4548b | |
Ralph Slooten | 070d47f487 | |
Thierry François | 3d3690baec | |
Thierry François | de2d3234f4 | |
Thierry François | ea0359b76f | |
Thierry François | cb123a1793 | |
Thierry François | 2eb86854d7 | |
Thierry François | 9e9cb46d74 | |
Thierry François | b97971967f | |
Thierry François | 1bef4ab9f1 | |
Thierry François | 2b865a8e3b | |
Thierry François | d4726cb5fe | |
Thierry François | a0a5c11d0a | |
Thierry François | 14ca2b227d | |
Thierry François | 03bd0d1395 | |
Thierry François | ef4b447c05 | |
Thierry François | e185eed537 | |
Thierry François | dcde5cc7e6 | |
Thierry François | c4ae2fdab2 | |
Thierry François | ce6b703240 | |
Thierry François | c1c0826718 | |
Thierry François | b081d68b92 | |
Thierry François | f765055a92 | |
Thierry François | 2c40a16198 | |
Ralph Slooten | c5d467ba8f | |
Robbie Averill | 0c9b696b8d | |
Thierry François | 8bf9b620b0 | |
Thierry François | aa9bf472c6 | |
Thierry François | efb89e5b64 | |
Thierry François | 569350ca66 | |
Thierry François | 1b450a5455 | |
Thierry François | 5711998ef2 | |
Thierry François | 1b3585e51e | |
Thierry François | 0ed46ea036 | |
Thierry François | 72aecb7f8f | |
Thierry François | 825abc77a8 | |
Thierry François | 84ea89017b | |
Thierry François | 586d71a419 | |
Thierry François | 9ba6465faa | |
Thierry François | 52e9e06703 | |
Thierry François | 05f93e098d | |
Robbie Averill | 742fa6d292 | |
Robbie Averill | d6b816cb7f | |
Ralph Slooten | cbf32c478c | |
Philipp Staender | fc86512ec9 | |
Philipp Staender | 5d8a1c3abd | |
Robbie Averill | 182109d890 | |
colymba | e35e62adda | |
Robbie Averill | 7221897f27 | |
colymba | 0e6f2e6efb | |
Bram de Leeuw | caed3813ee | |
Thierry François | 8c0598a9ba | |
Thomas Portelange | 9b5a452d01 | |
Thierry François | 29482dbd17 | |
Thierry François | 825b989ad6 | |
Otis Wright | df71f1ffbf | |
Thierry François | 9c5a2c2b5d | |
helpfulrobot | 9bceb9077f | |
Thierry François | f586f812be | |
Gordon Anderson | 22307f6b8f | |
helpfulrobot | c2e2a700e5 | |
Thierry François | f924e7d503 | |
Thierry François | af7524efd1 | |
Thierry François | ef0f9fbcb8 | |
Thierry François | 8dcb570f54 | |
helpfulrobot | baf52587c6 | |
Peter Thaleikis | bbc0215635 | |
Thierry François | 7e98d488e5 | |
Christopher Darling | 1730461da0 | |
Thierry François | 79cead517f | |
Damian Mooyman | 8af962a65d | |
Thierry François | 4513f63ed3 | |
Peter Schiffer | c2168f5591 | |
Thierry François | f1035f06a3 | |
Jonathon Menz | 2793709250 | |
Thierry François | 9592fa0561 | |
Thierry François | 3335105ee2 | |
Simon Welsh | 42eeaa3527 | |
Thierry François | f0840f453c | |
Thierry François | e3d5c78476 | |
Phill Price | 2fe6464bb8 | |
Thierry François | ef5d260a7c | |
Thierry François | 188346d520 | |
Thierry François | d6a1ab8cb6 | |
Damian Mooyman | 4ac7701c2d | |
Thierry François | 1c0432c74b | |
Thierry François | 1ceee59360 | |
Thierry François | 4a349987a4 | |
Thierry François | c72310ff61 | |
Thierry François | aaaca90a93 | |
Thierry François | f4f0ac096e | |
Thierry François | 1010c9be6f | |
Thierry François | 0cbbe2b1fc | |
Corey Sewell | 4cc7da8b7e | |
Thierry François | 013a4fde7b | |
Thierry François | 1906afcba4 | |
James Cocker | c599f876af | |
Thierry François | 7d74977491 | |
Tom Densham | 20c9864cca | |
Thierry François | c25dcbfdea | |
Thierry François | e41282b3d2 | |
James Cocker | 170d4bb72d | |
Thierry François | b9d8cd9b22 | |
Christopher Darling | 85ce9c7004 | |
colymba | 77a3c65766 | |
colymba | 1c4e0fd239 | |
Thierry François | 619346fc32 | |
Thierry François | 9a56bdb95a | |
daniquilez | 0254221fa9 | |
daniquilez | e69253030c | |
Thierry François | de7be9d8af | |
Thierry François | 01e355def0 | |
wernerkrauss | ef5a26a4df | |
James Cocker | e498bb8760 | |
colymba | 1fefcad1e3 | |
colymba | 8836b2e389 | |
Thierry Francois | 38d05df2ec | |
Thierry Francois | 5437424b7e | |
Thierry Francois | 06b077772c | |
Thierry Francois | bfd73ffb2e | |
Thierry Francois | 2fe824f2c8 | |
Thierry Francois | c880187461 | |
Thierry Francois | c612243482 | |
Thierry Francois | f8b90af40f | |
Thierry Francois | fad9121dd1 | |
Thierry Francois | ec7df6712e | |
Thierry Francois | e2b15ad30c | |
Thierry Francois | 4a17d7d74a | |
Thierry Francois | e621f4895f | |
Thierry Francois | 00b936baa6 | |
Thierry Francois | b16ee50233 | |
colymba | c3af2d392d | |
colymba | 2366df49bd | |
colymba | 2b692c19a2 | |
colymba | 84d97c5106 | |
colymba | 61b90d2aed | |
colymba | 3092972d8e | |
colymba | c1c99e6a50 | |
colymba | 043f889249 | |
colymba | 699fa6712d | |
colymba | 20350d3f35 | |
colymba | d141765752 | |
colymba | a726cce755 | |
colymba | ade47d5e80 | |
colymba | 198b0c05d9 | |
Thierry Francois | 3f5d12119d | |
Thierry François | f259a4af99 | |
daniquilez | 4f4d1870ca | |
colymba | 43c8b0ee73 | |
colymba | 9049bd3970 | |
colymba | cc8aa9e951 | |
Tomas Bilek | cb69f71362 | |
Thierry François | 41fe01c2a5 | |
Werner Krauss | a36a4907db | |
colymba | 0e30789040 | |
colymba | e0d2c311b5 | |
Thierry François | 4de284d1c9 | |
Mellisa Hankins | 2958af7d92 | |
Mellisa Hankins | 9a4d204c97 | |
colymba | 7332ed0b8c | |
colymba | ac84765dc1 | |
colymba | 06e82405e5 | |
colymba | 425cf9cffe | |
colymba | 0eab8d9659 | |
colymba | 767e151c06 | |
colymba | f54f0ce223 | |
colymba | d01b27c589 | |
colymba | 2ee566a99e |
|
@ -0,0 +1,20 @@
|
|||
# For more information about the properties used in this file,
|
||||
# please see the EditorConfig documentation:
|
||||
# http://editorconfig.org
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[package.json]
|
||||
indent_size = 2
|
||||
|
||||
[*.{yml,js,scss}]
|
||||
indent_size = 2
|
||||
|
||||
# The indent size used in the package.json file cannot be changed:
|
||||
# https://github.com/npm/npm/pull/3180#issuecomment-16336516
|
|
@ -0,0 +1,2 @@
|
|||
client/dist/
|
||||
client/lang/
|
|
@ -0,0 +1 @@
|
|||
module.exports = require('@silverstripe/eslint-config/.eslintrc');
|
|
@ -0,0 +1 @@
|
|||
/.gitignore export-ignore
|
|
@ -0,0 +1 @@
|
|||
<!-- Blank templates are for use by maintainers only! If you aren't a maintainer, please go back and pick one of the issue templates. -->
|
|
@ -0,0 +1,72 @@
|
|||
name: 🪳 Bug Report
|
||||
description: Tell us if something isn't working the way it's supposed to
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
We strongly encourage you to [submit a pull request](https://docs.silverstripe.org/en/contributing/code/) which fixes the issue.
|
||||
Bug reports which are accompanied with a pull request are a lot more likely to be resolved quickly.
|
||||
- type: input
|
||||
id: affected-versions
|
||||
attributes:
|
||||
label: Module version(s) affected
|
||||
description: |
|
||||
What version of _this module_ have you reproduced this bug on?
|
||||
Run `composer info` to see the specific version of each module installed in your project.
|
||||
If you don't have access to that, check inside the help menu in the bottom left of the CMS.
|
||||
placeholder: x.y.z
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: A clear and concise description of the problem
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: how-to-reproduce
|
||||
attributes:
|
||||
label: How to reproduce
|
||||
description: |
|
||||
⚠️ This is the most important part of the report ⚠️
|
||||
Without a way to easily reproduce your issue, there is little chance we will be able to help you and work on a fix.
|
||||
- Please, take the time to show us some code and/or configuration that is needed for others to reproduce the problem easily.
|
||||
- If the bug is too complex to reproduce with some short code samples, please reproduce it in a public repository and provide a link to the repository along with steps for setting up and reproducing the bug using that repository.
|
||||
- If part of the bug includes an error or exception, please provide a full stack trace.
|
||||
- If any user interaction is required to reproduce the bug, please add an ordered list of steps that are required to reproduce it.
|
||||
- Be as clear as you can, but don't miss any steps out. Simply saying "create a page" is less useful than guiding us through the steps you're taking to create a page, for example.
|
||||
placeholder: |
|
||||
|
||||
#### Code sample
|
||||
```php
|
||||
|
||||
```
|
||||
|
||||
#### Reproduction steps
|
||||
1.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: possible-solution
|
||||
attributes:
|
||||
label: Possible Solution
|
||||
description: |
|
||||
*Optional: only if you have suggestions on a fix/reason for the bug*
|
||||
Please consider [submitting a pull request](https://docs.silverstripe.org/en/contributing/code/) with your solution! It helps get faster feedback and greatly increases the chance of the bug being fixed.
|
||||
- type: textarea
|
||||
id: additional-context
|
||||
attributes:
|
||||
label: Additional Context
|
||||
description: "*Optional: any other context about the problem: log messages, screenshots, etc.*"
|
||||
- type: checkboxes
|
||||
id: validations
|
||||
attributes:
|
||||
label: Validations
|
||||
description: "Before submitting the issue, please make sure you do the following:"
|
||||
options:
|
||||
- label: Check that there isn't already an issue that reports the same bug
|
||||
required: true
|
||||
- label: Double check that your reproduction steps work in a fresh installation of [`silverstripe/installer`](https://github.com/silverstripe/silverstripe-installer) (with any code examples you've provided)
|
||||
required: true
|
|
@ -0,0 +1,35 @@
|
|||
name: 🚀 Feature Request
|
||||
description: Submit a feature request (but only if you're planning on implementing it)
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please only submit feature requests if you plan on implementing the feature yourself.
|
||||
See the [contributing code documentation](https://docs.silverstripe.org/en/contributing/code/#make-or-find-a-github-issue) for more guidelines about submitting feature requests.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: A clear and concise description of the new feature, and why it belongs in core
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: more-info
|
||||
attributes:
|
||||
label: Additional context or points of discussion
|
||||
description: |
|
||||
*Optional: Any additional context, points of discussion, etc that might help validate and refine your idea*
|
||||
- type: checkboxes
|
||||
id: validations
|
||||
attributes:
|
||||
label: Validations
|
||||
description: "Before submitting the issue, please confirm the following:"
|
||||
options:
|
||||
- label: You intend to implement the feature yourself
|
||||
required: true
|
||||
- label: You have read the [contributing guide](https://docs.silverstripe.org/en/contributing/code/)
|
||||
required: true
|
||||
- label: You strongly believe this feature should be in core, rather than being its own community module
|
||||
required: true
|
||||
- label: You have checked for existing issues or pull requests related to this feature (and didn't find any)
|
||||
required: true
|
|
@ -0,0 +1,8 @@
|
|||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: Security Vulnerability
|
||||
url: https://docs.silverstripe.org/en/contributing/issues_and_bugs/#reporting-security-issues
|
||||
about: ⚠️ We do not use GitHub issues to track security vulnerability reports. Click "open" on the right to see how to report security vulnerabilities.
|
||||
- name: Support Question
|
||||
url: https://www.silverstripe.org/community/
|
||||
about: We use GitHub issues only to discuss bugs and new features. For support questions, please use one of the support options available in our community channels.
|
|
@ -0,0 +1,39 @@
|
|||
<!--
|
||||
Thanks for contributing, you're awesome! ⭐
|
||||
|
||||
Please read https://docs.silverstripe.org/en/contributing/code/ if you haven't contributed to this project recently.
|
||||
-->
|
||||
## Description
|
||||
<!--
|
||||
Please describe expected and observed behaviour, and what you're fixing.
|
||||
For visual fixes, please include tested browsers and screenshots.
|
||||
-->
|
||||
|
||||
## Manual testing steps
|
||||
<!--
|
||||
Include any manual testing steps here which a reviewer can perform to validate your pull request works correctly.
|
||||
Note that this DOES NOT replace unit or end-to-end tests.
|
||||
-->
|
||||
|
||||
## Issues
|
||||
<!--
|
||||
List all issues here that this pull request fixes/resolves.
|
||||
If there is no issue already, create a new one! You must link your pull request to at least one issue.
|
||||
-->
|
||||
- #
|
||||
|
||||
## Pull request checklist
|
||||
<!--
|
||||
PLEASE check each of these to ensure you have done everything you need to do!
|
||||
If there's something in this list you need help with, please ask so that we can assist you.
|
||||
-->
|
||||
- [ ] The target branch is correct
|
||||
- See [picking the right version](https://docs.silverstripe.org/en/contributing/code/#picking-the-right-version)
|
||||
- [ ] All commits are relevant to the purpose of the PR (e.g. no debug statements, unrelated refactoring, or arbitrary linting)
|
||||
- Small amounts of additional linting are usually okay, but if it makes it hard to concentrate on the relevant changes, ask for the unrelated changes to be reverted, and submitted as a separate PR.
|
||||
- [ ] The commit messages follow our [commit message guidelines](https://docs.silverstripe.org/en/contributing/code/#commit-messages)
|
||||
- [ ] The PR follows our [contribution guidelines](https://docs.silverstripe.org/en/contributing/code/)
|
||||
- [ ] Code changes follow our [coding conventions](https://docs.silverstripe.org/en/contributing/coding_conventions/)
|
||||
- [ ] This change is covered with tests (or tests aren't necessary for this change)
|
||||
- [ ] Any relevant User Help/Developer documentation is updated; for impactful changes, information is added to the changelog for the intended release
|
||||
- [ ] CI is green
|
|
@ -0,0 +1,11 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
name: CI
|
||||
uses: silverstripe/gha-ci/.github/workflows/ci.yml@v1
|
|
@ -0,0 +1,16 @@
|
|||
name: Dispatch CI
|
||||
|
||||
on:
|
||||
# At 4:10 PM UTC, only on Sunday and Monday
|
||||
schedule:
|
||||
- cron: '10 16 * * 0,1'
|
||||
|
||||
jobs:
|
||||
dispatch-ci:
|
||||
name: Dispatch CI
|
||||
# Only run cron on the colymba account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Dispatch CI
|
||||
uses: silverstripe/gha-dispatch-ci@v1
|
|
@ -0,0 +1,17 @@
|
|||
name: Keepalive
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# The 4th of every month at 10:50am UTC
|
||||
schedule:
|
||||
- cron: '50 10 4 * *'
|
||||
|
||||
jobs:
|
||||
keepalive:
|
||||
name: Keepalive
|
||||
# Only run cron on the colymba account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Keepalive
|
||||
uses: silverstripe/gha-keepalive@v1
|
|
@ -0,0 +1,17 @@
|
|||
name: Update JS
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# Run on a schedule of once per quarter
|
||||
schedule:
|
||||
- cron: '0 0 1 */3 *'
|
||||
|
||||
jobs:
|
||||
update-js:
|
||||
name: Update JS
|
||||
# Only run cron on the colymba account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Update JS
|
||||
uses: silverstripe/gha-update-js@v1
|
|
@ -0,0 +1,16 @@
|
|||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
# Every Monday at 12:20pm UTC
|
||||
schedule:
|
||||
- cron: '20 12 * * 1'
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
name: CI
|
||||
# Only run cron on the colymba account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule')
|
||||
uses: silverstripe/gha-ci/.github/workflows/ci.yml@v1
|
|
@ -0,0 +1,21 @@
|
|||
name: Dispatch CI
|
||||
|
||||
on:
|
||||
# At 6:30 AM UTC, only on Monday and Tuesday
|
||||
schedule:
|
||||
- cron: '30 6 * * 1,2'
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
dispatch-ci:
|
||||
name: Dispatch CI
|
||||
# Only run cron on the colymba account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
actions: write
|
||||
steps:
|
||||
- name: Dispatch CI
|
||||
uses: silverstripe/gha-dispatch-ci@v1
|
|
@ -0,0 +1,17 @@
|
|||
name: Keepalive
|
||||
|
||||
on:
|
||||
# At 11:55 PM UTC, on day 20 of the month
|
||||
schedule:
|
||||
- cron: '55 23 20 * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
keepalive:
|
||||
name: Keepalive
|
||||
# Only run cron on the colymba account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Keepalive
|
||||
uses: silverstripe/gha-keepalive@v1
|
|
@ -0,0 +1,22 @@
|
|||
name: Merge-up
|
||||
|
||||
on:
|
||||
# At 6:30 AM UTC, only on Friday
|
||||
schedule:
|
||||
- cron: '30 6 * * 5'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
merge-up:
|
||||
name: Merge-up
|
||||
# Only run cron on the colymba account
|
||||
if: (github.event_name == 'schedule' && github.repository_owner == 'colymba') || (github.event_name != 'schedule')
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: write
|
||||
actions: write
|
||||
steps:
|
||||
- name: Merge-up
|
||||
uses: silverstripe/gha-merge-up@v1
|
|
@ -0,0 +1,9 @@
|
|||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
.transifexrc
|
||||
**/css/bourbon
|
||||
**/.sass-cache
|
||||
node_modules/
|
|
@ -0,0 +1,178 @@
|
|||
# sass-lint config to match the AirBNB style guide
|
||||
files:
|
||||
include: '**/client/src/**/*.scss'
|
||||
ignore:
|
||||
- 'client/src/styles/legacy/*'
|
||||
- 'admin/client/src/styles/legacy/*'
|
||||
options:
|
||||
formatter: stylish
|
||||
merge-default-rules: false
|
||||
rules:
|
||||
# Warnings
|
||||
# Things that require actual refactoring are marked as warnings
|
||||
class-name-format:
|
||||
- 1
|
||||
- convention: hyphenatedbem
|
||||
placeholder-name-format:
|
||||
- 1
|
||||
- convention: hyphenatedlowercase
|
||||
nesting-depth:
|
||||
- 1
|
||||
- max-depth: 3
|
||||
no-ids: 1
|
||||
no-important: 1
|
||||
no-misspelled-properties:
|
||||
- 1
|
||||
- extra-properties:
|
||||
- "-moz-border-radius-topleft"
|
||||
- "-moz-border-radius-topright"
|
||||
- "-moz-border-radius-bottomleft"
|
||||
- "-moz-border-radius-bottomright"
|
||||
variable-name-format:
|
||||
- 1
|
||||
- allow-leading-underscore: true
|
||||
convention: hyphenatedlowercase
|
||||
no-extends: 1
|
||||
|
||||
# Warnings: these things are preferential rather than mandatory
|
||||
no-css-comments: 1
|
||||
|
||||
# Errors
|
||||
# Things that can be easily fixed are marked as errors
|
||||
indentation:
|
||||
- 2
|
||||
- size: 2
|
||||
final-newline:
|
||||
- 2
|
||||
- include: true
|
||||
no-trailing-whitespace: 2
|
||||
border-zero:
|
||||
- 2
|
||||
- convention: '0'
|
||||
brace-style:
|
||||
- 2
|
||||
- allow-single-line: true
|
||||
clean-import-paths:
|
||||
- 2
|
||||
- filename-extension: false
|
||||
leading-underscore: false
|
||||
no-debug: 2
|
||||
no-empty-rulesets: 2
|
||||
no-invalid-hex: 2
|
||||
no-mergeable-selectors: 2
|
||||
# no-qualifying-elements:
|
||||
# - 1
|
||||
# - allow-element-with-attribute: false
|
||||
# allow-element-with-class: false
|
||||
# allow-element-with-id: false
|
||||
no-trailing-zero: 2
|
||||
no-url-protocols: 2
|
||||
quotes:
|
||||
- 2
|
||||
- style: double
|
||||
space-after-bang:
|
||||
- 2
|
||||
- include: false
|
||||
space-after-colon:
|
||||
- 2
|
||||
- include: true
|
||||
space-after-comma:
|
||||
- 2
|
||||
- include: true
|
||||
space-before-bang:
|
||||
- 2
|
||||
- include: true
|
||||
space-before-brace:
|
||||
- 2
|
||||
- include: true
|
||||
space-before-colon: 2
|
||||
space-between-parens:
|
||||
- 2
|
||||
- include: false
|
||||
trailing-semicolon: 2
|
||||
url-quotes: 2
|
||||
zero-unit: 2
|
||||
single-line-per-selector: 2
|
||||
one-declaration-per-line: 2
|
||||
empty-line-between-blocks:
|
||||
- 2
|
||||
- ignore-single-line-rulesets: true
|
||||
|
||||
|
||||
# Missing rules
|
||||
# There are no sass-lint rules for the following AirBNB style items, but thess
|
||||
# - Put comments on their own line
|
||||
# - Put property delcarations before mixins
|
||||
|
||||
# Disabled rules
|
||||
|
||||
# These are other rules that we may wish to consider using in the future
|
||||
# They are not part of the AirBNB CSS standard but they would introduce some strictness
|
||||
# bem-depth: 0
|
||||
# variable-for-property: 0
|
||||
# no-transition-all: 0
|
||||
# hex-length:
|
||||
# - 1
|
||||
# - style: short
|
||||
# hex-notation:
|
||||
# - 1
|
||||
# - style: lowercase
|
||||
# property-units:
|
||||
# - 1
|
||||
# - global:
|
||||
# - ch
|
||||
# - em
|
||||
# - ex
|
||||
# - rem
|
||||
# - cm
|
||||
# - in
|
||||
# - mm
|
||||
# - pc
|
||||
# - pt
|
||||
# - px
|
||||
# - q
|
||||
# - vh
|
||||
# - vw
|
||||
# - vmin
|
||||
# - vmax
|
||||
# - deg
|
||||
# - grad
|
||||
# - rad
|
||||
# - turn
|
||||
# - ms
|
||||
# - s
|
||||
# - Hz
|
||||
# - kHz
|
||||
# - dpi
|
||||
# - dpcm
|
||||
# - dppx
|
||||
# - '%'
|
||||
# per-property: {}
|
||||
# force-attribute-nesting: 1
|
||||
# force-element-nesting: 1
|
||||
# force-pseudo-nesting: 1
|
||||
# function-name-format:
|
||||
# - 1
|
||||
# - allow-leading-underscore: true
|
||||
# convention: hyphenatedlowercase
|
||||
# no-color-literals: 1
|
||||
# no-duplicate-properties: 1
|
||||
# mixin-name-format:
|
||||
# - 1
|
||||
# - allow-leading-underscore: true
|
||||
# convention: hyphenatedlowercase
|
||||
# shorthand-values:
|
||||
# - 1
|
||||
# - allowed-shorthands:
|
||||
# - 1
|
||||
# - 2
|
||||
# - 3
|
||||
# leading-zero:
|
||||
# - 1
|
||||
# - include: false
|
||||
# no-vendor-prefixes:
|
||||
# - 1
|
||||
# - additional-identifiers: []
|
||||
# excluded-identifiers: []
|
||||
# placeholder-in-extend: 1
|
||||
# no-color-keywords: 2
|
|
@ -0,0 +1,14 @@
|
|||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[o:silverstripe:p:silverstripe-gridfield-bulk-editing-tools:r:master]
|
||||
file_filter = lang/<lang>.yml
|
||||
source_file = lang/en.yml
|
||||
source_lang = en
|
||||
type = YML
|
||||
|
||||
[o:silverstripe:p:silverstripe-gridfield-bulk-editing-tools:r:master-js]
|
||||
file_filter = client/src/lang/<lang>.json
|
||||
source_file = client/src/lang/en.json
|
||||
source_lang = en
|
||||
type = KEYVALUEJSON
|
|
@ -0,0 +1,10 @@
|
|||
mappings:
|
||||
GridFieldBulkActionDeleteHandler: Colymba\BulkManager\BulkAction\DeleteHandler
|
||||
GridFieldBulkActionEditHandler: Colymba\BulkManager\BulkAction\EditHandler
|
||||
GridFieldBulkActionHandler: Colymba\BulkManager\BulkAction\Handler
|
||||
GridFieldBulkActionUnlinkHandler: Colymba\BulkManager\BulkAction\UnlinkHandler
|
||||
GridFieldBulkManager: Colymba\BulkManager\BulkManager
|
||||
BulkUploadField: Colymba\BulkUpload\BulkUploadField
|
||||
GridFieldBulkImageUpload: Colymba\BulkUpload\GridFieldBulkImageUpload
|
||||
GridFieldBulkUpload: Colymba\BulkUpload\BulkUploader
|
||||
GridFieldBulkUpload_Request: Colymba\BulkUpload\BulkUploadHandler
|
|
@ -0,0 +1,29 @@
|
|||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2018, Thierry François (colymba)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
138
README.md
138
README.md
|
@ -1,105 +1,77 @@
|
|||
:warning: I haven't been able to give as much love as I would like to these repos as they deserve. If you have time and are interested to help maintain them, give me a shout. :rotating_light:
|
||||
|
||||
GridField Bulk Editing Tools
|
||||
============================
|
||||
SilverStripe 3 GridField component set to facilitate bulk image upload, bulk record editing, unlinking and deleting.
|
||||
Included are:
|
||||
* [Bulk Image Upload](#bulk-image-upload): Bulk images upload and on the fly fields editing
|
||||
* [Bulk Manager](#bulk-manager): Delete and unlink multiple records at once as well as editing records in bulk
|
||||
|
||||
[![Latest Stable Version](https://poser.pugx.org/colymba/gridfield-bulk-editing-tools/v/stable.svg)](https://github.com/colymba/GridFieldBulkEditingTools/releases)
|
||||
[![Latest Unstable Version](https://poser.pugx.org/colymba/gridfield-bulk-editing-tools/v/unstable.svg)](https://github.com/colymba/GridFieldBulkEditingTools/tree/master)
|
||||
[![License](https://poser.pugx.org/colymba/gridfield-bulk-editing-tools/license.svg)](#license-and-copyright)
|
||||
|
||||
Set of SilverStripe 4 GridField components to facilitate bulk file upload & record editing.
|
||||
|
||||
|
||||
## Components:
|
||||
* [Bulk Upload](#bulk-upload): Upload multiple images or files at once into DataObjects
|
||||
* [Bulk Manager](#bulk-manager): Delete, Unlink, Edit (and more) multiple records at once
|
||||
|
||||
## Requirements
|
||||
* SilverStripe 3.1 (version master / 1.+)
|
||||
* Silverstripe 3.0 (version [0.5](https://github.com/colymba/GridFieldBulkEditingTools/tree/0.5))
|
||||
|
||||
## Development notes
|
||||
The master branch will try to be compatible with the latest SilverStripe release/pre-release. Please submit pull request against the master branch. Older branches are kept for compatibility but may not be maintained.
|
||||
|
||||
## Preview
|
||||
![preview](screenshots/preview.png)
|
||||
[More screenshots here.](screenshots)
|
||||
* SilverStripe 4.0 (master / 3.+)
|
||||
* SilverStripe 3.1 (version 2.+ / 1.+)
|
||||
* Silverstripe 3.0 (version 0.5)
|
||||
|
||||
## Installation
|
||||
* Download and copy module in SilverStripe root directory and name it whatever you want
|
||||
* Run dev/build?flush=all to regenerate the manifest
|
||||
* run ?flush=all in CMS to force the templates to regenerate
|
||||
`composer require colymba/gridfield-bulk-editing-tools`
|
||||
|
||||
## Bulk Image Upload
|
||||
A component for uploading images in bulk into the managed Model relation, with option to edit fields on the fly.
|
||||
## 3.0.0 deprecations
|
||||
The 3.x versions of this module require SilverStripe 4.x+, and PHP 5.5 or above:
|
||||
|
||||
### Usage 1
|
||||
Simplest usage, add the component to your GridField as below. The component will find the first Image has_one relation on the managed Model and the record's editable CMS fields
|
||||
|
||||
$config->addComponent(new GridFieldBulkImageUpload());
|
||||
* Namespaces are implemented, and some class names have changed (see `.upgrade.yml` for mapping)
|
||||
|
||||
### Usage 2
|
||||
You can specify which Image field to use and which fields are editable from the managed Model
|
||||
$fileRelationName (string): The name of the File/Image field to use (If your relation is set has 'MyImage' => 'Image', the parameter should be 'MyImage')
|
||||
$editableFields (array): list of db fields name as string that will be editable like: array('myTextField', 'myVarcharField', 'myEnumField')
|
||||
|
||||
$config->addComponent(new GridFieldBulkImageUpload( $fileRelationName, $editableFields ));
|
||||
## 2.0.0 deprecations
|
||||
Major deprections in latest 2.0.0 release:
|
||||
* The `GridFieldBulkImageUpload` has been renamed to `GridFieldBulkUpload`.
|
||||
* `onBulkImageUpload` callback has been renamed to `onBulkUpload`
|
||||
|
||||
### Configuration
|
||||
The component's option can be configurated individually or in bulk through the 'config' functions like this:
|
||||
## Bulk Upload
|
||||
Upload multiple images or files at once into DataObjects. Perfect for galleries and the like.
|
||||
|
||||
$config->getComponentByType('GridFieldBulkImageUpload')->setConfig( $reference, $value );
|
||||
|
||||
#### $config overview
|
||||
The available configuration options are:
|
||||
* 'fileRelationName' : sets the name of the File/Image field of the managed Model (i.e. 'MyImage')
|
||||
* 'editableFields' : array of string referencing specific CMS fields available for editing
|
||||
* 'fieldsClassBlacklist' : array of string referencing types (ClassName) of fields that wont be available for editing
|
||||
* 'fieldsNameBlacklist' : array of string referencing the names of fields that wont be available for editing
|
||||
* 'folderName' : name of the folder where the images should be uploaded
|
||||
* 'sequentialUploads' : boolean, if true files will be uploaded one by one
|
||||
* 'maxFileSize' : integer, maximum upload file size in bytes
|
||||
```php
|
||||
$config->addComponent(new \Colymba\BulkUpload\BulkUploader());
|
||||
```
|
||||
|
||||
Each option can be set through the component's method setConfig( $reference, $value )
|
||||
In addition, some configuration option can be set more specifically via individual methods:
|
||||
* addFieldNameToBlacklist( $fieldName )
|
||||
* addClassToBlacklist( $className )
|
||||
* removeFieldNameFromBlacklist( $fieldName )
|
||||
* removeClassFromBlacklist( $className )
|
||||
### Versioned
|
||||
By default `BulkUploader` will write to the current stage (most likely Draft). To auto publish your `DataObject`, use the following param or config:
|
||||
```php
|
||||
$config->addComponent(new \Colymba\BulkUpload\BulkUploader(null, null, true));
|
||||
```
|
||||
OR
|
||||
```php
|
||||
$config->getComponentByType('Colymba\\BulkUpload\\BulkUploader')->setAutoPublishDataObject(true);
|
||||
```
|
||||
|
||||
Your `DataObject` should `own` the `Image`/`File` relation so it is published at the same time: [See SilverStripe DataObject ownership DOC](https://github.com/silverstripe/silverstripe-framework/blob/4.0/docs/en/02_Developer_Guides/00_Model/10_Versioning.md#dataobject-ownership)
|
||||
|
||||
See [BULK_UPLOAD.md](docs/en/BULK_UPLOAD.md) for detailed configuration.
|
||||
|
||||
## Bulk Manager
|
||||
A component for Editing, deleting and unlinking records on the fly
|
||||
Perform actions on multiple records straight from the GridField
|
||||
|
||||
### Usage
|
||||
Add GridFieldBulkEditingTools component if not done already and simply add GridFieldBulkImageUpload
|
||||
|
||||
$config->addComponent(new GridFieldBulkManager());
|
||||
|
||||
### Configuration
|
||||
The component's option can be configurated individually or in bulk through the 'config' functions like this:
|
||||
```php
|
||||
$config->addComponent(new \Colymba\BulkManager\BulkManager());
|
||||
```
|
||||
|
||||
$config->getComponentByType('GridFieldBulkManager')->setConfig( $reference, $value );
|
||||
|
||||
#### $config overview
|
||||
The available configuration options are:
|
||||
* 'editableFields' : array of string referencing specific CMS fields available for editing
|
||||
* 'fieldsClassBlacklist' : array of string referencing types (ClassName) of fields that wont be available for editing
|
||||
* 'fieldsNameBlacklist' : array of string referencing the names of fields that wont be available for editing
|
||||
See [BULK_MANAGER.md](docs/en//BULK_MANAGER.md) for detailed configuration.
|
||||
|
||||
## Notes
|
||||
* The Record edit form uses the Model's getCMSFields()
|
||||
## Tooling
|
||||
* `npm run watch` for development
|
||||
* `npm run dist` before pushing to the repo
|
||||
|
||||
### @TODO
|
||||
## Translations
|
||||
|
||||
### Known bug
|
||||
* When editing fields, if the last field of the edit form is a drop down or similar, the drop down menu is cropped off
|
||||
Translations of the natural language strings are managed through a third party translation interface, transifex.com.
|
||||
|
||||
### Bulk Image Upload
|
||||
* Add individual actions for each upload (update + cancel)
|
||||
* Handle and display errors better for: creation, update, cancel
|
||||
* Make it work not only for images but Files too
|
||||
Please use https://www.transifex.com/silverstripe/silverstripe-gridfield-bulk-editing-tools to contribute translations, rather than sending pull requests with YAML/JS files.
|
||||
|
||||
## License (BSD Simplified)
|
||||
## License and Copyright
|
||||
|
||||
Copyright (c) 2013, Thierry Francois (colymba)
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Thierry Francois, colymba nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
[BSD 3-clause license](LICENSE)
|
||||
|
|
|
@ -1,6 +1 @@
|
|||
<?php
|
||||
//define global path to Components' root folder
|
||||
if(!defined('BULK_EDIT_TOOLS_PATH'))
|
||||
{
|
||||
define('BULK_EDIT_TOOLS_PATH', rtrim(basename(dirname(__FILE__))));
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"presets": [
|
||||
"@babel/preset-env",
|
||||
"@babel/preset-react"
|
||||
]
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
!function(){"use strict";var e={157:function(e,t,i){var s;((s=i(311))&&s.__esModule?s:{default:s}).default.entwine("ss",(e=>{window.bulkTools={gridfieldRefresh(e,t){t.isError||(t.isDestructive?this.removeGridFieldRows(e,t.records.success):this.updateGridFieldRows(e,t.records.success),this.failedGridFieldRows(e,t.records.failed))},getGridFieldRow(e,t){return e.find(`.ss-gridfield-item[data-id="${t.id}"][data-class="${t.class}"]`)},cleanGridFieldRow(e){return e.removeClass("bt-deleted bt-failed bt-updated").removeAttr("bt-error")},removeGridFieldRows(e,t){t.forEach((function(t){this.getGridFieldRow(e,t).addClass("bt-deleted").fadeOut(2e3)}),this),e.entwine(".").entwine("ss").delay(2e3).reload()},failedGridFieldRows(e,t){t.forEach((function(t){this.getGridFieldRow(e,t).addClass("bt-failed").attr("bt-error",t.message)}),this)},updateGridFieldRows(t,i){t.find(".ss-gridfield-item.ss-gridfield-no-items").remove(),i.forEach((function(i){const s=this.getGridFieldRow(t,i),d=e(i.row).addClass("bt-updated");1===s.length?s.replaceWith(d):t.find(".ss-gridfield-items").prepend(d)}),this)}}}))},572:function(e,t,i){var s=n(i(311)),d=n(i(754));function n(e){return e&&e.__esModule?e:{default:e}}s.default.entwine("colymba",(e=>{e(".bulkManagerOptions").entwine({onmatch(){const t=this.parents("thead"),i=t.find("tr"),s=t.find([".filter-header",".sortable-header"].join(",")),d=i.index(this);let n=i.length-1;s.each(((e,t)=>{const s=i.index(t);s<n&&(n=s)})),d>n&&i.eq(n).insertAfter(e(this))}}),e("td.col-bulkSelect").entwine({onmouseover(){e(this).parents(".ss-gridfield-item").find(".edit-link").removeClass("edit-link").addClass("tempDisabledEditLink")},onmouseout(){e(this).parents(".ss-gridfield-item").find(".tempDisabledEditLink").addClass("edit-link").removeClass("tempDisabledEditLink")},onclick(t){const i=e(t.target).find("input");e(i).prop("checked")?e(i).prop("checked",!1):e(i).prop("checked",!0)}}),e("td.col-bulkSelect input").entwine({onmatch(){},onunmatch(){},onclick(){e(this).parents(".grid-field__table").find("input.bulkSelectAll").prop("checked","")}}),e("input.bulkSelectAll").entwine({onclick(){const t=e(this).prop("checked");e(this).parents(".grid-field__table").find("td.col-bulkSelect input").prop("checked",t).trigger("change")},getSelectRecordsID(){return e(this).parents(".grid-field__table").find("td.col-bulkSelect input:checked").map((function(){return parseInt(e(this).data("record"),10)})).get()}}),e("select.bulkActionName").entwine({onchange(){const t=e(this).val(),i=e(this).parents(".bulkManagerOptions").find(".doBulkActionButton"),s=i.data("config");if(e.each(s,((e,s)=>{e!==t&&i.removeClass(s.buttonClasses)})),t){if(i.removeClass("disabled"),i.addClass(s[t].buttonClasses).addClass("btn-outline-secondary"),s[t].icon){const e=i.find("img");e.length?e.attr("src",s[t].icon):i.prepend(`<img src="${s[t].icon}" alt="" />`)}else i.find("img").remove();s[t].destructive?i.addClass("btn-outline-danger"):i.removeClass("btn-outline-danger")}else i.addClass("disabled")}}),e(".doBulkActionButton").entwine({getActionURL(e,t){const i=(new Date).getTime();let s=t.split("?"),d="";return e&&(d=`/${e}`),s=s[1]?`${s[0]+d}?${s[1]}&cacheBuster=${i}`:`${s[0]+d}?cacheBuster=${i}`,s},onclick(){const t=e(this).parents(".bulkManagerOptions").find("select.bulkActionName").val(),i=e(this).parents(".bulkManagerOptions").find("input.bulkSelectAll:first").getSelectRecordsID();this.doBulkAction(t,i)},doBulkAction(t,i){const{bulkTools:s}=window,n=e(this).parents(".bulkManagerOptions"),a=n.find("a.doBulkActionButton"),r=n.find(".message"),l=a.data("config");let o=this.getActionURL(t,e(this).data("url"));const c={records:i};if(i.length<=0)return alert(d.default._t("GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT")),!1;if(l[t].destructive&&!confirm(d.default._t("GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION")))return!1;if(a.addClass("loading"),r.removeClass("static show error warning"),l[t].xhr)e.ajax({url:o,data:c,type:"POST",context:e(this)}).always((function(t){let i=t;a.removeClass("loading"),t.responseText&&(i=JSON.parse(t.responseText)),r.html(i.message),i.isError?r.addClass("static error"):i.isWarning?r.addClass("show warning"):r.addClass("show"),s.gridfieldRefresh(e(this).parents(".ss-gridfield"),i)}));else{o=`${o}&${`records[]=${i.join("&records[]=")}`}`,window.location.href=o}return!0}})}))},453:function(e,t,i){var s;((s=i(311))&&s.__esModule?s:{default:s}).default.entwine("colymba",(e=>{e("#bulkEditToggle").entwine({onclick(){const t=this.parents("form").find(".ss-toggle .ui-accordion-header");let i=this.data("state");i=i&&"close"!==i?"close":"open",t.each((function(){const t=e(this);"open"!==i||t.hasClass("ui-state-active")||t.click(),"close"===i&&t.hasClass("ui-state-active")&&t.click()})),this.data("state",i)}}),e(".bulkEditingFieldHolder").entwine({onchange(){this.removeClass("updated"),this.hasClass("hasUpdate")||this.addClass("hasUpdate")}})}))},545:function(e,t,i){var s=n(i(311)),d=n(i(648));function n(e){return e&&e.__esModule?e:{default:e}}const{bulkTools:a}=window,r=e=>()=>(t,i)=>{let{type:d,payload:n}=i;switch(d){case"UPLOADFIELD_ADD_FILE":return-1!==n.fieldId.indexOf("_BU")&&n.file.id&&(e=>{const t=(0,s.default)(`#${e.fieldId}`),i=t.parents(".ss-gridfield"),d=t.data("schema");s.default.ajax(d.data.attachFileEndpoint.url,{method:d.data.attachFileEndpoint.method,data:{fileID:e.file.id}}).done((e=>{a.gridfieldRefresh(i,e)}))})(n),e(t,{type:d,payload:n});case"UPLOADFIELD_UPLOAD_SUCCESS":return-1!==n.fieldId.indexOf("_BU")&&(e=>{const t=(0,s.default)(`#${e.fieldId}`).parents(".ss-gridfield");a.gridfieldRefresh(t,e.json.bulkTools)})(n),e(t,{type:d,payload:n});default:return e(t,{type:d,payload:n})}};document.addEventListener("DOMContentLoaded",(()=>{d.default.transform("bulkUploaderTransformation",(e=>{e.reducer("assetAdmin",r)}))}))},648:function(e){e.exports=Injector},754:function(e){e.exports=i18n},311:function(e){e.exports=jQuery}},t={};function i(s){var d=t[s];if(void 0!==d)return d.exports;var n=t[s]={exports:{}};return e[s](n,n.exports,i),n.exports}i(157),i(572),i(453),i(545)}();
|
|
@ -0,0 +1 @@
|
|||
@keyframes bt_fade_out{from{opacity:1}to{opacity:0}}@keyframes bt_loading{from{opacity:1}to{opacity:.25}}@keyframes bt_fade_border{from{border-left-width:6px}to{border-left-width:0}}.cms table.grid-field__table tr.bulkManagerOptions th{text-transform:none}.cms table.grid-field__table tr.bulkManagerOptions th .bulkActionName{float:left}.cms table.grid-field__table tr.bulkManagerOptions th .bulkActionName .form__field-holder{min-width:200px;margin-left:0}.cms table.grid-field__table tr.bulkManagerOptions th .bulkActionName .chosen-container{min-width:120px}.cms table.grid-field__table tr.bulkManagerOptions th .bulkActionName .chosen-container-single .chosen-single{border-top-right-radius:0;border-bottom-right-radius:0}.cms table.grid-field__table tr.bulkManagerOptions th .doBulkActionButton{float:left;border-top-left-radius:0;border-bottom-left-radius:0;height:36px;line-height:26px;margin-left:-1px;margin-right:20px}.cms table.grid-field__table tr.bulkManagerOptions th .doBulkActionButton img{height:20px}.cms table.grid-field__table tr.bulkManagerOptions th .doBulkActionButton.loading{animation:.5s bt_loading infinite alternate;cursor:wait;pointer-events:none}.cms table.grid-field__table tr.bulkManagerOptions th .message{float:left;clear:none;max-width:100%;margin:0;padding:0 1.25rem;height:36px;line-height:34px;opacity:0;overflow:auto}.cms table.grid-field__table tr.bulkManagerOptions th .message.show{animation:10s bt_fade_out}.cms table.grid-field__table tr.bulkManagerOptions th .message.static{opacity:1}.cms table.grid-field__table tbody .col-bulkSelect{width:25px;text-align:center}.cms table.grid-field__table tbody .ss-gridfield-item.bt-deleted{opacity:.5}.cms table.grid-field__table tbody .ss-gridfield-item.bt-failed{border-left:0 solid #e68288;animation:10s bt_fade_border}.cms table.grid-field__table tbody .ss-gridfield-item.bt-updated{border-left:0 solid #56bd59;animation:10s bt_fade_border}#bulkEditHeader{float:left;width:70%;margin:40px 0 20px 0;font-size:30px;font-weight:bold}#bulkEditToggle{float:right;clear:right;width:25%;margin:40px 0 20px 0;text-decoration:underline;text-align:right;cursor:pointer}.bulkEditingFieldHolder{position:relative;float:left;width:100%}.bulkEditingFieldHolder.hasUpdate .ui-accordion-header{background-color:#f2ba11;background-image:linear-gradient(top, #f2ba11 0%, #df6e00 100%)}.bulkEditingFieldHolder.hasUpdate .ui-accordion-header a{color:#fff;text-shadow:none}.bulkEditingFieldHolder.updated .ui-accordion-header{background-color:#a4ca3a;background-image:linear-gradient(top, #a4ca3a 0%, #59781D 100%)}.bulkEditingFieldHolder.updated .ui-accordion-header a{color:#fff;text-shadow:none}.bulkUploader .uploadfield__droptext::before{text-transform:none;content:"b"}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/cs.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('cs', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Uploading %s file(s). %s done. %s error(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Musíte vybrat alespoň jednu položku.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Data budou nenávratně ztracena. Opravdu chcete pokračovat?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/de.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('de', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Übertrage %s Datei(en). %s erfolgreich übertragen. %s Fehler.",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Sie müssen mindestens ein Element auswählen.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Wollen Sie dieses Element wirklich unwiderruflich löschen?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/en.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('en', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Uploading %s file(s). %s done. %s error(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "You must select at least one record.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "The data will be lost permanently. Do you want to continue?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/fi.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('fi', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Lataa %s tiedosto(ja). %s Valmis. %s virhe(itä).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Sinun täytyy valita vähintään yksi tallenne. ",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Tiedostosi häviävät pysyvästi. Haluatko jatkaa?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/fr.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('fr', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "%s fichier(s) en transfert. %s terminer. %s erreur(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Vous devez sélectionner au moins une entrée.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Les données serons perdu définitivement. Voulez vous continuer?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/it.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('it', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Caricamento del/dei file(s) %s. %s completato. %s errore(i).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Devi selezionare almeno una voce.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "I dati saranno persi per sempre. Vuoi continuare?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/nl.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('nl', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Uploading %s file(s). %s done. %s error(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "U moet minstens een item te selecteren.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "De gegevens zullen permanent verloren. Weet je zeker dat je de pagina wilt verlaten?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/pl.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('pl', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Wgrywanie %s plików. Ukończono %s. %s błędów.",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Musisz wybrać przynajmniej jedną pozycję.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Dane zostaną bezpowrotnie usunięte. Czy chcesz kontynuować?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/ru.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('ru', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Загружается %s файл(ов). %s завершено. %s ошибка(и).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Вы должны выбрать как минимум одну запись.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Ваши данные будут безвозвратно удалены. Вы хотите продолжить?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
// This file was generated by silverstripe/tx-translator from client/lang/src/sk.json.
|
||||
// See https://github.com/silverstripe/silverstripe-tx-translator for details
|
||||
if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
if (typeof(console) !== 'undefined') { // eslint-disable-line no-console
|
||||
console.error('Class ss.i18n not defined'); // eslint-disable-line no-console
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('sk', {
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Nahrávam %s súbor(y/ov). %s hotovo. %s chyb(a/y).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Musíte vybrať aspoň jednu položku.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Dáta budú nenávratne stratené. Chcete pokračovať?"
|
||||
});
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Uploading %s file(s). %s done. %s error(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Musíte vybrat alespoň jednu položku.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Data budou nenávratně ztracena. Opravdu chcete pokračovat?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Übertrage %s Datei(en). %s erfolgreich übertragen. %s Fehler.",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Sie müssen mindestens ein Element auswählen.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Wollen Sie dieses Element wirklich unwiderruflich löschen?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Uploading %s file(s). %s done. %s error(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "You must select at least one record.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "The data will be lost permanently. Do you want to continue?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Lataa %s tiedosto(ja). %s Valmis. %s virhe(itä).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Sinun täytyy valita vähintään yksi tallenne. ",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Tiedostosi häviävät pysyvästi. Haluatko jatkaa?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "%s fichier(s) en transfert. %s terminer. %s erreur(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Vous devez sélectionner au moins une entrée.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Les données serons perdu définitivement. Voulez vous continuer?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Caricamento del/dei file(s) %s. %s completato. %s errore(i).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Devi selezionare almeno una voce.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "I dati saranno persi per sempre. Vuoi continuare?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Uploading %s file(s). %s done. %s error(s).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "U moet minstens een item te selecteren.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "De gegevens zullen permanent verloren. Weet je zeker dat je de pagina wilt verlaten?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Wgrywanie %s plików. Ukończono %s. %s błędów.",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Musisz wybrać przynajmniej jedną pozycję.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Dane zostaną bezpowrotnie usunięte. Czy chcesz kontynuować?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Загружается %s файл(ов). %s завершено. %s ошибка(и).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Вы должны выбрать как минимум одну запись.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Ваши данные будут безвозвратно удалены. Вы хотите продолжить?"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"GRIDFIELD_BULK_UPLOAD.PROGRESS_INFO": "Nahrávam %s súbor(y/ov). %s hotovo. %s chyb(a/y).",
|
||||
"GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT": "Musíte vybrať aspoň jednu položku.",
|
||||
"GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION": "Dáta budú nenávratne stratené. Chcete pokračovať?"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
require('../js/bulkTools');
|
||||
require('../js/manager');
|
||||
require('../js/managerBulkEditingForm');
|
||||
require('../js/uploader');
|
|
@ -0,0 +1,86 @@
|
|||
/* global window */
|
||||
import jQuery from 'jquery';
|
||||
|
||||
jQuery.entwine('ss', ($) => {
|
||||
/**
|
||||
* Handles Gridfield updates after a bulk action/upload
|
||||
*/
|
||||
window.bulkTools = {
|
||||
gridfieldRefresh($gridfield, data) {
|
||||
if (!data.isError) {
|
||||
if (data.isDestructive) {
|
||||
this.removeGridFieldRows($gridfield, data.records.success);
|
||||
} else {
|
||||
this.updateGridFieldRows($gridfield, data.records.success);
|
||||
}
|
||||
// failed rows
|
||||
this.failedGridFieldRows($gridfield, data.records.failed);
|
||||
}
|
||||
},
|
||||
|
||||
// return the gridfield row node for a specific record
|
||||
getGridFieldRow($gridfield, record) {
|
||||
return $gridfield.find(`.ss-gridfield-item[data-id="${record.id}"][data-class="${record.class}"]`);
|
||||
},
|
||||
|
||||
// remove all bulk tools class and attributes from the row
|
||||
cleanGridFieldRow($row) {
|
||||
return $row.removeClass('bt-deleted bt-failed bt-updated').removeAttr('bt-error');
|
||||
},
|
||||
|
||||
// mark all affected gridfield rows as deleted
|
||||
removeGridFieldRows($gridfield, records) {
|
||||
records.forEach(function (record) {
|
||||
const $row = this.getGridFieldRow($gridfield, record);
|
||||
$row.addClass('bt-deleted').fadeOut(2000);
|
||||
}, this);
|
||||
$gridfield.entwine('.').entwine('ss').delay(2000).reload();
|
||||
},
|
||||
|
||||
// mark all affected gridfield rows as failed
|
||||
failedGridFieldRows($gridfield, records) {
|
||||
records.forEach(function (record) {
|
||||
const $row = this.getGridFieldRow($gridfield, record);
|
||||
$row.addClass('bt-failed').attr('bt-error', record.message);
|
||||
// pseudo element absolute pos don't work in TR, so we'll have to find some
|
||||
// JS way to show the bt-error content..
|
||||
}, this);
|
||||
},
|
||||
|
||||
// update rows with new content
|
||||
updateGridFieldRows($gridfield, records) {
|
||||
$gridfield.find('.ss-gridfield-item.ss-gridfield-no-items').remove();
|
||||
records.forEach(function (record) {
|
||||
const $row = this.getGridFieldRow($gridfield, record);
|
||||
const $newRow = $(record.row).addClass('bt-updated');
|
||||
// replace existing or add new?
|
||||
if ($row.length === 1) {
|
||||
$row.replaceWith($newRow);
|
||||
} else {
|
||||
$gridfield.find('.ss-gridfield-items').prepend($newRow);
|
||||
}
|
||||
}, this);
|
||||
},
|
||||
|
||||
// removes an item from the upload item
|
||||
// this is bad! can't dispatch within Reducer
|
||||
// so it's commentted until actions are written
|
||||
/*
|
||||
removeUploadItem: function ($gridfield, queueIndex, fileID)
|
||||
{
|
||||
// we use queueIndex for uploads since the input value will not have been changed yet
|
||||
// and we can't watch for change event on hidden input
|
||||
if (fileID) {
|
||||
$gridfield.find('.uploadfield-item')
|
||||
.find('input[value="'+fileID+'"]')
|
||||
.siblings('button.uploadfield-item__remove-btn')
|
||||
.trigger('click');
|
||||
} else if (queueIndex) {
|
||||
$gridfield.find('.uploadfield-item')
|
||||
.eq(queueIndex-1)
|
||||
.find('button.uploadfield-item__remove-btn')
|
||||
.trigger('click');
|
||||
}
|
||||
} */
|
||||
};
|
||||
});
|
|
@ -0,0 +1,233 @@
|
|||
/* global window, alert, confirm */
|
||||
import jQuery from 'jquery';
|
||||
import i18n from 'i18n';
|
||||
|
||||
jQuery.entwine('colymba', ($) => {
|
||||
/**
|
||||
* Makes sure the component is above the headers
|
||||
*/
|
||||
$('.bulkManagerOptions').entwine({
|
||||
onmatch() {
|
||||
const $parent = this.parents('thead');
|
||||
const $tr = $parent.find('tr');
|
||||
|
||||
const targets = ['.filter-header', '.sortable-header'];
|
||||
const $target = $parent.find(targets.join(','));
|
||||
|
||||
const index = $tr.index(this);
|
||||
let newIndex = $tr.length - 1;
|
||||
|
||||
$target.each((targetIndex, Element) => {
|
||||
const idx = $tr.index(Element);
|
||||
if (idx < newIndex) {
|
||||
newIndex = idx;
|
||||
}
|
||||
});
|
||||
|
||||
if (index > newIndex) {
|
||||
$tr.eq(newIndex).insertAfter($(this));
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Bulkselect table cell behaviours
|
||||
*/
|
||||
$('td.col-bulkSelect').entwine({
|
||||
onmouseover() {
|
||||
// disable default row click behaviour -> avoid navigation to edit form when
|
||||
// clicking the checkbox
|
||||
$(this).parents('.ss-gridfield-item').find('.edit-link').removeClass('edit-link')
|
||||
.addClass('tempDisabledEditLink');
|
||||
},
|
||||
onmouseout() {
|
||||
// re-enable default row click behaviour
|
||||
$(this).parents('.ss-gridfield-item').find('.tempDisabledEditLink').addClass('edit-link')
|
||||
.removeClass('tempDisabledEditLink');
|
||||
},
|
||||
onclick(e) {
|
||||
// check/uncheck checkbox when clicking cell
|
||||
const cb = $(e.target).find('input');
|
||||
if (!$(cb).prop('checked')) {
|
||||
$(cb).prop('checked', true);
|
||||
} else {
|
||||
$(cb).prop('checked', false);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Individual select checkbox behaviour
|
||||
*/
|
||||
$('td.col-bulkSelect input').entwine({
|
||||
onmatch() {
|
||||
},
|
||||
onunmatch() {
|
||||
},
|
||||
onclick() {
|
||||
$(this).parents('.grid-field__table').find('input.bulkSelectAll').prop('checked', '');
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* Bulkselect checkbox behaviours
|
||||
*/
|
||||
$('input.bulkSelectAll').entwine({
|
||||
onclick() {
|
||||
const state = $(this).prop('checked');
|
||||
$(this).parents('.grid-field__table')
|
||||
.find('td.col-bulkSelect input')
|
||||
.prop('checked', state)
|
||||
.trigger('change');
|
||||
},
|
||||
getSelectRecordsID() {
|
||||
return $(this).parents('.grid-field__table')
|
||||
.find('td.col-bulkSelect input:checked')
|
||||
.map(function () {
|
||||
return parseInt($(this).data('record'), 10);
|
||||
})
|
||||
.get();
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Bulk action dropdown behaviours
|
||||
*/
|
||||
$('select.bulkActionName').entwine({
|
||||
onchange() {
|
||||
const value = $(this).val();
|
||||
const $parent = $(this).parents('.bulkManagerOptions');
|
||||
const $btn = $parent.find('.doBulkActionButton');
|
||||
const config = $btn.data('config');
|
||||
|
||||
$.each(config, (configKey, configData) => {
|
||||
if (configKey !== value) {
|
||||
$btn.removeClass(configData.buttonClasses);
|
||||
}
|
||||
});
|
||||
|
||||
if (!value) {
|
||||
$btn.addClass('disabled');
|
||||
return;
|
||||
}
|
||||
|
||||
$btn.removeClass('disabled');
|
||||
|
||||
$btn.addClass(config[value].buttonClasses).addClass('btn-outline-secondary');
|
||||
|
||||
if (config[value].icon) {
|
||||
const $img = $btn.find('img');
|
||||
|
||||
if ($img.length) {
|
||||
$img.attr('src', config[value].icon);
|
||||
} else {
|
||||
$btn.prepend(`<img src="${config[value].icon}" alt="" />`);
|
||||
}
|
||||
} else {
|
||||
$btn.find('img').remove();
|
||||
}
|
||||
|
||||
|
||||
if (config[value].destructive) {
|
||||
$btn.addClass('btn-outline-danger');
|
||||
} else {
|
||||
$btn.removeClass('btn-outline-danger');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* bulk action button behaviours
|
||||
*/
|
||||
$('.doBulkActionButton').entwine({
|
||||
getActionURL(action, url) {
|
||||
const cacheBuster = new Date().getTime();
|
||||
let newUrl = url.split('?');
|
||||
|
||||
let newAction = '';
|
||||
if (action) {
|
||||
newAction = `/${action}`;
|
||||
}
|
||||
|
||||
if (newUrl[1]) {
|
||||
newUrl = `${newUrl[0] + newAction}?${newUrl[1]}&cacheBuster=${cacheBuster}`;
|
||||
} else {
|
||||
newUrl = `${newUrl[0] + newAction}?cacheBuster=${cacheBuster}`;
|
||||
}
|
||||
return newUrl;
|
||||
},
|
||||
onclick() {
|
||||
const $parent = $(this).parents('.bulkManagerOptions');
|
||||
const action = $parent.find('select.bulkActionName').val();
|
||||
const ids = $(this).parents('.bulkManagerOptions').find('input.bulkSelectAll:first').getSelectRecordsID();
|
||||
|
||||
this.doBulkAction(action, ids);
|
||||
},
|
||||
|
||||
doBulkAction(action, ids) {
|
||||
const { bulkTools } = window;
|
||||
|
||||
const $parent = $(this).parents('.bulkManagerOptions');
|
||||
const $btn = $parent.find('a.doBulkActionButton');
|
||||
const $msg = $parent.find('.message');
|
||||
|
||||
const config = $btn.data('config');
|
||||
let url = this.getActionURL(action, $(this).data('url'));
|
||||
const inputData = { records: ids };
|
||||
|
||||
if (ids.length <= 0) {
|
||||
alert(i18n._t('GRIDFIELD_BULK_MANAGER.BULKACTION_EMPTY_SELECT'));
|
||||
return false;
|
||||
}
|
||||
|
||||
// if ( $btn.hasClass('ss-ui-action-destructive') )
|
||||
if (config[action].destructive) {
|
||||
if (!confirm(i18n._t('GRIDFIELD_BULK_MANAGER.CONFIRM_DESTRUCTIVE_ACTION'))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$btn.addClass('loading');
|
||||
$msg.removeClass('static show error warning');
|
||||
|
||||
if (config[action].xhr) {
|
||||
$.ajax({
|
||||
url,
|
||||
data: inputData,
|
||||
type: 'POST',
|
||||
context: $(this)
|
||||
}).always(function (data) {
|
||||
let returnData = data;
|
||||
$btn.removeClass('loading');
|
||||
|
||||
// if request fail, return a +4xx status code, extract json response
|
||||
if (data.responseText) {
|
||||
returnData = JSON.parse(data.responseText);
|
||||
}
|
||||
|
||||
$msg.html(returnData.message);
|
||||
|
||||
if (returnData.isError) {
|
||||
$msg.addClass('static error');
|
||||
} else if (returnData.isWarning) {
|
||||
$msg.addClass('show warning');
|
||||
} else {
|
||||
$msg.addClass('show');
|
||||
}
|
||||
|
||||
bulkTools.gridfieldRefresh($(this).parents('.ss-gridfield'), returnData);
|
||||
});
|
||||
} else {
|
||||
const records = `records[]=${ids.join('&records[]=')}`;
|
||||
url = `${url}&${records}`;
|
||||
|
||||
window.location.href = url;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
});
|
|
@ -0,0 +1,49 @@
|
|||
/* global window */
|
||||
import jQuery from 'jquery';
|
||||
|
||||
jQuery.entwine('colymba', ($) => {
|
||||
/**
|
||||
* Toggle all accordion forms
|
||||
* open or closed
|
||||
*/
|
||||
$('#bulkEditToggle').entwine({
|
||||
onclick() {
|
||||
const toggleFields = this.parents('form').find('.ss-toggle .ui-accordion-header');
|
||||
let state = this.data('state');
|
||||
|
||||
if (!state || state === 'close') {
|
||||
state = 'open';
|
||||
} else {
|
||||
state = 'close';
|
||||
}
|
||||
|
||||
toggleFields.each(function () {
|
||||
const $this = $(this);
|
||||
|
||||
if (state === 'open' && !$this.hasClass('ui-state-active')) {
|
||||
$this.click();
|
||||
}
|
||||
|
||||
if (state === 'close' && $this.hasClass('ui-state-active')) {
|
||||
$this.click();
|
||||
}
|
||||
});
|
||||
|
||||
this.data('state', state);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Contains each rocrds editing fields,
|
||||
* tracks changes and updates...
|
||||
*/
|
||||
$('.bulkEditingFieldHolder').entwine({
|
||||
onchange() {
|
||||
this.removeClass('updated');
|
||||
if (!this.hasClass('hasUpdate')) {
|
||||
this.addClass('hasUpdate');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
|
@ -0,0 +1,60 @@
|
|||
/* global document window */
|
||||
/**
|
||||
* A quick hack to catch the uploadfield add file event
|
||||
* and send the file ID to the bulkUploader component
|
||||
* @todo write actions
|
||||
*/
|
||||
import jQuery from 'jquery';
|
||||
import Injector from 'lib/Injector';
|
||||
|
||||
const { bulkTools } = window;
|
||||
|
||||
const bulkUploadFieldAttach = (payload) => {
|
||||
const $uploadField = jQuery(`#${payload.fieldId}`);
|
||||
const $gridfield = $uploadField.parents('.ss-gridfield');
|
||||
const schema = $uploadField.data('schema');
|
||||
jQuery.ajax(schema.data.attachFileEndpoint.url, {
|
||||
method: schema.data.attachFileEndpoint.method, // doesn't seem to change anything
|
||||
data: {
|
||||
fileID: payload.file.id
|
||||
}
|
||||
}).done((data) => {
|
||||
bulkTools.gridfieldRefresh($gridfield, data);
|
||||
// bulkTools.removeUploadItem($gridfield, null, payload.file.id);//bad! can't dispath in Reducer
|
||||
});
|
||||
};
|
||||
|
||||
const bulkUploadFieldUpload = (payload) => {
|
||||
const $gridfield = jQuery(`#${payload.fieldId}`).parents('.ss-gridfield');
|
||||
bulkTools.gridfieldRefresh($gridfield, payload.json.bulkTools);
|
||||
// bulkTools.removeUploadItem($gridfield, payload.queuedId, null);//bad! can't dispath in Reducer
|
||||
};
|
||||
|
||||
const bulkUploadFieldReducer = (originalReducer) => () => (state, { type, payload }) => {
|
||||
switch (type) {
|
||||
case 'UPLOADFIELD_ADD_FILE': {
|
||||
// Needs to be a bulk upload field and have a file ID (no file ID = normal)
|
||||
if (payload.fieldId.indexOf('_BU') !== -1 && payload.file.id) {
|
||||
bulkUploadFieldAttach(payload);
|
||||
}
|
||||
return originalReducer(state, { type, payload });
|
||||
}
|
||||
|
||||
case 'UPLOADFIELD_UPLOAD_SUCCESS': {
|
||||
// check if this is a bulk upload
|
||||
if (payload.fieldId.indexOf('_BU') !== -1) {
|
||||
bulkUploadFieldUpload(payload);
|
||||
}
|
||||
return originalReducer(state, { type, payload });
|
||||
}
|
||||
|
||||
default: {
|
||||
return originalReducer(state, { type, payload });
|
||||
}
|
||||
}
|
||||
};
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
Injector.transform('bulkUploaderTransformation', (updater) => {
|
||||
updater.reducer('assetAdmin', bulkUploadFieldReducer);
|
||||
});
|
||||
});
|
|
@ -0,0 +1,6 @@
|
|||
// Variables (from silverstripe/admin)
|
||||
@import "variables";
|
||||
|
||||
@import "./manager";
|
||||
@import "./managerBulkEditingForm";
|
||||
@import "./uploader";
|
|
@ -0,0 +1,144 @@
|
|||
@keyframes bt_fade_out {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bt_loading {
|
||||
from {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: .25;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bt_fade_border {
|
||||
from {
|
||||
border-left-width: 6px;
|
||||
}
|
||||
|
||||
to {
|
||||
border-left-width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.cms table.grid-field__table
|
||||
{
|
||||
tr.bulkManagerOptions
|
||||
{
|
||||
th
|
||||
{
|
||||
text-transform: none;
|
||||
|
||||
.bulkActionName
|
||||
{
|
||||
float: left;
|
||||
|
||||
.form__field-holder
|
||||
{
|
||||
min-width: 200px;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.chosen-container
|
||||
{
|
||||
min-width: 120px;
|
||||
}
|
||||
|
||||
.chosen-container-single .chosen-single
|
||||
{
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.doBulkActionButton
|
||||
{
|
||||
float: left;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
|
||||
height: 36px;
|
||||
line-height: 26px;
|
||||
margin-left: -1px;
|
||||
margin-right: 20px;
|
||||
|
||||
img
|
||||
{
|
||||
height: 20px;
|
||||
}
|
||||
|
||||
&.loading
|
||||
{
|
||||
animation: .5s bt_loading infinite alternate;
|
||||
cursor: wait;
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
.message
|
||||
{
|
||||
float: left;
|
||||
clear: none;
|
||||
max-width: 100%;
|
||||
|
||||
margin: 0;
|
||||
padding: 0 1.25rem;
|
||||
|
||||
height: 36px;
|
||||
line-height: 34px;
|
||||
|
||||
opacity: 0;
|
||||
overflow: auto;
|
||||
|
||||
&.show
|
||||
{
|
||||
animation: 10s bt_fade_out;
|
||||
}
|
||||
|
||||
&.static
|
||||
{
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.bulkSelectAll
|
||||
{
|
||||
}
|
||||
}
|
||||
}// .bulkManagerOptions
|
||||
|
||||
tbody
|
||||
{
|
||||
.col-bulkSelect
|
||||
{
|
||||
width: 25px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.ss-gridfield-item
|
||||
{
|
||||
&.bt-deleted
|
||||
{
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
&.bt-failed
|
||||
{
|
||||
border-left: 0 solid #e68288;
|
||||
animation: 10s bt_fade_border;
|
||||
}
|
||||
&.bt-updated
|
||||
{
|
||||
border-left: 0 solid #56bd59;
|
||||
animation: 10s bt_fade_border;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
|
||||
#bulkEditHeader
|
||||
{
|
||||
float: left;
|
||||
width: 70%;
|
||||
|
||||
margin: 40px 0 20px 0;
|
||||
|
||||
font-size: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#bulkEditToggle
|
||||
{
|
||||
float: right;
|
||||
clear: right;
|
||||
width: 25%;
|
||||
|
||||
margin: 40px 0 20px 0;
|
||||
|
||||
text-decoration: underline;
|
||||
text-align: right;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.bulkEditingFieldHolder
|
||||
{
|
||||
position: relative;
|
||||
float: left;
|
||||
width: 100%;
|
||||
|
||||
&.hasUpdate .ui-accordion-header
|
||||
{
|
||||
background-color: #f2ba11;
|
||||
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #f2ba11), color-stop(100%, #df6e00));
|
||||
background-image: -webkit-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: -moz-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: -o-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: -ms-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
|
||||
a
|
||||
{
|
||||
color: #fff;
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
&.updated .ui-accordion-header
|
||||
{
|
||||
background-color: #a4ca3a;
|
||||
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #a4ca3a), color-stop(100%, #59781D));
|
||||
background-image: -webkit-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: -moz-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: -o-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: -ms-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
|
||||
a
|
||||
{
|
||||
color: #fff;
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
.bulkUploader
|
||||
{
|
||||
.uploadfield__droptext
|
||||
{
|
||||
&::before
|
||||
{
|
||||
text-transform: none;
|
||||
content: "b";
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,261 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Generic helper class for the various bulk editing component
|
||||
* contains common functions
|
||||
*
|
||||
* @todo clean up functions names: makes them consistent and more explicit
|
||||
*
|
||||
* @author colymba
|
||||
* @package GridFieldBulkEditingTools
|
||||
*/
|
||||
class GridFieldBulkEditingHelper {
|
||||
|
||||
/**
|
||||
* Returns all or allowed Form Fields for editing
|
||||
*
|
||||
* @param type $config
|
||||
* @param type $modelClass
|
||||
* @param type $recordID
|
||||
* @return type
|
||||
*/
|
||||
public static function getModelCMSDataFields ( $config, $modelClass )
|
||||
{
|
||||
$cmsFields = singleton($modelClass)->getCMSFields();
|
||||
|
||||
$cmsDataFields = $cmsFields->dataFields();
|
||||
$cmsDataFields = GridFieldBulkEditingHelper::filterNonEditableRecordsFields($config, $cmsDataFields);
|
||||
|
||||
return $cmsDataFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate the FomFields with a given record's value
|
||||
*
|
||||
* @TODO: UploadField get populated OK, however, file recovery and controllers URL are all wrong and should be updated manually
|
||||
* UploadField url should point to GridFieldBulkManager_Request appropriate method
|
||||
*
|
||||
* @param type $cmsDataFields
|
||||
* @param type $modelClass
|
||||
* @param type $recordID
|
||||
* @return type
|
||||
*/
|
||||
public static function populateCMSDataFields ( $cmsDataFields, $modelClass, $recordID )
|
||||
{
|
||||
$record = DataObject::get_by_id($modelClass, $recordID);
|
||||
|
||||
$recordComponents = array(
|
||||
'one' => $record->has_one(),
|
||||
'many' => $record->has_many(),
|
||||
'manymany' => $record->many_many()
|
||||
);
|
||||
|
||||
foreach ( $cmsDataFields as $name => $f )
|
||||
{
|
||||
if ( array_key_exists($name, $recordComponents['one']) )
|
||||
{
|
||||
$obj = $record->{$name}();
|
||||
switch ( get_class($f) )
|
||||
{
|
||||
case 'UploadField':
|
||||
$cmsDataFields[$name]->setRecord($record);
|
||||
$cmsDataFields[$name]->setItems( DataList::create($obj->ClassName)->byID($obj->ID) );
|
||||
print_r($cmsDataFields[$name]);
|
||||
break;
|
||||
|
||||
default:
|
||||
$cmsDataFields[$name]->setValue( $obj->ID );
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
else if ( array_key_exists($name, $recordComponents['many']) || array_key_exists($name, $recordComponents['manymany']) )
|
||||
{
|
||||
$list = $record->{$name}();
|
||||
switch ( get_class($f) )
|
||||
{
|
||||
case 'UploadField':
|
||||
$cmsDataFields[$name]->setRecord($record);
|
||||
$cmsDataFields[$name]->setItems($list);
|
||||
break;
|
||||
|
||||
case 'DropdownField':
|
||||
case 'ListboxField':
|
||||
$cmsDataFields[$name]->setValue( array_values($list->getIDList()) );
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}else{
|
||||
$cmsDataFields[$name]->setValue( $record->getField($name) );
|
||||
}
|
||||
}
|
||||
|
||||
return $cmsDataFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all the fields that were not explicitly specified as editable via the $config
|
||||
*
|
||||
* @param type $config
|
||||
* @param type $dataFields
|
||||
* @return type
|
||||
*/
|
||||
public static function filterNonEditableRecordsFields ( $config, $dataFields )
|
||||
{
|
||||
if ( isset($config['editableFields']) )
|
||||
{
|
||||
if ( $config['editableFields'] != null )
|
||||
{
|
||||
foreach ($dataFields as $name => $field)
|
||||
{
|
||||
if ( !in_array($name, $config['editableFields']) )
|
||||
{
|
||||
unset( $dataFields[$name] );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $dataFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters out all unwanted fields from the config settings
|
||||
*
|
||||
* @param array $config
|
||||
* @param array $dataFields
|
||||
* @return array
|
||||
*/
|
||||
public static function getModelFilteredDataFields ( $config, $dataFields )
|
||||
{
|
||||
//remove the image field - for bulk image upload
|
||||
if ( isset($config['imageFieldName']) )
|
||||
{
|
||||
if ( $config['imageFieldName'] != null )
|
||||
{
|
||||
unset( $dataFields[ substr($config['imageFieldName'], 0, -2) ] );
|
||||
}
|
||||
}
|
||||
|
||||
//if class blacklist filter
|
||||
if ( count($config['fieldsClassBlacklist']) > 0 )
|
||||
{
|
||||
foreach ($dataFields as $fieldName => $field)
|
||||
{
|
||||
if ( in_array(get_class($field), $config['fieldsClassBlacklist']) )
|
||||
{
|
||||
array_push($config['fieldsNameBlacklist'], $fieldName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if name blacklist filter
|
||||
if ( count($config['fieldsNameBlacklist']) > 0 )
|
||||
{
|
||||
foreach ( $config['fieldsNameBlacklist'] as $badFieldName )
|
||||
{
|
||||
unset( $dataFields[ $badFieldName ] );
|
||||
}
|
||||
}
|
||||
|
||||
return $dataFields;
|
||||
}
|
||||
|
||||
public static function filterDatafieldsByClass ( $config, $dataFields )
|
||||
{
|
||||
//@todo
|
||||
}
|
||||
|
||||
public static function filterDataFieldsByName ( $config, $dataFields )
|
||||
{
|
||||
//@todo
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a list of DataFields into a list of their repective HTML
|
||||
*
|
||||
* @param type $dataFields
|
||||
* @return type
|
||||
*/
|
||||
public static function dataFieldsToHTML ( $dataFields )
|
||||
{
|
||||
$fieldsHTML = array();
|
||||
|
||||
foreach ( $dataFields as $key => $field )
|
||||
{
|
||||
//@TODO: FieldHolder() does not seem to exist on UploadField
|
||||
$fieldsHTML[$key] = $field->FieldHolder();
|
||||
}
|
||||
|
||||
return $fieldsHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape form fields name with a $unique token
|
||||
* avoid having an ID URLParams sent through and cought as a pageID
|
||||
*
|
||||
* @param type $formFields
|
||||
* @param type $unique
|
||||
* @return type
|
||||
*/
|
||||
public static function escapeFormFieldsName ( $formFields, $unique )
|
||||
{
|
||||
$prefix = 'record_'.$unique.'_';
|
||||
|
||||
foreach ( $formFields as $name => $f )
|
||||
{
|
||||
$f->Name = $prefix . $f->Name;
|
||||
$formFields[$name] = $f;
|
||||
}
|
||||
|
||||
return $formFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape HTML form node names with a $unique token
|
||||
* avoid having an ID URLParams sent through and cought as a pageID
|
||||
*
|
||||
* @param type $formFieldsHTML
|
||||
* @param type $unique
|
||||
* @return type
|
||||
*/
|
||||
public static function escapeFormFieldsHTML ( $formFieldsHTML, $unique )
|
||||
{
|
||||
$prefix = 'record_'.$unique.'_';
|
||||
|
||||
foreach ( $formFieldsHTML as $name => $html )
|
||||
{
|
||||
$formFieldsHTML[$name] = str_ireplace ( array('id="', 'for="', 'name="'),
|
||||
array('id="'.$prefix, 'for="'.$prefix, 'name="'.$prefix),
|
||||
$html);
|
||||
}
|
||||
|
||||
return $formFieldsHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple function that replace the 'record_XX_' off of the ID field name
|
||||
* prefix needed since it was taken for a pageID if sent as is as well as fixing other things
|
||||
*
|
||||
* @param array $data
|
||||
* @return array
|
||||
*/
|
||||
public static function unescapeFormFieldsPOSTData ( $requestVars )
|
||||
{
|
||||
$return = array();
|
||||
|
||||
foreach( $requestVars as $key => $val)
|
||||
{
|
||||
$return[ preg_replace( '/record_(\d+)_(\w+)/i', '$2', $key) ] = $val;
|
||||
}
|
||||
|
||||
if ( isset($return['url']) ) unset($return['url']);
|
||||
if ( isset($return['cacheBuster']) ) unset($return['cacheBuster']);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,202 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* GridField component for uploading images in bulk
|
||||
*
|
||||
* @author colymba
|
||||
* @package GridFieldBulkEditingTools
|
||||
*/
|
||||
class GridFieldBulkImageUpload implements GridField_HTMLProvider, GridField_URLHandler {
|
||||
|
||||
/**
|
||||
* component configuration
|
||||
*
|
||||
* 'fileRelationName' => field name of the $has_one File/Image relation
|
||||
* 'editableFields' => fields editable on the Model
|
||||
* 'fieldsClassBlacklist' => field types that will be removed from the automatic form generation
|
||||
* 'fieldsNameBlacklist' => fields that will be removed from the automatic form generation
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $config = array(
|
||||
'fileRelationName' => null,
|
||||
'editableFields' => null,
|
||||
'fieldsClassBlacklist' => array(),
|
||||
'fieldsNameBlacklist' => array(),
|
||||
'folderName' => 'bulkUpload',
|
||||
'maxFileSize' => null,
|
||||
'sequentialUploads' => false
|
||||
);
|
||||
|
||||
/**
|
||||
* Holds any class that should not be used as they break the component
|
||||
* These cannot be removed from the blacklist
|
||||
*/
|
||||
protected $forbiddenFieldsClasses = array( 'GridField', 'UploadField' );
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $fileRelationName
|
||||
* @param string/array $editableFields
|
||||
*/
|
||||
public function __construct($fileRelationName = null, $editableFields = null)
|
||||
{
|
||||
if ( $fileRelationName != null ) $this->setConfig ( 'fileRelationName', $fileRelationName );
|
||||
if ( $editableFields != null ) $this->setConfig ( 'editableFields', $editableFields );
|
||||
|
||||
//init classes blacklist with forbidden classes
|
||||
$this->config['fieldsClassBlacklist'] = $this->forbiddenFieldsClasses;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a component configuration parameter
|
||||
*
|
||||
* @param string $reference
|
||||
* @param mixed $value
|
||||
*/
|
||||
function setConfig ( $reference, $value )
|
||||
{
|
||||
if (!key_exists($reference, $this->config) ) {
|
||||
user_error("Unknown option reference: $reference", E_USER_ERROR);
|
||||
}
|
||||
|
||||
if ( ($reference == 'fieldsClassBlacklist' || $reference == 'fieldsClassBlacklist' || $reference == 'editableFields') && !is_array($value) )
|
||||
{
|
||||
$value = array($value);
|
||||
}
|
||||
|
||||
//makes sure $forbiddenFieldsClasses are in no matter what
|
||||
if ( $reference == 'fieldsClassBlacklist' )
|
||||
{
|
||||
$value = array_unique( array_merge($value, $this->forbiddenFieldsClasses) );
|
||||
}
|
||||
|
||||
//makes sure maxFileSize is INT
|
||||
if ( $reference == 'maxFileSize' && !is_int($value) )
|
||||
{
|
||||
user_warning("maxFileSize should be an Integer. Setting it to Auto.", E_USER_ERROR);
|
||||
$value = null;
|
||||
}
|
||||
|
||||
//sequentialUploads true/false
|
||||
if ( $reference == 'sequentialUploads' && !is_bool($value) )
|
||||
{
|
||||
$value = false;
|
||||
}
|
||||
|
||||
$this->config[$reference] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns one $config parameter of the full $config
|
||||
*
|
||||
* @param string $reference $congif parameter to return
|
||||
* @return mixed
|
||||
*/
|
||||
function getConfig ( $reference = false )
|
||||
{
|
||||
if ( $reference ) return $this->config[$reference];
|
||||
else return $this->config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a field to the editable fields blacklist
|
||||
*
|
||||
* @param string $fieldName
|
||||
* @return boolean
|
||||
*/
|
||||
function addFieldNameToBlacklist ( $fieldName )
|
||||
{
|
||||
return array_push( $this->config['fieldsNameBlacklist'], $fieldName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a class to the editable fields blacklist
|
||||
*
|
||||
* @param string $className
|
||||
* @return boolean
|
||||
*/
|
||||
function addClassToBlacklist ( $className )
|
||||
{
|
||||
return array_push( $this->config['fieldsClassBlacklist'], $className);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a field to the editable fields blacklist
|
||||
*
|
||||
* @param string $fieldName
|
||||
* @return boolean
|
||||
*/
|
||||
function removeFieldNameFromBlacklist ( $fieldName )
|
||||
{
|
||||
if (key_exists($fieldName, $this->config['fieldsNameBlacklist'])) {
|
||||
return delete( $this->config['fieldsNameBlacklist'][$fieldName] );
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a class to the editable fields blacklist
|
||||
*
|
||||
* @param string $className
|
||||
* @return boolean
|
||||
*/
|
||||
function removeClassFromBlacklist ( $className )
|
||||
{
|
||||
if (key_exists($className, $this->config['fieldsNameBlacklist']) && !in_array($className, $this->forbiddenFieldsClasses)) {
|
||||
return delete( $this->config['fieldsNameBlacklist'][$className] );
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return array
|
||||
*/
|
||||
public function getHTMLFragments($gridField) {
|
||||
|
||||
Requirements::css(BULK_EDIT_TOOLS_PATH . '/css/GridFieldBulkImageUpload.css');
|
||||
|
||||
$targetFragment = 'before';
|
||||
if ( $gridField->getConfig()->getComponentByType('GridFieldButtonRow') )
|
||||
{
|
||||
$targetFragment = 'buttons-before-right';
|
||||
}
|
||||
|
||||
$bulkUploadBtn = new ArrayData(array(
|
||||
'Link' => $gridField->Link('bulkimageupload')
|
||||
));
|
||||
|
||||
return array(
|
||||
$targetFragment => $bulkUploadBtn->renderWith('BulkUploadButton')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return array
|
||||
*/
|
||||
public function getURLHandlers($gridField) {
|
||||
return array(
|
||||
'bulkimageupload' => 'handleBulkUpload'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pass control over to the RequestHandler
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function handleBulkUpload($gridField, $request)
|
||||
{
|
||||
$controller = $gridField->getForm()->Controller();
|
||||
$handler = new GridFieldBulkImageUpload_Request($gridField, $this, $controller);
|
||||
|
||||
return $handler->handleRequest($request, DataModel::inst());
|
||||
}
|
||||
}
|
|
@ -1,485 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* Handles request from the GridFieldBulkImageUpload component
|
||||
*
|
||||
* Handles:
|
||||
* * Form creation
|
||||
* * file upload
|
||||
* * editing and cancelling records
|
||||
*
|
||||
* @author colymba
|
||||
* @package GridFieldBulkEditingTools
|
||||
*/
|
||||
class GridFieldBulkImageUpload_Request extends RequestHandler {
|
||||
|
||||
/**
|
||||
*
|
||||
* @var GridField
|
||||
*/
|
||||
protected $gridField;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var GridField_URLHandler
|
||||
*/
|
||||
protected $component;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var Controller
|
||||
*/
|
||||
protected $controller;
|
||||
|
||||
/**
|
||||
* Cache the records FieldList from getCMSfields()
|
||||
*
|
||||
* @var FieldList
|
||||
*/
|
||||
protected $recordCMSFieldList;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static $allowed_actions = array(
|
||||
'index', 'upload', 'update', 'cancel'
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'$Action!' => '$Action'
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param GridFIeld $gridField
|
||||
* @param GridField_URLHandler $component
|
||||
* @param Controller $controller
|
||||
*/
|
||||
public function __construct($gridField, $component, $controller) {
|
||||
$this->gridField = $gridField;
|
||||
$this->component = $component;
|
||||
$this->controller = $controller;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL for this RequestHandler
|
||||
*
|
||||
* @author SilverStripe
|
||||
* @see GridFieldDetailForm_ItemRequest
|
||||
* @param string $action
|
||||
* @return string
|
||||
*/
|
||||
public function Link($action = null) {
|
||||
return Controller::join_links($this->gridField->Link(), 'bulkimageupload', $action);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the first has_one Image relation from the GridField managed DataObject
|
||||
* i.e. 'MyImage' => 'Image' will return 'MyImage'
|
||||
*
|
||||
* @return string Name of the $has_one relation
|
||||
*/
|
||||
function getDefaultFileRelationName()
|
||||
{
|
||||
$recordClass = $this->gridField->list->dataClass;
|
||||
$recordHasOneFields = Config::inst()->get($recordClass, 'has_one', Config::INHERITED);
|
||||
|
||||
$imageField = null;
|
||||
foreach( $recordHasOneFields as $field => $type )
|
||||
{
|
||||
if($type == 'Image' || is_subclass_of($type, 'Image')) {
|
||||
$imageField = $field;// . 'ID';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $imageField;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the Image field name from the managed record
|
||||
* Either as set in the component config or the default one
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
function getFileRelationName()
|
||||
{
|
||||
$fieldName = $this->component->getConfig('fileRelationName');
|
||||
if ( $fieldName == null ) $fieldName = $this->getDefaultFileRelationName();
|
||||
|
||||
return $fieldName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the ClassName of the fileRelation
|
||||
* i.e. 'MyImage' => 'Image' will return 'Image'
|
||||
* i.e. 'MyImage' => 'File' will return 'File'
|
||||
*
|
||||
* @return string file relation className
|
||||
*/
|
||||
private function getFileRelationClassName()
|
||||
{
|
||||
$recordClass = $this->gridField->list->dataClass;
|
||||
$recordHasOneFields = Config::inst()->get($recordClass, 'has_one', Config::INHERITED);
|
||||
|
||||
$fieldName = $this->getFileRelationName();
|
||||
if($fieldName != null)
|
||||
{
|
||||
return $recordHasOneFields[$fieldName];
|
||||
}
|
||||
else{
|
||||
return 'File';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of editable fields from the managed record
|
||||
* Either as set in the component config or the default ones
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function getRecordEditableFields()
|
||||
{
|
||||
$fields = $this->component->getConfig('editableFields');
|
||||
if ( $fields == null ) $fields = $this->getDefaultRecordEditableFields();
|
||||
|
||||
return $fields;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type $recordID
|
||||
* @return type
|
||||
*/
|
||||
function getRecordHTMLFormFields( $recordID = 0 )
|
||||
{
|
||||
$config = $this->component->getConfig();
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::getModelCMSDataFields( $config, $this->gridField->list->dataClass );
|
||||
|
||||
//@TODO: if editableFields given use them with filterNonEditableRecordsFields()
|
||||
// otherwise go through getModelFilteredDataFields
|
||||
|
||||
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::filterNonEditableRecordsFields($config, $recordCMSDataFields);
|
||||
|
||||
if ( $config['fileRelationName'] == null ) $config['fileRelationName'] = $this->getDefaultFileRelationName();
|
||||
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::getModelFilteredDataFields($config, $recordCMSDataFields);
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::populateCMSDataFields($recordCMSDataFields, $this->gridField->list->dataClass, $recordID);
|
||||
$formFieldsHTML = GridFieldBulkEditingHelper::dataFieldsToHTML($recordCMSDataFields);
|
||||
$formFieldsHTML = GridFieldBulkEditingHelper::escapeFormFieldsHTML($formFieldsHTML, $recordID);
|
||||
|
||||
return $formFieldsHTML;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and return the bulk upload form
|
||||
*
|
||||
* @return Form
|
||||
*/
|
||||
public function uploadForm($id = null, $fields = null)
|
||||
{
|
||||
$crumbs = $this->Breadcrumbs();
|
||||
if($crumbs && $crumbs->count()>=2)
|
||||
{
|
||||
$one_level_up = $crumbs->offsetGet($crumbs->count()-2);
|
||||
$one_level_up = $one_level_up->Link;
|
||||
}
|
||||
|
||||
$actions = new FieldList();
|
||||
|
||||
$actions->push(
|
||||
FormAction::create('Finish', _t('GridFieldBulkTools.FINISH_BTN_LABEL', 'Finish'))
|
||||
->setAttribute('id', 'bulkImageUploadFinishBtn')
|
||||
->addExtraClass('cms-panel-link')
|
||||
->setAttribute('data-icon', 'accept')
|
||||
->setAttribute('href', $one_level_up)
|
||||
->setUseButtonTag(true)
|
||||
->setAttribute('src', '')//changes type to image so isn't hooked by default actions handlers
|
||||
);
|
||||
|
||||
$actions->push(
|
||||
FormAction::create('SaveAll', _t('GridFieldBulkTools.SAVE_BTN_LABEL', 'Save All'))
|
||||
->setAttribute('id', 'bulkImageUploadUpdateBtn')
|
||||
->addExtraClass('ss-ui-action-constructive')
|
||||
->setAttribute('data-icon', 'accept')
|
||||
->setAttribute('data-url', $this->Link('update'))
|
||||
->setUseButtonTag(true)
|
||||
->setAttribute('src', '')//changes type to image so isn't hooked by default actions handlers
|
||||
);
|
||||
|
||||
$actions->push(
|
||||
FormAction::create('Cancel', _t('GridFieldBulkTools.CANCEL_BTN_LABEL', 'Cancel & Delete All'))
|
||||
->setAttribute('id', 'bulkImageUploadUpdateCancelBtn')
|
||||
->addExtraClass('ss-ui-action-destructive')
|
||||
->setAttribute('data-icon', 'decline')
|
||||
->setAttribute('data-url', $this->Link('cancel'))
|
||||
->setUseButtonTag(true)
|
||||
->setAttribute('src', '')//changes type to image so isn't hooked by default actions handlers
|
||||
);
|
||||
|
||||
|
||||
/* *
|
||||
* UploadField
|
||||
*/
|
||||
$fileRelationName = $this->getFileRelationName();
|
||||
$uploadField = UploadField::create($fileRelationName, '');
|
||||
$uploadField->setConfig('previewMaxWidth', 40);
|
||||
$uploadField->setConfig('previewMaxHeight', 30);
|
||||
$uploadField->addExtraClass('ss-assetuploadfield');
|
||||
$uploadField->removeExtraClass('ss-uploadfield');
|
||||
$uploadField->setTemplate('AssetUploadField');
|
||||
|
||||
$uploadField->setDownloadTemplateName('colymba-gfbiu-uploadfield-downloadtemplate');
|
||||
|
||||
//always overwrite
|
||||
$uploadField->setOverwriteWarning(false);
|
||||
|
||||
/* *
|
||||
* UploadField configs
|
||||
*/
|
||||
//custom upload url
|
||||
$uploadField->setConfig('url', $this->Link('upload'));
|
||||
|
||||
//max file size
|
||||
$maxFileSize = $this->component->getConfig('maxFileSize');
|
||||
if ( $maxFileSize !== null )
|
||||
{
|
||||
$uploadField->getValidator()->setAllowedMaxFileSize( $maxFileSize );
|
||||
}
|
||||
|
||||
//upload dir
|
||||
$uploadDir = $this->component->getConfig('folderName');
|
||||
if ( $uploadDir !== null )
|
||||
{
|
||||
$uploadField->setFolderName($uploadDir);
|
||||
}
|
||||
|
||||
//sequential upload
|
||||
$uploadField->setConfig('sequentialUploads', $this->component->getConfig('sequentialUploads'));
|
||||
|
||||
//Create form
|
||||
$form = new Form(
|
||||
$this,
|
||||
'uploadForm',
|
||||
new FieldList(
|
||||
$uploadField
|
||||
),
|
||||
$actions
|
||||
);
|
||||
|
||||
if($one_level_up)
|
||||
{
|
||||
$form->Backlink = $one_level_up;
|
||||
}
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default and main action that returns the upload form etc...
|
||||
*
|
||||
* @return string Form's HTML
|
||||
*/
|
||||
public function index($request)
|
||||
{
|
||||
Requirements::javascript(FRAMEWORK_DIR . '/javascript/AssetUploadField.js');
|
||||
Requirements::css(FRAMEWORK_DIR . '/css/AssetUploadField.css');
|
||||
|
||||
$form = $this->uploadForm();
|
||||
$form->setTemplate('LeftAndMain_EditForm');
|
||||
$form->addExtraClass('cms-content center LeftAndMain'); //not using cms-edit-form to avoid btn being hooked with default handlers
|
||||
$form->setAttribute('data-pjax-fragment', 'Content');
|
||||
|
||||
Requirements::javascript(THIRDPARTY_DIR . '/javascript-templates/tmpl.js');
|
||||
|
||||
Requirements::javascript(BULK_EDIT_TOOLS_PATH . '/javascript/GridFieldBulkImageUpload.js');
|
||||
Requirements::css(BULK_EDIT_TOOLS_PATH . '/css/GridFieldBulkImageUpload.css');
|
||||
Requirements::javascript(BULK_EDIT_TOOLS_PATH . '/javascript/GridFieldBulkImageUpload_downloadtemplate.js');
|
||||
Requirements::add_i18n_javascript(BULK_EDIT_TOOLS_PATH . '/javascript/lang');
|
||||
|
||||
if($request->isAjax())
|
||||
{
|
||||
$response = new SS_HTTPResponse(
|
||||
Convert::raw2json(array( 'Content' => $form->forAjaxTemplate()->getValue() ))
|
||||
);
|
||||
$response->addHeader('X-Pjax', 'Content');
|
||||
$response->addHeader('Content-Type', 'text/json');
|
||||
$response->addHeader('X-Title', 'SilverStripe - Bulk '.$this->gridField->list->dataClass.' Image Upload');
|
||||
return $response;
|
||||
}
|
||||
else {
|
||||
$controller = $this->getToplevelController();
|
||||
return $controller->customise(array( 'Content' => $form ));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Traverse up nested requests until we reach the first that's not a GridFieldDetailForm or GridFieldDetailForm_ItemRequest.
|
||||
* The opposite of {@link Controller::curr()}, required because
|
||||
* Controller::$controller_stack is not directly accessible.
|
||||
*
|
||||
* @return Controller
|
||||
*/
|
||||
protected function getToplevelController() {
|
||||
$c = $this->controller;
|
||||
while($c && ($c instanceof GridFieldDetailForm_ItemRequest || $c instanceof GridFieldDetailForm)) {
|
||||
$c = $c->getController();
|
||||
}
|
||||
return $c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process upload through UploadField,
|
||||
* creates new record and link newly uploaded file
|
||||
* adds record to GrifField relation list
|
||||
* and return image/file data and record edit form
|
||||
*
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return string json
|
||||
*/
|
||||
public function upload(SS_HTTPRequest $request)
|
||||
{
|
||||
//create record
|
||||
$recordClass = $this->gridField->list->dataClass;
|
||||
$record = Object::create($recordClass);
|
||||
$record->write();
|
||||
|
||||
// passes the current gridfield-instance to a call-back method on the new object
|
||||
$record->extend("onBulkImageUpload", $this->gridField);
|
||||
|
||||
//get uploadField and process upload
|
||||
$fileRelationName = $this->getFileRelationName();
|
||||
$uploadField = $this->uploadForm()->Fields()->fieldByName($fileRelationName);
|
||||
$uploadField->setRecord($record);
|
||||
$uploadResponse = $uploadField->upload( $request );
|
||||
|
||||
//get uploaded File response datas
|
||||
$uploadResponse = Convert::json2array( $uploadResponse->getBody() );
|
||||
$uploadResponse = array_shift( $uploadResponse );
|
||||
|
||||
// Attach the file to record.
|
||||
$record->{"{$fileRelationName}ID"} = $uploadResponse['id'];
|
||||
$record->write();
|
||||
|
||||
// attached record to gridField relation
|
||||
$this->gridField->list->add($record->ID);
|
||||
|
||||
//get record's CMS Fields
|
||||
$recordEditableFormFields = $this->getRecordHTMLFormFields( $record->ID );
|
||||
|
||||
//fetch uploadedFile record and sort out previewURL
|
||||
//update $uploadResponse datas in case changes happened onAfterWrite()
|
||||
$uploadedFile = DataObject::get_by_id( $this->getFileRelationClassName(), $uploadResponse['id'] );
|
||||
if ( $uploadedFile )
|
||||
{
|
||||
$uploadResponse['name'] = $uploadedFile->Name;
|
||||
$uploadResponse['url'] = $uploadedFile->getURL();
|
||||
|
||||
if ( $uploadedFile instanceof Image )
|
||||
{
|
||||
$uploadResponse['preview_url'] = $uploadedFile->setHeight(55)->Link();
|
||||
$uploadResponse['thumbnail_url'] = $uploadedFile->StripThumbnail()->getURL();
|
||||
}
|
||||
else{
|
||||
$uploadResponse['preview_url'] = $uploadedFile->Icon();
|
||||
$uploadResponse['thumbnail_url'] = $uploadedFile->Icon();
|
||||
}
|
||||
}
|
||||
|
||||
// Collect all output data.
|
||||
$return = array_merge($uploadResponse, array(
|
||||
'record' => array(
|
||||
'ID' => $record->ID,
|
||||
'fields' => $recordEditableFormFields
|
||||
)
|
||||
));
|
||||
|
||||
$response = new SS_HTTPResponse(Convert::raw2json(array($return)));
|
||||
$response->addHeader('Content-Type', 'text/plain');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update a record with the newly edited fields
|
||||
*
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return string
|
||||
*/
|
||||
public function update(SS_HTTPRequest $request)
|
||||
{
|
||||
$data = GridFieldBulkEditingHelper::unescapeFormFieldsPOSTData($request->requestVars());
|
||||
$record = DataObject::get_by_id($this->gridField->list->dataClass, $data['ID']);
|
||||
|
||||
foreach($data as $field => $value)
|
||||
{
|
||||
if ( $record->hasMethod($field) ) {
|
||||
$list = $record->$field();
|
||||
$list->setByIDList( $value );
|
||||
}else{
|
||||
$record->setCastedField($field, $value);
|
||||
}
|
||||
}
|
||||
$record->write();
|
||||
|
||||
return '{done:1,recordID:'.$data['ID'].'}';
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the Image Object and File as well as the DataObject
|
||||
* according to the ID sent from the form
|
||||
*
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return string json
|
||||
*/
|
||||
public function cancel(SS_HTTPRequest $request)
|
||||
{
|
||||
$data = GridFieldBulkEditingHelper::unescapeFormFieldsPOSTData($request->requestVars());
|
||||
$return = array();
|
||||
|
||||
$recordClass = $this->gridField->list->dataClass;
|
||||
$record = DataObject::get_by_id($recordClass, $data['ID']);
|
||||
|
||||
$imageField = $this->getFileRelationName();
|
||||
$imageID = $record->$imageField.'ID';
|
||||
$image = DataObject::get_by_id('Image', $imageID);
|
||||
|
||||
$return[$data['ID']]['imageID'] = $imageID;
|
||||
$return[$data['ID']]['deletedDataObject'] = DataObject::delete_by_id($recordClass, $data['ID']);
|
||||
|
||||
$return[$data['ID']]['deletedFormattedImages'] = $image->deleteFormattedImages();
|
||||
$return[$data['ID']]['deletedImageFile'] = unlink( Director::getAbsFile($image->getRelativePath()) );
|
||||
|
||||
|
||||
$response = new SS_HTTPResponse(Convert::raw2json($return));
|
||||
$response->addHeader('Content-Type', 'text/plain');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* Edited version of the GridFieldEditForm function
|
||||
* adds the 'Bulk Upload' at the end of the crums
|
||||
*
|
||||
* CMS-specific functionality: Passes through navigation breadcrumbs
|
||||
* to the template, and includes the currently edited record (if any).
|
||||
* see {@link LeftAndMain->Breadcrumbs()} for details.
|
||||
*
|
||||
* @author SilverStripe original Breadcrumbs() method
|
||||
* @see GridFieldDetailForm_ItemRequest
|
||||
* @param boolean $unlinked
|
||||
* @return ArrayData
|
||||
*/
|
||||
function Breadcrumbs($unlinked = false) {
|
||||
if(!$this->controller->hasMethod('Breadcrumbs')) return;
|
||||
|
||||
$items = $this->controller->Breadcrumbs($unlinked);
|
||||
$items->push(new ArrayData(array(
|
||||
'Title' => 'Bulk Upload',
|
||||
'Link' => false
|
||||
)));
|
||||
return $items;
|
||||
}
|
||||
}
|
|
@ -1,225 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
* GridField component for editing attached models in bulk
|
||||
*
|
||||
* @author colymba
|
||||
* @package GridFieldBulkEditingTools
|
||||
*/
|
||||
class GridFieldBulkManager implements GridField_HTMLProvider, GridField_ColumnProvider, GridField_URLHandler {
|
||||
|
||||
/**
|
||||
* component configuration
|
||||
*
|
||||
* 'imageFieldName' => field name of the $has_one Model Image relation
|
||||
* 'editableFields' => fields editable on the Model
|
||||
* 'fieldsClassBlacklist' => field types that will be removed from the automatic form generation
|
||||
* 'fieldsNameBlacklist' => fields that will be removed from the automatic form generation
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $config = array(
|
||||
'editableFields' => null,
|
||||
'fieldsClassBlacklist' => array(),
|
||||
'fieldsNameBlacklist' => array()
|
||||
);
|
||||
|
||||
/**
|
||||
* Holds any class that should not be used as they break the component
|
||||
* These cannot be removed from the blacklist
|
||||
*/
|
||||
protected $forbiddenFieldsClasses = array( 'GridField', 'UploadField' );
|
||||
|
||||
|
||||
public function __construct($editableFields = null)
|
||||
{
|
||||
if ( $editableFields != null ) $this->setConfig ( 'editableFields', $editableFields );
|
||||
$this->config['fieldsClassBlacklist'] = $this->forbiddenFieldsClasses;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a component configuration parameter
|
||||
*
|
||||
* @param string $reference
|
||||
* @param mixed $value
|
||||
*/
|
||||
function setConfig ( $reference, $value )
|
||||
{
|
||||
if (!key_exists($reference, $this->config) ) {
|
||||
user_error("Unknown option reference: $reference", E_USER_ERROR);
|
||||
}
|
||||
|
||||
if ( ($reference == 'fieldsClassBlacklist' || $reference == 'fieldsClassBlacklist' || $reference == 'editableFields') && !is_array($value) )
|
||||
{
|
||||
$value = array($value);
|
||||
}
|
||||
|
||||
//makes sure $forbiddenFieldsClasses are in no matter what
|
||||
if ( $reference == 'fieldsClassBlacklist' )
|
||||
{
|
||||
$value = array_unique( array_merge($value, $this->forbiddenFieldsClasses) );
|
||||
}
|
||||
|
||||
$this->config[$reference] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns one $config parameter of the full $config
|
||||
*
|
||||
* @param string $reference $congif parameter to return
|
||||
* @return mixed
|
||||
*/
|
||||
function getConfig ( $reference = false )
|
||||
{
|
||||
if ( $reference ) return $this->config[$reference];
|
||||
else return $this->config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a field to the editable fields blacklist
|
||||
*
|
||||
* @param string $fieldName
|
||||
* @return boolean
|
||||
*/
|
||||
function addFieldNameToBlacklist ( $fieldName )
|
||||
{
|
||||
return array_push( $this->config['fieldsNameBlacklist'], $fieldName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a class to the editable fields blacklist
|
||||
*
|
||||
* @param string $className
|
||||
* @return boolean
|
||||
*/
|
||||
function addClassToBlacklist ( $className )
|
||||
{
|
||||
return array_push( $this->config['fieldsClassBlacklist'], $className);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a field to the editable fields blacklist
|
||||
*
|
||||
* @param string $fieldName
|
||||
* @return boolean
|
||||
*/
|
||||
function removeFieldNameFromBlacklist ( $fieldName )
|
||||
{
|
||||
if (key_exists($fieldName, $this->config['fieldsNameBlacklist'])) {
|
||||
return delete( $this->config['fieldsNameBlacklist'][$fieldName] );
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a class to the editable fields blacklist
|
||||
*
|
||||
* @param string $className
|
||||
* @return boolean
|
||||
*/
|
||||
function removeClassFromBlacklist ( $className )
|
||||
{
|
||||
if (key_exists($className, $this->config['fieldsNameBlacklist']) && !in_array($className, $this->forbiddenFieldsClasses)) {
|
||||
return delete( $this->config['fieldsNameBlacklist'][$className] );
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* GridField_ColumnProvider */
|
||||
|
||||
function augmentColumns($gridField, &$columns)
|
||||
{
|
||||
if(!in_array('BulkSelect', $columns)) $columns[] = 'BulkSelect';
|
||||
}
|
||||
|
||||
function getColumnsHandled($gridField)
|
||||
{
|
||||
return array('BulkSelect');
|
||||
}
|
||||
|
||||
function getColumnContent($gridField, $record, $columnName)
|
||||
{
|
||||
$cb = CheckboxField::create('bulkSelect_'.$record->ID)
|
||||
->addExtraClass('bulkSelect');
|
||||
return $cb->Field();
|
||||
}
|
||||
|
||||
function getColumnAttributes($gridField, $record, $columnName)
|
||||
{
|
||||
return array('class' => 'col-bulkSelect');
|
||||
}
|
||||
|
||||
function getColumnMetadata($gridField, $columnName)
|
||||
{
|
||||
if($columnName == 'BulkSelect') {
|
||||
return array('title' => 'Select');
|
||||
}
|
||||
}
|
||||
|
||||
/* // GridField_ColumnProvider */
|
||||
|
||||
/**
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return array
|
||||
*/
|
||||
public function getHTMLFragments($gridField) {
|
||||
|
||||
Requirements::css(BULK_EDIT_TOOLS_PATH . '/css/GridFieldBulkManager.css');
|
||||
Requirements::javascript(BULK_EDIT_TOOLS_PATH . '/javascript/GridFieldBulkManager.js');
|
||||
|
||||
$dropDownActionList = DropdownField::create('bulkActionName', '')
|
||||
->setSource( array(
|
||||
'edit' => _t('GridFieldBulkTools.EDIT_SELECT_LABEL', 'Edit'),
|
||||
'unlink' => _t('GridFieldBulkTools.UNLINK_SELECT_LABEL', 'UnLink'),
|
||||
'delete' => _t('GridFieldBulkTools.DELETE_SELECT_LABEL', 'Delete')
|
||||
))
|
||||
->setAttribute('class', 'bulkActionName')
|
||||
->setAttribute('id', '');
|
||||
|
||||
$templateData = new ArrayData(array(
|
||||
'Menu' => $dropDownActionList->FieldHolder(),
|
||||
'Button' => array(
|
||||
'Label' => _t('GridFieldBulkTools.ACTION_BTN_LABEL', 'Go'),
|
||||
'Link' => $gridField->Link('bulkediting').'/edit',
|
||||
'DataURL' => $gridField->Link('bulkediting')
|
||||
),
|
||||
'Select' => array(
|
||||
'Label' => _t('GridFieldBulkTools.SELECT_ALL_LABEL', 'Select all')
|
||||
)
|
||||
));
|
||||
|
||||
$args = array('Colspan' => count($gridField->getColumns())-1);
|
||||
|
||||
return array(
|
||||
'header' => $templateData->renderWith('BulkManagerButtons', $args)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return array
|
||||
*/
|
||||
public function getURLHandlers($gridField) {
|
||||
return array(
|
||||
'bulkediting' => 'handlebulkEdit'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pass control over to the RequestHandler
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function handlebulkEdit($gridField, $request)
|
||||
{
|
||||
$controller = $gridField->getForm()->Controller();
|
||||
$handler = new GridFieldBulkManager_Request($gridField, $this, $controller);
|
||||
|
||||
return $handler->handleRequest($request, DataModel::inst());
|
||||
}
|
||||
}
|
|
@ -1,282 +0,0 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* @author colymba
|
||||
* @package GridFieldBulkEditingTools
|
||||
*/
|
||||
class GridFieldBulkManager_Request extends RequestHandler {
|
||||
|
||||
/**
|
||||
*
|
||||
* @var GridField
|
||||
*/
|
||||
protected $gridField;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var GridField_URLHandler
|
||||
*/
|
||||
protected $component;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var Controller
|
||||
*/
|
||||
protected $controller;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static $allowed_actions = array(
|
||||
'edit', 'update', 'unlink', 'delete'
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'$Action!' => '$Action'
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param GridFIeld $gridField
|
||||
* @param GridField_URLHandler $component
|
||||
* @param Controller $controller
|
||||
*/
|
||||
public function __construct($gridField, $component, $controller) {
|
||||
$this->gridField = $gridField;
|
||||
$this->component = $component;
|
||||
$this->controller = $controller;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL for this RequestHandler
|
||||
*
|
||||
* @author SilverStripe
|
||||
* @see GridFieldDetailForm_ItemRequest
|
||||
* @param string $action
|
||||
* @return string
|
||||
*/
|
||||
public function Link($action = null) {
|
||||
return Controller::join_links($this->gridField->Link(), 'bulkediting', $action);
|
||||
}
|
||||
|
||||
|
||||
public function edit(SS_HTTPRequest $request)
|
||||
{
|
||||
$recordList = $this->getPOSTRecordList($request);
|
||||
|
||||
$crumbs = $this->Breadcrumbs();
|
||||
if($crumbs && $crumbs->count()>=2) $one_level_up = $crumbs->offsetGet($crumbs->count()-2);
|
||||
|
||||
$actions = new FieldList();
|
||||
|
||||
$actions->push(
|
||||
FormAction::create('SaveAll', _t('GridFieldBulkTools.SAVE_BTN_LABEL', 'Save All'))
|
||||
->setAttribute('id', 'bulkEditingUpdateBtn')
|
||||
->addExtraClass('ss-ui-action-constructive cms-panel-link')
|
||||
->setAttribute('data-icon', 'accept')
|
||||
->setAttribute('data-url', $this->Link('update'))
|
||||
->setUseButtonTag(true)
|
||||
);
|
||||
/*
|
||||
if($crumbs && $crumbs->count()>=2)
|
||||
{
|
||||
$actions->push(
|
||||
FormAction::create('SaveAndFinish', 'Save All & Finish')
|
||||
->setAttribute('id', 'bulkEditingUpdateFinishBtn')
|
||||
->addExtraClass('ss-ui-action-constructive cms-panel-link')
|
||||
->setAttribute('data-icon', 'accept')
|
||||
->setAttribute('data-url', $this->Link('update'))
|
||||
->setAttribute('data-return-url', $one_level_up->Link)
|
||||
->setUseButtonTag(true)
|
||||
);
|
||||
} */
|
||||
|
||||
$actions->push(
|
||||
FormAction::create('Cancel', _t('GridFieldBulkTools.CANCEL_BTN_LABEL', 'Cancel & Delete All'))
|
||||
->setAttribute('id', 'bulkEditingUpdateCancelBtn')
|
||||
->addExtraClass('ss-ui-action-destructive cms-panel-link')
|
||||
->setAttribute('data-icon', 'decline')
|
||||
->setAttribute('data-url', $this->Link('cancel'))
|
||||
->setUseButtonTag(true)
|
||||
);
|
||||
|
||||
/*
|
||||
* ********************************************************************
|
||||
*/
|
||||
|
||||
$editedRecordList = new FieldList();
|
||||
$config = $this->component->getConfig();
|
||||
|
||||
foreach ( $recordList as $id )
|
||||
{
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::getModelCMSDataFields( $config, $this->gridField->list->dataClass );
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::getModelFilteredDataFields($config, $recordCMSDataFields);
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::populateCMSDataFields( $recordCMSDataFields, $this->gridField->list->dataClass, $id );
|
||||
|
||||
$recordCMSDataFields['ID'] = new HiddenField('ID', '', $id);
|
||||
$recordCMSDataFields = GridFieldBulkEditingHelper::escapeFormFieldsName( $recordCMSDataFields, $id );
|
||||
|
||||
$editedRecordList->push(
|
||||
ToggleCompositeField::create(
|
||||
'GFBM_'.$id,
|
||||
'#'.$id.': '.DataObject::get_by_id($this->gridField->list->dataClass, $id)->getTitle(),
|
||||
array_values($recordCMSDataFields)
|
||||
)->setHeadingLevel(4)
|
||||
->addExtraClass('bulkEditingFieldHolder')
|
||||
);
|
||||
}
|
||||
|
||||
/*
|
||||
* ********************************************************************
|
||||
*/
|
||||
|
||||
$form = new Form(
|
||||
$this,
|
||||
'bulkEditingForm',
|
||||
$editedRecordList,
|
||||
$actions
|
||||
);
|
||||
|
||||
$form->setTemplate('LeftAndMain_EditForm');
|
||||
$form->addExtraClass('center cms-content');
|
||||
$form->setAttribute('data-pjax-fragment', 'CurrentForm Content');
|
||||
|
||||
if($crumbs && $crumbs->count()>=2){
|
||||
$form->Backlink = $one_level_up->Link;
|
||||
}
|
||||
|
||||
$formHTML = $form->forTemplate();
|
||||
|
||||
Requirements::javascript(BULK_EDIT_TOOLS_PATH . '/javascript/GridFieldBulkManager.js');
|
||||
Requirements::css(BULK_EDIT_TOOLS_PATH . '/css/GridFieldBulkManager.css');
|
||||
Requirements::add_i18n_javascript(BULK_EDIT_TOOLS_PATH . '/javascript/lang');
|
||||
|
||||
$response = new SS_HTTPResponse($formHTML);
|
||||
$response->addHeader('Content-Type', 'text/plain');
|
||||
$response->addHeader('X-Title', 'SilverStripe - Bulk '.$this->gridField->list->dataClass.' Editing');
|
||||
|
||||
if($request->isAjax())
|
||||
{
|
||||
return $response;
|
||||
}
|
||||
else {
|
||||
$controller = $this->getToplevelController();
|
||||
// If not requested by ajax, we need to render it within the controller context+template
|
||||
return $controller->customise(array(
|
||||
'Content' => $response->getBody(),
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Traverse up nested requests until we reach the first that's not a GridFieldDetailForm or GridFieldDetailForm_ItemRequest.
|
||||
* The opposite of {@link Controller::curr()}, required because
|
||||
* Controller::$controller_stack is not directly accessible.
|
||||
*
|
||||
* @return Controller
|
||||
*/
|
||||
protected function getToplevelController() {
|
||||
$c = $this->controller;
|
||||
while($c && ($c instanceof GridFieldDetailForm_ItemRequest || $c instanceof GridFieldDetailForm)) {
|
||||
$c = $c->getController();
|
||||
}
|
||||
return $c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves the changes made in the bulk edit into the dataObject
|
||||
*
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return JSON
|
||||
*/
|
||||
public function update(SS_HTTPRequest $request)
|
||||
{
|
||||
$data = GridFieldBulkEditingHelper::unescapeFormFieldsPOSTData($request->requestVars());
|
||||
$record = DataObject::get_by_id($this->gridField->list->dataClass, $data['ID']);
|
||||
|
||||
foreach($data as $field => $value)
|
||||
{
|
||||
if ( $record->hasMethod($field) ) {
|
||||
$list = $record->$field();
|
||||
$list->setByIDList( $value );
|
||||
}else{
|
||||
$record->setCastedField($field, $value);
|
||||
}
|
||||
}
|
||||
$record->write();
|
||||
|
||||
return '{done:1,recordID:'.$data['ID'].'}';
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return \SS_HTTPResponse
|
||||
*/
|
||||
public function unlink(SS_HTTPRequest $request)
|
||||
{
|
||||
$recordList = $this->getPOSTRecordList($request);
|
||||
$this->gridField->list->removeMany($recordList);
|
||||
|
||||
$response = new SS_HTTPResponse(Convert::raw2json(array($recordList)));
|
||||
$response->addHeader('Content-Type', 'text/plain');
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param SS_HTTPRequest $request
|
||||
* @return \SS_HTTPResponse
|
||||
*/
|
||||
public function delete(SS_HTTPRequest $request)
|
||||
{
|
||||
$recordList = $this->getPOSTRecordList($request);
|
||||
$recordClass = $this->gridField->list->dataClass;
|
||||
$result = array();
|
||||
|
||||
foreach ( $recordList as $id )
|
||||
{
|
||||
$res = DataObject::delete_by_id($recordClass, $id);
|
||||
array_push($result, array($id => $res));
|
||||
}
|
||||
|
||||
$response = new SS_HTTPResponse(Convert::raw2json(array($result)));
|
||||
$response->addHeader('Content-Type', 'text/plain');
|
||||
return $response;
|
||||
}
|
||||
|
||||
|
||||
public function getPOSTRecordList(SS_HTTPRequest $request)
|
||||
{
|
||||
$recordList = $request->requestVars();
|
||||
return $recordList['records'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Edited version of the GridFieldEditForm function
|
||||
* adds the 'Bulk Upload' at the end of the crums
|
||||
*
|
||||
* CMS-specific functionality: Passes through navigation breadcrumbs
|
||||
* to the template, and includes the currently edited record (if any).
|
||||
* see {@link LeftAndMain->Breadcrumbs()} for details.
|
||||
*
|
||||
* @author SilverStripe original Breadcrumbs() method
|
||||
* @see GridFieldDetailForm_ItemRequest
|
||||
* @param boolean $unlinked
|
||||
* @return ArrayData
|
||||
*/
|
||||
function Breadcrumbs($unlinked = false) {
|
||||
if(!$this->controller->hasMethod('Breadcrumbs')) return;
|
||||
|
||||
$items = $this->controller->Breadcrumbs($unlinked);
|
||||
$items->push(new ArrayData(array(
|
||||
'Title' => 'Bulk Editing',
|
||||
'Link' => false
|
||||
)));
|
||||
return $items;
|
||||
}
|
||||
}
|
|
@ -1,22 +1,38 @@
|
|||
{
|
||||
"name": "colymba/gridfield-bulk-editing-tools",
|
||||
"type": "silverstripe-module",
|
||||
"description": "SilverStripe 3 GridField component to upload images and edit records in bulk",
|
||||
"homepage": "https://github.com/colymba/GridFieldBulkEditingTools",
|
||||
"keywords": ["silverstripe", "bulk upload", "image upload", "gridfield bulk upload"],
|
||||
"license": "BSD Simplified",
|
||||
"authors": [{
|
||||
"name": "Thierry Francois",
|
||||
"homepage": "http://colymba.com"
|
||||
},{
|
||||
"name": "GitHub contributors",
|
||||
"homepage": "https://github.com/colymba/GridFieldBulkEditingTools/contributors"
|
||||
}],
|
||||
"repositories": [{
|
||||
"type": "vcs",
|
||||
"url": "git@github.com:colymba/GridFieldBulkEditingTools.git"
|
||||
}],
|
||||
"require": {
|
||||
"silverstripe/framework": "~3.1"
|
||||
}
|
||||
"name": "colymba/gridfield-bulk-editing-tools",
|
||||
"type": "silverstripe-vendormodule",
|
||||
"description": "SilverStripe GridField component to upload images/files and edit records in bulk",
|
||||
"homepage": "https://github.com/colymba/GridFieldBulkEditingTools",
|
||||
"keywords": ["silverstripe", "bulk upload", "image upload", "gridfield bulk upload"],
|
||||
"license": "BSD-3-Clause",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Thierry Francois",
|
||||
"homepage": "http://t-f.io"
|
||||
},
|
||||
{
|
||||
"name": "GitHub contributors",
|
||||
"homepage": "https://github.com/colymba/GridFieldBulkEditingTools/contributors"
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"silverstripe/framework": "^5",
|
||||
"silverstripe/asset-admin": "^2"
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "4.x-dev"
|
||||
},
|
||||
"expose": [
|
||||
"client/dist",
|
||||
"client/lang"
|
||||
]
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Colymba\\BulkTools\\": "src/BulkTools/",
|
||||
"Colymba\\BulkManager\\": "src/BulkManager/",
|
||||
"Colymba\\BulkUpload\\": "src/BulkUploader/"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,65 +0,0 @@
|
|||
/* ************************************************************************
|
||||
* GRIDFIELD
|
||||
*/
|
||||
|
||||
#bulkImageUploadGFButton
|
||||
{
|
||||
float: right;
|
||||
margin: 0 0 0 20px;
|
||||
}
|
||||
|
||||
/* ************************************************************************
|
||||
* UPLOAD
|
||||
*/
|
||||
|
||||
.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-editform
|
||||
{
|
||||
position: relative;
|
||||
height: auto!important;
|
||||
display: block;
|
||||
}
|
||||
|
||||
li.ss-uploadfield-item .ss-uploadfield-item-editform
|
||||
{
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
li.ss-uploadfield-item.template-download .imgPreview
|
||||
{
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
#Form_uploadForm .ss-uploadfield-item-info.updated
|
||||
{
|
||||
background-color: #a4ca3a;
|
||||
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #a4ca3a), color-stop(100%, #59781D));
|
||||
background-image: -webkit-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: -moz-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: -o-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: -ms-linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
background-image: linear-gradient(top, #a4ca3a 0%, #59781D 100%);
|
||||
}
|
||||
|
||||
#Form_uploadForm .ss-uploadfield-item-info.dirty
|
||||
{
|
||||
background-color: #f2ba11;
|
||||
|
||||
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #f2ba11), color-stop(100%, #df6e00));
|
||||
background-image: -webkit-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: -moz-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: -o-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: -ms-linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
background-image: linear-gradient(top, #f2ba11 0%, #df6e00 100%);
|
||||
}
|
||||
|
||||
#Form_uploadForm .ss-uploadfield-item-status.updated
|
||||
{
|
||||
color: #3b8716;
|
||||
}
|
||||
#Form_uploadForm .ss-uploadfield-item-status.dirty
|
||||
{
|
||||
color: #f25000;
|
||||
}
|
|
@ -1,44 +0,0 @@
|
|||
/* ************************************************************************
|
||||
* GRIDFIELD
|
||||
*/
|
||||
|
||||
.cms table.ss-gridfield-table tbody .col-bulkSelect {
|
||||
width: 25px;
|
||||
padding: 0 10px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bulkManagerOptions
|
||||
{
|
||||
}
|
||||
|
||||
.bulkManagerOptions th.bulkmanagerselect
|
||||
{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.bulkManagerOptions .dropdown
|
||||
{
|
||||
display: inline-block;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
color: #000;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.cms table.ss-gridfield-table tbody td a.tempDisabledEditLink
|
||||
{
|
||||
background: url('../../framework/admin/images/btn-icon/document--pencil.png') no-repeat 2px 0px;
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
text-indent: 119988px;
|
||||
overflow: hidden;
|
||||
vertical-align: middle;
|
||||
background-position: 2px 0px;
|
||||
background-repeat: no-repeat no-repeat;
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
# Bulk Manager
|
||||
Perform actions on multiple records straight from the GridField. Comes with *unlink*, *delete* and bulk *editing*. You can also easily create/add your own.
|
||||
|
||||
## Usage
|
||||
Simply add component to your `GridFieldConfig`
|
||||
|
||||
```php
|
||||
$config->addComponent(new \Colymba\BulkManager\BulkManager());
|
||||
```
|
||||
|
||||
## Configuration
|
||||
The component's options can be configurated individually or in bulk through the 'config' functions like this:
|
||||
|
||||
```php
|
||||
$config->getComponentByType('Colymba\\BulkManager\\BulkManager')->setConfig($reference, $value);
|
||||
```
|
||||
|
||||
### $config overview
|
||||
The available configuration options are:
|
||||
* 'editableFields' : array of string referencing specific CMS fields available for editing
|
||||
|
||||
## Custom actions
|
||||
You can remove or add individual action or replace them all via `addBulkAction()` and `removeBulkAction()`
|
||||
|
||||
### Adding a custom action
|
||||
To add a custom bulk action to the list use:
|
||||
|
||||
```php
|
||||
$config
|
||||
->getComponentByType('Colymba\\BulkManager\\BulkManager')
|
||||
->addBulkAction('Namespace\\ClassName')
|
||||
```
|
||||
|
||||
#### Custom action handler
|
||||
When creating your own bulk action `RequestHandler`, you should extend `Colymba\BulkManager\BulkAction\Handler` which will expose 2 useful functions `getRecordIDList()` and `getRecords()` returning either an array with the selected records IDs or a `DataList` of the selected records.
|
||||
|
||||
Make sure to define the handler's `$url_segment`, from which the handler will be called and its relating `$allowed_actions` and `$url_handlers`. See `Handler`, `DeleteHandler` and `UnlinkHandler` for examples.
|
||||
|
||||
#### Front-end config
|
||||
Bulk action handler's front-end configuration is set via class properties `label`, `icon`, `buttonClasses`, `xhr` and `destructive`. See `Handler`, `DeleteHandler` and `UnlinkHandler` for reference and examples.
|
|
@ -0,0 +1,49 @@
|
|||
# Bulk Upload
|
||||
A component for uploading images and/or files in bulk into `DataObject` managed by the `GridField`.
|
||||
|
||||
## Usage 1
|
||||
Simplest usage, add the component to your `GridFieldConfig` as below. The component will find the first `Image` or `File` has_one relation to use on the managed `DataObject`.
|
||||
|
||||
```php
|
||||
$config->addComponent(new \Colymba\BulkUpload\BulkUploader());
|
||||
```
|
||||
|
||||
## Usage 2
|
||||
You can specify which `Image` or `File` field to use and a specific `DataObject` class name to use.
|
||||
$fileRelationName (string, optional): The name of the `Image` or `File` has_one field to use (If your relation is set has 'MyImage' => 'Image', the parameter should be 'MyImage')
|
||||
$recordClassName (string, optional): The class name of the `DataObject` to create (Usefull if for example your `GridField` holds `DataObject`s of different classes, like when used with the `GridFieldAddNewMultiClass` component.)
|
||||
|
||||
```php
|
||||
$config->addComponent(new \Colymba\BulkUpload\BulkUploader($fileRelationName, $recordClassName));
|
||||
```
|
||||
|
||||
## Configuration
|
||||
### Component configuration
|
||||
The component's option can be configurated through the `setConfig` functions like this:
|
||||
|
||||
```php
|
||||
$config->getComponentByType('Colymba\\BulkUpload\\BulkUploader')->setConfig($reference, $value);
|
||||
```
|
||||
|
||||
The available configuration options are:
|
||||
* 'fileRelationName' : sets the name of the `Image` or `File` has_one field to use (i.e. 'MyImage')
|
||||
|
||||
### UploadField configuration
|
||||
The underlying `UploadField` can be configured via a set of APIs:
|
||||
* `setUfConfig($reference, $value)` is used to set an `UploadField::$ufConfig` settings
|
||||
* `setUfSetup($function, $param)` is used to pass function calls on to the `UploadField` itself
|
||||
* `setUfValidatorSetup($function, $param)` is used to pass function calls on to the `UploadField` `Validator` itself
|
||||
|
||||
For example, to set the upload folder, which is set by calling `setFolderName` on the `UploadField`, and setting the upload method as sequential, you would use the following:
|
||||
|
||||
```php
|
||||
$config->getComponentByType('Colymba\\BulkUpload\\BulkUploader')
|
||||
->setUfSetup('setFolderName', 'myFolder')
|
||||
->setUfConfig('sequentialUploads', true);
|
||||
```
|
||||
|
||||
Please see the [`UploadField` api](http://api.silverstripe.org/master/class-UploadField.html) and the [`Upload` api](http://api.silverstripe.org/master/class-Upload.html) for more info.
|
||||
|
||||
|
||||
## Bulk Editing
|
||||
To get a quick edit shortcut to all the newly upload files, please also add the `Colymba\BulkManager\BulkManager` component to your `GridFieldConfig`.
|
|
@ -1,313 +0,0 @@
|
|||
(function($) {
|
||||
$.entwine('ss', function($) {
|
||||
|
||||
// ============================================================================================
|
||||
// start SS namespace overrides
|
||||
// ============================================================================================
|
||||
|
||||
/*
|
||||
* open/close edit form
|
||||
*/
|
||||
$('div.ss-upload .ss-uploadfield-item-edit, div.ss-upload .ss-uploadfield-item-name').entwine({
|
||||
onclick: function(e)
|
||||
{
|
||||
this.closest('.ss-uploadfield-item').find('.ss-uploadfield-item-editform').toggleEditForm();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* edit all button
|
||||
* @TODO fix
|
||||
*/
|
||||
$('div.ss-upload .fileOverview .ss-uploadfield-item-edit-all').entwine({
|
||||
onmatch: function()
|
||||
{
|
||||
if( !$(this).hasClass('opened') ){
|
||||
$(this).addClass('opened');
|
||||
}
|
||||
},
|
||||
onunmatch: function(){},
|
||||
onclick: function(e)
|
||||
{
|
||||
if( $(this).hasClass('opened') )
|
||||
{
|
||||
$('.ss-uploadfield-files .ss-uploadfield-item-editform').hide();
|
||||
$(this).removeClass('opened');
|
||||
}
|
||||
else{
|
||||
$('.ss-uploadfield-files .ss-uploadfield-item-editform').show();
|
||||
$(this).addClass('opened');
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* show/hide edit form
|
||||
* overrides default behaviour
|
||||
*/
|
||||
$('div.ss-upload .ss-uploadfield-item-editform').entwine({
|
||||
toggleEditForm: function()
|
||||
{
|
||||
if( this.css('display') == 'none' ) {
|
||||
this.show();
|
||||
}
|
||||
else{
|
||||
this.hide();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* prevent submitting of individual edit forms
|
||||
*/
|
||||
$('#Form_uploadForm, div.ss-upload .ss-uploadfield-item-editform form').entwine({
|
||||
onsubmit: function(e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* initialise disabled state
|
||||
*/
|
||||
$('#bulkImageUploadUpdateBtn,#bulkImageUploadUpdateCancelBtn').entwine({
|
||||
onmatch: function()
|
||||
{
|
||||
$(this).addClass('ui-state-disabled ssui-button-disabled');
|
||||
$(this).attr('aria-disabled', 'true');
|
||||
$(this).attr('disabled', 'true');
|
||||
},
|
||||
onunmatch: function(){}
|
||||
});
|
||||
|
||||
/*
|
||||
* finish/return button
|
||||
*/
|
||||
$('#bulkImageUploadFinishBtn').entwine({
|
||||
onmatch: function(){},
|
||||
onunmatch: function(){},
|
||||
onclick: function(e)
|
||||
{
|
||||
var formsWithUpadtes = $('form.bulkImageUploadUpdateForm.hasUpdate').length,
|
||||
confirmed = true;
|
||||
|
||||
if ( formsWithUpadtes > 0 )
|
||||
{
|
||||
confirmed = confirm( ss.i18n._t('GridFieldBulkTools.FINISH_CONFIRM') );
|
||||
}
|
||||
|
||||
if (confirmed)
|
||||
{
|
||||
$('.cms-container').loadPanel(this.attr('href'), null, {});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// ============================================================================================
|
||||
// end SS namespace overrides
|
||||
// ============================================================================================
|
||||
|
||||
// ============================================================================================
|
||||
// start add-on behaviours
|
||||
// ============================================================================================
|
||||
|
||||
$.entwine('colymba', function($) {
|
||||
|
||||
/*
|
||||
* handles individual edit forms changes
|
||||
* updates buttons and visual styles
|
||||
*/
|
||||
$('.bulkImageUploadUpdateForm').entwine({
|
||||
onmatch: function(){},
|
||||
onunmatch: function(){},
|
||||
haschanged: function()
|
||||
{
|
||||
var itemInfo,
|
||||
itemStatus
|
||||
;
|
||||
|
||||
itemStatus = $(this).parents('li').find('.ss-uploadfield-item-status');
|
||||
itemInfo = $(this).parents('li').find('.ss-uploadfield-item-info');
|
||||
|
||||
if ( !$(this).hasClass('hasUpdate') )
|
||||
{
|
||||
$(this).addClass('hasUpdate');
|
||||
}
|
||||
|
||||
$(itemStatus).removeClass('updated').addClass('dirty').html(ss.i18n._t('GridFieldBulkTools.EDIT_CHANGED'));
|
||||
if ( $(itemInfo).hasClass('updated') ) $(itemInfo).removeClass('updated');
|
||||
if ( !$(itemInfo).hasClass('dirty') ) $(itemInfo).addClass('dirty');
|
||||
|
||||
$('#bulkImageUploadUpdateBtn').removeClass('ui-state-disabled ssui-button-disabled');
|
||||
$('#bulkImageUploadUpdateBtn').attr('aria-disabled', 'false');
|
||||
$('#bulkImageUploadUpdateBtn').removeAttr('disabled');
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* catches edit form changes
|
||||
*/
|
||||
$('.bulkImageUploadUpdateForm input.text, .bulkImageUploadUpdateForm input.checkbox, .bulkImageUploadUpdateForm select, .bulkImageUploadUpdateForm textarea').entwine({
|
||||
onchange: function()
|
||||
{
|
||||
this.closest('.bulkImageUploadUpdateForm').haschanged();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* catches edit form changes
|
||||
* HTMLEditorField hack
|
||||
*/
|
||||
//textarea node is being removed from the DOM when the HTMLEditorFieldChanges, not the best but works
|
||||
$('.field.htmleditor textarea').entwine({
|
||||
onmatch: function(){},
|
||||
onunmatch: function()
|
||||
{
|
||||
//note sure why querying straight from the texarea doesn't work... maybe because it is already removed from DOM?
|
||||
$('input[type="hidden"][name="'+$(this).attr('name')+'"]').parents('.bulkImageUploadUpdateForm').haschanged();
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* save changes button behaviour
|
||||
* loop through edited forms and submit data
|
||||
*/
|
||||
$('#bulkImageUploadUpdateBtn:not(.ui-state-disabled)').entwine({
|
||||
onmatch: function()
|
||||
{
|
||||
$(this).data('completedForms', 0);
|
||||
},
|
||||
onunmatch: function(){},
|
||||
onclick: function(e)
|
||||
{
|
||||
var formsWithUpadtes,
|
||||
url,
|
||||
data,
|
||||
cacheBuster
|
||||
;
|
||||
|
||||
formsWithUpadtes = $('form.bulkImageUploadUpdateForm.hasUpdate');
|
||||
$(this).data('formsToUpdate', $(formsWithUpadtes).length);
|
||||
url = $(this).data('url');
|
||||
|
||||
if ( $(formsWithUpadtes).length > 0 )
|
||||
{
|
||||
$(this).addClass('loading');
|
||||
}
|
||||
|
||||
$(formsWithUpadtes).each(function()
|
||||
{
|
||||
cacheBuster = new Date().getTime() + '_' + $(this).attr('name');
|
||||
if ( url.indexOf('?') !== -1 )
|
||||
{
|
||||
cacheBuster = '&cacheBuster=' + cacheBuster;
|
||||
}
|
||||
else{
|
||||
cacheBuster = '?cacheBuster=' + cacheBuster;
|
||||
}
|
||||
|
||||
data = $(this).serialize();
|
||||
|
||||
$.ajax({
|
||||
url: url + cacheBuster,
|
||||
data: data,
|
||||
type: "POST",
|
||||
context: $(this)
|
||||
}).done(function() {
|
||||
var btn = $('#bulkImageUploadUpdateBtn'),
|
||||
totalForms = parseInt( $(btn).data('formsToUpdate') ),
|
||||
counter = parseInt( $(btn).data('completedForms') )
|
||||
;
|
||||
|
||||
counter = counter + 1;
|
||||
$(btn).data('completedForms', counter);
|
||||
|
||||
$(this).removeClass('hasUpdate');
|
||||
$(this).parents('li').find('.ss-uploadfield-item-status').removeClass('dirty').addClass('updated').html(ss.i18n._t('GridFieldBulkTools.EDIT_UPDATED'));
|
||||
$(this).parents('li').find('.ss-uploadfield-item-info').removeClass('dirty').addClass('updated');
|
||||
$(this).parents('li').find('.ss-uploadfield-item-editform').css('display', 'none');
|
||||
|
||||
$(this).removeClass('hasUpdate');
|
||||
|
||||
if ( counter == totalForms )
|
||||
{
|
||||
$('#bulkImageUploadUpdateBtn').data('completedForms', 0);
|
||||
$('#bulkImageUploadUpdateBtn').removeClass('loading');
|
||||
$('#bulkImageUploadUpdateBtn').addClass('ui-state-disabled');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
/*
|
||||
* edit forms ovverides
|
||||
*/
|
||||
$('.ss-uploadfield-item-editform').entwine({
|
||||
onmatch: function(e)
|
||||
{
|
||||
$('#bulkImageUploadUpdateCancelBtn').removeClass('ui-state-disabled ssui-button-disabled');
|
||||
$('#bulkImageUploadUpdateCancelBtn').attr('aria-disabled', 'false');
|
||||
$('#bulkImageUploadUpdateCancelBtn').removeAttr('disabled');
|
||||
},
|
||||
onunmatch: function(){}
|
||||
});
|
||||
|
||||
/*
|
||||
* cancel button behaviour
|
||||
* loop through edit forms and submit for deletion
|
||||
*/
|
||||
$('#bulkImageUploadUpdateCancelBtn:not(.ui-state-disabled)').entwine({
|
||||
onclick: function(e)
|
||||
{
|
||||
var url = $(this).data('url'),
|
||||
cacheBuster = new Date().getTime()
|
||||
;
|
||||
|
||||
if ( url.indexOf('?') !== -1 )
|
||||
{
|
||||
cacheBuster = '&cacheBuster=' + cacheBuster;
|
||||
}
|
||||
else{
|
||||
cacheBuster = '?cacheBuster=' + cacheBuster;
|
||||
}
|
||||
|
||||
$('form.bulkImageUploadUpdateForm').each(function()
|
||||
{
|
||||
var data = $(this).serialize();
|
||||
|
||||
$.ajax({
|
||||
url: url + cacheBuster,
|
||||
data: data,
|
||||
type: "POST",
|
||||
context: $(this)
|
||||
}).done(function() {
|
||||
|
||||
$(this).parents('li.ss-uploadfield-item').empty().remove();
|
||||
|
||||
if ( $('li.ss-uploadfield-item').length == 0 )
|
||||
{
|
||||
$('.ss-uploadfield-editandorganize').css('display', 'none');
|
||||
$('#Form_bulkImageUploadForm').removeClass('loading');
|
||||
$('#bulkImageUploadUpdateCancelBtn').addClass('ui-state-disabled');
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
// ============================================================================================
|
||||
// end add-on behaviours
|
||||
// ============================================================================================
|
||||
|
||||
});
|
||||
}(jQuery));
|
|
@ -1,47 +0,0 @@
|
|||
window.tmpl.cache['colymba-gfbiu-uploadfield-downloadtemplate'] = tmpl(
|
||||
'{% for (var i=0, files=o.files, l=files.length, file=files[0]; i<l; file=files[++i]) { %}' +
|
||||
'<li class="ss-uploadfield-item template-download{% if (file.error) { %} ui-state-error{% } %}" data-fileid="{%=file.id%}">' +
|
||||
'<div class="ss-uploadfield-item-preview preview"><span>' +
|
||||
'<img src="{%=file.thumbnail_url%}" alt="" />' +
|
||||
'</span></div>' +
|
||||
'<div class="ss-uploadfield-item-info">' +
|
||||
'{% if (!file.error) { %}' +
|
||||
'<input type="hidden" name="{%=file.fieldname%}[Files][]" value="{%=file.id%}" />' +
|
||||
'{% } %}' +
|
||||
'<label class="ss-uploadfield-item-name">' +
|
||||
'<span class="name" title="{%=file.name%}">{%=file.name%}</span> ' +
|
||||
'<span class="size">{%=o.formatFileSize(file.size)%}</span>' +
|
||||
'{% if (!file.error) { %}' +
|
||||
'<div class="ss-uploadfield-item-status ui-state-success-text" title="'+ss.i18n._t('UploadField.Uploaded', 'Uploaded')+'">'+ss.i18n._t('UploadField.Uploaded', 'Uploaded')+'</div>' +
|
||||
'{% } else { %}' +
|
||||
'<div class="ss-uploadfield-item-status ui-state-error-text" title="{%=o.options.errorMessages[file.error] || file.error%}">{%=o.options.errorMessages[file.error] || file.error%}</div>' +
|
||||
'{% } %}' +
|
||||
'<div class="clear"><!-- --></div>' +
|
||||
'</label>' +
|
||||
'{% if (file.error) { %}' +
|
||||
'<div class="ss-uploadfield-item-actions">' +
|
||||
'<div class="ss-uploadfield-item-cancel ss-uploadfield-item-cancelfailed delete"><button class="icon icon-16" data-icon="delete" title="' + ss.i18n._t('UploadField.CANCELREMOVE', 'Cancel/Remove') + '">' + ss.i18n._t('UploadField.CANCELREMOVE', 'Cancel/Remove') + '</button></div>' +
|
||||
'</div>' +
|
||||
'{% } else { %}' +
|
||||
//'<div class="ss-uploadfield-item-actions">{% print(file.buttons, true); %}</div>' +
|
||||
'{% } %}' +
|
||||
'</div>' +
|
||||
'{% if (!file.error) { %}' +
|
||||
|
||||
'<div class="ss-uploadfield-item-editform">'+
|
||||
'<form action="" method="post" class="bulkImageUploadUpdateForm" name="BIUUF_{%=file.record.ID%}">'+
|
||||
'<input type="hidden" name="record_{%=file.record.ID%}_ID" value="{%=file.record.ID%}"/>'+
|
||||
'<img class="imgPreview" src="{%=file.preview_url%}" />'+
|
||||
|
||||
'{% for (var key in file.record.fields) { %}' +
|
||||
'{%#file.record.fields[key]%}' +
|
||||
'{% } %}' +
|
||||
|
||||
'</form>'+
|
||||
'</div>' +
|
||||
|
||||
'{% } %}' +
|
||||
'</li>' +
|
||||
'{% } %}'
|
||||
);
|
||||
//'<div class="ss-uploadfield-item-editform loading"><iframe frameborder="0" src="{%=file.edit_url%}"></iframe></div>' +
|
|
@ -1,212 +0,0 @@
|
|||
(function($) {
|
||||
|
||||
$.entwine('colymba', function($) {
|
||||
|
||||
$('td.col-bulkSelect').entwine({
|
||||
onmatch: function(){
|
||||
},
|
||||
onunmatch: function(){
|
||||
},
|
||||
onmouseover: function(){
|
||||
//disable default row click behaviour -> avoid navigation to edit form when clicking the checkbox
|
||||
$(this).parents('.ss-gridfield-item').find('.edit-link').removeClass('edit-link').addClass('tempDisabledEditLink');
|
||||
},
|
||||
onmouseout: function(){
|
||||
//re-enable default row click behaviour
|
||||
$(this).parents('.ss-gridfield-item').find('.tempDisabledEditLink').addClass('edit-link').removeClass('tempDisabledEditLink');
|
||||
},
|
||||
onclick: function(e) {
|
||||
//check/uncheck checkbox when clicking cell
|
||||
var cb = $(e.target).find('input');
|
||||
if ( !$(cb).prop('checked') ) $(cb).prop('checked', true);
|
||||
else $(cb).prop('checked', false);
|
||||
}
|
||||
});
|
||||
|
||||
$('td.col-bulkSelect input').entwine({
|
||||
onmatch: function(){
|
||||
},
|
||||
onunmatch: function(){
|
||||
},
|
||||
onclick: function(e) {
|
||||
}
|
||||
});
|
||||
|
||||
$('.toggleSelectAll').entwine({
|
||||
onmatch: function(){
|
||||
},
|
||||
onunmatch: function(){
|
||||
},
|
||||
onclick: function(){
|
||||
var state = $(this).prop('checked');
|
||||
$(this).parents('.ss-gridfield-table').find('td.col-bulkSelect input').each(function(){$(this).prop('checked', state);});
|
||||
}
|
||||
});
|
||||
|
||||
$('select.bulkActionName').entwine({
|
||||
onmatch: function(){
|
||||
},
|
||||
onunmatch: function(){
|
||||
},
|
||||
onchange: function(e) {
|
||||
var value, btn, icon;
|
||||
value = $(this).val();
|
||||
btn = $(this).parents('.bulkManagerOptions').find('.doBulkActionButton');
|
||||
icon = $(this).parents('.bulkManagerOptions').find('.doBulkActionButton .ui-icon');
|
||||
|
||||
switch (value) {
|
||||
case 'edit':
|
||||
$(btn).removeClass('ss-ui-action-destructive');
|
||||
$(btn).attr('data-icon', 'pencil');
|
||||
$(icon).removeClass('btn-icon-decline btn-icon-pencil').addClass('btn-icon-pencil');
|
||||
|
||||
$(btn).attr('href', $(btn).data('url')+'/edit');
|
||||
break;
|
||||
|
||||
case 'unlink':
|
||||
$(btn).removeClass('ss-ui-action-destructive');
|
||||
$(btn).attr('data-icon', 'chain--minus');
|
||||
$(icon).removeClass('btn-icon-decline btn-icon-pencil').addClass('btn-icon-chain--minus');
|
||||
$(btn).removeAttr('href');
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
$(btn).addClass('ss-ui-action-destructive');
|
||||
$(btn).attr('data-icon', 'decline');
|
||||
$(icon).removeClass('btn-icon-decline btn-icon-pencil').addClass('btn-icon-decline');
|
||||
$(btn).removeAttr('href');
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
//@TODO prevent button click to call default url request
|
||||
$('.doBulkActionButton').entwine({
|
||||
onmatch: function(){
|
||||
},
|
||||
onunmatch: function(){
|
||||
},
|
||||
onmouseover: function(){
|
||||
var action, ids = [];
|
||||
action = $(this).parents('.bulkManagerOptions').find('select.bulkActionName').val();
|
||||
if ( action == 'edit' )
|
||||
{
|
||||
$(this).parents('.ss-gridfield-table').find('td.col-bulkSelect input:checked').each(function(){
|
||||
ids.push( parseInt( $(this).attr('name').split('_')[1] ) );
|
||||
});
|
||||
if(ids.length > 0) $(this).attr('href', $(this).data('url')+'/'+action+'?records[]='+ids.join('&records[]=') );
|
||||
}
|
||||
},
|
||||
onclick: function(e) {
|
||||
var action, url, data = {}, ids = [], cacheBuster;
|
||||
action = $(this).parents('.bulkManagerOptions').find('select.bulkActionName').val();
|
||||
|
||||
if ( action != 'edit' )
|
||||
{
|
||||
url = $(this).data('url');
|
||||
cacheBuster = new Date().getTime();
|
||||
|
||||
$(this).parents('.ss-gridfield-table').find('td.col-bulkSelect input:checked').each(function(){
|
||||
ids.push( parseInt( $(this).attr('name').split('_')[1] ) );
|
||||
});
|
||||
data.records = ids;
|
||||
|
||||
if ( url.indexOf('?') !== -1 ) cacheBuster = '&cacheBuster=' + cacheBuster;
|
||||
else cacheBuster = '?cacheBuster=' + cacheBuster;
|
||||
|
||||
$.ajax({
|
||||
url: url + '/' + action + cacheBuster,
|
||||
data: data,
|
||||
type: "POST",
|
||||
context: $(this)
|
||||
}).done(function() {
|
||||
$(this).parents('.ss-gridfield').entwine('.').entwine('ss').reload();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
/* **************************************************************************************
|
||||
* EDITING */
|
||||
|
||||
$('.bulkEditingFieldHolder').entwine({
|
||||
onmatch: function(){
|
||||
var id, name = 'bulkEditingForm';
|
||||
id = $(this).attr('id').split('_')[3];
|
||||
$(this).wrap('<form name="'+name+'_'+id+'" id="'+name+'_'+id+'" class="'+name+'"/>');
|
||||
},
|
||||
onunmatch: function(){
|
||||
}
|
||||
});
|
||||
|
||||
$('.bulkEditingForm').entwine({
|
||||
onsubmit: function(){
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
$('.bulkEditingForm input, .bulkEditingForm select, .bulkEditingForm textarea').entwine({
|
||||
onchange: function(){
|
||||
var form;
|
||||
|
||||
form = this.parents('form.bulkEditingForm');
|
||||
|
||||
if ( !$(form).hasClass('hasUpdate') ) {
|
||||
$(form).addClass('hasUpdate');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#bulkEditingUpdateBtn').entwine({
|
||||
onmatch: function(){
|
||||
$(this).data('completedForms', 0);
|
||||
},
|
||||
onunmatch: function(){
|
||||
},
|
||||
onclick: function(e){
|
||||
var formsWithUpadtes, url, data, cacheBuster;
|
||||
|
||||
formsWithUpadtes = $('form.bulkEditingForm.hasUpdate');
|
||||
$(this).data('formsToUpdate', $(formsWithUpadtes).length);
|
||||
url = $(this).data('url');
|
||||
|
||||
if ( $(formsWithUpadtes).length > 0 ) $(this).addClass('loading');
|
||||
|
||||
$(formsWithUpadtes).each(function(){
|
||||
cacheBuster = new Date().getTime() + '_' + $(this).attr('name');
|
||||
data = $(this).serialize();
|
||||
|
||||
if ( url.indexOf('?') !== -1 ) cacheBuster = '&cacheBuster=' + cacheBuster;
|
||||
else cacheBuster = '?cacheBuster=' + cacheBuster;
|
||||
|
||||
$.ajax({
|
||||
url: url + '/' + cacheBuster,
|
||||
data: data,
|
||||
type: "POST",
|
||||
context: $(this)
|
||||
}).done(function() {
|
||||
|
||||
var btn = $('#bulkEditingUpdateBtn');
|
||||
var totalForms = parseInt( $(btn).data('formsToUpdate') );
|
||||
var counter = parseInt( $(btn).data('completedForms') );
|
||||
counter = counter + 1;
|
||||
$(btn).data('completedForms', counter);
|
||||
|
||||
$(this).removeClass('hasUpdate');
|
||||
|
||||
if ( counter == totalForms ) {
|
||||
$('#bulkEditingUpdateBtn').data('completedForms', 0);
|
||||
$('#bulkEditingUpdateBtn').removeClass('loading');
|
||||
}
|
||||
|
||||
});
|
||||
})
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}(jQuery));
|
|
@ -1,9 +0,0 @@
|
|||
if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
console.error('Class ss.i18n not defined');
|
||||
} else {
|
||||
ss.i18n.addDictionary('en_US', {
|
||||
'GridFieldBulkTools.FINISH_CONFIRM': "You have unsaved changes. Continuing will loose all unsaved data.\n\nDo your really want to continue?",
|
||||
'GridFieldBulkTools.EDIT_CHANGED': 'Modified',
|
||||
'GridFieldBulkTools.EDIT_UPDATED': 'Saved'
|
||||
});
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
console.error('Class ss.i18n not defined');
|
||||
} else {
|
||||
ss.i18n.addDictionary('fr_FR', {
|
||||
'GridFieldBulkTools.FINISH_CONFIRM': "Vous avez des changements non enregistrés. En continuant vous allez perdre toutes vos données non enregistrées.\n\nVoulez-vous vraiment continuer?",
|
||||
'GridFieldBulkTools.EDIT_CHANGED': 'Changé',
|
||||
'GridFieldBulkTools.EDIT_UPDATED': 'Enregisté'
|
||||
});
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
console.error('Class ss.i18n niet gevonden of niet gedefinieerd');
|
||||
} else {
|
||||
ss.i18n.addDictionary('nl_NL', {
|
||||
'GridFieldBulkTools.FINISH_CONFIRM': "Er zijn niet-opgeslagen wijzigingen.\n\nDoorgaan zal al deze niet-opgeslagen wijzigingen vergeten.\n\nWeet je zeker dat je de pagina wilt verlaten?",
|
||||
'GridFieldBulkTools.EDIT_CHANGED': 'Aangepast',
|
||||
'GridFieldBulkTools.EDIT_UPDATED': 'Opgeslagen'
|
||||
});
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
cs:
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: ''
|
||||
EDIT_SELECT_LABEL: Upravit
|
||||
UNLINK_SELECT_LABEL: 'Odstranit vazbu'
|
||||
DELETE_SELECT_LABEL: Smazat
|
||||
ACTION_BTN_LABEL: Provést
|
||||
SELECT_ALL_LABEL: 'Vybrat vše'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: ''
|
||||
TOGGLE_ALL_LINK: ''
|
||||
SAVE_BTN_LABEL: 'Uložit vše'
|
||||
CANCEL_BTN_LABEL: Storno
|
||||
SAVE_RESULT_TEXT: ''
|
|
@ -0,0 +1,18 @@
|
|||
de:
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Einen oder mehrere Einträge gleichzeitig bearbeiten'
|
||||
EDIT_SELECT_LABEL: Bearbeiten
|
||||
UNLINK_SELECT_LABEL: 'Verbindung entfernen'
|
||||
DELETE_SELECT_LABEL: Löschen
|
||||
ACTION_BTN_LABEL: Los
|
||||
SELECT_ALL_LABEL: 'Alle auswählen'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: 'Bearbeite {count} {class}'
|
||||
TOGGLE_ALL_LINK: 'Alle Anzeigen/Verbergen'
|
||||
SAVE_BTN_LABEL: 'Alle speichern'
|
||||
CANCEL_BTN_LABEL: Abbrechen
|
||||
SAVE_RESULT_TEXT: '{count} {class} erfolgreich gespeichert.'
|
25
lang/en.yml
25
lang/en.yml
|
@ -1,11 +1,18 @@
|
|||
en:
|
||||
GridFieldBulkTools:
|
||||
BULK_UPLOAD_BTN_LABEL: Bulk Upload
|
||||
FINISH_BTN_LABEL: Finish
|
||||
SAVE_BTN_LABEL: Save All
|
||||
CANCEL_BTN_LABEL: Cancel & Delete All
|
||||
EDIT_SELECT_LABEL: Edit
|
||||
UNLINK_SELECT_LABEL: Unlink
|
||||
DELETE_SELECT_LABEL: Delete
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
CANCEL_BTN_LABEL: Cancel
|
||||
HEADER_TEXT: 'Editing {count} {class}'
|
||||
SAVE_BTN_LABEL: 'Save all'
|
||||
SAVE_RESULT_TEXT: '{count} {class} saved successfully.'
|
||||
TOGGLE_ALL_LINK: 'Show/Hide all'
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
ACTION_BTN_LABEL: Go
|
||||
SELECT_ALL_LABEL: Select all
|
||||
ARCHIVE_SELECT_LABEL: Archive
|
||||
COMPONENT_TITLE: 'Modify one or more entry at a time.'
|
||||
DELETE_SELECT_LABEL: Delete
|
||||
EDIT_SELECT_LABEL: Edit
|
||||
PUBLISH_SELECT_LABEL: Publish
|
||||
SELECT_ALL_LABEL: 'Select all'
|
||||
UNLINK_SELECT_LABEL: Unlink
|
||||
UNPUBLISH_SELECT_LABEL: UnPublish
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
fi:
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Muokkaa yhtä tai useampaa merkintää kerrallaan.'
|
||||
EDIT_SELECT_LABEL: Muokkaa
|
||||
UNLINK_SELECT_LABEL: Erota
|
||||
DELETE_SELECT_LABEL: Poista
|
||||
ACTION_BTN_LABEL: Suorita
|
||||
SELECT_ALL_LABEL: 'Valitse kaikki'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: 'Muokkaa {count} {class}'
|
||||
TOGGLE_ALL_LINK: 'Näytä/Piilota kaikki'
|
||||
SAVE_BTN_LABEL: 'Tallenna kaikki'
|
||||
CANCEL_BTN_LABEL: Peruuta
|
||||
SAVE_RESULT_TEXT: ''
|
21
lang/fr.yml
21
lang/fr.yml
|
@ -1,11 +1,18 @@
|
|||
fr:
|
||||
GridFieldBulkTools:
|
||||
BULK_UPLOAD_BTN_LABEL: Upload groupé
|
||||
FINISH_BTN_LABEL: Terminer
|
||||
SAVE_BTN_LABEL: Enregistrer tout
|
||||
CANCEL_BTN_LABEL: Annuler & supprimer tout
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Modifier une ou plusieurs entrée à la fois.'
|
||||
EDIT_SELECT_LABEL: Editer
|
||||
UNLINK_SELECT_LABEL: Retirer
|
||||
UNLINK_SELECT_LABEL: Dissocier
|
||||
DELETE_SELECT_LABEL: Supprimer
|
||||
ACTION_BTN_LABEL: Go
|
||||
SELECT_ALL_LABEL: Sélectionner tout
|
||||
SELECT_ALL_LABEL: 'Sélectionner tout'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: 'Edition de {count} {class}'
|
||||
TOGGLE_ALL_LINK: 'Afficher/Masquer tout'
|
||||
SAVE_BTN_LABEL: 'Sauvegarder tout'
|
||||
CANCEL_BTN_LABEL: Annuler
|
||||
SAVE_RESULT_TEXT: '{count} {class} sauvegardés avec succès.'
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
it:
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Modifica una o più voci alla volta.'
|
||||
EDIT_SELECT_LABEL: Modifica
|
||||
UNLINK_SELECT_LABEL: Scollega
|
||||
DELETE_SELECT_LABEL: Elimina
|
||||
ACTION_BTN_LABEL: Vai
|
||||
SELECT_ALL_LABEL: 'Seleziona tutto'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: 'Modifica di {count} {class}'
|
||||
TOGGLE_ALL_LINK: 'Mostra/Nascondi tutto'
|
||||
SAVE_BTN_LABEL: 'Salva tutto'
|
||||
CANCEL_BTN_LABEL: Annulla
|
||||
SAVE_RESULT_TEXT: '{count} {class} salvati con successo.'
|
19
lang/nl.yml
19
lang/nl.yml
|
@ -1,11 +1,18 @@
|
|||
nl:
|
||||
GridFieldBulkTools:
|
||||
BULK_UPLOAD_BTN_LABEL: Bulk Upload
|
||||
FINISH_BTN_LABEL: Afronden
|
||||
SAVE_BTN_LABEL: Alles opslaan
|
||||
CANCEL_BTN_LABEL: Annuleren & alles verwijderen
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Bewerk één of meerdere items tegelijkertijd'
|
||||
EDIT_SELECT_LABEL: Bewerken
|
||||
UNLINK_SELECT_LABEL: Loskoppelen
|
||||
DELETE_SELECT_LABEL: Verwijderen
|
||||
ACTION_BTN_LABEL: Gaan
|
||||
SELECT_ALL_LABEL: Selecteer alles
|
||||
SELECT_ALL_LABEL: 'Selecteer alles'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: '{count} {class} aan het bewerken'
|
||||
TOGGLE_ALL_LINK: 'Toon/verberg alle'
|
||||
SAVE_BTN_LABEL: 'Alles opslaan'
|
||||
CANCEL_BTN_LABEL: Annuleren
|
||||
SAVE_RESULT_TEXT: ''
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
pl:
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Modyfikuj jednocześnie jedną lub więcej pozycji.'
|
||||
EDIT_SELECT_LABEL: Edytuj
|
||||
UNLINK_SELECT_LABEL: Odłącz
|
||||
DELETE_SELECT_LABEL: Usuń
|
||||
ACTION_BTN_LABEL: Wykonaj
|
||||
SELECT_ALL_LABEL: 'Zaznacz wszystkie'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: 'Edycja {count} {class}'
|
||||
TOGGLE_ALL_LINK: 'Pokaż/ukryj wszystkie'
|
||||
SAVE_BTN_LABEL: 'Zapisz wszystkie'
|
||||
CANCEL_BTN_LABEL: Anuluj
|
||||
SAVE_RESULT_TEXT: 'Zapisano pomyślnie {count} {class}'
|
|
@ -0,0 +1,18 @@
|
|||
ru:
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Редактировать одну или несколько записей одновременно'
|
||||
EDIT_SELECT_LABEL: Редактировать
|
||||
UNLINK_SELECT_LABEL: Отвязать
|
||||
DELETE_SELECT_LABEL: Удалить
|
||||
ACTION_BTN_LABEL: Поехали
|
||||
SELECT_ALL_LABEL: 'Выбрать все'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: 'Редактировать {count} {class}'
|
||||
TOGGLE_ALL_LINK: 'Показать/Скрыть все'
|
||||
SAVE_BTN_LABEL: 'Сохранить все'
|
||||
CANCEL_BTN_LABEL: Отменить
|
||||
SAVE_RESULT_TEXT: '{count} {class} успешно сохранены'
|
|
@ -0,0 +1,18 @@
|
|||
sk:
|
||||
GRIDFIELD_BULK_UPLOAD: null
|
||||
GRIDFIELD_BULK_MANAGER:
|
||||
COMPONENT_TITLE: 'Uprav jednu alebo viac položiek súčasne.'
|
||||
EDIT_SELECT_LABEL: Upraviť
|
||||
UNLINK_SELECT_LABEL: 'Odstrániť zo zoznamu'
|
||||
DELETE_SELECT_LABEL: Zmazať
|
||||
ACTION_BTN_LABEL: Vykonaj
|
||||
SELECT_ALL_LABEL: 'Označiť všetky'
|
||||
PUBLISH_SELECT_LABEL: ''
|
||||
UNPUBLISH_SELECT_LABEL: ''
|
||||
ARCHIVE_SELECT_LABEL: ''
|
||||
GRIDFIELD_BULKMANAGER_EDIT_HANDLER:
|
||||
HEADER_TEXT: 'Upravujem {count} {class}'
|
||||
TOGGLE_ALL_LINK: 'Zobraziť/Skryť všetko'
|
||||
SAVE_BTN_LABEL: 'Uložiť všetko'
|
||||
CANCEL_BTN_LABEL: Zrušiť
|
||||
SAVE_RESULT_TEXT: '{count} {class} úspešne uložené.'
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"name": "colymba-gridfield-bulk-editing-tools",
|
||||
"description": "Bulk upload and record editing for SilverStripe CMS",
|
||||
"engines": {
|
||||
"node": "^18.x"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "yarn && yarn lint && rm -rf client/dist/* && NODE_ENV=production webpack --mode production --bail --progress",
|
||||
"dev": "NODE_ENV=development webpack --progress",
|
||||
"watch": "NODE_ENV=development webpack --watch --progress",
|
||||
"css": "WEBPACK_CHILD=css npm run build",
|
||||
"tx": "tx push --source && tx pull --all && node transifex.js",
|
||||
"lint": "eslint client/src && sass-lint client/src",
|
||||
"lint-js": "eslint client/src",
|
||||
"lint-js-fix": "eslint client/src --fix",
|
||||
"lint-sass": "sass-lint client/src"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/tractorcow/silverstripe-fluent.git"
|
||||
},
|
||||
"keywords": [
|
||||
"bulk",
|
||||
"manager",
|
||||
"upload",
|
||||
"silverstripe"
|
||||
],
|
||||
"author": "Thierry Francois",
|
||||
"license": "BSD-3-Clause",
|
||||
"bugs": {
|
||||
"url": "https://github.com/colymba/GridFieldBulkEditingTools/issues"
|
||||
},
|
||||
"homepage": "https://github.com/colymba/GridFieldBulkEditingTools",
|
||||
"dependencies": {
|
||||
"core-js": "^3.26.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@silverstripe/eslint-config": "^1.0.0-alpha6",
|
||||
"@silverstripe/webpack-config": "^2.0.0-alpha5",
|
||||
"webpack": "^5.76.0",
|
||||
"webpack-cli": "^5.0.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"colors": "1.4.0"
|
||||
},
|
||||
"browserslist": [
|
||||
"defaults"
|
||||
]
|
||||
}
|
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
Binary file not shown.
Before Width: | Height: | Size: 41 KiB |
Binary file not shown.
Before Width: | Height: | Size: 23 KiB |
Binary file not shown.
Before Width: | Height: | Size: 59 KiB |
Binary file not shown.
Before Width: | Height: | Size: 99 KiB |
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager\BulkAction;
|
||||
|
||||
use Colymba\BulkManager\BulkAction\Handler;
|
||||
use Colymba\BulkTools\HTTPBulkToolsResponse;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Bulk action handler for recursive archiving records.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class ArchiveHandler extends Handler
|
||||
{
|
||||
/**
|
||||
* URL segment used to call this handler
|
||||
* If none given, @BulkManager will fallback to the Unqualified class name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $url_segment = 'archive';
|
||||
|
||||
/**
|
||||
* RequestHandler allowed actions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $allowed_actions = array('archive');
|
||||
|
||||
/**
|
||||
* RequestHandler url => action map.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'' => 'archive',
|
||||
);
|
||||
|
||||
/**
|
||||
* Front-end label for this handler's action
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'Archive';
|
||||
|
||||
/**
|
||||
* Front-end icon path for this handler's action.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $icon = '';
|
||||
|
||||
/**
|
||||
* Extra classes to add to the bulk action button for this handler
|
||||
* Can also be used to set the button font-icon e.g. font-icon-trash
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $buttonClasses = 'font-icon-trash';
|
||||
|
||||
/**
|
||||
* Whether this handler should be called via an XHR from the front-end
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $xhr = true;
|
||||
|
||||
/**
|
||||
* Set to true is this handler will destroy any data.
|
||||
* A warning and confirmation will be shown on the front-end.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $destructive = true;
|
||||
|
||||
/**
|
||||
* Return i18n localized front-end label
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getI18nLabel()
|
||||
{
|
||||
return _t('GRIDFIELD_BULK_MANAGER.ARCHIVE_SELECT_LABEL', $this->getLabel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Archive the selected records passed from the archive bulk action.
|
||||
*
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return HTTPBulkToolsResponse
|
||||
*/
|
||||
public function archive(HTTPRequest $request)
|
||||
{
|
||||
$records = $this->getRecords();
|
||||
$response = new HTTPBulkToolsResponse(true, $this->gridField);
|
||||
|
||||
try {
|
||||
foreach ($records as $record)
|
||||
{
|
||||
$done = $record->doArchive();
|
||||
if ($done)
|
||||
{
|
||||
$response->addSuccessRecord($record);
|
||||
}else{
|
||||
$response->addFailedRecord($record, $done);
|
||||
}
|
||||
}
|
||||
|
||||
$doneCount = count($response->getSuccessRecords() ?? []);
|
||||
$failCount = count($response->getFailedRecords() ?? []);
|
||||
$message = sprintf(
|
||||
'Archived %1$d of %2$d records.',
|
||||
$doneCount,
|
||||
$doneCount + $failCount
|
||||
);
|
||||
$response->setMessage($message);
|
||||
} catch (Exception $ex) {
|
||||
$response->setStatusCode(500);
|
||||
$response->setMessage($ex->getMessage());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager\BulkAction;
|
||||
|
||||
use Colymba\BulkManager\BulkAction\Handler;
|
||||
use Colymba\BulkTools\HTTPBulkToolsResponse;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use SilverStripe\Core\Convert;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Bulk action handler for deleting records.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class DeleteHandler extends Handler
|
||||
{
|
||||
/**
|
||||
* URL segment used to call this handler
|
||||
* If none given, @BulkManager will fallback to the Unqualified class name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $url_segment = 'delete';
|
||||
|
||||
/**
|
||||
* RequestHandler allowed actions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $allowed_actions = array('delete');
|
||||
|
||||
/**
|
||||
* RequestHandler url => action map.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'' => 'delete',
|
||||
);
|
||||
|
||||
/**
|
||||
* Front-end label for this handler's action
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'Delete';
|
||||
|
||||
/**
|
||||
* Front-end icon path for this handler's action.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $icon = '';
|
||||
|
||||
/**
|
||||
* Extra classes to add to the bulk action button for this handler
|
||||
* Can also be used to set the button font-icon e.g. font-icon-trash
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $buttonClasses = 'font-icon-trash';
|
||||
|
||||
/**
|
||||
* Whether this handler should be called via an XHR from the front-end
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $xhr = true;
|
||||
|
||||
/**
|
||||
* Set to true is this handler will destroy any data.
|
||||
* A warning and confirmation will be shown on the front-end.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $destructive = true;
|
||||
|
||||
/**
|
||||
* Return i18n localized front-end label
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getI18nLabel()
|
||||
{
|
||||
return _t('GRIDFIELD_BULK_MANAGER.DELETE_SELECT_LABEL', $this->getLabel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the selected records passed from the delete bulk action.
|
||||
*
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return HTTPBulkToolsResponse
|
||||
*/
|
||||
public function delete(HTTPRequest $request)
|
||||
{
|
||||
$response = new HTTPBulkToolsResponse(true, $this->gridField);
|
||||
|
||||
try {
|
||||
foreach ($this->getRecords() as $record) {
|
||||
$response->addSuccessRecord($record);
|
||||
$record->delete();
|
||||
}
|
||||
|
||||
$doneCount = count($response->getSuccessRecords() ?? []);
|
||||
$message = sprintf(
|
||||
'Deleted %1$d records.',
|
||||
$doneCount
|
||||
);
|
||||
$response->setMessage($message);
|
||||
} catch (Exception $ex) {
|
||||
$response->setStatusCode(500);
|
||||
$response->setMessage($ex->getMessage());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,503 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager\BulkAction;
|
||||
|
||||
use Colymba\BulkManager\BulkAction\Handler;
|
||||
use SilverStripe\Control\Controller;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use SilverStripe\Forms\FieldList;
|
||||
use SilverStripe\Forms\Form;
|
||||
use SilverStripe\Forms\FormAction;
|
||||
use SilverStripe\Forms\LiteralField;
|
||||
use SilverStripe\Forms\ToggleCompositeField;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\View\ArrayData;
|
||||
use SilverStripe\View\Requirements;
|
||||
|
||||
/**
|
||||
* Bulk action handler for editing records.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class EditHandler extends Handler
|
||||
{
|
||||
/**
|
||||
* URL segment used to call this handler
|
||||
* If none given, @BulkManager will fallback to the Unqualified class name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $url_segment = 'edit';
|
||||
|
||||
/**
|
||||
* RequestHandler allowed actions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $allowed_actions = array(
|
||||
'index',
|
||||
'bulkEditForm',
|
||||
'recordEditForm',
|
||||
);
|
||||
|
||||
/**
|
||||
* RequestHandler url => action map.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'bulkEditForm' => 'bulkEditForm',
|
||||
'recordEditForm' => 'recordEditForm',
|
||||
'' => 'index',
|
||||
);
|
||||
|
||||
/**
|
||||
* Front-end label for this handler's action
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'Edit';
|
||||
|
||||
/**
|
||||
* Front-end icon path for this handler's action.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $icon = '';
|
||||
|
||||
/**
|
||||
* Extra classes to add to the bulk action button for this handler
|
||||
* Can also be used to set the button font-icon e.g. font-icon-trash
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $buttonClasses = 'font-icon-edit';
|
||||
|
||||
/**
|
||||
* Whether this handler should be called via an XHR from the front-end
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $xhr = false;
|
||||
|
||||
/**
|
||||
* Set to true is this handler will destroy any data.
|
||||
* A warning and confirmation will be shown on the front-end.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $destructive = false;
|
||||
|
||||
/**
|
||||
* Return i18n localized front-end label
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getI18nLabel()
|
||||
{
|
||||
return _t('GRIDFIELD_BULK_MANAGER.EDIT_SELECT_LABEL', $this->getLabel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Return URL to this RequestHandler.
|
||||
*
|
||||
* @param string $action Action to append to URL
|
||||
*
|
||||
* @return string URL
|
||||
*/
|
||||
public function Link($action = null)
|
||||
{
|
||||
return Controller::join_links(parent::Link(), $this->stat('url_segment'), $action);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a form for all the selected DataObjects
|
||||
* with their respective editable fields.
|
||||
*
|
||||
* @return Form Selected DataObjects editable fields
|
||||
*/
|
||||
public function bulkEditForm()
|
||||
{
|
||||
$crumbs = $this->Breadcrumbs();
|
||||
if ($crumbs && $crumbs->count() >= 2) {
|
||||
$one_level_up = $crumbs->offsetGet($crumbs->count() - 2);
|
||||
}
|
||||
|
||||
$actions = new FieldList();
|
||||
|
||||
$actions->push(
|
||||
FormAction::create('doSave', _t('GRIDFIELD_BULKMANAGER_EDIT_HANDLER.SAVE_BTN_LABEL', 'Save all'))
|
||||
->setAttribute('id', 'bulkEditingSaveBtn')
|
||||
->addExtraClass('btn btn-success')
|
||||
->setAttribute('data-icon', 'accept')
|
||||
->setUseButtonTag(true)
|
||||
);
|
||||
|
||||
$actions->push(
|
||||
FormAction::create('Cancel', _t('GRIDFIELD_BULKMANAGER_EDIT_HANDLER.CANCEL_BTN_LABEL', 'Cancel'))
|
||||
->setAttribute('id', 'bulkEditingUpdateCancelBtn')
|
||||
->addExtraClass('btn btn-danger cms-panel-link')
|
||||
->setAttribute('data-icon', 'decline')
|
||||
->setAttribute('href', $one_level_up->Link)
|
||||
->setUseButtonTag(true)
|
||||
->setAttribute('src', '')//changes type to image so isn't hooked by default actions handlers
|
||||
);
|
||||
|
||||
$recordList = $this->getRecordIDList();
|
||||
$recordsFieldList = new FieldList();
|
||||
$config = $this->component->getConfig();
|
||||
|
||||
$editingCount = count($recordList ?? []);
|
||||
$modelClass = $this->gridField->getModelClass();
|
||||
$singleton = singleton($modelClass);
|
||||
$titleModelClass = (($editingCount > 1) ? $singleton->i18n_plural_name() : $singleton->i18n_singular_name());
|
||||
|
||||
//some cosmetics
|
||||
$headerText = _t(
|
||||
'GRIDFIELD_BULKMANAGER_EDIT_HANDLER.HEADER_TEXT',
|
||||
'Editing {count} {class}',
|
||||
array(
|
||||
'count' => $editingCount,
|
||||
'class' => $titleModelClass,
|
||||
)
|
||||
);
|
||||
$header = LiteralField::create(
|
||||
'bulkEditHeader',
|
||||
'<h1 id="bulkEditHeader">'.$headerText.'</h1>'
|
||||
);
|
||||
$recordsFieldList->push($header);
|
||||
|
||||
$toggle = LiteralField::create(
|
||||
'bulkEditToggle',
|
||||
'<span id="bulkEditToggle">' . _t('GRIDFIELD_BULKMANAGER_EDIT_HANDLER.TOGGLE_ALL_LINK', 'Show/Hide all') . '</span>'
|
||||
);
|
||||
$recordsFieldList->push($toggle);
|
||||
|
||||
//fetch fields for each record and push to fieldList
|
||||
foreach ($recordList as $id) {
|
||||
$record = DataObject::get_by_id($modelClass, $id);
|
||||
$recordEditingFields = $this->getRecordEditingFields($record);
|
||||
|
||||
$toggleField = ToggleCompositeField::create(
|
||||
'RecordFields_' . $id,
|
||||
$record->getTitle(),
|
||||
$recordEditingFields
|
||||
)
|
||||
->setHeadingLevel(4)
|
||||
->setAttribute('data-id', $id)
|
||||
->addExtraClass('bulkEditingFieldHolder');
|
||||
|
||||
$recordsFieldList->push($toggleField);
|
||||
}
|
||||
|
||||
$bulkEditForm = Form::create(
|
||||
$this,
|
||||
'recordEditForm', //recordEditForm name is here to trick SS to pass all subform request to recordEditForm()
|
||||
$recordsFieldList,
|
||||
$actions
|
||||
);
|
||||
|
||||
if ($crumbs && $crumbs->count() >= 2) {
|
||||
$bulkEditForm->Backlink = $one_level_up->Link;
|
||||
}
|
||||
|
||||
//override form action URL back to bulkEditForm
|
||||
//and add record ids GET var
|
||||
$bulkEditForm->setAttribute(
|
||||
'action',
|
||||
$this->Link('bulkEditForm?records[]='.implode('&', $recordList))
|
||||
);
|
||||
|
||||
return $bulkEditForm;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return's a form with only one record's fields
|
||||
* Used for bulkEditForm subForm requests via ajax.
|
||||
*
|
||||
* @return Form Currently being edited form
|
||||
*/
|
||||
public function recordEditForm()
|
||||
{
|
||||
//clone current request : used to figure out what record we are asking
|
||||
$request = clone $this->request;
|
||||
$recordInfo = $request->shift();
|
||||
|
||||
//shift request till we find the requested field
|
||||
while ($recordInfo) {
|
||||
if ($unescapedRecordInfo = $this->unEscapeFieldName($recordInfo)) {
|
||||
$id = $unescapedRecordInfo['id'];
|
||||
$fieldName = $unescapedRecordInfo['name'];
|
||||
|
||||
$action = $request->shift();
|
||||
break;
|
||||
} else {
|
||||
$recordInfo = $request->shift();
|
||||
}
|
||||
}
|
||||
|
||||
//generate a form with only that requested record's fields
|
||||
if ($id) {
|
||||
$modelClass = $this->gridField->getModelClass();
|
||||
$record = DataObject::get_by_id($modelClass, $id);
|
||||
|
||||
$cmsFields = $record->getCMSFields();
|
||||
$recordEditingFields = $this->getRecordEditingFields($record);
|
||||
|
||||
return Form::create(
|
||||
$this->gridField,
|
||||
'recordEditForm',
|
||||
FieldList::create($recordEditingFields),
|
||||
FieldList::create()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a record's populated form fields
|
||||
* with all filtering done ready to be included in the main form.
|
||||
*
|
||||
* @uses DataObject::getCMSFields()
|
||||
*
|
||||
* @param DataObject $record The record to get the fields from
|
||||
*
|
||||
* @return array The record's editable fields
|
||||
*/
|
||||
private function getRecordEditingFields(DataObject $record)
|
||||
{
|
||||
$tempForm = Form::create(
|
||||
$this,
|
||||
'TempEditForm',
|
||||
$record->getCMSFields(),
|
||||
FieldList::create()
|
||||
);
|
||||
|
||||
$tempForm->loadDataFrom($record);
|
||||
$fields = $tempForm->Fields();
|
||||
|
||||
$fields = $this->filterRecordEditingFields($fields, $record->ID);
|
||||
|
||||
return $fields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters a records editable fields
|
||||
* based on component's config
|
||||
* and escape each field with unique name.
|
||||
*
|
||||
* See {@link BulkManager} component for filtering config.
|
||||
*
|
||||
* @param FieldList $fields Record's CMS Fields
|
||||
* @param int $id Record's ID, used fir unique name
|
||||
*
|
||||
* @return array Filtered record's fields
|
||||
*/
|
||||
private function filterRecordEditingFields(FieldList $fields, $id)
|
||||
{
|
||||
$config = $this->component->getConfig();
|
||||
$editableFields = $config['editableFields'];
|
||||
|
||||
// get all dataFields or just the ones allowed in config
|
||||
if ($editableFields) {
|
||||
$dataFields = array();
|
||||
|
||||
foreach ($editableFields as $fieldName) {
|
||||
$dataFields[$fieldName] = $fields->dataFieldByName($fieldName);
|
||||
}
|
||||
} else {
|
||||
$dataFields = $fields->dataFields();
|
||||
}
|
||||
|
||||
// escape field names with unique prefix
|
||||
foreach ($dataFields as $name => $field) {
|
||||
$field->Name = $this->escapeFieldName($id, $name);
|
||||
$dataFields[$name] = $field;
|
||||
}
|
||||
|
||||
return $dataFields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape a fieldName with a unique prefix.
|
||||
*
|
||||
* @param int $recordID Record id from who the field belongs
|
||||
* @param string $name Field name
|
||||
*
|
||||
* @return string Escaped field name
|
||||
*/
|
||||
protected function escapeFieldName($recordID, $name)
|
||||
{
|
||||
return 'record_' . $recordID . '_' . $name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Un-escape a previously escaped field name.
|
||||
*
|
||||
* @param string $fieldName Escaped field name
|
||||
*
|
||||
* @return array|false Fasle if the fieldName was not escaped. Or Array map with record 'id' and field 'name'
|
||||
*/
|
||||
protected function unEscapeFieldName($fieldName)
|
||||
{
|
||||
$parts = array();
|
||||
$match = preg_match('/record_(\d+)_(\w+)/i', $fieldName ?? '', $parts);
|
||||
|
||||
if (!$match) {
|
||||
return false;
|
||||
} else {
|
||||
return array(
|
||||
'id' => $parts[1],
|
||||
'name' => $parts[2],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and return the bulk editing interface.
|
||||
*
|
||||
* @return string Form's HTML
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$form = $this->bulkEditForm();
|
||||
$form->setTemplate([
|
||||
'type' => 'Includes',
|
||||
'SilverStripe\\Admin\\LeftAndMain_EditForm',
|
||||
]);
|
||||
$form->addExtraClass('center cms-content');
|
||||
$form->setAttribute('data-pjax-fragment', 'CurrentForm Content');
|
||||
|
||||
Requirements::javascript('colymba/gridfield-bulk-editing-tools:client/dist/js/main.js');
|
||||
Requirements::css('colymba/gridfield-bulk-editing-tools:client/dist/styles/main.css');
|
||||
Requirements::add_i18n_javascript('colymba/gridfield-bulk-editing-tools:lang');
|
||||
|
||||
if ($this->request->isAjax()) {
|
||||
$response = new HTTPResponse(
|
||||
Convert::raw2json(array('Content' => $form->forAjaxTemplate()->getValue()))
|
||||
);
|
||||
$response->addHeader('X-Pjax', 'Content');
|
||||
$response->addHeader('Content-Type', 'text/json');
|
||||
$response->addHeader('X-Title', 'SilverStripe - Bulk ' . $this->gridField->list->dataClass . ' Editing');
|
||||
|
||||
return $response;
|
||||
} else {
|
||||
$controller = $this->getToplevelController();
|
||||
|
||||
return $controller->customise(array('Content' => $form));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles bulkEditForm submission
|
||||
* and parses and saves each records data.
|
||||
*
|
||||
* @param array $data Sumitted form data
|
||||
* @param Form $form Form
|
||||
*/
|
||||
public function doSave($data, $form)
|
||||
{
|
||||
$className = $this->gridField->list->dataClass;
|
||||
$singleton = singleton($className);
|
||||
|
||||
$formsData = array();
|
||||
$ids = array();
|
||||
$done = 0;
|
||||
|
||||
//unescape and sort form data per record ID
|
||||
foreach ($data as $fieldName => $value) {
|
||||
if ($fieldInfo = $this->unEscapeFieldName($fieldName)) {
|
||||
if (!isset($formsData[$fieldInfo['id']])) {
|
||||
$formsData[$fieldInfo['id']] = array();
|
||||
}
|
||||
|
||||
$formsData[$fieldInfo['id']][$fieldInfo['name']] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
//process each record's form data and save
|
||||
foreach ($formsData as $recordID => $recordData) {
|
||||
$record = DataObject::get_by_id($className, $recordID);
|
||||
$recordForm = Form::create(
|
||||
$this,
|
||||
'RecordForm',
|
||||
$record->getCMSFields(),
|
||||
FieldList::create()
|
||||
);
|
||||
|
||||
$recordForm->loadDataFrom($recordData);
|
||||
$recordForm->saveInto($record);
|
||||
$id = $record->write();
|
||||
|
||||
array_push($ids, $record->ID);
|
||||
|
||||
if ($id) {
|
||||
++$done;
|
||||
}
|
||||
}
|
||||
|
||||
//compose form message
|
||||
$messageModelClass = (($done > 1) ? $singleton->i18n_plural_name() : $singleton->i18n_singular_name());
|
||||
$message = _t(
|
||||
'GRIDFIELD_BULKMANAGER_EDIT_HANDLER.SAVE_RESULT_TEXT',
|
||||
'{count} {class} saved successfully.',
|
||||
array(
|
||||
'count' => $done,
|
||||
'class' => $messageModelClass,
|
||||
)
|
||||
);
|
||||
$form->sessionMessage($message, 'good');
|
||||
|
||||
//return back to form
|
||||
return Controller::curr()->redirect($this->Link('?records[]=' . implode('&records[]=', $ids)));
|
||||
//return Controller::curr()->redirect($form->Backlink); //returns to gridField
|
||||
}
|
||||
|
||||
/**
|
||||
* Traverse up nested requests until we reach the first that's not a GridFieldDetailForm or GridFieldDetailForm_ItemRequest.
|
||||
* The opposite of {@link Controller::curr()}, required because
|
||||
* Controller::$controller_stack is not directly accessible.
|
||||
*
|
||||
* @return Controller
|
||||
*/
|
||||
protected function getToplevelController()
|
||||
{
|
||||
$c = Controller::curr();
|
||||
while ($c && ($c instanceof GridFieldDetailForm_ItemRequest || $c instanceof GridFieldDetailForm)) {
|
||||
$c = $c->getController();
|
||||
}
|
||||
|
||||
return $c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Edited version of the GridFieldEditForm function
|
||||
* adds the 'Bulk Upload' at the end of the crums.
|
||||
*
|
||||
* CMS-specific functionality: Passes through navigation breadcrumbs
|
||||
* to the template, and includes the currently edited record (if any).
|
||||
* see {@link LeftAndMain->Breadcrumbs()} for details.
|
||||
*
|
||||
* @author SilverStripe original Breadcrumbs() method
|
||||
*
|
||||
* @see GridFieldDetailForm_ItemRequest
|
||||
*
|
||||
* @param bool $unlinked
|
||||
*
|
||||
* @return ArrayData
|
||||
*/
|
||||
public function Breadcrumbs($unlinked = false)
|
||||
{
|
||||
if (!Controller::curr()->hasMethod('Breadcrumbs')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$items = Controller::curr()->Breadcrumbs($unlinked);
|
||||
$items->push(new ArrayData(array(
|
||||
'Title' => 'Bulk Editing',
|
||||
'Link' => false,
|
||||
)));
|
||||
|
||||
return $items;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,272 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager\BulkAction;
|
||||
|
||||
use SilverStripe\Control\Controller;
|
||||
use SilverStripe\Control\RequestHandler;
|
||||
use SilverStripe\Forms\GridField\GridFieldDetailForm;
|
||||
use SilverStripe\Forms\GridField\GridFieldDetailForm_ItemRequest;
|
||||
use SilverStripe\ORM\DataList;
|
||||
use SilverStripe\View\ArrayData;
|
||||
|
||||
/**
|
||||
* Base class to extend for all custom bulk action handlers
|
||||
* Gives access to the GridField, Component and Controller
|
||||
* and implements useful functions like {@link getRecordIDList()} and {@link getRecords()}.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class Handler extends RequestHandler
|
||||
{
|
||||
/**
|
||||
* URL segment used to call this handler
|
||||
* If none given, @BulkManager will fallback to the Unqualified class name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $url_segment = null;
|
||||
|
||||
/**
|
||||
* Related GridField instance.
|
||||
*
|
||||
* @var GridField
|
||||
*/
|
||||
protected $gridField;
|
||||
|
||||
/**
|
||||
* GridFieldBulkManager instance.
|
||||
*
|
||||
* @var GridFieldBulkManager
|
||||
*/
|
||||
protected $component;
|
||||
|
||||
/**
|
||||
* Front-end label for this handler's action
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'Action';
|
||||
|
||||
/**
|
||||
* Front-end icon path for this handler's action.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $icon = '';
|
||||
|
||||
/**
|
||||
* Extra classes to add to the bulk action button for this handler
|
||||
* Can also be used to set the button font-icon e.g. font-icon-trash
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $buttonClasses = '';
|
||||
|
||||
/**
|
||||
* Whether this handler should be called via an XHR from the front-end
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $xhr = true;
|
||||
|
||||
/**
|
||||
* Set to true is this handler will destroy any data.
|
||||
* A warning and confirmation will be shown on the front-end.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $destructive = false;
|
||||
|
||||
/**
|
||||
* @param GridField $gridField
|
||||
* @param GridField_URLHandler $component
|
||||
*/
|
||||
public function __construct($gridField = null, $component = null)
|
||||
{
|
||||
$this->gridField = $gridField;
|
||||
$this->component = $component;
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return front-end configuration
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getConfig()
|
||||
{
|
||||
$config = array(
|
||||
'label' => $this->getI18nLabel(),
|
||||
'icon' => $this->getIcon(),
|
||||
'buttonClasses' => $this->getButtonClasses(),
|
||||
'xhr' => $this->getXhr(),
|
||||
'destructive' => $this->getDestructive()
|
||||
);
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if hanlder performs destructive actions
|
||||
*
|
||||
* @param boolean destructive If true, a warning will be shown on the front-end
|
||||
* @return RequestHandler
|
||||
*/
|
||||
public function setDestructive($destructive)
|
||||
{
|
||||
$this->destructive = $destructive;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* True if the hanlder performs destructive actions
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getDestructive()
|
||||
{
|
||||
return $this->destructive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if handler is called via XHR
|
||||
*
|
||||
* @param boolean xhr If true the handler will be called via an XHR from front-end
|
||||
* @return RequestHandler
|
||||
*/
|
||||
|
||||
public function setXhr($xhr)
|
||||
{
|
||||
$this->xhr = $xhr;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* True if handler is called via XHR
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function getXhr()
|
||||
{
|
||||
return $this->xhr;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set front-end buttonClasses
|
||||
*
|
||||
* @return RequestHandler
|
||||
*/
|
||||
public function setButtonClasses($buttonClasses)
|
||||
{
|
||||
$this->buttonClasses = $buttonClasses;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return front-end buttonClasses
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getButtonClasses()
|
||||
{
|
||||
return $this->buttonClasses;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set front-end icon
|
||||
*
|
||||
* @return RequestHandler
|
||||
*/
|
||||
public function setIcon($icon)
|
||||
{
|
||||
$this->icon = $icon;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return front-end icon
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getIcon()
|
||||
{
|
||||
return $this->icon;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set front-end label
|
||||
*
|
||||
* @return RequestHandler
|
||||
*/
|
||||
public function setLabel($label)
|
||||
{
|
||||
$this->label = $label;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return front-end label
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getLabel()
|
||||
{
|
||||
return $this->label;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return i18n localized front-end label
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getI18nLabel()
|
||||
{
|
||||
return _t('GRIDFIELD_BULK_MANAGER.HANDLER_LABEL', $this->getLabel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the URL for this RequestHandler.
|
||||
*
|
||||
* @author SilverStripe
|
||||
*
|
||||
* @see GridFieldDetailForm_ItemRequest
|
||||
*
|
||||
* @param string $action
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function Link($action = null)
|
||||
{
|
||||
return Controller::join_links($this->gridField->Link(), 'bulkAction', $action);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the list of record IDs selected in the front-end.
|
||||
*
|
||||
* @return array List of IDs
|
||||
*/
|
||||
public function getRecordIDList()
|
||||
{
|
||||
$vars = $this->request->requestVars();
|
||||
|
||||
return $vars['records'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a DataList of the records selected in the front-end.
|
||||
*
|
||||
* @return DataList List of records
|
||||
*/
|
||||
public function getRecords()
|
||||
{
|
||||
$ids = $this->getRecordIDList();
|
||||
|
||||
if ($ids) {
|
||||
$class = $this->gridField->list->dataClass;
|
||||
|
||||
return DataList::create($class)->byIDs($ids);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager\BulkAction;
|
||||
|
||||
use Colymba\BulkManager\BulkAction\Handler;
|
||||
use Colymba\BulkTools\HTTPBulkToolsResponse;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Bulk action handler for recursive publishing records.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class PublishHandler extends Handler
|
||||
{
|
||||
/**
|
||||
* URL segment used to call this handler
|
||||
* If none given, @BulkManager will fallback to the Unqualified class name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $url_segment = 'publish';
|
||||
|
||||
/**
|
||||
* RequestHandler allowed actions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $allowed_actions = array('publish');
|
||||
|
||||
/**
|
||||
* RequestHandler url => action map.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'' => 'publish',
|
||||
);
|
||||
|
||||
/**
|
||||
* Front-end label for this handler's action
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'Publish';
|
||||
|
||||
/**
|
||||
* Front-end icon path for this handler's action.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $icon = '';
|
||||
|
||||
/**
|
||||
* Extra classes to add to the bulk action button for this handler
|
||||
* Can also be used to set the button font-icon e.g. font-icon-trash
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $buttonClasses = 'font-icon-rocket';
|
||||
|
||||
/**
|
||||
* Whether this handler should be called via an XHR from the front-end
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $xhr = true;
|
||||
|
||||
/**
|
||||
* Set to true is this handler will destroy any data.
|
||||
* A warning and confirmation will be shown on the front-end.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $destructive = false;
|
||||
|
||||
/**
|
||||
* Return i18n localized front-end label
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getI18nLabel()
|
||||
{
|
||||
return _t('GRIDFIELD_BULK_MANAGER.PUBLISH_SELECT_LABEL', $this->getLabel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish the selected records passed from the publish bulk action.
|
||||
*
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return HTTPBulkToolsResponse
|
||||
*/
|
||||
public function publish(HTTPRequest $request)
|
||||
{
|
||||
$records = $this->getRecords();
|
||||
$response = new HTTPBulkToolsResponse(false, $this->gridField);
|
||||
|
||||
try {
|
||||
foreach ($records as $record)
|
||||
{
|
||||
$done = $record->publishRecursive();
|
||||
if ($done)
|
||||
{
|
||||
$response->addSuccessRecord($record);
|
||||
}else{
|
||||
$response->addFailedRecord($record, $done);
|
||||
}
|
||||
}
|
||||
|
||||
$doneCount = count($response->getSuccessRecords() ?? []);
|
||||
$failCount = count($response->getFailedRecords() ?? []);
|
||||
$message = sprintf(
|
||||
'Published %1$d of %2$d records.',
|
||||
$doneCount,
|
||||
$doneCount + $failCount
|
||||
);
|
||||
$response->setMessage($message);
|
||||
} catch (Exception $ex) {
|
||||
$response->setStatusCode(500);
|
||||
$response->setMessage($ex->getMessage());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager\BulkAction;
|
||||
|
||||
use Colymba\BulkManager\BulkAction\Handler;
|
||||
use Colymba\BulkTools\HTTPBulkToolsResponse;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Bulk action handler for recursive unpublishing records.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class UnPublishHandler extends Handler
|
||||
{
|
||||
/**
|
||||
* URL segment used to call this handler
|
||||
* If none given, @BulkManager will fallback to the Unqualified class name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $url_segment = 'unpublish';
|
||||
|
||||
/**
|
||||
* RequestHandler allowed actions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $allowed_actions = array('unPublish');
|
||||
|
||||
/**
|
||||
* RequestHandler url => action map.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'' => 'unPublish',
|
||||
);
|
||||
|
||||
/**
|
||||
* Front-end label for this handler's action
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'UnPublish';
|
||||
|
||||
/**
|
||||
* Front-end icon path for this handler's action.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $icon = '';
|
||||
|
||||
/**
|
||||
* Extra classes to add to the bulk action button for this handler
|
||||
* Can also be used to set the button font-icon e.g. font-icon-trash
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $buttonClasses = '';
|
||||
|
||||
/**
|
||||
* Whether this handler should be called via an XHR from the front-end
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $xhr = true;
|
||||
|
||||
/**
|
||||
* Set to true is this handler will destroy any data.
|
||||
* A warning and confirmation will be shown on the front-end.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $destructive = false;
|
||||
|
||||
/**
|
||||
* Return i18n localized front-end label
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getI18nLabel()
|
||||
{
|
||||
return _t('GRIDFIELD_BULK_MANAGER.UNPUBLISH_SELECT_LABEL', $this->getLabel());
|
||||
}
|
||||
|
||||
/**
|
||||
* UnPublish the selected records passed from the unPublish bulk action.
|
||||
*
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return HTTPBulkToolsResponse
|
||||
*/
|
||||
public function unPublish(HTTPRequest $request)
|
||||
{
|
||||
$records = $this->getRecords();
|
||||
$response = new HTTPBulkToolsResponse(false, $this->gridField);
|
||||
|
||||
try {
|
||||
foreach ($records as $record)
|
||||
{
|
||||
$done = $record->doUnpublish();
|
||||
if ($done)
|
||||
{
|
||||
$response->addSuccessRecord($record);
|
||||
}else{
|
||||
$response->addFailedRecord($record, $done);
|
||||
}
|
||||
}
|
||||
|
||||
$doneCount = count($response->getSuccessRecords() ?? []);
|
||||
$failCount = count($response->getFailedRecords() ?? []);
|
||||
$message = sprintf(
|
||||
'UnPublished %1$d of %2$d records.',
|
||||
$doneCount,
|
||||
$doneCount + $failCount
|
||||
);
|
||||
$response->setMessage($message);
|
||||
} catch (Exception $ex) {
|
||||
$response->setStatusCode(500);
|
||||
$response->setMessage($ex->getMessage());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,114 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager\BulkAction;
|
||||
|
||||
use Colymba\BulkManager\BulkAction\Handler;
|
||||
use Colymba\BulkTools\HTTPBulkToolsResponse;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Bulk action handler for unlinking records.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class UnlinkHandler extends Handler
|
||||
{
|
||||
/**
|
||||
* URL segment used to call this handler
|
||||
* If none given, @BulkManager will fallback to the Unqualified class name
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private static $url_segment = 'unlink';
|
||||
|
||||
/**
|
||||
* RequestHandler allowed actions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $allowed_actions = array('unLink');
|
||||
|
||||
/**
|
||||
* RequestHandler url => action map.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'' => 'unLink',
|
||||
);
|
||||
|
||||
/**
|
||||
* Front-end label for this handler's action
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'Unlink';
|
||||
|
||||
/**
|
||||
* Front-end icon path for this handler's action.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $icon = '';
|
||||
|
||||
/**
|
||||
* Extra classes to add to the bulk action button for this handler
|
||||
* Can also be used to set the button font-icon e.g. font-icon-trash
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $buttonClasses = 'font-icon-link-broken';
|
||||
|
||||
/**
|
||||
* Whether this handler should be called via an XHR from the front-end
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $xhr = true;
|
||||
|
||||
/**
|
||||
* Set to true is this handler will destroy any data.
|
||||
* A warning and confirmation will be shown on the front-end.
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $destructive = false;
|
||||
|
||||
/**
|
||||
* Return i18n localized front-end label
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getI18nLabel()
|
||||
{
|
||||
return _t('GRIDFIELD_BULK_MANAGER.UNLINK_SELECT_LABEL', $this->getLabel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Unlink the selected records passed from the unlink bulk action.
|
||||
*
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return HTTPBulkToolsResponse
|
||||
*/
|
||||
public function unLink(HTTPRequest $request)
|
||||
{
|
||||
$ids = $this->getRecordIDList();
|
||||
$response = new HTTPBulkToolsResponse(true, $this->gridField);
|
||||
|
||||
try {
|
||||
//@todo fix this. seems no ids are returned!
|
||||
$response->addSuccessRecords($this->getRecords());
|
||||
$this->gridField->list->removeMany($ids);
|
||||
$response->setMessage('UnLinked records.');
|
||||
} catch (Exception $ex) {
|
||||
$response->setStatusCode(500);
|
||||
$response->setMessage($ex->getMessage());
|
||||
}
|
||||
|
||||
return $response;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,360 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkManager;
|
||||
|
||||
use ReflectionClass;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\RequestHandler;
|
||||
use SilverStripe\Core\Injector\Injectable;
|
||||
use SilverStripe\Core\Injector\Injector;
|
||||
use SilverStripe\Forms\CheckboxField;
|
||||
use SilverStripe\Forms\DropdownField;
|
||||
use SilverStripe\Forms\GridField\GridField;
|
||||
use SilverStripe\Forms\GridField\GridField_ColumnProvider;
|
||||
use SilverStripe\Forms\GridField\GridField_HTMLProvider;
|
||||
use SilverStripe\Forms\GridField\GridField_URLHandler;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\View\ArrayData;
|
||||
use SilverStripe\View\Requirements;
|
||||
use SilverStripe\Control\Controller;
|
||||
|
||||
/**
|
||||
* GridField component for editing attached models in bulk.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class BulkManager implements GridField_HTMLProvider, GridField_ColumnProvider, GridField_URLHandler
|
||||
{
|
||||
use Injectable;
|
||||
|
||||
/**
|
||||
* component configuration.
|
||||
*
|
||||
* 'editableFields' => fields editable on the Model
|
||||
* 'actions' => maps of action URL and Handler Class
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $config = array(
|
||||
'editableFields' => null,
|
||||
'actions' => array(),
|
||||
);
|
||||
|
||||
/**
|
||||
* BulkManager component constructor.
|
||||
*
|
||||
* @param array $editableFields List of editable fields
|
||||
* @param bool $defaultActions Use default actions list. False to start fresh.
|
||||
*/
|
||||
public function __construct($editableFields = null, $defaultActions = true, $defaultVersionedActions = false)
|
||||
{
|
||||
if ($editableFields != null) {
|
||||
$this->setConfig('editableFields', $editableFields);
|
||||
}
|
||||
|
||||
if ($defaultActions) {
|
||||
$this
|
||||
->addBulkAction(BulkAction\EditHandler::class)
|
||||
->addBulkAction(BulkAction\UnlinkHandler::class)
|
||||
->addBulkAction(BulkAction\DeleteHandler::class);
|
||||
} elseif ($defaultVersionedActions) {
|
||||
$this
|
||||
->addBulkAction(BulkAction\EditHandler::class)
|
||||
->addBulkAction(BulkAction\UnlinkHandler::class)
|
||||
->addBulkAction(BulkAction\ArchiveHandler::class)
|
||||
->addBulkAction(BulkAction\UnPublishHandler::class)
|
||||
->addBulkAction(BulkAction\PublishHandler::class);
|
||||
}
|
||||
}
|
||||
|
||||
/* **********************************************************************
|
||||
* Components settings and custom methodes
|
||||
* */
|
||||
|
||||
/**
|
||||
* Sets the component configuration parameter.
|
||||
*
|
||||
* @param string $reference
|
||||
* @param mixed $value
|
||||
*/
|
||||
public function setConfig($reference, $value)
|
||||
{
|
||||
if (!array_key_exists($reference, $this->config ?? [])) {
|
||||
user_error("Unknown option reference: $reference", E_USER_ERROR);
|
||||
}
|
||||
|
||||
if ($reference == 'actions') {
|
||||
user_error('Bulk actions must be edited via addBulkAction() and removeBulkAction()', E_USER_ERROR);
|
||||
}
|
||||
|
||||
if (($reference == 'editableFields') && !is_array($value)) {
|
||||
$value = array($value);
|
||||
}
|
||||
|
||||
$this->config[$reference] = $value;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns one $config parameter of the full $config.
|
||||
*
|
||||
* @param string $reference $congif parameter to return
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getConfig($reference = false)
|
||||
{
|
||||
if ($reference) {
|
||||
return $this->config[$reference];
|
||||
} else {
|
||||
return $this->config;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you add custom bulk actions to the bulk manager interface.
|
||||
* Exisiting handler will be replaced
|
||||
*
|
||||
* @param string $handlerClassName RequestHandler class name for this action.
|
||||
* @param string $action Specific RequestHandler action to be called.
|
||||
*
|
||||
* @return $this Current BulkManager instance
|
||||
*/
|
||||
public function addBulkAction($handlerClassName, $action = null)
|
||||
{
|
||||
if (!class_exists($handlerClassName ?? '')) {
|
||||
user_error("Bulk action handler not found: $handlerClassName", E_USER_ERROR);
|
||||
}
|
||||
|
||||
$handler = Injector::inst()->get($handlerClassName);
|
||||
$urlSegment = $handler->config()->get('url_segment');
|
||||
if (!$urlSegment)
|
||||
{
|
||||
$rc = new ReflectionClass($handlerClassName);
|
||||
$urlSegment = $rc->getShortName();
|
||||
}
|
||||
|
||||
$this->config['actions'][$urlSegment] = $handlerClassName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a bulk actions from the bulk manager interface.
|
||||
*
|
||||
* @param string $handlerClassName RequestHandler class name of the action to remove.
|
||||
* @param string $urlSegment URL segment of the action to remove.
|
||||
*
|
||||
* @return $this Current BulkManager instance
|
||||
*/
|
||||
public function removeBulkAction($handlerClassName = null, $urlSegment = null)
|
||||
{
|
||||
if (!$handlerClassName && !$urlSegment) {
|
||||
user_error("Provide either a class name or URL segment", E_USER_ERROR);
|
||||
}
|
||||
|
||||
foreach ($this->config['actions'] as $url => $class)
|
||||
{
|
||||
if ($handlerClassName === $class || $urlSegment === $url)
|
||||
{
|
||||
unset($this->config['actions'][$url]);
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
|
||||
user_error("Bulk action '$handlerClassName' or '$urlSegment' doesn't exists.", E_USER_ERROR);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the list of bulk actions already provided
|
||||
*
|
||||
* @return RequestHandler[]
|
||||
*/
|
||||
public function getBulkActions()
|
||||
{
|
||||
return $this->config['actions'];
|
||||
}
|
||||
|
||||
/* **********************************************************************
|
||||
* GridField_ColumnProvider
|
||||
* */
|
||||
|
||||
/**
|
||||
* Add bulk select column.
|
||||
*
|
||||
* @param GridField $gridField Current GridField instance
|
||||
* @param array $columns Columns list
|
||||
*/
|
||||
public function augmentColumns($gridField, &$columns)
|
||||
{
|
||||
if (!in_array('BulkSelect', $columns ?? [])) {
|
||||
$columns[] = 'BulkSelect';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Which columns are handled by the component.
|
||||
*
|
||||
* @param GridField $gridField Current GridField instance
|
||||
*
|
||||
* @return array List of handled column names
|
||||
*/
|
||||
public function getColumnsHandled($gridField)
|
||||
{
|
||||
return array('BulkSelect');
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the column's content.
|
||||
*
|
||||
* @param GridField $gridField Current GridField instance
|
||||
* @param DataObject $record Record intance for this row
|
||||
* @param string $columnName Column's name for which we need content
|
||||
*
|
||||
* @return mixed Column's field content
|
||||
*/
|
||||
public function getColumnContent($gridField, $record, $columnName)
|
||||
{
|
||||
$cb = CheckboxField::create('bulkSelect_' . $record->ID)
|
||||
->addExtraClass('bulkSelect no-change-track')
|
||||
->setAttribute('data-record', $record->ID);
|
||||
|
||||
return $cb->Field();
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the column's HTML attributes.
|
||||
*
|
||||
* @param GridField $gridField Current GridField instance
|
||||
* @param DataObject $record Record instance for this row
|
||||
* @param string $columnName Column's name for which we need attributes
|
||||
*
|
||||
* @return array List of HTML attributes
|
||||
*/
|
||||
public function getColumnAttributes($gridField, $record, $columnName)
|
||||
{
|
||||
return array('class' => 'col-bulkSelect');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the column's meta data.
|
||||
*
|
||||
* @param GridField $gridField Current GridField instance
|
||||
* @param string $columnName Column's name for which we need meta data
|
||||
*
|
||||
* @return array List of meta data
|
||||
*/
|
||||
public function getColumnMetadata($gridField, $columnName)
|
||||
{
|
||||
if ($columnName == 'BulkSelect') {
|
||||
return array('title' => 'Select');
|
||||
}
|
||||
}
|
||||
|
||||
/* **********************************************************************
|
||||
* GridField_HTMLProvider
|
||||
* */
|
||||
|
||||
/**
|
||||
* @param GridField $gridField
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getHTMLFragments($gridField)
|
||||
{
|
||||
Requirements::javascript('colymba/gridfield-bulk-editing-tools:client/dist/js/main.js');
|
||||
Requirements::css('colymba/gridfield-bulk-editing-tools:client/dist/styles/main.css');
|
||||
Requirements::add_i18n_javascript('colymba/gridfield-bulk-editing-tools:client/lang');
|
||||
|
||||
if (!count($this->config['actions'] ?? [])) {
|
||||
user_error('Trying to use BulkManager without any bulk action.', E_USER_ERROR);
|
||||
}
|
||||
|
||||
$actionsListSource = array();
|
||||
$actionsConfig = array();
|
||||
|
||||
foreach ($this->config['actions'] as $urlSegment => $handlerClassName) {
|
||||
$handler = Injector::inst()->get($handlerClassName);
|
||||
$handlerConfig = $handler->getConfig();
|
||||
|
||||
$actionsListSource[$urlSegment] = $handlerConfig['label'];
|
||||
$actionsConfig[$urlSegment] = $handlerConfig;
|
||||
}
|
||||
|
||||
$dropDownActionsList = DropdownField::create(
|
||||
'bulkActionName',
|
||||
false
|
||||
)
|
||||
->setSource($actionsListSource)
|
||||
->addExtraClass('bulkActionName no-change-track form-group--no-label')
|
||||
->setAttribute('id', '')
|
||||
->setEmptyString(_t('SilverStripe\Admin\LeftAndMain.DropdownBatchActionsDefault', 'Choose an action...'));
|
||||
|
||||
|
||||
$templateData = array(
|
||||
'Menu' => $dropDownActionsList->FieldHolder(),
|
||||
'Button' => array(
|
||||
'Label' => _t('GRIDFIELD_BULK_MANAGER.ACTION_BTN_LABEL', 'Go'),
|
||||
'DataURL' => $gridField->Link('bulkAction'),
|
||||
'DataConfig' => json_encode($actionsConfig)
|
||||
),
|
||||
'Select' => array(
|
||||
'Label' => _t('GRIDFIELD_BULK_MANAGER.SELECT_ALL_LABEL', 'Select all'),
|
||||
),
|
||||
'Colspan' => (count($gridField->getColumns() ?? []) - 1),
|
||||
);
|
||||
|
||||
$templateData = new ArrayData($templateData);
|
||||
|
||||
return array(
|
||||
'header' => $templateData->renderWith('Colymba\\BulkManager\\BulkManagerButtons'),
|
||||
);
|
||||
}
|
||||
|
||||
/* **********************************************************************
|
||||
* GridField_URLHandler
|
||||
* */
|
||||
|
||||
/**
|
||||
* Returns an action => handler list.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getURLHandlers($gridField)
|
||||
{
|
||||
return array(
|
||||
'bulkAction' => 'handleBulkAction',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pass control over to the RequestHandler
|
||||
* loop through the handlers provided in config['actions']
|
||||
* and find matching url_handlers.
|
||||
*
|
||||
* $url_handlers rule should not use wildcards like '$Action' => '$Action'
|
||||
* but have more specific path defined
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handleBulkAction($gridField, $request)
|
||||
{
|
||||
$controller = Controller::curr();
|
||||
$actionUrlSegment = $request->shift();
|
||||
$handlerClass = $this->config['actions'][$actionUrlSegment];
|
||||
|
||||
$controller->pushCurrent();
|
||||
$handler = Injector::inst()->create($handlerClass, $gridField, $this);
|
||||
if ($handler) {
|
||||
return $handler->handleRequest($request);
|
||||
}
|
||||
|
||||
user_error('Unable to find matching bulk action handler for ' . $actionUrlSegment . ' URL segment.', E_USER_ERROR);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,362 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkTools;
|
||||
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use SilverStripe\Forms\GridField\GridField;
|
||||
use SilverStripe\ORM\ArrayList;
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\ORM\SS_List;
|
||||
use SilverStripe\View\HTML;
|
||||
|
||||
/**
|
||||
* Custom HTTPResponse for all bulk tools to use
|
||||
* for a unified response format and facilitate forn-end handling
|
||||
*
|
||||
* Add custom methods and tool to create a common json output format:
|
||||
* {
|
||||
* isDestructive: false,
|
||||
* isError: false,
|
||||
* isWarning: false,
|
||||
* message: "General response error or not message for the cms user",
|
||||
* successClasses: ['list', 'of-new', 'classes', 'to-add', 'bt-done'],
|
||||
* failedClasses: ['list', 'of-new', 'classes', 'to-add', 'bt-done']
|
||||
* records: {
|
||||
* success: [{
|
||||
* id: 1,
|
||||
* class: 'ObjectClass',
|
||||
* row: 'tr .ss-gridfield-item html markup for this record'
|
||||
* }],
|
||||
* failed: [{
|
||||
* id: 2,
|
||||
* class: 'AnotherClass',
|
||||
* message: 'Erro message for that object.'
|
||||
* }]
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class HTTPBulkToolsResponse extends HTTPResponse
|
||||
{
|
||||
/**
|
||||
* We always return JSON
|
||||
* @var array
|
||||
*/
|
||||
protected $headers = array(
|
||||
"content-type" => "application/json; charset=utf-8",
|
||||
);
|
||||
|
||||
/**
|
||||
* Does the bulk action removes rows?
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $removesRows;
|
||||
|
||||
/**
|
||||
* Bulk action result message
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $message = '';
|
||||
|
||||
/**
|
||||
* GridField instance.
|
||||
*
|
||||
* @var GridField
|
||||
*/
|
||||
protected $gridField;
|
||||
|
||||
/**
|
||||
* List of DataObject that has been modified successfully by the bulk action
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $successRecords = [];
|
||||
|
||||
/**
|
||||
* List of css classes to add to gridfield row modified successfully
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $successClasses = [];
|
||||
|
||||
/**
|
||||
* List of DataObject IDs that failed to be modified by the bulk action
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $failedRecords = [];
|
||||
|
||||
/**
|
||||
* List of css classes to add to gridfield row with errors
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $failedClasses = [];
|
||||
|
||||
/**
|
||||
* Create a new bulk tools HTTP response
|
||||
*
|
||||
* @param boolean $removesRows Does the action removes rows?
|
||||
* @param GridField $gridfield gridfield instance that holds the records list
|
||||
* @param int $statusCode The numeric status code - 200, 404, etc
|
||||
* @param string $statusDescription The text to be given alongside the status code.
|
||||
* See {@link setStatusCode()} for more information.
|
||||
*/
|
||||
public function __construct($removesRows, $gridfield, $statusCode = null)
|
||||
{
|
||||
$this->removesRows = $removesRows;
|
||||
$this->gridField = $gridfield;
|
||||
|
||||
parent::__construct(null, $statusCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* Overridden here so content-type cannot be changed
|
||||
* Add a HTTP header to the response, replacing any header of the same name.
|
||||
*
|
||||
* @param string $header Example: "content-type"
|
||||
* @param string $value Example: "text/xml"
|
||||
* @return $this
|
||||
*/
|
||||
public function addHeader($header, $value)
|
||||
{
|
||||
if($header === "content-type") {
|
||||
return $this;
|
||||
}
|
||||
return parent::addHeader($header, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Overriden here so content-type cannot be changed
|
||||
* Remove an existing HTTP header by its name,
|
||||
* e.g. "Content-Type".
|
||||
*
|
||||
* @param string $header
|
||||
* @return $this
|
||||
*/
|
||||
public function removeHeader($header)
|
||||
{
|
||||
if($header === "content-type") {
|
||||
return $this;
|
||||
}
|
||||
return parent::removeHeader($header);
|
||||
}
|
||||
|
||||
/**
|
||||
* Overridden here so the response body cannot be set manually
|
||||
*
|
||||
* @param string $body
|
||||
* @return $this
|
||||
*/
|
||||
public function setBody($body)
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes sure body is created before being returned
|
||||
* @return string
|
||||
*/
|
||||
public function getBody()
|
||||
{
|
||||
$this->createBody();
|
||||
return $this->body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the general response message
|
||||
*
|
||||
* @param string $message
|
||||
* @return $this
|
||||
*/
|
||||
public function setMessage($message)
|
||||
{
|
||||
$this->message = $message;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a record to the successfully modified list
|
||||
* @param DataObject $record the newly modified dataObject
|
||||
* @return $this
|
||||
*/
|
||||
public function addSuccessRecord($record)
|
||||
{
|
||||
$this->successRecords[] = $record;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a list of records to the successfully modified list
|
||||
* @param SS_List $records newly modified dataObjects list
|
||||
* @return $this
|
||||
*/
|
||||
public function addSuccessRecords(SS_List $records)
|
||||
{
|
||||
array_push($this->successRecords, $records->toArray());
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an ID to the successfully modified list
|
||||
* @param int $id the newly modified ID
|
||||
* @param string $className object class name (default to gridfield getModelClass())
|
||||
* @return $this
|
||||
*/
|
||||
/*public function addSuccessID($id, $className = null)
|
||||
{
|
||||
if (!$className) {
|
||||
$className = $this->>gridField->getModelClass();
|
||||
}
|
||||
//we use all caps ID since DO have their ID ion all caps, so createBody finds it...
|
||||
$this->successRecords[] = (object) ['ID' => (int) $id, 'ClassName' => $className];
|
||||
return $this;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Add an array of ID to the successfully modified list
|
||||
* @param array $ids of the newly modified objects
|
||||
* @return $this
|
||||
*/
|
||||
/*public function addSuccessIDs($ids, $className = null)
|
||||
{
|
||||
//we use all caps ID since DO have their ID ion all caps, so createBody finds it...
|
||||
foreach ($ids as $id) {
|
||||
$this->successRecords[] = (object) ['ID' => (int) $id];
|
||||
}
|
||||
return $this;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Return the list of successful records
|
||||
* @return array
|
||||
*/
|
||||
public function getSuccessRecords()
|
||||
{
|
||||
return $this->successRecords;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a record to the failed to modified list with its error message
|
||||
* @param DataObject $record the failed dataObject
|
||||
* @param string $message error message
|
||||
* @return $this
|
||||
*/
|
||||
public function addFailedRecord($record, $message)
|
||||
{
|
||||
$this->failedRecords[] = array('id' => $record->ID, 'class' => $record->ClassName, 'message' => $message);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a list of records to the failed to modified list with a common error message
|
||||
* @param SS_List $records the failed dataObject list
|
||||
* @param string $message error message
|
||||
* @return $this
|
||||
*/
|
||||
public function addFailedRecords(SS_List $records, $message)
|
||||
{
|
||||
foreach ($records as $record) {
|
||||
$this->failedRecords[] = array('id' => $record->ID, 'class' => $record->ClassName, 'message' => $message);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the list of failed records
|
||||
* @return array
|
||||
*/
|
||||
public function getFailedRecords()
|
||||
{
|
||||
return $this->failedRecords;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a gridfield table row for a given record
|
||||
* @param DataObject $record the record to create the row for
|
||||
* @return string the html TR tag
|
||||
*/
|
||||
protected function getRecordGridfieldRow($record)
|
||||
{
|
||||
$this->gridField->setList(new ArrayList(array($record)));
|
||||
$rowContent = '';
|
||||
|
||||
foreach ($this->gridField->getColumns() as $column) {
|
||||
$colContent = $this->gridField->getColumnContent($record, $column);
|
||||
// Null means this columns should be skipped altogether.
|
||||
if ($colContent === null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$colAttributes = $this->gridField->getColumnAttributes($record, $column);
|
||||
$rowContent .= HTML::createTag(
|
||||
'td',
|
||||
$colAttributes,
|
||||
$colContent
|
||||
);
|
||||
}
|
||||
|
||||
$rowAttributes = array(
|
||||
'class' => 'ss-gridfield-item ' . implode(' ', $this->successClasses),
|
||||
'data-id' => $record->ID,
|
||||
'data-class' => $record->ClassName,
|
||||
);
|
||||
$row = HTML::createTag(
|
||||
'tr',
|
||||
$rowAttributes,
|
||||
$rowContent
|
||||
);
|
||||
return $row;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the response JSON body
|
||||
*/
|
||||
public function createBody()
|
||||
{
|
||||
$body = array(
|
||||
'isDestructive' => $this->removesRows,
|
||||
'isError' => $this->isError(),
|
||||
'isWarning' => false,
|
||||
'message' => $this->message,
|
||||
'successClasses' => $this->successClasses,
|
||||
'failedClasses' => $this->failedClasses
|
||||
);
|
||||
|
||||
if (!$this->isError()) {
|
||||
$body['records'] = array(
|
||||
'success' => array(),
|
||||
'failed' => array()
|
||||
);
|
||||
|
||||
foreach ($this->successRecords as $record) {
|
||||
$data = array('id' => $record->ID, 'class' => str_replace('\\', '\\\\', $record->ClassName));
|
||||
if (!$this->removesRows) {
|
||||
$data['row'] = $this->getRecordGridfieldRow($record);
|
||||
}
|
||||
$body['records']['success'][] = $data;
|
||||
}
|
||||
|
||||
$body['records']['failed'] = $this->failedRecords;
|
||||
}
|
||||
|
||||
if (isset($body['records']['success']) && count($body['records']['success'] ?? []) === 0) {
|
||||
$body['isWarning'] = true;
|
||||
}
|
||||
|
||||
$this->body = json_encode($body);
|
||||
}
|
||||
|
||||
/**
|
||||
* Make sure the body has been created before output
|
||||
* Output body of this response to the browser
|
||||
*/
|
||||
protected function outputBody()
|
||||
{
|
||||
$this->createBody();
|
||||
parent::outputBody();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkUpload;
|
||||
|
||||
use SilverStripe\Control\Controller;
|
||||
//use SilverStripe\Forms\UploadField;
|
||||
use SilverStripe\AssetAdmin\Forms\UploadField;
|
||||
|
||||
/**
|
||||
* Custom UploadField used to override Link()
|
||||
* and redirect UploadField action properly through the GridField.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class BulkUploadField extends UploadField
|
||||
{
|
||||
/**
|
||||
* @var GridField
|
||||
*/
|
||||
protected $gridfield;
|
||||
|
||||
/**
|
||||
* @param GridField $gridfield
|
||||
* @param string $parent
|
||||
* @param string $folderName
|
||||
*/
|
||||
public function __construct($gridfield, $parent, $folderName = null)
|
||||
{
|
||||
$this->gridfield = $gridfield;
|
||||
parent::__construct($parent, $folderName);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function Link($action = null)
|
||||
{
|
||||
return Controller::join_links($this->gridfield->Link(), 'bulkupload/', $action);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,165 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkUpload;
|
||||
|
||||
use Colymba\BulkTools\HTTPBulkToolsResponse;
|
||||
use SilverStripe\Control\Controller;
|
||||
use SilverStripe\Control\RequestHandler;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Control\HTTPResponse;
|
||||
use SilverStripe\Core\Convert;
|
||||
use SilverStripe\Versioned\RecursivePublishable;
|
||||
|
||||
use SilverStripe\AssetAdmin\Controller\AssetAdmin;
|
||||
|
||||
/**
|
||||
* Handles request from the GridFieldBulkUpload component.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class BulkUploadHandler extends RequestHandler
|
||||
{
|
||||
/**
|
||||
* Gridfield instance.
|
||||
*
|
||||
* @var GridField
|
||||
*/
|
||||
protected $gridField;
|
||||
|
||||
/**
|
||||
* Bulk upload component.
|
||||
*
|
||||
* @var BulkUploader
|
||||
*/
|
||||
protected $component;
|
||||
|
||||
/**
|
||||
* RequestHandler allowed actions.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $allowed_actions = array(
|
||||
'upload', 'attach'
|
||||
);
|
||||
|
||||
/**
|
||||
* RequestHandler url => action map.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
private static $url_handlers = array(
|
||||
'$Action!' => '$Action'
|
||||
);
|
||||
|
||||
/**
|
||||
* Handler's constructor.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @param GridField_URLHandler $component
|
||||
* @param Controller $controller
|
||||
*/
|
||||
public function __construct($gridField, $component)
|
||||
{
|
||||
$this->gridField = $gridField;
|
||||
$this->component = $component;
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new DataObject
|
||||
* Add file ID to the Dataobject
|
||||
* Add DataObject to Gridfield list
|
||||
* Publish DataObject if enabled
|
||||
*
|
||||
* @param integer $fileID The newly uploaded/attached file ID
|
||||
*
|
||||
* @return DataObject The new DataObject
|
||||
*/
|
||||
protected function createDataObject($fileID)
|
||||
{
|
||||
$recordClass = $this->component->getRecordClassName($this->gridField);
|
||||
$record = $recordClass::create();
|
||||
$record->write();
|
||||
|
||||
$record->extend('onBulkUpload', $this->gridField);
|
||||
|
||||
$fileRelationName = $this->component->getFileRelationName($this->gridField);
|
||||
$record->{"{$fileRelationName}ID"} = $fileID;
|
||||
$record->write(); //HasManyList call write on record but not ManyManyList, so we call it here again
|
||||
|
||||
$this->gridField->list->add($record);
|
||||
|
||||
if (
|
||||
$this->component->getAutoPublishDataObject()
|
||||
&& $record->hasExtension(RecursivePublishable::class)
|
||||
) {
|
||||
$record->publishRecursive();
|
||||
}
|
||||
|
||||
return $record;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process upload through AssetAdmin::apiCreateFile,
|
||||
* uses result file ID to create the DataObject.
|
||||
*
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return string json
|
||||
*/
|
||||
public function upload(HTTPRequest $request)
|
||||
{
|
||||
$assetAdmin = AssetAdmin::singleton();
|
||||
$uploadResponse = $assetAdmin->apiCreateFile($request);
|
||||
|
||||
if ($uploadResponse->getStatusCode() == 200)
|
||||
{
|
||||
$responseData = Convert::json2array($uploadResponse->getBody());
|
||||
$responseData = array_shift($responseData);
|
||||
|
||||
$record = $this->createDataObject($responseData['id']);
|
||||
|
||||
$bulkToolsResponse = new HTTPBulkToolsResponse(false, $this->gridField);
|
||||
$bulkToolsResponse->addSuccessRecord($record);
|
||||
|
||||
$responseData['bulkTools'] = json_decode($bulkToolsResponse->getBody() ?? '');
|
||||
$uploadResponse->setBody(json_encode(array($responseData)));
|
||||
}
|
||||
|
||||
return $uploadResponse;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve File to be attached
|
||||
* and generated DataObject.
|
||||
*
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return HTTPBulkToolsResponse
|
||||
*/
|
||||
public function attach(HTTPRequest $request)
|
||||
{
|
||||
$fileID = $request->requestVar('fileID'); //why is this not POST?
|
||||
$dataObject = $this->createDataObject($fileID);
|
||||
|
||||
$response = new HTTPBulkToolsResponse(false, $this->gridField);
|
||||
$response->addSuccessRecord($dataObject);
|
||||
return $response;
|
||||
}
|
||||
|
||||
public function getRecordRow(HTTPRequest $request)
|
||||
{
|
||||
$recordID = $request->requestVar('recordID');
|
||||
print_r($recordID);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $action
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function Link($action = null)
|
||||
{
|
||||
return Controller::join_links($this->gridField->Link(), '/bulkupload/', $action);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,340 @@
|
|||
<?php
|
||||
|
||||
namespace Colymba\BulkUpload;
|
||||
|
||||
use SilverStripe\ORM\DataObject;
|
||||
use SilverStripe\View\ArrayData;
|
||||
|
||||
use SilverStripe\View\Requirements;
|
||||
use SilverStripe\Control\Controller;
|
||||
use SilverStripe\Core\Config\Config;
|
||||
use Colymba\BulkUpload\BulkUploadField;
|
||||
use Colymba\BulkUpload\BulkUploadHandler;
|
||||
use SilverStripe\Control\HTTPRequest;
|
||||
use SilverStripe\Forms\GridField\GridField_URLHandler;
|
||||
use SilverStripe\Forms\GridField\GridField_HTMLProvider;
|
||||
|
||||
/**
|
||||
* GridField component for uploading images in bulk.
|
||||
*
|
||||
* @author colymba
|
||||
*/
|
||||
class BulkUploader implements GridField_HTMLProvider, GridField_URLHandler
|
||||
{
|
||||
/**
|
||||
* Component configuration.
|
||||
*
|
||||
* 'fileRelationName' => field name of the $has_one File/Image relation
|
||||
* 'recordClassName' => overrides the automatic DataObject class detection from gridfield->dataClass with a custom class name
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $config = array(
|
||||
'fileRelationName' => null,
|
||||
'recordClassName' => null
|
||||
);
|
||||
|
||||
/**
|
||||
* If true, the component will Publish Versioned DataObject
|
||||
* if fasle they will be left as draft.
|
||||
* @var boolean
|
||||
*/
|
||||
protected $autoPublishDataObject = false;
|
||||
|
||||
/**
|
||||
* UploadField setup function calls.
|
||||
* List of setup functions to call on {@link UploadField} with the value to pass.
|
||||
*
|
||||
* e.g. array('setFolderName' => 'bulkUpload') will result in:
|
||||
* $uploadField->setFolderName('bulkUpload')
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $ufSetup = array(
|
||||
'setFolderName' => 'bulkUpload',
|
||||
);
|
||||
|
||||
/**
|
||||
* Component constructor.
|
||||
*
|
||||
* @param string $fileRelationName
|
||||
* @param string $recordClassName
|
||||
*/
|
||||
public function __construct($fileRelationName = null, $recordClassName = null, $autoPublish = false)
|
||||
{
|
||||
if ($fileRelationName != null) {
|
||||
$this->setConfig('fileRelationName', $fileRelationName);
|
||||
}
|
||||
|
||||
if ($recordClassName != null) {
|
||||
$this->setConfig('recordClassName', $recordClassName);
|
||||
}
|
||||
|
||||
$this->setAutoPublishDataObject($autoPublish);
|
||||
}
|
||||
|
||||
/* **********************************************************************
|
||||
* Components settings and custom methodes
|
||||
* */
|
||||
|
||||
/**
|
||||
* Set a component configuration parameter.
|
||||
*
|
||||
* @param string $reference
|
||||
* @param mixed $value
|
||||
*/
|
||||
public function setConfig($reference, $value)
|
||||
{
|
||||
if (!array_key_exists($reference, $this->config ?? [])) {
|
||||
user_error("Unknown option reference: $reference", E_USER_ERROR);
|
||||
}
|
||||
|
||||
$this->config[$reference] = $value;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set Versioned DataObject auto publish config
|
||||
* @param boolean $autoPublish True to auto publish versioned dataobjects
|
||||
*/
|
||||
public function setAutoPublishDataObject($autoPublish)
|
||||
{
|
||||
$this->autoPublishDataObject = $autoPublish;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get Versioned DataObject auto publish config
|
||||
* @return boolean auto publish config value
|
||||
*/
|
||||
public function getAutoPublishDataObject()
|
||||
{
|
||||
return $this->autoPublishDataObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set an UploadField setup function call.
|
||||
*
|
||||
* @param string $function
|
||||
* @param mixed $param
|
||||
*/
|
||||
public function setUfSetup($function, $param)
|
||||
{
|
||||
$this->ufSetup[$function] = $param;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns one $config reference or the full $config.
|
||||
*
|
||||
* @param string $reference $congif parameter to return
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getConfig($reference = false)
|
||||
{
|
||||
if ($reference) {
|
||||
return $this->config[$reference];
|
||||
} else {
|
||||
return $this->config;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns one $ufSetup reference or the full config.
|
||||
*
|
||||
* @param string $reference $ufSetup parameter to return
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getUfSetup($reference = false)
|
||||
{
|
||||
if ($reference) {
|
||||
return $this->ufSetup[$reference];
|
||||
} else {
|
||||
return $this->ufSetup;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the class name of container `DataObject` record.
|
||||
* Either as set in the component config or from the `Gridfield` `dataClass`.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getRecordClassName($gridField)
|
||||
{
|
||||
return $this->getConfig('recordClassName') ? $this->getConfig('recordClassName') : $gridField->list->dataClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the first has_one Image/File relation from the GridField managed DataObject
|
||||
* i.e. 'MyImage' => 'Image' will return 'MyImage'.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return string Name of the $has_one relation
|
||||
*/
|
||||
public function getDefaultFileRelationName($gridField)
|
||||
{
|
||||
$recordClass = $this->getRecordClassName($gridField);
|
||||
$hasOneFields = Config::inst()->get($recordClass, 'has_one');
|
||||
|
||||
$imageField = null;
|
||||
foreach ($hasOneFields as $field => $type) {
|
||||
if ($type === 'SilverStripe\\Assets\\Image'
|
||||
|| $type === 'SilverStripe\\Assets\\File'
|
||||
|| is_subclass_of($type, 'SilverStripe\\Assets\\File')
|
||||
) {
|
||||
$imageField = $field;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $imageField;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of the Image/File field name from the managed record
|
||||
* Either as set in the component config or the default one.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return string
|
||||
*/
|
||||
public function getFileRelationName($gridField)
|
||||
{
|
||||
$configFileRelationName = $this->getConfig('fileRelationName');
|
||||
|
||||
return $configFileRelationName ? $configFileRelationName : $this->getDefaultFileRelationName($gridField);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the ClassName of the fileRelation
|
||||
* i.e. 'MyImage' => 'Image' will return 'Image'
|
||||
* i.e. 'MyImage' => 'File' will return 'File'.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @return string file relation className
|
||||
*/
|
||||
public function getFileRelationClassName($gridField)
|
||||
{
|
||||
$recordClass = $this->getRecordClassName($gridField);
|
||||
$hasOneFields = Config::inst()->get($recordClass, 'has_one');
|
||||
|
||||
$fieldName = $this->getFileRelationName($gridField);
|
||||
if ($fieldName) {
|
||||
return $hasOneFields[$fieldName];
|
||||
} else {
|
||||
return 'SilverStripe\\Assets\\File';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returned a configured UploadField instance
|
||||
* embedded in the gridfield heard.
|
||||
*
|
||||
* @param GridField $gridField Current GridField
|
||||
*
|
||||
* @return UploadField Configured UploadField instance
|
||||
*/
|
||||
public function bulkUploadField($gridField)
|
||||
{
|
||||
$fileRelationName = $this->getFileRelationName($gridField);
|
||||
$fieldName = $fileRelationName . '_' . $this->getRecordClassName($gridField) . '_BU';
|
||||
$uploadField = BulkUploadField::create($gridField, $fieldName, '')
|
||||
->setForm($gridField->getForm())
|
||||
->setRecord(DataObject::create()) // avoid UploadField to get auto-config from the Page (e.g fix allowedMaxFileNumber)
|
||||
;
|
||||
|
||||
//UploadField setup
|
||||
foreach ($this->ufSetup as $fn => $param) {
|
||||
$uploadField->{$fn}($param);
|
||||
}
|
||||
|
||||
$schema['data']['createFileEndpoint'] = [
|
||||
'url' => $gridField->Link('bulkupload/upload'),
|
||||
'method' => 'post',
|
||||
'payloadFormat' => 'urlencoded',
|
||||
];
|
||||
|
||||
$schema['data']['attachFileEndpoint'] = [
|
||||
'url' => $gridField->Link('bulkupload/attach'),
|
||||
'method' => 'post'
|
||||
];
|
||||
|
||||
$uploadField->setSchemaData($schema);
|
||||
|
||||
return $uploadField;
|
||||
}
|
||||
|
||||
/* **********************************************************************
|
||||
* GridField_HTMLProvider
|
||||
* */
|
||||
|
||||
/**
|
||||
* HTML to be embedded into the GridField.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getHTMLFragments($gridField)
|
||||
{
|
||||
// permission check
|
||||
if (!singleton($gridField->getModelClass())->canEdit()) {
|
||||
return array();
|
||||
}
|
||||
|
||||
// get uploadField
|
||||
$uploadField = $this->bulkUploadField($gridField);
|
||||
|
||||
$data = ArrayData::create(array(
|
||||
'Colspan' => (count($gridField->getColumns() ?? [])),
|
||||
'UploadField' => $uploadField->Field() // call ->Field() to get requirements in right order
|
||||
));
|
||||
|
||||
Requirements::javascript('colymba/gridfield-bulk-editing-tools:client/dist/js/main.js');
|
||||
Requirements::css('colymba/gridfield-bulk-editing-tools:client/dist/styles/main.css');
|
||||
Requirements::add_i18n_javascript('colymba/gridfield-bulk-editing-tools:client/lang');
|
||||
|
||||
return array(
|
||||
'before' => $data->renderWith('Colymba\\BulkUpload\\BulkUploader'),
|
||||
);
|
||||
}
|
||||
|
||||
/* **********************************************************************
|
||||
* GridField_URLHandler
|
||||
* */
|
||||
|
||||
/**
|
||||
* Component URL handlers.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getURLHandlers($gridField)
|
||||
{
|
||||
return array(
|
||||
'bulkupload' => 'handleBulkUpload'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pass control over to the RequestHandler.
|
||||
*
|
||||
* @param GridField $gridField
|
||||
* @param HTTPRequest $request
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handleBulkUpload($gridField, $request)
|
||||
{
|
||||
$controller = Controller::curr();
|
||||
$controller->pushCurrent();
|
||||
$handler = new BulkUploadHandler($gridField, $this);
|
||||
|
||||
return $handler->handleRequest($request);
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
<tr class="bulkManagerOptions">
|
||||
<th class="extra bulkmanagerheading" colspan="$Colspan">
|
||||
|
||||
$Menu
|
||||
<a href="$Button.Link" data-url="$Button.DataURL" class="doBulkActionButton action ss-ui-button cms-panel-link" data-icon="pencil">
|
||||
$Button.Label
|
||||
</a>
|
||||
|
||||
|
||||
</th>
|
||||
<th class="extra bulkmanagerselect">
|
||||
<input class="toggleSelectAll" type="checkbox" title="$Select.Label" name="toggleSelectAll" />
|
||||
</th>
|
||||
</tr>
|
|
@ -1,3 +0,0 @@
|
|||
<a id="bulkImageUploadGFButton" href="$Link" class="cms-panel-link ss-ui-action-constructive ss-ui-button" data-icon="drive-upload">
|
||||
<%t GridFieldBulkTools.BULK_UPLOAD_BTN_LABEL "Bulk Upload" %>
|
||||
</a>
|
|
@ -0,0 +1,25 @@
|
|||
<tr class="bulkManagerOptions form--no-dividers">
|
||||
<th colspan="$Colspan">
|
||||
|
||||
$Menu
|
||||
|
||||
<a data-url="$Button.DataURL"
|
||||
data-config="$Button.DataConfig"
|
||||
title="<% _t('GRIDFIELD_BULK_MANAGER.COMPONENT_TITLE', 'Modify one or more entry at a time') %>"
|
||||
class="doBulkActionButton disabled btn btn-outline-secondary">
|
||||
$Button.Label
|
||||
</a>
|
||||
|
||||
<div class="message notice"></div>
|
||||
|
||||
</th>
|
||||
<th>
|
||||
<label class="form-check-label">
|
||||
<input class="no-change-track bulkSelectAll form-check-input"
|
||||
type="checkbox"
|
||||
title="<% _t('GRIDFIELD_BULK_MANAGER.SELECT_ALL_LABEL', '$Select.Label') %>"
|
||||
name="toggleSelectAll" />
|
||||
|
||||
</label>
|
||||
</th>
|
||||
</tr>
|
|
@ -0,0 +1,3 @@
|
|||
<div class="bulkUploader">
|
||||
$UploadField
|
||||
</div>
|
|
@ -0,0 +1,34 @@
|
|||
/**
|
||||
* Parse all source JS language files (JSON pulled from Transifex) from client/src/lang
|
||||
* to SilverStripe i18n js file in client/lang
|
||||
* Quick and dirty node script!
|
||||
*/
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
const PATHS = {
|
||||
SRC: path.resolve('client/src/lang'),
|
||||
DIST: path.resolve('client/lang'),
|
||||
};
|
||||
|
||||
console.log('Writing SS i18n JS lang files...');
|
||||
|
||||
fs.readdir(PATHS.SRC, function(err, files)
|
||||
{
|
||||
files.forEach(function (file) {
|
||||
var lang = file.split('.').shift();
|
||||
fs.readFile(PATHS.SRC + '/' + file, "utf8", function(err, data) {
|
||||
if (err) { console.log(err); }
|
||||
var fileData = `if(typeof(ss) == 'undefined' || typeof(ss.i18n) == 'undefined') {
|
||||
if(typeof(console) != 'undefined') console.error('Class ss.i18n not defined');
|
||||
} else {
|
||||
ss.i18n.addDictionary('${lang}', ${data});
|
||||
}`;
|
||||
|
||||
fs.writeFile(PATHS.DIST + '/' + lang + '.js', fileData, "utf8", function(err) {
|
||||
if (err) { console.log(err); }
|
||||
console.log("Saved " + lang + '.js');
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
|
@ -0,0 +1,29 @@
|
|||
const Path = require('path');
|
||||
const { JavascriptWebpackConfig, CssWebpackConfig } = require('@silverstripe/webpack-config');
|
||||
|
||||
const ENV = process.env.NODE_ENV;
|
||||
const PATHS = {
|
||||
ROOT: Path.resolve(),
|
||||
SRC: Path.resolve('client/src'),
|
||||
DIST: Path.resolve('client/dist'),
|
||||
};
|
||||
|
||||
const config = [
|
||||
// Main JS bundle
|
||||
new JavascriptWebpackConfig('js', PATHS, 'colymba/gridfield-bulk-editing-tools')
|
||||
.setEntry({
|
||||
main: `${PATHS.SRC}/bundles/bundle.js`,
|
||||
})
|
||||
.getConfig(),
|
||||
// sass to css
|
||||
new CssWebpackConfig('css', PATHS)
|
||||
.setEntry({
|
||||
main: `${PATHS.SRC}/styles/bundle.scss`,
|
||||
})
|
||||
.getConfig(),
|
||||
];
|
||||
|
||||
// Use WEBPACK_CHILD=js or WEBPACK_CHILD=css env var to run a single config
|
||||
module.exports = (process.env.WEBPACK_CHILD)
|
||||
? config.find((entry) => entry.name === process.env.WEBPACK_CHILD)
|
||||
: config;
|
|
@ -0,0 +1,6300 @@
|
|||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@ampproject/remapping@^2.1.0":
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
|
||||
integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
|
||||
dependencies:
|
||||
"@jridgewell/gen-mapping" "^0.1.0"
|
||||
"@jridgewell/trace-mapping" "^0.3.9"
|
||||
|
||||
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
|
||||
integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
|
||||
dependencies:
|
||||
"@babel/highlight" "^7.18.6"
|
||||
|
||||
"@babel/code-frame@^7.22.13":
|
||||
version "7.22.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
|
||||
integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
|
||||
dependencies:
|
||||
"@babel/highlight" "^7.22.13"
|
||||
chalk "^2.4.2"
|
||||
|
||||
"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
|
||||
version "7.20.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
|
||||
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
|
||||
|
||||
"@babel/core@^7.19.6":
|
||||
version "7.20.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d"
|
||||
integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==
|
||||
dependencies:
|
||||
"@ampproject/remapping" "^2.1.0"
|
||||
"@babel/code-frame" "^7.18.6"
|
||||
"@babel/generator" "^7.20.7"
|
||||
"@babel/helper-compilation-targets" "^7.20.7"
|
||||
"@babel/helper-module-transforms" "^7.20.11"
|
||||
"@babel/helpers" "^7.20.7"
|
||||
"@babel/parser" "^7.20.7"
|
||||
"@babel/template" "^7.20.7"
|
||||
"@babel/traverse" "^7.20.12"
|
||||
"@babel/types" "^7.20.7"
|
||||
convert-source-map "^1.7.0"
|
||||
debug "^4.1.0"
|
||||
gensync "^1.0.0-beta.2"
|
||||
json5 "^2.2.2"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/generator@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a"
|
||||
integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==
|
||||
dependencies:
|
||||
"@babel/types" "^7.20.7"
|
||||
"@jridgewell/gen-mapping" "^0.3.2"
|
||||
jsesc "^2.5.1"
|
||||
|
||||
"@babel/generator@^7.23.0":
|
||||
version "7.23.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420"
|
||||
integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==
|
||||
dependencies:
|
||||
"@babel/types" "^7.23.0"
|
||||
"@jridgewell/gen-mapping" "^0.3.2"
|
||||
"@jridgewell/trace-mapping" "^0.3.17"
|
||||
jsesc "^2.5.1"
|
||||
|
||||
"@babel/helper-annotate-as-pure@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
|
||||
integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.18.6"
|
||||
|
||||
"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb"
|
||||
integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==
|
||||
dependencies:
|
||||
"@babel/helper-explode-assignable-expression" "^7.18.6"
|
||||
"@babel/types" "^7.18.9"
|
||||
|
||||
"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz#a6cd33e93629f5eb473b021aac05df62c4cd09bb"
|
||||
integrity sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.20.5"
|
||||
"@babel/helper-validator-option" "^7.18.6"
|
||||
browserslist "^4.21.3"
|
||||
lru-cache "^5.1.1"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.5", "@babel/helper-create-class-features-plugin@^7.20.7":
|
||||
version "7.20.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819"
|
||||
integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.18.6"
|
||||
"@babel/helper-environment-visitor" "^7.18.9"
|
||||
"@babel/helper-function-name" "^7.19.0"
|
||||
"@babel/helper-member-expression-to-functions" "^7.20.7"
|
||||
"@babel/helper-optimise-call-expression" "^7.18.6"
|
||||
"@babel/helper-replace-supers" "^7.20.7"
|
||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
|
||||
"@babel/helper-split-export-declaration" "^7.18.6"
|
||||
|
||||
"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5":
|
||||
version "7.20.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca"
|
||||
integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.18.6"
|
||||
regexpu-core "^5.2.1"
|
||||
|
||||
"@babel/helper-define-polyfill-provider@^0.3.3":
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
|
||||
integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
|
||||
dependencies:
|
||||
"@babel/helper-compilation-targets" "^7.17.7"
|
||||
"@babel/helper-plugin-utils" "^7.16.7"
|
||||
debug "^4.1.1"
|
||||
lodash.debounce "^4.0.8"
|
||||
resolve "^1.14.2"
|
||||
semver "^6.1.2"
|
||||
|
||||
"@babel/helper-environment-visitor@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
|
||||
integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
|
||||
|
||||
"@babel/helper-environment-visitor@^7.22.20":
|
||||
version "7.22.20"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167"
|
||||
integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==
|
||||
|
||||
"@babel/helper-explode-assignable-expression@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
|
||||
integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==
|
||||
dependencies:
|
||||
"@babel/types" "^7.18.6"
|
||||
|
||||
"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
|
||||
integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
|
||||
dependencies:
|
||||
"@babel/template" "^7.18.10"
|
||||
"@babel/types" "^7.19.0"
|
||||
|
||||
"@babel/helper-function-name@^7.23.0":
|
||||
version "7.23.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759"
|
||||
integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==
|
||||
dependencies:
|
||||
"@babel/template" "^7.22.15"
|
||||
"@babel/types" "^7.23.0"
|
||||
|
||||
"@babel/helper-hoist-variables@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
|
||||
integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
|
||||
dependencies:
|
||||
"@babel/types" "^7.18.6"
|
||||
|
||||
"@babel/helper-hoist-variables@^7.22.5":
|
||||
version "7.22.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
|
||||
integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
|
||||
dependencies:
|
||||
"@babel/types" "^7.22.5"
|
||||
|
||||
"@babel/helper-member-expression-to-functions@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05"
|
||||
integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==
|
||||
dependencies:
|
||||
"@babel/types" "^7.20.7"
|
||||
|
||||
"@babel/helper-module-imports@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
|
||||
integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.18.6"
|
||||
|
||||
"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11":
|
||||
version "7.20.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
|
||||
integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==
|
||||
dependencies:
|
||||
"@babel/helper-environment-visitor" "^7.18.9"
|
||||
"@babel/helper-module-imports" "^7.18.6"
|
||||
"@babel/helper-simple-access" "^7.20.2"
|
||||
"@babel/helper-split-export-declaration" "^7.18.6"
|
||||
"@babel/helper-validator-identifier" "^7.19.1"
|
||||
"@babel/template" "^7.20.7"
|
||||
"@babel/traverse" "^7.20.10"
|
||||
"@babel/types" "^7.20.7"
|
||||
|
||||
"@babel/helper-optimise-call-expression@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
|
||||
integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.18.6"
|
||||
|
||||
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
|
||||
version "7.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
|
||||
integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
|
||||
|
||||
"@babel/helper-remap-async-to-generator@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
|
||||
integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.18.6"
|
||||
"@babel/helper-environment-visitor" "^7.18.9"
|
||||
"@babel/helper-wrap-function" "^7.18.9"
|
||||
"@babel/types" "^7.18.9"
|
||||
|
||||
"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.20.7.tgz#243ecd2724d2071532b2c8ad2f0f9f083bcae331"
|
||||
integrity sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==
|
||||
dependencies:
|
||||
"@babel/helper-environment-visitor" "^7.18.9"
|
||||
"@babel/helper-member-expression-to-functions" "^7.20.7"
|
||||
"@babel/helper-optimise-call-expression" "^7.18.6"
|
||||
"@babel/template" "^7.20.7"
|
||||
"@babel/traverse" "^7.20.7"
|
||||
"@babel/types" "^7.20.7"
|
||||
|
||||
"@babel/helper-simple-access@^7.20.2":
|
||||
version "7.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
|
||||
integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.20.2"
|
||||
|
||||
"@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
|
||||
version "7.20.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
|
||||
integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
|
||||
dependencies:
|
||||
"@babel/types" "^7.20.0"
|
||||
|
||||
"@babel/helper-split-export-declaration@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
|
||||
integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.18.6"
|
||||
|
||||
"@babel/helper-split-export-declaration@^7.22.6":
|
||||
version "7.22.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
|
||||
integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
|
||||
dependencies:
|
||||
"@babel/types" "^7.22.5"
|
||||
|
||||
"@babel/helper-string-parser@^7.19.4":
|
||||
version "7.19.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
|
||||
integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
|
||||
|
||||
"@babel/helper-string-parser@^7.22.5":
|
||||
version "7.22.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
|
||||
integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
|
||||
version "7.19.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
|
||||
integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.22.20":
|
||||
version "7.22.20"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
|
||||
integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
|
||||
|
||||
"@babel/helper-validator-option@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
|
||||
integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
|
||||
|
||||
"@babel/helper-wrap-function@^7.18.9":
|
||||
version "7.20.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3"
|
||||
integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==
|
||||
dependencies:
|
||||
"@babel/helper-function-name" "^7.19.0"
|
||||
"@babel/template" "^7.18.10"
|
||||
"@babel/traverse" "^7.20.5"
|
||||
"@babel/types" "^7.20.5"
|
||||
|
||||
"@babel/helpers@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce"
|
||||
integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==
|
||||
dependencies:
|
||||
"@babel/template" "^7.20.7"
|
||||
"@babel/traverse" "^7.20.7"
|
||||
"@babel/types" "^7.20.7"
|
||||
|
||||
"@babel/highlight@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
|
||||
integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.18.6"
|
||||
chalk "^2.0.0"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/highlight@^7.22.13":
|
||||
version "7.22.20"
|
||||
resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54"
|
||||
integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.22.20"
|
||||
chalk "^2.4.2"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/parser@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
|
||||
integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
|
||||
|
||||
"@babel/parser@^7.22.15", "@babel/parser@^7.23.0":
|
||||
version "7.23.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
|
||||
integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
|
||||
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
|
||||
integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.20.7.tgz#d9c85589258539a22a901033853101a6198d4ef1"
|
||||
integrity sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
|
||||
"@babel/plugin-proposal-optional-chaining" "^7.20.7"
|
||||
|
||||
"@babel/plugin-proposal-async-generator-functions@^7.20.1":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326"
|
||||
integrity sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==
|
||||
dependencies:
|
||||
"@babel/helper-environment-visitor" "^7.18.9"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-remap-async-to-generator" "^7.18.9"
|
||||
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
||||
|
||||
"@babel/plugin-proposal-class-properties@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
|
||||
integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
|
||||
dependencies:
|
||||
"@babel/helper-create-class-features-plugin" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-proposal-class-static-block@^7.18.6":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.20.7.tgz#92592e9029b13b15be0f7ce6a7aedc2879ca45a7"
|
||||
integrity sha512-AveGOoi9DAjUYYuUAG//Ig69GlazLnoyzMw68VCDux+c1tsnnH/OkYcpz/5xzMkEFC6UxjR5Gw1c+iY2wOGVeQ==
|
||||
dependencies:
|
||||
"@babel/helper-create-class-features-plugin" "^7.20.7"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
||||
|
||||
"@babel/plugin-proposal-dynamic-import@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94"
|
||||
integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-export-namespace-from@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
|
||||
integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-json-strings@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
|
||||
integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-logical-assignment-operators@^7.18.9":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.20.7.tgz#dfbcaa8f7b4d37b51e8bfb46d94a5aea2bb89d83"
|
||||
integrity sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
||||
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
|
||||
integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-numeric-separator@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
|
||||
integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
||||
|
||||
"@babel/plugin-proposal-object-rest-spread@^7.20.2":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a"
|
||||
integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.20.5"
|
||||
"@babel/helper-compilation-targets" "^7.20.7"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
||||
"@babel/plugin-transform-parameters" "^7.20.7"
|
||||
|
||||
"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
|
||||
integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-optional-chaining@^7.18.9", "@babel/plugin-proposal-optional-chaining@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.20.7.tgz#49f2b372519ab31728cc14115bb0998b15bfda55"
|
||||
integrity sha512-T+A7b1kfjtRM51ssoOfS1+wbyCVqorfyZhT99TvxxLMirPShD8CzKMRepMlCBGM5RpHMbn8s+5MMHnPstJH6mQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
|
||||
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-private-methods@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
|
||||
integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==
|
||||
dependencies:
|
||||
"@babel/helper-create-class-features-plugin" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-proposal-private-property-in-object@^7.18.6":
|
||||
version "7.20.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135"
|
||||
integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.18.6"
|
||||
"@babel/helper-create-class-features-plugin" "^7.20.5"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
||||
|
||||
"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
|
||||
integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
|
||||
dependencies:
|
||||
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-syntax-async-generators@^7.8.4":
|
||||
version "7.8.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
|
||||
integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-class-properties@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
|
||||
integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
|
||||
"@babel/plugin-syntax-class-static-block@^7.14.5":
|
||||
version "7.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
|
||||
integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.14.5"
|
||||
|
||||
"@babel/plugin-syntax-dynamic-import@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
|
||||
integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-export-namespace-from@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
|
||||
integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.3"
|
||||
|
||||
"@babel/plugin-syntax-import-assertions@^7.20.0":
|
||||
version "7.20.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4"
|
||||
integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.19.0"
|
||||
|
||||
"@babel/plugin-syntax-json-strings@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
|
||||
integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-jsx@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
|
||||
integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
|
||||
integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.10.4"
|
||||
|
||||
"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
|
||||
integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-numeric-separator@^7.10.4":
|
||||
version "7.10.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
|
||||
integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.10.4"
|
||||
|
||||
"@babel/plugin-syntax-object-rest-spread@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
|
||||
integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
|
||||
integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-optional-chaining@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
|
||||
integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-private-property-in-object@^7.14.5":
|
||||
version "7.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
|
||||
integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.14.5"
|
||||
|
||||
"@babel/plugin-syntax-top-level-await@^7.14.5":
|
||||
version "7.14.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
|
||||
integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.14.5"
|
||||
|
||||
"@babel/plugin-transform-arrow-functions@^7.18.6":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.20.7.tgz#bea332b0e8b2dab3dafe55a163d8227531ab0551"
|
||||
integrity sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
|
||||
"@babel/plugin-transform-async-to-generator@^7.18.6":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz#dfee18623c8cb31deb796aa3ca84dda9cea94354"
|
||||
integrity sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==
|
||||
dependencies:
|
||||
"@babel/helper-module-imports" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-remap-async-to-generator" "^7.18.9"
|
||||
|
||||
"@babel/plugin-transform-block-scoped-functions@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8"
|
||||
integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-block-scoping@^7.20.2":
|
||||
version "7.20.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.11.tgz#9f5a3424bd112a3f32fe0cf9364fbb155cff262a"
|
||||
integrity sha512-tA4N427a7fjf1P0/2I4ScsHGc5jcHPbb30xMbaTke2gxDuWpUfXDuX1FEymJwKk4tuGUvGcejAR6HdZVqmmPyw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
|
||||
"@babel/plugin-transform-classes@^7.20.2":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.7.tgz#f438216f094f6bb31dc266ebfab8ff05aecad073"
|
||||
integrity sha512-LWYbsiXTPKl+oBlXUGlwNlJZetXD5Am+CyBdqhPsDVjM9Jc8jwBJFrKhHf900Kfk2eZG1y9MAG3UNajol7A4VQ==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.18.6"
|
||||
"@babel/helper-compilation-targets" "^7.20.7"
|
||||
"@babel/helper-environment-visitor" "^7.18.9"
|
||||
"@babel/helper-function-name" "^7.19.0"
|
||||
"@babel/helper-optimise-call-expression" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-replace-supers" "^7.20.7"
|
||||
"@babel/helper-split-export-declaration" "^7.18.6"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/plugin-transform-computed-properties@^7.18.9":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.20.7.tgz#704cc2fd155d1c996551db8276d55b9d46e4d0aa"
|
||||
integrity sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/template" "^7.20.7"
|
||||
|
||||
"@babel/plugin-transform-destructuring@^7.20.2":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.7.tgz#8bda578f71620c7de7c93af590154ba331415454"
|
||||
integrity sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
|
||||
"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
|
||||
integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==
|
||||
dependencies:
|
||||
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-duplicate-keys@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e"
|
||||
integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
|
||||
"@babel/plugin-transform-exponentiation-operator@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
|
||||
integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==
|
||||
dependencies:
|
||||
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-for-of@^7.18.8":
|
||||
version "7.18.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1"
|
||||
integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-function-name@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
|
||||
integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
|
||||
dependencies:
|
||||
"@babel/helper-compilation-targets" "^7.18.9"
|
||||
"@babel/helper-function-name" "^7.18.9"
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
|
||||
"@babel/plugin-transform-literals@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
|
||||
integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
|
||||
"@babel/plugin-transform-member-expression-literals@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
|
||||
integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-modules-amd@^7.19.6":
|
||||
version "7.20.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.20.11.tgz#3daccca8e4cc309f03c3a0c4b41dc4b26f55214a"
|
||||
integrity sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==
|
||||
dependencies:
|
||||
"@babel/helper-module-transforms" "^7.20.11"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
|
||||
"@babel/plugin-transform-modules-commonjs@^7.19.6":
|
||||
version "7.20.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.20.11.tgz#8cb23010869bf7669fd4b3098598b6b2be6dc607"
|
||||
integrity sha512-S8e1f7WQ7cimJQ51JkAaDrEtohVEitXjgCGAS2N8S31Y42E+kWwfSz83LYz57QdBm7q9diARVqanIaH2oVgQnw==
|
||||
dependencies:
|
||||
"@babel/helper-module-transforms" "^7.20.11"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-simple-access" "^7.20.2"
|
||||
|
||||
"@babel/plugin-transform-modules-systemjs@^7.19.6":
|
||||
version "7.20.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.20.11.tgz#467ec6bba6b6a50634eea61c9c232654d8a4696e"
|
||||
integrity sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==
|
||||
dependencies:
|
||||
"@babel/helper-hoist-variables" "^7.18.6"
|
||||
"@babel/helper-module-transforms" "^7.20.11"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-validator-identifier" "^7.19.1"
|
||||
|
||||
"@babel/plugin-transform-modules-umd@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9"
|
||||
integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==
|
||||
dependencies:
|
||||
"@babel/helper-module-transforms" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1":
|
||||
version "7.20.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8"
|
||||
integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==
|
||||
dependencies:
|
||||
"@babel/helper-create-regexp-features-plugin" "^7.20.5"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
|
||||
"@babel/plugin-transform-new-target@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8"
|
||||
integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-object-super@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
|
||||
integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/helper-replace-supers" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.7.tgz#0ee349e9d1bc96e78e3b37a7af423a4078a7083f"
|
||||
integrity sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
|
||||
"@babel/plugin-transform-property-literals@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
|
||||
integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-react-display-name@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415"
|
||||
integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-react-jsx-development@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5"
|
||||
integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==
|
||||
dependencies:
|
||||
"@babel/plugin-transform-react-jsx" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-react-jsx@^7.18.6":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.20.7.tgz#025d85a1935fd7e19dfdcb1b1d4df34d4da484f7"
|
||||
integrity sha512-Tfq7qqD+tRj3EoDhY00nn2uP2hsRxgYGi5mLQ5TimKav0a9Lrpd4deE+fcLXU8zFYRjlKPHZhpCvfEA6qnBxqQ==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.18.6"
|
||||
"@babel/helper-module-imports" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/plugin-syntax-jsx" "^7.18.6"
|
||||
"@babel/types" "^7.20.7"
|
||||
|
||||
"@babel/plugin-transform-react-pure-annotations@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844"
|
||||
integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-regenerator@^7.18.6":
|
||||
version "7.20.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d"
|
||||
integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
regenerator-transform "^0.15.1"
|
||||
|
||||
"@babel/plugin-transform-reserved-words@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a"
|
||||
integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-shorthand-properties@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
|
||||
integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-spread@^7.19.0":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.20.7.tgz#c2d83e0b99d3bf83e07b11995ee24bf7ca09401e"
|
||||
integrity sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
|
||||
|
||||
"@babel/plugin-transform-sticky-regex@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc"
|
||||
integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/plugin-transform-template-literals@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
|
||||
integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
|
||||
"@babel/plugin-transform-typeof-symbol@^7.18.9":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0"
|
||||
integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
|
||||
"@babel/plugin-transform-unicode-escapes@^7.18.10":
|
||||
version "7.18.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
|
||||
integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.9"
|
||||
|
||||
"@babel/plugin-transform-unicode-regex@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
|
||||
integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==
|
||||
dependencies:
|
||||
"@babel/helper-create-regexp-features-plugin" "^7.18.6"
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
|
||||
"@babel/preset-env@^7.19.4":
|
||||
version "7.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506"
|
||||
integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.20.1"
|
||||
"@babel/helper-compilation-targets" "^7.20.0"
|
||||
"@babel/helper-plugin-utils" "^7.20.2"
|
||||
"@babel/helper-validator-option" "^7.18.6"
|
||||
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
|
||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
|
||||
"@babel/plugin-proposal-async-generator-functions" "^7.20.1"
|
||||
"@babel/plugin-proposal-class-properties" "^7.18.6"
|
||||
"@babel/plugin-proposal-class-static-block" "^7.18.6"
|
||||
"@babel/plugin-proposal-dynamic-import" "^7.18.6"
|
||||
"@babel/plugin-proposal-export-namespace-from" "^7.18.9"
|
||||
"@babel/plugin-proposal-json-strings" "^7.18.6"
|
||||
"@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
|
||||
"@babel/plugin-proposal-numeric-separator" "^7.18.6"
|
||||
"@babel/plugin-proposal-object-rest-spread" "^7.20.2"
|
||||
"@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
|
||||
"@babel/plugin-proposal-optional-chaining" "^7.18.9"
|
||||
"@babel/plugin-proposal-private-methods" "^7.18.6"
|
||||
"@babel/plugin-proposal-private-property-in-object" "^7.18.6"
|
||||
"@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
|
||||
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
||||
"@babel/plugin-syntax-class-properties" "^7.12.13"
|
||||
"@babel/plugin-syntax-class-static-block" "^7.14.5"
|
||||
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
||||
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||
"@babel/plugin-syntax-import-assertions" "^7.20.0"
|
||||
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
||||
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
||||
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
||||
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
||||
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
||||
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
||||
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
||||
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
|
||||
"@babel/plugin-syntax-top-level-await" "^7.14.5"
|
||||
"@babel/plugin-transform-arrow-functions" "^7.18.6"
|
||||
"@babel/plugin-transform-async-to-generator" "^7.18.6"
|
||||
"@babel/plugin-transform-block-scoped-functions" "^7.18.6"
|
||||
"@babel/plugin-transform-block-scoping" "^7.20.2"
|
||||
"@babel/plugin-transform-classes" "^7.20.2"
|
||||
"@babel/plugin-transform-computed-properties" "^7.18.9"
|
||||
"@babel/plugin-transform-destructuring" "^7.20.2"
|
||||
"@babel/plugin-transform-dotall-regex" "^7.18.6"
|
||||
"@babel/plugin-transform-duplicate-keys" "^7.18.9"
|
||||
"@babel/plugin-transform-exponentiation-operator" "^7.18.6"
|
||||
"@babel/plugin-transform-for-of" "^7.18.8"
|
||||
"@babel/plugin-transform-function-name" "^7.18.9"
|
||||
"@babel/plugin-transform-literals" "^7.18.9"
|
||||
"@babel/plugin-transform-member-expression-literals" "^7.18.6"
|
||||
"@babel/plugin-transform-modules-amd" "^7.19.6"
|
||||
"@babel/plugin-transform-modules-commonjs" "^7.19.6"
|
||||
"@babel/plugin-transform-modules-systemjs" "^7.19.6"
|
||||
"@babel/plugin-transform-modules-umd" "^7.18.6"
|
||||
"@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1"
|
||||
"@babel/plugin-transform-new-target" "^7.18.6"
|
||||
"@babel/plugin-transform-object-super" "^7.18.6"
|
||||
"@babel/plugin-transform-parameters" "^7.20.1"
|
||||
"@babel/plugin-transform-property-literals" "^7.18.6"
|
||||
"@babel/plugin-transform-regenerator" "^7.18.6"
|
||||
"@babel/plugin-transform-reserved-words" "^7.18.6"
|
||||
"@babel/plugin-transform-shorthand-properties" "^7.18.6"
|
||||
"@babel/plugin-transform-spread" "^7.19.0"
|
||||
"@babel/plugin-transform-sticky-regex" "^7.18.6"
|
||||
"@babel/plugin-transform-template-literals" "^7.18.9"
|
||||
"@babel/plugin-transform-typeof-symbol" "^7.18.9"
|
||||
"@babel/plugin-transform-unicode-escapes" "^7.18.10"
|
||||
"@babel/plugin-transform-unicode-regex" "^7.18.6"
|
||||
"@babel/preset-modules" "^0.1.5"
|
||||
"@babel/types" "^7.20.2"
|
||||
babel-plugin-polyfill-corejs2 "^0.3.3"
|
||||
babel-plugin-polyfill-corejs3 "^0.6.0"
|
||||
babel-plugin-polyfill-regenerator "^0.4.1"
|
||||
core-js-compat "^3.25.1"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/preset-modules@^0.1.5":
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9"
|
||||
integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.0.0"
|
||||
"@babel/plugin-proposal-unicode-property-regex" "^7.4.4"
|
||||
"@babel/plugin-transform-dotall-regex" "^7.4.4"
|
||||
"@babel/types" "^7.4.4"
|
||||
esutils "^2.0.2"
|
||||
|
||||
"@babel/preset-react@^7.18.6":
|
||||
version "7.18.6"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d"
|
||||
integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.18.6"
|
||||
"@babel/helper-validator-option" "^7.18.6"
|
||||
"@babel/plugin-transform-react-display-name" "^7.18.6"
|
||||
"@babel/plugin-transform-react-jsx" "^7.18.6"
|
||||
"@babel/plugin-transform-react-jsx-development" "^7.18.6"
|
||||
"@babel/plugin-transform-react-pure-annotations" "^7.18.6"
|
||||
|
||||
"@babel/runtime@^7.20.7", "@babel/runtime@^7.8.4":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd"
|
||||
integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.11"
|
||||
|
||||
"@babel/template@^7.18.10", "@babel/template@^7.20.7":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8"
|
||||
integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.18.6"
|
||||
"@babel/parser" "^7.20.7"
|
||||
"@babel/types" "^7.20.7"
|
||||
|
||||
"@babel/template@^7.22.15":
|
||||
version "7.22.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
|
||||
integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.22.13"
|
||||
"@babel/parser" "^7.22.15"
|
||||
"@babel/types" "^7.22.15"
|
||||
|
||||
"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7":
|
||||
version "7.23.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8"
|
||||
integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.22.13"
|
||||
"@babel/generator" "^7.23.0"
|
||||
"@babel/helper-environment-visitor" "^7.22.20"
|
||||
"@babel/helper-function-name" "^7.23.0"
|
||||
"@babel/helper-hoist-variables" "^7.22.5"
|
||||
"@babel/helper-split-export-declaration" "^7.22.6"
|
||||
"@babel/parser" "^7.23.0"
|
||||
"@babel/types" "^7.23.0"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.4.4":
|
||||
version "7.20.7"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
|
||||
integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
|
||||
dependencies:
|
||||
"@babel/helper-string-parser" "^7.19.4"
|
||||
"@babel/helper-validator-identifier" "^7.19.1"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0":
|
||||
version "7.23.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb"
|
||||
integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==
|
||||
dependencies:
|
||||
"@babel/helper-string-parser" "^7.22.5"
|
||||
"@babel/helper-validator-identifier" "^7.22.20"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@colors/colors@1.5.0":
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
|
||||
integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
|
||||
|
||||
"@discoveryjs/json-ext@^0.5.0":
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70"
|
||||
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
|
||||
|
||||
"@eslint/eslintrc@^1.4.1":
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
|
||||
integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
|
||||
dependencies:
|
||||
ajv "^6.12.4"
|
||||
debug "^4.3.2"
|
||||
espree "^9.4.0"
|
||||
globals "^13.19.0"
|
||||
ignore "^5.2.0"
|
||||
import-fresh "^3.2.1"
|
||||
js-yaml "^4.1.0"
|
||||
minimatch "^3.1.2"
|
||||
strip-json-comments "^3.1.1"
|
||||
|
||||
"@gar/promisify@^1.1.3":
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
|
||||
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
|
||||
|
||||
"@humanwhocodes/config-array@^0.11.8":
|
||||
version "0.11.8"
|
||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
|
||||
integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
|
||||
dependencies:
|
||||
"@humanwhocodes/object-schema" "^1.2.1"
|
||||
debug "^4.1.1"
|
||||
minimatch "^3.0.5"
|
||||
|
||||
"@humanwhocodes/module-importer@^1.0.1":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
|
||||
integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
|
||||
|
||||
"@humanwhocodes/object-schema@^1.2.1":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
|
||||
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
|
||||
|
||||
"@isaacs/string-locale-compare@^1.1.0":
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b"
|
||||
integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==
|
||||
|
||||
"@jridgewell/gen-mapping@^0.1.0":
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
|
||||
integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
|
||||
dependencies:
|
||||
"@jridgewell/set-array" "^1.0.0"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
|
||||
"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
|
||||
integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
|
||||
dependencies:
|
||||
"@jridgewell/set-array" "^1.0.1"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
"@jridgewell/trace-mapping" "^0.3.9"
|
||||
|
||||
"@jridgewell/resolve-uri@3.1.0":
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
|
||||
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
|
||||
|
||||
"@jridgewell/resolve-uri@^3.1.0":
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
|
||||
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
|
||||
|
||||
"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
|
||||
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
|
||||
|
||||
"@jridgewell/source-map@^0.3.2":
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb"
|
||||
integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==
|
||||
dependencies:
|
||||
"@jridgewell/gen-mapping" "^0.3.0"
|
||||
"@jridgewell/trace-mapping" "^0.3.9"
|
||||
|
||||
"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
|
||||
version "1.4.14"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
|
||||
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
|
||||
|
||||
"@jridgewell/sourcemap-codec@^1.4.14":
|
||||
version "1.4.15"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
|
||||
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
||||
|
||||
"@jridgewell/trace-mapping@^0.3.14", "@jridgewell/trace-mapping@^0.3.9":
|
||||
version "0.3.17"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
|
||||
integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
|
||||
dependencies:
|
||||
"@jridgewell/resolve-uri" "3.1.0"
|
||||
"@jridgewell/sourcemap-codec" "1.4.14"
|
||||
|
||||
"@jridgewell/trace-mapping@^0.3.17":
|
||||
version "0.3.20"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f"
|
||||
integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==
|
||||
dependencies:
|
||||
"@jridgewell/resolve-uri" "^3.1.0"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
|
||||
dependencies:
|
||||
"@nodelib/fs.stat" "2.0.5"
|
||||
run-parallel "^1.1.9"
|
||||
|
||||
"@nodelib/fs.stat@2.0.5":
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
|
||||
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
|
||||
|
||||
"@nodelib/fs.walk@^1.2.8":
|
||||
version "1.2.8"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
|
||||
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
|
||||
dependencies:
|
||||
"@nodelib/fs.scandir" "2.1.5"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@npmcli/arborist@^5.6.3":
|
||||
version "5.6.3"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-5.6.3.tgz#40810080272e097b4a7a4f56108f4a31638a9874"
|
||||
integrity sha512-/7hbqEM6YuRjwTcQXkK1+xKslEblY5kFQe0tZ7jKyMlIR6x4iOmhLErIkBBGtTKvYxRKdpcxnFXjCobg3UqmsA==
|
||||
dependencies:
|
||||
"@isaacs/string-locale-compare" "^1.1.0"
|
||||
"@npmcli/installed-package-contents" "^1.0.7"
|
||||
"@npmcli/map-workspaces" "^2.0.3"
|
||||
"@npmcli/metavuln-calculator" "^3.0.1"
|
||||
"@npmcli/move-file" "^2.0.0"
|
||||
"@npmcli/name-from-folder" "^1.0.1"
|
||||
"@npmcli/node-gyp" "^2.0.0"
|
||||
"@npmcli/package-json" "^2.0.0"
|
||||
"@npmcli/query" "^1.2.0"
|
||||
"@npmcli/run-script" "^4.1.3"
|
||||
bin-links "^3.0.3"
|
||||
cacache "^16.1.3"
|
||||
common-ancestor-path "^1.0.1"
|
||||
hosted-git-info "^5.2.1"
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
json-stringify-nice "^1.1.4"
|
||||
minimatch "^5.1.0"
|
||||
mkdirp "^1.0.4"
|
||||
mkdirp-infer-owner "^2.0.0"
|
||||
nopt "^6.0.0"
|
||||
npm-install-checks "^5.0.0"
|
||||
npm-package-arg "^9.0.0"
|
||||
npm-pick-manifest "^7.0.2"
|
||||
npm-registry-fetch "^13.0.0"
|
||||
npmlog "^6.0.2"
|
||||
pacote "^13.6.1"
|
||||
parse-conflict-json "^2.0.1"
|
||||
proc-log "^2.0.0"
|
||||
promise-all-reject-late "^1.0.0"
|
||||
promise-call-limit "^1.0.1"
|
||||
read-package-json-fast "^2.0.2"
|
||||
readdir-scoped-modules "^1.1.0"
|
||||
rimraf "^3.0.2"
|
||||
semver "^7.3.7"
|
||||
ssri "^9.0.0"
|
||||
treeverse "^2.0.0"
|
||||
walk-up-path "^1.0.0"
|
||||
|
||||
"@npmcli/ci-detect@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-2.0.0.tgz#e63c91bcd4185ac1e85720a34fc48e164ece5b89"
|
||||
integrity sha512-8yQtQ9ArHh/TzdUDKQwEvwCgpDuhSWTDAbiKMl3854PcT+Dk4UmWaiawuFTLy9n5twzXOBXVflWe+90/ffXQrA==
|
||||
|
||||
"@npmcli/config@^4.2.1":
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/config/-/config-4.2.2.tgz#2e3334dda84f48d059309c53d152e66b05ca24b7"
|
||||
integrity sha512-5GNcLd+0c4bYBnFop53+26CO5GQP0R9YcxlernohpHDWdIgzUg9I0+GEMk3sNHnLntATVU39d283A4OO+W402w==
|
||||
dependencies:
|
||||
"@npmcli/map-workspaces" "^2.0.2"
|
||||
ini "^3.0.0"
|
||||
mkdirp-infer-owner "^2.0.0"
|
||||
nopt "^6.0.0"
|
||||
proc-log "^2.0.0"
|
||||
read-package-json-fast "^2.0.3"
|
||||
semver "^7.3.5"
|
||||
walk-up-path "^1.0.0"
|
||||
|
||||
"@npmcli/disparity-colors@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-2.0.0.tgz#cb518166ee21573b96241a3613fef70acb2a60ba"
|
||||
integrity sha512-FFXGrIjhvd2qSZ8iS0yDvbI7nbjdyT2VNO7wotosjYZM2p2r8PN3B7Om3M5NO9KqW/OVzfzLB3L0V5Vo5QXC7A==
|
||||
dependencies:
|
||||
ansi-styles "^4.3.0"
|
||||
|
||||
"@npmcli/fs@^2.1.0", "@npmcli/fs@^2.1.1":
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865"
|
||||
integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==
|
||||
dependencies:
|
||||
"@gar/promisify" "^1.1.3"
|
||||
semver "^7.3.5"
|
||||
|
||||
"@npmcli/git@^3.0.0":
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-3.0.2.tgz#5c5de6b4d70474cf2d09af149ce42e4e1dacb931"
|
||||
integrity sha512-CAcd08y3DWBJqJDpfuVL0uijlq5oaXaOJEKHKc4wqrjd00gkvTZB+nFuLn+doOOKddaQS9JfqtNoFCO2LCvA3w==
|
||||
dependencies:
|
||||
"@npmcli/promise-spawn" "^3.0.0"
|
||||
lru-cache "^7.4.4"
|
||||
mkdirp "^1.0.4"
|
||||
npm-pick-manifest "^7.0.0"
|
||||
proc-log "^2.0.0"
|
||||
promise-inflight "^1.0.1"
|
||||
promise-retry "^2.0.1"
|
||||
semver "^7.3.5"
|
||||
which "^2.0.2"
|
||||
|
||||
"@npmcli/installed-package-contents@^1.0.7":
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa"
|
||||
integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==
|
||||
dependencies:
|
||||
npm-bundled "^1.1.1"
|
||||
npm-normalize-package-bin "^1.0.1"
|
||||
|
||||
"@npmcli/map-workspaces@^2.0.2", "@npmcli/map-workspaces@^2.0.3":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc"
|
||||
integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg==
|
||||
dependencies:
|
||||
"@npmcli/name-from-folder" "^1.0.1"
|
||||
glob "^8.0.1"
|
||||
minimatch "^5.0.1"
|
||||
read-package-json-fast "^2.0.3"
|
||||
|
||||
"@npmcli/metavuln-calculator@^3.0.1":
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-3.1.1.tgz#9359bd72b400f8353f6a28a25c8457b562602622"
|
||||
integrity sha512-n69ygIaqAedecLeVH3KnO39M6ZHiJ2dEv5A7DGvcqCB8q17BGUgW8QaanIkbWUo2aYGZqJaOORTLAlIvKjNDKA==
|
||||
dependencies:
|
||||
cacache "^16.0.0"
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
pacote "^13.0.3"
|
||||
semver "^7.3.5"
|
||||
|
||||
"@npmcli/move-file@^2.0.0":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4"
|
||||
integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==
|
||||
dependencies:
|
||||
mkdirp "^1.0.4"
|
||||
rimraf "^3.0.2"
|
||||
|
||||
"@npmcli/name-from-folder@^1.0.1":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a"
|
||||
integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA==
|
||||
|
||||
"@npmcli/node-gyp@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz#8c20e53e34e9078d18815c1d2dda6f2420d75e35"
|
||||
integrity sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==
|
||||
|
||||
"@npmcli/package-json@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-2.0.0.tgz#3bbcf4677e21055adbe673d9f08c9f9cde942e4a"
|
||||
integrity sha512-42jnZ6yl16GzjWSH7vtrmWyJDGVa/LXPdpN2rcUWolFjc9ON2N3uz0qdBbQACfmhuJZ2lbKYtmK5qx68ZPLHMA==
|
||||
dependencies:
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
|
||||
"@npmcli/promise-spawn@^3.0.0":
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz#53283b5f18f855c6925f23c24e67c911501ef573"
|
||||
integrity sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==
|
||||
dependencies:
|
||||
infer-owner "^1.0.4"
|
||||
|
||||
"@npmcli/query@^1.2.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-1.2.0.tgz#46468d583cf013aa92102970700f9555314aabe4"
|
||||
integrity sha512-uWglsUM3PjBLgTSmZ3/vygeGdvWEIZ3wTUnzGFbprC/RtvQSaT+GAXu1DXmSFj2bD3oOZdcRm1xdzsV2z1YWdw==
|
||||
dependencies:
|
||||
npm-package-arg "^9.1.0"
|
||||
postcss-selector-parser "^6.0.10"
|
||||
semver "^7.3.7"
|
||||
|
||||
"@npmcli/run-script@^4.1.0", "@npmcli/run-script@^4.1.3", "@npmcli/run-script@^4.2.0", "@npmcli/run-script@^4.2.1":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-4.2.1.tgz#c07c5c71bc1c70a5f2a06b0d4da976641609b946"
|
||||
integrity sha512-7dqywvVudPSrRCW5nTHpHgeWnbBtz8cFkOuKrecm6ih+oO9ciydhWt6OF7HlqupRRmB8Q/gECVdB9LMfToJbRg==
|
||||
dependencies:
|
||||
"@npmcli/node-gyp" "^2.0.0"
|
||||
"@npmcli/promise-spawn" "^3.0.0"
|
||||
node-gyp "^9.0.0"
|
||||
read-package-json-fast "^2.0.3"
|
||||
which "^2.0.2"
|
||||
|
||||
"@polka/url@^1.0.0-next.20":
|
||||
version "1.0.0-next.21"
|
||||
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
|
||||
integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
|
||||
|
||||
"@sect/modernizr-loader@^1.0.3":
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/@sect/modernizr-loader/-/modernizr-loader-1.0.3.tgz#7fd8cec372426c53f113f3cfd9344cb29e959825"
|
||||
integrity sha512-47zKwv4/1I0CYptZz8s4aSYSe0awmuyqa+HFKxN89/75h2q8hr6V752TZ9VjhGDhQ4gU0EU7Plew7b+7bf2crg==
|
||||
|
||||
"@silverstripe/eslint-config@^1.0.0-alpha6":
|
||||
version "1.0.0-alpha6"
|
||||
resolved "https://registry.yarnpkg.com/@silverstripe/eslint-config/-/eslint-config-1.0.0-alpha6.tgz#1f243b003fddf3503a4abea37f35a8a5968cc96e"
|
||||
integrity sha512-+P7UzhMRSmc7UlRYCiSXwjauLFYU11oBPwHl/bpacJ7xUcFY3Jt3CgcDt6d+XLvAJO8zMRsG9RcOm5MnxsyCsg==
|
||||
dependencies:
|
||||
eslint "^8.26.0"
|
||||
eslint-config-airbnb "^19.0.4"
|
||||
eslint-config-airbnb-base "^15.0.0"
|
||||
eslint-plugin-import "^2.26.0"
|
||||
eslint-plugin-jsx-a11y "^6.6.1"
|
||||
eslint-plugin-react "^7.31.10"
|
||||
eslint-webpack-plugin "^3.2.0"
|
||||
|
||||
"@silverstripe/webpack-config@^2.0.0-alpha5":
|
||||
version "2.0.0-alpha6"
|
||||
resolved "https://registry.yarnpkg.com/@silverstripe/webpack-config/-/webpack-config-2.0.0-alpha6.tgz#4a781f600344c3604169de08244ca11cacbd46f7"
|
||||
integrity sha512-cPux01Z6EGwnSg5EezaJZ1S2x4ThfA3TbpTWTsqmW2jvr1VM/7Xu8B3j2HFH+2fNP0dvdmu+fScCD6VPNVQNWw==
|
||||
dependencies:
|
||||
"@babel/core" "^7.19.6"
|
||||
"@babel/preset-env" "^7.19.4"
|
||||
"@babel/preset-react" "^7.18.6"
|
||||
"@sect/modernizr-loader" "^1.0.3"
|
||||
autoprefixer "^10.4.13"
|
||||
babel-loader "^9.0.1"
|
||||
core-js "^3.26.0"
|
||||
css-loader "^6.7.1"
|
||||
expose-loader "^4.0.0"
|
||||
ignore-emit-webpack-plugin "^2.0.6"
|
||||
imports-loader "^4.0.1"
|
||||
json-loader "^0.5.7"
|
||||
lodash "^4.17.21"
|
||||
mini-css-extract-plugin "^2.6.1"
|
||||
modernizr "^3.12.0"
|
||||
npm "^8.19.2"
|
||||
postcss "^8.4.18"
|
||||
postcss-custom-properties "^12.1.10"
|
||||
postcss-load-config "^4.0.1"
|
||||
postcss-loader "^7.0.1"
|
||||
resolve-url-loader "^5.0.0"
|
||||
sass "^1.55.0"
|
||||
sass-lint "^1.13.1"
|
||||
sass-loader "^13.1.0"
|
||||
webpack "^5.74.0"
|
||||
webpack-bundle-analyzer "^4.7.0"
|
||||
|
||||
"@tootallnate/once@2":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
|
||||
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
|
||||
|
||||
"@types/eslint-scope@^3.7.3":
|
||||
version "3.7.4"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.4.tgz#37fc1223f0786c39627068a12e94d6e6fc61de16"
|
||||
integrity sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==
|
||||
dependencies:
|
||||
"@types/eslint" "*"
|
||||
"@types/estree" "*"
|
||||
|
||||
"@types/eslint@*", "@types/eslint@^7.29.0 || ^8.4.1":
|
||||
version "8.4.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-8.4.10.tgz#19731b9685c19ed1552da7052b6f668ed7eb64bb"
|
||||
integrity sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==
|
||||
dependencies:
|
||||
"@types/estree" "*"
|
||||
"@types/json-schema" "*"
|
||||
|
||||
"@types/estree@*":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2"
|
||||
integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==
|
||||
|
||||
"@types/estree@^0.0.51":
|
||||
version "0.0.51"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40"
|
||||
integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==
|
||||
|
||||
"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
|
||||
version "7.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
|
||||
integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
|
||||
|
||||
"@types/json5@^0.0.29":
|
||||
version "0.0.29"
|
||||
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
|
||||
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
|
||||
|
||||
"@types/node@*":
|
||||
version "18.11.18"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f"
|
||||
integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==
|
||||
|
||||
"@types/parse-json@^4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
|
||||
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
|
||||
|
||||
"@webassemblyjs/ast@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
||||
integrity sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==
|
||||
dependencies:
|
||||
"@webassemblyjs/helper-numbers" "1.11.1"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
||||
|
||||
"@webassemblyjs/floating-point-hex-parser@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz#f6c61a705f0fd7a6aecaa4e8198f23d9dc179e4f"
|
||||
integrity sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==
|
||||
|
||||
"@webassemblyjs/helper-api-error@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz#1a63192d8788e5c012800ba6a7a46c705288fd16"
|
||||
integrity sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==
|
||||
|
||||
"@webassemblyjs/helper-buffer@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz#832a900eb444884cde9a7cad467f81500f5e5ab5"
|
||||
integrity sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==
|
||||
|
||||
"@webassemblyjs/helper-numbers@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz#64d81da219fbbba1e3bd1bfc74f6e8c4e10a62ae"
|
||||
integrity sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==
|
||||
dependencies:
|
||||
"@webassemblyjs/floating-point-hex-parser" "1.11.1"
|
||||
"@webassemblyjs/helper-api-error" "1.11.1"
|
||||
"@xtuc/long" "4.2.2"
|
||||
|
||||
"@webassemblyjs/helper-wasm-bytecode@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz#f328241e41e7b199d0b20c18e88429c4433295e1"
|
||||
integrity sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==
|
||||
|
||||
"@webassemblyjs/helper-wasm-section@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz#21ee065a7b635f319e738f0dd73bfbda281c097a"
|
||||
integrity sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.11.1"
|
||||
"@webassemblyjs/helper-buffer" "1.11.1"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
||||
"@webassemblyjs/wasm-gen" "1.11.1"
|
||||
|
||||
"@webassemblyjs/ieee754@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz#963929e9bbd05709e7e12243a099180812992614"
|
||||
integrity sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==
|
||||
dependencies:
|
||||
"@xtuc/ieee754" "^1.2.0"
|
||||
|
||||
"@webassemblyjs/leb128@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.1.tgz#ce814b45574e93d76bae1fb2644ab9cdd9527aa5"
|
||||
integrity sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==
|
||||
dependencies:
|
||||
"@xtuc/long" "4.2.2"
|
||||
|
||||
"@webassemblyjs/utf8@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.1.tgz#d1f8b764369e7c6e6bae350e854dec9a59f0a3ff"
|
||||
integrity sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==
|
||||
|
||||
"@webassemblyjs/wasm-edit@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz#ad206ebf4bf95a058ce9880a8c092c5dec8193d6"
|
||||
integrity sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.11.1"
|
||||
"@webassemblyjs/helper-buffer" "1.11.1"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
||||
"@webassemblyjs/helper-wasm-section" "1.11.1"
|
||||
"@webassemblyjs/wasm-gen" "1.11.1"
|
||||
"@webassemblyjs/wasm-opt" "1.11.1"
|
||||
"@webassemblyjs/wasm-parser" "1.11.1"
|
||||
"@webassemblyjs/wast-printer" "1.11.1"
|
||||
|
||||
"@webassemblyjs/wasm-gen@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz#86c5ea304849759b7d88c47a32f4f039ae3c8f76"
|
||||
integrity sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.11.1"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
||||
"@webassemblyjs/ieee754" "1.11.1"
|
||||
"@webassemblyjs/leb128" "1.11.1"
|
||||
"@webassemblyjs/utf8" "1.11.1"
|
||||
|
||||
"@webassemblyjs/wasm-opt@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz#657b4c2202f4cf3b345f8a4c6461c8c2418985f2"
|
||||
integrity sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.11.1"
|
||||
"@webassemblyjs/helper-buffer" "1.11.1"
|
||||
"@webassemblyjs/wasm-gen" "1.11.1"
|
||||
"@webassemblyjs/wasm-parser" "1.11.1"
|
||||
|
||||
"@webassemblyjs/wasm-parser@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz#86ca734534f417e9bd3c67c7a1c75d8be41fb199"
|
||||
integrity sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.11.1"
|
||||
"@webassemblyjs/helper-api-error" "1.11.1"
|
||||
"@webassemblyjs/helper-wasm-bytecode" "1.11.1"
|
||||
"@webassemblyjs/ieee754" "1.11.1"
|
||||
"@webassemblyjs/leb128" "1.11.1"
|
||||
"@webassemblyjs/utf8" "1.11.1"
|
||||
|
||||
"@webassemblyjs/wast-printer@1.11.1":
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz#d0c73beda8eec5426f10ae8ef55cee5e7084c2f0"
|
||||
integrity sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==
|
||||
dependencies:
|
||||
"@webassemblyjs/ast" "1.11.1"
|
||||
"@xtuc/long" "4.2.2"
|
||||
|
||||
"@webpack-cli/configtest@^2.0.1":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.1.tgz#a69720f6c9bad6aef54a8fa6ba9c3533e7ef4c7f"
|
||||
integrity sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==
|
||||
|
||||
"@webpack-cli/info@^2.0.1":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0"
|
||||
integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==
|
||||
|
||||
"@webpack-cli/serve@^2.0.1":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8"
|
||||
integrity sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==
|
||||
|
||||
"@xtuc/ieee754@^1.2.0":
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
|
||||
integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
|
||||
|
||||
"@xtuc/long@4.2.2":
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
||||
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
|
||||
|
||||
abbrev@^1.0.0, abbrev@~1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
|
||||
|
||||
acorn-import-assertions@^1.7.6:
|
||||
version "1.8.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9"
|
||||
integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==
|
||||
|
||||
acorn-jsx@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
|
||||
dependencies:
|
||||
acorn "^3.0.4"
|
||||
|
||||
acorn-jsx@^5.3.2:
|
||||
version "5.3.2"
|
||||
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
|
||||
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
|
||||
|
||||
acorn-walk@^8.0.0:
|
||||
version "8.2.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
|
||||
integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
|
||||
|
||||
acorn@^3.0.4:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
|
||||
|
||||
acorn@^5.5.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.1.tgz#f095829297706a7c9776958c0afc8930a9b9d9d8"
|
||||
|
||||
acorn@^8.0.4, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0:
|
||||
version "8.8.1"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
|
||||
integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
|
||||
|
||||
adjust-sourcemap-loader@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz#fc4a0fd080f7d10471f30a7320f25560ade28c99"
|
||||
integrity sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==
|
||||
dependencies:
|
||||
loader-utils "^2.0.0"
|
||||
regex-parser "^2.2.11"
|
||||
|
||||
agent-base@6, agent-base@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
|
||||
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
|
||||
dependencies:
|
||||
debug "4"
|
||||
|
||||
agentkeepalive@^4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717"
|
||||
integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==
|
||||
dependencies:
|
||||
debug "^4.1.0"
|
||||
depd "^1.1.2"
|
||||
humanize-ms "^1.2.1"
|
||||
|
||||
aggregate-error@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a"
|
||||
integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==
|
||||
dependencies:
|
||||
clean-stack "^2.0.0"
|
||||
indent-string "^4.0.0"
|
||||
|
||||
ajv-formats@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
|
||||
integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
|
||||
dependencies:
|
||||
ajv "^8.0.0"
|
||||
|
||||
ajv-keywords@^1.0.0:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
|
||||
|
||||
ajv-keywords@^3.5.2:
|
||||
version "3.5.2"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
|
||||
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
|
||||
|
||||
ajv-keywords@^5.0.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
|
||||
integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.3"
|
||||
|
||||
ajv@^4.7.0:
|
||||
version "4.11.8"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
|
||||
dependencies:
|
||||
co "^4.6.0"
|
||||
json-stable-stringify "^1.0.1"
|
||||
|
||||
ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5:
|
||||
version "6.12.6"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
|
||||
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.1"
|
||||
fast-json-stable-stringify "^2.0.0"
|
||||
json-schema-traverse "^0.4.1"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
ajv@^8.0.0, ajv@^8.8.0:
|
||||
version "8.12.0"
|
||||
resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1"
|
||||
integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==
|
||||
dependencies:
|
||||
fast-deep-equal "^3.1.1"
|
||||
json-schema-traverse "^1.0.0"
|
||||
require-from-string "^2.0.2"
|
||||
uri-js "^4.2.2"
|
||||
|
||||
ansi-escapes@^1.1.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
|
||||
|
||||
ansi-regex@^2.0.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
||||
|
||||
ansi-regex@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
|
||||
|
||||
ansi-regex@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
||||
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
||||
|
||||
ansi-styles@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
|
||||
|
||||
ansi-styles@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
|
||||
dependencies:
|
||||
color-convert "^1.9.0"
|
||||
|
||||
ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
|
||||
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
|
||||
dependencies:
|
||||
color-convert "^2.0.1"
|
||||
|
||||
anymatch@~3.1.2:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
|
||||
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
|
||||
dependencies:
|
||||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
"aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
|
||||
integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
|
||||
|
||||
archy@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
|
||||
integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==
|
||||
|
||||
are-we-there-yet@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd"
|
||||
integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==
|
||||
dependencies:
|
||||
delegates "^1.0.0"
|
||||
readable-stream "^3.6.0"
|
||||
|
||||
argparse@^1.0.7:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
|
||||
dependencies:
|
||||
sprintf-js "~1.0.2"
|
||||
|
||||
argparse@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
|
||||
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
|
||||
|
||||
aria-query@^5.1.3:
|
||||
version "5.1.3"
|
||||
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
|
||||
integrity sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==
|
||||
dependencies:
|
||||
deep-equal "^2.0.5"
|
||||
|
||||
array-includes@^3.1.5, array-includes@^3.1.6:
|
||||
version "3.1.6"
|
||||
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
|
||||
integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
get-intrinsic "^1.1.3"
|
||||
is-string "^1.0.7"
|
||||
|
||||
array-union@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
|
||||
dependencies:
|
||||
array-uniq "^1.0.1"
|
||||
|
||||
array-uniq@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
|
||||
|
||||
array.prototype.flat@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2"
|
||||
integrity sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
es-shim-unscopables "^1.0.0"
|
||||
|
||||
array.prototype.flatmap@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183"
|
||||
integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
es-shim-unscopables "^1.0.0"
|
||||
|
||||
array.prototype.tosorted@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532"
|
||||
integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
es-shim-unscopables "^1.0.0"
|
||||
get-intrinsic "^1.1.3"
|
||||
|
||||
arrify@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
|
||||
|
||||
asap@^2.0.0:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
|
||||
integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
|
||||
|
||||
ast-types-flow@^0.0.7:
|
||||
version "0.0.7"
|
||||
resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad"
|
||||
integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==
|
||||
|
||||
autoprefixer@^10.4.13:
|
||||
version "10.4.13"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
|
||||
integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
|
||||
dependencies:
|
||||
browserslist "^4.21.4"
|
||||
caniuse-lite "^1.0.30001426"
|
||||
fraction.js "^4.2.0"
|
||||
normalize-range "^0.1.2"
|
||||
picocolors "^1.0.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
available-typed-arrays@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
|
||||
integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
|
||||
|
||||
axe-core@^4.6.2:
|
||||
version "4.6.2"
|
||||
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.2.tgz#6e566ab2a3d29e415f5115bc0fd2597a5eb3e5e3"
|
||||
integrity sha512-b1WlTV8+XKLj9gZy2DZXgQiyDp9xkkoe2a6U6UbYccScq2wgH/YwCeI2/Jq2mgo0HzQxqJOjWZBLeA/mqsk5Mg==
|
||||
|
||||
axobject-query@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1"
|
||||
integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==
|
||||
dependencies:
|
||||
deep-equal "^2.0.5"
|
||||
|
||||
babel-loader@^9.0.1:
|
||||
version "9.1.2"
|
||||
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-9.1.2.tgz#a16a080de52d08854ee14570469905a5fc00d39c"
|
||||
integrity sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==
|
||||
dependencies:
|
||||
find-cache-dir "^3.3.2"
|
||||
schema-utils "^4.0.0"
|
||||
|
||||
babel-plugin-polyfill-corejs2@^0.3.3:
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
|
||||
integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.17.7"
|
||||
"@babel/helper-define-polyfill-provider" "^0.3.3"
|
||||
semver "^6.1.1"
|
||||
|
||||
babel-plugin-polyfill-corejs3@^0.6.0:
|
||||
version "0.6.0"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
|
||||
integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
|
||||
dependencies:
|
||||
"@babel/helper-define-polyfill-provider" "^0.3.3"
|
||||
core-js-compat "^3.25.1"
|
||||
|
||||
babel-plugin-polyfill-regenerator@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
|
||||
integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
|
||||
dependencies:
|
||||
"@babel/helper-define-polyfill-provider" "^0.3.3"
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||
|
||||
big.js@^5.2.2:
|
||||
version "5.2.2"
|
||||
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
||||
integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
|
||||
|
||||
bin-links@^3.0.3:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e"
|
||||
integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA==
|
||||
dependencies:
|
||||
cmd-shim "^5.0.0"
|
||||
mkdirp-infer-owner "^2.0.0"
|
||||
npm-normalize-package-bin "^2.0.0"
|
||||
read-cmd-shim "^3.0.0"
|
||||
rimraf "^3.0.0"
|
||||
write-file-atomic "^4.0.0"
|
||||
|
||||
binary-extensions@^2.0.0, binary-extensions@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
brace-expansion@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
|
||||
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
|
||||
braces@^3.0.2, braces@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
browserslist@^4.14.5, browserslist@^4.21.3, browserslist@^4.21.4:
|
||||
version "4.21.4"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
|
||||
integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30001400"
|
||||
electron-to-chromium "^1.4.251"
|
||||
node-releases "^2.0.6"
|
||||
update-browserslist-db "^1.0.9"
|
||||
|
||||
buffer-from@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.0.tgz#87fcaa3a298358e0ade6e442cfce840740d1ad04"
|
||||
|
||||
builtins@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9"
|
||||
integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==
|
||||
dependencies:
|
||||
semver "^7.0.0"
|
||||
|
||||
cacache@^16.0.0, cacache@^16.1.0, cacache@^16.1.3:
|
||||
version "16.1.3"
|
||||
resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e"
|
||||
integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==
|
||||
dependencies:
|
||||
"@npmcli/fs" "^2.1.0"
|
||||
"@npmcli/move-file" "^2.0.0"
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.1.0"
|
||||
glob "^8.0.1"
|
||||
infer-owner "^1.0.4"
|
||||
lru-cache "^7.7.1"
|
||||
minipass "^3.1.6"
|
||||
minipass-collect "^1.0.2"
|
||||
minipass-flush "^1.0.5"
|
||||
minipass-pipeline "^1.2.4"
|
||||
mkdirp "^1.0.4"
|
||||
p-map "^4.0.0"
|
||||
promise-inflight "^1.0.1"
|
||||
rimraf "^3.0.2"
|
||||
ssri "^9.0.0"
|
||||
tar "^6.1.11"
|
||||
unique-filename "^2.0.0"
|
||||
|
||||
call-bind@^1.0.0, call-bind@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
|
||||
integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
get-intrinsic "^1.0.2"
|
||||
|
||||
caller-path@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
|
||||
dependencies:
|
||||
callsites "^0.2.0"
|
||||
|
||||
callsites@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
|
||||
|
||||
callsites@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
|
||||
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
|
||||
|
||||
camelcase@^5.0.0:
|
||||
version "5.3.1"
|
||||
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
|
||||
|
||||
caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426:
|
||||
version "1.0.30001445"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz#cf2d4eb93f2bcdf0310de9dd6d18be271bc0b447"
|
||||
integrity sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg==
|
||||
|
||||
chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
|
||||
dependencies:
|
||||
ansi-styles "^2.2.1"
|
||||
escape-string-regexp "^1.0.2"
|
||||
has-ansi "^2.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
supports-color "^2.0.0"
|
||||
|
||||
chalk@^2.0.0:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e"
|
||||
dependencies:
|
||||
ansi-styles "^3.2.1"
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
chalk@^2.4.2:
|
||||
version "2.4.2"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
||||
dependencies:
|
||||
ansi-styles "^3.2.1"
|
||||
escape-string-regexp "^1.0.5"
|
||||
supports-color "^5.3.0"
|
||||
|
||||
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
||||
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
||||
dependencies:
|
||||
ansi-styles "^4.1.0"
|
||||
supports-color "^7.1.0"
|
||||
|
||||
"chokidar@>=3.0.0 <4.0.0":
|
||||
version "3.5.3"
|
||||
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
|
||||
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
|
||||
dependencies:
|
||||
anymatch "~3.1.2"
|
||||
braces "~3.0.2"
|
||||
glob-parent "~5.1.2"
|
||||
is-binary-path "~2.1.0"
|
||||
is-glob "~4.0.1"
|
||||
normalize-path "~3.0.0"
|
||||
readdirp "~3.6.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
chownr@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
|
||||
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
|
||||
|
||||
chrome-trace-event@^1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
|
||||
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
|
||||
|
||||
cidr-regex@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-3.1.1.tgz#ba1972c57c66f61875f18fd7dd487469770b571d"
|
||||
integrity sha512-RBqYd32aDwbCMFJRL6wHOlDNYJsPNTt8vC82ErHF5vKt8QQzxm1FrkW8s/R5pVrXMf17sba09Uoy91PKiddAsw==
|
||||
dependencies:
|
||||
ip-regex "^4.1.0"
|
||||
|
||||
circular-json@^0.3.1:
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
|
||||
|
||||
clean-stack@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b"
|
||||
integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==
|
||||
|
||||
cli-columns@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646"
|
||||
integrity sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ==
|
||||
dependencies:
|
||||
string-width "^4.2.3"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
cli-cursor@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
|
||||
dependencies:
|
||||
restore-cursor "^1.0.1"
|
||||
|
||||
cli-table3@^0.6.2:
|
||||
version "0.6.3"
|
||||
resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2"
|
||||
integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg==
|
||||
dependencies:
|
||||
string-width "^4.2.0"
|
||||
optionalDependencies:
|
||||
"@colors/colors" "1.5.0"
|
||||
|
||||
cli-width@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
|
||||
|
||||
cliui@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
|
||||
integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
|
||||
dependencies:
|
||||
string-width "^4.2.0"
|
||||
strip-ansi "^6.0.0"
|
||||
wrap-ansi "^6.2.0"
|
||||
|
||||
clone-deep@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
|
||||
integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
|
||||
dependencies:
|
||||
is-plain-object "^2.0.4"
|
||||
kind-of "^6.0.2"
|
||||
shallow-clone "^3.0.0"
|
||||
|
||||
clone@^1.0.2:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
|
||||
|
||||
cmd-shim@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724"
|
||||
integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw==
|
||||
dependencies:
|
||||
mkdirp-infer-owner "^2.0.0"
|
||||
|
||||
co@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||
|
||||
code-point-at@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
|
||||
|
||||
color-convert@^1.9.0:
|
||||
version "1.9.3"
|
||||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
|
||||
dependencies:
|
||||
color-name "1.1.3"
|
||||
|
||||
color-convert@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
|
||||
integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
|
||||
dependencies:
|
||||
color-name "~1.1.4"
|
||||
|
||||
color-name@1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
|
||||
|
||||
color-name@~1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
|
||||
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
|
||||
|
||||
color-support@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
|
||||
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
|
||||
|
||||
colorette@^2.0.14:
|
||||
version "2.0.19"
|
||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
|
||||
integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
|
||||
|
||||
colors@1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
|
||||
integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
|
||||
|
||||
columnify@^1.6.0:
|
||||
version "1.6.0"
|
||||
resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3"
|
||||
integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q==
|
||||
dependencies:
|
||||
strip-ansi "^6.0.1"
|
||||
wcwidth "^1.0.0"
|
||||
|
||||
commander@^2.20.0:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
|
||||
commander@^2.8.1:
|
||||
version "2.16.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.16.0.tgz#f16390593996ceb4f3eeb020b31d78528f7f8a50"
|
||||
|
||||
commander@^7.2.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
|
||||
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
|
||||
|
||||
commander@^9.4.1:
|
||||
version "9.5.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30"
|
||||
integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==
|
||||
|
||||
common-ancestor-path@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7"
|
||||
integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==
|
||||
|
||||
commondir@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
|
||||
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
|
||||
concat-stream@^1.4.6:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
|
||||
dependencies:
|
||||
buffer-from "^1.0.0"
|
||||
inherits "^2.0.3"
|
||||
readable-stream "^2.2.2"
|
||||
typedarray "^0.0.6"
|
||||
|
||||
confusing-browser-globals@^1.0.10:
|
||||
version "1.0.11"
|
||||
resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81"
|
||||
integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==
|
||||
|
||||
console-control-strings@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
||||
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
|
||||
|
||||
convert-source-map@^1.7.0:
|
||||
version "1.9.0"
|
||||
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
|
||||
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
|
||||
|
||||
core-js-compat@^3.25.1:
|
||||
version "3.27.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.27.1.tgz#b5695eb25c602d72b1d30cbfba3cb7e5e4cf0a67"
|
||||
integrity sha512-Dg91JFeCDA17FKnneN7oCMz4BkQ4TcffkgHP4OWwp9yx3pi7ubqMDXXSacfNak1PQqjc95skyt+YBLHQJnkJwA==
|
||||
dependencies:
|
||||
browserslist "^4.21.4"
|
||||
|
||||
core-js@^3.26.0:
|
||||
version "3.27.1"
|
||||
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.27.1.tgz#23cc909b315a6bb4e418bf40a52758af2103ba46"
|
||||
integrity sha512-GutwJLBChfGCpwwhbYoqfv03LAfmiz7e7D/BNxzeMxwQf10GRSzqiOjx7AmtEk+heiD/JWmBuyBPgFtx0Sg1ww==
|
||||
|
||||
core-util-is@~1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
|
||||
cosmiconfig@^7.0.0:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
|
||||
integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
|
||||
dependencies:
|
||||
"@types/parse-json" "^4.0.0"
|
||||
import-fresh "^3.2.1"
|
||||
parse-json "^5.0.0"
|
||||
path-type "^4.0.0"
|
||||
yaml "^1.10.0"
|
||||
|
||||
cross-spawn@^7.0.2, cross-spawn@^7.0.3:
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
||||
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
||||
dependencies:
|
||||
path-key "^3.1.0"
|
||||
shebang-command "^2.0.0"
|
||||
which "^2.0.1"
|
||||
|
||||
css-loader@^6.7.1:
|
||||
version "6.7.3"
|
||||
resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-6.7.3.tgz#1e8799f3ccc5874fdd55461af51137fcc5befbcd"
|
||||
integrity sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==
|
||||
dependencies:
|
||||
icss-utils "^5.1.0"
|
||||
postcss "^8.4.19"
|
||||
postcss-modules-extract-imports "^3.0.0"
|
||||
postcss-modules-local-by-default "^4.0.0"
|
||||
postcss-modules-scope "^3.0.0"
|
||||
postcss-modules-values "^4.0.0"
|
||||
postcss-value-parser "^4.2.0"
|
||||
semver "^7.3.8"
|
||||
|
||||
cssesc@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
|
||||
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
|
||||
|
||||
d@1:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
|
||||
dependencies:
|
||||
es5-ext "^0.10.9"
|
||||
|
||||
damerau-levenshtein@^1.0.8:
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
|
||||
integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
|
||||
|
||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debug@^2.1.1:
|
||||
version "2.6.9"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@^3.2.7:
|
||||
version "3.2.7"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
||||
integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==
|
||||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
debuglog@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492"
|
||||
integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==
|
||||
|
||||
decamelize@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||
|
||||
deep-equal@^2.0.5:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6"
|
||||
integrity sha512-RdpzE0Hv4lhowpIUKKMJfeH6C1pXdtT1/it80ubgWqwI3qpuxUBpC1S4hnHg+zjnuOoDkzUtUCEEkG+XG5l3Mw==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
es-get-iterator "^1.1.2"
|
||||
get-intrinsic "^1.1.3"
|
||||
is-arguments "^1.1.1"
|
||||
is-array-buffer "^3.0.1"
|
||||
is-date-object "^1.0.5"
|
||||
is-regex "^1.1.4"
|
||||
is-shared-array-buffer "^1.0.2"
|
||||
isarray "^2.0.5"
|
||||
object-is "^1.1.5"
|
||||
object-keys "^1.1.1"
|
||||
object.assign "^4.1.4"
|
||||
regexp.prototype.flags "^1.4.3"
|
||||
side-channel "^1.0.4"
|
||||
which-boxed-primitive "^1.0.2"
|
||||
which-collection "^1.0.1"
|
||||
which-typed-array "^1.1.9"
|
||||
|
||||
deep-is@^0.1.3:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
|
||||
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
|
||||
|
||||
deep-is@~0.1.3:
|
||||
version "0.1.3"
|
||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
|
||||
|
||||
defaults@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
|
||||
integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==
|
||||
dependencies:
|
||||
clone "^1.0.2"
|
||||
|
||||
define-properties@^1.1.3, define-properties@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
|
||||
integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
|
||||
dependencies:
|
||||
has-property-descriptors "^1.0.0"
|
||||
object-keys "^1.1.1"
|
||||
|
||||
del@^2.0.2:
|
||||
version "2.2.2"
|
||||
resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
|
||||
dependencies:
|
||||
globby "^5.0.0"
|
||||
is-path-cwd "^1.0.0"
|
||||
is-path-in-cwd "^1.0.0"
|
||||
object-assign "^4.0.1"
|
||||
pify "^2.0.0"
|
||||
pinkie-promise "^2.0.0"
|
||||
rimraf "^2.2.8"
|
||||
|
||||
delegates@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
||||
|
||||
depd@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
|
||||
integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==
|
||||
|
||||
dezalgo@^1.0.0:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81"
|
||||
integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==
|
||||
dependencies:
|
||||
asap "^2.0.0"
|
||||
wrappy "1"
|
||||
|
||||
diff@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
|
||||
integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
|
||||
|
||||
doctrine@^1.2.2:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
isarray "^1.0.0"
|
||||
|
||||
doctrine@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
|
||||
doctrine@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
|
||||
integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
|
||||
dependencies:
|
||||
esutils "^2.0.2"
|
||||
|
||||
duplexer@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
|
||||
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
|
||||
|
||||
electron-to-chromium@^1.4.251:
|
||||
version "1.4.284"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
|
||||
integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
||||
|
||||
emoji-regex@^9.2.2:
|
||||
version "9.2.2"
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
|
||||
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
|
||||
|
||||
emojis-list@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
|
||||
integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==
|
||||
|
||||
encoding@^0.1.13:
|
||||
version "0.1.13"
|
||||
resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
|
||||
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
|
||||
dependencies:
|
||||
iconv-lite "^0.6.2"
|
||||
|
||||
enhanced-resolve@^5.10.0:
|
||||
version "5.12.0"
|
||||
resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634"
|
||||
integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.4"
|
||||
tapable "^2.2.0"
|
||||
|
||||
entities@~2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5"
|
||||
integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==
|
||||
|
||||
env-paths@^2.2.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2"
|
||||
integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==
|
||||
|
||||
envinfo@^7.7.3:
|
||||
version "7.8.1"
|
||||
resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
|
||||
integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
|
||||
|
||||
err-code@^2.0.2:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
|
||||
integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
|
||||
|
||||
error-ex@^1.3.1:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
|
||||
dependencies:
|
||||
is-arrayish "^0.2.1"
|
||||
|
||||
es-abstract@^1.19.0, es-abstract@^1.20.4:
|
||||
version "1.21.1"
|
||||
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.1.tgz#e6105a099967c08377830a0c9cb589d570dd86c6"
|
||||
integrity sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==
|
||||
dependencies:
|
||||
available-typed-arrays "^1.0.5"
|
||||
call-bind "^1.0.2"
|
||||
es-set-tostringtag "^2.0.1"
|
||||
es-to-primitive "^1.2.1"
|
||||
function-bind "^1.1.1"
|
||||
function.prototype.name "^1.1.5"
|
||||
get-intrinsic "^1.1.3"
|
||||
get-symbol-description "^1.0.0"
|
||||
globalthis "^1.0.3"
|
||||
gopd "^1.0.1"
|
||||
has "^1.0.3"
|
||||
has-property-descriptors "^1.0.0"
|
||||
has-proto "^1.0.1"
|
||||
has-symbols "^1.0.3"
|
||||
internal-slot "^1.0.4"
|
||||
is-array-buffer "^3.0.1"
|
||||
is-callable "^1.2.7"
|
||||
is-negative-zero "^2.0.2"
|
||||
is-regex "^1.1.4"
|
||||
is-shared-array-buffer "^1.0.2"
|
||||
is-string "^1.0.7"
|
||||
is-typed-array "^1.1.10"
|
||||
is-weakref "^1.0.2"
|
||||
object-inspect "^1.12.2"
|
||||
object-keys "^1.1.1"
|
||||
object.assign "^4.1.4"
|
||||
regexp.prototype.flags "^1.4.3"
|
||||
safe-regex-test "^1.0.0"
|
||||
string.prototype.trimend "^1.0.6"
|
||||
string.prototype.trimstart "^1.0.6"
|
||||
typed-array-length "^1.0.4"
|
||||
unbox-primitive "^1.0.2"
|
||||
which-typed-array "^1.1.9"
|
||||
|
||||
es-get-iterator@^1.1.2:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.3.tgz#3ef87523c5d464d41084b2c3c9c214f1199763d6"
|
||||
integrity sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
get-intrinsic "^1.1.3"
|
||||
has-symbols "^1.0.3"
|
||||
is-arguments "^1.1.1"
|
||||
is-map "^2.0.2"
|
||||
is-set "^2.0.2"
|
||||
is-string "^1.0.7"
|
||||
isarray "^2.0.5"
|
||||
stop-iteration-iterator "^1.0.0"
|
||||
|
||||
es-module-lexer@^0.9.0:
|
||||
version "0.9.3"
|
||||
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
|
||||
integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
|
||||
|
||||
es-set-tostringtag@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8"
|
||||
integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==
|
||||
dependencies:
|
||||
get-intrinsic "^1.1.3"
|
||||
has "^1.0.3"
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
es-shim-unscopables@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241"
|
||||
integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==
|
||||
dependencies:
|
||||
has "^1.0.3"
|
||||
|
||||
es-to-primitive@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
|
||||
integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
|
||||
dependencies:
|
||||
is-callable "^1.1.4"
|
||||
is-date-object "^1.0.1"
|
||||
is-symbol "^1.0.2"
|
||||
|
||||
es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
|
||||
version "0.10.45"
|
||||
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.45.tgz#0bfdf7b473da5919d5adf3bd25ceb754fccc3653"
|
||||
dependencies:
|
||||
es6-iterator "~2.0.3"
|
||||
es6-symbol "~3.1.1"
|
||||
next-tick "1"
|
||||
|
||||
es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "^0.10.35"
|
||||
es6-symbol "^3.1.1"
|
||||
|
||||
es6-map@^0.1.3:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
es6-iterator "~2.0.1"
|
||||
es6-set "~0.1.5"
|
||||
es6-symbol "~3.1.1"
|
||||
event-emitter "~0.3.5"
|
||||
|
||||
es6-set@~0.1.5:
|
||||
version "0.1.5"
|
||||
resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
es6-iterator "~2.0.1"
|
||||
es6-symbol "3.1.1"
|
||||
event-emitter "~0.3.5"
|
||||
|
||||
es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
|
||||
es6-weak-map@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "^0.10.14"
|
||||
es6-iterator "^2.0.1"
|
||||
es6-symbol "^3.1.1"
|
||||
|
||||
escalade@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
|
||||
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
|
||||
|
||||
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
||||
|
||||
escape-string-regexp@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
|
||||
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
|
||||
|
||||
escope@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
|
||||
dependencies:
|
||||
es6-map "^0.1.3"
|
||||
es6-weak-map "^2.0.1"
|
||||
esrecurse "^4.1.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-config-airbnb-base@^15.0.0:
|
||||
version "15.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236"
|
||||
integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==
|
||||
dependencies:
|
||||
confusing-browser-globals "^1.0.10"
|
||||
object.assign "^4.1.2"
|
||||
object.entries "^1.1.5"
|
||||
semver "^6.3.0"
|
||||
|
||||
eslint-config-airbnb@^19.0.4:
|
||||
version "19.0.4"
|
||||
resolved "https://registry.yarnpkg.com/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz#84d4c3490ad70a0ffa571138ebcdea6ab085fdc3"
|
||||
integrity sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==
|
||||
dependencies:
|
||||
eslint-config-airbnb-base "^15.0.0"
|
||||
object.assign "^4.1.2"
|
||||
object.entries "^1.1.5"
|
||||
|
||||
eslint-import-resolver-node@^0.3.7:
|
||||
version "0.3.7"
|
||||
resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.7.tgz#83b375187d412324a1963d84fa664377a23eb4d7"
|
||||
integrity sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==
|
||||
dependencies:
|
||||
debug "^3.2.7"
|
||||
is-core-module "^2.11.0"
|
||||
resolve "^1.22.1"
|
||||
|
||||
eslint-module-utils@^2.7.4:
|
||||
version "2.7.4"
|
||||
resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz#4f3e41116aaf13a20792261e61d3a2e7e0583974"
|
||||
integrity sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==
|
||||
dependencies:
|
||||
debug "^3.2.7"
|
||||
|
||||
eslint-plugin-import@^2.26.0:
|
||||
version "2.27.5"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65"
|
||||
integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==
|
||||
dependencies:
|
||||
array-includes "^3.1.6"
|
||||
array.prototype.flat "^1.3.1"
|
||||
array.prototype.flatmap "^1.3.1"
|
||||
debug "^3.2.7"
|
||||
doctrine "^2.1.0"
|
||||
eslint-import-resolver-node "^0.3.7"
|
||||
eslint-module-utils "^2.7.4"
|
||||
has "^1.0.3"
|
||||
is-core-module "^2.11.0"
|
||||
is-glob "^4.0.3"
|
||||
minimatch "^3.1.2"
|
||||
object.values "^1.1.6"
|
||||
resolve "^1.22.1"
|
||||
semver "^6.3.0"
|
||||
tsconfig-paths "^3.14.1"
|
||||
|
||||
eslint-plugin-jsx-a11y@^6.6.1:
|
||||
version "6.7.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz#fca5e02d115f48c9a597a6894d5bcec2f7a76976"
|
||||
integrity sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.20.7"
|
||||
aria-query "^5.1.3"
|
||||
array-includes "^3.1.6"
|
||||
array.prototype.flatmap "^1.3.1"
|
||||
ast-types-flow "^0.0.7"
|
||||
axe-core "^4.6.2"
|
||||
axobject-query "^3.1.1"
|
||||
damerau-levenshtein "^1.0.8"
|
||||
emoji-regex "^9.2.2"
|
||||
has "^1.0.3"
|
||||
jsx-ast-utils "^3.3.3"
|
||||
language-tags "=1.0.5"
|
||||
minimatch "^3.1.2"
|
||||
object.entries "^1.1.6"
|
||||
object.fromentries "^2.0.6"
|
||||
semver "^6.3.0"
|
||||
|
||||
eslint-plugin-react@^7.31.10:
|
||||
version "7.32.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz#88cdeb4065da8ca0b64e1274404f53a0f9890200"
|
||||
integrity sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==
|
||||
dependencies:
|
||||
array-includes "^3.1.6"
|
||||
array.prototype.flatmap "^1.3.1"
|
||||
array.prototype.tosorted "^1.1.1"
|
||||
doctrine "^2.1.0"
|
||||
estraverse "^5.3.0"
|
||||
jsx-ast-utils "^2.4.1 || ^3.0.0"
|
||||
minimatch "^3.1.2"
|
||||
object.entries "^1.1.6"
|
||||
object.fromentries "^2.0.6"
|
||||
object.hasown "^1.1.2"
|
||||
object.values "^1.1.6"
|
||||
prop-types "^15.8.1"
|
||||
resolve "^2.0.0-next.4"
|
||||
semver "^6.3.0"
|
||||
string.prototype.matchall "^4.0.8"
|
||||
|
||||
eslint-scope@5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
|
||||
integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
|
||||
dependencies:
|
||||
esrecurse "^4.3.0"
|
||||
estraverse "^4.1.1"
|
||||
|
||||
eslint-scope@^7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
|
||||
integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
|
||||
dependencies:
|
||||
esrecurse "^4.3.0"
|
||||
estraverse "^5.2.0"
|
||||
|
||||
eslint-utils@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
|
||||
integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
|
||||
dependencies:
|
||||
eslint-visitor-keys "^2.0.0"
|
||||
|
||||
eslint-visitor-keys@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
|
||||
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
|
||||
|
||||
eslint-visitor-keys@^3.3.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
|
||||
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
|
||||
|
||||
eslint-webpack-plugin@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz#1978cdb9edc461e4b0195a20da950cf57988347c"
|
||||
integrity sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==
|
||||
dependencies:
|
||||
"@types/eslint" "^7.29.0 || ^8.4.1"
|
||||
jest-worker "^28.0.2"
|
||||
micromatch "^4.0.5"
|
||||
normalize-path "^3.0.0"
|
||||
schema-utils "^4.0.0"
|
||||
|
||||
eslint@^2.7.0:
|
||||
version "2.13.1"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-2.13.1.tgz#e4cc8fa0f009fb829aaae23855a29360be1f6c11"
|
||||
dependencies:
|
||||
chalk "^1.1.3"
|
||||
concat-stream "^1.4.6"
|
||||
debug "^2.1.1"
|
||||
doctrine "^1.2.2"
|
||||
es6-map "^0.1.3"
|
||||
escope "^3.6.0"
|
||||
espree "^3.1.6"
|
||||
estraverse "^4.2.0"
|
||||
esutils "^2.0.2"
|
||||
file-entry-cache "^1.1.1"
|
||||
glob "^7.0.3"
|
||||
globals "^9.2.0"
|
||||
ignore "^3.1.2"
|
||||
imurmurhash "^0.1.4"
|
||||
inquirer "^0.12.0"
|
||||
is-my-json-valid "^2.10.0"
|
||||
is-resolvable "^1.0.0"
|
||||
js-yaml "^3.5.1"
|
||||
json-stable-stringify "^1.0.0"
|
||||
levn "^0.3.0"
|
||||
lodash "^4.0.0"
|
||||
mkdirp "^0.5.0"
|
||||
optionator "^0.8.1"
|
||||
path-is-absolute "^1.0.0"
|
||||
path-is-inside "^1.0.1"
|
||||
pluralize "^1.2.1"
|
||||
progress "^1.1.8"
|
||||
require-uncached "^1.0.2"
|
||||
shelljs "^0.6.0"
|
||||
strip-json-comments "~1.0.1"
|
||||
table "^3.7.8"
|
||||
text-table "~0.2.0"
|
||||
user-home "^2.0.0"
|
||||
|
||||
eslint@^8.26.0:
|
||||
version "8.32.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.32.0.tgz#d9690056bb6f1a302bd991e7090f5b68fbaea861"
|
||||
integrity sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==
|
||||
dependencies:
|
||||
"@eslint/eslintrc" "^1.4.1"
|
||||
"@humanwhocodes/config-array" "^0.11.8"
|
||||
"@humanwhocodes/module-importer" "^1.0.1"
|
||||
"@nodelib/fs.walk" "^1.2.8"
|
||||
ajv "^6.10.0"
|
||||
chalk "^4.0.0"
|
||||
cross-spawn "^7.0.2"
|
||||
debug "^4.3.2"
|
||||
doctrine "^3.0.0"
|
||||
escape-string-regexp "^4.0.0"
|
||||
eslint-scope "^7.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
espree "^9.4.0"
|
||||
esquery "^1.4.0"
|
||||
esutils "^2.0.2"
|
||||
fast-deep-equal "^3.1.3"
|
||||
file-entry-cache "^6.0.1"
|
||||
find-up "^5.0.0"
|
||||
glob-parent "^6.0.2"
|
||||
globals "^13.19.0"
|
||||
grapheme-splitter "^1.0.4"
|
||||
ignore "^5.2.0"
|
||||
import-fresh "^3.0.0"
|
||||
imurmurhash "^0.1.4"
|
||||
is-glob "^4.0.0"
|
||||
is-path-inside "^3.0.3"
|
||||
js-sdsl "^4.1.4"
|
||||
js-yaml "^4.1.0"
|
||||
json-stable-stringify-without-jsonify "^1.0.1"
|
||||
levn "^0.4.1"
|
||||
lodash.merge "^4.6.2"
|
||||
minimatch "^3.1.2"
|
||||
natural-compare "^1.4.0"
|
||||
optionator "^0.9.1"
|
||||
regexpp "^3.2.0"
|
||||
strip-ansi "^6.0.1"
|
||||
strip-json-comments "^3.1.0"
|
||||
text-table "^0.2.0"
|
||||
|
||||
espree@^3.1.6:
|
||||
version "3.5.4"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7"
|
||||
dependencies:
|
||||
acorn "^5.5.0"
|
||||
acorn-jsx "^3.0.0"
|
||||
|
||||
espree@^9.4.0:
|
||||
version "9.4.1"
|
||||
resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd"
|
||||
integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==
|
||||
dependencies:
|
||||
acorn "^8.8.0"
|
||||
acorn-jsx "^5.3.2"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
esprima@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
|
||||
|
||||
esquery@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
|
||||
integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
|
||||
dependencies:
|
||||
estraverse "^5.1.0"
|
||||
|
||||
esrecurse@^4.1.0:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
|
||||
dependencies:
|
||||
estraverse "^4.1.0"
|
||||
|
||||
esrecurse@^4.3.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
|
||||
integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
|
||||
dependencies:
|
||||
estraverse "^5.2.0"
|
||||
|
||||
estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
|
||||
|
||||
estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
|
||||
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
|
||||
|
||||
esutils@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
|
||||
|
||||
event-emitter@~0.3.5:
|
||||
version "0.3.5"
|
||||
resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
|
||||
dependencies:
|
||||
d "1"
|
||||
es5-ext "~0.10.14"
|
||||
|
||||
events@^3.2.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
|
||||
integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
|
||||
|
||||
exit-hook@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
|
||||
|
||||
expose-loader@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-4.0.0.tgz#aa6f06f57cbc904175de4fe4eaff6211337e0231"
|
||||
integrity sha512-kUEvHyf6MPR2ubZCL9aziP9Br5wxMvq1cghTpYhM6MW52NPq+7hXixw2EqQuI1SvGb1fDjc2ehJOg6645wR6ww==
|
||||
|
||||
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||
|
||||
fast-json-stable-stringify@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
|
||||
|
||||
fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.4:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
|
||||
integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
|
||||
|
||||
fastest-levenshtein@^1.0.12:
|
||||
version "1.0.16"
|
||||
resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
|
||||
integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
|
||||
|
||||
fastq@^1.6.0:
|
||||
version "1.15.0"
|
||||
resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
|
||||
integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
|
||||
dependencies:
|
||||
reusify "^1.0.4"
|
||||
|
||||
figures@^1.3.5:
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
|
||||
dependencies:
|
||||
escape-string-regexp "^1.0.5"
|
||||
object-assign "^4.1.0"
|
||||
|
||||
file-entry-cache@^1.1.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-1.3.1.tgz#44c61ea607ae4be9c1402f41f44270cbfe334ff8"
|
||||
dependencies:
|
||||
flat-cache "^1.2.1"
|
||||
object-assign "^4.0.1"
|
||||
|
||||
file-entry-cache@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
|
||||
integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
|
||||
dependencies:
|
||||
flat-cache "^3.0.4"
|
||||
|
||||
file@^0.2.2:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.yarnpkg.com/file/-/file-0.2.2.tgz#c3dfd8f8cf3535ae455c2b423c2e52635d76b4d3"
|
||||
integrity sha512-gwabMtChzdnpDJdPEpz8Vr/PX0pU85KailuPV71Zw/un5yJVKvzukhB3qf6O3lnTwIe5CxlMYLh3jOK3w5xrLA==
|
||||
|
||||
fill-range@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
||||
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
||||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
find-cache-dir@^3.3.2:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
|
||||
integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
|
||||
dependencies:
|
||||
commondir "^1.0.1"
|
||||
make-dir "^3.0.2"
|
||||
pkg-dir "^4.1.0"
|
||||
|
||||
find-up@^4.0.0, find-up@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
|
||||
integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
|
||||
dependencies:
|
||||
locate-path "^5.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
find-up@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
|
||||
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
|
||||
dependencies:
|
||||
locate-path "^6.0.0"
|
||||
path-exists "^4.0.0"
|
||||
|
||||
flat-cache@^1.2.1:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
|
||||
dependencies:
|
||||
circular-json "^0.3.1"
|
||||
del "^2.0.2"
|
||||
graceful-fs "^4.1.2"
|
||||
write "^0.2.1"
|
||||
|
||||
flat-cache@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
|
||||
integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
|
||||
dependencies:
|
||||
flatted "^3.1.0"
|
||||
rimraf "^3.0.2"
|
||||
|
||||
flatted@^3.1.0:
|
||||
version "3.2.7"
|
||||
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
|
||||
integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
|
||||
|
||||
for-each@^0.3.3:
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
|
||||
integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
|
||||
dependencies:
|
||||
is-callable "^1.1.3"
|
||||
|
||||
fraction.js@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
|
||||
integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
|
||||
|
||||
front-matter@2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/front-matter/-/front-matter-2.1.2.tgz#f75983b9f2f413be658c93dfd7bd8ce4078f5cdb"
|
||||
dependencies:
|
||||
js-yaml "^3.4.6"
|
||||
|
||||
fs-extra@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291"
|
||||
dependencies:
|
||||
graceful-fs "^4.1.2"
|
||||
jsonfile "^3.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-minipass@^2.0.0, fs-minipass@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
|
||||
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
|
||||
fsevents@~2.3.2:
|
||||
version "2.3.2"
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||
|
||||
function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
|
||||
function.prototype.name@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
|
||||
integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.3"
|
||||
es-abstract "^1.19.0"
|
||||
functions-have-names "^1.2.2"
|
||||
|
||||
functions-have-names@^1.2.2:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
|
||||
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
|
||||
|
||||
gauge@^4.0.3:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
|
||||
integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
|
||||
dependencies:
|
||||
aproba "^1.0.3 || ^2.0.0"
|
||||
color-support "^1.1.3"
|
||||
console-control-strings "^1.1.0"
|
||||
has-unicode "^2.0.1"
|
||||
signal-exit "^3.0.7"
|
||||
string-width "^4.2.3"
|
||||
strip-ansi "^6.0.1"
|
||||
wide-align "^1.1.5"
|
||||
|
||||
generate-function@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
|
||||
|
||||
generate-object-property@^1.1.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
|
||||
dependencies:
|
||||
is-property "^1.0.0"
|
||||
|
||||
gensync@^1.0.0-beta.2:
|
||||
version "1.0.0-beta.2"
|
||||
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
|
||||
integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
|
||||
|
||||
get-caller-file@^2.0.1:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
|
||||
get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
|
||||
integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
has "^1.0.3"
|
||||
has-symbols "^1.0.3"
|
||||
|
||||
get-symbol-description@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
|
||||
integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
get-intrinsic "^1.1.1"
|
||||
|
||||
glob-parent@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
|
||||
integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
|
||||
dependencies:
|
||||
is-glob "^4.0.3"
|
||||
|
||||
glob-parent@~5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
|
||||
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
|
||||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
glob-to-regexp@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
|
||||
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
|
||||
|
||||
glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.3, glob@~7.1.1:
|
||||
version "7.1.7"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.0.4"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@^7.1.4:
|
||||
version "7.2.3"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
|
||||
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.1.1"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
glob@^8.0.1:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
|
||||
integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^5.0.1"
|
||||
once "^1.3.0"
|
||||
|
||||
globals@^11.1.0:
|
||||
version "11.12.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
|
||||
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
||||
|
||||
globals@^13.19.0:
|
||||
version "13.19.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8"
|
||||
integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==
|
||||
dependencies:
|
||||
type-fest "^0.20.2"
|
||||
|
||||
globals@^9.2.0:
|
||||
version "9.18.0"
|
||||
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
|
||||
|
||||
globalthis@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf"
|
||||
integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==
|
||||
dependencies:
|
||||
define-properties "^1.1.3"
|
||||
|
||||
globby@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
|
||||
dependencies:
|
||||
array-union "^1.0.1"
|
||||
arrify "^1.0.0"
|
||||
glob "^7.0.3"
|
||||
object-assign "^4.0.1"
|
||||
pify "^2.0.0"
|
||||
pinkie-promise "^2.0.0"
|
||||
|
||||
globule@^1.0.0:
|
||||
version "1.3.2"
|
||||
resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4"
|
||||
dependencies:
|
||||
glob "~7.1.1"
|
||||
lodash "~4.17.10"
|
||||
minimatch "~3.0.2"
|
||||
|
||||
gonzales-pe-sl@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/gonzales-pe-sl/-/gonzales-pe-sl-4.2.3.tgz#6a868bc380645f141feeb042c6f97fcc71b59fe6"
|
||||
dependencies:
|
||||
minimist "1.1.x"
|
||||
|
||||
gopd@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
|
||||
integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
|
||||
dependencies:
|
||||
get-intrinsic "^1.1.3"
|
||||
|
||||
graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.10, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9:
|
||||
version "4.2.10"
|
||||
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
|
||||
integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
|
||||
|
||||
grapheme-splitter@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
|
||||
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
|
||||
|
||||
gzip-size@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462"
|
||||
integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==
|
||||
dependencies:
|
||||
duplexer "^0.1.2"
|
||||
|
||||
has-ansi@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
|
||||
dependencies:
|
||||
ansi-regex "^2.0.0"
|
||||
|
||||
has-bigints@^1.0.1, has-bigints@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
|
||||
integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
|
||||
|
||||
has-flag@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
|
||||
|
||||
has-flag@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
|
||||
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
|
||||
|
||||
has-property-descriptors@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
|
||||
integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
|
||||
dependencies:
|
||||
get-intrinsic "^1.1.1"
|
||||
|
||||
has-proto@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
|
||||
integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
|
||||
|
||||
has-symbols@^1.0.2, has-symbols@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
||||
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
|
||||
|
||||
has-tostringtag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
|
||||
integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
|
||||
dependencies:
|
||||
has-symbols "^1.0.2"
|
||||
|
||||
has-unicode@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
|
||||
integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
|
||||
|
||||
has@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
hosted-git-info@^5.0.0, hosted-git-info@^5.2.1:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-5.2.1.tgz#0ba1c97178ef91f3ab30842ae63d6a272341156f"
|
||||
integrity sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==
|
||||
dependencies:
|
||||
lru-cache "^7.5.1"
|
||||
|
||||
http-cache-semantics@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
|
||||
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
|
||||
|
||||
http-proxy-agent@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
|
||||
integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
|
||||
dependencies:
|
||||
"@tootallnate/once" "2"
|
||||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
https-proxy-agent@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
|
||||
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
|
||||
dependencies:
|
||||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
humanize-ms@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed"
|
||||
integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==
|
||||
dependencies:
|
||||
ms "^2.0.0"
|
||||
|
||||
iconv-lite@^0.6.2:
|
||||
version "0.6.3"
|
||||
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
|
||||
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
|
||||
dependencies:
|
||||
safer-buffer ">= 2.1.2 < 3.0.0"
|
||||
|
||||
icss-utils@^5.0.0, icss-utils@^5.1.0:
|
||||
version "5.1.0"
|
||||
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
|
||||
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
|
||||
|
||||
ignore-emit-webpack-plugin@^2.0.6:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/ignore-emit-webpack-plugin/-/ignore-emit-webpack-plugin-2.0.6.tgz#570c30a08ee4c2ce6060f80d4bc4c5c5fec4d606"
|
||||
integrity sha512-/zC18RWCC2wz4ZwnS4UoujGWzvSKy28DLjtE+jrGBOXej6YdmityhBDzE8E0NlktEqi4tgdNbydX8B6G4haHSQ==
|
||||
|
||||
ignore-walk@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-5.0.1.tgz#5f199e23e1288f518d90358d461387788a154776"
|
||||
integrity sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==
|
||||
dependencies:
|
||||
minimatch "^5.0.1"
|
||||
|
||||
ignore@^3.1.2:
|
||||
version "3.3.10"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
|
||||
|
||||
ignore@^5.2.0:
|
||||
version "5.2.4"
|
||||
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
|
||||
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
|
||||
|
||||
immutable@^4.0.0:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.2.tgz#2da9ff4384a4330c36d4d1bc88e90f9e0b0ccd16"
|
||||
integrity sha512-fTMKDwtbvO5tldky9QZ2fMX7slR0mYpY5nbnFWYp0fOzDhHqhgIw9KoYgxLWsoNTS9ZHGauHj18DTyEw6BK3Og==
|
||||
|
||||
import-fresh@^3.0.0, import-fresh@^3.2.1:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
|
||||
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
|
||||
dependencies:
|
||||
parent-module "^1.0.0"
|
||||
resolve-from "^4.0.0"
|
||||
|
||||
import-local@^3.0.2:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
|
||||
integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
|
||||
dependencies:
|
||||
pkg-dir "^4.2.0"
|
||||
resolve-cwd "^3.0.0"
|
||||
|
||||
imports-loader@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/imports-loader/-/imports-loader-4.0.1.tgz#a3d3067d0c369cd621e2b322b6b6bb2593756be5"
|
||||
integrity sha512-ZiY+1xH5fqAJ1Qu1CFv+zw54rvPCC92DdYRDe0IIUboOhbJPLfOPbF/paA2iipelvMwjQUKWydcFOJ7f1+ZFcA==
|
||||
dependencies:
|
||||
source-map "^0.6.1"
|
||||
strip-comments "^2.0.1"
|
||||
|
||||
imurmurhash@^0.1.4:
|
||||
version "0.1.4"
|
||||
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
|
||||
|
||||
indent-string@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
|
||||
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
|
||||
|
||||
infer-owner@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
|
||||
integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
|
||||
|
||||
inflight@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||
dependencies:
|
||||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2, inherits@^2.0.3, inherits@~2.0.3:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
|
||||
inherits@2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
|
||||
|
||||
ini@^3.0.0, ini@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ini/-/ini-3.0.1.tgz#c76ec81007875bc44d544ff7a11a55d12294102d"
|
||||
integrity sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==
|
||||
|
||||
init-package-json@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-3.0.2.tgz#f5bc9bac93f2bdc005778bc2271be642fecfcd69"
|
||||
integrity sha512-YhlQPEjNFqlGdzrBfDNRLhvoSgX7iQRgSxgsNknRQ9ITXFT7UMfVMWhBTOh2Y+25lRnGrv5Xz8yZwQ3ACR6T3A==
|
||||
dependencies:
|
||||
npm-package-arg "^9.0.1"
|
||||
promzard "^0.3.0"
|
||||
read "^1.0.7"
|
||||
read-package-json "^5.0.0"
|
||||
semver "^7.3.5"
|
||||
validate-npm-package-license "^3.0.4"
|
||||
validate-npm-package-name "^4.0.0"
|
||||
|
||||
inquirer@^0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
|
||||
dependencies:
|
||||
ansi-escapes "^1.1.0"
|
||||
ansi-regex "^2.0.0"
|
||||
chalk "^1.0.0"
|
||||
cli-cursor "^1.0.1"
|
||||
cli-width "^2.0.0"
|
||||
figures "^1.3.5"
|
||||
lodash "^4.3.0"
|
||||
readline2 "^1.0.1"
|
||||
run-async "^0.1.0"
|
||||
rx-lite "^3.1.2"
|
||||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.0"
|
||||
through "^2.3.6"
|
||||
|
||||
internal-slot@^1.0.3, internal-slot@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3"
|
||||
integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==
|
||||
dependencies:
|
||||
get-intrinsic "^1.1.3"
|
||||
has "^1.0.3"
|
||||
side-channel "^1.0.4"
|
||||
|
||||
interpret@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4"
|
||||
integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==
|
||||
|
||||
ip-regex@^4.1.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5"
|
||||
integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==
|
||||
|
||||
ip@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da"
|
||||
integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==
|
||||
|
||||
is-arguments@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
|
||||
integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
is-array-buffer@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a"
|
||||
integrity sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
get-intrinsic "^1.1.3"
|
||||
is-typed-array "^1.1.10"
|
||||
|
||||
is-arrayish@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
|
||||
|
||||
is-bigint@^1.0.1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
|
||||
integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
|
||||
dependencies:
|
||||
has-bigints "^1.0.1"
|
||||
|
||||
is-binary-path@~2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
|
||||
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
|
||||
dependencies:
|
||||
binary-extensions "^2.0.0"
|
||||
|
||||
is-boolean-object@^1.1.0:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
|
||||
integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
is-callable@^1.1.3:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
|
||||
|
||||
is-callable@^1.1.4, is-callable@^1.2.7:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
|
||||
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
|
||||
|
||||
is-cidr@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-4.0.2.tgz#94c7585e4c6c77ceabf920f8cde51b8c0fda8814"
|
||||
integrity sha512-z4a1ENUajDbEl/Q6/pVBpTR1nBjjEE1X7qb7bmWYanNnPoKAvUCPFKeXV6Fe4mgTkWKBqiHIcwsI3SndiO5FeA==
|
||||
dependencies:
|
||||
cidr-regex "^3.1.1"
|
||||
|
||||
is-core-module@^2.11.0, is-core-module@^2.8.1, is-core-module@^2.9.0:
|
||||
version "2.11.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
|
||||
integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
|
||||
dependencies:
|
||||
has "^1.0.3"
|
||||
|
||||
is-date-object@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
|
||||
|
||||
is-date-object@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
|
||||
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
|
||||
dependencies:
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
is-extglob@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||
|
||||
is-fullwidth-code-point@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
|
||||
dependencies:
|
||||
number-is-nan "^1.0.0"
|
||||
|
||||
is-fullwidth-code-point@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
|
||||
|
||||
is-fullwidth-code-point@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
|
||||
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
|
||||
|
||||
is-glob@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0"
|
||||
dependencies:
|
||||
is-extglob "^2.1.1"
|
||||
|
||||
is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
|
||||
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
|
||||
dependencies:
|
||||
is-extglob "^2.1.1"
|
||||
|
||||
is-lambda@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5"
|
||||
integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==
|
||||
|
||||
is-map@^2.0.1, is-map@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127"
|
||||
integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==
|
||||
|
||||
is-my-ip-valid@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824"
|
||||
|
||||
is-my-json-valid@^2.10.0:
|
||||
version "2.17.2"
|
||||
resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c"
|
||||
dependencies:
|
||||
generate-function "^2.0.0"
|
||||
generate-object-property "^1.1.0"
|
||||
is-my-ip-valid "^1.0.0"
|
||||
jsonpointer "^4.0.0"
|
||||
xtend "^4.0.0"
|
||||
|
||||
is-negative-zero@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
|
||||
integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
|
||||
|
||||
is-number-object@^1.0.4:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
|
||||
integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
|
||||
dependencies:
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
is-number@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||
|
||||
is-path-cwd@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
|
||||
|
||||
is-path-in-cwd@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52"
|
||||
dependencies:
|
||||
is-path-inside "^1.0.0"
|
||||
|
||||
is-path-inside@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
|
||||
dependencies:
|
||||
path-is-inside "^1.0.1"
|
||||
|
||||
is-path-inside@^3.0.3:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
|
||||
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
|
||||
|
||||
is-plain-object@^2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
||||
dependencies:
|
||||
isobject "^3.0.1"
|
||||
|
||||
is-property@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
|
||||
|
||||
is-regex@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
|
||||
integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
is-resolvable@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
|
||||
|
||||
is-set@^2.0.1, is-set@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
|
||||
integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==
|
||||
|
||||
is-shared-array-buffer@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
|
||||
integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
|
||||
is-string@^1.0.5, is-string@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
|
||||
integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
|
||||
dependencies:
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
is-symbol@^1.0.2, is-symbol@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
|
||||
integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
|
||||
dependencies:
|
||||
has-symbols "^1.0.2"
|
||||
|
||||
is-typed-array@^1.1.10, is-typed-array@^1.1.9:
|
||||
version "1.1.10"
|
||||
resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f"
|
||||
integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==
|
||||
dependencies:
|
||||
available-typed-arrays "^1.0.5"
|
||||
call-bind "^1.0.2"
|
||||
for-each "^0.3.3"
|
||||
gopd "^1.0.1"
|
||||
has-tostringtag "^1.0.0"
|
||||
|
||||
is-weakmap@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2"
|
||||
integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==
|
||||
|
||||
is-weakref@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
|
||||
integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
|
||||
is-weakset@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d"
|
||||
integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
get-intrinsic "^1.1.1"
|
||||
|
||||
isarray@^1.0.0, isarray@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
|
||||
|
||||
isarray@^2.0.5:
|
||||
version "2.0.5"
|
||||
resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
|
||||
integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
|
||||
|
||||
isexe@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||
|
||||
isobject@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
|
||||
|
||||
jest-worker@^27.4.5:
|
||||
version "27.5.1"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
|
||||
integrity sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
merge-stream "^2.0.0"
|
||||
supports-color "^8.0.0"
|
||||
|
||||
jest-worker@^28.0.2:
|
||||
version "28.1.3"
|
||||
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98"
|
||||
integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
merge-stream "^2.0.0"
|
||||
supports-color "^8.0.0"
|
||||
|
||||
js-sdsl@^4.1.4:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0"
|
||||
integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==
|
||||
|
||||
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
|
||||
|
||||
js-yaml@^3.4.6, js-yaml@^3.5.1, js-yaml@^3.5.4:
|
||||
version "3.14.1"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
|
||||
integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
|
||||
dependencies:
|
||||
argparse "^1.0.7"
|
||||
esprima "^4.0.0"
|
||||
|
||||
js-yaml@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
|
||||
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
|
||||
jsesc@^2.5.1:
|
||||
version "2.5.2"
|
||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
|
||||
integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
|
||||
|
||||
jsesc@~0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
|
||||
|
||||
json-loader@^0.5.7:
|
||||
version "0.5.7"
|
||||
resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d"
|
||||
integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==
|
||||
|
||||
json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
|
||||
integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
|
||||
|
||||
json-schema-traverse@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
||||
|
||||
json-schema-traverse@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
|
||||
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
|
||||
|
||||
json-stable-stringify-without-jsonify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
|
||||
|
||||
json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
|
||||
dependencies:
|
||||
jsonify "~0.0.0"
|
||||
|
||||
json-stringify-nice@^1.1.4:
|
||||
version "1.1.4"
|
||||
resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67"
|
||||
integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw==
|
||||
|
||||
json5@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593"
|
||||
integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==
|
||||
dependencies:
|
||||
minimist "^1.2.0"
|
||||
|
||||
json5@^2.1.2, json5@^2.2.2:
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
|
||||
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
|
||||
|
||||
jsonfile@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66"
|
||||
optionalDependencies:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsonify@~0.0.0:
|
||||
version "0.0.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
|
||||
|
||||
jsonparse@^1.3.1:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
|
||||
integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
|
||||
|
||||
jsonpointer@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
|
||||
|
||||
"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.3:
|
||||
version "3.3.3"
|
||||
resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz#76b3e6e6cece5c69d49a5792c3d01bd1a0cdc7ea"
|
||||
integrity sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==
|
||||
dependencies:
|
||||
array-includes "^3.1.5"
|
||||
object.assign "^4.1.3"
|
||||
|
||||
just-diff-apply@^5.2.0:
|
||||
version "5.5.0"
|
||||
resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f"
|
||||
integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw==
|
||||
|
||||
just-diff@^5.0.1:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241"
|
||||
integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw==
|
||||
|
||||
kind-of@^6.0.2:
|
||||
version "6.0.3"
|
||||
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
|
||||
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
|
||||
|
||||
klona@^2.0.4, klona@^2.0.5:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22"
|
||||
integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==
|
||||
|
||||
known-css-properties@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.3.0.tgz#a3d135bbfc60ee8c6eacf2f7e7e6f2d4755e49a4"
|
||||
|
||||
language-subtag-registry@~0.3.2:
|
||||
version "0.3.22"
|
||||
resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d"
|
||||
integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==
|
||||
|
||||
language-tags@=1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.5.tgz#d321dbc4da30ba8bf3024e040fa5c14661f9193a"
|
||||
integrity sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==
|
||||
dependencies:
|
||||
language-subtag-registry "~0.3.2"
|
||||
|
||||
levn@^0.3.0, levn@~0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
|
||||
dependencies:
|
||||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
|
||||
levn@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
|
||||
integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
|
||||
dependencies:
|
||||
prelude-ls "^1.2.1"
|
||||
type-check "~0.4.0"
|
||||
|
||||
libnpmaccess@^6.0.4:
|
||||
version "6.0.4"
|
||||
resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-6.0.4.tgz#2dd158bd8a071817e2207d3b201d37cf1ad6ae6b"
|
||||
integrity sha512-qZ3wcfIyUoW0+qSFkMBovcTrSGJ3ZeyvpR7d5N9pEYv/kXs8sHP2wiqEIXBKLFrZlmM0kR0RJD7mtfLngtlLag==
|
||||
dependencies:
|
||||
aproba "^2.0.0"
|
||||
minipass "^3.1.1"
|
||||
npm-package-arg "^9.0.1"
|
||||
npm-registry-fetch "^13.0.0"
|
||||
|
||||
libnpmdiff@^4.0.5:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-4.0.5.tgz#ffaf93fa9440ea759444b8830fdb5c661b09a7c0"
|
||||
integrity sha512-9fICQIzmH892UwHHPmb+Seup50UIBWcMIK2FdxvlXm9b4kc1nSH0b/BuY1mORJQtB6ydPMnn+BLzOTmd/SKJmw==
|
||||
dependencies:
|
||||
"@npmcli/disparity-colors" "^2.0.0"
|
||||
"@npmcli/installed-package-contents" "^1.0.7"
|
||||
binary-extensions "^2.2.0"
|
||||
diff "^5.1.0"
|
||||
minimatch "^5.0.1"
|
||||
npm-package-arg "^9.0.1"
|
||||
pacote "^13.6.1"
|
||||
tar "^6.1.0"
|
||||
|
||||
libnpmexec@^4.0.14:
|
||||
version "4.0.14"
|
||||
resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-4.0.14.tgz#9ad44232434b374e477eb2c2e4548baaf698f773"
|
||||
integrity sha512-dwmzv2K29SdoAHBOa7QR6CfQbFG/PiZDRF6HZrlI6C4DLt2hNgOHTFaUGOpqE2C+YGu0ZwYTDywxRe0eOnf0ZA==
|
||||
dependencies:
|
||||
"@npmcli/arborist" "^5.6.3"
|
||||
"@npmcli/ci-detect" "^2.0.0"
|
||||
"@npmcli/fs" "^2.1.1"
|
||||
"@npmcli/run-script" "^4.2.0"
|
||||
chalk "^4.1.0"
|
||||
mkdirp-infer-owner "^2.0.0"
|
||||
npm-package-arg "^9.0.1"
|
||||
npmlog "^6.0.2"
|
||||
pacote "^13.6.1"
|
||||
proc-log "^2.0.0"
|
||||
read "^1.0.7"
|
||||
read-package-json-fast "^2.0.2"
|
||||
semver "^7.3.7"
|
||||
walk-up-path "^1.0.0"
|
||||
|
||||
libnpmfund@^3.0.5:
|
||||
version "3.0.5"
|
||||
resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-3.0.5.tgz#817f9e2120889beb483d9ba8eda142bb84293e4e"
|
||||
integrity sha512-KdeRoG/dem8H3PcEU2/0SKi3ip7AWwczgS72y/3PE+PBrz/s/G52FNIA9jeLnBirkLC0sOyQHfeM3b7e24ZM+g==
|
||||
dependencies:
|
||||
"@npmcli/arborist" "^5.6.3"
|
||||
|
||||
libnpmhook@^8.0.4:
|
||||
version "8.0.4"
|
||||
resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-8.0.4.tgz#6c58e5fe763ff5d600ae9c20457ea9a69d1f7d87"
|
||||
integrity sha512-nuD6e+Nx0OprjEi0wOeqASMl6QIH235th/Du2/8upK3evByFhzIgdfOeP1OhstavW4xtsl0hk5Vw4fAWWuSUgA==
|
||||
dependencies:
|
||||
aproba "^2.0.0"
|
||||
npm-registry-fetch "^13.0.0"
|
||||
|
||||
libnpmorg@^4.0.4:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-4.0.4.tgz#2a01d49372cf0df90d79a61e69bddaf2ed704311"
|
||||
integrity sha512-1bTpD7iub1rDCsgiBguhJhiDufLQuc8DEti20euqsXz9O0ncXVpCYqf2SMmHR4GEdmAvAj2r7FMiyA9zGdaTpA==
|
||||
dependencies:
|
||||
aproba "^2.0.0"
|
||||
npm-registry-fetch "^13.0.0"
|
||||
|
||||
libnpmpack@^4.1.3:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-4.1.3.tgz#025cfe39829acd8260662bf259e3a9331fc1e4b2"
|
||||
integrity sha512-rYP4X++ME3ZiFO+2iN3YnXJ4LB4Gsd0z5cgszWJZxaEpDN4lRIXirSyynGNsN/hn4taqnlxD+3DPlFDShvRM8w==
|
||||
dependencies:
|
||||
"@npmcli/run-script" "^4.1.3"
|
||||
npm-package-arg "^9.0.1"
|
||||
pacote "^13.6.1"
|
||||
|
||||
libnpmpublish@^6.0.5:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-6.0.5.tgz#5a894f3de2e267d62f86be2a508e362599b5a4b1"
|
||||
integrity sha512-LUR08JKSviZiqrYTDfywvtnsnxr+tOvBU0BF8H+9frt7HMvc6Qn6F8Ubm72g5hDTHbq8qupKfDvDAln2TVPvFg==
|
||||
dependencies:
|
||||
normalize-package-data "^4.0.0"
|
||||
npm-package-arg "^9.0.1"
|
||||
npm-registry-fetch "^13.0.0"
|
||||
semver "^7.3.7"
|
||||
ssri "^9.0.0"
|
||||
|
||||
libnpmsearch@^5.0.4:
|
||||
version "5.0.4"
|
||||
resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-5.0.4.tgz#b32aa2b23051c00cdcc0912274d0d416e6655d81"
|
||||
integrity sha512-XHDmsvpN5+pufvGnfLRqpy218gcGGbbbXR6wPrDJyd1em6agKdYByzU5ccskDHH9iVm2UeLydpDsW1ksYuU0cg==
|
||||
dependencies:
|
||||
npm-registry-fetch "^13.0.0"
|
||||
|
||||
libnpmteam@^4.0.4:
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-4.0.4.tgz#ac26068808d93b1051d926457db14e4b3ff669ef"
|
||||
integrity sha512-rzKSwi6MLzwwevbM/vl+BBQTErgn24tCfgPUdzBlszrw3j5necOu7WnTzgvZMDv6maGUwec6Ut1rxszOgH0l+Q==
|
||||
dependencies:
|
||||
aproba "^2.0.0"
|
||||
npm-registry-fetch "^13.0.0"
|
||||
|
||||
libnpmversion@^3.0.7:
|
||||
version "3.0.7"
|
||||
resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-3.0.7.tgz#e4c6c07ee28cf351ce1e2293a5ac9922b09ea94d"
|
||||
integrity sha512-O0L4eNMUIMQ+effi1HsZPKp2N6wecwqGqB8PvkvmLPWN7EsdabdzAVG48nv0p/OjlbIai5KQg/L+qMMfCA4ZjA==
|
||||
dependencies:
|
||||
"@npmcli/git" "^3.0.0"
|
||||
"@npmcli/run-script" "^4.1.3"
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
proc-log "^2.0.0"
|
||||
semver "^7.3.7"
|
||||
|
||||
lilconfig@^2.0.5:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
|
||||
integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
|
||||
|
||||
lines-and-columns@^1.1.6:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
|
||||
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
|
||||
|
||||
linkify-it@^3.0.1:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e"
|
||||
integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==
|
||||
dependencies:
|
||||
uc.micro "^1.0.1"
|
||||
|
||||
loader-runner@^4.2.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.0.tgz#c1b4a163b99f614830353b16755e7149ac2314e1"
|
||||
integrity sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==
|
||||
|
||||
loader-utils@^2.0.0:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c"
|
||||
integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==
|
||||
dependencies:
|
||||
big.js "^5.2.2"
|
||||
emojis-list "^3.0.0"
|
||||
json5 "^2.1.2"
|
||||
|
||||
locate-path@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
|
||||
integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
|
||||
dependencies:
|
||||
p-locate "^4.1.0"
|
||||
|
||||
locate-path@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
|
||||
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
|
||||
dependencies:
|
||||
p-locate "^5.0.0"
|
||||
|
||||
lodash.capitalize@^4.1.0:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz#f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9"
|
||||
|
||||
lodash.debounce@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
|
||||
|
||||
lodash.kebabcase@^4.0.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
|
||||
|
||||
lodash.merge@^4.6.2:
|
||||
version "4.6.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
|
||||
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
|
||||
|
||||
lodash@^4.0.0, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.3.0, lodash@~4.17.10:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
loose-envify@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
||||
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
|
||||
dependencies:
|
||||
js-tokens "^3.0.0 || ^4.0.0"
|
||||
|
||||
lru-cache@^5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
|
||||
integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
|
||||
dependencies:
|
||||
yallist "^3.0.2"
|
||||
|
||||
lru-cache@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
|
||||
integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1:
|
||||
version "7.14.1"
|
||||
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.14.1.tgz#8da8d2f5f59827edb388e63e459ac23d6d408fea"
|
||||
integrity sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==
|
||||
|
||||
make-dir@^3.0.2:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
||||
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
|
||||
dependencies:
|
||||
semver "^6.0.0"
|
||||
|
||||
make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.6, make-fetch-happen@^10.2.0:
|
||||
version "10.2.1"
|
||||
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164"
|
||||
integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==
|
||||
dependencies:
|
||||
agentkeepalive "^4.2.1"
|
||||
cacache "^16.1.0"
|
||||
http-cache-semantics "^4.1.0"
|
||||
http-proxy-agent "^5.0.0"
|
||||
https-proxy-agent "^5.0.0"
|
||||
is-lambda "^1.0.1"
|
||||
lru-cache "^7.7.1"
|
||||
minipass "^3.1.6"
|
||||
minipass-collect "^1.0.2"
|
||||
minipass-fetch "^2.0.3"
|
||||
minipass-flush "^1.0.5"
|
||||
minipass-pipeline "^1.2.4"
|
||||
negotiator "^0.6.3"
|
||||
promise-retry "^2.0.1"
|
||||
socks-proxy-agent "^7.0.0"
|
||||
ssri "^9.0.0"
|
||||
|
||||
markdown-it@^12.3.2:
|
||||
version "12.3.2"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90"
|
||||
integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
entities "~2.1.0"
|
||||
linkify-it "^3.0.1"
|
||||
mdurl "^1.0.1"
|
||||
uc.micro "^1.0.5"
|
||||
|
||||
mdurl@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
|
||||
integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==
|
||||
|
||||
merge-stream@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
||||
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
|
||||
|
||||
merge@^1.2.0:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145"
|
||||
|
||||
micromatch@^4.0.5:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
|
||||
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||
dependencies:
|
||||
braces "^3.0.2"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-db@1.52.0:
|
||||
version "1.52.0"
|
||||
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
|
||||
integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
|
||||
|
||||
mime-types@^2.1.27:
|
||||
version "2.1.35"
|
||||
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
|
||||
integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
|
||||
dependencies:
|
||||
mime-db "1.52.0"
|
||||
|
||||
mini-css-extract-plugin@^2.6.1:
|
||||
version "2.7.2"
|
||||
resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz#e049d3ea7d3e4e773aad585c6cb329ce0c7b72d7"
|
||||
integrity sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==
|
||||
dependencies:
|
||||
schema-utils "^4.0.0"
|
||||
|
||||
minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimatch@^5.0.1, minimatch@^5.1.0:
|
||||
version "5.1.6"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96"
|
||||
integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
minimatch@~3.0.2:
|
||||
version "3.0.8"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1"
|
||||
integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimist@1.1.x:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz#3bedfd91a92d39016fcfaa1c681e8faa1a1efda8"
|
||||
|
||||
minimist@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
|
||||
|
||||
minimist@^1.2.5:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
|
||||
|
||||
minimist@^1.2.6:
|
||||
version "1.2.7"
|
||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
|
||||
integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
|
||||
|
||||
minipass-collect@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617"
|
||||
integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
minipass-fetch@^2.0.3:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add"
|
||||
integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==
|
||||
dependencies:
|
||||
minipass "^3.1.6"
|
||||
minipass-sized "^1.0.3"
|
||||
minizlib "^2.1.2"
|
||||
optionalDependencies:
|
||||
encoding "^0.1.13"
|
||||
|
||||
minipass-flush@^1.0.5:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373"
|
||||
integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
minipass-json-stream@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7"
|
||||
integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==
|
||||
dependencies:
|
||||
jsonparse "^1.3.1"
|
||||
minipass "^3.0.0"
|
||||
|
||||
minipass-pipeline@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c"
|
||||
integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
minipass-sized@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70"
|
||||
integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6:
|
||||
version "3.3.6"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
|
||||
integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
minipass@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b"
|
||||
integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
minizlib@^2.1.1, minizlib@^2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
|
||||
integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
yallist "^4.0.0"
|
||||
|
||||
mkdirp-infer-owner@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316"
|
||||
integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
infer-owner "^1.0.4"
|
||||
mkdirp "^1.0.3"
|
||||
|
||||
mkdirp@0.5.5, mkdirp@^0.5.0, mkdirp@^0.5.1:
|
||||
version "0.5.5"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
|
||||
dependencies:
|
||||
minimist "^1.2.5"
|
||||
|
||||
mkdirp@^1.0.3, mkdirp@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
modernizr@^3.12.0:
|
||||
version "3.12.0"
|
||||
resolved "https://registry.yarnpkg.com/modernizr/-/modernizr-3.12.0.tgz#38b1aa96eea48d90fe433f2803a8246acd2fefa9"
|
||||
integrity sha512-i5f5xfnxMOb3cePoBpwk4bWjVAyIB3hgm7QrDvZx/R7zUUS8PO9zlyQF7vJKn8kCVxEvL0nRWeZ0PPqVbY31sw==
|
||||
dependencies:
|
||||
doctrine "^3.0.0"
|
||||
file "^0.2.2"
|
||||
lodash "^4.17.21"
|
||||
markdown-it "^12.3.2"
|
||||
mkdirp "0.5.5"
|
||||
requirejs "^2.3.6"
|
||||
yargs "^15.4.1"
|
||||
|
||||
mrmime@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27"
|
||||
integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
|
||||
|
||||
ms@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
||||
ms@2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
||||
ms@^2.0.0, ms@^2.1.1, ms@^2.1.2:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||
|
||||
mute-stream@0.0.5:
|
||||
version "0.0.5"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
|
||||
|
||||
mute-stream@~0.0.4:
|
||||
version "0.0.8"
|
||||
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
|
||||
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
|
||||
|
||||
nanoid@^3.3.6:
|
||||
version "3.3.6"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
|
||||
integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
|
||||
|
||||
natural-compare@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
|
||||
negotiator@^0.6.3:
|
||||
version "0.6.3"
|
||||
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
|
||||
integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
|
||||
|
||||
neo-async@^2.6.2:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
|
||||
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
|
||||
|
||||
next-tick@1:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
|
||||
|
||||
node-gyp@^9.0.0, node-gyp@^9.1.0:
|
||||
version "9.3.1"
|
||||
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4"
|
||||
integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==
|
||||
dependencies:
|
||||
env-paths "^2.2.0"
|
||||
glob "^7.1.4"
|
||||
graceful-fs "^4.2.6"
|
||||
make-fetch-happen "^10.0.3"
|
||||
nopt "^6.0.0"
|
||||
npmlog "^6.0.0"
|
||||
rimraf "^3.0.2"
|
||||
semver "^7.3.5"
|
||||
tar "^6.1.2"
|
||||
which "^2.0.2"
|
||||
|
||||
node-releases@^2.0.6:
|
||||
version "2.0.8"
|
||||
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae"
|
||||
integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==
|
||||
|
||||
nopt@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d"
|
||||
integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==
|
||||
dependencies:
|
||||
abbrev "^1.0.0"
|
||||
|
||||
normalize-package-data@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-4.0.1.tgz#b46b24e0616d06cadf9d5718b29b6d445a82a62c"
|
||||
integrity sha512-EBk5QKKuocMJhB3BILuKhmaPjI8vNRSpIfO9woLC6NyHVkKKdVEdAO1mrT0ZfxNR1lKwCcTkuZfmGIFdizZ8Pg==
|
||||
dependencies:
|
||||
hosted-git-info "^5.0.0"
|
||||
is-core-module "^2.8.1"
|
||||
semver "^7.3.5"
|
||||
validate-npm-package-license "^3.0.4"
|
||||
|
||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
|
||||
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
|
||||
|
||||
normalize-range@^0.1.2:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
|
||||
|
||||
npm-audit-report@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-3.0.0.tgz#1bf3e531208b5f77347c8d00c3d9badf5be30cd6"
|
||||
integrity sha512-tWQzfbwz1sc4244Bx2BVELw0EmZlCsCF0X93RDcmmwhonCsPMoEviYsi+32R+mdRvOWXolPce9zo64n2xgPESw==
|
||||
dependencies:
|
||||
chalk "^4.0.0"
|
||||
|
||||
npm-bundled@^1.1.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1"
|
||||
integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==
|
||||
dependencies:
|
||||
npm-normalize-package-bin "^1.0.1"
|
||||
|
||||
npm-bundled@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-2.0.1.tgz#94113f7eb342cd7a67de1e789f896b04d2c600f4"
|
||||
integrity sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==
|
||||
dependencies:
|
||||
npm-normalize-package-bin "^2.0.0"
|
||||
|
||||
npm-install-checks@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-5.0.0.tgz#5ff27d209a4e3542b8ac6b0c1db6063506248234"
|
||||
integrity sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==
|
||||
dependencies:
|
||||
semver "^7.1.1"
|
||||
|
||||
npm-normalize-package-bin@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
|
||||
integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==
|
||||
|
||||
npm-normalize-package-bin@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff"
|
||||
integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==
|
||||
|
||||
npm-package-arg@^9.0.0, npm-package-arg@^9.0.1, npm-package-arg@^9.1.0:
|
||||
version "9.1.2"
|
||||
resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-9.1.2.tgz#fc8acecb00235f42270dda446f36926ddd9ac2bc"
|
||||
integrity sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==
|
||||
dependencies:
|
||||
hosted-git-info "^5.0.0"
|
||||
proc-log "^2.0.1"
|
||||
semver "^7.3.5"
|
||||
validate-npm-package-name "^4.0.0"
|
||||
|
||||
npm-packlist@^5.1.0:
|
||||
version "5.1.3"
|
||||
resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-5.1.3.tgz#69d253e6fd664b9058b85005905012e00e69274b"
|
||||
integrity sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==
|
||||
dependencies:
|
||||
glob "^8.0.1"
|
||||
ignore-walk "^5.0.1"
|
||||
npm-bundled "^2.0.0"
|
||||
npm-normalize-package-bin "^2.0.0"
|
||||
|
||||
npm-pick-manifest@^7.0.0, npm-pick-manifest@^7.0.2:
|
||||
version "7.0.2"
|
||||
resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-7.0.2.tgz#1d372b4e7ea7c6712316c0e99388a73ed3496e84"
|
||||
integrity sha512-gk37SyRmlIjvTfcYl6RzDbSmS9Y4TOBXfsPnoYqTHARNgWbyDiCSMLUpmALDj4jjcTZpURiEfsSHJj9k7EV4Rw==
|
||||
dependencies:
|
||||
npm-install-checks "^5.0.0"
|
||||
npm-normalize-package-bin "^2.0.0"
|
||||
npm-package-arg "^9.0.0"
|
||||
semver "^7.3.5"
|
||||
|
||||
npm-profile@^6.2.0:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-6.2.1.tgz#975c31ec75a6ae029ab5b8820ffdcbae3a1e3d5e"
|
||||
integrity sha512-Tlu13duByHyDd4Xy0PgroxzxnBYWbGGL5aZifNp8cx2DxUrHSoETXtPKg38aRPsBWMRfDtvcvVfJNasj7oImQQ==
|
||||
dependencies:
|
||||
npm-registry-fetch "^13.0.1"
|
||||
proc-log "^2.0.0"
|
||||
|
||||
npm-registry-fetch@^13.0.0, npm-registry-fetch@^13.0.1, npm-registry-fetch@^13.3.1:
|
||||
version "13.3.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-13.3.1.tgz#bb078b5fa6c52774116ae501ba1af2a33166af7e"
|
||||
integrity sha512-eukJPi++DKRTjSBRcDZSDDsGqRK3ehbxfFUcgaRd0Yp6kRwOwh2WVn0r+8rMB4nnuzvAk6rQVzl6K5CkYOmnvw==
|
||||
dependencies:
|
||||
make-fetch-happen "^10.0.6"
|
||||
minipass "^3.1.6"
|
||||
minipass-fetch "^2.0.3"
|
||||
minipass-json-stream "^1.0.1"
|
||||
minizlib "^2.1.2"
|
||||
npm-package-arg "^9.0.1"
|
||||
proc-log "^2.0.0"
|
||||
|
||||
npm-user-validate@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-1.0.1.tgz#31428fc5475fe8416023f178c0ab47935ad8c561"
|
||||
integrity sha512-uQwcd/tY+h1jnEaze6cdX/LrhWhoBxfSknxentoqmIuStxUExxjWd3ULMLFPiFUrZKbOVMowH6Jq2FRWfmhcEw==
|
||||
|
||||
npm@^8.19.2:
|
||||
version "8.19.3"
|
||||
resolved "https://registry.yarnpkg.com/npm/-/npm-8.19.3.tgz#adb51bf8886d519dd4df162726d0ad157ecfa272"
|
||||
integrity sha512-0QjmyPtDxSyMWWD8I91QGbrgx9KzbV6C9FK1liEb/K0zppiZkr5KxXc990G+LzPwBHDfRjUBlO9T1qZ08vl9mA==
|
||||
dependencies:
|
||||
"@isaacs/string-locale-compare" "^1.1.0"
|
||||
"@npmcli/arborist" "^5.6.3"
|
||||
"@npmcli/ci-detect" "^2.0.0"
|
||||
"@npmcli/config" "^4.2.1"
|
||||
"@npmcli/fs" "^2.1.0"
|
||||
"@npmcli/map-workspaces" "^2.0.3"
|
||||
"@npmcli/package-json" "^2.0.0"
|
||||
"@npmcli/run-script" "^4.2.1"
|
||||
abbrev "~1.1.1"
|
||||
archy "~1.0.0"
|
||||
cacache "^16.1.3"
|
||||
chalk "^4.1.2"
|
||||
chownr "^2.0.0"
|
||||
cli-columns "^4.0.0"
|
||||
cli-table3 "^0.6.2"
|
||||
columnify "^1.6.0"
|
||||
fastest-levenshtein "^1.0.12"
|
||||
fs-minipass "^2.1.0"
|
||||
glob "^8.0.1"
|
||||
graceful-fs "^4.2.10"
|
||||
hosted-git-info "^5.2.1"
|
||||
ini "^3.0.1"
|
||||
init-package-json "^3.0.2"
|
||||
is-cidr "^4.0.2"
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
libnpmaccess "^6.0.4"
|
||||
libnpmdiff "^4.0.5"
|
||||
libnpmexec "^4.0.14"
|
||||
libnpmfund "^3.0.5"
|
||||
libnpmhook "^8.0.4"
|
||||
libnpmorg "^4.0.4"
|
||||
libnpmpack "^4.1.3"
|
||||
libnpmpublish "^6.0.5"
|
||||
libnpmsearch "^5.0.4"
|
||||
libnpmteam "^4.0.4"
|
||||
libnpmversion "^3.0.7"
|
||||
make-fetch-happen "^10.2.0"
|
||||
minimatch "^5.1.0"
|
||||
minipass "^3.1.6"
|
||||
minipass-pipeline "^1.2.4"
|
||||
mkdirp "^1.0.4"
|
||||
mkdirp-infer-owner "^2.0.0"
|
||||
ms "^2.1.2"
|
||||
node-gyp "^9.1.0"
|
||||
nopt "^6.0.0"
|
||||
npm-audit-report "^3.0.0"
|
||||
npm-install-checks "^5.0.0"
|
||||
npm-package-arg "^9.1.0"
|
||||
npm-pick-manifest "^7.0.2"
|
||||
npm-profile "^6.2.0"
|
||||
npm-registry-fetch "^13.3.1"
|
||||
npm-user-validate "^1.0.1"
|
||||
npmlog "^6.0.2"
|
||||
opener "^1.5.2"
|
||||
p-map "^4.0.0"
|
||||
pacote "^13.6.2"
|
||||
parse-conflict-json "^2.0.2"
|
||||
proc-log "^2.0.1"
|
||||
qrcode-terminal "^0.12.0"
|
||||
read "~1.0.7"
|
||||
read-package-json "^5.0.2"
|
||||
read-package-json-fast "^2.0.3"
|
||||
readdir-scoped-modules "^1.1.0"
|
||||
rimraf "^3.0.2"
|
||||
semver "^7.3.7"
|
||||
ssri "^9.0.1"
|
||||
tar "^6.1.11"
|
||||
text-table "~0.2.0"
|
||||
tiny-relative-date "^1.3.0"
|
||||
treeverse "^2.0.0"
|
||||
validate-npm-package-name "^4.0.0"
|
||||
which "^2.0.2"
|
||||
write-file-atomic "^4.0.1"
|
||||
|
||||
npmlog@^6.0.0, npmlog@^6.0.2:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
|
||||
integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
|
||||
dependencies:
|
||||
are-we-there-yet "^3.0.0"
|
||||
console-control-strings "^1.1.0"
|
||||
gauge "^4.0.3"
|
||||
set-blocking "^2.0.0"
|
||||
|
||||
number-is-nan@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
||||
|
||||
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
|
||||
object-inspect@^1.12.2, object-inspect@^1.9.0:
|
||||
version "1.12.3"
|
||||
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9"
|
||||
integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==
|
||||
|
||||
object-is@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
|
||||
integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.3"
|
||||
|
||||
object-keys@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
|
||||
integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
|
||||
|
||||
object.assign@^4.1.2, object.assign@^4.1.3, object.assign@^4.1.4:
|
||||
version "4.1.4"
|
||||
resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
|
||||
integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
has-symbols "^1.0.3"
|
||||
object-keys "^1.1.1"
|
||||
|
||||
object.entries@^1.1.5, object.entries@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23"
|
||||
integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
|
||||
object.fromentries@^2.0.6:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73"
|
||||
integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
|
||||
object.hasown@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92"
|
||||
integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==
|
||||
dependencies:
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
|
||||
object.values@^1.1.6:
|
||||
version "1.1.6"
|
||||
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
|
||||
integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
|
||||
once@^1.3.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
onetime@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
|
||||
|
||||
opener@^1.5.2:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598"
|
||||
integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==
|
||||
|
||||
optionator@^0.8.1:
|
||||
version "0.8.2"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
|
||||
dependencies:
|
||||
deep-is "~0.1.3"
|
||||
fast-levenshtein "~2.0.4"
|
||||
levn "~0.3.0"
|
||||
prelude-ls "~1.1.2"
|
||||
type-check "~0.3.2"
|
||||
wordwrap "~1.0.0"
|
||||
|
||||
optionator@^0.9.1:
|
||||
version "0.9.1"
|
||||
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
|
||||
integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
|
||||
dependencies:
|
||||
deep-is "^0.1.3"
|
||||
fast-levenshtein "^2.0.6"
|
||||
levn "^0.4.1"
|
||||
prelude-ls "^1.2.1"
|
||||
type-check "^0.4.0"
|
||||
word-wrap "^1.2.3"
|
||||
|
||||
os-homedir@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
||||
|
||||
p-limit@^2.2.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
|
||||
integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
|
||||
dependencies:
|
||||
p-try "^2.0.0"
|
||||
|
||||
p-limit@^3.0.2:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
|
||||
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
|
||||
dependencies:
|
||||
yocto-queue "^0.1.0"
|
||||
|
||||
p-locate@^4.1.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
|
||||
integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
|
||||
dependencies:
|
||||
p-limit "^2.2.0"
|
||||
|
||||
p-locate@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
|
||||
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
|
||||
dependencies:
|
||||
p-limit "^3.0.2"
|
||||
|
||||
p-map@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b"
|
||||
integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==
|
||||
dependencies:
|
||||
aggregate-error "^3.0.0"
|
||||
|
||||
p-try@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
||||
|
||||
pacote@^13.0.3, pacote@^13.6.1, pacote@^13.6.2:
|
||||
version "13.6.2"
|
||||
resolved "https://registry.yarnpkg.com/pacote/-/pacote-13.6.2.tgz#0d444ba3618ab3e5cd330b451c22967bbd0ca48a"
|
||||
integrity sha512-Gu8fU3GsvOPkak2CkbojR7vjs3k3P9cA6uazKTHdsdV0gpCEQq2opelnEv30KRQWgVzP5Vd/5umjcedma3MKtg==
|
||||
dependencies:
|
||||
"@npmcli/git" "^3.0.0"
|
||||
"@npmcli/installed-package-contents" "^1.0.7"
|
||||
"@npmcli/promise-spawn" "^3.0.0"
|
||||
"@npmcli/run-script" "^4.1.0"
|
||||
cacache "^16.0.0"
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.1.0"
|
||||
infer-owner "^1.0.4"
|
||||
minipass "^3.1.6"
|
||||
mkdirp "^1.0.4"
|
||||
npm-package-arg "^9.0.0"
|
||||
npm-packlist "^5.1.0"
|
||||
npm-pick-manifest "^7.0.0"
|
||||
npm-registry-fetch "^13.0.1"
|
||||
proc-log "^2.0.0"
|
||||
promise-retry "^2.0.1"
|
||||
read-package-json "^5.0.0"
|
||||
read-package-json-fast "^2.0.3"
|
||||
rimraf "^3.0.2"
|
||||
ssri "^9.0.0"
|
||||
tar "^6.1.11"
|
||||
|
||||
parent-module@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
|
||||
integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
|
||||
dependencies:
|
||||
callsites "^3.0.0"
|
||||
|
||||
parse-conflict-json@^2.0.1, parse-conflict-json@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323"
|
||||
integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA==
|
||||
dependencies:
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
just-diff "^5.0.1"
|
||||
just-diff-apply "^5.2.0"
|
||||
|
||||
parse-json@^5.0.0:
|
||||
version "5.2.0"
|
||||
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
|
||||
integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
|
||||
dependencies:
|
||||
"@babel/code-frame" "^7.0.0"
|
||||
error-ex "^1.3.1"
|
||||
json-parse-even-better-errors "^2.3.0"
|
||||
lines-and-columns "^1.1.6"
|
||||
|
||||
path-exists@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
|
||||
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
||||
|
||||
path-is-absolute@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
|
||||
path-is-inside@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
||||
|
||||
path-key@^3.1.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
||||
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
||||
|
||||
path-parse@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||
|
||||
path-type@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||
|
||||
picocolors@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
||||
pify@^2.0.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||
|
||||
pinkie-promise@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
|
||||
dependencies:
|
||||
pinkie "^2.0.0"
|
||||
|
||||
pinkie@^2.0.0:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
||||
|
||||
pkg-dir@^4.1.0, pkg-dir@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
||||
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
||||
dependencies:
|
||||
find-up "^4.0.0"
|
||||
|
||||
pluralize@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
|
||||
|
||||
postcss-custom-properties@^12.1.10:
|
||||
version "12.1.11"
|
||||
resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz#d14bb9b3989ac4d40aaa0e110b43be67ac7845cf"
|
||||
integrity sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==
|
||||
dependencies:
|
||||
postcss-value-parser "^4.2.0"
|
||||
|
||||
postcss-load-config@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd"
|
||||
integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==
|
||||
dependencies:
|
||||
lilconfig "^2.0.5"
|
||||
yaml "^2.1.1"
|
||||
|
||||
postcss-loader@^7.0.1:
|
||||
version "7.0.2"
|
||||
resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.0.2.tgz#b53ff44a26fba3688eee92a048c7f2d4802e23bb"
|
||||
integrity sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==
|
||||
dependencies:
|
||||
cosmiconfig "^7.0.0"
|
||||
klona "^2.0.5"
|
||||
semver "^7.3.8"
|
||||
|
||||
postcss-modules-extract-imports@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d"
|
||||
integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==
|
||||
|
||||
postcss-modules-local-by-default@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c"
|
||||
integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==
|
||||
dependencies:
|
||||
icss-utils "^5.0.0"
|
||||
postcss-selector-parser "^6.0.2"
|
||||
postcss-value-parser "^4.1.0"
|
||||
|
||||
postcss-modules-scope@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06"
|
||||
integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==
|
||||
dependencies:
|
||||
postcss-selector-parser "^6.0.4"
|
||||
|
||||
postcss-modules-values@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c"
|
||||
integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==
|
||||
dependencies:
|
||||
icss-utils "^5.0.0"
|
||||
|
||||
postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4:
|
||||
version "6.0.11"
|
||||
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
|
||||
integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
|
||||
dependencies:
|
||||
cssesc "^3.0.0"
|
||||
util-deprecate "^1.0.2"
|
||||
|
||||
postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
|
||||
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
|
||||
|
||||
postcss@^8.2.14, postcss@^8.4.18, postcss@^8.4.19:
|
||||
version "8.4.31"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
|
||||
integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
|
||||
dependencies:
|
||||
nanoid "^3.3.6"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.0.2"
|
||||
|
||||
prelude-ls@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
|
||||
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
|
||||
|
||||
prelude-ls@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||
|
||||
proc-log@^2.0.0, proc-log@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685"
|
||||
integrity sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==
|
||||
|
||||
process-nextick-args@~2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||
|
||||
progress@^1.1.8:
|
||||
version "1.1.8"
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
|
||||
|
||||
promise-all-reject-late@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2"
|
||||
integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw==
|
||||
|
||||
promise-call-limit@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.1.tgz#4bdee03aeb85674385ca934da7114e9bcd3c6e24"
|
||||
integrity sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q==
|
||||
|
||||
promise-inflight@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
|
||||
integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==
|
||||
|
||||
promise-retry@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22"
|
||||
integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==
|
||||
dependencies:
|
||||
err-code "^2.0.2"
|
||||
retry "^0.12.0"
|
||||
|
||||
promzard@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/promzard/-/promzard-0.3.0.tgz#26a5d6ee8c7dee4cb12208305acfb93ba382a9ee"
|
||||
integrity sha512-JZeYqd7UAcHCwI+sTOeUDYkvEU+1bQ7iE0UT1MgB/tERkAPkesW46MrpIySzODi+owTjZtiF8Ay5j9m60KmMBw==
|
||||
dependencies:
|
||||
read "1"
|
||||
|
||||
prop-types@^15.8.1:
|
||||
version "15.8.1"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
|
||||
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
|
||||
dependencies:
|
||||
loose-envify "^1.4.0"
|
||||
object-assign "^4.1.1"
|
||||
react-is "^16.13.1"
|
||||
|
||||
punycode@^2.1.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
||||
|
||||
qrcode-terminal@^0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819"
|
||||
integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==
|
||||
|
||||
queue-microtask@^1.2.2:
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
|
||||
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
|
||||
|
||||
randombytes@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
||||
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
||||
dependencies:
|
||||
safe-buffer "^5.1.0"
|
||||
|
||||
react-is@^16.13.1:
|
||||
version "16.13.1"
|
||||
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
|
||||
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
|
||||
|
||||
read-cmd-shim@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087"
|
||||
integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g==
|
||||
|
||||
read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83"
|
||||
integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==
|
||||
dependencies:
|
||||
json-parse-even-better-errors "^2.3.0"
|
||||
npm-normalize-package-bin "^1.0.1"
|
||||
|
||||
read-package-json@^5.0.0, read-package-json@^5.0.2:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-5.0.2.tgz#b8779ccfd169f523b67208a89cc912e3f663f3fa"
|
||||
integrity sha512-BSzugrt4kQ/Z0krro8zhTwV1Kd79ue25IhNN/VtHFy1mG/6Tluyi+msc0UpwaoQzxSHa28mntAjIZY6kEgfR9Q==
|
||||
dependencies:
|
||||
glob "^8.0.1"
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
normalize-package-data "^4.0.0"
|
||||
npm-normalize-package-bin "^2.0.0"
|
||||
|
||||
read@1, read@^1.0.7, read@~1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
|
||||
integrity sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==
|
||||
dependencies:
|
||||
mute-stream "~0.0.4"
|
||||
|
||||
readable-stream@^2.2.2:
|
||||
version "2.3.6"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
|
||||
dependencies:
|
||||
core-util-is "~1.0.0"
|
||||
inherits "~2.0.3"
|
||||
isarray "~1.0.0"
|
||||
process-nextick-args "~2.0.0"
|
||||
safe-buffer "~5.1.1"
|
||||
string_decoder "~1.1.1"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
readable-stream@^3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
||||
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
||||
dependencies:
|
||||
inherits "^2.0.3"
|
||||
string_decoder "^1.1.1"
|
||||
util-deprecate "^1.0.1"
|
||||
|
||||
readdir-scoped-modules@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309"
|
||||
integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==
|
||||
dependencies:
|
||||
debuglog "^1.0.1"
|
||||
dezalgo "^1.0.0"
|
||||
graceful-fs "^4.1.2"
|
||||
once "^1.3.0"
|
||||
|
||||
readdirp@~3.6.0:
|
||||
version "3.6.0"
|
||||
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
|
||||
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
|
||||
dependencies:
|
||||
picomatch "^2.2.1"
|
||||
|
||||
readline2@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
|
||||
dependencies:
|
||||
code-point-at "^1.0.0"
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
mute-stream "0.0.5"
|
||||
|
||||
rechoir@^0.8.0:
|
||||
version "0.8.0"
|
||||
resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22"
|
||||
integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==
|
||||
dependencies:
|
||||
resolve "^1.20.0"
|
||||
|
||||
regenerate-unicode-properties@^10.1.0:
|
||||
version "10.1.0"
|
||||
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
|
||||
integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==
|
||||
dependencies:
|
||||
regenerate "^1.4.2"
|
||||
|
||||
regenerate@^1.4.2:
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
|
||||
integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
|
||||
|
||||
regenerator-runtime@^0.13.11:
|
||||
version "0.13.11"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
|
||||
integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
|
||||
|
||||
regenerator-transform@^0.15.1:
|
||||
version "0.15.1"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56"
|
||||
integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.8.4"
|
||||
|
||||
regex-parser@^2.2.11:
|
||||
version "2.2.11"
|
||||
resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58"
|
||||
integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==
|
||||
|
||||
regexp.prototype.flags@^1.4.3:
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
|
||||
integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.3"
|
||||
functions-have-names "^1.2.2"
|
||||
|
||||
regexpp@^3.2.0:
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
|
||||
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
|
||||
|
||||
regexpu-core@^5.2.1:
|
||||
version "5.2.2"
|
||||
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc"
|
||||
integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==
|
||||
dependencies:
|
||||
regenerate "^1.4.2"
|
||||
regenerate-unicode-properties "^10.1.0"
|
||||
regjsgen "^0.7.1"
|
||||
regjsparser "^0.9.1"
|
||||
unicode-match-property-ecmascript "^2.0.0"
|
||||
unicode-match-property-value-ecmascript "^2.1.0"
|
||||
|
||||
regjsgen@^0.7.1:
|
||||
version "0.7.1"
|
||||
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6"
|
||||
integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==
|
||||
|
||||
regjsparser@^0.9.1:
|
||||
version "0.9.1"
|
||||
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
|
||||
integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
|
||||
dependencies:
|
||||
jsesc "~0.5.0"
|
||||
|
||||
require-directory@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
|
||||
|
||||
require-from-string@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
|
||||
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
|
||||
|
||||
require-main-filename@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
|
||||
|
||||
require-uncached@^1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
|
||||
dependencies:
|
||||
caller-path "^0.1.0"
|
||||
resolve-from "^1.0.0"
|
||||
|
||||
requirejs@^2.3.6:
|
||||
version "2.3.6"
|
||||
resolved "https://registry.yarnpkg.com/requirejs/-/requirejs-2.3.6.tgz#e5093d9601c2829251258c0b9445d4d19fa9e7c9"
|
||||
integrity sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==
|
||||
|
||||
resolve-cwd@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
|
||||
integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
|
||||
dependencies:
|
||||
resolve-from "^5.0.0"
|
||||
|
||||
resolve-from@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
|
||||
|
||||
resolve-from@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
|
||||
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
|
||||
|
||||
resolve-from@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
|
||||
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
|
||||
|
||||
resolve-url-loader@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz#ee3142fb1f1e0d9db9524d539cfa166e9314f795"
|
||||
integrity sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==
|
||||
dependencies:
|
||||
adjust-sourcemap-loader "^4.0.0"
|
||||
convert-source-map "^1.7.0"
|
||||
loader-utils "^2.0.0"
|
||||
postcss "^8.2.14"
|
||||
source-map "0.6.1"
|
||||
|
||||
resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1:
|
||||
version "1.22.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
|
||||
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
|
||||
dependencies:
|
||||
is-core-module "^2.9.0"
|
||||
path-parse "^1.0.7"
|
||||
supports-preserve-symlinks-flag "^1.0.0"
|
||||
|
||||
resolve@^2.0.0-next.4:
|
||||
version "2.0.0-next.4"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660"
|
||||
integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==
|
||||
dependencies:
|
||||
is-core-module "^2.9.0"
|
||||
path-parse "^1.0.7"
|
||||
supports-preserve-symlinks-flag "^1.0.0"
|
||||
|
||||
restore-cursor@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
|
||||
dependencies:
|
||||
exit-hook "^1.0.0"
|
||||
onetime "^1.0.0"
|
||||
|
||||
retry@^0.12.0:
|
||||
version "0.12.0"
|
||||
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
|
||||
integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rimraf@^2.2.8:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
|
||||
dependencies:
|
||||
glob "^7.0.5"
|
||||
|
||||
rimraf@^3.0.0, rimraf@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
||||
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
run-async@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
|
||||
dependencies:
|
||||
once "^1.3.0"
|
||||
|
||||
run-parallel@^1.1.9:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
||||
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
|
||||
dependencies:
|
||||
queue-microtask "^1.2.2"
|
||||
|
||||
rx-lite@^3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
|
||||
|
||||
safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
||||
|
||||
safe-buffer@~5.2.0:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||
|
||||
safe-regex-test@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
|
||||
integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
get-intrinsic "^1.1.3"
|
||||
is-regex "^1.1.4"
|
||||
|
||||
"safer-buffer@>= 2.1.2 < 3.0.0":
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
|
||||
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
|
||||
|
||||
sass-lint@^1.13.1:
|
||||
version "1.13.1"
|
||||
resolved "https://registry.yarnpkg.com/sass-lint/-/sass-lint-1.13.1.tgz#5fd2b2792e9215272335eb0f0dc607f61e8acc8f"
|
||||
integrity sha512-DSyah8/MyjzW2BWYmQWekYEKir44BpLqrCFsgs9iaWiVTcwZfwXHF586hh3D1n+/9ihUNMfd8iHAyb9KkGgs7Q==
|
||||
dependencies:
|
||||
commander "^2.8.1"
|
||||
eslint "^2.7.0"
|
||||
front-matter "2.1.2"
|
||||
fs-extra "^3.0.1"
|
||||
glob "^7.0.0"
|
||||
globule "^1.0.0"
|
||||
gonzales-pe-sl "^4.2.3"
|
||||
js-yaml "^3.5.4"
|
||||
known-css-properties "^0.3.0"
|
||||
lodash.capitalize "^4.1.0"
|
||||
lodash.kebabcase "^4.0.0"
|
||||
merge "^1.2.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
util "^0.10.3"
|
||||
|
||||
sass-loader@^13.1.0:
|
||||
version "13.2.0"
|
||||
resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.2.0.tgz#80195050f58c9aac63b792fa52acb6f5e0f6bdc3"
|
||||
integrity sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==
|
||||
dependencies:
|
||||
klona "^2.0.4"
|
||||
neo-async "^2.6.2"
|
||||
|
||||
sass@^1.55.0:
|
||||
version "1.57.1"
|
||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5"
|
||||
integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==
|
||||
dependencies:
|
||||
chokidar ">=3.0.0 <4.0.0"
|
||||
immutable "^4.0.0"
|
||||
source-map-js ">=0.6.2 <2.0.0"
|
||||
|
||||
schema-utils@^3.1.0, schema-utils@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.1.1.tgz#bc74c4b6b6995c1d88f76a8b77bea7219e0c8281"
|
||||
integrity sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.8"
|
||||
ajv "^6.12.5"
|
||||
ajv-keywords "^3.5.2"
|
||||
|
||||
schema-utils@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.0.0.tgz#60331e9e3ae78ec5d16353c467c34b3a0a1d3df7"
|
||||
integrity sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.9"
|
||||
ajv "^8.8.0"
|
||||
ajv-formats "^2.1.1"
|
||||
ajv-keywords "^5.0.0"
|
||||
|
||||
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
|
||||
version "6.3.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||
|
||||
semver@^7.0.0, semver@^7.1.1, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8:
|
||||
version "7.5.4"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
|
||||
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
|
||||
dependencies:
|
||||
lru-cache "^6.0.0"
|
||||
|
||||
serialize-javascript@^6.0.0:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.1.tgz#b206efb27c3da0b0ab6b52f48d170b7996458e5c"
|
||||
integrity sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==
|
||||
dependencies:
|
||||
randombytes "^2.1.0"
|
||||
|
||||
set-blocking@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||
|
||||
shallow-clone@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
|
||||
integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
|
||||
dependencies:
|
||||
kind-of "^6.0.2"
|
||||
|
||||
shebang-command@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
|
||||
integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
|
||||
dependencies:
|
||||
shebang-regex "^3.0.0"
|
||||
|
||||
shebang-regex@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
||||
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
||||
|
||||
shelljs@^0.6.0:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8"
|
||||
|
||||
side-channel@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
|
||||
integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
|
||||
dependencies:
|
||||
call-bind "^1.0.0"
|
||||
get-intrinsic "^1.0.2"
|
||||
object-inspect "^1.9.0"
|
||||
|
||||
signal-exit@^3.0.7:
|
||||
version "3.0.7"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
|
||||
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
|
||||
|
||||
sirv@^1.0.7:
|
||||
version "1.0.19"
|
||||
resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49"
|
||||
integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==
|
||||
dependencies:
|
||||
"@polka/url" "^1.0.0-next.20"
|
||||
mrmime "^1.0.0"
|
||||
totalist "^1.0.0"
|
||||
|
||||
slice-ansi@0.0.4:
|
||||
version "0.0.4"
|
||||
resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
|
||||
|
||||
smart-buffer@^4.2.0:
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
|
||||
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
|
||||
|
||||
socks-proxy-agent@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6"
|
||||
integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==
|
||||
dependencies:
|
||||
agent-base "^6.0.2"
|
||||
debug "^4.3.3"
|
||||
socks "^2.6.2"
|
||||
|
||||
socks@^2.6.2:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55"
|
||||
integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==
|
||||
dependencies:
|
||||
ip "^2.0.0"
|
||||
smart-buffer "^4.2.0"
|
||||
|
||||
"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
|
||||
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
|
||||
|
||||
source-map-support@~0.5.20:
|
||||
version "0.5.21"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
|
||||
integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
|
||||
dependencies:
|
||||
buffer-from "^1.0.0"
|
||||
source-map "^0.6.0"
|
||||
|
||||
source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
|
||||
spdx-correct@^3.0.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
|
||||
dependencies:
|
||||
spdx-expression-parse "^3.0.0"
|
||||
spdx-license-ids "^3.0.0"
|
||||
|
||||
spdx-exceptions@^2.1.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
|
||||
|
||||
spdx-expression-parse@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
|
||||
dependencies:
|
||||
spdx-exceptions "^2.1.0"
|
||||
spdx-license-ids "^3.0.0"
|
||||
|
||||
spdx-license-ids@^3.0.0:
|
||||
version "3.0.9"
|
||||
resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f"
|
||||
|
||||
sprintf-js@~1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||
|
||||
ssri@^9.0.0, ssri@^9.0.1:
|
||||
version "9.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057"
|
||||
integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==
|
||||
dependencies:
|
||||
minipass "^3.1.1"
|
||||
|
||||
stop-iteration-iterator@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz#6a60be0b4ee757d1ed5254858ec66b10c49285e4"
|
||||
integrity sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==
|
||||
dependencies:
|
||||
internal-slot "^1.0.4"
|
||||
|
||||
string-width@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
|
||||
dependencies:
|
||||
code-point-at "^1.0.0"
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
dependencies:
|
||||
emoji-regex "^8.0.0"
|
||||
is-fullwidth-code-point "^3.0.0"
|
||||
strip-ansi "^6.0.1"
|
||||
|
||||
string-width@^2.0.0:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
dependencies:
|
||||
is-fullwidth-code-point "^2.0.0"
|
||||
strip-ansi "^4.0.0"
|
||||
|
||||
string.prototype.matchall@^4.0.8:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3"
|
||||
integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
get-intrinsic "^1.1.3"
|
||||
has-symbols "^1.0.3"
|
||||
internal-slot "^1.0.3"
|
||||
regexp.prototype.flags "^1.4.3"
|
||||
side-channel "^1.0.4"
|
||||
|
||||
string.prototype.trimend@^1.0.6:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
|
||||
integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
|
||||
string.prototype.trimstart@^1.0.6:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
|
||||
integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
define-properties "^1.1.4"
|
||||
es-abstract "^1.20.4"
|
||||
|
||||
string_decoder@^1.1.1:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
|
||||
integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
|
||||
dependencies:
|
||||
safe-buffer "~5.2.0"
|
||||
|
||||
string_decoder@~1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
|
||||
dependencies:
|
||||
safe-buffer "~5.1.0"
|
||||
|
||||
strip-ansi@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
|
||||
dependencies:
|
||||
ansi-regex "^2.0.0"
|
||||
|
||||
strip-ansi@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
|
||||
dependencies:
|
||||
ansi-regex "^3.0.0"
|
||||
|
||||
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||
dependencies:
|
||||
ansi-regex "^5.0.1"
|
||||
|
||||
strip-bom@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
|
||||
|
||||
strip-comments@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-comments/-/strip-comments-2.0.1.tgz#4ad11c3fbcac177a67a40ac224ca339ca1c1ba9b"
|
||||
integrity sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==
|
||||
|
||||
strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
|
||||
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
|
||||
|
||||
strip-json-comments@~1.0.1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91"
|
||||
|
||||
supports-color@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
||||
|
||||
supports-color@^5.3.0:
|
||||
version "5.4.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.4.0.tgz#1c6b337402c2137605efe19f10fec390f6faab54"
|
||||
dependencies:
|
||||
has-flag "^3.0.0"
|
||||
|
||||
supports-color@^7.1.0:
|
||||
version "7.2.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
|
||||
integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-color@^8.0.0:
|
||||
version "8.1.1"
|
||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c"
|
||||
integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
|
||||
dependencies:
|
||||
has-flag "^4.0.0"
|
||||
|
||||
supports-preserve-symlinks-flag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||
|
||||
table@^3.7.8:
|
||||
version "3.8.3"
|
||||
resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
|
||||
dependencies:
|
||||
ajv "^4.7.0"
|
||||
ajv-keywords "^1.0.0"
|
||||
chalk "^1.1.1"
|
||||
lodash "^4.0.0"
|
||||
slice-ansi "0.0.4"
|
||||
string-width "^2.0.0"
|
||||
|
||||
tapable@^2.1.1, tapable@^2.2.0:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
||||
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
||||
|
||||
tar@^6.1.0, tar@^6.1.11, tar@^6.1.2:
|
||||
version "6.1.13"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b"
|
||||
integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
minipass "^4.0.0"
|
||||
minizlib "^2.1.1"
|
||||
mkdirp "^1.0.3"
|
||||
yallist "^4.0.0"
|
||||
|
||||
terser-webpack-plugin@^5.1.3:
|
||||
version "5.3.6"
|
||||
resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz#5590aec31aa3c6f771ce1b1acca60639eab3195c"
|
||||
integrity sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==
|
||||
dependencies:
|
||||
"@jridgewell/trace-mapping" "^0.3.14"
|
||||
jest-worker "^27.4.5"
|
||||
schema-utils "^3.1.1"
|
||||
serialize-javascript "^6.0.0"
|
||||
terser "^5.14.1"
|
||||
|
||||
terser@^5.14.1:
|
||||
version "5.16.1"
|
||||
resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880"
|
||||
integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==
|
||||
dependencies:
|
||||
"@jridgewell/source-map" "^0.3.2"
|
||||
acorn "^8.5.0"
|
||||
commander "^2.20.0"
|
||||
source-map-support "~0.5.20"
|
||||
|
||||
text-table@^0.2.0, text-table@~0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
|
||||
|
||||
through@^2.3.6:
|
||||
version "2.3.8"
|
||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
|
||||
tiny-relative-date@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07"
|
||||
integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==
|
||||
|
||||
to-fast-properties@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
||||
integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
|
||||
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
|
||||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
totalist@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
|
||||
integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
|
||||
|
||||
treeverse@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-2.0.0.tgz#036dcef04bc3fd79a9b79a68d4da03e882d8a9ca"
|
||||
integrity sha512-N5gJCkLu1aXccpOTtqV6ddSEi6ZmGkh3hjmbu1IjcavJK4qyOVQmi0myQKM7z5jVGmD68SJoliaVrMmVObhj6A==
|
||||
|
||||
tsconfig-paths@^3.14.1:
|
||||
version "3.14.1"
|
||||
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz#ba0734599e8ea36c862798e920bcf163277b137a"
|
||||
integrity sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==
|
||||
dependencies:
|
||||
"@types/json5" "^0.0.29"
|
||||
json5 "^1.0.1"
|
||||
minimist "^1.2.6"
|
||||
strip-bom "^3.0.0"
|
||||
|
||||
type-check@^0.4.0, type-check@~0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
|
||||
integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
|
||||
dependencies:
|
||||
prelude-ls "^1.2.1"
|
||||
|
||||
type-check@~0.3.2:
|
||||
version "0.3.2"
|
||||
resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
|
||||
dependencies:
|
||||
prelude-ls "~1.1.2"
|
||||
|
||||
type-fest@^0.20.2:
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
|
||||
integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
|
||||
|
||||
typed-array-length@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb"
|
||||
integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
for-each "^0.3.3"
|
||||
is-typed-array "^1.1.9"
|
||||
|
||||
typedarray@^0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||
|
||||
uc.micro@^1.0.1, uc.micro@^1.0.5:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
|
||||
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
|
||||
|
||||
unbox-primitive@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
|
||||
integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
|
||||
dependencies:
|
||||
call-bind "^1.0.2"
|
||||
has-bigints "^1.0.2"
|
||||
has-symbols "^1.0.3"
|
||||
which-boxed-primitive "^1.0.2"
|
||||
|
||||
unicode-canonical-property-names-ecmascript@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
|
||||
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
|
||||
|
||||
unicode-match-property-ecmascript@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
|
||||
integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
|
||||
dependencies:
|
||||
unicode-canonical-property-names-ecmascript "^2.0.0"
|
||||
unicode-property-aliases-ecmascript "^2.0.0"
|
||||
|
||||
unicode-match-property-value-ecmascript@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
|
||||
integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
|
||||
|
||||
unicode-property-aliases-ecmascript@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
|
||||
integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
|
||||
|
||||
unique-filename@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2"
|
||||
integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==
|
||||
dependencies:
|
||||
unique-slug "^3.0.0"
|
||||
|
||||
unique-slug@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9"
|
||||
integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==
|
||||
dependencies:
|
||||
imurmurhash "^0.1.4"
|
||||
|
||||
universalify@^0.1.0:
|
||||
version "0.1.2"
|
||||
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
|
||||
|
||||
update-browserslist-db@^1.0.9:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
|
||||
integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
|
||||
dependencies:
|
||||
escalade "^3.1.1"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
uri-js@^4.2.2:
|
||||
version "4.4.1"
|
||||
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
|
||||
dependencies:
|
||||
punycode "^2.1.0"
|
||||
|
||||
user-home@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
|
||||
dependencies:
|
||||
os-homedir "^1.0.0"
|
||||
|
||||
util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
||||
|
||||
util@^0.10.3:
|
||||
version "0.10.4"
|
||||
resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901"
|
||||
dependencies:
|
||||
inherits "2.0.3"
|
||||
|
||||
validate-npm-package-license@^3.0.4:
|
||||
version "3.0.4"
|
||||
resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
|
||||
integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
|
||||
dependencies:
|
||||
spdx-correct "^3.0.0"
|
||||
spdx-expression-parse "^3.0.0"
|
||||
|
||||
validate-npm-package-name@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz#fe8f1c50ac20afdb86f177da85b3600f0ac0d747"
|
||||
integrity sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==
|
||||
dependencies:
|
||||
builtins "^5.0.0"
|
||||
|
||||
walk-up-path@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e"
|
||||
integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==
|
||||
|
||||
watchpack@^2.4.0:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
|
||||
integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
|
||||
dependencies:
|
||||
glob-to-regexp "^0.4.1"
|
||||
graceful-fs "^4.1.2"
|
||||
|
||||
wcwidth@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
|
||||
integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
|
||||
dependencies:
|
||||
defaults "^1.0.3"
|
||||
|
||||
webpack-bundle-analyzer@^4.7.0:
|
||||
version "4.7.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz#33c1c485a7fcae8627c547b5c3328b46de733c66"
|
||||
integrity sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==
|
||||
dependencies:
|
||||
acorn "^8.0.4"
|
||||
acorn-walk "^8.0.0"
|
||||
chalk "^4.1.0"
|
||||
commander "^7.2.0"
|
||||
gzip-size "^6.0.0"
|
||||
lodash "^4.17.20"
|
||||
opener "^1.5.2"
|
||||
sirv "^1.0.7"
|
||||
ws "^7.3.1"
|
||||
|
||||
webpack-cli@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a"
|
||||
integrity sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==
|
||||
dependencies:
|
||||
"@discoveryjs/json-ext" "^0.5.0"
|
||||
"@webpack-cli/configtest" "^2.0.1"
|
||||
"@webpack-cli/info" "^2.0.1"
|
||||
"@webpack-cli/serve" "^2.0.1"
|
||||
colorette "^2.0.14"
|
||||
commander "^9.4.1"
|
||||
cross-spawn "^7.0.3"
|
||||
envinfo "^7.7.3"
|
||||
fastest-levenshtein "^1.0.12"
|
||||
import-local "^3.0.2"
|
||||
interpret "^3.1.1"
|
||||
rechoir "^0.8.0"
|
||||
webpack-merge "^5.7.3"
|
||||
|
||||
webpack-merge@^5.7.3:
|
||||
version "5.8.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-5.8.0.tgz#2b39dbf22af87776ad744c390223731d30a68f61"
|
||||
integrity sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==
|
||||
dependencies:
|
||||
clone-deep "^4.0.1"
|
||||
wildcard "^2.0.0"
|
||||
|
||||
webpack-sources@^3.2.3:
|
||||
version "3.2.3"
|
||||
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde"
|
||||
integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==
|
||||
|
||||
webpack@^5.74.0, webpack@^5.76.0:
|
||||
version "5.76.0"
|
||||
resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.76.0.tgz#f9fb9fb8c4a7dbdcd0d56a98e56b8a942ee2692c"
|
||||
integrity sha512-l5sOdYBDunyf72HW8dF23rFtWq/7Zgvt/9ftMof71E/yUb1YLOBmTgA2K4vQthB3kotMrSj609txVE0dnr2fjA==
|
||||
dependencies:
|
||||
"@types/eslint-scope" "^3.7.3"
|
||||
"@types/estree" "^0.0.51"
|
||||
"@webassemblyjs/ast" "1.11.1"
|
||||
"@webassemblyjs/wasm-edit" "1.11.1"
|
||||
"@webassemblyjs/wasm-parser" "1.11.1"
|
||||
acorn "^8.7.1"
|
||||
acorn-import-assertions "^1.7.6"
|
||||
browserslist "^4.14.5"
|
||||
chrome-trace-event "^1.0.2"
|
||||
enhanced-resolve "^5.10.0"
|
||||
es-module-lexer "^0.9.0"
|
||||
eslint-scope "5.1.1"
|
||||
events "^3.2.0"
|
||||
glob-to-regexp "^0.4.1"
|
||||
graceful-fs "^4.2.9"
|
||||
json-parse-even-better-errors "^2.3.1"
|
||||
loader-runner "^4.2.0"
|
||||
mime-types "^2.1.27"
|
||||
neo-async "^2.6.2"
|
||||
schema-utils "^3.1.0"
|
||||
tapable "^2.1.1"
|
||||
terser-webpack-plugin "^5.1.3"
|
||||
watchpack "^2.4.0"
|
||||
webpack-sources "^3.2.3"
|
||||
|
||||
which-boxed-primitive@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
|
||||
integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
|
||||
dependencies:
|
||||
is-bigint "^1.0.1"
|
||||
is-boolean-object "^1.1.0"
|
||||
is-number-object "^1.0.4"
|
||||
is-string "^1.0.5"
|
||||
is-symbol "^1.0.3"
|
||||
|
||||
which-collection@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906"
|
||||
integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==
|
||||
dependencies:
|
||||
is-map "^2.0.1"
|
||||
is-set "^2.0.1"
|
||||
is-weakmap "^2.0.1"
|
||||
is-weakset "^2.0.1"
|
||||
|
||||
which-module@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
||||
|
||||
which-typed-array@^1.1.9:
|
||||
version "1.1.9"
|
||||
resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6"
|
||||
integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==
|
||||
dependencies:
|
||||
available-typed-arrays "^1.0.5"
|
||||
call-bind "^1.0.2"
|
||||
for-each "^0.3.3"
|
||||
gopd "^1.0.1"
|
||||
has-tostringtag "^1.0.0"
|
||||
is-typed-array "^1.1.10"
|
||||
|
||||
which@^2.0.1, which@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
||||
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wide-align@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
|
||||
integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
|
||||
dependencies:
|
||||
string-width "^1.0.2 || 2 || 3 || 4"
|
||||
|
||||
wildcard@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec"
|
||||
integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==
|
||||
|
||||
word-wrap@^1.2.3:
|
||||
version "1.2.5"
|
||||
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
|
||||
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
|
||||
|
||||
wordwrap@~1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
|
||||
|
||||
wrap-ansi@^6.2.0:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
|
||||
integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
|
||||
dependencies:
|
||||
ansi-styles "^4.0.0"
|
||||
string-width "^4.1.0"
|
||||
strip-ansi "^6.0.0"
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
|
||||
write-file-atomic@^4.0.0, write-file-atomic@^4.0.1:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
|
||||
integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
|
||||
dependencies:
|
||||
imurmurhash "^0.1.4"
|
||||
signal-exit "^3.0.7"
|
||||
|
||||
write@^0.2.1:
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
|
||||
dependencies:
|
||||
mkdirp "^0.5.1"
|
||||
|
||||
ws@^7.3.1:
|
||||
version "7.5.9"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
|
||||
integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
|
||||
|
||||
xtend@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
|
||||
|
||||
y18n@^4.0.0:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
|
||||
|
||||
yallist@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9"
|
||||
|
||||
yallist@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
|
||||
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
|
||||
|
||||
yaml@^1.10.0:
|
||||
version "1.10.2"
|
||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
|
||||
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
|
||||
|
||||
yaml@^2.1.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4"
|
||||
integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw==
|
||||
|
||||
yargs-parser@^18.1.2:
|
||||
version "18.1.3"
|
||||
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
|
||||
integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
|
||||
dependencies:
|
||||
camelcase "^5.0.0"
|
||||
decamelize "^1.2.0"
|
||||
|
||||
yargs@^15.4.1:
|
||||
version "15.4.1"
|
||||
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
|
||||
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
|
||||
dependencies:
|
||||
cliui "^6.0.0"
|
||||
decamelize "^1.2.0"
|
||||
find-up "^4.1.0"
|
||||
get-caller-file "^2.0.1"
|
||||
require-directory "^2.1.1"
|
||||
require-main-filename "^2.0.0"
|
||||
set-blocking "^2.0.0"
|
||||
string-width "^4.2.0"
|
||||
which-module "^2.0.0"
|
||||
y18n "^4.0.0"
|
||||
yargs-parser "^18.1.2"
|
||||
|
||||
yocto-queue@^0.1.0:
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
|
||||
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
|
Loading…
Reference in New Issue