build(site): [SITE-07] verify Node path origin and preserve complete notices

This commit is contained in:
Harvey Zhao committed 2026-09-15 12:18:24 +08:00
1 parent d2b2f76db8
commit d3aa4bbfe4
24 files changed
+4050 -5

No files matched your search

@@ -0,0 +1,275 @@
[
{
"namespace": "posix",
"method": "normalize",
"args": [
"/foo//bar/../baz/"
],
"expected": "/foo/baz/"
},
{
"namespace": "posix",
"method": "normalize",
"args": [
"../../a/./b"
],
"expected": "../../a/b"
},
{
"namespace": "posix",
"method": "normalize",
"args": [
""
],
"expected": "."
},
{
"namespace": "posix",
"method": "basename",
"args": [
"/a/file.txt",
".txt"
],
"expected": "file"
},
{
"namespace": "posix",
"method": "basename",
"args": [
"/a/.profile"
],
"expected": ".profile"
},
{
"namespace": "posix",
"method": "dirname",
"args": [
"/a/b/"
],
"expected": "/a"
},
{
"namespace": "posix",
"method": "extname",
"args": [
"/a/.hidden"
],
"expected": ""
},
{
"namespace": "posix",
"method": "extname",
"args": [
"/a/file.tar.gz"
],
"expected": ".gz"
},
{
"namespace": "posix",
"method": "join",
"args": [
"",
"a",
"..",
"b"
],
"expected": "b"
},
{
"namespace": "posix",
"method": "relative",
"args": [
"/a/b",
"/a/c/d"
],
"expected": "../c/d"
},
{
"namespace": "posix",
"method": "resolve",
"args": [
"/a",
"../b"
],
"expected": "/b"
},
{
"namespace": "posix",
"method": "parse",
"args": [
"/文件/report.txt"
],
"expected": {
"root": "/",
"dir": "/文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
}
},
{
"namespace": "posix",
"method": "format",
"args": [
{
"root": "/",
"dir": "/a",
"base": "b.txt"
}
],
"expected": "/a/b.txt"
},
{
"namespace": "posix",
"method": "isAbsolute",
"args": [
"../a"
],
"expected": false
},
{
"namespace": "posix",
"method": "toNamespacedPath",
"args": [
"/a/b"
],
"expected": "/a/b"
},
{
"namespace": "win32",
"method": "normalize",
"args": [
"C:\\foo\\..\\bar\\"
],
"expected": "C:\\bar\\"
},
{
"namespace": "win32",
"method": "normalize",
"args": [
"\\\\server\\share\\a\\..\\b"
],
"expected": "\\\\server\\share\\b"
},
{
"namespace": "win32",
"method": "normalize",
"args": [
""
],
"expected": "."
},
{
"namespace": "win32",
"method": "basename",
"args": [
"C:\\a\\file.txt",
".txt"
],
"expected": "file"
},
{
"namespace": "win32",
"method": "basename",
"args": [
"C:\\a\\.profile"
],
"expected": ".profile"
},
{
"namespace": "win32",
"method": "dirname",
"args": [
"C:\\a\\b\\"
],
"expected": "C:\\a"
},
{
"namespace": "win32",
"method": "extname",
"args": [
"C:\\a\\file.tar.gz"
],
"expected": ".gz"
},
{
"namespace": "win32",
"method": "join",
"args": [
"\\\\server",
"share",
"a"
],
"expected": "\\\\server\\share\\a"
},
{
"namespace": "win32",
"method": "join",
"args": [
"",
"",
"a"
],
"expected": "a"
},
{
"namespace": "win32",
"method": "relative",
"args": [
"C:\\a\\b",
"C:\\a\\c"
],
"expected": "..\\c"
},
{
"namespace": "win32",
"method": "resolve",
"args": [
"C:\\a",
"..\\b"
],
"expected": "C:\\b"
},
{
"namespace": "win32",
"method": "parse",
"args": [
"C:\\文件\\report.txt"
],
"expected": {
"root": "C:\\",
"dir": "C:\\文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
}
},
{
"namespace": "win32",
"method": "format",
"args": [
{
"root": "C:\\",
"dir": "C:\\a",
"base": "b.txt"
}
],
"expected": "C:\\a\\b.txt"
},
{
"namespace": "win32",
"method": "isAbsolute",
"args": [
"C:a"
],
"expected": false
},
{
"namespace": "win32",
"method": "toNamespacedPath",
"args": [
"C:\\a\\b"
],
"expected": "\\\\?\\C:\\a\\b"
}
]
@@ -0,0 +1,142 @@
{
"schemaVersion": 1,
"task": "SITE-07",
"nodeCommit": "bd60e93357a118204ea238d94e7a9e4209d93062",
"archives": [
{
"name": "monaco-editor",
"version": "0.30.1",
"tarball": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.30.1.tgz",
"integrity": "sha512-B/y4+b2O5G2gjuxIFtCE2EkM17R2NM7/3F8x0qcPsqy4V83bitJTIO4TIeZpYlzu/xy6INiY/+84BEm6+7Cmzg==",
"sha256": "d7872ab742036036eca48cd54e43d751bede56742f0689bcf4049bcf701468c7"
},
{
"name": "monaco-editor-core",
"version": "0.30.1",
"tarball": "https://registry.npmjs.org/monaco-editor-core/-/monaco-editor-core-0.30.1.tgz",
"integrity": "sha512-WNxfchYafMZXVfysqg/ESW4MtOpYLPaIKrzudNlgwYvfYID+O/nwSZI5X+KxW84roVzHsNgFGyOOesfHFZwYUA==",
"sha256": "a3b004061373a7f6217eba6399f1a1de31970bee2eee693aada289035198c5ec"
},
{
"name": "typescript",
"version": "4.5.0-dev.20211021",
"tarball": "https://registry.yarnpkg.com/typescript/-/typescript-4.5.0-dev.20211021.tgz",
"integrity": "sha512-lZJTNSL8CBqgURSrVwCto8WEV1U0BUwoy+GTmINoRc/Sm2BcYiRpcq/OAiSg/1q/rvODousdOsHePfAZfwi0Qg==",
"sha256": "27cbe79009d92bcbcbbb7c5575fd8a0821d16eb26b410c249db018d49b10a693"
}
],
"remotes": [
{
"source": "refactor/baselines/site-vendor/monaco-node-path/node-path.js.txt",
"sha256": "ff755282e187b98ebb2f5381d3caf235cee94afb97d7d994007079a01694319e",
"gitBlobSha": "7532b795bf63f7190bb46946d2db69459bce08a7",
"apiUrl": "https://api.github.com/repos/nodejs/node/contents/lib/path.js?ref=bd60e93357a118204ea238d94e7a9e4209d93062"
},
{
"source": "refactor/baselines/site-vendor/monaco-node-path/vscode-path.ts.txt",
"sha256": "d500777083482e1c9db549b44b0c8de6702fd1bdb4aab8f51ad2a3d670960676",
"gitBlobSha": "00d948acd88597642885d21ea1dac6e6a860949c",
"apiUrl": "https://api.github.com/repos/microsoft/vscode/contents/src/vs/base/common/path.ts?ref=829382514cb1065f5ebb90f436e1c6103e153953"
},
{
"source": "refactor/baselines/site-vendor/monaco-css-build/yarn.lock.txt",
"sha256": "9f74da55701070e0d2203daf46b1552e12a95c0b7ee9bd10694fa2b61a47227a",
"gitBlobSha": "2b4d4ce38436144cd7b3405a1eef1a4cd7d53cac",
"apiUrl": "https://api.github.com/repos/microsoft/vscode/contents/yarn.lock?ref=829382514cb1065f5ebb90f436e1c6103e153953"
}
],
"nodeSource": "refactor/baselines/site-vendor/monaco-node-path/node-path.js.txt",
"vscodeSource": "refactor/baselines/site-vendor/monaco-node-path/vscode-path.ts.txt",
"lockSource": "refactor/baselines/site-vendor/monaco-css-build/yarn.lock.txt",
"maps": [
{
"archive": "monaco-editor-core-0.30.1",
"member": "package/min-maps/vs/editor/editor.main.js.map",
"sha256": "981ef3b9027387b50c8a035dbb14e66ce6ecbc6a3e617db423c585d0f434057f",
"source": "out-editor/vs/editor/file:/Users/alex/src/vscode/out-editor-src/vs/base/common/path.ts"
},
{
"archive": "monaco-editor-core-0.30.1",
"member": "package/min-maps/vs/base/worker/workerMain.js.map",
"sha256": "824cd08c975e30bd9d8942051e8a38f9f852efb3a6c09984c25d845d0a5e36a5",
"source": "out-editor/vs/base/worker/file:/Users/alex/src/vscode/out-editor-src/vs/base/common/path.ts"
}
],
"outputs": [
{
"development": {
"archive": "monaco-editor-core-0.30.1",
"member": "package/dev/vs/editor/editor.main.js",
"sha256": "483348c3a73e86f201bc0df26ceee2c3ef610fe56c344993410fc093bac228a7"
},
"signature": "define(__m[75/*vs/base/common/path*/], __M([0/*require*/,1/*exports*/,300/*vs/base/common/process*/]),",
"offset": 334819,
"target": {
"path": "docs/assets/js/vs/editor/editor.main.js",
"sha256": "05a50ed50bb013b6e7a82d25686186aa7bdff8b8209c7badab00e046b5e99618"
},
"editor": {
"archive": "monaco-editor-0.30.1",
"member": "package/min/vs/editor/editor.main.js",
"sha256": "05a50ed50bb013b6e7a82d25686186aa7bdff8b8209c7badab00e046b5e99618"
}
},
{
"development": {
"archive": "monaco-editor-core-0.30.1",
"member": "package/dev/vs/base/worker/workerMain.js",
"sha256": "016d569eb0ae9ba9865bc9c9be1da9fe88f722622c60828c4fa93b73245e2a42"
},
"signature": "define(__m[20/*vs/base/common/path*/], __M([0/*require*/,1/*exports*/,19/*vs/base/common/process*/]),",
"offset": 159086,
"target": {
"path": "docs/assets/js/vs/base/worker/workerMain.js",
"sha256": "3ebdb68f45f9fed1c587901c9db42dd70e8a552421e330f39116fc7b078ba67e"
},
"editor": {
"archive": "monaco-editor-0.30.1",
"member": "package/min/vs/base/worker/workerMain.js",
"sha256": "3ebdb68f45f9fed1c587901c9db42dd70e8a552421e330f39116fc7b078ba67e"
}
}
],
"component": {
"name": "nodejs path (Monaco core)",
"version": "14.16.0",
"tarball": "https://github.com/nodejs/node/blob/bd60e93357a118204ea238d94e7a9e4209d93062/lib/path.js",
"assets": [
"docs/assets/js/vs/editor/editor.main.js",
"docs/assets/js/vs/base/worker/workerMain.js"
],
"notices": [
"docs/licenses/monaco-editor/ThirdPartyNotices.txt",
"docs/licenses/monaco-editor/core-path/ATTRIBUTION.md"
]
},
"legacyNotice": {
"source": "refactor/baselines/site-vendor/monaco-editor-ThirdPartyNotices.txt.txt",
"target": "docs/licenses/monaco-editor/ThirdPartyNotices.txt",
"sha256": "b23ab6e9a1a31ce6948a98b16a83474c999a384ece75643dd0affc83ea1724ef"
},
"attribution": {
"source": "refactor/baselines/site-vendor/monaco-node-path/ATTRIBUTION.md.txt",
"target": "docs/licenses/monaco-editor/core-path/ATTRIBUTION.md",
"sha256": "40583c701c0bcbd8e10935652a0a8b02e2073b0ef040fb7be7b939c437d8b8dc"
},
"fixtures": {
"path": "refactor/baselines/monaco-node-path-fixtures.json",
"sha256": "9c3ad261603d231a093e98ed4a43f302c1aa722d696f97c129d9bf95fa083ccc"
},
"review": {
"classification": "Existing modified browser port; not an unmodified Node runtime",
"algorithms": [
"Windows join adds a typeof firstPart string guard",
"Both basename implementations share a loop index declared outside the loops"
],
"environment": [
"Local process adapter and validation/Error subclass",
"Typed interfaces, explicit exports and platform aliases; Node legacy _makeLong omitted"
],
"unmodifiedSemanticEquivalenceClaimed": false
}
}
@@ -0,0 +1,350 @@
{
"schemaVersion": 1,
"task": "SITE-07",
"status": "checkpoint-incomplete",
"recordedAt": "2026-09-15T04:12:40.550Z",
"baseCommit": "d2b2f76db84ba107751766935a79b78766b81c7d",
"node": "v24.21.0",
"yarn": "1.22.22",
"fingerprints": {
"refactor/baselines/monaco-node-path-provenance.json": "45872f22f226922a57dde70b9ad2d16c7844c6da0ffd7f6f5d23c1fdcfafa6fd",
"refactor/baselines/monaco-node-path-fixtures.json": "9c3ad261603d231a093e98ed4a43f302c1aa722d696f97c129d9bf95fa083ccc",
"scripts/site-vendor/monaco/node-path.ts": "dbcd863a436af83e9969b99bad600df8fc6d42f460ac5b03e3e9408cb11f4da8",
"scripts/site-vendor/monaco/reproduce-node-path.ts": "6ce26a15ddd3fdcdeb0deb62e5e2ef81aadf00c85c284e1204eeaf2b8d648c4c",
"scripts/site-vendor/manifest.json": "5ed425e4136a7fd59a4784cd52070dc9be21066f3ba4757778ce4da5d8a5ed7b",
"scripts/build-site-notices.mjs": "95576c1f36fbfcc1613813ae7cf101b871d0dd7a201a3edcbe26003d96e4da03",
"test/browser/editor-path.spec.js": "cae3cbfee45494e95924b3eb1d31de92bee9903d0ab381c578c162f2071b551d",
"test/browser/site-vendor.spec.js": "bd9abd585d446a2bbeefee7ed750f2e302cc84573b8a7ce45007d8933dc692bd",
"docs/licenses/monaco-editor/core-path/ATTRIBUTION.md": "40583c701c0bcbd8e10935652a0a8b02e2073b0ef040fb7be7b939c437d8b8dc",
"docs/THIRD_PARTY_NOTICES.md": "048ba3ef9aea250c7683cafc8d0cb7d5b36a853d49b5e8ab406dc2b07c852e2d"
},
"reproduction": {
"result": {
"archives": 3,
"gitSources": 3,
"maps": 2,
"removedUnusedExports": 6,
"outputs": [
{
"path": "docs/assets/js/vs/editor/editor.main.js",
"offset": 334819,
"moduleBytes": 57628,
"exactModule": true,
"sha256": "05a50ed50bb013b6e7a82d25686186aa7bdff8b8209c7badab00e046b5e99618"
},
{
"path": "docs/assets/js/vs/base/worker/workerMain.js",
"offset": 159086,
"moduleBytes": 57627,
"exactModule": true,
"sha256": "3ebdb68f45f9fed1c587901c9db42dd70e8a552421e330f39116fc7b078ba67e"
}
],
"fixtures": 30,
"existingLicenseTextMatches": true,
"compiler": "4.5.0-dev.20211021",
"fullCoreTypeScriptBuild": false,
"unmodifiedNodeRuntimeClaimed": false
},
"offline": {
"exitCode": 0,
"logSha256": "5877aa1df3cfcd002b8c360546bbe15974e209317819cb35df5394916582670e"
},
"online": {
"exitCode": 0,
"logSha256": "5877aa1df3cfcd002b8c360546bbe15974e209317819cb35df5394916582670e"
}
},
"unit": {
"passed": 28,
"failed": 0,
"logSha256": "548fcbf988efb129c426c013ac2038992f103c274363b7bbcd422b395466dfc2"
},
"types": {
"exitCode": 0,
"logSha256": "975a28d6b24bd2efde60d6feb9a4731f84df8c04c367cf1d5a1de9453dc84262"
},
"lint": {
"exitCode": 0
},
"notices": {
"files": 86,
"outputs": 87
},
"browser": {
"command": "yarn test:browser test/browser/editor-path.spec.js test/browser/site-vendor.spec.js --workers=1",
"reportSha256": "35b5b4cd62c5e5993f3c0398ebc31c5871fc30b6ab1aebbd2ce41967dee06c8b",
"stats": {
"startTime": "2026-09-15T04:07:59.233Z",
"duration": 14093.269,
"expected": 6,
"skipped": 0,
"unexpected": 0,
"flaky": 0
},
"errors": [],
"tests": [
{
"title": "docs Monaco path port preserves frozen Node path results in both namespaces",
"project": "chromium",
"status": "passed",
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"failedRequests": [],
"path": {
"cases": 30,
"values": [
"/foo/baz/",
"../../a/b",
".",
"file",
".profile",
"/a",
"",
".gz",
"b",
"../c/d",
"/b",
{
"root": "/",
"dir": "/文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
},
"/a/b.txt",
false,
"/a/b",
"C:\\bar\\",
"\\\\server\\share\\b",
".",
"file",
".profile",
"C:\\a",
".gz",
"\\\\server\\share\\a",
"a",
"..\\c",
"C:\\b",
{
"root": "C:\\",
"dir": "C:\\文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
},
"C:\\a\\b.txt",
false,
"\\\\?\\C:\\a\\b"
],
"namespace": "win32",
"alias": true,
"invalid": {
"name": "Error",
"code": "ERR_INVALID_ARG_TYPE"
}
}
},
{
"title": "docs Monaco path port preserves frozen Node path results in both namespaces",
"project": "firefox",
"status": "passed",
"browser": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"failedRequests": [],
"path": {
"cases": 30,
"values": [
"/foo/baz/",
"../../a/b",
".",
"file",
".profile",
"/a",
"",
".gz",
"b",
"../c/d",
"/b",
{
"root": "/",
"dir": "/文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
},
"/a/b.txt",
false,
"/a/b",
"C:\\bar\\",
"\\\\server\\share\\b",
".",
"file",
".profile",
"C:\\a",
".gz",
"\\\\server\\share\\a",
"a",
"..\\c",
"C:\\b",
{
"root": "C:\\",
"dir": "C:\\文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
},
"C:\\a\\b.txt",
false,
"\\\\?\\C:\\a\\b"
],
"namespace": "win32",
"alias": true,
"invalid": {
"name": "Error",
"code": "ERR_INVALID_ARG_TYPE"
}
}
},
{
"title": "docs Monaco path port preserves frozen Node path results in both namespaces",
"project": "webkit",
"status": "passed",
"browser": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"failedRequests": [],
"path": {
"cases": 30,
"values": [
"/foo/baz/",
"../../a/b",
".",
"file",
".profile",
"/a",
"",
".gz",
"b",
"../c/d",
"/b",
{
"root": "/",
"dir": "/文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
},
"/a/b.txt",
false,
"/a/b",
"C:\\bar\\",
"\\\\server\\share\\b",
".",
"file",
".profile",
"C:\\a",
".gz",
"\\\\server\\share\\a",
"a",
"..\\c",
"C:\\b",
{
"root": "C:\\",
"dir": "C:\\文件",
"base": "report.txt",
"ext": ".txt",
"name": "report"
},
"C:\\a\\b.txt",
false,
"\\\\?\\C:\\a\\b"
],
"namespace": "posix",
"alias": true,
"invalid": {
"name": "Error",
"code": "ERR_INVALID_ARG_TYPE"
}
}
},
{
"title": "mobile vConsole shows logs and upstream site notice texts are served unchanged",
"project": "chromium",
"status": "passed",
"browser": "153.0.8010.12",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"failedRequests": [
{
"url": "http://127.0.0.1:8084/test/pattern.mp4",
"resourceType": "media",
"failure": {
"errorText": "net::ERR_ABORTED"
}
}
],
"notices": {
"count": 86,
"sha256": "fd92aad7f34fc1daf6d700a8ab48f818effbe2d8f85aa9a3c1fa008d3680bdb7"
}
},
{
"title": "mobile vConsole shows logs and upstream site notice texts are served unchanged",
"project": "firefox",
"status": "passed",
"browser": "155.0",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"failedRequests": [],
"notices": {
"count": 86,
"sha256": "fd92aad7f34fc1daf6d700a8ab48f818effbe2d8f85aa9a3c1fa008d3680bdb7"
}
},
{
"title": "mobile vConsole shows logs and upstream site notice texts are served unchanged",
"project": "webkit",
"status": "passed",
"browser": "26.6",
"platform": "win32",
"errors": [],
"consoleErrors": [],
"failedRequests": [],
"notices": {
"count": 86,
"sha256": "fd92aad7f34fc1daf6d700a8ab48f818effbe2d8f85aa9a3c1fa008d3680bdb7"
}
}
]
},
"limitations": [
"The Node reference harness covers deterministic valid calls, not Node error formatting or cwd/drive behavior.",
"Full original core TypeScript compilation and remaining embedded origins are not closed by one module proof.",
"Chromium mobile playback passed its currentTime assertion but recorded one pattern.mp4 net::ERR_ABORTED request; that observation is retained.",
"Runtime assets are unchanged. No device, external SDK, remote CI or publication evidence is claimed.",
"The CSS publication newline-stage limitation and pending Thumbnail default policy remain recorded separately."
],
"finalPathCorrection": {
"source": "refactor/baselines/site-vendor/monaco-node-path/ATTRIBUTION.md.txt",
"reason": "Frozen deployed text contains a site-relative link; it is not a repository Markdown document.",
"noticeCheckExitCode": 0,
"planCheckExitCode": 0,
"unit": {
"passed": 28,
"failed": 0,
"logSha256": "7b904dd4144c6e9638c8e269370fae60a91ccf8156eca13391b9c484585d8967"
},
"offline": {
"exitCode": 0,
"logSha256": "a04f121993cf78bc33a52d07a0b37617a329d5364470908060f742b36ff4b0a4"
}
}
}
@@ -0,0 +1,22 @@
# Node path in Monaco 0.30.1
The editor and core worker include VS Code's browser port of Node.js path. The
source identifies Node v14.16.0 ([fixed Node source](https://github.com/nodejs/node/blob/bd60e93357a118204ea238d94e7a9e4209d93062/lib/path.js)),
ported in [VS Code 829382514cb1065f5ebb90f436e1c6103e153953](https://github.com/microsoft/vscode/blob/829382514cb1065f5ebb90f436e1c6103e153953/src/vs/base/common/path.ts).
The full Joyent/Node contributor copyright and permission text is already in
[the original third-party notices](../ThirdPartyNotices.txt). That upstream index
links an older Node commit; this supplement identifies the actual ported source
without removing or rewriting the original notice. Its license text matches both
the v14.16.0 source and VS Code's retained comment.
VS Code adds types and a browser process adapter, local argument validation and
an Error subclass, exports platform-selected functions, and omits Node's legacy
_makeLong alias. Reviewed algorithm edits include a string guard in Windows join
and shared loop-variable declarations in both basename implementations. These
are existing upstream adaptations, not new ArtPlayer behavior changes.
Six unused top-level exports are removed from the prepared sources. Both actual
source maps retain identical complete path-module sources after those removals;
TypeScript 4.5.0-dev.20211021 reproduces the full module in editor and worker builds.
The full VS Code compiler pipeline is a separate verification scope.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff