diff --git a/distribution/src/assembly/source-assembly.xml b/distribution/src/assembly/source-assembly.xml index 01edf601384c..eeda995ebf2e 100644 --- a/distribution/src/assembly/source-assembly.xml +++ b/distribution/src/assembly/source-assembly.xml @@ -93,7 +93,6 @@ web-console/node/** web-console/resources/** web-console/public/** - web-console/lib/*.css web-console/coordinator-console/** web-console/pages/** web-console/index.html diff --git a/licenses.yaml b/licenses.yaml index d378875dab1f..2f212633a357 100644 --- a/licenses.yaml +++ b/licenses.yaml @@ -5410,6 +5410,66 @@ version: 6.3.6 --- +name: "@codemirror/autocomplete" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 6.20.3 +license_file_path: licenses/bin/@codemirror-autocomplete.MIT + +--- + +name: "@codemirror/commands" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 6.11.1 +license_file_path: licenses/bin/@codemirror-commands.MIT + +--- + +name: "@codemirror/language" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 6.12.4 +license_file_path: licenses/bin/@codemirror-language.MIT + +--- + +name: "@codemirror/search" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 6.7.2 +license_file_path: licenses/bin/@codemirror-search.MIT + +--- + +name: "@codemirror/state" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 6.7.6 +license_file_path: licenses/bin/@codemirror-state.MIT + +--- + +name: "@codemirror/view" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 6.43.13 +license_file_path: licenses/bin/@codemirror-view.MIT + +--- + name: "@emotion/babel-plugin" license_category: binary module: web-console @@ -5649,6 +5709,46 @@ license_file_path: licenses/bin/@jridgewell-trace-mapping.MIT --- +name: "@lezer/common" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 1.5.3 +license_file_path: licenses/bin/@lezer-common.MIT + +--- + +name: "@lezer/highlight" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 1.2.5 +license_file_path: licenses/bin/@lezer-highlight.MIT + +--- + +name: "@lezer/lr" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 1.4.10 +license_file_path: licenses/bin/@lezer-lr.MIT + +--- + +name: "@marijn/find-cluster-break" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 1.0.4 +license_file_path: licenses/bin/@marijn-find-cluster-break.MIT + +--- + name: "@popperjs/core" license_category: binary module: web-console @@ -5728,16 +5828,6 @@ license_file_path: licenses/bin/@types-react.MIT --- -name: "ace-builds" -license_category: binary -module: web-console -license_name: BSD-3-Clause License -copyright: Ajax.org B.V. -version: 1.44.0 -license_file_path: licenses/bin/ace-builds.BSD3 - ---- - name: "agent-base" license_category: binary module: web-console @@ -5907,6 +5997,16 @@ license_file_path: licenses/bin/cosmiconfig.MIT --- +name: "crelt" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 1.0.7 +license_file_path: licenses/bin/crelt.MIT + +--- + name: "csstype" license_category: binary module: web-console @@ -6087,15 +6187,6 @@ license_file_path: licenses/bin/delayed-stream.MIT --- -name: "diff-match-patch" -license_category: binary -module: web-console -license_name: Apache License version 2.0 -copyright: Google -version: 1.0.5 - ---- - name: "diff" license_category: binary module: web-console @@ -6214,16 +6305,6 @@ license_file_path: licenses/bin/escape-string-regexp.MIT --- -name: "fast-equals" -license_category: binary -module: web-console -license_name: MIT License -copyright: Tony Quetano -version: 5.4.3 -license_file_path: licenses/bin/fast-equals.MIT - ---- - name: "file-saver" license_category: binary module: web-console @@ -6723,16 +6804,6 @@ license_file_path: licenses/bin/proxy-from-env.MIT --- -name: "react-ace" -license_category: binary -module: web-console -license_name: MIT License -copyright: James Hrisho -version: 15.0.0 -license_file_path: licenses/bin/react-ace.MIT - ---- - name: "react-day-picker" license_category: binary module: web-console @@ -6903,6 +6974,16 @@ license_file_path: licenses/bin/source-map.BSD3 --- +name: "style-mod" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 4.1.4 +license_file_path: licenses/bin/style-mod.MIT + +--- + name: "stylis" license_category: binary module: web-console @@ -6983,6 +7064,16 @@ license_file_path: licenses/bin/uuid.MIT --- +name: "w3c-keyname" +license_category: binary +module: web-console +license_name: MIT License +copyright: Marijn Haverbeke +version: 2.2.8 +license_file_path: licenses/bin/w3c-keyname.MIT + +--- + name: "warning" license_category: binary module: web-console diff --git a/licenses/bin/@codemirror-autocomplete.MIT b/licenses/bin/@codemirror-autocomplete.MIT new file mode 100644 index 000000000000..9a91f48619f4 --- /dev/null +++ b/licenses/bin/@codemirror-autocomplete.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018-2021 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@codemirror-commands.MIT b/licenses/bin/@codemirror-commands.MIT new file mode 100644 index 000000000000..9a91f48619f4 --- /dev/null +++ b/licenses/bin/@codemirror-commands.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018-2021 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@codemirror-language.MIT b/licenses/bin/@codemirror-language.MIT new file mode 100644 index 000000000000..9a91f48619f4 --- /dev/null +++ b/licenses/bin/@codemirror-language.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018-2021 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@codemirror-search.MIT b/licenses/bin/@codemirror-search.MIT new file mode 100644 index 000000000000..9a91f48619f4 --- /dev/null +++ b/licenses/bin/@codemirror-search.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018-2021 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@codemirror-state.MIT b/licenses/bin/@codemirror-state.MIT new file mode 100644 index 000000000000..9a91f48619f4 --- /dev/null +++ b/licenses/bin/@codemirror-state.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018-2021 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@codemirror-view.MIT b/licenses/bin/@codemirror-view.MIT new file mode 100644 index 000000000000..9a91f48619f4 --- /dev/null +++ b/licenses/bin/@codemirror-view.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018-2021 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@lezer-common.MIT b/licenses/bin/@lezer-common.MIT new file mode 100644 index 000000000000..c21df7e44f0d --- /dev/null +++ b/licenses/bin/@lezer-common.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@lezer-highlight.MIT b/licenses/bin/@lezer-highlight.MIT new file mode 100644 index 000000000000..c21df7e44f0d --- /dev/null +++ b/licenses/bin/@lezer-highlight.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/@lezer-lr.MIT b/licenses/bin/@lezer-lr.MIT new file mode 100644 index 000000000000..c21df7e44f0d --- /dev/null +++ b/licenses/bin/@lezer-lr.MIT @@ -0,0 +1,21 @@ +MIT License + +Copyright (C) 2018 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/fast-equals.MIT b/licenses/bin/@marijn-find-cluster-break.MIT similarity index 86% rename from licenses/bin/fast-equals.MIT rename to licenses/bin/@marijn-find-cluster-break.MIT index a90404fced8f..0f141f5d1c2e 100644 --- a/licenses/bin/fast-equals.MIT +++ b/licenses/bin/@marijn-find-cluster-break.MIT @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Tony Quetano +Copyright (C) 2024 by Marijn Haverbeke Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,13 +9,13 @@ 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. diff --git a/licenses/bin/ace-builds.BSD3 b/licenses/bin/ace-builds.BSD3 deleted file mode 100644 index 4760be2a6220..000000000000 --- a/licenses/bin/ace-builds.BSD3 +++ /dev/null @@ -1,24 +0,0 @@ -Copyright (c) 2010, Ajax.org B.V. -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of Ajax.org B.V. nor the - names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. 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. diff --git a/licenses/bin/react-ace.MIT b/licenses/bin/crelt.MIT similarity index 86% rename from licenses/bin/react-ace.MIT rename to licenses/bin/crelt.MIT index 3010ee6d9234..c5958659813e 100644 --- a/licenses/bin/react-ace.MIT +++ b/licenses/bin/crelt.MIT @@ -1,6 +1,4 @@ -The MIT License (MIT) - -Copyright (c) 2014 James Hrisho +Copyright (C) 2020 by Marijn Haverbeke Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -9,14 +7,13 @@ 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. diff --git a/licenses/bin/style-mod.MIT b/licenses/bin/style-mod.MIT new file mode 100644 index 000000000000..f1f221a6053e --- /dev/null +++ b/licenses/bin/style-mod.MIT @@ -0,0 +1,19 @@ +Copyright (C) 2018 by Marijn Haverbeke and others + +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. diff --git a/licenses/bin/w3c-keyname.MIT b/licenses/bin/w3c-keyname.MIT new file mode 100644 index 000000000000..17da88ae4850 --- /dev/null +++ b/licenses/bin/w3c-keyname.MIT @@ -0,0 +1,19 @@ +Copyright (C) 2016 by Marijn Haverbeke and others + +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. diff --git a/pom.xml b/pom.xml index 46cd05e6cd06..3a2c3318e5ad 100644 --- a/pom.xml +++ b/pom.xml @@ -2419,6 +2419,7 @@ .asf.yaml **/dependency-reduced-pom.xml **/.editorconfig + **/.node-version **/node_modules/** **/public/** **/hadoop.indexer.libs.version diff --git a/web-console/.gitignore b/web-console/.gitignore index e82794607952..940182a3e402 100644 --- a/web-console/.gitignore +++ b/web-console/.gitignore @@ -3,16 +3,15 @@ node_modules/ resources/ public/ private/ -lib/*.css coverage/ .claude/ -CLAUDE.md coordinator-console/ pages/ /index.html -lib/sql-docs.* +# Generated by script/create-sql-docs.mjs +src/editor-languages/dsql-docs.ts .tscache tscommand-*.tmp.txt @@ -22,3 +21,7 @@ licenses.json # Screenshots the e2e tests write on failure /*.jpeg + +# Generated by script/build-grammars.mjs +src/editor-languages/*.parser.ts +src/editor-languages/*.parser.terms.ts diff --git a/web-console/.node-version b/web-console/.node-version new file mode 100644 index 000000000000..df6ae3370f9f --- /dev/null +++ b/web-console/.node-version @@ -0,0 +1 @@ +24.21.0 diff --git a/web-console/AGENTS.md b/web-console/AGENTS.md new file mode 100644 index 000000000000..ef2cf1821f34 --- /dev/null +++ b/web-console/AGENTS.md @@ -0,0 +1,104 @@ + + +# AGENTS.md + +The Apache Druid web console: a React + TypeScript single page app built with Blueprint.js, served by the Druid router. +`README.md` has the setup and the directory layout. + +## Commands + +- **Node** is pinned in `.node-version` and installed with mise (`mise install`). Don't change the global Node version. +- **Generated sources**: `src/editor-languages/dsql-docs.ts` and `src/editor-languages/*.parser*.ts` are generated and gitignored. + `npm run compile` (`script/build`) makes them, and only rebuilds what is out of date. Run it after a fresh clone, after + changing a `.grammar` file or the SQL docs, or when typecheck can't find those files. Without + `public/web-console-.js` it also builds the whole console bundle, which is slow. +- **Dev server**: `npm start` serves on http://localhost:18081 and proxies API calls to Druid on `localhost:8888` + (`druid_host=host:port npm start` for another one). Agents run their own on :18082 instead, see below. Views are + hash routes, like `/unified-console.html#workbench`. +- **Checks**: + - `npx jest src/path/to/file.spec.ts` runs some specs (add `-u` to update their snapshots), `npm run jest` all of + them. + - `npm run typecheck`, `npm run eslint`, `npm run sasslint`, `npm run prettify-check`. + - `npm run test-unit` runs everything above (and the generators) without building the bundle. `npm test` builds the + bundle first. + - `npm run autofix` fixes ESLint, stylelint and Prettier issues. +- **End-to-end tests** (`e2e-tests/`, Playwright) need a running Druid: `script/druid build && script/druid start`, + then `npm run test-e2e`. See the README for running one test or with a visible browser, and below for running them + against your own changes. + +## Developing against a running Druid + +- **Druid on :8888**: expect an up to date Druid (a cluster built with all the relevant changes) to be running on + `localhost:8888`. Its router serves the console that was bundled when Druid was built, not the code in the working + tree. +- **Your own dev server on :18082**: the user likely has their own dev server on :18081, so don't use, restart or stop + it. Start one you manage on :18082 with `npx webpack serve --port 18082 --no-open` (it proxies to :8888 like + `npm start`), wait for `compiled successfully`, and note its PID. When done, stop only the processes you started + (`npx` spawns `npm exec` and then `webpack`, so stop the children too). +- **End-to-end tests against your changes**: `DRUID_E2E_TEST_UNIFIED_CONSOLE_PORT=18082 npm run test-e2e`. Without + it the tests run against :8888 and so test the console bundled with Druid, not your changes. The full suite takes + several minutes and prints a lot, so send its output to a file. +- **Comparing with :8888**: it is always fine to open the console on :18082 and on :8888 in a browser and compare them, + to check that something you don't expect to change has stayed the same. + +## Where things are + +- `src/views/` - one folder per top-level view (`workbench-view` is the SQL editor, `explore-view`, + `load-data-view`, `datasources-view`, ...), `src/dialogs/`, `src/components/` - the UI. +- `src/druid-models/` - TypeScript models of Druid concepts (ingestion specs, tasks, queries) and their `AutoForm` + field definitions and JSON completions. +- `src/singletons/` - `Api.instance` (the axios client for Druid, which turns error responses into readable + messages), `AppToaster`, caches. `src/helpers/capabilities.ts` - what the cluster supports (SQL, proxy, ...). +- `src/utils/` - general helpers, `QueryManager` (async work with loading, error and cancellation states; use it from + components with `useQueryManager` in `src/hooks/`), hash routing, local storage keys. +- `src/components/code-editor/` - the CodeMirror based `CodeEditor`. Read its `README.md` before changing the editor, + the languages (`src/editor-languages/`: Lezer grammars for DruidSQL and Hjson) or the completions + (`src/editor-completions/`). +- SQL is built and parsed with `druid-query-toolkit` (`SqlQuery`, `C`, `F`, `T`, `L`, `N`, ...) rather than with + strings. + +## Conventions + +- **License header**: every source file (`.ts`, `.tsx`, `.scss`, `.mjs`, and `.md` as an HTML comment) starts with the + Apache 2.0 header; copy it from a neighboring file of the same type. ESLint checks it in TypeScript files. +- **Components** live in `component-name/component-name.tsx` with their `.scss` and `.spec.tsx` next to them, and are + exported from `src/components/index.ts` (likewise for dialogs, views, utils, hooks, druid-models). Import from those + barrels (`../../components`, `../../utils`). +- **Snapshots**: many specs snapshot the DOM. The serializer (`src/test-utils/snapshot-serializer.ts`) reduces icons to + their name and each code editor to a comment (language, value, placeholder), so only real changes show up. +- **Forms** for Druid specs are usually an `AutoForm` driven by `Field` definitions in `src/druid-models/`, not + hand-written inputs. +- **Styling**: Blueprint components first. In SCSS, prefer the variables (`@use '../../variables' as *`, which has the + Blueprint ones) over literal colors and sizes. + +### Tooltips: use `data-tooltip` +For a plain text hint on hover, put a `data-tooltip` attribute on the element. This is the preferred way to add a +tooltip in the console, use it rather than Blueprint's `Tooltip` or a `title` attribute. +- It shows instantly and follows the mouse. `initMouseTooltip` (`src/utils/mouse-tooltip/`, called once in + `src/entry.tsx`) listens on the document and shows the `data-tooltip` of the nearest element under the mouse (or its + closest ancestor that has one), so nothing needs to be wrapped or imported. +- `\n` makes a new line (the tooltip is `white-space: pre-wrap`); `undefined` (or an empty string) means no tooltip. +- It works on anything that ends up in the DOM: plain elements, Blueprint components that pass props through + (`