diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 22a085f07..23fdb6851 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,20 +1,29 @@ **Issue number:** +### PR Type + +**What kind of change does this PR introduce?** +* [ ] Feature +* [ ] Bug Fix +* [ ] Refactoring (no functional or API changes) +* [ ] Documentation Update +* [ ] Maintenance (dependency updates, CI, etc.) + ## Summary ### Changes -> Please provide a summary of what's being changed +Please provide a summary of the changes. ### User experience -> Please describe what the user experience looks like before and after this change +Please describe the user experience before and after this change. Screenshots are welcome for additional context. ## Checklist -If your change doesn't seem to apply, please leave them unchecked. +If an item doesn't apply to your changes, leave it unchecked. -* [ ] I have performed a self-review of this change -* [ ] Changes have been tested +* [ ] I have performed a self-review of this change according to the [development guidelines](https://splunk.github.io/addonfactory-ucc-generator/contributing/#development-guidelines) +* [ ] Tests have been added/modified to cover the changes [(testing doc)](https://splunk.github.io/addonfactory-ucc-generator/contributing/#build-and-test) * [ ] Changes are documented -* [ ] PR title follows [conventional commit semantics](https://www.conventionalcommits.org/en/v1.0.0/) +* [ ] PR title and description follows the [contributing principles](https://splunk.github.io/addonfactory-ucc-generator/contributing/#pull-requests) diff --git a/.github/workflows/build-test-release.yml b/.github/workflows/build-test-release.yml index b0580c2c9..495d32f30 100644 --- a/.github/workflows/build-test-release.yml +++ b/.github/workflows/build-test-release.yml @@ -135,6 +135,7 @@ jobs: - "3.9" - "3.10" - "3.11" + - "3.12" steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -168,6 +169,7 @@ jobs: - "3.9" - "3.10" - "3.11" + - "3.12" steps: - uses: actions/checkout@v4 - uses: actions/download-artifact@v4 @@ -225,7 +227,7 @@ jobs: path: Splunk_TA_UCCExample*.tar.gz test-ui: - name: test-ui Splunk ${{ matrix.splunk.version }} -m ${{ matrix.test-mark }} + name: test-ui Splunk ${{ matrix.splunk.version }} -group ${{ matrix.test-group }} runs-on: ubuntu-22.04 permissions: id-token: write @@ -241,14 +243,17 @@ jobs: fail-fast: false matrix: splunk: ${{ fromJson(needs.meta.outputs.matrix_supportedSplunk) }} - test-mark: - - "logging" - - "proxy" - - "account" - - "custom" - - "alert" - - "input" - - "configuration" + test-group: + - "1" + - "2" + - "3" + - "4" + - "5" + - "6" + - "7" + - "8" + - "9" + - "10" steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -270,16 +275,16 @@ jobs: ./scripts/run_splunk.sh ${{ matrix.splunk.version }} until curl -Lsk "https://localhost:8088/services/collector/health" &>/dev/null ; do echo -n "Waiting for HEC-" && sleep 5 ; done timeout-minutes: 5 - - run: poetry run pytest tests/ui -m "${{ matrix.test-mark }}" --headless --junitxml=test-results/junit.xml + - run: poetry run pytest tests/ui --test-group-count 10 --test-group ${{ matrix.test-group }} --test-group-random-seed 123456 --headless --junitxml=test-results/junit.xml - uses: actions/upload-artifact@v4 if: success() || failure() with: - name: test-results-ui-${{ matrix.splunk.version }}-${{ matrix.test-mark }} + name: test-results-ui-${{ matrix.splunk.version }}-${{ matrix.test-group }} path: test-results/* - uses: dorny/test-reporter@v1 if: success() || failure() with: - name: test-report-ui-${{ matrix.splunk.version }}-${{ matrix.test-mark }} + name: test-report-ui-${{ matrix.splunk.version }}-${{ matrix.test-group }} path: "test-results/*.xml" reporter: java-junit diff --git a/.gitignore b/.gitignore index 02c884184..303e93381 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ pip-wheel-metadata/UNKNOWN.dist-info/top_level.txt pip-wheel-metadata/UNKNOWN.dist-info/METADATA .vscode/settings.json .DS_Store -.venv +.venv* output # The following files should never be checked into git but can not be in the # ignore file due to poetry issues diff --git a/NOTICE b/NOTICE index 414e5a4aa..a8446f3f4 100644 --- a/NOTICE +++ b/NOTICE @@ -7,9 +7,9 @@ The following 3rd-party software packages may be used by or distributed with addonfactory-ucc-generator. Any information relevant to third-party vendors listed below are collected using common, reasonable means. -Date generated: 2024-10-30 +Date generated: 2024-11-13 -Revision ID: 446c2be147b78cfa82e5eb1d80a698370cb74893 +Revision ID: f610443c2d98bed9360b417e956ddfb83b0ec417 ================================================================================ ================================================================================ @@ -477,6 +477,43 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------------------- +Package Title: @babel/runtime (7.26.0) + +Package Locator: npm+@babel/runtime$7.26.0 + +Package Depth: Transitive +-------------------------------------------------------------------------------- + +* Declared Licenses * +MIT + + +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + + -------------------------------------------------------------------------------- Package Title: @babel/template (7.25.7) @@ -1954,9 +1991,9 @@ SOFTWARE. -------------------------------------------------------------------------------- -Package Title: @splunk/async-dynamic-options-evaluator (26.3.0) +Package Title: @splunk/async-dynamic-options-evaluator (26.4.1) -Package Locator: npm+@splunk/async-dynamic-options-evaluator$26.3.0 +Package Locator: npm+@splunk/async-dynamic-options-evaluator$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -1966,9 +2003,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/charting-bundle (26.3.0) +Package Title: @splunk/charting-bundle (26.4.1) -Package Locator: npm+@splunk/charting-bundle$26.3.0 +Package Locator: npm+@splunk/charting-bundle$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -1978,9 +2015,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-action-buttons (27.4.0) +Package Title: @splunk/dashboard-action-buttons (27.5.0) -Package Locator: npm+@splunk/dashboard-action-buttons$27.4.0 +Package Locator: npm+@splunk/dashboard-action-buttons$27.5.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -1990,9 +2027,9 @@ Package Depth: Direct -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-context (27.4.0) +Package Title: @splunk/dashboard-context (27.5.0) -Package Locator: npm+@splunk/dashboard-context$27.4.0 +Package Locator: npm+@splunk/dashboard-context$27.5.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -2002,9 +2039,9 @@ Package Depth: Direct -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-core (27.4.0) +Package Title: @splunk/dashboard-core (27.5.0) -Package Locator: npm+@splunk/dashboard-core$27.4.0 +Package Locator: npm+@splunk/dashboard-core$27.5.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -2014,9 +2051,9 @@ Package Depth: Direct -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-definition (27.4.0) +Package Title: @splunk/dashboard-definition (27.5.0) -Package Locator: npm+@splunk/dashboard-definition$27.4.0 +Package Locator: npm+@splunk/dashboard-definition$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2026,9 +2063,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-event-handlers (27.4.0) +Package Title: @splunk/dashboard-event-handlers (27.5.0) -Package Locator: npm+@splunk/dashboard-event-handlers$27.4.0 +Package Locator: npm+@splunk/dashboard-event-handlers$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2038,9 +2075,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-icons (27.4.0) +Package Title: @splunk/dashboard-icons (27.5.0) -Package Locator: npm+@splunk/dashboard-icons$27.4.0 +Package Locator: npm+@splunk/dashboard-icons$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2050,9 +2087,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-inputs (27.4.0) +Package Title: @splunk/dashboard-inputs (27.5.0) -Package Locator: npm+@splunk/dashboard-inputs$27.4.0 +Package Locator: npm+@splunk/dashboard-inputs$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2062,9 +2099,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-layouts (27.4.0) +Package Title: @splunk/dashboard-layouts (27.5.0) -Package Locator: npm+@splunk/dashboard-layouts$27.4.0 +Package Locator: npm+@splunk/dashboard-layouts$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2074,9 +2111,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-presets (27.4.0) +Package Title: @splunk/dashboard-presets (27.5.0) -Package Locator: npm+@splunk/dashboard-presets$27.4.0 +Package Locator: npm+@splunk/dashboard-presets$27.5.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -2086,9 +2123,9 @@ Package Depth: Direct -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-search (27.4.0) +Package Title: @splunk/dashboard-search (27.5.0) -Package Locator: npm+@splunk/dashboard-search$27.4.0 +Package Locator: npm+@splunk/dashboard-search$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2098,9 +2135,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-state (27.4.0) +Package Title: @splunk/dashboard-state (27.5.0) -Package Locator: npm+@splunk/dashboard-state$27.4.0 +Package Locator: npm+@splunk/dashboard-state$27.5.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -2110,9 +2147,9 @@ Package Depth: Direct -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-telemetry (27.4.0) +Package Title: @splunk/dashboard-telemetry (27.5.0) -Package Locator: npm+@splunk/dashboard-telemetry$27.4.0 +Package Locator: npm+@splunk/dashboard-telemetry$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2122,9 +2159,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-types (27.4.0) +Package Title: @splunk/dashboard-types (27.5.0) -Package Locator: npm+@splunk/dashboard-types$27.4.0 +Package Locator: npm+@splunk/dashboard-types$27.5.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -2134,9 +2171,9 @@ Package Depth: Direct -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-ui (27.4.0) +Package Title: @splunk/dashboard-ui (27.5.0) -Package Locator: npm+@splunk/dashboard-ui$27.4.0 +Package Locator: npm+@splunk/dashboard-ui$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2146,9 +2183,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-utils (27.4.0) +Package Title: @splunk/dashboard-utils (27.5.0) -Package Locator: npm+@splunk/dashboard-utils$27.4.0 +Package Locator: npm+@splunk/dashboard-utils$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2158,9 +2195,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-validation (27.4.0) +Package Title: @splunk/dashboard-validation (27.5.0) -Package Locator: npm+@splunk/dashboard-validation$27.4.0 +Package Locator: npm+@splunk/dashboard-validation$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2170,9 +2207,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/dashboard-visualizations (26.3.0) +Package Title: @splunk/dashboard-visualizations (26.4.1) -Package Locator: npm+@splunk/dashboard-visualizations$26.3.0 +Package Locator: npm+@splunk/dashboard-visualizations$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2182,9 +2219,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/datasource-utils (27.4.0) +Package Title: @splunk/datasource-utils (27.5.0) -Package Locator: npm+@splunk/datasource-utils$27.4.0 +Package Locator: npm+@splunk/datasource-utils$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -2194,9 +2231,9 @@ Package Depth: Transitive -------------------------------------------------------------------------------- -Package Title: @splunk/datasources (27.4.0) +Package Title: @splunk/datasources (27.5.0) -Package Locator: npm+@splunk/datasources$27.4.0 +Package Locator: npm+@splunk/datasources$27.5.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -4158,11 +4195,11 @@ Apache-2.0 -------------------------------------------------------------------------------- -Package Title: @splunk/react-toast-notifications (0.11.3) +Package Title: @splunk/react-time-range (9.3.2) -Package Locator: npm+@splunk/react-toast-notifications$0.11.3 +Package Locator: npm+@splunk/react-time-range$9.3.2 -Package Depth: Direct +Package Depth: Transitive -------------------------------------------------------------------------------- * Declared Licenses * @@ -4375,9 +4412,9 @@ Apache-2.0 -------------------------------------------------------------------------------- -Package Title: @splunk/react-ui (4.38.0) +Package Title: @splunk/react-toast-notifications (0.11.3) -Package Locator: npm+@splunk/react-ui$4.38.0 +Package Locator: npm+@splunk/react-toast-notifications$0.11.3 Package Depth: Direct -------------------------------------------------------------------------------- @@ -4591,46 +4628,10 @@ Apache-2.0 -* Other Licenses * -MIT - - -Copyright (c) 2014 Call-Em-All -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - --------------------------------------------------------------------------------- -Package Title: @splunk/react-visualizations (26.3.0) - -Package Locator: npm+@splunk/react-visualizations$26.3.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -## **Splunk App End User License Agreement** - - -------------------------------------------------------------------------------- -Package Title: @splunk/search-job (3.1.0) +Package Title: @splunk/react-ui (4.39.0) -Package Locator: npm+@splunk/search-job$3.1.0 +Package Locator: npm+@splunk/react-ui$4.39.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -4844,12 +4845,36 @@ Apache-2.0 +* Other Licenses * +MIT + + +Copyright (c) 2014 Call-Em-All +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + -------------------------------------------------------------------------------- -Package Title: @splunk/splunk-utils (3.1.0) +Package Title: @splunk/react-ui (4.38.0) -Package Locator: npm+@splunk/splunk-utils$3.1.0 +Package Locator: npm+@splunk/react-ui$4.38.0 -Package Depth: Direct +Package Depth: Transitive -------------------------------------------------------------------------------- * Declared Licenses * @@ -5061,14 +5086,50 @@ Apache-2.0 +* Other Licenses * +MIT + + +Copyright (c) 2014 Call-Em-All +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + -------------------------------------------------------------------------------- -Package Title: @splunk/splunk-utils (2.3.4) +Package Title: @splunk/react-visualizations (26.4.1) -Package Locator: npm+@splunk/splunk-utils$2.3.4 +Package Locator: npm+@splunk/react-visualizations$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- +* Declared Licenses * +## **Splunk App End User License Agreement** + + +-------------------------------------------------------------------------------- +Package Title: @splunk/search-job (3.1.0) + +Package Locator: npm+@splunk/search-job$3.1.0 + +Package Depth: Direct +-------------------------------------------------------------------------------- + * Declared Licenses * Apache-2.0 @@ -5279,9 +5340,9 @@ Apache-2.0 -------------------------------------------------------------------------------- -Package Title: @splunk/themes (0.22.0) +Package Title: @splunk/splunk-utils (3.1.0) -Package Locator: npm+@splunk/themes$0.22.0 +Package Locator: npm+@splunk/splunk-utils$3.1.0 Package Depth: Direct -------------------------------------------------------------------------------- @@ -5496,9 +5557,9 @@ Apache-2.0 -------------------------------------------------------------------------------- -Package Title: @splunk/themes (0.16.4) +Package Title: @splunk/splunk-utils (2.3.4) -Package Locator: npm+@splunk/themes$0.16.4 +Package Locator: npm+@splunk/splunk-utils$2.3.4 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -5713,11 +5774,11 @@ Apache-2.0 -------------------------------------------------------------------------------- -Package Title: @splunk/themes (0.19.0) +Package Title: @splunk/themes (0.22.0) -Package Locator: npm+@splunk/themes$0.19.0 +Package Locator: npm+@splunk/themes$0.22.0 -Package Depth: Transitive +Package Depth: Direct -------------------------------------------------------------------------------- * Declared Licenses * @@ -5930,9 +5991,9 @@ Apache-2.0 -------------------------------------------------------------------------------- -Package Title: @splunk/themes (0.21.0) +Package Title: @splunk/themes (0.16.4) -Package Locator: npm+@splunk/themes$0.21.0 +Package Locator: npm+@splunk/themes$0.16.4 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6147,9 +6208,9 @@ Apache-2.0 -------------------------------------------------------------------------------- -Package Title: @splunk/time-range-utils (3.2.0) +Package Title: @splunk/themes (0.19.0) -Package Locator: npm+@splunk/time-range-utils$3.2.0 +Package Locator: npm+@splunk/themes$0.19.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6163,70 +6224,720 @@ Apache-2.0 Version 2.0, January 2004 http://www.apache.org/licenses/ -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. + 1. Definitions. - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +-------------------------------------------------------------------------------- +Package Title: @splunk/themes (0.21.0) + +Package Locator: npm+@splunk/themes$0.21.0 + +Package Depth: Transitive +-------------------------------------------------------------------------------- + +* Declared Licenses * +Apache-2.0 + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +-------------------------------------------------------------------------------- +Package Title: @splunk/time-range-utils (3.0.1) + +Package Locator: npm+@splunk/time-range-utils$3.0.1 + +Package Depth: Transitive +-------------------------------------------------------------------------------- + +* Declared Licenses * +Apache-2.0 + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy][name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + +-------------------------------------------------------------------------------- +Package Title: @splunk/time-range-utils (3.2.0) + +Package Locator: npm+@splunk/time-range-utils$3.2.0 + +Package Depth: Transitive +-------------------------------------------------------------------------------- + +* Declared Licenses * +Apache-2.0 + + + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. @@ -6634,9 +7345,9 @@ SOFTWARE. -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-color-palettes (26.3.0) +Package Title: @splunk/visualization-color-palettes (26.4.1) -Package Locator: npm+@splunk/visualization-color-palettes$26.3.0 +Package Locator: npm+@splunk/visualization-color-palettes$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6646,9 +7357,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-context (26.3.0) +Package Title: @splunk/visualization-context (26.4.1) -Package Locator: npm+@splunk/visualization-context$26.3.0 +Package Locator: npm+@splunk/visualization-context$26.4.1 Package Depth: Direct -------------------------------------------------------------------------------- @@ -6658,9 +7369,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-encoding (26.3.0) +Package Title: @splunk/visualization-encoding (26.4.1) -Package Locator: npm+@splunk/visualization-encoding$26.3.0 +Package Locator: npm+@splunk/visualization-encoding$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6670,9 +7381,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-encoding-parsers (26.3.0) +Package Title: @splunk/visualization-encoding-parsers (26.4.1) -Package Locator: npm+@splunk/visualization-encoding-parsers$26.3.0 +Package Locator: npm+@splunk/visualization-encoding-parsers$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6682,9 +7393,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-icons (26.3.0) +Package Title: @splunk/visualization-icons (26.4.1) -Package Locator: npm+@splunk/visualization-icons$26.3.0 +Package Locator: npm+@splunk/visualization-icons$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6694,9 +7405,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-migrations (26.3.0) +Package Title: @splunk/visualization-migrations (26.4.1) -Package Locator: npm+@splunk/visualization-migrations$26.3.0 +Package Locator: npm+@splunk/visualization-migrations$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6706,9 +7417,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-schemas (26.3.0) +Package Title: @splunk/visualization-schemas (26.4.1) -Package Locator: npm+@splunk/visualization-schemas$26.3.0 +Package Locator: npm+@splunk/visualization-schemas$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6718,9 +7429,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualization-themes (26.3.0) +Package Title: @splunk/visualization-themes (26.4.1) -Package Locator: npm+@splunk/visualization-themes$26.3.0 +Package Locator: npm+@splunk/visualization-themes$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6730,9 +7441,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualizations (26.3.0) +Package Title: @splunk/visualizations (26.4.1) -Package Locator: npm+@splunk/visualizations$26.3.0 +Package Locator: npm+@splunk/visualizations$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -6742,9 +7453,9 @@ unknown -------------------------------------------------------------------------------- -Package Title: @splunk/visualizations-shared (26.3.0) +Package Title: @splunk/visualizations-shared (26.4.1) -Package Locator: npm+@splunk/visualizations-shared$26.3.0 +Package Locator: npm+@splunk/visualizations-shared$26.4.1 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -7248,9 +7959,9 @@ THE SOFTWARE. -------------------------------------------------------------------------------- -Package Title: @storybook/instrumenter (8.3.5) +Package Title: @storybook/instrumenter (8.4.2) -Package Locator: npm+@storybook/instrumenter$8.3.5 +Package Locator: npm+@storybook/instrumenter$8.4.2 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -7280,9 +7991,9 @@ SOFTWARE. -------------------------------------------------------------------------------- -Package Title: @storybook/test (8.3.5) +Package Title: @storybook/test (8.4.2) -Package Locator: npm+@storybook/test$8.3.5 +Package Locator: npm+@storybook/test$8.4.2 Package Depth: Direct -------------------------------------------------------------------------------- @@ -7351,7 +8062,7 @@ Package Title: @testing-library/jest-dom (6.5.0) Package Locator: npm+@testing-library/jest-dom$6.5.0 -Package Depth: Direct +Package Depth: Transitive -------------------------------------------------------------------------------- * Declared Licenses * @@ -8134,9 +8845,9 @@ SOFTWARE. -------------------------------------------------------------------------------- -Package Title: @vitest/pretty-format (2.1.3) +Package Title: @vitest/pretty-format (2.1.4) -Package Locator: npm+@vitest/pretty-format$2.1.3 +Package Locator: npm+@vitest/pretty-format$2.1.4 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -8261,9 +8972,9 @@ See the License for the specific language governing permissions and limitations -------------------------------------------------------------------------------- -Package Title: @vitest/utils (2.1.3) +Package Title: @vitest/utils (2.1.4) -Package Locator: npm+@vitest/utils$2.1.3 +Package Locator: npm+@vitest/utils$2.1.4 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -9358,42 +10069,6 @@ THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: asynckit (0.4.0) - -Package Locator: npm+asynckit$0.4.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License (MIT) - -Copyright (c) 2016 Alex Indigo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: atob (2.1.2) @@ -10020,64 +10695,6 @@ SOFTWARE. --------------------------------------------------------------------------------- -Package Title: available-typed-arrays (1.0.7) - -Package Locator: npm+available-typed-arrays$1.0.7 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2020 Inspect JS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: axios (1.7.7) - -Package Locator: npm+axios$1.7.7 - -Package Depth: Direct --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -# Copyright (c) 2014-present Matt Zabriskie & Collaborators - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: babel-plugin-styled-components (2.1.4) @@ -10812,42 +11429,6 @@ SOFTWARE. --------------------------------------------------------------------------------- -Package Title: call-bind (1.0.7) - -Package Locator: npm+call-bind$1.0.7 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2020 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: camelize (1.0.1) @@ -11332,43 +11913,11 @@ 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. - - - --------------------------------------------------------------------------------- -Package Title: combined-stream (1.0.8) - -Package Locator: npm+combined-stream$1.0.8 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -Copyright (c) 2011 Debuggable Limited -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +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. + -------------------------------------------------------------------------------- @@ -12950,42 +13499,6 @@ THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: define-data-property (1.1.4) - -Package Locator: npm+define-data-property$1.1.4 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2023 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: defusedxml (0.7.1) @@ -13081,38 +13594,6 @@ Permission to use, copy, modify, and distribute this software and its documentat STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -Package Title: delayed-stream (1.0.0) - -Package Locator: npm+delayed-stream$1.0.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -Copyright (c) 2011 Debuggable Limited -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -------------------------------------------------------------------------------- Package Title: dequal (2.0.3) @@ -13381,78 +13862,6 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --------------------------------------------------------------------------------- -Package Title: es-define-property (1.0.0) - -Package Locator: npm+es-define-property$1.0.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2024 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: es-errors (1.3.0) - -Package Locator: npm+es-errors$1.3.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2024 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: escape-string-regexp (1.0.5) @@ -13761,142 +14170,8 @@ MIT MIT License -Copyright (c) 2023 Arjun Barrett - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - --------------------------------------------------------------------------------- -Package Title: filter-obj (1.1.0) - -Package Locator: npm+filter-obj$1.1.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -Copyright (c) Sindre Sorhus (sindresorhus.com) -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - --------------------------------------------------------------------------------- -Package Title: follow-redirects (1.15.9) - -Package Locator: npm+follow-redirects$1.15.9 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: for-each (0.3.3) - -Package Locator: npm+for-each$0.3.3 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License (MIT) - -Copyright (c) 2012 Raynos. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - - --------------------------------------------------------------------------------- -Package Title: form-data (4.0.1) - -Package Locator: npm+form-data$4.0.1 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - +Copyright (c) 2023 Arjun Barrett -Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights @@ -13917,9 +14192,9 @@ SOFTWARE. -------------------------------------------------------------------------------- -Package Title: fscreen (1.2.0) +Package Title: filter-obj (1.1.0) -Package Locator: npm+fscreen$1.2.0 +Package Locator: npm+filter-obj$1.1.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -13928,10 +14203,7 @@ Package Depth: Transitive MIT -The MIT License (MIT) - -Copyright (c) 2017 Rafael Pedicini - +Copyright (c) Sindre Sorhus (sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights @@ -13951,11 +14223,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -------------------------------------------------------------------------------- -Package Title: function-bind (1.1.2) +Package Title: fscreen (1.2.0) -Package Locator: npm+function-bind$1.1.2 +Package Locator: npm+fscreen$1.2.0 Package Depth: Transitive -------------------------------------------------------------------------------- @@ -13964,7 +14235,9 @@ Package Depth: Transitive MIT -Copyright (c) 2013 Raynos. +The MIT License (MIT) + +Copyright (c) 2017 Rafael Pedicini Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -13973,17 +14246,16 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. @@ -14017,42 +14289,6 @@ THIS SOFTWARE. --------------------------------------------------------------------------------- -Package Title: get-intrinsic (1.2.4) - -Package Locator: npm+get-intrinsic$1.2.4 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2020 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: get-stream (6.0.1) @@ -14222,42 +14458,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: gopd (1.0.1) - -Package Locator: npm+gopd$1.0.1 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2022 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: has-flag (3.0.0) @@ -14322,150 +14522,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: has-property-descriptors (1.0.2) - -Package Locator: npm+has-property-descriptors$1.0.2 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2022 Inspect JS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: has-proto (1.0.3) - -Package Locator: npm+has-proto$1.0.3 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2022 Inspect JS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: has-symbols (1.0.3) - -Package Locator: npm+has-symbols$1.0.3 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2016 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: has-tostringtag (1.0.2) - -Package Locator: npm+has-tostringtag$1.0.2 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2021 Inspect JS - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: hash-it (5.0.2) @@ -14503,42 +14559,6 @@ SOFTWARE. --------------------------------------------------------------------------------- -Package Title: hasown (2.0.2) - -Package Locator: npm+hasown$2.0.2 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) Jordan Harband and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: hoist-non-react-statics (3.3.2) @@ -15147,37 +15167,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: inherits (2.0.4) - -Package Locator: npm+inherits$2.0.4 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -ISC - - -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - - - - -------------------------------------------------------------------------------- Package Title: ini (1.3.8) @@ -15264,78 +15253,6 @@ THIS SOFTWARE. --------------------------------------------------------------------------------- -Package Title: is-arguments (1.1.1) - -Package Locator: npm+is-arguments$1.1.1 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License (MIT) - -Copyright (c) 2014 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: is-callable (1.2.7) - -Package Locator: npm+is-callable$1.2.7 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - - -------------------------------------------------------------------------------- Package Title: is-extendable (0.1.1) @@ -15407,41 +15324,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: is-generator-function (1.0.10) - -Package Locator: npm+is-generator-function$1.0.10 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License (MIT) - -Copyright (c) 2014 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: is-plain-object (2.0.4) @@ -15478,43 +15360,6 @@ THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: is-typed-array (1.1.13) - -Package Locator: npm+is-typed-array$1.1.13 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - - -------------------------------------------------------------------------------- Package Title: isexe (2.0.0) @@ -16831,82 +16676,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: mime-db (1.52.0) - -Package Locator: npm+mime-db$1.52.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015-2022 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: mime-types (2.1.35) - -Package Locator: npm+mime-types$2.1.35 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: min-indent (1.0.1) @@ -17631,54 +17400,18 @@ FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any -relationship of agency, partnership, or joint venture between PSF and -Licensee. This License Agreement does not grant permission to use PSF -trademarks or trade name in a trademark sense to endorse or promote -products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using Python, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - - --------------------------------------------------------------------------------- -Package Title: possible-typed-array-names (1.0.0) - -Package Locator: npm+possible-typed-array-names$1.0.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) 2024 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: +6. This License Agreement will automatically terminate upon a material +breach of its terms and conditions. -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +7. Nothing in this License Agreement shall be deemed to create any +relationship of agency, partnership, or joint venture between PSF and +Licensee. This License Agreement does not grant permission to use PSF +trademarks or trade name in a trademark sense to endorse or promote +products or services of Licensee, or any third party. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +8. By copying, installing or otherwise using Python, Licensee +agrees to be bound by the terms and conditions of this License +Agreement. @@ -17864,41 +17597,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. --------------------------------------------------------------------------------- -Package Title: proxy-from-env (1.1.0) - -Package Locator: npm+proxy-from-env$1.1.0 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License - -Copyright (C) 2016-2018 Rob Wu - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: pyrsistent (0.19.3) @@ -19310,42 +19008,6 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -Package Title: set-function-length (1.2.2) - -Package Locator: npm+set-function-length$1.2.2 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -MIT License - -Copyright (c) Jordan Harband and contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - -------------------------------------------------------------------------------- Package Title: set-value (2.0.1) @@ -20645,42 +20307,9 @@ SOFTWARE. -------------------------------------------------------------------------------- -Package Title: util (0.12.5) - -Package Locator: npm+util$0.12.5 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -Copyright Joyent, Inc. and other Node contributors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - - - --------------------------------------------------------------------------------- -Package Title: uuid (11.0.1) +Package Title: uuid (11.0.2) -Package Locator: npm+uuid$11.0.1 +Package Locator: npm+uuid$11.0.2 Package Depth: Direct -------------------------------------------------------------------------------- @@ -20926,43 +20555,6 @@ IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. --------------------------------------------------------------------------------- -Package Title: which-typed-array (1.1.15) - -Package Locator: npm+which-typed-array$1.1.15 - -Package Depth: Transitive --------------------------------------------------------------------------------- - -* Declared Licenses * -MIT - - -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - - -------------------------------------------------------------------------------- Package Title: xmlserializer (0.6.1) @@ -22456,17 +22048,6 @@ limitations under the License. SOFTWARE -* MIT * - -# Copyright (c) 2014-present Matt Zabriskie & Collaborators - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - * MIT * # License @@ -22600,60 +22181,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -* MIT * - -(The MIT License) - -Copyright (c) 2014 Jonathan Ong -Copyright (c) 2015-2022 Douglas Christopher Wilson - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -'Software'), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - * MIT * (The MIT License) @@ -24136,30 +23663,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -Copyright (c) 2013 Raynos. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - - - * MIT * Copyright (c) 2014, John MacFarlane @@ -25392,35 +24895,13 @@ THIS SOFTWARE. * MIT * -Copyright 2012 Irakli Gozalishvili - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -* MIT * - -Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: +Copyright 2012 Irakli Gozalishvili -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR -IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * MIT * @@ -25543,28 +25024,6 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -Copyright Joyent, Inc. and other Node contributors. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. - - * MIT * Copyright Mathias Bynens @@ -26368,248 +25827,23 @@ distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2014-present, Facebook, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2016 Jacob Parker and Maximilian Stoiber - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2016 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2016-present Vladimir Danchenkov and Maximilian Stoiber - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2017 Alberto Leal (github.com/dashed) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2017 Chai.js Assertion Library - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2017 Evgeny Poberezkin - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2017 JS Foundation and other contributors - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - -* MIT * - -MIT License - -Copyright (c) 2017 Michel Weststrate - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * MIT * MIT License -Copyright (c) 2017 Moshe Kolodny +Copyright (c) 2014-present, Facebook, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26634,7 +25868,7 @@ SOFTWARE. MIT License -Copyright (c) 2017 Pontus Persson +Copyright (c) 2016 Jacob Parker and Maximilian Stoiber Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26659,7 +25893,7 @@ SOFTWARE. MIT License -Copyright (c) 2018-present Paul Henschel, react-spring, all contributors +Copyright (c) 2016-present Vladimir Danchenkov and Maximilian Stoiber Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26684,7 +25918,7 @@ SOFTWARE. MIT License -Copyright (c) 2019 Alex Young +Copyright (c) 2017 Alberto Leal (github.com/dashed) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26709,7 +25943,7 @@ SOFTWARE. MIT License -Copyright (c) 2019 Alexander Reardon +Copyright (c) 2017 Chai.js Assertion Library Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26729,11 +25963,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * MIT * MIT License -Copyright (c) 2019 Matthew T. Kennerly (mtkennerly) +Copyright (c) 2017 Evgeny Poberezkin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26758,7 +25993,7 @@ SOFTWARE. MIT License -Copyright (c) 2020 Colin McDonnell +Copyright (c) 2017 JS Foundation and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26783,7 +26018,7 @@ SOFTWARE. MIT License -Copyright (c) 2020 Inspect JS +Copyright (c) 2017 Michel Weststrate Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26808,7 +26043,7 @@ SOFTWARE. MIT License -Copyright (c) 2020 Jordan Harband +Copyright (c) 2017 Moshe Kolodny Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26833,7 +26068,7 @@ SOFTWARE. MIT License -Copyright (c) 2020 Sebastian Silbermann +Copyright (c) 2017 Pontus Persson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26858,7 +26093,7 @@ SOFTWARE. MIT License -Copyright (c) 2021 Amine Ben hammou +Copyright (c) 2018-present Paul Henschel, react-spring, all contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26878,11 +26113,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * MIT * MIT License -Copyright (c) 2021 Inspect JS +Copyright (c) 2019 Alex Young Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26907,7 +26143,7 @@ SOFTWARE. MIT License -Copyright (c) 2021, Claudéric Demers +Copyright (c) 2019 Alexander Reardon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26927,12 +26163,11 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * MIT * MIT License -Copyright (c) 2021-Present Vitest Team +Copyright (c) 2019 Matthew T. Kennerly (mtkennerly) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26957,7 +26192,7 @@ SOFTWARE. MIT License -Copyright (c) 2022 CSF contributors +Copyright (c) 2020 Colin McDonnell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -26982,7 +26217,7 @@ SOFTWARE. MIT License -Copyright (c) 2022 Inspect JS +Copyright (c) 2020 Sebastian Silbermann Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27007,7 +26242,7 @@ SOFTWARE. MIT License -Copyright (c) 2022 Jordan Harband +Copyright (c) 2021 Amine Ben hammou Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27027,12 +26262,11 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * MIT * MIT License -Copyright (c) 2022 Tinylibs +Copyright (c) 2021, Claudéric Demers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27057,7 +26291,7 @@ SOFTWARE. MIT License -Copyright (c) 2023 Arjun Barrett +Copyright (c) 2021-Present Vitest Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27077,11 +26311,12 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * MIT * MIT License -Copyright (c) 2023 Jordan Harband +Copyright (c) 2022 CSF contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27106,7 +26341,7 @@ SOFTWARE. MIT License -Copyright (c) 2024 Jordan Harband +Copyright (c) 2022 Tinylibs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27131,7 +26366,7 @@ SOFTWARE. MIT License -Copyright (c) Emotion team and other contributors +Copyright (c) 2023 Arjun Barrett Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27151,12 +26386,11 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - * MIT * MIT License -Copyright (c) Facebook, Inc. and its affiliates. +Copyright (c) Emotion team and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27181,7 +26415,7 @@ SOFTWARE. MIT License -Copyright (c) Jordan Harband and contributors +Copyright (c) Facebook, Inc. and its affiliates. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -27412,26 +26646,6 @@ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -* ISC * - -The ISC License - -Copyright (c) Isaac Z. Schlueter - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted, provided that the above -copyright notice and this permission notice appear in all copies. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - - - * ISC * The ISC License @@ -27478,30 +26692,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -The MIT License - -Copyright (C) 2016-2018 Rob Wu - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - * MIT * The MIT License @@ -27540,32 +26730,6 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -The MIT License (MIT) - -Copyright (c) 2012 Raynos. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - * MIT * The MIT License (MIT) @@ -27604,30 +26768,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -The MIT License (MIT) - -Copyright (c) 2014 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - - * MIT * The MIT License (MIT) @@ -28138,32 +27278,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - - * MIT * The MIT License (MIT) @@ -28391,31 +27505,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -* MIT * - -The MIT License (MIT) - -Copyright (c) 2016 Alex Indigo - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - - * MIT * The MIT License (MIT) @@ -28985,19 +28074,15 @@ Adobe Postscript AFM License Copyright (c) 2010-2021 James Hall , https://github.com/MrRio/jsPDF -Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/ - Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv Copyright (c) 2017 Aras Abbasi -Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com - Copyright (c) 2014 Aras Abbasi Copyright (c) 2018 Aras Abbasi (aras.abbasi@gmail.com) -Copyright (c) 2018 Erik Koopmans +Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com Copyright (c) 2014 James Robb, https://github.com/jamesbrobb @@ -29011,19 +28096,23 @@ Copyright (c) 2019 Aras Abbasi Copyright (c) 2021 Antti Palola, https://github.com/Pantura -Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems - Copyright (c) 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br Copyright (c) 2016 Jussi Utunen, u-jussi@suomi24.fi +Copyright (c) information, platformID, encodingID, and + +Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/ + +Copyright (c) 2018 Erik Koopmans + +Copyright (c) 2012 Willow Systems Corporation, https://github.com/willowsystems + Copyright (c) informat Copyright (c) information, platformID, encodingID, and languageID - -Copyright (c) information, platformID, encodingID, and Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. This file and the 14 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files. @@ -29106,12 +28195,6 @@ BSD 2-Clause "Simplified" License Copyright (c) 2014 John MacFarlane -Copyright (c) Mathias Bynens - -Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin. - -Copyright (c) 2014 15 John MacFarlane - Copyright (c) 2008 Apple Inc. All Rights Reserved. Copyright (c) 2016-2022 Mapbox, Inc. @@ -29366,11 +28449,9 @@ Copyright (c) 2021 Mapbox Copyright (c) 2021-2024 Oleksii Raspopov, Kostiantyn Denysov, Anton Verinov -Copyright (c) Isaac Z. Schlueter - -Copyright (c) Isaac Z. Schlueter - Copyright (c) Isaac Z. Schlueter and Contributors + +Copyright (c) Isaac Z. Schlueter and Contributors ISC License Copyright (c) 2004-2010 by Internet Systems Consortium, Inc. ("ISC") Copyright (c) 1995-2003 by Internet Software Consortium @@ -29382,8 +28463,6 @@ MIT License Copyright (c) Microsoft Corporation. -Copyright (c) 2014 present Matt Zabriskie & Collaborators - Copyright (c) 2009-2013 Jeff Mott Copyright (c) 2013-2016 Evan Vosberg @@ -29416,12 +28495,6 @@ Copyright (c) 2013, 2014, 2020 Joachim Wester Copyright (c) 2017 Evgeny Poberezkin -Copyright (c) 2014 Jonathan Ong - -Copyright (c) 2015 Douglas Christopher Wilson - -Copyright (c) 2015-2022 Douglas Christopher Wilson - Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> @@ -29496,8 +28569,6 @@ Copyright (c) 2013 Julian Berman Copyright (c) 2012 Julian Berman -Copyright (c) 2013 Raynos. - Copyright (c) 2014 John MacFarlane Copyright (c) Mathias Bynens @@ -29548,8 +28619,6 @@ Copyright (c) Brian Grinstead, http://briangrinstead.com Copyright (c) 2012 Irakli Gozalishvili -Copyright (c) 2014 present Olivier Lalonde , James Talmage , Ruben Verborgh - Copyright (c) 2019 present Christopher J. Brody and other contributors, as listed in: https://github.com/xmldom/xmldom/graphs/contributors Copyright (c) 2012 - 2017 jindw and other contributors, as listed in: https://github.com/jindw/xmldom/graphs/contributors @@ -29564,8 +28633,6 @@ Copyright (c) Jason R. Coombs Copyright (c) Jason R. Coombs -Copyright (c) Joyent, Inc. and other Node contributors. All rights reserved. - Copyright (c) Mathias Bynens Copyright (c) Mathias Bynens @@ -29590,14 +28657,10 @@ Copyright (c) Sindre Sorhus (sindresorhus.com) Copyright (c) 2015 AJ ONeal -Copyright (c) 2011 Debuggable Limited - Copyright (c) 2017 Sam Verschueren (github.com/SamVerschueren) Copyright (c) Luke Edwards (lukeed.com) -Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and contributors - Copyright (c) Sindre Sorhus (https://sindresorhus.com) Copyright (c) 2023 MapLibre contributors @@ -29638,8 +28701,6 @@ Copyright (c) 2014 present, Facebook, Inc. Copyright (c) 2016 Jacob Parker and Maximilian Stoiber -Copyright (c) 2016 Jordan Harband - Copyright (c) 2016 present Vladimir Danchenkov and Maximilian Stoiber Copyright (c) 2017 Alberto Leal (github.com/dashed) @@ -29664,42 +28725,26 @@ Copyright (c) 2019 Matthew T. Kennerly (mtkennerly) Copyright (c) 2020 Colin McDonnell -Copyright (c) 2020 Inspect JS - -Copyright (c) 2020 Jordan Harband - Copyright (c) 2020 Sebastian Silbermann Copyright (c) 2021 Amine Ben hammou -Copyright (c) 2021 Inspect JS - Copyright (c) 2021 Claudéric Demers Copyright (c) 2021 Present Vitest Team Copyright (c) 2022 CSF contributors -Copyright (c) 2022 Inspect JS - -Copyright (c) 2022 Jordan Harband - Copyright (c) 2022 Tinylibs Copyright (c) 2023 Arjun Barrett -Copyright (c) 2023 Jordan Harband - -Copyright (c) 2024 Jordan Harband - Copyright (c) Emotion team and other contributors Copyright (c) Facebook, Inc. and its affiliates. Copyright (c) Facebook, Inc. and its affiliates. -Copyright (c) Jordan Harband and contributors - Copyright (c) React Training LLC 2015-2019 Copyright (c) React Training LLC 2015-2019 @@ -29716,20 +28761,14 @@ Copyright (c) 2020 Michael Mclaughlin Copyright (c) 2020 Michael Mclaughlin -Copyright (c) 2016-2018 Rob Wu - Copyright (c) 2015 Rich Harris Copyright (c) 2010-2020 Robert Kieffer and other contributors -Copyright (c) 2012 Raynos. - Copyright (c) 2014 Christoph Burgmer and contributors Copyright (c) 2014 David Tudury -Copyright (c) 2014 Jordan Harband - Copyright (c) 2014 Mathias Buus Copyright (c) 2014 Tim Oxley @@ -29768,8 +28807,6 @@ Copyright (c) is shown in the HTML footer. Default is True. Copyright (c) is shown in the HTML footer. Default is True. -Copyright (c) 2015 Jordan Harband - Copyright (c) 2015 Lucas Wiener Copyright (c) 2015 Plant The Idea @@ -29786,8 +28823,6 @@ Copyright (c) 2015 present Dan Abramov Copyright (c) 2015 present, Jon Schlinkert. -Copyright (c) 2016 Alex Indigo - Copyright (c) 2016 Denis Rul Copyright (c) 2016 Lucas Wiener @@ -29806,6 +28841,10 @@ Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Copyright (c) 2017 Kent C. Dodds +Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + +Copyright (c) 2013 Pieroxy + Copyright (c) 2019 Alex Sandiiarov Copyright (c) 2020 Giorgio Polvara @@ -29863,6 +28902,8 @@ Python License 2.0 Copyright (c) 2013-2017 by Christian Heimes Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 + +Copyright (c) 2013 by Christian Heimes PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. @@ -29928,4 +28969,4 @@ either expressed or implied, of the FreeBSD Project. -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -Report Generated by FOSSA on 2024-10-30 +Report Generated by FOSSA on 2024-11-13 diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index fa24a324e..4677c71ae 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,19 @@ +# [5.53.0](https://github.com/splunk/addonfactory-ucc-generator/compare/v5.52.0...v5.53.0) (2024-11-13) + + +### Bug Fixes + +* **Dropdown:** fix showing selected option when value is numeric ([#1439](https://github.com/splunk/addonfactory-ucc-generator/issues/1439)) ([9e7394a](https://github.com/splunk/addonfactory-ucc-generator/commit/9e7394a2312238a79b9b5cb8d55f1427a6073696)) +* generate oauth authentication fields for OpenAPI integration ([#1425](https://github.com/splunk/addonfactory-ucc-generator/issues/1425)) ([beb561b](https://github.com/splunk/addonfactory-ucc-generator/commit/beb561b25755cbcc51326848bc78891f89cf47b3)) +* **table:** custom mapping for values in Status column ([#1451](https://github.com/splunk/addonfactory-ucc-generator/issues/1451)) ([4721738](https://github.com/splunk/addonfactory-ucc-generator/commit/472173801a50be6c9ac7ae91ab4a9d129d1bfd86)) + + +### Features + +* add ability to provide custom pip flags ([#1447](https://github.com/splunk/addonfactory-ucc-generator/issues/1447)) ([718c897](https://github.com/splunk/addonfactory-ucc-generator/commit/718c897347bd2db539354f6625be074e6d90d988)) +* add grouping to configuration page ([#1432](https://github.com/splunk/addonfactory-ucc-generator/issues/1432)) ([b94b228](https://github.com/splunk/addonfactory-ucc-generator/commit/b94b2289fec8e33d53414db36c6504428d84546c)) +* deprecate .uccignore and upgrade additional_package ([#1415](https://github.com/splunk/addonfactory-ucc-generator/issues/1415)) ([f6dd96f](https://github.com/splunk/addonfactory-ucc-generator/commit/f6dd96feadef395d92ca3c7c0a3a6ff70c3c8f10)) + # [5.52.0](https://github.com/splunk/addonfactory-ucc-generator/compare/v5.51.1...v5.52.0) (2024-10-30) diff --git a/docs/additional_packaging.md b/docs/additional_packaging.md index 3edd98f63..ea63cead0 100644 --- a/docs/additional_packaging.md +++ b/docs/additional_packaging.md @@ -2,9 +2,22 @@ To extend the build process, you can create a `additional_packaging.py` file in the same file level where you have your globalConfig file. -This file should have the `additional_packaging` function, which accepts add-on name as its only argument. +This file should at least have: + +- the `cleanup_output_files` function, which accepts `output_path` (str), `add-on name` (str) as its arguments. +- the `additional_packaging` function, which accepts `add-on name` (str) as its only argument. + +First the `cleanup_output_files` function would be called from `ucc-gen` build process and then `additional_packaging` function. See the following example for proper usage: -* Build custom UI after `ucc-gen` finishes all its necessary steps. -* Use a workaround for a `ucc-gen` feature that has not been implemented. +- Build custom UI after `ucc-gen` finishes all its necessary steps. +- Use a workaround for a `ucc-gen` feature that has not been implemented. + +## Example + +Below is an example of additional_packaging.py containing both the implementations of functions. + +```python +--8<-- "tests/testdata/test_addons/package_global_config_everything_uccignore/additional_packaging.py" +``` diff --git a/docs/commands.md b/docs/commands.md index 00894744b..8e2c2c28c 100644 --- a/docs/commands.md +++ b/docs/commands.md @@ -31,6 +31,12 @@ It takes the following parameters: to pip install command. The default is`False`. >**NOTE:** This flag is deprecated and will be removed from pip in the future. Instead of using this flag, the correct solution would be to fix the packages your project depends on to work properly with the new resolver. Additionally, this flag is not compatible with pip version `23.2`. Use `23.2.1` instead. +* `--pip-custom-flag` - [optional] Additional flag(s) that will be added to the `pip install` command. + By default, all the following flags are added to the `pip install` command: `--no-compile`, `--prefer-binary` and `--ignore-installed`. + If `--pip-custom-flag` is specified these three arguments will be missing so if you still want them in your command add them to the `--pip-custom-flag` argument. + + Example: `--pip-custom-flag="--no-compile --prefer-binary --ignore-installed --report path/to/report.json --progress-bar on"` + * `--ui-source-map` - [optional] if present generates front-end source maps (.js.map files), that helps with code debugging. ### Verbose mode diff --git a/docs/configurations/index.md b/docs/configurations/index.md index 27d7d3cd7..0be2d7aa3 100644 --- a/docs/configurations/index.md +++ b/docs/configurations/index.md @@ -20,6 +20,7 @@ proxy configuration, and logging level configuration. | name\* | string | To define the particular tab name. | | title\* | string | To show the title of the tab. | | [entity](../entity/index.md)\* | array | A list of fields and their properties. | +| [groups](../advanced/groups_feature.md) | array | It is used to divide forms into distinct sections, each comprising relevant fields. | | [table](../table.md) | object | To display accounts stanza in table | | style | string | By specifying this property in the global config file, the forms can either be opened as a new page or in a dialog.
Supported values are "page" or "dialog".
Default value is **dialog**. | | options | object | This property allows you to enable the [saveValidator](../advanced/save_validator.md) feature. | diff --git a/docs/contributing.md b/docs/contributing.md index c5e564f16..b4e61d9e2 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -2,6 +2,12 @@ We welcome contributions from the community! This guide will help you understand our contribution process and requirements. +## Development guidelines + +1. Small PRs ([blogpost](https://testing.googleblog.com/2024/07/in-praise-of-small-pull-requests.html)) +1. When fixing a bug, include a test that reproduces the issue in the same pull request (the test should fail without your changes) +1. If you are refactoring, ensure adequate test coverage exists for the target area. If coverage is insufficient, create tests in a separate pull request first. This approach provides a safety net for validating current behavior and simplifies code reviews. + ## Build and Test Prerequisites: diff --git a/docs/uccignore.md b/docs/uccignore.md index 4a6dce70c..d6041fcc0 100644 --- a/docs/uccignore.md +++ b/docs/uccignore.md @@ -1,5 +1,8 @@ # `.uccignore` file +!!! warning "Deprecation Notice" + This feature has been deprecated from UCC framework as of v5.53.0 as the feature is ambiguous. You can achieve the same functionality using [additional_packaging.py](./additional_packaging.md). The `cleanup_output_files` provides a feature to clean up files after the source code has been copied. + This feature can be used to remove files from the output **after** the UCC template files were copied and **before** the source of the add-on recursively overrides the output folder. diff --git a/poetry.lock b/poetry.lock index 933eeb515..138e67e22 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1239,6 +1239,20 @@ importlib-metadata = {version = ">=1", markers = "python_version < \"3.8\""} packaging = ">=17.1" pytest = ">=5.3" +[[package]] +name = "pytest-split-tests" +version = "1.1.0" +description = "A Pytest plugin for running a subset of your tests by splitting them in to equally sized groups. Forked from Mark Adams' original project pytest-test-groups." +optional = false +python-versions = "*" +files = [ + {file = "pytest-split-tests-1.1.0.tar.gz", hash = "sha256:e55bbf127d94ff913a248f32e64f07cd3201e8a82397e8152694e4ffe456e21c"}, + {file = "pytest_split_tests-1.1.0-py2.py3-none-any.whl", hash = "sha256:21be7d6f95291002790fe24e28faa950059694e7abc430d4993d99a4c773bde4"}, +] + +[package.dependencies] +pytest = ">=2.5" + [[package]] name = "pytest-splunk-addon" version = "5.4.1" @@ -1767,5 +1781,5 @@ testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more [metadata] lock-version = "2.0" -python-versions = "^3.7" -content-hash = "8a01c2a730b73b14bfd3a826d7a5926a82e36d28675e7d74494bb65d25ad73c2" +python-versions = ">=3.7,<3.13" +content-hash = "0435209576291a24a097f17bcf32f89216d592fb01e88fe72c521cb7379ff474" diff --git a/pyproject.toml b/pyproject.toml index 7dea04deb..fd3879d92 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ [tool.poetry] name = "splunk_add_on_ucc_framework" -version = "5.52.0" +version = "5.53.0" description = "Splunk Add-on SDK formerly UCC is a build and code generation framework" license = "Apache-2.0" authors = ["Splunk "] @@ -32,14 +32,20 @@ classifiers = [ "Intended Audience :: Developers", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Code Generators", - "License :: OSI Approved :: Apache Software License" + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python :: 3.7", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ] [tool.poetry.urls] "Bug Tracker" = "https://github.com/splunk/addonfactory-ucc-generator/issues" [tool.poetry.dependencies] -python = "^3.7" +python = ">=3.7,<3.13" jinja2 = ">=2,<4" addonfactory-splunk-conf-parser-lib = "^0.4.3" dunamai = "^1.22.0" @@ -62,6 +68,7 @@ mkdocs-print-site-plugin = "^2.3.6" pytest-cov = "^4.0.0" covdefaults = "^2.3.0" xmldiff = "^2.6.3" +pytest-split-tests = "^1.1.0" [tool.poetry.scripts] ucc-gen="splunk_add_on_ucc_framework.main:main" diff --git a/splunk_add_on_ucc_framework/__init__.py b/splunk_add_on_ucc_framework/__init__.py index a6f2fd32a..e14d46883 100644 --- a/splunk_add_on_ucc_framework/__init__.py +++ b/splunk_add_on_ucc_framework/__init__.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -__version__ = "5.52.0" +__version__ = "5.53.0" import logging diff --git a/splunk_add_on_ucc_framework/commands/build.py b/splunk_add_on_ucc_framework/commands/build.py index aabcf555f..b6d94c9f4 100644 --- a/splunk_add_on_ucc_framework/commands/build.py +++ b/splunk_add_on_ucc_framework/commands/build.py @@ -176,6 +176,11 @@ def _get_ignore_list( if not os.path.exists(ucc_ignore_path): return [] else: + logger.warning( + "The `.uccignore` feature has been deprecated from UCC and is planned to be removed after May 2025. " + "To achieve the similar functionality use additional_packaging.py." + "\nRefer: https://splunk.github.io/addonfactory-ucc-generator/additional_packaging/." + ) with open(ucc_ignore_path) as ignore_file: ignore_list = ignore_file.readlines() ignore_list = [ @@ -410,6 +415,7 @@ def generate( pip_version: str = "latest", pip_legacy_resolver: bool = False, ui_source_map: bool = False, + pip_custom_flag: Optional[str] = None, ) -> None: logger.info(f"ucc-gen version {__version__} is used") logger.info(f"Python binary name to use: {python_binary_name}") @@ -494,6 +500,7 @@ def generate( os_libraries=global_config.os_libraries, pip_version=pip_version, pip_legacy_resolver=pip_legacy_resolver, + pip_custom_flag=pip_custom_flag, ) except SplunktaucclibNotFound as e: logger.error(str(e)) @@ -561,6 +568,7 @@ def generate( python_binary_name, pip_version=pip_version, pip_legacy_resolver=pip_legacy_resolver, + pip_custom_flag=pip_custom_flag, ) logger.info( f"Installed add-on requirements into {ucc_lib_target} from {source}" @@ -629,15 +637,24 @@ def generate( os.path.abspath(os.path.join(source, os.pardir, "additional_packaging.py")) ): sys.path.insert(0, os.path.abspath(os.path.join(source, os.pardir))) + try: + from additional_packaging import cleanup_output_files + + cleanup_output_files(output_directory, ta_name) + except ImportError: + logger.info( + "additional_packaging.py is present but does not have `cleanup_output_files`. Skipping clean-up." + ) + try: from additional_packaging import additional_packaging additional_packaging(ta_name) - except ImportError as e: - logger.exception( - "additional_packaging.py is present but not importable.", e + except ImportError: + logger.info( + "additional_packaging.py is present but does not have `additional_packaging`. " + "Skipping additional packaging." ) - raise e if global_config: logger.info("Generating OpenAPI file") diff --git a/splunk_add_on_ucc_framework/install_python_libraries.py b/splunk_add_on_ucc_framework/install_python_libraries.py index 305f6d868..fa5e00783 100644 --- a/splunk_add_on_ucc_framework/install_python_libraries.py +++ b/splunk_add_on_ucc_framework/install_python_libraries.py @@ -151,6 +151,7 @@ def install_python_libraries( os_libraries: Optional[List[OSDependentLibraryConfig]] = None, pip_version: str = "latest", pip_legacy_resolver: bool = False, + pip_custom_flag: Optional[str] = None, ) -> None: path_to_requirements_file = os.path.join(source_path, "lib", "requirements.txt") if os.path.isfile(path_to_requirements_file): @@ -163,6 +164,7 @@ def install_python_libraries( installer=python_binary_name, pip_version=pip_version, pip_legacy_resolver=pip_legacy_resolver, + pip_custom_flag=pip_custom_flag, ) if includes_ui: _check_libraries_required_for_ui( @@ -202,6 +204,7 @@ def install_libraries( installer: str, pip_version: str = "latest", pip_legacy_resolver: bool = False, + pip_custom_flag: Optional[str] = None, ) -> None: """ Upgrades `pip` version to the latest one and installs requirements to the @@ -222,13 +225,16 @@ def install_libraries( sys.exit(1) deps_resolver = "--use-deprecated=legacy-resolver " if pip_legacy_resolver else "" + custom_flag = ( + pip_custom_flag + if pip_custom_flag + else "--no-compile --prefer-binary --ignore-installed " + ) pip_install_command = ( f'-r "{requirements_file_path}" ' - f"--no-compile " - f"--prefer-binary " - f"--ignore-installed " f"{deps_resolver}" - f'--target "{installation_path}"' + f'--target "{installation_path}" ' + f"{custom_flag}" ) _pip_install( installer=installer, command=pip_update_command, command_desc="pip upgrade" diff --git a/splunk_add_on_ucc_framework/main.py b/splunk_add_on_ucc_framework/main.py index 39690ed19..65f961016 100644 --- a/splunk_add_on_ucc_framework/main.py +++ b/splunk_add_on_ucc_framework/main.py @@ -130,6 +130,13 @@ def main(argv: Optional[Sequence[str]] = None) -> int: help="Use old pip dependency resolver by adding flag '--use-deprecated=legacy-resolver' " "to pip install command.", ) + build_parser.add_argument( + "--pip-custom-flag", + help="Custom flag that will be add to pip install command", + type=str, + default=False, + required=False, + ) build_parser.add_argument( "--ui-source-map", help="Adds front-end source-map files .js.map", @@ -222,6 +229,7 @@ def main(argv: Optional[Sequence[str]] = None) -> int: pip_version=args.pip_version, pip_legacy_resolver=args.pip_legacy_resolver, ui_source_map=args.ui_source_map, + pip_custom_flag=args.pip_custom_flag, ) if args.command == "package": package.package(path_to_built_addon=args.path, output_directory=args.output) diff --git a/splunk_add_on_ucc_framework/schema/schema.json b/splunk_add_on_ucc_framework/schema/schema.json index 199718351..f2a034e5f 100644 --- a/splunk_add_on_ucc_framework/schema/schema.json +++ b/splunk_add_on_ucc_framework/schema/schema.json @@ -2479,6 +2479,9 @@ }, "hideForPlatform": { "$ref": "#/definitions/HideForPlatform" + }, + "groups": { + "$ref": "#/definitions/Groups" } }, "anyOf": [ diff --git a/tests/smoke/test_ucc_build.py b/tests/smoke/test_ucc_build.py index a1d7fc1d7..22f8de63c 100644 --- a/tests/smoke/test_ucc_build.py +++ b/tests/smoke/test_ucc_build.py @@ -464,8 +464,8 @@ def summarize_types(raw_expected_logs): def test_ucc_generate_with_everything_uccignore(caplog): """ - Checks the functioning of .uccignore present in a repo. - Compare only the files that shouldn't be present in the output directory. + Checks the deprecation warning of .uccignore present in a repo with + its functionality still working. """ with tempfile.TemporaryDirectory() as temp_dir: package_folder = path.join( @@ -476,6 +476,16 @@ def test_ucc_generate_with_everything_uccignore(caplog): "package_global_config_everything_uccignore", "package", ) + # create `.uccignore` temporarily + ucc_file = path.join(path.dirname(package_folder), ".uccignore") + f = open(ucc_file, "w+") + f.write( + """**/**one.py +bin/splunk_ta_uccexample_rh_example_input_two.py +bin/wrong_pattern +""" + ) + f.close() build.generate(source=package_folder, output_directory=temp_dir) expected_warning_msg = ( @@ -492,9 +502,22 @@ def test_ucc_generate_with_everything_uccignore(caplog): removed = set( caplog.text.split("Removed:", 1)[1].split("INFO")[0].strip().split("\n") ) + exp_msg = ( + "The `.uccignore` feature has been deprecated from UCC and is planned to be removed after May 2025. " + "To achieve the similar functionality use additional_packaging.py." + "\nRefer: https://splunk.github.io/addonfactory-ucc-generator/additional_packaging/." + ) + exp_info_msg = ( + "additional_packaging.py is present but does not have `additional_packaging`." + " Skipping additional packaging." + ) + assert exp_msg in caplog.text + assert exp_info_msg in caplog.text assert expected_warning_msg in caplog.text assert edm_paths == removed + # on successful assertion, we delete the file + os.remove(ucc_file) actual_folder = path.join(temp_dir, "Splunk_TA_UCCExample") # when custom files are provided, default files shouldn't be shipped @@ -508,6 +531,36 @@ def test_ucc_generate_with_everything_uccignore(caplog): assert not path.exists(actual_file_path) +def test_ucc_generate_with_everything_cleanup_output_files(): + """ + Checks the functioning of addtional_packaging.py's `cleanup_output_files` present in a repo. + Compares only the files that shouldn't be present in the output directory. + """ + with tempfile.TemporaryDirectory() as temp_dir: + package_folder = path.join( + path.dirname(path.realpath(__file__)), + "..", + "testdata", + "test_addons", + "package_global_config_everything_uccignore", + "package", + ) + build.generate(source=package_folder, output_directory=temp_dir) + + actual_folder = path.join(temp_dir, "Splunk_TA_UCCExample") + # when custom files are provided, default files shouldn't be shipped + files_should_be_absent = [ + ("bin", "example_input_one.py"), + ("bin", "splunk_ta_uccexample_rh_example_input_one.py"), + ("bin", "splunk_ta_uccexample_rh_example_input_two.py"), + ("default", "redundant.conf"), + ("default", "nav", "views", "file_copied_from_source_code.xml"), + ] + for af in files_should_be_absent: + actual_file_path = path.join(actual_folder, *af) + assert not path.exists(actual_file_path) + + def test_ucc_generate_only_one_tab(): package_folder = path.join( path.dirname(path.realpath(__file__)), diff --git a/tests/testdata/expected_addons/expected_output_global_config_everything/.appinspect_api.expect.yaml b/tests/testdata/expected_addons/expected_output_global_config_everything/.appinspect_api.expect.yaml index d160dc003..d57b094a2 100644 --- a/tests/testdata/expected_addons/expected_output_global_config_everything/.appinspect_api.expect.yaml +++ b/tests/testdata/expected_addons/expected_output_global_config_everything/.appinspect_api.expect.yaml @@ -1,4 +1,2 @@ check_for_compiled_python: - comment: 'Expected failure as compiled python file was detected in your build.' -check_for_search_v1_endpoint: - comment: 'The error is generated from splunklib, hence will be fixed once fixed in the library' + comment: 'Expected failure as compiled python file was detected in your build.' \ No newline at end of file diff --git a/tests/testdata/test_addons/package_global_config_everything/globalConfig.json b/tests/testdata/test_addons/package_global_config_everything/globalConfig.json index 89c61d26f..60356791a 100644 --- a/tests/testdata/test_addons/package_global_config_everything/globalConfig.json +++ b/tests/testdata/test_addons/package_global_config_everything/globalConfig.json @@ -474,6 +474,21 @@ } } ], + "groups": [ + { + "label": "Hidden entities", + "fields": [ + "text_field_hidden_for_cloud", + "text_field_hidden_for_enterprise", + "field_no_validators", + "field_no_validators_suppressed" + ], + "options": { + "isExpandable": true, + "expand": false + } + } + ], "title": "Account", "restHandlerModule": "splunk_ta_uccexample_validate_account_rh", "restHandlerClass": "CustomAccountValidator" @@ -1806,10 +1821,10 @@ "meta": { "name": "Splunk_TA_UCCExample", "restRoot": "splunk_ta_uccexample", - "version": "5.51.1+3536793cd", + "version": "5.52.0+70c7e9d6b", "displayName": "Splunk UCC test Add-on", "schemaVersion": "0.0.9", - "_uccVersion": "5.51.1", + "_uccVersion": "5.52.0", "supportedThemes": [ "light", "dark" diff --git a/tests/testdata/test_addons/package_global_config_everything_uccignore/.uccignore b/tests/testdata/test_addons/package_global_config_everything_uccignore/.uccignore deleted file mode 100644 index 9ab92ea97..000000000 --- a/tests/testdata/test_addons/package_global_config_everything_uccignore/.uccignore +++ /dev/null @@ -1,4 +0,0 @@ -**/**one.py - -bin/splunk_ta_uccexample_rh_example_input_two.py -bin/wrong_pattern diff --git a/tests/testdata/test_addons/package_global_config_everything_uccignore/additional_packaging.py b/tests/testdata/test_addons/package_global_config_everything_uccignore/additional_packaging.py new file mode 100644 index 000000000..8af85b880 --- /dev/null +++ b/tests/testdata/test_addons/package_global_config_everything_uccignore/additional_packaging.py @@ -0,0 +1,22 @@ + +from os.path import sep, exists, dirname, realpath, join +from os import remove, system, _exit, WEXITSTATUS + +def cleanup_output_files(output_path: str, ta_name: str) -> None: + """ + prepare a list for the files to be deleted after the source code has been copied to output directory + """ + files_to_delete = [] + files_to_delete.append(sep.join([output_path, ta_name, "default", "redundant.conf"])) + files_to_delete.append(sep.join([output_path, ta_name, "bin", "splunk_ta_uccexample_rh_example_input_two.py"])) + files_to_delete.append(sep.join([output_path, ta_name, "bin", "example_input_one.py"])) + files_to_delete.append(sep.join([output_path, ta_name, "bin", "splunk_ta_uccexample_rh_example_input_one.py"])) + files_to_delete.append(sep.join([output_path, ta_name, "bin", "file_does_not_exist.py"])) + files_to_delete.append(sep.join([output_path, ta_name, "default", "nav", "views", "file_copied_from_source_code.xml"])) + + for delete_file in files_to_delete: + try: + remove(delete_file) + except (FileNotFoundError): + # simply pass if the file doesn't exist + pass diff --git a/tests/testdata/test_addons/package_global_config_everything_uccignore/package/default/nav/views/file_copied_from_source_code.xml b/tests/testdata/test_addons/package_global_config_everything_uccignore/package/default/nav/views/file_copied_from_source_code.xml new file mode 100644 index 000000000..5c26408da --- /dev/null +++ b/tests/testdata/test_addons/package_global_config_everything_uccignore/package/default/nav/views/file_copied_from_source_code.xml @@ -0,0 +1,6 @@ + + World + Python + Hello + Hello World! + \ No newline at end of file diff --git a/tests/testdata/test_addons/package_global_config_everything_uccignore/package/default/redundant.conf b/tests/testdata/test_addons/package_global_config_everything_uccignore/package/default/redundant.conf new file mode 100644 index 000000000..c6c70d719 --- /dev/null +++ b/tests/testdata/test_addons/package_global_config_everything_uccignore/package/default/redundant.conf @@ -0,0 +1,4 @@ +[redundant] +key = value +content_type = json +parser = json \ No newline at end of file diff --git a/tests/unit/test_global_config_update.py b/tests/unit/test_global_config_update.py index 9f2ab16d8..32fe4c091 100644 --- a/tests/unit/test_global_config_update.py +++ b/tests/unit/test_global_config_update.py @@ -11,6 +11,7 @@ _dump_with_migrated_tabs, _dump_with_migrated_entities, _stop_build_on_placeholder_usage, + _dump_enable_from_global_config, ) from splunk_add_on_ucc_framework.entity import IntervalEntity from splunk_add_on_ucc_framework import global_config as global_config_lib @@ -207,3 +208,31 @@ def test_config_validation_when_placeholder_is_present(tmp_path, caplog): expected_schema_version = "0.0.7" assert expected_schema_version == global_config.schema_version assert error_log in caplog.text + + +def test_dump_enable_from_global_config_enable_present(tmp_path, caplog): + tmp_file_gc = tmp_path / "globalConfig.json" + + helpers.copy_testdata_gc_to_tmp_file( + tmp_file_gc, "valid_config_input_with_enable_action.json" + ) + global_config = global_config_lib.GlobalConfig(str(tmp_file_gc)) + expected_schema_version = "0.0.9" + + _dump_enable_from_global_config(global_config) + + assert expected_schema_version == global_config.schema_version + assert "`enable` attribute found in input's page table action." in caplog.text + + +def test_dump_enable_from_global_config_enable_absent(tmp_path, caplog): + tmp_file_gc = tmp_path / "globalConfig.yaml" + + helpers.copy_testdata_gc_to_tmp_file(tmp_file_gc, "valid_config.yaml") + global_config = global_config_lib.GlobalConfig(str(tmp_file_gc)) + expected_schema_version = "0.0.9" + + _dump_enable_from_global_config(global_config) + + assert expected_schema_version == global_config.schema_version + assert caplog.text == "" diff --git a/tests/unit/test_install_python_libraries.py b/tests/unit/test_install_python_libraries.py index f14cc0891..8e2d4972a 100644 --- a/tests/unit/test_install_python_libraries.py +++ b/tests/unit/test_install_python_libraries.py @@ -40,8 +40,8 @@ def test_install_libraries(mock_subprocess_run): expected_install_command = ( 'python3 -m pip install -r "package/lib/requirements.txt"' - " --no-compile --prefer-binary --ignore-installed " - '--target "/path/to/output/addon_name/lib"' + ' --target "/path/to/output/addon_name/lib" ' + "--no-compile --prefer-binary --ignore-installed " ) expected_pip_update_command = "python3 -m pip install --upgrade pip" mock_subprocess_run.assert_has_calls( @@ -413,8 +413,8 @@ def test_install_libraries_custom_pip(mock_subprocess_run): expected_install_command = ( 'python3 -m pip install -r "package/lib/requirements.txt"' - " --no-compile --prefer-binary --ignore-installed " - '--target "/path/to/output/addon_name/lib"' + ' --target "/path/to/output/addon_name/lib" ' + "--no-compile --prefer-binary --ignore-installed " ) expected_pip_update_command = "python3 -m pip install --upgrade pip==21.666.666" mock_subprocess_run.assert_has_calls( @@ -442,8 +442,8 @@ def test_install_libraries_legacy_resolver(mock_subprocess_run): expected_install_command = ( 'python3 -m pip install -r "package/lib/requirements.txt"' - " --no-compile --prefer-binary --ignore-installed " - '--use-deprecated=legacy-resolver --target "/path/to/output/addon_name/lib"' + ' --use-deprecated=legacy-resolver --target "/path/to/output/addon_name/lib" ' + "--no-compile --prefer-binary --ignore-installed " ) expected_pip_update_command = "python3 -m pip install --upgrade pip" mock_subprocess_run.assert_has_calls( @@ -507,3 +507,61 @@ def test_validate_conflicting_paths_empty_list(): def test_is_pip_lib_installed_wrong_arguments(): with pytest.raises(InvalidArguments): _pip_is_lib_installed("i", "t", "l", allow_higher_version=True) + + +@mock.patch("subprocess.run", autospec=True) +def test_install_libraries_pip_custom_flag(mock_subprocess_run): + mock_subprocess_run.return_value = MockSubprocessResult(0) + + install_libraries( + "package/lib/requirements.txt", + "/path/to/output/addon_name/lib", + "python3", + pip_custom_flag="--report path/to/json.json", + ) + + expected_install_command = ( + 'python3 -m pip install -r "package/lib/requirements.txt"' + ' --target "/path/to/output/addon_name/lib" --report path/to/json.json' + ) + expected_pip_update_command = "python3 -m pip install --upgrade pip" + mock_subprocess_run.assert_has_calls( + [ + mock.call( + expected_pip_update_command, shell=True, env=None, capture_output=True + ), + mock.call( + expected_install_command, shell=True, env=None, capture_output=True + ), + ] + ) + + +@mock.patch("subprocess.run", autospec=True) +def test_install_libraries_multiple_pip_custom_flags(mock_subprocess_run): + mock_subprocess_run.return_value = MockSubprocessResult(0) + + install_libraries( + "package/lib/requirements.txt", + "/path/to/output/addon_name/lib", + "python3", + pip_custom_flag="--no-compile --prefer-binary --ignore-installed " + "--report path/to/json.json --progress-bar on --require-hashes", + ) + + expected_install_command = ( + 'python3 -m pip install -r "package/lib/requirements.txt"' + ' --target "/path/to/output/addon_name/lib" --no-compile --prefer-binary --ignore-installed ' + "--report path/to/json.json --progress-bar on --require-hashes" + ) + expected_pip_update_command = "python3 -m pip install --upgrade pip" + mock_subprocess_run.assert_has_calls( + [ + mock.call( + expected_pip_update_command, shell=True, env=None, capture_output=True + ), + mock.call( + expected_install_command, shell=True, env=None, capture_output=True + ), + ] + ) diff --git a/tests/unit/test_main.py b/tests/unit/test_main.py index 0729b1122..1d92297b0 100644 --- a/tests/unit/test_main.py +++ b/tests/unit/test_main.py @@ -19,6 +19,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -33,6 +34,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -47,6 +49,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -61,6 +64,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -75,6 +79,7 @@ "verbose_file_summary_report": True, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -96,6 +101,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -119,6 +125,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -144,6 +151,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -170,6 +178,7 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -197,6 +206,7 @@ "verbose_file_summary_report": True, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -226,6 +236,7 @@ "verbose_file_summary_report": True, "pip_version": "21.0.0", "pip_legacy_resolver": False, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -256,6 +267,7 @@ "verbose_file_summary_report": True, "pip_version": "21.0.0", "pip_legacy_resolver": True, + "pip_custom_flag": False, "ui_source_map": False, }, ), @@ -278,6 +290,32 @@ "verbose_file_summary_report": False, "pip_version": "latest", "pip_legacy_resolver": False, + "pip_custom_flag": False, + "ui_source_map": True, + }, + ), + ( + [ + "--source", + "package", + "--ta-version", + "2.2.0", + "--python-binary-name", + "python.exe", + "--ui-source-map", + "--pip-custom-flag", + "--progress-bar on", + ], + { + "source": "package", + "config_path": None, + "addon_version": "2.2.0", + "output_directory": None, + "python_binary_name": "python.exe", + "verbose_file_summary_report": False, + "pip_version": "latest", + "pip_legacy_resolver": False, + "pip_custom_flag": "--progress-bar on", "ui_source_map": True, }, ), diff --git a/tests/unit/testdata/valid_config_input_with_enable_action.json b/tests/unit/testdata/valid_config_input_with_enable_action.json new file mode 100644 index 000000000..b0b1c1897 --- /dev/null +++ b/tests/unit/testdata/valid_config_input_with_enable_action.json @@ -0,0 +1,107 @@ +{ + "pages": { + "configuration": { + "tabs": [ + { + "type": "LoggingTab" + } + ], + "title": "Configuration", + "description": "Set up your add-on" + }, + "inputs": { + "services": [ + { + "name": "example_input_ten", + "entity": [ + { + "type": "text", + "label": "Name", + "validators": [ + { + "type": "regex", + "errorMsg": "Input Name must begin with a letter and consist exclusively of alphanumeric characters and underscores.", + "pattern": "^[a-zA-Z]\\w*$" + }, + { + "type": "string", + "errorMsg": "Length of input name should be between 1 and 100", + "minLength": 1, + "maxLength": 100 + } + ], + "field": "name", + "help": "A unique name for the data input.", + "required": true + }, + { + "type": "interval", + "field": "interval", + "label": "Interval", + "help": "Time interval of the data input, in seconds.", + "required": true + } + ], + "title": "Example Input Three" + } + ], + "title": "Inputs", + "description": "Manage your data inputs", + "table": { + "actions": [ + "edit", + "delete", + "clone", + "enable" + ], + "header": [ + { + "label": "Name", + "field": "name" + }, + { + "label": "Interval", + "field": "interval" + }, + { + "label": "Index", + "field": "index" + }, + { + "label": "Status", + "field": "disabled" + } + ], + "moreInfo": [ + { + "label": "Name", + "field": "name" + }, + { + "label": "Interval", + "field": "interval" + }, + { + "label": "Index", + "field": "index" + }, + { + "label": "Status", + "field": "disabled", + "mapping": { + "true": "Disabled", + "false": "Enabled" + } + } + ] + } + } + }, + "meta": { + "name": "Splunk_TA_UCCExample", + "restRoot": "splunk_ta_uccexample", + "version": "1.0.0", + "displayName": "Splunk UCC test Add-on", + "schemaVersion": "0.0.8" + } +} \ No newline at end of file diff --git a/ui/src/components/BaseFormView/BaseFormConfigMock.ts b/ui/src/components/BaseFormView/BaseFormConfigMock.ts index c39571777..7571fbdbb 100644 --- a/ui/src/components/BaseFormView/BaseFormConfigMock.ts +++ b/ui/src/components/BaseFormView/BaseFormConfigMock.ts @@ -1,5 +1,6 @@ import { z } from 'zod'; -import { GlobalConfigSchema } from '../../types/globalConfig/globalConfig'; +import { GlobalConfig, GlobalConfigSchema } from '../../types/globalConfig/globalConfig'; +import { AnyOfEntity } from '../../types/globalConfig/entities'; const globalConfigMockCustomControl = { pages: { @@ -174,3 +175,234 @@ const globalConfigMockCustomControl = { export function getGlobalConfigMockCustomControl() { return GlobalConfigSchema.parse(globalConfigMockCustomControl); } + +const EXAMPLE_GROUPS_ENTITIES = [ + { + type: 'text', + label: 'Text 1 Group 2', + field: 'text_field_1_group_2', + required: false, + }, + { + type: 'text', + label: 'Text 2 Group 2', + field: 'text_field_2_group_2', + required: false, + }, + { + type: 'text', + label: 'Text 1 Group 1', + field: 'text_field_1_group_1', + required: false, + }, + { + type: 'text', + label: 'Text 2 Group 1', + field: 'text_field_2_group_1', + required: false, + }, + { + type: 'text', + label: 'Text 1 Group 3', + field: 'text_field_1_group_3', + required: false, + }, + { + type: 'text', + label: 'Text 2 Group 3', + field: 'text_field_2_group_3', + required: false, + }, +] satisfies z.input[]; + +const GROUPS_FOR_EXAMPLE_ENTITIES = [ + { + label: 'Group 1', + fields: ['text_field_1_group_1', 'text_field_2_group_1'], + }, + { + label: 'Group 2', + fields: ['text_field_1_group_2', 'text_field_2_group_2'], + options: { + isExpandable: true, + expand: true, + }, + }, + { + label: 'Group 3', + fields: ['text_field_1_group_3', 'text_field_2_group_3'], + options: { + isExpandable: true, + expand: false, + }, + }, +]; + +const globalConfigMockGroupsForConfigPage = { + pages: { + configuration: { + tabs: [ + { + name: 'account', + table: { + actions: ['edit', 'delete', 'clone'], + header: [ + { + label: 'Name', + field: 'name', + }, + ], + }, + entity: [ + { + type: 'text', + label: 'Name', + validators: [ + { + type: 'regex', + errorMsg: + 'Account Name must begin with a letter and consist exclusively of alphanumeric characters and underscores.', + pattern: '^[a-zA-Z]\\w*$', + }, + ], + field: 'name', + help: 'A unique name for the account.', + required: true, + }, + ...EXAMPLE_GROUPS_ENTITIES, + ], + groups: GROUPS_FOR_EXAMPLE_ENTITIES, + title: 'Accounts', + }, + ], + title: 'Configuration', + description: 'Set up your add-on', + }, + inputs: { + services: [], + title: 'Inputs', + description: 'Manage your data inputs', + table: { + actions: ['edit', 'delete', 'clone'], + header: [ + { + label: 'Name', + field: 'name', + }, + ], + }, + }, + }, + meta: { + name: 'demo_addon_for_splunk', + restRoot: 'demo_addon_for_splunk', + version: '5.31.1R85f0e18e', + displayName: 'Demo Add-on for Splunk', + schemaVersion: '0.0.3', + checkForUpdates: false, + searchViewDefault: false, + }, +} satisfies z.input; + +export function getGlobalConfigMockGroupsForConfigPage(): GlobalConfig { + return GlobalConfigSchema.parse(globalConfigMockGroupsForConfigPage); +} + +const globalConfigMockGroupsForInputPage = { + pages: { + configuration: { + tabs: [ + { + name: 'account', + table: { + actions: ['edit', 'delete', 'clone'], + header: [ + { + label: 'Name', + field: 'name', + }, + ], + }, + entity: [ + { + type: 'text', + label: 'Name', + validators: [ + { + type: 'regex', + errorMsg: + 'Account Name must begin with a letter and consist exclusively of alphanumeric characters and underscores.', + pattern: '^[a-zA-Z]\\w*$', + }, + ], + field: 'name', + help: 'A unique name for the account.', + required: true, + }, + ], + title: 'Accounts', + }, + ], + title: 'Configuration', + description: 'Set up your add-on', + }, + inputs: { + services: [ + { + name: 'demo_input', + entity: [ + { + type: 'text', + label: 'Name', + validators: [ + { + type: 'regex', + errorMsg: + 'Input Name must begin with a letter and consist exclusively of alphanumeric characters and underscores.', + pattern: '^[a-zA-Z]\\w*$', + }, + { + type: 'string', + errorMsg: 'Length of input name should be between 1 and 100', + minLength: 1, + maxLength: 100, + }, + ], + field: 'name', + help: 'A unique name for the data input.', + required: true, + encrypted: false, + }, + ...EXAMPLE_GROUPS_ENTITIES, + ], + groups: GROUPS_FOR_EXAMPLE_ENTITIES, + title: 'demo_input', + }, + ], + title: 'Inputs', + description: 'Manage your data inputs', + table: { + actions: ['edit', 'delete', 'clone'], + header: [ + { + label: 'Name', + field: 'name', + }, + ], + }, + }, + }, + meta: { + name: 'demo_addon_for_splunk', + restRoot: 'demo_addon_for_splunk', + version: '5.31.1R85f0e18e', + displayName: 'Demo Add-on for Splunk', + schemaVersion: '0.0.3', + checkForUpdates: false, + searchViewDefault: false, + }, +} satisfies z.input; + +export function getGlobalConfigMockGroupsFoInputPage(): GlobalConfig { + return GlobalConfigSchema.parse(globalConfigMockGroupsForInputPage); +} diff --git a/ui/src/components/BaseFormView/BaseFormView.test.tsx b/ui/src/components/BaseFormView/BaseFormView.test.tsx index 3c69c0c88..ac05b2ec3 100644 --- a/ui/src/components/BaseFormView/BaseFormView.test.tsx +++ b/ui/src/components/BaseFormView/BaseFormView.test.tsx @@ -1,11 +1,17 @@ import { render, screen } from '@testing-library/react'; import React from 'react'; +import userEvent from '@testing-library/user-event'; + import { getGlobalConfigMock } from '../../mocks/globalConfigMock'; import { setUnifiedConfig } from '../../util/util'; import BaseFormView from './BaseFormView'; import { getBuildDirPath } from '../../util/script'; import mockCustomControlMockForTest from '../CustomControl/CustomControlMockForTest'; -import { getGlobalConfigMockCustomControl } from './BaseFormConfigMock'; +import { + getGlobalConfigMockCustomControl, + getGlobalConfigMockGroupsFoInputPage, + getGlobalConfigMockGroupsForConfigPage, +} from './BaseFormConfigMock'; const handleFormSubmit = jest.fn(); @@ -14,6 +20,22 @@ const SERVICE_NAME = 'account'; const STANZA_NAME = 'stanzaName'; const CUSTOM_MODULE = 'CustomControl'; +const getElementsByGroup = (group: string) => { + const firstField = screen.queryByText(`Text 1 Group ${group}`); + const secondField = screen.queryByText(`Text 2 Group ${group}`); + return { firstField, secondField }; +}; +const verifyDisplayedGroup = (group: string) => { + const { firstField, secondField } = getElementsByGroup(group); + expect(firstField).toBeInTheDocument(); + expect(secondField).toBeInTheDocument(); +}; +const verifyNotDisplayedElement = (group: string) => { + const { firstField, secondField } = getElementsByGroup(group); + expect(firstField).not.toBeInTheDocument(); + expect(secondField).not.toBeInTheDocument(); +}; + it('should render base form correctly with name and File fields', async () => { const mockConfig = getGlobalConfigMock(); setUnifiedConfig(mockConfig); @@ -66,3 +88,61 @@ it('should pass default values to custom component correctly', async () => { expect((customModal as HTMLSelectElement)?.value).toEqual('input_three'); }); + +it.each([ + { + page: 'configuration' as const, + config: getGlobalConfigMockGroupsForConfigPage(), + service: 'account', + }, + { + page: 'inputs' as const, + config: getGlobalConfigMockGroupsFoInputPage(), + service: 'demo_input', + }, +])('entities grouping for page works properly %s', async ({ config, page, service }) => { + setUnifiedConfig(config); + + render( + + ); + const group1Header = await screen.findByText('Group 1', { exact: true }); + + const group2Header = await screen.findByRole('button', { name: 'Group 2' }); + + const group3Header = await screen.findByRole('button', { name: 'Group 3' }); + + verifyDisplayedGroup('1'); + verifyDisplayedGroup('2'); + verifyNotDisplayedElement('3'); // group 3 is not expanded by default + + expect(group3Header).toHaveAttribute('aria-expanded', 'false'); + await userEvent.click(group3Header); + verifyDisplayedGroup('3'); + expect(group3Header).toHaveAttribute('aria-expanded', 'true'); + + await userEvent.click(group1Header); // does not change anything + verifyDisplayedGroup('1'); + + expect(group2Header).toHaveAttribute('aria-expanded', 'true'); + await userEvent.click(group2Header); + expect(group2Header).toHaveAttribute('aria-expanded', 'false'); + + /** + * verifying aria-expanded attribute as in tests + * child elements are not removed from the DOM + * they are removed in browser + * todo: verify behaviour + */ + await userEvent.click(group2Header); + verifyDisplayedGroup('1'); + verifyDisplayedGroup('2'); + verifyDisplayedGroup('3'); // after modifications all groups should be displayed +}); diff --git a/ui/src/components/BaseFormView/BaseFormView.tsx b/ui/src/components/BaseFormView/BaseFormView.tsx index 1a8988b5d..b5189c01e 100644 --- a/ui/src/components/BaseFormView/BaseFormView.tsx +++ b/ui/src/components/BaseFormView/BaseFormView.tsx @@ -44,7 +44,7 @@ import { ChangeRecord, CustomHookClass, EntitiesAllowingModifications, -} from './BaseFormTypes'; +} from '../../types/components/BaseFormTypes'; import { getAllFieldsWithModifications, getModifiedState, @@ -201,6 +201,8 @@ class BaseFormView extends PureComponent { : tab.name === props.stanzaName && props.serviceName === 'settings'; if (flag) { + this.groups = tab.groups; + this.updateGroupEntities(); this.entities = tab.entity; this.options = tab.options; if (props.mode !== 'delete') { diff --git a/ui/src/components/BaseFormView/stories/BaseFormView.stories.tsx b/ui/src/components/BaseFormView/stories/BaseFormView.stories.tsx index f1586e3f5..5fdb655cb 100644 --- a/ui/src/components/BaseFormView/stories/BaseFormView.stories.tsx +++ b/ui/src/components/BaseFormView/stories/BaseFormView.stories.tsx @@ -10,8 +10,12 @@ import { import { setUnifiedConfig } from '../../../util/util'; import { GlobalConfig } from '../../../types/globalConfig/globalConfig'; import { Mode } from '../../../constants/modes'; -import { BaseFormProps } from '../BaseFormTypes'; +import { BaseFormProps } from '../../../types/components/BaseFormTypes'; import { Platforms } from '../../../types/globalConfig/pages'; +import { + getGlobalConfigMockGroupsFoInputPage, + getGlobalConfigMockGroupsForConfigPage, +} from '../BaseFormConfigMock'; interface BaseFormStoriesProps extends BaseFormProps { config: GlobalConfig; @@ -99,3 +103,29 @@ export const OuathBasicCloud: Story = { platform: 'cloud', }, }; + +export const ConfigPageGroups: Story = { + args: { + currentServiceState: {}, + serviceName: 'account', + mode: 'create' as Mode, + page: 'configuration', + stanzaName: 'unknownStanza', + handleFormSubmit: fn(), + config: getGlobalConfigMockGroupsForConfigPage(), + platform: 'cloud', + }, +}; + +export const InputPageGroups: Story = { + args: { + currentServiceState: {}, + serviceName: 'demo_input', + mode: 'create' as Mode, + page: 'inputs', + stanzaName: 'unknownStanza', + handleFormSubmit: fn(), + config: getGlobalConfigMockGroupsFoInputPage(), + platform: 'cloud', + }, +}; diff --git a/ui/src/components/BaseFormView/stories/__images__/BaseFormView-config-page-groups-chromium.png b/ui/src/components/BaseFormView/stories/__images__/BaseFormView-config-page-groups-chromium.png new file mode 100644 index 000000000..4d0987c2f --- /dev/null +++ b/ui/src/components/BaseFormView/stories/__images__/BaseFormView-config-page-groups-chromium.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:223d96d18f83dd38c7a6d9f294f2ef9e630fa7cd8f9744e0e3f40567aecc2b6c +size 19207 diff --git a/ui/src/components/BaseFormView/stories/__images__/BaseFormView-input-page-groups-chromium.png b/ui/src/components/BaseFormView/stories/__images__/BaseFormView-input-page-groups-chromium.png new file mode 100644 index 000000000..41753b649 --- /dev/null +++ b/ui/src/components/BaseFormView/stories/__images__/BaseFormView-input-page-groups-chromium.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7f6105f3ba2361c9f48216a2fe30b2c361d1981e13d378f3144934489d4e4d43 +size 19134 diff --git a/ui/src/components/ControlWrapper/ControlWrapper.tsx b/ui/src/components/ControlWrapper/ControlWrapper.tsx index 4fc0c0cde..6719b6625 100644 --- a/ui/src/components/ControlWrapper/ControlWrapper.tsx +++ b/ui/src/components/ControlWrapper/ControlWrapper.tsx @@ -3,7 +3,7 @@ import ControlGroup from '@splunk/react-ui/ControlGroup'; import styled from 'styled-components'; import MarkdownMessage from '../MarkdownMessage/MarkdownMessage'; import CONTROL_TYPE_MAP, { ComponentTypes } from '../../constants/ControlTypeMap'; -import { AnyEntity, UtilControlWrapper } from '../BaseFormView/BaseFormTypes'; +import { AnyEntity, UtilControlWrapper } from '../../types/components/BaseFormTypes'; import { AcceptableFormValueOrNullish } from '../../types/components/shareableTypes'; import CustomControl from '../CustomControl/CustomControl'; import { Mode } from '../../constants/modes'; diff --git a/ui/src/components/CustomControl/CustomControl.tsx b/ui/src/components/CustomControl/CustomControl.tsx index f2fab8bb0..810c7cb63 100644 --- a/ui/src/components/CustomControl/CustomControl.tsx +++ b/ui/src/components/CustomControl/CustomControl.tsx @@ -3,7 +3,7 @@ import { _ } from '@splunk/ui-utils/i18n'; import { getUnifiedConfigs } from '../../util/util'; import { getBuildDirPath } from '../../util/script'; import { AcceptableFormValueOrNullish } from '../../types/components/shareableTypes'; -import { UtilBaseForm } from '../BaseFormView/BaseFormTypes'; +import { UtilBaseForm } from '../../types/components/BaseFormTypes'; import { GlobalConfig } from '../../types/globalConfig/globalConfig'; import { Mode } from '../../constants/modes'; diff --git a/ui/src/components/CustomControl/CustomControlMockForTest.ts b/ui/src/components/CustomControl/CustomControlMockForTest.ts index 014093379..aea85a060 100644 --- a/ui/src/components/CustomControl/CustomControlMockForTest.ts +++ b/ui/src/components/CustomControl/CustomControlMockForTest.ts @@ -1,7 +1,7 @@ import { Mode } from '../../constants/modes'; import { AcceptableFormValueOrNullish } from '../../types/components/shareableTypes'; import { GlobalConfig } from '../../types/globalConfig/globalConfig'; -import { UtilControlWrapper } from '../BaseFormView/BaseFormTypes'; +import { UtilControlWrapper } from '../../types/components/BaseFormTypes'; export class CustomControlMockForTest { globalConfig: GlobalConfig; diff --git a/ui/src/components/FormModifications/FormModifications.test.tsx b/ui/src/components/FormModifications/FormModifications.test.tsx index de89ebb5d..5a0f21d12 100644 --- a/ui/src/components/FormModifications/FormModifications.test.tsx +++ b/ui/src/components/FormModifications/FormModifications.test.tsx @@ -11,7 +11,7 @@ import { thirdModificationField, } from './TestConfig'; import EntityModal, { EntityModalProps } from '../EntityModal/EntityModal'; -import { EntitiesAllowingModifications } from '../BaseFormView/BaseFormTypes'; +import { EntitiesAllowingModifications } from '../../types/components/BaseFormTypes'; import { invariant } from '../../util/invariant'; const handleRequestClose = jest.fn(); diff --git a/ui/src/components/FormModifications/FormModifications.ts b/ui/src/components/FormModifications/FormModifications.ts index 67117f43d..bace50eaf 100644 --- a/ui/src/components/FormModifications/FormModifications.ts +++ b/ui/src/components/FormModifications/FormModifications.ts @@ -5,7 +5,7 @@ import { BaseFormState, AnyEntity, EntitiesAllowingModifications, -} from '../BaseFormView/BaseFormTypes'; +} from '../../types/components/BaseFormTypes'; import { MarkdownMessageProps } from '../MarkdownMessage/MarkdownMessage'; const VALUE_TO_TRIGGER_UPDATE_FOR_ANY_NOT_LISTED_VALUES = '[[any_other_value]]'; diff --git a/ui/src/components/table/CustomTable.tsx b/ui/src/components/table/CustomTable.tsx index 46cb62390..5ac928783 100644 --- a/ui/src/components/table/CustomTable.tsx +++ b/ui/src/components/table/CustomTable.tsx @@ -76,7 +76,7 @@ const CustomTable: React.FC = ({ : undefined; const { moreInfo, header: headers, actions } = tableConfig; - const headerMapping: Record = {}; + const headerMapping: Record | undefined> = {}; headers.forEach((x) => { headerMapping[x.field] = x.mapping; diff --git a/ui/src/components/table/CustomTableRow.jsx b/ui/src/components/table/CustomTableRow.tsx similarity index 77% rename from ui/src/components/table/CustomTableRow.jsx rename to ui/src/components/table/CustomTableRow.tsx index 5ed7a8ea6..bc4511485 100644 --- a/ui/src/components/table/CustomTableRow.jsx +++ b/ui/src/components/table/CustomTableRow.tsx @@ -1,5 +1,4 @@ -import React, { useCallback } from 'react'; -import PropTypes from 'prop-types'; +import React, { ReactElement, useCallback } from 'react'; import WaitSpinner from '@splunk/react-ui/WaitSpinner'; import Switch from '@splunk/react-ui/Switch'; @@ -16,6 +15,7 @@ import { _ } from '@splunk/ui-utils/i18n'; import CustomTableControl from './CustomTableControl'; import { ActionButtonComponent } from './CustomTableStyle'; import { getTableCellValue } from './table.utils'; +import { RowDataFields } from '../../context/TableContext'; const TableCellWrapper = styled(Table.Cell)` padding: 2px; @@ -30,7 +30,24 @@ const SwitchWrapper = styled.div` } `; -function CustomTableRow(props) { +interface CustomTableRowProps { + row: RowDataFields; + readonly?: boolean; + columns: Array<{ customCell?: { src?: string; type?: string }; field: string }>; + rowActions: string[]; + headerMapping: Record | undefined>; + handleToggleActionClick: (row: RowDataFields) => void; + handleEditActionClick: (row: RowDataFields) => void; + handleCloneActionClick: (row: RowDataFields) => void; + handleDeleteActionClick: (row: RowDataFields) => void; +} + +interface CellHeader { + field: string; + customCell?: { src?: string; type?: string }; +} + +function CustomTableRow(props: CustomTableRowProps) { const { row, columns, @@ -42,7 +59,9 @@ function CustomTableRow(props) { handleDeleteActionClick, } = props; - const getCustomCell = (customRow, header) => + const getCustomCell = (customRow: RowDataFields, header: CellHeader) => + header.customCell?.src && + header.customCell?.type && React.createElement(CustomTableControl, { serviceName: row.serviceName, field: header.field, @@ -52,7 +71,7 @@ function CustomTableRow(props) { }); const rowActionsPrimaryButton = useCallback( - (selectedRow, header) => ( + (selectedRow: RowDataFields, header: CellHeader) => ( {!props.readonly && rowActions.includes('edit') && ( @@ -60,7 +79,7 @@ function CustomTableRow(props) { } + icon={} onClick={() => handleEditActionClick(selectedRow)} className="editBtn" /> @@ -71,7 +90,7 @@ function CustomTableRow(props) { } + icon={} onClick={() => handleCloneActionClick(selectedRow)} className="cloneBtn" /> @@ -84,8 +103,11 @@ function CustomTableRow(props) { )} > } + icon={} to={`/app/search/search?q=search%20index%3D_internal%20source%3D*${selectedRow.name}*`} className="searchBtn" inline={false} @@ -98,7 +120,7 @@ function CustomTableRow(props) { } + icon={} onClick={() => handleDeleteActionClick(selectedRow)} className="deleteBtn" /> @@ -111,15 +133,12 @@ function CustomTableRow(props) { [handleEditActionClick, handleCloneActionClick, handleDeleteActionClick] ); - let statusContent = 'Active'; + let statusContent: string | ReactElement = row.disabled ? 'Inactive' : 'Active'; // eslint-disable-next-line no-underscore-dangle if (row.__toggleShowSpinner) { statusContent = ; - } else if (row.disabled) { - statusContent = - headerMapping?.disabled && headerMapping.disabled[row.disabled] - ? headerMapping.disabled[row.disabled] - : 'Inactive'; + } else if (headerMapping.disabled?.[String(row.disabled)]) { + statusContent = headerMapping.disabled[String(row.disabled)]; } // Fix set of props are passed to Table.Row element @@ -127,15 +146,16 @@ function CustomTableRow(props) { {columns && columns.length && columns.map((header) => { - let cellHTML = ''; + let cellHTML: string | ReactElement = ''; if (header.customCell && header.customCell.src) { cellHTML = ( - {getCustomCell(row, header)} + {header.customCell && getCustomCell(row, header)} ); } else if (header.field === 'disabled') { @@ -147,8 +167,10 @@ function CustomTableRow(props) { value={row.disabled} onClick={() => handleToggleActionClick(row)} selected={!row.disabled} - // eslint-disable-next-line no-underscore-dangle - disabled={row.__toggleShowSpinner || props.readonly} + disabled={ + // eslint-disable-next-line no-underscore-dangle + Boolean(row.__toggleShowSpinner) || props.readonly + } appearance="toggle" className="toggle_switch" selectedLabel={_( @@ -185,16 +207,4 @@ function CustomTableRow(props) { ); } -CustomTableRow.propTypes = { - row: PropTypes.any, - readonly: PropTypes.bool, - columns: PropTypes.array, - rowActions: PropTypes.array, - headerMapping: PropTypes.object, - handleToggleActionClick: PropTypes.func, - handleEditActionClick: PropTypes.func, - handleCloneActionClick: PropTypes.func, - handleDeleteActionClick: PropTypes.func, -}; - export default React.memo(CustomTableRow); diff --git a/ui/src/components/table/stories/TableWrapper.stories.tsx b/ui/src/components/table/stories/TableWrapper.stories.tsx index ca637108d..b942c5419 100644 --- a/ui/src/components/table/stories/TableWrapper.stories.tsx +++ b/ui/src/components/table/stories/TableWrapper.stories.tsx @@ -5,7 +5,11 @@ import { fn } from '@storybook/test'; import { setUnifiedConfig } from '../../../util/util'; import { GlobalConfig } from '../../../types/globalConfig/globalConfig'; import TableWrapper, { ITableWrapperProps } from '../TableWrapper'; -import { getSimpleConfig } from './configMockups'; +import { + getSimpleConfig, + getSimpleConfigStylePage, + getSimpleConfigWithMapping, +} from './configMockups'; import { TableContextProvider } from '../../../context/TableContext'; import { ServerHandlers } from './rowDataMockup'; @@ -43,3 +47,35 @@ export const OuathBasic: Story = { }, }, }; + +export const SimpleTableStylePage: Story = { + args: { + page: 'inputs', + serviceName: 'example_input_one', + handleRequestModalOpen: fn(), + handleOpenPageStyleDialog: fn(), + displayActionBtnAllRows: false, + config: getSimpleConfigStylePage() as GlobalConfig, + }, + parameters: { + msw: { + handlers: ServerHandlers, + }, + }, +}; + +export const SimpleConfigWithStatusMapped: Story = { + args: { + page: 'configuration', + serviceName: 'account', + handleRequestModalOpen: fn(), + handleOpenPageStyleDialog: fn(), + displayActionBtnAllRows: false, + config: getSimpleConfigWithMapping() as GlobalConfig, + }, + parameters: { + msw: { + handlers: ServerHandlers, + }, + }, +}; diff --git a/ui/src/components/table/stories/__images__/TableWrapper-simple-config-with-status-mapped-chromium.png b/ui/src/components/table/stories/__images__/TableWrapper-simple-config-with-status-mapped-chromium.png new file mode 100644 index 000000000..4bd5994dc --- /dev/null +++ b/ui/src/components/table/stories/__images__/TableWrapper-simple-config-with-status-mapped-chromium.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6b17039340782e2df7bad9f5c5c7f982c4622f7543e4a310985cb4d48a8238a +size 53330 diff --git a/ui/src/components/table/stories/__images__/TableWrapper-simple-table-style-page-chromium.png b/ui/src/components/table/stories/__images__/TableWrapper-simple-table-style-page-chromium.png new file mode 100644 index 000000000..395cd71e0 --- /dev/null +++ b/ui/src/components/table/stories/__images__/TableWrapper-simple-table-style-page-chromium.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27fb19e29c6a81b6fb472fc5a733c523584efb42170ff491a3bac9b401f6211d +size 47044 diff --git a/ui/src/components/table/stories/configMockups.ts b/ui/src/components/table/stories/configMockups.ts index 50112490a..f92c8a354 100644 --- a/ui/src/components/table/stories/configMockups.ts +++ b/ui/src/components/table/stories/configMockups.ts @@ -139,6 +139,14 @@ export const TABLE_CONFIG_WITH_MAPPING = { abcd: 'z=abcd', }, }, + { + field: 'disabled', + label: 'Field Status', + mapping: { + false: 'Enabled Field', + true: 'Disabled Field', + }, + }, ], }, entity: [ @@ -242,3 +250,129 @@ export const TABLE_CONFIG_WITH_MAPPING = { schemaVersion: '0.0.3', }, } satisfies GlobalConfig; + +export const getSimpleConfigWithMapping = () => { + const configCp = JSON.parse(JSON.stringify(TABLE_CONFIG_WITH_MAPPING)); + return configCp; +}; + +export const SIMPLE_TABLE_MOCK_DATA_STYLE_PAGE = { + pages: { + configuration: { + tabs: [ + { + name: 'account', + table: { + actions: ['edit', 'delete', 'clone'], + header: [ + { + label: 'Name', + field: 'name', + }, + ], + }, + entity: [ + { + type: 'text', + label: 'Name', + validators: [ + { + type: 'string', + errorMsg: 'Length of ID should be between 1 and 50', + minLength: 1, + maxLength: 50, + }, + { + type: 'regex', + errorMsg: + 'Name must begin with a letter and consist exclusively of alphanumeric characters and underscores.', + pattern: '^[a-zA-Z]\\w*$', + }, + ], + field: 'name', + help: 'Enter a unique name for this account.', + required: true, + }, + ], + title: 'Account', + restHandlerModule: 'splunk_ta_uccexample_validate_account_rh', + restHandlerClass: 'CustomAccountValidator', + }, + ], + title: 'Configuration', + description: 'Set up your add-on', + }, + inputs: { + services: [ + { + name: 'example_input_one', + entity: [ + { + type: 'text', + label: 'Name', + validators: [ + { + type: 'regex', + errorMsg: + 'Input Name must begin with a letter and consist exclusively of alphanumeric characters and underscores.', + pattern: '^[a-zA-Z]\\w*$', + }, + { + type: 'string', + errorMsg: 'Length of input name should be between 1 and 100', + minLength: 1, + maxLength: 100, + }, + ], + field: 'name', + help: 'A unique name for the data input.', + required: true, + }, + { + type: 'checkbox', + label: 'Example Checkbox', + field: 'input_one_checkbox', + help: 'This is an example checkbox for the input one entity', + defaultValue: true, + }, + ], + title: 'Example Input One', + style: 'page', + }, + ], + title: 'Inputs', + description: 'Manage your data inputs', + table: { + actions: ['edit', 'delete', 'search', 'clone'], + header: [ + { + label: 'Name', + field: 'name', + }, + { + label: 'Input Status', + field: 'disabled', + }, + ], + moreInfo: [ + { + label: 'Name', + field: 'name', + }, + ], + }, + }, + }, + meta: { + name: 'Splunk_TA_UCCExample', + restRoot: 'splunk_ta_uccexample', + version: '5.41.0R9c5fbfe0', + displayName: 'Splunk UCC test Add-on', + schemaVersion: '0.0.3', + }, +} satisfies GlobalConfig; + +export const getSimpleConfigStylePage = () => { + const configCp = JSON.parse(JSON.stringify(SIMPLE_TABLE_MOCK_DATA_STYLE_PAGE)); + return configCp; +}; diff --git a/ui/src/components/table/stories/rowDataMockup.ts b/ui/src/components/table/stories/rowDataMockup.ts index 0a398aa9d..f36b58b08 100644 --- a/ui/src/components/table/stories/rowDataMockup.ts +++ b/ui/src/components/table/stories/rowDataMockup.ts @@ -338,7 +338,7 @@ export const ROW_DATA = [ account_radio: '1', auth_type: 'basic', custom_endpoint: 'login.example.com', - disabled: false, + disabled: true, 'eai:acl': null, 'eai:appName': 'Splunk_TA_UCCExample', 'eai:userName': 'nobody', @@ -382,7 +382,7 @@ export const ROW_DATA = [ account_radio: '1', auth_type: 'basic', custom_endpoint: 'login.example.com', - disabled: false, + disabled: true, 'eai:acl': null, 'eai:appName': 'Splunk_TA_UCCExample', 'eai:userName': 'nobody', @@ -407,4 +407,7 @@ export const ServerHandlers = [ http.get(`/servicesNS/nobody/-/splunk_ta_uccexample_account`, () => HttpResponse.json(MockRowData) ), + http.get('/servicesNS/nobody/-/splunk_ta_uccexample_example_input_one', () => + HttpResponse.json(MockRowData) + ), ]; diff --git a/ui/src/components/table/table.utils.ts b/ui/src/components/table/table.utils.ts index ea0b1633f..e94ff837b 100644 --- a/ui/src/components/table/table.utils.ts +++ b/ui/src/components/table/table.utils.ts @@ -9,7 +9,7 @@ export function isReadonlyRow(readonlyFieldId: string | undefined, row: Acceptab export function getTableCellValue( row: AcceptableFormRecord, field: string, - mapping: Record + mapping?: Record ) { const value = row[field]; const valueIsEmpty = value === null || value === undefined || value === ''; diff --git a/ui/src/components/table/tests/CustomTableRow.test.tsx b/ui/src/components/table/tests/CustomTableRow.test.tsx new file mode 100644 index 000000000..102e279f8 --- /dev/null +++ b/ui/src/components/table/tests/CustomTableRow.test.tsx @@ -0,0 +1,85 @@ +import { render, screen, within } from '@testing-library/react'; +import React from 'react'; + +import { BrowserRouter } from 'react-router-dom'; +import { http, HttpResponse } from 'msw'; +import { TableContextProvider } from '../../../context/TableContext'; +import { server } from '../../../mocks/server'; +import { setUnifiedConfig } from '../../../util/util'; +import { MockRowData } from '../stories/rowDataMockup'; +import TableWrapper, { ITableWrapperProps } from '../TableWrapper'; +import { getSimpleConfigStylePage } from '../stories/configMockups'; + +const handleRequestModalOpen = jest.fn(); +const handleOpenPageStyleDialog = jest.fn(); + +beforeEach(() => { + const props = { + page: 'inputs', + serviceName: 'example_input_one', + handleRequestModalOpen, + handleOpenPageStyleDialog, + displayActionBtnAllRows: false, + } satisfies ITableWrapperProps; + + server.use( + http.get('/servicesNS/nobody/-/splunk_ta_uccexample_example_input_one', () => + HttpResponse.json(MockRowData) + ) + ); + + setUnifiedConfig(getSimpleConfigStylePage()); + + render( + + + , + { wrapper: BrowserRouter } + ); +}); + +it('Render action icons correctly', async () => { + const allEditButtons = await screen.findAllByRole('button', { name: /edit/i }); + expect(allEditButtons).toHaveLength(9); + const allDeleteBtns = screen.getAllByRole('button', { name: /delete/i }); + expect(allDeleteBtns).toHaveLength(9); + const allCloneButtons = screen.getAllByRole('button', { name: /clone/i }); + expect(allCloneButtons).toHaveLength(9); + const allSearchButtons = screen.getAllByRole('link', { + name: /Go to search for events associated with/i, + }); + expect(allSearchButtons).toHaveLength(9); +}); + +it('Correctly call action handlers for page dialog', async () => { + (await screen.findAllByRole('button', { name: /edit/i }))[0].click(); + + expect(handleOpenPageStyleDialog).toHaveBeenCalledWith(expect.objectContaining({}), 'edit'); + + screen.getAllByRole('button', { name: /clone/i })[0].click(); + + expect(handleOpenPageStyleDialog).toHaveBeenNthCalledWith( + 2, + expect.objectContaining({}), + 'clone' + ); +}); + +it('Correctly render modal for delete action click', async () => { + // Clicking delete renders modal + (await screen.findAllByRole('button', { name: /delete/i }))[0].click(); + + expect(await screen.findByRole('dialog')).toHaveTextContent('Delete Confirmation'); +}); + +it('Correctly render status labels with default values', async () => { + const active = MockRowData.entry.find((entry) => entry.content.disabled === false); + const activeRow = await screen.findByLabelText(`row-${active?.name}`); + const statusCell = within(activeRow).getByTestId('status'); + expect(statusCell).toHaveTextContent('Active'); + + const inactive = MockRowData.entry.find((entry) => entry.content.disabled === true); + const inactiveRow = await screen.findByLabelText(`row-${inactive?.name}`); + const inactiveStatusCell = within(inactiveRow).getByTestId('status'); + expect(inactiveStatusCell).toHaveTextContent('Inactive'); +}); diff --git a/ui/src/components/table/tests/TableWrapper.test.tsx b/ui/src/components/table/tests/TableWrapper.test.tsx index f2c112e33..df1d27445 100644 --- a/ui/src/components/table/tests/TableWrapper.test.tsx +++ b/ui/src/components/table/tests/TableWrapper.test.tsx @@ -1,4 +1,4 @@ -import { render, screen } from '@testing-library/react'; +import { render, screen, within } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import React from 'react'; import { http, HttpResponse } from 'msw'; @@ -8,7 +8,7 @@ import TableWrapper, { ITableWrapperProps } from '../TableWrapper'; import { server } from '../../../mocks/server'; import { TableContextProvider } from '../../../context/TableContext'; import { setUnifiedConfig } from '../../../util/util'; -import { SIMPLE_NAME_TABLE_MOCK_DATA, TABLE_CONFIG_WITH_MAPPING } from '../stories/configMockups'; +import { getSimpleConfigWithMapping, SIMPLE_NAME_TABLE_MOCK_DATA } from '../stories/configMockups'; jest.mock('immutability-helper'); @@ -79,7 +79,7 @@ it('sort items after filtering', async () => { ) ); - setUnifiedConfig(TABLE_CONFIG_WITH_MAPPING); + setUnifiedConfig(getSimpleConfigWithMapping()); render( @@ -148,3 +148,38 @@ it('sort items after filtering', async () => { ] `); }); + +it('Correctly render status labels with mapped values', async () => { + const props = { + page: 'configuration', + serviceName: 'account', + handleRequestModalOpen, + handleOpenPageStyleDialog, + displayActionBtnAllRows: false, + } satisfies ITableWrapperProps; + + server.use( + http.get('/servicesNS/nobody/-/splunk_ta_uccexample_account', () => + HttpResponse.json(MockRowData) + ) + ); + + setUnifiedConfig(getSimpleConfigWithMapping()); + + render( + + + , + { wrapper: BrowserRouter } + ); + + const active = MockRowData.entry.find((entry) => entry.content.disabled === false); + const activeRow = await screen.findByLabelText(`row-${active?.name}`); + const statusCell = within(activeRow).getByTestId('status'); + expect(statusCell).toHaveTextContent('Enabled Field'); + + const inactive = MockRowData.entry.find((entry) => entry.content.disabled === true); + const inActiveRow = await screen.findByLabelText(`row-${inactive?.name}`); + const inActiveStatusCell = within(inActiveRow).getByTestId('status'); + expect(inActiveStatusCell).toHaveTextContent('Disabled Field'); +}); diff --git a/ui/src/hooks/usePlatform.ts b/ui/src/hooks/usePlatform.ts index 40954830f..16fa55c9f 100644 --- a/ui/src/hooks/usePlatform.ts +++ b/ui/src/hooks/usePlatform.ts @@ -4,7 +4,7 @@ import SearchJob from '@splunk/search-job'; import { Platforms } from '../types/globalConfig/pages'; import { GlobalConfig } from '../types/globalConfig/globalConfig'; import { StandardPages } from '../types/components/shareableTypes'; -import { AnyEntity } from '../components/BaseFormView/BaseFormTypes'; +import { AnyEntity } from '../types/components/BaseFormTypes'; const checkIfHideInAnyEntity = (entities: AnyEntity[]): boolean => { const isUsed = entities.find((entity) => { diff --git a/ui/src/components/BaseFormView/BaseFormTypes.ts b/ui/src/types/components/BaseFormTypes.ts similarity index 95% rename from ui/src/components/BaseFormView/BaseFormTypes.ts rename to ui/src/types/components/BaseFormTypes.ts index 7b75a4638..f12af7687 100644 --- a/ui/src/components/BaseFormView/BaseFormTypes.ts +++ b/ui/src/types/components/BaseFormTypes.ts @@ -4,8 +4,8 @@ import { AcceptableFormValueOrNull, AcceptableFormValueOrNullish, StandardPages, -} from '../../types/components/shareableTypes'; -import { MarkdownMessageProps } from '../MarkdownMessage/MarkdownMessage'; +} from './shareableTypes'; +import { MarkdownMessageProps } from '../../components/MarkdownMessage/MarkdownMessage'; import { AnyOfEntity, CheckboxEntity, @@ -16,8 +16,8 @@ import { SingleSelectEntity, TextAreaEntity, TextEntity, -} from '../../types/globalConfig/entities'; -import { GlobalConfig } from '../../types/globalConfig/globalConfig'; +} from '../globalConfig/entities'; +import { GlobalConfig } from '../globalConfig/globalConfig'; import { PageContextProviderType } from '../../context/PageContext'; export type CurrentBaseFormInput = diff --git a/ui/src/types/globalConfig/pages.ts b/ui/src/types/globalConfig/pages.ts index 47659578c..b8539d2e1 100644 --- a/ui/src/types/globalConfig/pages.ts +++ b/ui/src/types/globalConfig/pages.ts @@ -44,6 +44,21 @@ const WarningSchema = z }) .optional(); +const GroupsSchema = z + .array( + z.object({ + options: z + .object({ + isExpandable: z.boolean().optional(), + expand: z.boolean().optional(), + }) + .optional(), + label: z.string(), + fields: z.array(z.string()), + }) + ) + .optional(); + export const TabSchema = z.object({ entity: z.array(AnyOfEntity).optional(), name: z.string(), @@ -61,23 +76,9 @@ export const TabSchema = z.object({ customTab: z.record(z.any()).optional(), warning: WarningSchema, hideForPlatform: z.enum(['cloud', 'enterprise']).optional(), + groups: GroupsSchema, }); -const GroupsSchema = z - .array( - z.object({ - options: z - .object({ - isExpandable: z.boolean().optional(), - expand: z.boolean().optional(), - }) - .optional(), - label: z.string(), - fields: z.array(z.string()), - }) - ) - .optional(); - export const TableLessServiceSchema = z.object({ name: z.string(), title: z.string(),