build(site): [SITE-07] deliver original Monaco language service notices

This commit is contained in:
Harvey Zhao committed 2026-09-15 09:20:49 +08:00
1 parent 0d3ddbf355
commit 11c9fefadd
42 files changed
+3141 -19

No files matched your search

+2
View File
@@ -33,3 +33,5 @@ refactor/baselines/site-vendor/console-stackoverflow/** -text whitespace=-traili
refactor/baselines/site-vendor/monaco-typescript/** -text whitespace=-trailing-space,cr-at-eol
docs/licenses/monaco-editor/typescript/** -text whitespace=-trailing-space,cr-at-eol
refactor/baselines/site-vendor/monaco-languages/** -text whitespace=-trailing-space,cr-at-eol
refactor/baselines/site-vendor/monaco-language-notices/** -text whitespace=-trailing-space,cr-at-eol
docs/licenses/monaco-editor/language-services/** -text whitespace=-trailing-space,cr-at-eol
+48
View File
@@ -73,6 +73,42 @@ Included component: typescript (Monaco worker) 4.4.4
Source: https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz
Included component: jsonc-parser 3.0.0
Source: https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz
Included component: vscode-css-languageservice 5.1.8
Source: https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.8.tgz
Included component: vscode-html-languageservice 4.1.1
Source: https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.1.tgz
Included component: vscode-json-languageservice 4.1.9
Source: https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.9.tgz
Included component: vscode-languageserver-textdocument 1.0.2
Source: https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.2.tgz
Included component: vscode-languageserver-types 3.16.0
Source: https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz
Included component: vscode-uri 3.0.2
Source: https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.2.tgz
Included component: js-beautify (Monaco HTML embedded) embedded sources in vscode-html-languageservice 4.1.1
Source: https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.1.tgz
Included component: glob-to-regexp (Monaco JSON fork) embedded source in vscode-json-languageservice 4.1.9
Source: https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.9.tgz
- licenses/monaco-editor/LICENSE
- licenses/monaco-editor/ThirdPartyNotices.txt
- licenses/monaco-editor/codicons/LICENSE
@@ -83,6 +119,18 @@ Source: https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz
- licenses/monaco-editor/typescript/CopyrightNotice.txt
- licenses/monaco-editor/typescript/ThirdPartyNoticeText.txt
- licenses/monaco-editor/typescript/ATTRIBUTION.md
- licenses/monaco-editor/language-services/jsonc-parser/LICENSE.md
- licenses/monaco-editor/language-services/vscode-css-languageservice/LICENSE.md
- licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md
- licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt
- licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md
- licenses/monaco-editor/language-services/vscode-languageserver-textdocument/License.txt
- licenses/monaco-editor/language-services/vscode-languageserver-textdocument/thirdpartynotices.txt
- licenses/monaco-editor/language-services/vscode-languageserver-types/License.txt
- licenses/monaco-editor/language-services/vscode-uri/LICENSE.md
- licenses/monaco-editor/language-services/beautify-css-NOTICE.txt
- licenses/monaco-editor/language-services/beautify-html-NOTICE.txt
- licenses/monaco-editor/language-services/ATTRIBUTION.md
## console legacy-vendor-with-TS-adapter
@@ -0,0 +1,38 @@
# Monaco CSS, HTML and JSON language-service notices
The site retains Monaco 0.30.1. The seven service dependencies below are identified
from its fixed upstream lock and exact embedded-source comparisons, not from
current npm latest versions. ArtPlayer does not change their runtime code here.
- jsonc-parser 3.0.0: [LICENSE.md](./jsonc-parser/LICENSE.md)
- vscode-css-languageservice 5.1.8: [LICENSE.md](./vscode-css-languageservice/LICENSE.md)
- vscode-html-languageservice 4.1.1: [LICENSE.md](./vscode-html-languageservice/LICENSE.md), [thirdpartynotices.txt](./vscode-html-languageservice/thirdpartynotices.txt)
- vscode-json-languageservice 4.1.9: [LICENSE.md](./vscode-json-languageservice/LICENSE.md)
- vscode-languageserver-textdocument 1.0.2: [License.txt](./vscode-languageserver-textdocument/License.txt), [thirdpartynotices.txt](./vscode-languageserver-textdocument/thirdpartynotices.txt)
- vscode-languageserver-types 3.16.0: [License.txt](./vscode-languageserver-types/License.txt)
- vscode-uri 3.0.2: [LICENSE.md](./vscode-uri/LICENSE.md)
Original LICENSE and third-party notice files are reproduced verbatim, including
encoding, line endings and legacy wording. The JSON service license includes
Nick Fitzgerald's glob-to-regexp copyright and BSD conditions in addition to
Microsoft's MIT terms. Neither the source header's short MIT label nor an npm
license field replaces that full text. The embedded glob is distributed as part
of vscode-json-languageservice 4.1.9; no independent glob package version is claimed.
The HTML service's thirdpartynotices.txt retains its original JS Beautifier
2007-2017 notice and HTML 5.1 W3C Working Draft attribution. Its actual CSS/HTML
beautifier source headers say 2007-2018 and additionally credit Harutyun Amirjanyan
and Nochum Sossonko. Both complete headers are retained as
[CSS formatter notice](./beautify-css-NOTICE.txt) and
[HTML formatter notice](./beautify-html-NOTICE.txt). The separately named
beautify.js module is Microsoft's no-op JavaScript formatter adapter; no upstream
JavaScript formatter implementation or independent js-beautify version is claimed.
The vscode-nls module is Monaco's own identical localization filler in monaco-css,
monaco-html and monaco-json at commit 5a7ba61be909ae9e4889768a3453ebb0dec392e2.
It is covered by the existing [Monaco license](../LICENSE); the same-named npm
package from the upstream install is not the embedded implementation.
This supplement documents the identified worker sources and their original notice
texts. It does not replace the original Monaco notices or conclude the review of
mode bundles, editor-core dependencies, language definitions, or other site assets.
@@ -0,0 +1,59 @@
/*
The MIT License (MIT)
Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, 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.
CSS Beautifier
---------------
Written by Harutyun Amirjanyan, (amirjanyan@gmail.com)
Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io>
https://beautifier.io/
Usage:
css_beautify(source_text);
css_beautify(source_text, options);
The options are (default in brackets):
indent_size (4) — indentation size,
indent_char (space) — character to indent with,
selector_separator_newline (true) - separate selectors with newline or
not (e.g. "a,\nbr" or "a, br")
end_with_newline (false) - end with a newline
newline_between_rules (true) - add a new line after every css rule
space_around_selector_separator (false) - ensure space around selector separators:
'>', '+', '~' (e.g. "a>b" -> "a > b")
e.g
css_beautify(css_source_text, {
'indent_size': 1,
'indent_char': '\t',
'selector_separator': ' ',
'end_with_newline': false,
'newline_between_rules': true,
'space_around_selector_separator': true
});
*/
@@ -0,0 +1,72 @@
/*
The MIT License (MIT)
Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, 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.
Style HTML
---------------
Written by Nochum Sossonko, (nsossonko@hotmail.com)
Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io>
https://beautifier.io/
Usage:
style_html(html_source);
style_html(html_source, options);
The options are:
indent_inner_html (default false) — indent <head> and <body> sections,
indent_size (default 4) — indentation size,
indent_char (default space) — character to indent with,
wrap_line_length (default 250) - maximum amount of characters per line (0 = disable)
brace_style (default "collapse") - "collapse" | "expand" | "end-expand" | "none"
put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or just put end braces on own line, or attempt to keep them where they are.
inline (defaults to inline tags) - list of tags to be considered inline tags
unformatted (defaults to inline tags) - list of tags, that shouldn't be reformatted
content_unformatted (defaults to ["pre", "textarea"] tags) - list of tags, whose content shouldn't be reformatted
indent_scripts (default normal) - "keep"|"separate"|"normal"
preserve_newlines (default true) - whether existing line breaks before elements should be preserved
Only works before elements, not inside tags or for text.
max_preserve_newlines (default unlimited) - maximum number of line breaks to be preserved in one chunk
indent_handlebars (default false) - format and indent {{#foo}} and {{/foo}}
end_with_newline (false) - end with a newline
extra_liners (default [head,body,/html]) -List of tags that should have an extra newline before them.
e.g.
style_html(html_source, {
'indent_inner_html': false,
'indent_size': 2,
'indent_char': ' ',
'wrap_line_length': 78,
'brace_style': 'expand',
'preserve_newlines': true,
'max_preserve_newlines': 5,
'indent_handlebars': false,
'extra_liners': ['/html']
});
*/
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
@@ -0,0 +1,49 @@
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
vscode-html-languageservice incorporates third party material from the projects listed below. The original copyright
notice and the license under which Microsoft received such third party material are set forth below. Microsoft
reserves all other rights not expressly granted, whether by implication, estoppel or otherwise.
1. JS Beautifier (https://github.com/beautify-web/js-beautify)
The MIT License (MIT)
Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, 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.
2. HTML 5.1 W3C Working Draft version 08 October 2015 (http://www.w3.org/TR/2015/WD-html51-20151008/)
%% HTML 5.1 W3C Working Draft NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or document includes material copied
from or derived from HTML 5.1 W3C Working Draft (http://www.w3.org/TR/2015/WD-html51-20151008/.)
THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF
THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents
without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders.
=========================================
END OF HTML 5.1 W3C Working Draft NOTICES AND INFORMATION
@@ -0,0 +1,47 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
Glob matching is based on code from https://github.com/fitzgen/glob-to-regexp
Copyright (c) 2013, Nick Fitzgerald
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.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,11 @@
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
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.
@@ -0,0 +1,16 @@
NOTICES AND INFORMATION
Do Not Translate or Localize
This software incorporates material from third parties.
Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com,
or you may send a check or money order for US $5.00, including the product name,
the open source component name, platform, and version number, to:
Source Code Compliance Team
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA
Notwithstanding any other terms, you may reverse engineer this software to the extent
required to debug changes to any libraries licensed under the GNU Lesser General Public License.
@@ -0,0 +1,11 @@
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
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.
@@ -0,0 +1,9 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,322 @@
{
"schemaVersion": 1,
"task": "SITE-07",
"status": "original-notices-delivered-review-incomplete",
"sourceRecord": "refactor/baselines/monaco-languages-provenance.json",
"packages": [
{
"name": "jsonc-parser",
"version": "3.0.0",
"tarball": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
"archive": "jsonc-parser-3.0.0",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/jsonc-parser/LICENSE.md"
]
},
{
"name": "vscode-css-languageservice",
"version": "5.1.8",
"tarball": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.8.tgz",
"archive": "vscode-css-languageservice-5.1.8",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-css-languageservice/LICENSE.md"
]
},
{
"name": "vscode-html-languageservice",
"version": "4.1.1",
"tarball": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.1.tgz",
"archive": "vscode-html-languageservice-4.1.1",
"assets": [
"docs/assets/js/vs/language/html/htmlWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt"
]
},
{
"name": "vscode-json-languageservice",
"version": "4.1.9",
"tarball": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.9.tgz",
"archive": "vscode-json-languageservice-4.1.9",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md"
]
},
{
"name": "vscode-languageserver-textdocument",
"version": "1.0.2",
"tarball": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.2.tgz",
"archive": "vscode-languageserver-textdocument-1.0.2",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/License.txt",
"docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/thirdpartynotices.txt"
]
},
{
"name": "vscode-languageserver-types",
"version": "3.16.0",
"tarball": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
"archive": "vscode-languageserver-types-3.16.0",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-languageserver-types/License.txt"
]
},
{
"name": "vscode-uri",
"version": "3.0.2",
"tarball": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.2.tgz",
"archive": "vscode-uri-3.0.2",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-uri/LICENSE.md"
]
}
],
"components": [
{
"name": "jsonc-parser",
"version": "3.0.0",
"tarball": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
"archive": "jsonc-parser-3.0.0",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/jsonc-parser/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-css-languageservice",
"version": "5.1.8",
"tarball": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.8.tgz",
"archive": "vscode-css-languageservice-5.1.8",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-css-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-html-languageservice",
"version": "4.1.1",
"tarball": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.1.tgz",
"archive": "vscode-html-languageservice-4.1.1",
"assets": [
"docs/assets/js/vs/language/html/htmlWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-json-languageservice",
"version": "4.1.9",
"tarball": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.9.tgz",
"archive": "vscode-json-languageservice-4.1.9",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-languageserver-textdocument",
"version": "1.0.2",
"tarball": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.2.tgz",
"archive": "vscode-languageserver-textdocument-1.0.2",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/License.txt",
"docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/thirdpartynotices.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-languageserver-types",
"version": "3.16.0",
"tarball": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
"archive": "vscode-languageserver-types-3.16.0",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-languageserver-types/License.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-uri",
"version": "3.0.2",
"tarball": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.2.tgz",
"archive": "vscode-uri-3.0.2",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-uri/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "js-beautify (Monaco HTML embedded)",
"version": "embedded sources in vscode-html-languageservice 4.1.1",
"tarball": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.1.tgz",
"assets": [
"docs/assets/js/vs/language/html/htmlWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/beautify-css-NOTICE.txt",
"docs/licenses/monaco-editor/language-services/beautify-html-NOTICE.txt",
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "glob-to-regexp (Monaco JSON fork)",
"version": "embedded source in vscode-json-languageservice 4.1.9",
"tarball": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.9.tgz",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
}
],
"notices": [
{
"archive": "jsonc-parser-3.0.0",
"member": "package/LICENSE.md",
"source": "refactor/baselines/site-vendor/monaco-language-notices/jsonc-parser/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/jsonc-parser/LICENSE.md",
"sha256": "c3a24c02d678e5f0711623dcf3ab3f243b273c2633f638a1fa8e35fb7c7f8e4d"
},
{
"archive": "vscode-css-languageservice-5.1.8",
"member": "package/LICENSE.md",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-css-languageservice/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-css-languageservice/LICENSE.md",
"sha256": "c3a24c02d678e5f0711623dcf3ab3f243b273c2633f638a1fa8e35fb7c7f8e4d"
},
{
"archive": "vscode-html-languageservice-4.1.1",
"member": "package/LICENSE.md",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-html-languageservice/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md",
"sha256": "c3a24c02d678e5f0711623dcf3ab3f243b273c2633f638a1fa8e35fb7c7f8e4d"
},
{
"archive": "vscode-html-languageservice-4.1.1",
"member": "package/thirdpartynotices.txt",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-html-languageservice/thirdpartynotices.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt",
"sha256": "6fac688548f02e656a57234c7f0cb4a74bd8645b4ef2c7a33f5117861b9f3de0"
},
{
"archive": "vscode-json-languageservice-4.1.9",
"member": "package/LICENSE.md",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-json-languageservice/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md",
"sha256": "4742836d395a83a45d2278d9b738824d68abb1a03b81d567210a6cbc3e686e12"
},
{
"archive": "vscode-languageserver-textdocument-1.0.2",
"member": "package/License.txt",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-languageserver-textdocument/License.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/License.txt",
"sha256": "ec9ee83580841e8eb687aca9867f221503809ba6426c7f876ede17d91b9fcfd0"
},
{
"archive": "vscode-languageserver-textdocument-1.0.2",
"member": "package/thirdpartynotices.txt",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-languageserver-textdocument/thirdpartynotices.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/thirdpartynotices.txt",
"sha256": "a89123562fe364dc8e969e85614eb6c1f8452afe131d6e42bd1314bb2d092b04"
},
{
"archive": "vscode-languageserver-types-3.16.0",
"member": "package/License.txt",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-languageserver-types/License.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-languageserver-types/License.txt",
"sha256": "ec9ee83580841e8eb687aca9867f221503809ba6426c7f876ede17d91b9fcfd0"
},
{
"archive": "vscode-uri-3.0.2",
"member": "package/LICENSE.md",
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-uri/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-uri/LICENSE.md",
"sha256": "c669138cb1eb01fbb745e8e460b291e4f2869c14a40061390b6095d845ed4c82"
},
{
"archive": "vscode-html-languageservice-4.1.1",
"member": "package/lib/umd/beautify/beautify-css.js",
"memberSha256": "2fecfef68c27cd406a74b0b45ffae7394d0ee5b3fc8f342297b4a4029fa08723",
"slice": {
"start": 106,
"end": 2512
},
"source": "refactor/baselines/site-vendor/monaco-language-notices/beautify-css-NOTICE.txt",
"target": "docs/licenses/monaco-editor/language-services/beautify-css-NOTICE.txt",
"sha256": "ec728062ceae23091680dda36437fe1fa48975821e047adbb06a76805425e518"
},
{
"archive": "vscode-html-languageservice-4.1.1",
"member": "package/lib/umd/beautify/beautify-html.js",
"memberSha256": "4a66107fa529ebe572351eb3f9c5ce89179cb3c9de43430a12a447a423cea092",
"slice": {
"start": 107,
"end": 3381
},
"source": "refactor/baselines/site-vendor/monaco-language-notices/beautify-html-NOTICE.txt",
"target": "docs/licenses/monaco-editor/language-services/beautify-html-NOTICE.txt",
"sha256": "25451d033cad3539a2cadfeda7fa5e29eb74e3413917cde63d8210a259fdc893"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/ATTRIBUTION.txt",
"target": "docs/licenses/monaco-editor/language-services/ATTRIBUTION.md",
"sha256": "432cca135809edabcd9ccedd05576138b64b167445999005a6e1550132391d98"
}
]
}
@@ -0,0 +1,38 @@
# Monaco CSS, HTML and JSON language-service notices
The site retains Monaco 0.30.1. The seven service dependencies below are identified
from its fixed upstream lock and exact embedded-source comparisons, not from
current npm latest versions. ArtPlayer does not change their runtime code here.
- jsonc-parser 3.0.0: [LICENSE.md](./jsonc-parser/LICENSE.md)
- vscode-css-languageservice 5.1.8: [LICENSE.md](./vscode-css-languageservice/LICENSE.md)
- vscode-html-languageservice 4.1.1: [LICENSE.md](./vscode-html-languageservice/LICENSE.md), [thirdpartynotices.txt](./vscode-html-languageservice/thirdpartynotices.txt)
- vscode-json-languageservice 4.1.9: [LICENSE.md](./vscode-json-languageservice/LICENSE.md)
- vscode-languageserver-textdocument 1.0.2: [License.txt](./vscode-languageserver-textdocument/License.txt), [thirdpartynotices.txt](./vscode-languageserver-textdocument/thirdpartynotices.txt)
- vscode-languageserver-types 3.16.0: [License.txt](./vscode-languageserver-types/License.txt)
- vscode-uri 3.0.2: [LICENSE.md](./vscode-uri/LICENSE.md)
Original LICENSE and third-party notice files are reproduced verbatim, including
encoding, line endings and legacy wording. The JSON service license includes
Nick Fitzgerald's glob-to-regexp copyright and BSD conditions in addition to
Microsoft's MIT terms. Neither the source header's short MIT label nor an npm
license field replaces that full text. The embedded glob is distributed as part
of vscode-json-languageservice 4.1.9; no independent glob package version is claimed.
The HTML service's thirdpartynotices.txt retains its original JS Beautifier
2007-2017 notice and HTML 5.1 W3C Working Draft attribution. Its actual CSS/HTML
beautifier source headers say 2007-2018 and additionally credit Harutyun Amirjanyan
and Nochum Sossonko. Both complete headers are retained as
[CSS formatter notice](./beautify-css-NOTICE.txt) and
[HTML formatter notice](./beautify-html-NOTICE.txt). The separately named
beautify.js module is Microsoft's no-op JavaScript formatter adapter; no upstream
JavaScript formatter implementation or independent js-beautify version is claimed.
The vscode-nls module is Monaco's own identical localization filler in monaco-css,
monaco-html and monaco-json at commit 5a7ba61be909ae9e4889768a3453ebb0dec392e2.
It is covered by the existing [Monaco license](../LICENSE); the same-named npm
package from the upstream install is not the embedded implementation.
This supplement documents the identified worker sources and their original notice
texts. It does not replace the original Monaco notices or conclude the review of
mode bundles, editor-core dependencies, language definitions, or other site assets.
@@ -0,0 +1,59 @@
/*
The MIT License (MIT)
Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, 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.
CSS Beautifier
---------------
Written by Harutyun Amirjanyan, (amirjanyan@gmail.com)
Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io>
https://beautifier.io/
Usage:
css_beautify(source_text);
css_beautify(source_text, options);
The options are (default in brackets):
indent_size (4) — indentation size,
indent_char (space) — character to indent with,
selector_separator_newline (true) - separate selectors with newline or
not (e.g. "a,\nbr" or "a, br")
end_with_newline (false) - end with a newline
newline_between_rules (true) - add a new line after every css rule
space_around_selector_separator (false) - ensure space around selector separators:
'>', '+', '~' (e.g. "a>b" -> "a > b")
e.g
css_beautify(css_source_text, {
'indent_size': 1,
'indent_char': '\t',
'selector_separator': ' ',
'end_with_newline': false,
'newline_between_rules': true,
'space_around_selector_separator': true
});
*/
@@ -0,0 +1,72 @@
/*
The MIT License (MIT)
Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, 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.
Style HTML
---------------
Written by Nochum Sossonko, (nsossonko@hotmail.com)
Based on code initially developed by: Einar Lielmanis, <einar@beautifier.io>
https://beautifier.io/
Usage:
style_html(html_source);
style_html(html_source, options);
The options are:
indent_inner_html (default false) — indent <head> and <body> sections,
indent_size (default 4) — indentation size,
indent_char (default space) — character to indent with,
wrap_line_length (default 250) - maximum amount of characters per line (0 = disable)
brace_style (default "collapse") - "collapse" | "expand" | "end-expand" | "none"
put braces on the same line as control statements (default), or put braces on own line (Allman / ANSI style), or just put end braces on own line, or attempt to keep them where they are.
inline (defaults to inline tags) - list of tags to be considered inline tags
unformatted (defaults to inline tags) - list of tags, that shouldn't be reformatted
content_unformatted (defaults to ["pre", "textarea"] tags) - list of tags, whose content shouldn't be reformatted
indent_scripts (default normal) - "keep"|"separate"|"normal"
preserve_newlines (default true) - whether existing line breaks before elements should be preserved
Only works before elements, not inside tags or for text.
max_preserve_newlines (default unlimited) - maximum number of line breaks to be preserved in one chunk
indent_handlebars (default false) - format and indent {{#foo}} and {{/foo}}
end_with_newline (false) - end with a newline
extra_liners (default [head,body,/html]) -List of tags that should have an extra newline before them.
e.g.
style_html(html_source, {
'indent_inner_html': false,
'indent_size': 2,
'indent_char': ' ',
'wrap_line_length': 78,
'brace_style': 'expand',
'preserve_newlines': true,
'max_preserve_newlines': 5,
'indent_handlebars': false,
'extra_liners': ['/html']
});
*/
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
@@ -0,0 +1,49 @@
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
vscode-html-languageservice incorporates third party material from the projects listed below. The original copyright
notice and the license under which Microsoft received such third party material are set forth below. Microsoft
reserves all other rights not expressly granted, whether by implication, estoppel or otherwise.
1. JS Beautifier (https://github.com/beautify-web/js-beautify)
The MIT License (MIT)
Copyright (c) 2007-2017 Einar Lielmanis, Liam Newman, 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.
2. HTML 5.1 W3C Working Draft version 08 October 2015 (http://www.w3.org/TR/2015/WD-html51-20151008/)
%% HTML 5.1 W3C Working Draft NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or document includes material copied
from or derived from HTML 5.1 W3C Working Draft (http://www.w3.org/TR/2015/WD-html51-20151008/.)
THIS DOCUMENT IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT
NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF
THE DOCUMENT ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY
PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE
DOCUMENT OR THE PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to this document or its contents
without specific, written prior permission. Title to copyright in this document will at all times remain with copyright holders.
=========================================
END OF HTML 5.1 W3C Working Draft NOTICES AND INFORMATION
@@ -0,0 +1,47 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
Glob matching is based on code from https://github.com/fitzgen/glob-to-regexp
Copyright (c) 2013, Nick Fitzgerald
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.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,11 @@
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
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.
@@ -0,0 +1,16 @@
NOTICES AND INFORMATION
Do Not Translate or Localize
This software incorporates material from third parties.
Microsoft makes certain open source code available at https://3rdpartysource.microsoft.com,
or you may send a check or money order for US $5.00, including the product name,
the open source component name, platform, and version number, to:
Source Code Compliance Team
Microsoft Corporation
One Microsoft Way
Redmond, WA 98052
USA
Notwithstanding any other terms, you may reverse engineer this software to the extent
required to debug changes to any libraries licensed under the GNU Lesser General Public License.
@@ -0,0 +1,11 @@
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
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.
@@ -0,0 +1,9 @@
The MIT License (MIT)
Copyright (c) Microsoft
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.
@@ -0,0 +1,48 @@
# SITE-07 Monaco 语言服务原始许可交付
修改前 HEAD:0d3ddbf355b41abb86fe8990767ff164933d9c5d。
上一批已从固定归档完整复现 CSS/HTML/JSON worker;本批补齐对应许可交付和
组件绑定验证,不修改 Monaco 的运行代码、版本、旧路径或 API。
## 交付内容
七个已核实 npm 包保留九份 LICENSE/第三方说明原文件,按原始 Buffer 冻结并
生成到站点。HTML 包另外保留两个完整源码注释:其 CSS/HTML 格式器包含
2007-2018 Einar Lielmanis、Liam Newman 等作者的 MIT 原文,以及 Harutyun
Amirjanyan、Nochum Sossonko 的署名。包内第三方说明仍保持原始 2007-2017 年份,
不覆盖旧文本;单独的 ATTRIBUTION 解释实际源码差异和来源范围。
JSON 服务 LICENSE 同时包含 Microsoft MIT 与 Nick Fitzgerald glob-to-regexp
的 BSD 条件,完整保留,不能只按源码短头部或 npm 的 MIT 字段简化。HTML 的
第三方说明还保留 HTML 5.1 W3C Working Draft 条目。textdocument 的通用第三方
说明也原样保留,不把其中条件性文字推断为已发现某个额外运行依赖。
确认 beautify.js 是 Microsoft 的 JS 格式化空适配器;实际 CSS/HTML 格式器
才包含上游实现。nls 是 Monaco 自有 shim,补充说明链接到已有 Monaco LICENSE。
未猜测独立 js-beautify/glob npm 版本,也未把格式器重新署名为本项目代码。
新增 notices.ts 分开处理低成本构建检查与归档复核:
- 构建前校验组件版本、来源、实际 worker、全部 notice 和指纹的对应关系。
防止文件和计数俱全,但 JSON/BSD 组件错误指向 CSS/MIT 文件。
- 完整离线复现检查九份原始文件、两个完整源码注释的字节范围与源成员指纹,
再复现全部三个 worker。ATTRIBUTION 是单独标明的本地说明。
- 生成站点新增 12 文件,共 81 份 notice 和一个索引;全部保持原始文本字节。
## 验证
14/14 单元通过,覆盖错误组件绑定、错误 worker 路径、缺少各份通知、替换归档
文本和既有生成规则。严格 docs-tools 类型、相关 ESLint、生成及只读检查通过。
Yarn 离线复现通过:11 归档、13 Git 来源、119 模块实例、三个完整压缩产物、
12 notice 输入。根依赖和 yarn.lock 不变。
三引擎共 6/6 浏览器测试通过,无重试/跳过:CSS/HTML/JSON 功能,81 份实际
HTTP notice 原文字节,新增说明的 12 个相对链接,移动播放器实播、日志及销毁。
详细环境与原始输出指纹见 [验证记录](../baselines/monaco-language-notices-validation.json)。
没有执行真机、Google IMA、远端 CI 或 npm 发布验证。
SITE-07 doing / VENDOR-06 open,整体仍 199/265。Monaco mode bundles、核心内嵌
库、语言定义和其余数据/来源细节继续审查,站点其他字体和媒体门槛仍保留。
回退本批 notice、绑定校验和生成入口改动即可;运行资产未变。独立本地提交,
没有推送、部署或发布。
+1 -1
View File
@@ -653,7 +653,7 @@
- SITE-AI-DOCS-01: [记录](changes/2026-09-14-SITE-AI-DOCS-01-documentation-pipeline.md) [记录](baselines/documentation-pipeline-validation.json)
- SITE-BUILD-01: [记录](changes/2026-09-14-SITE-BUILD-01-staged-builds.md) [记录](baselines/site-build-validation.json)
- SITE-03: [记录](changes/2026-09-14-SITE-03-desktop-editor.md) [记录](baselines/site-editor-validation.json)
- SITE-07: [记录](site-inventory.md) [记录](baselines/site-provenance.json) [记录](changes/2026-09-14-SITE-07-vendor-notices.md) [记录](baselines/site-notices-checkpoint.json) [记录](baselines/site-codicons-provenance.json) [记录](baselines/site-codicons-validation.json) [记录](changes/2026-09-15-SITE-07-codicons.md) [记录](baselines/vconsole-notices-provenance.json) [记录](baselines/vconsole-notices-validation.json) [记录](changes/2026-09-15-SITE-07-vconsole-notices.md) [记录](console-modernization.md) [记录](baselines/site-console-inventory.json) [记录](baselines/site-console-validation.json) [记录](changes/2026-09-15-SITE-07-console-baseline.md) [记录](baselines/console-feed-provenance.json) [记录](changes/2026-09-15-SITE-07-console-feed-source.md) [记录](baselines/console-commonjs-provenance.json) [记录](changes/2026-09-15-SITE-07-console-commonjs.md) [记录](baselines/console-esm-provenance.json) [记录](changes/2026-09-15-SITE-07-console-esm.md) [记录](baselines/console-embedded-notices.json) [记录](baselines/console-notices-validation.json) [记录](changes/2026-09-15-SITE-07-console-notices.md) [记录](baselines/console-embedded-sources.json) [记录](baselines/console-embedded-validation.json) [记录](changes/2026-09-15-SITE-07-console-embedded-sources.md) [记录](baselines/console-derived-attribution.json) [记录](baselines/console-derived-validation.json) [记录](changes/2026-09-15-SITE-07-console-derived-attribution.md) [记录](baselines/console-stackoverflow-provenance.json) [记录](baselines/console-stackoverflow-validation.json) [记录](changes/2026-09-15-SITE-07-console-stackoverflow.md) [记录](baselines/console-shallowequal-validation.json) [记录](changes/2026-09-15-SITE-07-console-shallowequal.md) [记录](console-notice-review.md) [记录](baselines/console-notice-review-validation.json) [记录](changes/2026-09-15-SITE-07-console-notice-review.md) [记录](baselines/monaco-typescript-provenance.json) [记录](baselines/monaco-typescript-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-typescript.md) [记录](baselines/monaco-languages-provenance.json) [记录](baselines/monaco-languages-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-languages.md)
- SITE-07: [记录](site-inventory.md) [记录](baselines/site-provenance.json) [记录](changes/2026-09-14-SITE-07-vendor-notices.md) [记录](baselines/site-notices-checkpoint.json) [记录](baselines/site-codicons-provenance.json) [记录](baselines/site-codicons-validation.json) [记录](changes/2026-09-15-SITE-07-codicons.md) [记录](baselines/vconsole-notices-provenance.json) [记录](baselines/vconsole-notices-validation.json) [记录](changes/2026-09-15-SITE-07-vconsole-notices.md) [记录](console-modernization.md) [记录](baselines/site-console-inventory.json) [记录](baselines/site-console-validation.json) [记录](changes/2026-09-15-SITE-07-console-baseline.md) [记录](baselines/console-feed-provenance.json) [记录](changes/2026-09-15-SITE-07-console-feed-source.md) [记录](baselines/console-commonjs-provenance.json) [记录](changes/2026-09-15-SITE-07-console-commonjs.md) [记录](baselines/console-esm-provenance.json) [记录](changes/2026-09-15-SITE-07-console-esm.md) [记录](baselines/console-embedded-notices.json) [记录](baselines/console-notices-validation.json) [记录](changes/2026-09-15-SITE-07-console-notices.md) [记录](baselines/console-embedded-sources.json) [记录](baselines/console-embedded-validation.json) [记录](changes/2026-09-15-SITE-07-console-embedded-sources.md) [记录](baselines/console-derived-attribution.json) [记录](baselines/console-derived-validation.json) [记录](changes/2026-09-15-SITE-07-console-derived-attribution.md) [记录](baselines/console-stackoverflow-provenance.json) [记录](baselines/console-stackoverflow-validation.json) [记录](changes/2026-09-15-SITE-07-console-stackoverflow.md) [记录](baselines/console-shallowequal-validation.json) [记录](changes/2026-09-15-SITE-07-console-shallowequal.md) [记录](console-notice-review.md) [记录](baselines/console-notice-review-validation.json) [记录](changes/2026-09-15-SITE-07-console-notice-review.md) [记录](baselines/monaco-typescript-provenance.json) [记录](baselines/monaco-typescript-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-typescript.md) [记录](baselines/monaco-languages-provenance.json) [记录](baselines/monaco-languages-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-languages.md) [记录](baselines/monaco-language-notices.json) [记录](baselines/monaco-language-notices-validation.json) [记录](changes/2026-09-15-SITE-07-monaco-language-notices.md)
- EX-01: [记录](changes/2026-09-14-EX-01-react-consumer.md) [记录](baselines/react-consumer-validation.json) [记录](scripts/react-consumer.mjs)
- EX-02: [记录](changes/2026-09-14-EX-02-vue-consumer.md) [记录](baselines/vue-consumer-validation.json) [记录](scripts/vue-consumer.mjs)
- MOD-01: [记录](changes/2026-09-15-MOD-01-bun-evaluation.md) [记录](baselines/bun-install-validation.json) [记录](bun-evaluation.md)
+9
View File
@@ -1,5 +1,14 @@
# 进度与证据
## SITE-07 Monaco 语言服务许可交付
七包九份原始许可、两个格式器源码署名和补充说明已加入站点;JSON glob 的 BSD
条款、HTML 格式器年份差异完整保留。新增组件/来源/notice 绑定保护。单元 14/14、
三引擎语言服务及移动实播/81 份 notice 交付 6/6,通过完整离线复现。见
[记录](changes/2026-09-15-SITE-07-monaco-language-notices.md)。运行资产与锁未改,
SITE-07/VENDOR-06 仍开放;继续 Monaco mode/core/语言定义与其他来源细节。
整体 199/265,没有推送或发布。
## SITE-07 Monaco CSS/HTML/JSON worker
完成三个 worker 的全部源码片段与压缩产物复现:11 归档、13 Git 来源、119 模块
+6 -2
View File
@@ -634,11 +634,15 @@
"refactor/baselines/monaco-languages-validation.json",
"refactor/changes/2026-09-15-SITE-07-monaco-languages.md",
"scripts/site-vendor/monaco/languages.ts",
"scripts/site-vendor/monaco/reproduce-languages.ts"
"scripts/site-vendor/monaco/reproduce-languages.ts",
"refactor/baselines/monaco-language-notices.json",
"refactor/baselines/monaco-language-notices-validation.json",
"refactor/changes/2026-09-15-SITE-07-monaco-language-notices.md",
"scripts/site-vendor/monaco/notices.ts"
],
"compatibleResolution": "Keep separate from owned TS migration. Verify source/version/diff and license notices before replacement; preserve API/CSS/worker URLs and run owning package tests.",
"closureCriteria": "固定上游版本/内容差异、完整组件许可与分发 notices,兼容测试通过;仅当前上游许可证名称不足以关闭。",
"workspaceState": "Monaco 0.30.1 TypeScript worker identifies 4.4.4, unlike the original stale 2.7.2 notice. Fixed Git lock/recipes and four archives prove the 9698327-character adapted service segment and exact minified worker. Three original TypeScript notices plus a version/modification explanation are delivered. Unit 10/10 and three-engine editor/notice checks 6/6 pass. Other language services, shim, core embedded libraries and language definitions remain under review; VENDOR-06 is open. CSS/HTML/JSON complete workers now have exact source coverage for 119 module instances from 91 npm sources, 8 aliases, a shared Monaco-owned nls shim and three adapters; 11 archives/13 Git sources and all three minified outputs match. Four unit tests and three real-engine diagnostics/completion/formatting checks pass. Service notices, embedded attribution, mode bundles, core and basic languages remain open."
"workspaceState": "Monaco 0.30.1 TypeScript worker identifies 4.4.4, unlike the original stale 2.7.2 notice. Fixed Git lock/recipes and four archives prove the 9698327-character adapted service segment and exact minified worker. Three original TypeScript notices plus a version/modification explanation are delivered. Unit 10/10 and three-engine editor/notice checks 6/6 pass. Other language services, shim, core embedded libraries and language definitions remain under review; VENDOR-06 is open. CSS/HTML/JSON complete workers now have exact source coverage for 119 module instances from 91 npm sources, 8 aliases, a shared Monaco-owned nls shim and three adapters; 11 archives/13 Git sources and all three minified outputs match. Four unit tests and three real-engine diagnostics/completion/formatting checks pass. Service notices, embedded attribution, mode bundles, core and basic languages remain open. Seven language-service packages now deliver nine original notices, two complete formatter source headers and attribution. JSON glob BSD terms and the HTML formatter author-year difference are preserved. Component/source/notice bindings and all 81 site notice HTTP bytes/links pass; unit 14/14 and three-engine language/mobile suites 6/6. Broader Monaco origin review remains open."
},
{
"id": "VENDOR-07",
+6
View File
@@ -1,5 +1,11 @@
# 文档站、示例与生成链清单
2026-09-15 Monaco 后续:CSS/HTML/JSON 完整 worker 已由固定源码和压缩配方复现,
七个依赖的九份原始许可、两个格式器署名和补充说明已实际交付。全站 81 份
notice 的 HTTP 字节、链接及三引擎功能检查通过,见
[记录](changes/2026-09-15-SITE-07-monaco-language-notices.md)。Monaco core/mode/
语言定义及其余来源细节仍开放,不能按本检查点认为整个站点已可发布。
console.js 后续已冻结 102 个模块和实际 React/ReactDOM/Parcel/返回组件契约;
三个浏览器复现卸载回调、多容器丢日志和 Error 消息丢失。源码尚未替换,依赖许可
仍开放;下一实现任务为 SITE-CONSOLE-01,见[迁移边界](console-modernization.md)。
+4 -1
View File
@@ -4517,7 +4517,10 @@
"changes/2026-09-15-SITE-07-monaco-typescript.md",
"baselines/monaco-languages-provenance.json",
"baselines/monaco-languages-validation.json",
"changes/2026-09-15-SITE-07-monaco-languages.md"
"changes/2026-09-15-SITE-07-monaco-languages.md",
"baselines/monaco-language-notices.json",
"baselines/monaco-language-notices-validation.json",
"changes/2026-09-15-SITE-07-monaco-language-notices.md"
]
},
{
+1 -1
View File
@@ -512,7 +512,7 @@
"SITE-05"
],
"sourceStatus": "Monaco 0.30.1 verified against official npm archive: 98 byte-exact files, one CSS newline-only difference. The bundled font additionally matches @vscode/codicons 0.0.26 exactly; see site-codicons-provenance.json.",
"licenseStatus": "Full Monaco root notices and Codicons historical notices are delivered. The actual TypeScript 4.4.4 worker is exactly reproduced and has a complete original LICENSE/CopyrightNotice/ThirdPartyNoticeText supplement plus attribution; the original stale 2.7.2 label is preserved with explanation. Other bundled-component completeness remains under VENDOR-06. No permission for unrelated fonts/media is inferred.",
"licenseStatus": "Full Monaco root notices and Codicons historical notices are delivered. The actual TypeScript 4.4.4 worker is exactly reproduced and has a complete original LICENSE/CopyrightNotice/ThirdPartyNoticeText supplement plus attribution; the original stale 2.7.2 label is preserved with explanation. Other bundled-component completeness remains under VENDOR-06. No permission for unrelated fonts/media is inferred. CSS/HTML/JSON worker source proof now binds seven service packages to nine original license/third-party notice files, two embedded formatter headers and attribution. JSON glob BSD conditions and actual formatter author years are retained; all 81 site notices pass HTTP byte checks. Mode/core/basic-language and remaining embedded-source completeness stay open.",
"upstreamSources": [
"https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.30.1.tgz",
"https://registry.npmjs.org/@vscode/codicons/-/codicons-0.0.26.tgz"
+11
View File
@@ -2,6 +2,7 @@ import assert from 'node:assert/strict'
import fs from 'node:fs'
import process from 'node:process'
import { verifyConsoleNoticeSources } from './site-vendor/console/notices.ts'
import { verifyMonacoLanguageNotices } from './site-vendor/monaco/notices.ts'
import { writeOrCheckNotices } from './site-vendor/notices.ts'
assert(process.argv.slice(2).every(arg => arg === '--check'), 'Use yarn build:site-notices [--check]')
@@ -14,11 +15,20 @@ assert.deepEqual(manifest.groups.filter(group => group.name !== 'console').flatM
'copy-text-to-clipboard',
'core-js',
'css-loader',
'glob-to-regexp (Monaco JSON fork)',
'js-beautify (Monaco HTML embedded)',
'jsonc-parser',
'mutation-observer',
'regenerator-runtime',
'style-loader',
'svelte',
'typescript (Monaco worker)',
'vscode-css-languageservice',
'vscode-html-languageservice',
'vscode-json-languageservice',
'vscode-languageserver-textdocument',
'vscode-languageserver-types',
'vscode-uri',
'webpack',
], 'Do not silently drop verified bundled component attribution')
const consoleGroup = manifest.groups.find(group => group.name === 'console')
@@ -75,5 +85,6 @@ assert.deepEqual(typeScriptNotices?.map(target => target.split('/').pop()).sort(
for (const name of ['LICENSE', 'MIT-LICENSE', 'ATTRIBUTION.md'])
assert(vconsoleNotices?.includes(`docs/licenses/vconsole/${name}`), `Missing vConsole notice: ${name}`)
verifyConsoleNoticeSources(process.cwd(), manifest)
verifyMonacoLanguageNotices(process.cwd(), manifest)
const count = writeOrCheckNotices(process.cwd(), manifest, process.argv.includes('--check'))
console.log(`Verified site notices: ${count} outputs; Monaco/vConsole/console inventories, embedded and other provenance gates remain open.`)
+179
View File
@@ -940,6 +940,66 @@
"source": "refactor/baselines/site-vendor/monaco-typescript/ATTRIBUTION.txt",
"target": "docs/licenses/monaco-editor/typescript/ATTRIBUTION.md",
"sha256": "edb4b7526e86fadf7461ffda983f9f56a96472cf1ebf639947948e405ed95321"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/jsonc-parser/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/jsonc-parser/LICENSE.md",
"sha256": "c3a24c02d678e5f0711623dcf3ab3f243b273c2633f638a1fa8e35fb7c7f8e4d"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-css-languageservice/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-css-languageservice/LICENSE.md",
"sha256": "c3a24c02d678e5f0711623dcf3ab3f243b273c2633f638a1fa8e35fb7c7f8e4d"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-html-languageservice/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md",
"sha256": "c3a24c02d678e5f0711623dcf3ab3f243b273c2633f638a1fa8e35fb7c7f8e4d"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-html-languageservice/thirdpartynotices.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt",
"sha256": "6fac688548f02e656a57234c7f0cb4a74bd8645b4ef2c7a33f5117861b9f3de0"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-json-languageservice/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md",
"sha256": "4742836d395a83a45d2278d9b738824d68abb1a03b81d567210a6cbc3e686e12"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-languageserver-textdocument/License.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/License.txt",
"sha256": "ec9ee83580841e8eb687aca9867f221503809ba6426c7f876ede17d91b9fcfd0"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-languageserver-textdocument/thirdpartynotices.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/thirdpartynotices.txt",
"sha256": "a89123562fe364dc8e969e85614eb6c1f8452afe131d6e42bd1314bb2d092b04"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-languageserver-types/License.txt.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-languageserver-types/License.txt",
"sha256": "ec9ee83580841e8eb687aca9867f221503809ba6426c7f876ede17d91b9fcfd0"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/vscode-uri/LICENSE.md.txt",
"target": "docs/licenses/monaco-editor/language-services/vscode-uri/LICENSE.md",
"sha256": "c669138cb1eb01fbb745e8e460b291e4f2869c14a40061390b6095d845ed4c82"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/beautify-css-NOTICE.txt",
"target": "docs/licenses/monaco-editor/language-services/beautify-css-NOTICE.txt",
"sha256": "ec728062ceae23091680dda36437fe1fa48975821e047adbb06a76805425e518"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/beautify-html-NOTICE.txt",
"target": "docs/licenses/monaco-editor/language-services/beautify-html-NOTICE.txt",
"sha256": "25451d033cad3539a2cadfeda7fa5e29eb74e3413917cde63d8210a259fdc893"
},
{
"source": "refactor/baselines/site-vendor/monaco-language-notices/ATTRIBUTION.txt",
"target": "docs/licenses/monaco-editor/language-services/ATTRIBUTION.md",
"sha256": "432cca135809edabcd9ccedd05576138b64b167445999005a6e1550132391d98"
}
],
"review": "The complete upstream Monaco LICENSE/ThirdPartyNotices are retained. The unmodified bundled Codicons font exactly matches @vscode/codicons 0.0.26; its historical README, CC BY 4.0 content license, MIT code license and added attribution are distributed below. Other site assets remain subject to their separate provenance reviews.",
@@ -971,6 +1031,125 @@
"docs/licenses/monaco-editor/typescript/ThirdPartyNoticeText.txt",
"docs/licenses/monaco-editor/typescript/ATTRIBUTION.md"
]
},
{
"name": "jsonc-parser",
"version": "3.0.0",
"tarball": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/jsonc-parser/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-css-languageservice",
"version": "5.1.8",
"tarball": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-5.1.8.tgz",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-css-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-html-languageservice",
"version": "4.1.1",
"tarball": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.1.tgz",
"assets": [
"docs/assets/js/vs/language/html/htmlWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-json-languageservice",
"version": "4.1.9",
"tarball": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.9.tgz",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-languageserver-textdocument",
"version": "1.0.2",
"tarball": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.2.tgz",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/License.txt",
"docs/licenses/monaco-editor/language-services/vscode-languageserver-textdocument/thirdpartynotices.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-languageserver-types",
"version": "3.16.0",
"tarball": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-languageserver-types/License.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "vscode-uri",
"version": "3.0.2",
"tarball": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.2.tgz",
"assets": [
"docs/assets/js/vs/language/css/cssWorker.js",
"docs/assets/js/vs/language/html/htmlWorker.js",
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-uri/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "js-beautify (Monaco HTML embedded)",
"version": "embedded sources in vscode-html-languageservice 4.1.1",
"tarball": "https://registry.npmjs.org/vscode-html-languageservice/-/vscode-html-languageservice-4.1.1.tgz",
"assets": [
"docs/assets/js/vs/language/html/htmlWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/beautify-css-NOTICE.txt",
"docs/licenses/monaco-editor/language-services/beautify-html-NOTICE.txt",
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/vscode-html-languageservice/thirdpartynotices.txt",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
},
{
"name": "glob-to-regexp (Monaco JSON fork)",
"version": "embedded source in vscode-json-languageservice 4.1.9",
"tarball": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-4.1.9.tgz",
"assets": [
"docs/assets/js/vs/language/json/jsonWorker.js"
],
"notices": [
"docs/licenses/monaco-editor/language-services/vscode-json-languageservice/LICENSE.md",
"docs/licenses/monaco-editor/language-services/ATTRIBUTION.md"
]
}
]
},
+23 -6
View File
@@ -80,9 +80,26 @@ disposes both workers and models. Monaco 0.30.1 has no public CSS/HTML/JSON work
getter equivalent to `getTypeScriptWorker`. Tests exercise valid/invalid CSS and
JSON, HTML tag completion, document symbols, and HTML/JSON formatting on three engines.
This source checkpoint does not close embedded license review. Follow up with the
seven packages' original licenses/third-party notices, including HTML beautifiers
and data sources. Core embedded libraries, mode bundles and language definitions
also remain under VENDOR-06. Revalidate editor-types and site-vendor tests when
changing declarations or delivered notices. Whole-site, physical-device and remote
release gates remain separate.
## Language-service notices
`monaco-language-notices.json` binds seven verified package versions to their nine
complete original LICENSE/third-party notice files. Two exact source-comment slices
preserve the HTML service's CSS/HTML beautifier MIT notices, 2007-2018 author years
and formatter authors. The package's older 2007-2017 text remains verbatim. A local
attribution explains this difference and the JSON service's original glob-to-regexp
BSD conditions; neither component is relabeled as solely Microsoft's MIT code.
The separate `beautify.js` source is Microsoft's no-op JS formatting adapter.
`notices.ts` binds the nine component entries (seven packages plus two embedded
origins) to their exact worker paths and delivered notices. The normal site build
checks these associations before any output write. Full reproduction additionally
matches all 12 notice inputs against their archived files or exact header byte
ranges. Preserve raw bytes and the `-text` Git attributes for frozen/output notices.
`site-vendor.spec.js` checks all 81 site notice files over HTTP plus the supplement's
12 relative links, alongside mobile player playback and console cleanup.
This does not close all Monaco embedded-source review. Core embedded libraries,
mode bundles, language definitions and remaining upstream data/origin details stay
under VENDOR-06. Revalidate editor-types and site-vendor tests when changing
declarations or delivered notices. Whole-site, physical-device and remote release
gates remain separate.
+80
View File
@@ -0,0 +1,80 @@
import type { VendorManifest } from '../notices.ts'
import type { ArchiveCache, Member } from './archives.ts'
import assert from 'node:assert/strict'
import fs from 'node:fs'
import path from 'node:path'
import { hash } from './archives.ts'
interface Notice {
source: string
target: string
sha256: string
archive?: string
member?: string
memberSha256?: string
slice?: { start: number, end: number }
}
interface Component { name: string, version: string, tarball: string, assets: string[], notices: string[] }
interface NoticeRecord { packages: (Component & { archive: string })[], components: Component[], notices: Notice[] }
interface Sources {
archives: { name: string, version: string, tarball: string }[]
modules: (Member & { id: string })[]
workers: { ids: string[], target: { path: string } }[]
}
function readNotices(root: string): NoticeRecord {
return JSON.parse(fs.readFileSync(path.join(root, 'refactor/baselines/monaco-language-notices.json'), 'utf8'))
}
// Cheap build-time binding checks; do not download or execute archived code.
export function verifyMonacoLanguageNotices(root: string, manifest: VendorManifest): number {
const record = readNotices(root)
const sources: Sources = JSON.parse(fs.readFileSync(path.join(root, 'refactor/baselines/monaco-languages-provenance.json'), 'utf8'))
assert.equal(record.notices.length, 12, 'Missing Monaco language notice source')
assert.equal(record.components.length, 9, 'Missing Monaco language component source')
assert.deepEqual(record.packages.map(item => item.name).sort(), [...new Set(sources.modules.map(item => item.id.split('/')[0]))].sort(), 'Incomplete Monaco service attribution')
const group = manifest.groups.find(group => group.name === 'monaco-editor')
assert(group?.components, 'Missing Monaco group')
for (const pkg of record.packages) {
const archive = sources.archives.find(item => `${item.name}-${item.version}` === pkg.archive)
assert(archive && archive.name === pkg.name && archive.version === pkg.version && archive.tarball === pkg.tarball, 'Wrong Monaco service source identity')
const modules = sources.modules.filter(item => item.archive === pkg.archive).map(item => item.id)
const assets = sources.workers.filter(worker => worker.ids.some(id => modules.includes(id))).map(worker => worker.target.path)
assert.deepEqual(pkg.assets, assets, 'Wrong Monaco service asset binding')
}
for (const expected of record.components) {
const matches: Component[] = group.components.filter(item => item.name === expected.name)
assert.equal(matches.length, 1, `Missing Monaco language component: ${expected.name}`)
const actual = matches[0]!
assert.equal(actual.version, expected.version, 'Wrong Monaco language version')
assert.equal(actual.tarball, expected.tarball, 'Wrong Monaco language source')
assert.deepEqual([...actual.assets].sort(), [...expected.assets].sort(), 'Wrong Monaco language asset')
assert.deepEqual([...actual.notices].sort(), [...expected.notices].sort(), `Wrong Monaco language notice binding: ${expected.name}`)
}
for (const expected of record.notices) {
const matches: Notice[] = group.notices.filter(item => item.target === expected.target)
assert.equal(matches.length, 1, `Missing Monaco language notice: ${expected.target}`)
assert.equal(matches[0]!.source, expected.source, 'Wrong Monaco language notice source')
assert.equal(matches[0]!.sha256, expected.sha256, 'Wrong Monaco language notice fingerprint')
}
return record.notices.length
}
// The source reproducer additionally proves the complete original files and the
// exact byte slices of embedded formatter headers against verified archives.
export function verifyMonacoLanguageNoticeArchives(root: string, cache: ArchiveCache): number {
const record = readNotices(root)
for (const notice of record.notices) {
const local = fs.readFileSync(path.join(root, notice.source))
assert.equal(hash(local), notice.sha256, 'Monaco language notice text changed')
if (notice.archive && notice.member) {
let upstream = cache.read(notice.archive, notice.member)
if (notice.slice) {
assert.equal(hash(upstream), notice.memberSha256, 'Monaco embedded header source changed')
assert(notice.slice.start >= 0 && notice.slice.end > notice.slice.start && notice.slice.end <= upstream.length, 'Invalid Monaco header boundary')
upstream = upstream.subarray(notice.slice.start, notice.slice.end)
}
assert(local.equals(upstream), 'Monaco language notice differs from archive')
}
}
return record.notices.length
}
@@ -7,6 +7,7 @@ import process from 'node:process'
import { fileURLToPath } from 'node:url'
import { ArchiveCache, hash } from './archives.ts'
import { aliasModule, languageHeader, nameModule, verifyWorkerSources } from './languages.ts'
import { verifyMonacoLanguageNoticeArchives } from './notices.ts'
interface Provenance {
archives: Archive[]
@@ -46,6 +47,7 @@ for (const member of record.modules) {
}
const cache = new ArchiveCache(root, path.join(root, 'refactor/.cache/monaco-review'))
await cache.verify(record.archives, record.remotes, process.argv.includes('--fetch'))
const notices = verifyMonacoLanguageNoticeArchives(root, cache)
for (const name of ['typescript', 'terser', 'source-map']) {
const archive = record.archives.find(item => item.name === name)
assert(archive, 'Missing historical compiler dependency')
@@ -115,4 +117,4 @@ for (const worker of record.workers) {
assert.equal(languageHeader(worker.language) + code, target.toString('utf8'), 'Minified language worker differs')
results.push({ language: worker.language, modules: worker.ids.length, exactSources: true, exactWorker: true, sha256: hash(target) })
}
console.log(JSON.stringify({ archives: record.archives.length, gitSources: record.remotes.length, npmModules: modules.size, aliases: aliases.size, workers: results, licenseReviewComplete: false, otherMonacoComponentsReviewed: false }))
console.log(JSON.stringify({ archives: record.archives.length, gitSources: record.remotes.length, npmModules: modules.size, aliases: aliases.size, workers: results, notices, licenseReviewComplete: false, otherMonacoComponentsReviewed: false }))
+15 -7
View File
@@ -21,13 +21,17 @@ test('mobile vConsole shows logs and upstream site notice texts are served uncha
notices.push({ component: group.name, version: group.version, url: response.url(), sha256: notice.sha256 })
}
}
const attributionPath = '/licenses/console/react-pure-render/ATTRIBUTION.md'
const attribution = await request.get(attributionPath)
expect(attribution.status()).toBe(200)
const localLinks = [...(await attribution.text()).matchAll(/\]\((\.\.?\/[^)]+)\)/g)]
expect(localLinks).toHaveLength(2)
for (const [, target] of localLinks)
expect(notices.map(notice => notice.url)).toContain(new URL(target, attribution.url()).href)
for (const { path, count } of [
{ path: '/licenses/console/react-pure-render/ATTRIBUTION.md', count: 2 },
{ path: '/licenses/monaco-editor/language-services/ATTRIBUTION.md', count: 12 },
]) {
const attribution = await request.get(path)
expect(attribution.status()).toBe(200)
const localLinks = [...(await attribution.text()).matchAll(/\]\((\.\.?\/[^)]+)\)/g)]
expect(localLinks).toHaveLength(count)
for (const [, target] of localLinks)
expect(notices.map(notice => notice.url)).toContain(new URL(target, attribution.url()).href)
}
await testInfo.attach('verified-vendor-notices', { contentType: 'application/json', body: JSON.stringify(notices) })
const provenance = JSON.parse(fs.readFileSync('refactor/baselines/site-codicons-provenance.json', 'utf8'))
const font = await request.get(`/${provenance.fontPath.slice('docs/'.length)}`)
@@ -37,6 +41,10 @@ test('mobile vConsole shows logs and upstream site notice texts are served uncha
expect(index.status()).toBe(200)
expect(await index.text()).toContain('Included component: @vscode/codicons 0.0.26')
expect(await index.text()).toContain('Included component: typescript (Monaco worker) 4.4.4')
expect(await index.text()).toContain('Included component: vscode-html-languageservice 4.1.1')
expect(await index.text()).toContain('Included component: vscode-json-languageservice 4.1.9')
expect(await index.text()).toContain('Included component: js-beautify (Monaco HTML embedded)')
expect(await index.text()).toContain('Included component: glob-to-regexp (Monaco JSON fork)')
expect(await index.text()).toContain('Included component: console-feed 3.2.2')
expect(await index.text()).toContain('Included component: react-pure-render (shallowequal origin) source commit 729cdbd')
expect(await index.text()).toContain('Included component: chromium-string-utils')
+29
View File
@@ -8,9 +8,38 @@ import process from 'node:process'
// eslint-disable-next-line test/no-import-node-test -- Verify real notice bytes and failure-before-write behavior.
import test from 'node:test'
import { verifyConsoleNoticeSources } from '../scripts/site-vendor/console/notices.ts'
import { verifyMonacoLanguageNoticeArchives, verifyMonacoLanguageNotices } from '../scripts/site-vendor/monaco/notices.ts'
import { generateNotices, writeOrCheckNotices } from '../scripts/site-vendor/notices.ts'
const hash = bytes => createHash('sha256').update(bytes).digest('hex')
test('Monaco language notices bind full original terms to their actual worker sources', () => {
const original = JSON.parse(fs.readFileSync('scripts/site-vendor/manifest.json', 'utf8'))
assert.equal(verifyMonacoLanguageNotices(process.cwd(), original), 12)
const manifest = structuredClone(original)
const group = manifest.groups.find(group => group.name === 'monaco-editor')
const json = group.components.find(item => item.name === 'vscode-json-languageservice')
const css = group.components.find(item => item.name === 'vscode-css-languageservice')
json.notices = [...css.notices]
// All files still exist: a count/hash-only generator accepts this wrong license.
assert.doesNotThrow(() => generateNotices(process.cwd(), manifest))
assert.throws(() => verifyMonacoLanguageNotices(process.cwd(), manifest), /Wrong Monaco language notice binding/)
json.notices = original.groups.find(group => group.name === 'monaco-editor').components.find(item => item.name === json.name).notices
json.assets = [...css.assets]
assert.throws(() => verifyMonacoLanguageNotices(process.cwd(), manifest), /Wrong Monaco language asset/)
assert.throws(() => verifyMonacoLanguageNoticeArchives(process.cwd(), { read: () => Buffer.from('unrelated archive notice') }), /differs from archive/)
})
test('Monaco language delivery cannot omit a third-party notice or embedded author header', () => {
const original = JSON.parse(fs.readFileSync('scripts/site-vendor/manifest.json', 'utf8'))
const record = JSON.parse(fs.readFileSync('refactor/baselines/monaco-language-notices.json', 'utf8'))
for (const notice of record.notices) {
const manifest = structuredClone(original)
const group = manifest.groups.find(group => group.name === 'monaco-editor')
group.notices = group.notices.filter(item => item.target !== notice.target)
assert.throws(() => verifyMonacoLanguageNotices(process.cwd(), manifest), /Missing Monaco language notice/)
}
})
test('Console notices retain the verified owner and license association', () => {
const manifest = JSON.parse(fs.readFileSync('scripts/site-vendor/manifest.json', 'utf8'))
assert.deepEqual(verifyConsoleNoticeSources(process.cwd(), manifest), { components: 44, upstreamNotices: 46 })