diff --git a/package-lock.json b/package-lock.json
index a92f2ad9..10dddf71 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,8 +19,11 @@
"@babel/preset-env": "^7.22.5",
"@babel/preset-typescript": "^7.22.5",
"@jest/globals": "^29.5.0",
+ "@types/cheerio": "^0.22.31",
"@types/minimist": "^1.2.2",
+ "axios": "^1.4.0",
"babel-jest": "^29.5.0",
+ "cheerio": "1.0.0-rc.12",
"jest": "^29.5.0",
"nodemon": "^2.0.22",
"ts-node": "^10.9.1"
@@ -2432,6 +2435,15 @@
"@babel/types": "^7.20.7"
}
},
+ "node_modules/@types/cheerio": {
+ "version": "0.22.32",
+ "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.32.tgz",
+ "integrity": "sha512-4RrpCp5ufWTLb6/1RCOjazRhUM6DTD79l763det29n8kLmPB7XeN46cxlUf2GsSF+0g6CbWT5nYl8C/Gs15bdg==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/graceful-fs": {
"version": "4.1.6",
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
@@ -2598,6 +2610,23 @@
"sprintf-js": "~1.0.2"
}
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
+ },
+ "node_modules/axios": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz",
+ "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/babel-jest": {
"version": "29.5.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
@@ -2752,6 +2781,12 @@
"node": ">=8"
}
},
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
"node_modules/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -2905,6 +2940,44 @@
"node": ">=10"
}
},
+ "node_modules/cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "dev": true,
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -3001,6 +3074,18 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -3046,6 +3131,34 @@
"node": ">= 8"
}
},
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
"node_modules/debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -3070,6 +3183,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/detect-newline": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
@@ -3097,6 +3219,61 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dev": true,
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dev": true,
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
"node_modules/electron-to-chromium": {
"version": "1.4.445",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.445.tgz",
@@ -3121,6 +3298,18 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
"node_modules/error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -3263,6 +3452,40 @@
"node": ">=8"
}
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
@@ -3407,6 +3630,25 @@
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
+ "node_modules/htmlparser2": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
"node_modules/human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@@ -4439,6 +4681,27 @@
"node": ">=8.6"
}
},
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
@@ -4580,6 +4843,18 @@
"node": ">=8"
}
},
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
"node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -4673,6 +4948,31 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+ "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+ "dev": true,
+ "dependencies": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -4794,6 +5094,12 @@
"node": ">= 6"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
"node_modules/pstree.remy": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
@@ -7277,6 +7583,15 @@
"@babel/types": "^7.20.7"
}
},
+ "@types/cheerio": {
+ "version": "0.22.32",
+ "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.32.tgz",
+ "integrity": "sha512-4RrpCp5ufWTLb6/1RCOjazRhUM6DTD79l763det29n8kLmPB7XeN46cxlUf2GsSF+0g6CbWT5nYl8C/Gs15bdg==",
+ "dev": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/graceful-fs": {
"version": "4.1.6",
"resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.6.tgz",
@@ -7416,6 +7731,23 @@
"sprintf-js": "~1.0.2"
}
},
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
+ },
+ "axios": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz",
+ "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==",
+ "dev": true,
+ "requires": {
+ "follow-redirects": "^1.15.0",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"babel-jest": {
"version": "29.5.0",
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.5.0.tgz",
@@ -7536,6 +7868,12 @@
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
+ "boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -7633,6 +7971,35 @@
"integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
"dev": true
},
+ "cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "dev": true,
+ "requires": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ }
+ },
+ "cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ }
+ },
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@@ -7699,6 +8066,15 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dev": true,
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -7737,6 +8113,25 @@
"which": "^2.0.1"
}
},
+ "css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ }
+ },
+ "css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "dev": true
+ },
"debug": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
@@ -7758,6 +8153,12 @@
"integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
"dev": true
},
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true
+ },
"detect-newline": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
@@ -7776,6 +8177,43 @@
"integrity": "sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==",
"dev": true
},
+ "dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ }
+ },
+ "domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "dev": true
+ },
+ "domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.3.0"
+ }
+ },
+ "domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dev": true,
+ "requires": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ }
+ },
"electron-to-chromium": {
"version": "1.4.445",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.445.tgz",
@@ -7794,6 +8232,12 @@
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
+ "entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "dev": true
+ },
"error-ex": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
@@ -7902,6 +8346,23 @@
"path-exists": "^4.0.0"
}
},
+ "follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "dev": true
+ },
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dev": true,
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
"fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
@@ -8006,6 +8467,18 @@
"integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
"dev": true
},
+ "htmlparser2": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "dev": true,
+ "requires": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
"human-signals": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
@@ -8797,6 +9270,21 @@
"picomatch": "^2.3.1"
}
},
+ "mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "dev": true
+ },
+ "mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dev": true,
+ "requires": {
+ "mime-db": "1.52.0"
+ }
+ },
"mimic-fn": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
@@ -8893,6 +9381,15 @@
"path-key": "^3.0.0"
}
},
+ "nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "requires": {
+ "boolbase": "^1.0.0"
+ }
+ },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -8958,6 +9455,25 @@
"lines-and-columns": "^1.1.6"
}
},
+ "parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "requires": {
+ "entities": "^4.4.0"
+ }
+ },
+ "parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+ "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+ "dev": true,
+ "requires": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ }
+ },
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
@@ -9048,6 +9564,12 @@
"sisteransi": "^1.0.5"
}
},
+ "proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
"pstree.remy": {
"version": "1.1.8",
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
diff --git a/~/.nvm/.cache/bin/node-v20.3.1-linux-x64/node-v20.3.1-linux-x64.tar.xz b/~/.nvm/.cache/bin/node-v20.3.1-linux-x64/node-v20.3.1-linux-x64.tar.xz
deleted file mode 100644
index 57730632..00000000
Binary files a/~/.nvm/.cache/bin/node-v20.3.1-linux-x64/node-v20.3.1-linux-x64.tar.xz and /dev/null differ
diff --git a/~/.nvm/alias/default b/~/.nvm/alias/default
deleted file mode 100644
index 2bf5ad04..00000000
--- a/~/.nvm/alias/default
+++ /dev/null
@@ -1 +0,0 @@
-stable
diff --git a/~/.nvm/alias/lts/* b/~/.nvm/alias/lts/*
deleted file mode 100644
index a77793ec..00000000
--- a/~/.nvm/alias/lts/*
+++ /dev/null
@@ -1 +0,0 @@
-lts/hydrogen
diff --git a/~/.nvm/alias/lts/argon b/~/.nvm/alias/lts/argon
deleted file mode 100644
index 1dff3233..00000000
--- a/~/.nvm/alias/lts/argon
+++ /dev/null
@@ -1 +0,0 @@
-v4.9.1
diff --git a/~/.nvm/alias/lts/boron b/~/.nvm/alias/lts/boron
deleted file mode 100644
index d777d749..00000000
--- a/~/.nvm/alias/lts/boron
+++ /dev/null
@@ -1 +0,0 @@
-v6.17.1
diff --git a/~/.nvm/alias/lts/carbon b/~/.nvm/alias/lts/carbon
deleted file mode 100644
index 9e64b901..00000000
--- a/~/.nvm/alias/lts/carbon
+++ /dev/null
@@ -1 +0,0 @@
-v8.17.0
diff --git a/~/.nvm/alias/lts/dubnium b/~/.nvm/alias/lts/dubnium
deleted file mode 100644
index c8b7cbff..00000000
--- a/~/.nvm/alias/lts/dubnium
+++ /dev/null
@@ -1 +0,0 @@
-v10.24.1
diff --git a/~/.nvm/alias/lts/erbium b/~/.nvm/alias/lts/erbium
deleted file mode 100644
index 93c43251..00000000
--- a/~/.nvm/alias/lts/erbium
+++ /dev/null
@@ -1 +0,0 @@
-v12.22.12
diff --git a/~/.nvm/alias/lts/fermium b/~/.nvm/alias/lts/fermium
deleted file mode 100644
index 4a9c19cb..00000000
--- a/~/.nvm/alias/lts/fermium
+++ /dev/null
@@ -1 +0,0 @@
-v14.21.3
diff --git a/~/.nvm/alias/lts/gallium b/~/.nvm/alias/lts/gallium
deleted file mode 100644
index 53d0020f..00000000
--- a/~/.nvm/alias/lts/gallium
+++ /dev/null
@@ -1 +0,0 @@
-v16.20.1
diff --git a/~/.nvm/alias/lts/hydrogen b/~/.nvm/alias/lts/hydrogen
deleted file mode 100644
index 5e0828ad..00000000
--- a/~/.nvm/alias/lts/hydrogen
+++ /dev/null
@@ -1 +0,0 @@
-v18.16.1
diff --git a/~/.nvm/versions/node/v20.3.1/CHANGELOG.md b/~/.nvm/versions/node/v20.3.1/CHANGELOG.md
deleted file mode 100644
index fc58f6f6..00000000
--- a/~/.nvm/versions/node/v20.3.1/CHANGELOG.md
+++ /dev/null
@@ -1,788 +0,0 @@
-# Node.js 20 ChangeLog
-
-
-
-
-
-* Other Versions
- * [19.x](CHANGELOG_V19.md)
- * [18.x](CHANGELOG_V18.md)
- * [17.x](CHANGELOG_V17.md)
- * [16.x](CHANGELOG_V16.md)
- * [15.x](CHANGELOG_V15.md)
- * [14.x](CHANGELOG_V14.md)
- * [13.x](CHANGELOG_V13.md)
- * [12.x](CHANGELOG_V12.md)
- * [11.x](CHANGELOG_V11.md)
- * [10.x](CHANGELOG_V10.md)
- * [9.x](CHANGELOG_V9.md)
- * [8.x](CHANGELOG_V8.md)
- * [7.x](CHANGELOG_V7.md)
- * [6.x](CHANGELOG_V6.md)
- * [5.x](CHANGELOG_V5.md)
- * [4.x](CHANGELOG_V4.md)
- * [0.12.x](CHANGELOG_V012.md)
- * [0.10.x](CHANGELOG_V010.md)
- * [io.js](CHANGELOG_IOJS.md)
- * [Archive](CHANGELOG_ARCHIVE.md)
-
-
-
-## 2023-06-20, Version 20.3.1 (Current), @RafaelGSS
-
-This is a security release.
-
-### Notable Changes
-
-The following CVEs are fixed in this release:
-
-* [CVE-2023-30581](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30581): `mainModule.__proto__` Bypass Experimental Policy Mechanism (High)
-* [CVE-2023-30584](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30584): Path Traversal Bypass in Experimental Permission Model (High)
-* [CVE-2023-30587](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30587): Bypass of Experimental Permission Model via Node.js Inspector (High)
-* [CVE-2023-30582](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30582): Inadequate Permission Model Allows Unauthorized File Watching (Medium)
-* [CVE-2023-30583](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30583): Bypass of Experimental Permission Model via fs.openAsBlob() (Medium)
-* [CVE-2023-30585](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30585): Privilege escalation via Malicious Registry Key manipulation during Node.js installer repair process (Medium)
-* [CVE-2023-30586](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30586): Bypass of Experimental Permission Model via Arbitrary OpenSSL Engines (Medium)
-* [CVE-2023-30588](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30588): Process interuption due to invalid Public Key information in x509 certificates (Medium)
-* [CVE-2023-30589](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30589): HTTP Request Smuggling via Empty headers separated by CR (Medium)
-* [CVE-2023-30590](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-30590): DiffieHellman does not generate keys after setting a private key (Medium)
-* OpenSSL Security Releases
- * [OpenSSL security advisory 28th March](https://www.openssl.org/news/secadv/20230328.txt).
- * [OpenSSL security advisory 20th April](https://www.openssl.org/news/secadv/20230420.txt).
- * [OpenSSL security advisory 30th May](https://www.openssl.org/news/secadv/20230530.txt)
-
-More detailed information on each of the vulnerabilities can be found in [June 2023 Security Releases](https://nodejs.org/en/blog/vulnerability/june-2023-security-releases/) blog post.
-
-### Commits
-
-* \[[`dac08dafc9`](https://github.com/nodejs/node/commit/dac08dafc9)] - **crypto**: handle cert with invalid SPKI gracefully (Tobias Nießen) [nodejs-private/node-private#393](https://github.com/nodejs-private/node-private/pull/393)
-* \[[`d274c3babc`](https://github.com/nodejs/node/commit/d274c3babc)] - **crypto,https,tls**: disable engines if perms enabled (Tobias Nießen) [nodejs-private/node-private#409](https://github.com/nodejs-private/node-private/pull/409)
-* \[[`5621c1de38`](https://github.com/nodejs/node/commit/5621c1de38)] - **deps**: update archs files for openssl-3.0.9-quic1 (Node.js GitHub Bot) [#48402](https://github.com/nodejs/node/pull/48402)
-* \[[`771caa9f1c`](https://github.com/nodejs/node/commit/771caa9f1c)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.9-quic1 (Node.js GitHub Bot) [#48402](https://github.com/nodejs/node/pull/48402)
-* \[[`0459bf9c99`](https://github.com/nodejs/node/commit/0459bf9c99)] - **doc,test**: clarify behavior of DH generateKeys (Tobias Nießen) [nodejs-private/node-private#426](https://github.com/nodejs-private/node-private/pull/426)
-* \[[`27e20501aa`](https://github.com/nodejs/node/commit/27e20501aa)] - **http**: disable request smuggling via empty headers (Paolo Insogna) [nodejs-private/node-private#427](https://github.com/nodejs-private/node-private/pull/427)
-* \[[`9c17e335f1`](https://github.com/nodejs/node/commit/9c17e335f1)] - **msi**: do not create AppData\Roaming\npm (Tobias Nießen) [nodejs-private/node-private#408](https://github.com/nodejs-private/node-private/pull/408)
-* \[[`b51124c637`](https://github.com/nodejs/node/commit/b51124c637)] - **permission**: handle fs path traversal (RafaelGSS) [nodejs-private/node-private#403](https://github.com/nodejs-private/node-private/pull/403)
-* \[[`ebc5927adc`](https://github.com/nodejs/node/commit/ebc5927adc)] - **permission**: handle fs.openAsBlob (RafaelGSS) [nodejs-private/node-private#405](https://github.com/nodejs-private/node-private/pull/405)
-* \[[`c39a43bff5`](https://github.com/nodejs/node/commit/c39a43bff5)] - **permission**: handle fs.watchFile (RafaelGSS) [nodejs-private/node-private#404](https://github.com/nodejs-private/node-private/pull/404)
-* \[[`d0a8264ec9`](https://github.com/nodejs/node/commit/d0a8264ec9)] - **policy**: handle mainModule.\_\_proto\_\_ bypass (RafaelGSS) [nodejs-private/node-private#416](https://github.com/nodejs-private/node-private/pull/416)
-* \[[`3df13d5a79`](https://github.com/nodejs/node/commit/3df13d5a79)] - **src,permission**: restrict inspector when pm enabled (RafaelGSS) [nodejs-private/node-private#410](https://github.com/nodejs-private/node-private/pull/410)
-
-
-
-## 2023-06-08, Version 20.3.0 (Current), @targos
-
-### Notable Changes
-
-* \[[`bfcb3d1d9a`](https://github.com/nodejs/node/commit/bfcb3d1d9a)] - **deps**: upgrade to libuv 1.45.0, including significant performance improvements to file system operations on Linux (Santiago Gimeno) [#48078](https://github.com/nodejs/node/pull/48078)
-* \[[`5094d1b292`](https://github.com/nodejs/node/commit/5094d1b292)] - **doc**: add Ruy Adorno to list of TSC members (Michael Dawson) [#48172](https://github.com/nodejs/node/pull/48172)
-* \[[`2f5dbca690`](https://github.com/nodejs/node/commit/2f5dbca690)] - **doc**: mark Node.js 14 as End-of-Life (Richard Lau) [#48023](https://github.com/nodejs/node/pull/48023)
-* \[[`b1828b325e`](https://github.com/nodejs/node/commit/b1828b325e)] - **(SEMVER-MINOR)** **lib**: implement `AbortSignal.any()` (Chemi Atlow) [#47821](https://github.com/nodejs/node/pull/47821)
-* \[[`f380953103`](https://github.com/nodejs/node/commit/f380953103)] - **module**: change default resolver to not throw on unknown scheme (Gil Tayar) [#47824](https://github.com/nodejs/node/pull/47824)
-* \[[`a94f87ed99`](https://github.com/nodejs/node/commit/a94f87ed99)] - **(SEMVER-MINOR)** **node-api**: define version 9 (Chengzhong Wu) [#48151](https://github.com/nodejs/node/pull/48151)
-* \[[`9e2b13dfa7`](https://github.com/nodejs/node/commit/9e2b13dfa7)] - **stream**: deprecate `asIndexedPairs` (Chemi Atlow) [#48102](https://github.com/nodejs/node/pull/48102)
-
-### Commits
-
-* \[[`35c96156d1`](https://github.com/nodejs/node/commit/35c96156d1)] - **benchmark**: use `cluster.isPrimary` instead of `cluster.isMaster` (Deokjin Kim) [#48002](https://github.com/nodejs/node/pull/48002)
-* \[[`3e6e3abf32`](https://github.com/nodejs/node/commit/3e6e3abf32)] - **bootstrap**: throw ERR\_NOT\_SUPPORTED\_IN\_SNAPSHOT in unsupported operation (Joyee Cheung) [#47887](https://github.com/nodejs/node/pull/47887)
-* \[[`c480559347`](https://github.com/nodejs/node/commit/c480559347)] - **bootstrap**: put is\_building\_snapshot state in IsolateData (Joyee Cheung) [#47887](https://github.com/nodejs/node/pull/47887)
-* \[[`50c0a15535`](https://github.com/nodejs/node/commit/50c0a15535)] - **build**: set v8\_enable\_webassembly=false when lite mode is enabled (Cheng Shao) [#48248](https://github.com/nodejs/node/pull/48248)
-* \[[`4562805cf6`](https://github.com/nodejs/node/commit/4562805cf6)] - **build**: speed up compilation of mksnapshot output (Keyhan Vakil) [#48162](https://github.com/nodejs/node/pull/48162)
-* \[[`8b89f13933`](https://github.com/nodejs/node/commit/8b89f13933)] - **build**: add action to close stale PRs (Michael Dawson) [#48051](https://github.com/nodejs/node/pull/48051)
-* \[[`5d92202220`](https://github.com/nodejs/node/commit/5d92202220)] - **build**: replace js2c.py with js2c.cc (Joyee Cheung) [#46997](https://github.com/nodejs/node/pull/46997)
-* \[[`6cf2adc36e`](https://github.com/nodejs/node/commit/6cf2adc36e)] - **cluster**: use ObjectPrototypeHasOwnProperty (Daeyeon Jeong) [#48141](https://github.com/nodejs/node/pull/48141)
-* \[[`f564b03c38`](https://github.com/nodejs/node/commit/f564b03c38)] - **crypto**: use openssl's own memory BIOs in crypto\_context.cc (GauriSpears) [#47160](https://github.com/nodejs/node/pull/47160)
-* \[[`ac8dd61fc3`](https://github.com/nodejs/node/commit/ac8dd61fc3)] - **crypto**: remove default encoding from cipher (Tobias Nießen) [#47998](https://github.com/nodejs/node/pull/47998)
-* \[[`15c2de4407`](https://github.com/nodejs/node/commit/15c2de4407)] - **crypto**: fix setEngine() when OPENSSL\_NO\_ENGINE set (Tobias Nießen) [#47977](https://github.com/nodejs/node/pull/47977)
-* \[[`9e2dd5b5e2`](https://github.com/nodejs/node/commit/9e2dd5b5e2)] - **deps**: update zlib to 337322d (Node.js GitHub Bot) [#48218](https://github.com/nodejs/node/pull/48218)
-* \[[`bfcb3d1d9a`](https://github.com/nodejs/node/commit/bfcb3d1d9a)] - **deps**: upgrade to libuv 1.45.0 (Santiago Gimeno) [#48078](https://github.com/nodejs/node/pull/48078)
-* \[[`13930f092f`](https://github.com/nodejs/node/commit/13930f092f)] - **deps**: update ada to 2.5.0 (Node.js GitHub Bot) [#48223](https://github.com/nodejs/node/pull/48223)
-* \[[`3047caebec`](https://github.com/nodejs/node/commit/3047caebec)] - **deps**: set `CARES_RANDOM_FILE` for c-ares (Richard Lau) [#48156](https://github.com/nodejs/node/pull/48156)
-* \[[`0db79a0872`](https://github.com/nodejs/node/commit/0db79a0872)] - **deps**: update histogram 0.11.8 (Marco Ippolito) [#47742](https://github.com/nodejs/node/pull/47742)
-* \[[`99af6716f5`](https://github.com/nodejs/node/commit/99af6716f5)] - **deps**: update histogram to 0.11.7 (Marco Ippolito) [#47742](https://github.com/nodejs/node/pull/47742)
-* \[[`d4922bc985`](https://github.com/nodejs/node/commit/d4922bc985)] - **deps**: update c-ares to 1.19.1 (Node.js GitHub Bot) [#48115](https://github.com/nodejs/node/pull/48115)
-* \[[`f6ccdb289f`](https://github.com/nodejs/node/commit/f6ccdb289f)] - **deps**: update simdutf to 3.2.12 (Node.js GitHub Bot) [#48118](https://github.com/nodejs/node/pull/48118)
-* \[[`3ed0afc778`](https://github.com/nodejs/node/commit/3ed0afc778)] - **deps**: update minimatch to 9.0.1 (Node.js GitHub Bot) [#48094](https://github.com/nodejs/node/pull/48094)
-* \[[`df7540fb73`](https://github.com/nodejs/node/commit/df7540fb73)] - **deps**: update ada to 2.4.2 (Node.js GitHub Bot) [#48092](https://github.com/nodejs/node/pull/48092)
-* \[[`07df5c48e8`](https://github.com/nodejs/node/commit/07df5c48e8)] - **deps**: update corepack to 0.18.0 (Node.js GitHub Bot) [#48091](https://github.com/nodejs/node/pull/48091)
-* \[[`d95a5bb559`](https://github.com/nodejs/node/commit/d95a5bb559)] - **deps**: update uvwasi to 0.0.18 (Node.js GitHub Bot) [#47866](https://github.com/nodejs/node/pull/47866)
-* \[[`443477e041`](https://github.com/nodejs/node/commit/443477e041)] - **deps**: update uvwasi to 0.0.17 (Node.js GitHub Bot) [#47866](https://github.com/nodejs/node/pull/47866)
-* \[[`03f67d6d6d`](https://github.com/nodejs/node/commit/03f67d6d6d)] - **deps**: upgrade npm to 9.6.7 (npm team) [#48062](https://github.com/nodejs/node/pull/48062)
-* \[[`d3e3a911fd`](https://github.com/nodejs/node/commit/d3e3a911fd)] - **deps**: update nghttp2 to 1.53.0 (Node.js GitHub Bot) [#47997](https://github.com/nodejs/node/pull/47997)
-* \[[`f7c4daaf67`](https://github.com/nodejs/node/commit/f7c4daaf67)] - **deps**: update ada to 2.4.1 (Node.js GitHub Bot) [#48036](https://github.com/nodejs/node/pull/48036)
-* \[[`c6a752560d`](https://github.com/nodejs/node/commit/c6a752560d)] - **deps**: add loongarch64 into openssl Makefile and gen openssl-loongarch64 (Shi Pujin) [#46401](https://github.com/nodejs/node/pull/46401)
-* \[[`d194241716`](https://github.com/nodejs/node/commit/d194241716)] - **deps**: update undici to 5.22.1 (Node.js GitHub Bot) [#47994](https://github.com/nodejs/node/pull/47994)
-* \[[`02e919f4a2`](https://github.com/nodejs/node/commit/02e919f4a2)] - **deps,test**: update postject to 1.0.0-alpha.6 (Node.js GitHub Bot) [#48072](https://github.com/nodejs/node/pull/48072)
-* \[[`2c19f596ad`](https://github.com/nodejs/node/commit/2c19f596ad)] - **doc**: clarify array args to Buffer.from() (Bryan English) [#48274](https://github.com/nodejs/node/pull/48274)
-* \[[`d681e5f456`](https://github.com/nodejs/node/commit/d681e5f456)] - **doc**: document watch option for node:test run() (Moshe Atlow) [#48256](https://github.com/nodejs/node/pull/48256)
-* \[[`96e54ddbca`](https://github.com/nodejs/node/commit/96e54ddbca)] - **doc**: reserve 117 for Electron 26 (Calvin) [#48245](https://github.com/nodejs/node/pull/48245)
-* \[[`9aff8c7818`](https://github.com/nodejs/node/commit/9aff8c7818)] - **doc**: update documentation for FIPS support (Richard Lau) [#48194](https://github.com/nodejs/node/pull/48194)
-* \[[`8c5338648f`](https://github.com/nodejs/node/commit/8c5338648f)] - **doc**: improve the documentation of the stdio option (Kumar Arnav) [#48110](https://github.com/nodejs/node/pull/48110)
-* \[[`11918d705f`](https://github.com/nodejs/node/commit/11918d705f)] - **doc**: update Buffer.allocUnsafe description (sinkhaha) [#48183](https://github.com/nodejs/node/pull/48183)
-* \[[`2b51ee5e22`](https://github.com/nodejs/node/commit/2b51ee5e22)] - **doc**: update codeowners with website team (Claudio Wunder) [#48197](https://github.com/nodejs/node/pull/48197)
-* \[[`360df25d04`](https://github.com/nodejs/node/commit/360df25d04)] - **doc**: fix broken link to new folder doc/contributing/maintaining (Andrea Fassina) [#48205](https://github.com/nodejs/node/pull/48205)
-* \[[`13e95e21a4`](https://github.com/nodejs/node/commit/13e95e21a4)] - **doc**: add atlowChemi to triagers (Chemi Atlow) [#48104](https://github.com/nodejs/node/pull/48104)
-* \[[`5f83ce530f`](https://github.com/nodejs/node/commit/5f83ce530f)] - **doc**: fix typo in readline completer function section (Vadym) [#48188](https://github.com/nodejs/node/pull/48188)
-* \[[`3c82165d27`](https://github.com/nodejs/node/commit/3c82165d27)] - **doc**: remove broken link for keygen (Rich Trott) [#48176](https://github.com/nodejs/node/pull/48176)
-* \[[`0ca90a1e6d`](https://github.com/nodejs/node/commit/0ca90a1e6d)] - **doc**: add `auto` intrinsic height to prevent jitter/flicker (Daniel Holbert) [#48195](https://github.com/nodejs/node/pull/48195)
-* \[[`f117855092`](https://github.com/nodejs/node/commit/f117855092)] - **doc**: add version info on the SEA docs (Antoine du Hamel) [#48173](https://github.com/nodejs/node/pull/48173)
-* \[[`5094d1b292`](https://github.com/nodejs/node/commit/5094d1b292)] - **doc**: add Ruy to list of TSC members (Michael Dawson) [#48172](https://github.com/nodejs/node/pull/48172)
-* \[[`39d8140227`](https://github.com/nodejs/node/commit/39d8140227)] - **doc**: update socket.remote\* properties documentation (Saba Kharanauli) [#48139](https://github.com/nodejs/node/pull/48139)
-* \[[`5497c13efe`](https://github.com/nodejs/node/commit/5497c13efe)] - **doc**: update outdated section on TLSv1.3-PSK (Tobias Nießen) [#48123](https://github.com/nodejs/node/pull/48123)
-* \[[`281dfaf727`](https://github.com/nodejs/node/commit/281dfaf727)] - **doc**: improve HMAC key recommendations (Tobias Nießen) [#48121](https://github.com/nodejs/node/pull/48121)
-* \[[`bd311b6c70`](https://github.com/nodejs/node/commit/bd311b6c70)] - **doc**: clarify mkdir() recursive behavior (Stephen Odogwu) [#48109](https://github.com/nodejs/node/pull/48109)
-* \[[`5b061c8922`](https://github.com/nodejs/node/commit/5b061c8922)] - **doc**: fix typo in crypto legacy streams API section (Tobias Nießen) [#48122](https://github.com/nodejs/node/pull/48122)
-* \[[`10ccb2bd81`](https://github.com/nodejs/node/commit/10ccb2bd81)] - **doc**: update SEA source link (Rich Trott) [#48080](https://github.com/nodejs/node/pull/48080)
-* \[[`415bf7f532`](https://github.com/nodejs/node/commit/415bf7f532)] - **doc**: clarify tty.isRaw (Roberto Vidal) [#48055](https://github.com/nodejs/node/pull/48055)
-* \[[`0ac4b33c76`](https://github.com/nodejs/node/commit/0ac4b33c76)] - **doc**: correct line break for Windows terminals (Alex Schwartz) [#48083](https://github.com/nodejs/node/pull/48083)
-* \[[`f30ba5c320`](https://github.com/nodejs/node/commit/f30ba5c320)] - **doc**: fix Windows code snippet tags (Antoine du Hamel) [#48100](https://github.com/nodejs/node/pull/48100)
-* \[[`12fef9b68c`](https://github.com/nodejs/node/commit/12fef9b68c)] - **doc**: harmonize fenced code snippet flags (Antoine du Hamel) [#48082](https://github.com/nodejs/node/pull/48082)
-* \[[`13f163eace`](https://github.com/nodejs/node/commit/13f163eace)] - **doc**: use secure key length for HMAC generateKey (Tobias Nießen) [#48052](https://github.com/nodejs/node/pull/48052)
-* \[[`1e3e7c9f33`](https://github.com/nodejs/node/commit/1e3e7c9f33)] - **doc**: update broken EVP\_BytesToKey link (Rich Trott) [#48064](https://github.com/nodejs/node/pull/48064)
-* \[[`5917ba1838`](https://github.com/nodejs/node/commit/5917ba1838)] - **doc**: update broken spkac link (Rich Trott) [#48063](https://github.com/nodejs/node/pull/48063)
-* \[[`0e4a3b7db1`](https://github.com/nodejs/node/commit/0e4a3b7db1)] - **doc**: document node-api version process (Chengzhong Wu) [#47972](https://github.com/nodejs/node/pull/47972)
-* \[[`85bbaa94ea`](https://github.com/nodejs/node/commit/85bbaa94ea)] - **doc**: update process.versions properties (Saba Kharanauli) [#48019](https://github.com/nodejs/node/pull/48019)
-* \[[`7660eb591a`](https://github.com/nodejs/node/commit/7660eb591a)] - **doc**: fix typo in binding functions (Deokjin Kim) [#48003](https://github.com/nodejs/node/pull/48003)
-* \[[`2f5dbca690`](https://github.com/nodejs/node/commit/2f5dbca690)] - **doc**: mark Node.js 14 as End-of-Life (Richard Lau) [#48023](https://github.com/nodejs/node/pull/48023)
-* \[[`3b94a739f2`](https://github.com/nodejs/node/commit/3b94a739f2)] - **doc**: clarify CRYPTO\_CUSTOM\_ENGINE\_NOT\_SUPPORTED (Tobias Nießen) [#47976](https://github.com/nodejs/node/pull/47976)
-* \[[`9e381cfa89`](https://github.com/nodejs/node/commit/9e381cfa89)] - **doc**: add heading for permission model limitations (Tobias Nießen) [#47989](https://github.com/nodejs/node/pull/47989)
-* \[[`802db923e0`](https://github.com/nodejs/node/commit/802db923e0)] - **doc,vm**: clarify usage of cachedData in vm.compileFunction() (Darshan Sen) [#48193](https://github.com/nodejs/node/pull/48193)
-* \[[`11a3434810`](https://github.com/nodejs/node/commit/11a3434810)] - **esm**: remove support for arrays in `import` internal method (Antoine du Hamel) [#48296](https://github.com/nodejs/node/pull/48296)
-* \[[`3b00f3afef`](https://github.com/nodejs/node/commit/3b00f3afef)] - **esm**: handle `globalPreload` hook returning a nullish value (Antoine du Hamel) [#48249](https://github.com/nodejs/node/pull/48249)
-* \[[`3c7846d7e1`](https://github.com/nodejs/node/commit/3c7846d7e1)] - **esm**: handle more error types thrown from the loader thread (Antoine du Hamel) [#48247](https://github.com/nodejs/node/pull/48247)
-* \[[`60ce2bcabc`](https://github.com/nodejs/node/commit/60ce2bcabc)] - **http**: send implicit headers on HEAD with no body (Matteo Collina) [#48108](https://github.com/nodejs/node/pull/48108)
-* \[[`72de4e7170`](https://github.com/nodejs/node/commit/72de4e7170)] - **lib**: do not disable linter for entire files (Antoine du Hamel) [#48299](https://github.com/nodejs/node/pull/48299)
-* \[[`10cc60fc91`](https://github.com/nodejs/node/commit/10cc60fc91)] - **lib**: use existing `isWindows` variable (sinkhaha) [#48134](https://github.com/nodejs/node/pull/48134)
-* \[[`a90010aae9`](https://github.com/nodejs/node/commit/a90010aae9)] - **lib**: support FORCE\_COLOR for non TTY streams (Moshe Atlow) [#48034](https://github.com/nodejs/node/pull/48034)
-* \[[`b1828b325e`](https://github.com/nodejs/node/commit/b1828b325e)] - **(SEMVER-MINOR)** **lib**: implement AbortSignal.any() (Chemi Atlow) [#47821](https://github.com/nodejs/node/pull/47821)
-* \[[`8f1b86961f`](https://github.com/nodejs/node/commit/8f1b86961f)] - **meta**: bump github/codeql-action from 2.3.3 to 2.3.6 (dependabot\[bot]) [#48287](https://github.com/nodejs/node/pull/48287)
-* \[[`1b87ccdf70`](https://github.com/nodejs/node/commit/1b87ccdf70)] - **meta**: bump actions/setup-python from 4.6.0 to 4.6.1 (dependabot\[bot]) [#48286](https://github.com/nodejs/node/pull/48286)
-* \[[`10715aea26`](https://github.com/nodejs/node/commit/10715aea26)] - **meta**: bump codecov/codecov-action from 3.1.3 to 3.1.4 (dependabot\[bot]) [#48285](https://github.com/nodejs/node/pull/48285)
-* \[[`79f73778ab`](https://github.com/nodejs/node/commit/79f73778ab)] - **meta**: remove dont-land-on-v14 auto labeling (Shrujal Shah) [#48031](https://github.com/nodejs/node/pull/48031)
-* \[[`9c5711f3ea`](https://github.com/nodejs/node/commit/9c5711f3ea)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#48010](https://github.com/nodejs/node/pull/48010)
-* \[[`6d6bf3ee52`](https://github.com/nodejs/node/commit/6d6bf3ee52)] - **module**: reduce the number of URL initializations (Yagiz Nizipli) [#48272](https://github.com/nodejs/node/pull/48272)
-* \[[`f380953103`](https://github.com/nodejs/node/commit/f380953103)] - **module**: change default resolver to not throw on unknown scheme (Gil Tayar) [#47824](https://github.com/nodejs/node/pull/47824)
-* \[[`950185b0c0`](https://github.com/nodejs/node/commit/950185b0c0)] - **net**: fix address iteration with autoSelectFamily (Fedor Indutny) [#48258](https://github.com/nodejs/node/pull/48258)
-* \[[`5ddca72e62`](https://github.com/nodejs/node/commit/5ddca72e62)] - **net**: fix family autoselection SSL connection handling (Paolo Insogna) [#48189](https://github.com/nodejs/node/pull/48189)
-* \[[`750e53ca3c`](https://github.com/nodejs/node/commit/750e53ca3c)] - **net**: fix family autoselection timeout handling (Paolo Insogna) [#47860](https://github.com/nodejs/node/pull/47860)
-* \[[`a94f87ed99`](https://github.com/nodejs/node/commit/a94f87ed99)] - **(SEMVER-MINOR)** **node-api**: define version 9 (Chengzhong Wu) [#48151](https://github.com/nodejs/node/pull/48151)
-* \[[`e834979818`](https://github.com/nodejs/node/commit/e834979818)] - **node-api**: add status napi\_cannot\_run\_js (Gabriel Schulhof) [#47986](https://github.com/nodejs/node/pull/47986)
-* \[[`eafe0c3ec6`](https://github.com/nodejs/node/commit/eafe0c3ec6)] - **node-api**: napi\_ref on all types is experimental (Vladimir Morozov) [#47975](https://github.com/nodejs/node/pull/47975)
-* \[[`9a034746f5`](https://github.com/nodejs/node/commit/9a034746f5)] - **src**: add Realm document in the src README.md (Chengzhong Wu) [#47932](https://github.com/nodejs/node/pull/47932)
-* \[[`b8f4070f71`](https://github.com/nodejs/node/commit/b8f4070f71)] - **src**: check node\_extra\_ca\_certs after openssl cfg (Raghu Saxena) [#48159](https://github.com/nodejs/node/pull/48159)
-* \[[`0347a18056`](https://github.com/nodejs/node/commit/0347a18056)] - **src**: include missing header in node\_sea.h (Joyee Cheung) [#48152](https://github.com/nodejs/node/pull/48152)
-* \[[`45c3782c20`](https://github.com/nodejs/node/commit/45c3782c20)] - **src**: remove INT\_MAX asserts in SecretKeyGenTraits (Tobias Nießen) [#48053](https://github.com/nodejs/node/pull/48053)
-* \[[`b25e7045ad`](https://github.com/nodejs/node/commit/b25e7045ad)] - **src**: avoid prototype access in binding templates (Joyee Cheung) [#47913](https://github.com/nodejs/node/pull/47913)
-* \[[`33aa373eec`](https://github.com/nodejs/node/commit/33aa373eec)] - **src**: use Blob{Des|S}erializer for SEA blobs (Joyee Cheung) [#47962](https://github.com/nodejs/node/pull/47962)
-* \[[`9e2b13dfa7`](https://github.com/nodejs/node/commit/9e2b13dfa7)] - **stream**: deprecate asIndexedPairs (Chemi Atlow) [#48102](https://github.com/nodejs/node/pull/48102)
-* \[[`96c323dee2`](https://github.com/nodejs/node/commit/96c323dee2)] - **test**: mark test-child-process-pipe-dataflow as flaky (Moshe Atlow) [#48334](https://github.com/nodejs/node/pull/48334)
-* \[[`9875885357`](https://github.com/nodejs/node/commit/9875885357)] - **test**: adapt tests for OpenSSL 3.1 (OttoHollmann) [#47859](https://github.com/nodejs/node/pull/47859)
-* \[[`3440d7c6bf`](https://github.com/nodejs/node/commit/3440d7c6bf)] - **test**: unflake test-vm-timeout-escape-nexttick (Santiago Gimeno) [#48078](https://github.com/nodejs/node/pull/48078)
-* \[[`215b2bc72c`](https://github.com/nodejs/node/commit/215b2bc72c)] - **test**: fix zlib version regex (Luigi Pinca) [#48227](https://github.com/nodejs/node/pull/48227)
-* \[[`e12ee59d26`](https://github.com/nodejs/node/commit/e12ee59d26)] - **test**: use lower security level in s\_client (Luigi Pinca) [#48192](https://github.com/nodejs/node/pull/48192)
-* \[[`1dabc7390c`](https://github.com/nodejs/node/commit/1dabc7390c)] - _**Revert**_ "**test**: unskip negative-settimeout.any.js WPT" (Filip Skokan) [#48182](https://github.com/nodejs/node/pull/48182)
-* \[[`c1c4796a86`](https://github.com/nodejs/node/commit/c1c4796a86)] - **test**: mark test\_cannot\_run\_js as flaky (Keyhan Vakil) [#48181](https://github.com/nodejs/node/pull/48181)
-* \[[`8c49d74002`](https://github.com/nodejs/node/commit/8c49d74002)] - **test**: fix flaky test-runner-watch-mode (Moshe Atlow) [#48144](https://github.com/nodejs/node/pull/48144)
-* \[[`6388766862`](https://github.com/nodejs/node/commit/6388766862)] - **test**: skip test-http-pipeline-flood on IBM i (Abdirahim Musse) [#48048](https://github.com/nodejs/node/pull/48048)
-* \[[`8d2a3b1952`](https://github.com/nodejs/node/commit/8d2a3b1952)] - **test**: ignore helper files in WPTs (Filip Skokan) [#48079](https://github.com/nodejs/node/pull/48079)
-* \[[`7a96d825fd`](https://github.com/nodejs/node/commit/7a96d825fd)] - **test**: move `test-cluster-primary-error` flaky test (Yagiz Nizipli) [#48039](https://github.com/nodejs/node/pull/48039)
-* \[[`a80dd3a8b3`](https://github.com/nodejs/node/commit/a80dd3a8b3)] - **test**: fix suite signal (Benjamin Gruenbaum) [#47800](https://github.com/nodejs/node/pull/47800)
-* \[[`a41cfd183f`](https://github.com/nodejs/node/commit/a41cfd183f)] - **test**: fix parsing test flags (Daeyeon Jeong) [#48012](https://github.com/nodejs/node/pull/48012)
-* \[[`4d4e506f2b`](https://github.com/nodejs/node/commit/4d4e506f2b)] - **test,doc,sea**: run SEA tests on ppc64 (Darshan Sen) [#48111](https://github.com/nodejs/node/pull/48111)
-* \[[`44411fc40c`](https://github.com/nodejs/node/commit/44411fc40c)] - **test\_runner**: apply `runOnly` on suites (Moshe Atlow) [#48279](https://github.com/nodejs/node/pull/48279)
-* \[[`3f259b7a30`](https://github.com/nodejs/node/commit/3f259b7a30)] - **test\_runner**: emit `test:watch:drained` event (Moshe Atlow) [#48259](https://github.com/nodejs/node/pull/48259)
-* \[[`c9f8e8c562`](https://github.com/nodejs/node/commit/c9f8e8c562)] - **test\_runner**: stop watch mode when abortSignal aborted (Moshe Atlow) [#48259](https://github.com/nodejs/node/pull/48259)
-* \[[`f3268d64cb`](https://github.com/nodejs/node/commit/f3268d64cb)] - **test\_runner**: fix global after hook (Moshe Atlow) [#48231](https://github.com/nodejs/node/pull/48231)
-* \[[`15336c3139`](https://github.com/nodejs/node/commit/15336c3139)] - **test\_runner**: remove redundant check from coverage (Colin Ihrig) [#48070](https://github.com/nodejs/node/pull/48070)
-* \[[`750d3e8606`](https://github.com/nodejs/node/commit/750d3e8606)] - **test\_runner**: pass FORCE\_COLOR to child process (Moshe Atlow) [#48057](https://github.com/nodejs/node/pull/48057)
-* \[[`3278542243`](https://github.com/nodejs/node/commit/3278542243)] - **test\_runner**: dont split lines on `test:stdout` (Moshe Atlow) [#48057](https://github.com/nodejs/node/pull/48057)
-* \[[`027c531766`](https://github.com/nodejs/node/commit/027c531766)] - **test\_runner**: fix test deserialize edge cases (Moshe Atlow) [#48106](https://github.com/nodejs/node/pull/48106)
-* \[[`2b797a6d39`](https://github.com/nodejs/node/commit/2b797a6d39)] - **test\_runner**: delegate stderr and stdout formatting to reporter (Shiba) [#48045](https://github.com/nodejs/node/pull/48045)
-* \[[`23d310bee8`](https://github.com/nodejs/node/commit/23d310bee8)] - **test\_runner**: display dot report as wide as the terminal width (Raz Luvaton) [#48038](https://github.com/nodejs/node/pull/48038)
-* \[[`fd2620dcf1`](https://github.com/nodejs/node/commit/fd2620dcf1)] - **tls**: reapply servername on happy eyeballs connect (Fedor Indutny) [#48255](https://github.com/nodejs/node/pull/48255)
-* \[[`62f847d0b3`](https://github.com/nodejs/node/commit/62f847d0b3)] - **tools**: update rollup lint-md-dependencies (Node.js GitHub Bot) [#48329](https://github.com/nodejs/node/pull/48329)
-* \[[`3e97826a66`](https://github.com/nodejs/node/commit/3e97826a66)] - _**Revert**_ "**tools**: open issue when update workflow fails" (Marco Ippolito) [#48312](https://github.com/nodejs/node/pull/48312)
-* \[[`5f08bfe35f`](https://github.com/nodejs/node/commit/5f08bfe35f)] - **tools**: don't gitignore base64 config.h (Ben Noordhuis) [#48174](https://github.com/nodejs/node/pull/48174)
-* \[[`ded0e2d755`](https://github.com/nodejs/node/commit/ded0e2d755)] - **tools**: update LICENSE and license-builder.sh (Santiago Gimeno) [#48078](https://github.com/nodejs/node/pull/48078)
-* \[[`07aa264366`](https://github.com/nodejs/node/commit/07aa264366)] - **tools**: automate histogram update (Marco Ippolito) [#48171](https://github.com/nodejs/node/pull/48171)
-* \[[`1416b75eaa`](https://github.com/nodejs/node/commit/1416b75eaa)] - **tools**: use shasum instead of sha256sum (Luigi Pinca) [#48229](https://github.com/nodejs/node/pull/48229)
-* \[[`b81e9d9b7b`](https://github.com/nodejs/node/commit/b81e9d9b7b)] - **tools**: harmonize `dep_updaters` scripts (Antoine du Hamel) [#48201](https://github.com/nodejs/node/pull/48201)
-* \[[`a60bc41e53`](https://github.com/nodejs/node/commit/a60bc41e53)] - **tools**: deps update authenticate github api request (Andrea Fassina) [#48200](https://github.com/nodejs/node/pull/48200)
-* \[[`7478ed014e`](https://github.com/nodejs/node/commit/7478ed014e)] - **tools**: order dependency jobs alphabetically (Luca) [#48184](https://github.com/nodejs/node/pull/48184)
-* \[[`568a705799`](https://github.com/nodejs/node/commit/568a705799)] - **tools**: refactor v8\_pch config (Michaël Zasso) [#47364](https://github.com/nodejs/node/pull/47364)
-* \[[`801573ba46`](https://github.com/nodejs/node/commit/801573ba46)] - **tools**: log and verify sha256sum (Andrea Fassina) [#48088](https://github.com/nodejs/node/pull/48088)
-* \[[`db62325e18`](https://github.com/nodejs/node/commit/db62325e18)] - **tools**: open issue when update workflow fails (Marco Ippolito) [#48018](https://github.com/nodejs/node/pull/48018)
-* \[[`ad8a68856d`](https://github.com/nodejs/node/commit/ad8a68856d)] - **tools**: alphabetize CODEOWNERS (Rich Trott) [#48124](https://github.com/nodejs/node/pull/48124)
-* \[[`4cf5a9edaf`](https://github.com/nodejs/node/commit/4cf5a9edaf)] - **tools**: use latest upstream commit for zlib updates (Andrea Fassina) [#48054](https://github.com/nodejs/node/pull/48054)
-* \[[`8d93af381b`](https://github.com/nodejs/node/commit/8d93af381b)] - **tools**: add security-wg as dep updaters owner (Marco Ippolito) [#48113](https://github.com/nodejs/node/pull/48113)
-* \[[`5325be1d99`](https://github.com/nodejs/node/commit/5325be1d99)] - **tools**: port js2c.py to C++ (Joyee Cheung) [#46997](https://github.com/nodejs/node/pull/46997)
-* \[[`6c60d90277`](https://github.com/nodejs/node/commit/6c60d90277)] - **tools**: fix race condition when npm installing (Tobias Nießen) [#48101](https://github.com/nodejs/node/pull/48101)
-* \[[`0ab840a58f`](https://github.com/nodejs/node/commit/0ab840a58f)] - **tools**: refloat 7 Node.js patches to cpplint.py (Rich Trott) [#48098](https://github.com/nodejs/node/pull/48098)
-* \[[`a298193378`](https://github.com/nodejs/node/commit/a298193378)] - **tools**: update cpplint to 1.6.1 (Yagiz Nizipli) [#48098](https://github.com/nodejs/node/pull/48098)
-* \[[`f6725751b7`](https://github.com/nodejs/node/commit/f6725751b7)] - **tools**: update eslint to 8.41.0 (Node.js GitHub Bot) [#48097](https://github.com/nodejs/node/pull/48097)
-* \[[`6539361f4e`](https://github.com/nodejs/node/commit/6539361f4e)] - **tools**: update lint-md-dependencies (Node.js GitHub Bot) [#48096](https://github.com/nodejs/node/pull/48096)
-* \[[`5d94dbb951`](https://github.com/nodejs/node/commit/5d94dbb951)] - **tools**: update doc to remark-parse\@10.0.2 (Node.js GitHub Bot) [#48095](https://github.com/nodejs/node/pull/48095)
-* \[[`2226088048`](https://github.com/nodejs/node/commit/2226088048)] - **tools**: add debug logs (Marco Ippolito) [#48060](https://github.com/nodejs/node/pull/48060)
-* \[[`0c8c383583`](https://github.com/nodejs/node/commit/0c8c383583)] - **tools**: fix zconf.h path (Luigi Pinca) [#48089](https://github.com/nodejs/node/pull/48089)
-* \[[`6adaf4c648`](https://github.com/nodejs/node/commit/6adaf4c648)] - **tools**: update remark-preset-lint-node to 4.0.0 (Node.js GitHub Bot) [#47995](https://github.com/nodejs/node/pull/47995)
-* \[[`92b3334231`](https://github.com/nodejs/node/commit/92b3334231)] - **url**: clean vertical alignment of docs (Robin Ury) [#48037](https://github.com/nodejs/node/pull/48037)
-* \[[`ebb6536775`](https://github.com/nodejs/node/commit/ebb6536775)] - **url**: call `ada::can_parse` directly (Yagiz Nizipli) [#47919](https://github.com/nodejs/node/pull/47919)
-* \[[`ed4514294a`](https://github.com/nodejs/node/commit/ed4514294a)] - **vm**: properly handle defining symbol props (Nicolas DUBIEN) [#47572](https://github.com/nodejs/node/pull/47572)
-
-
-
-## 2023-05-16, Version 20.2.0 (Current), @targos
-
-### Notable Changes
-
-* \[[`c092df9094`](https://github.com/nodejs/node/commit/c092df9094)] - **doc**: add ovflowd to collaborators (Claudio Wunder) [#47844](https://github.com/nodejs/node/pull/47844)
-* \[[`4197a9a5a0`](https://github.com/nodejs/node/commit/4197a9a5a0)] - **(SEMVER-MINOR)** **http**: prevent writing to the body when not allowed by HTTP spec (Gerrard Lindsay) [#47732](https://github.com/nodejs/node/pull/47732)
-* \[[`c4596b9ce7`](https://github.com/nodejs/node/commit/c4596b9ce7)] - **(SEMVER-MINOR)** **sea**: add option to disable the experimental SEA warning (Darshan Sen) [#47588](https://github.com/nodejs/node/pull/47588)
-* \[[`17befe008c`](https://github.com/nodejs/node/commit/17befe008c)] - **(SEMVER-MINOR)** **test\_runner**: add `skip`, `todo`, and `only` shorthands to `test` (Chemi Atlow) [#47909](https://github.com/nodejs/node/pull/47909)
-* \[[`a0634d7f89`](https://github.com/nodejs/node/commit/a0634d7f89)] - **(SEMVER-MINOR)** **url**: add value argument to `URLSearchParams` `has` and `delete` methods (Sankalp Shubham) [#47885](https://github.com/nodejs/node/pull/47885)
-
-### Commits
-
-* \[[`456fca0d9c`](https://github.com/nodejs/node/commit/456fca0d9c)] - **bootstrap**: initialize per-isolate properties of bindings separately (Joyee Cheung) [#47768](https://github.com/nodejs/node/pull/47768)
-* \[[`d6d12bf978`](https://github.com/nodejs/node/commit/d6d12bf978)] - **bootstrap**: log isolate data info in mksnapshot debug logs (Joyee Cheung) [#47768](https://github.com/nodejs/node/pull/47768)
-* \[[`e457d89a1b`](https://github.com/nodejs/node/commit/e457d89a1b)] - **buffer**: combine checking range of sourceStart in `buf.copy` (Deokjin Kim) [#47758](https://github.com/nodejs/node/pull/47758)
-* \[[`00668fcfb4`](https://github.com/nodejs/node/commit/00668fcfb4)] - **child\_process**: use signal.reason in child process abort (Debadree Chatterjee) [#47817](https://github.com/nodejs/node/pull/47817)
-* \[[`d7993474ea`](https://github.com/nodejs/node/commit/d7993474ea)] - **crypto**: remove default encoding from scrypt (Tobias Nießen) [#47943](https://github.com/nodejs/node/pull/47943)
-* \[[`09fb74a7cc`](https://github.com/nodejs/node/commit/09fb74a7cc)] - **crypto**: fix webcrypto private/secret import with empty usages (Filip Skokan) [#47877](https://github.com/nodejs/node/pull/47877)
-* \[[`e9c6ee74f3`](https://github.com/nodejs/node/commit/e9c6ee74f3)] - **crypto**: remove default encoding from pbkdf2 (Tobias Nießen) [#47869](https://github.com/nodejs/node/pull/47869)
-* \[[`b7f13a8679`](https://github.com/nodejs/node/commit/b7f13a8679)] - **deps**: update simdutf to 3.2.9 (Node.js GitHub Bot) [#47983](https://github.com/nodejs/node/pull/47983)
-* \[[`b16f6da153`](https://github.com/nodejs/node/commit/b16f6da153)] - **deps**: V8: cherry-pick 5f025d1ca2ca (Michaël Zasso) [#47610](https://github.com/nodejs/node/pull/47610)
-* \[[`99f8fcab45`](https://github.com/nodejs/node/commit/99f8fcab45)] - **deps**: V8: cherry-pick a8a11a87cb72 (Michaël Zasso) [#47610](https://github.com/nodejs/node/pull/47610)
-* \[[`c2b14b4c78`](https://github.com/nodejs/node/commit/c2b14b4c78)] - **deps**: update ada to 2.4.0 (Node.js GitHub Bot) [#47922](https://github.com/nodejs/node/pull/47922)
-* \[[`cad42e7a56`](https://github.com/nodejs/node/commit/cad42e7a56)] - **deps**: V8: cherry-pick 1b471b796022 (Lu Yahan) [#47399](https://github.com/nodejs/node/pull/47399)
-* \[[`7b2f17ca59`](https://github.com/nodejs/node/commit/7b2f17ca59)] - **deps**: upgrade npm to 9.6.6 (npm team) [#47862](https://github.com/nodejs/node/pull/47862)
-* \[[`d23b1af562`](https://github.com/nodejs/node/commit/d23b1af562)] - **deps**: update ada to 2.3.1 (Node.js GitHub Bot) [#47893](https://github.com/nodejs/node/pull/47893)
-* \[[`72340c98fb`](https://github.com/nodejs/node/commit/72340c98fb)] - **dgram**: convert macro to template (Tobias Nießen) [#47891](https://github.com/nodejs/node/pull/47891)
-* \[[`9be922892f`](https://github.com/nodejs/node/commit/9be922892f)] - **dns**: call `ada::idna::to_ascii` directly from c++ (Yagiz Nizipli) [#47920](https://github.com/nodejs/node/pull/47920)
-* \[[`4a1e97156a`](https://github.com/nodejs/node/commit/4a1e97156a)] - **doc**: add missing deprecated blocks to cluster (Tobias Nießen) [#47981](https://github.com/nodejs/node/pull/47981)
-* \[[`13118a19ee`](https://github.com/nodejs/node/commit/13118a19ee)] - **doc**: update description of global (Tobias Nießen) [#47969](https://github.com/nodejs/node/pull/47969)
-* \[[`372796440b`](https://github.com/nodejs/node/commit/372796440b)] - **doc**: update measure memory rejection information (Yash Ladha) [#41639](https://github.com/nodejs/node/pull/41639)
-* \[[`7ecc6740e4`](https://github.com/nodejs/node/commit/7ecc6740e4)] - **doc**: fix broken link to TC39 import attributes proposal (Rich Trott) [#47954](https://github.com/nodejs/node/pull/47954)
-* \[[`b9771c95c7`](https://github.com/nodejs/node/commit/b9771c95c7)] - **doc**: fix broken link (Rich Trott) [#47953](https://github.com/nodejs/node/pull/47953)
-* \[[`6f5ba92e61`](https://github.com/nodejs/node/commit/6f5ba92e61)] - **doc**: remove broken link (Rich Trott) [#47942](https://github.com/nodejs/node/pull/47942)
-* \[[`c9ffc555f1`](https://github.com/nodejs/node/commit/c9ffc555f1)] - **doc**: document make lint-md-clean (Matteo Collina) [#47926](https://github.com/nodejs/node/pull/47926)
-* \[[`7ed99e8ba5`](https://github.com/nodejs/node/commit/7ed99e8ba5)] - **doc**: mark global object as legacy (Mert Can Altın) [#47819](https://github.com/nodejs/node/pull/47819)
-* \[[`bf39f2d252`](https://github.com/nodejs/node/commit/bf39f2d252)] - **doc**: ntfs junction points must link to directories (Ben Noordhuis) [#47907](https://github.com/nodejs/node/pull/47907)
-* \[[`4dfc3890d8`](https://github.com/nodejs/node/commit/4dfc3890d8)] - **doc**: improve `permission.has` description (Daeyeon Jeong) [#47875](https://github.com/nodejs/node/pull/47875)
-* \[[`93f1aa2856`](https://github.com/nodejs/node/commit/93f1aa2856)] - **doc**: fix params names (Dmitry Semigradsky) [#47853](https://github.com/nodejs/node/pull/47853)
-* \[[`9a362aa2fb`](https://github.com/nodejs/node/commit/9a362aa2fb)] - **doc**: update supported version of FreeBSD to 12.4 (Michaël Zasso) [#47838](https://github.com/nodejs/node/pull/47838)
-* \[[`89c70dc6e6`](https://github.com/nodejs/node/commit/89c70dc6e6)] - **doc**: add stability experimental to pm (Rafael Gonzaga) [#47890](https://github.com/nodejs/node/pull/47890)
-* \[[`f96fb2eee7`](https://github.com/nodejs/node/commit/f96fb2eee7)] - **doc**: swap Matteo with Rafael in the stewards (Rafael Gonzaga) [#47841](https://github.com/nodejs/node/pull/47841)
-* \[[`1666a146e3`](https://github.com/nodejs/node/commit/1666a146e3)] - **doc**: add valgrind suppression details (Kevin Eady) [#47760](https://github.com/nodejs/node/pull/47760)
-* \[[`e53e8231ff`](https://github.com/nodejs/node/commit/e53e8231ff)] - **doc**: replace EOL versions in README (Tobias Nießen) [#47833](https://github.com/nodejs/node/pull/47833)
-* \[[`c092df9094`](https://github.com/nodejs/node/commit/c092df9094)] - **doc**: add ovflowd to collaborators (Claudio Wunder) [#47844](https://github.com/nodejs/node/pull/47844)
-* \[[`f7106765b3`](https://github.com/nodejs/node/commit/f7106765b3)] - **doc**: update BUILDING.md previous versions links (Tobias Nießen) [#47835](https://github.com/nodejs/node/pull/47835)
-* \[[`811b43c215`](https://github.com/nodejs/node/commit/811b43c215)] - **doc,test**: update the v8.startupSnapshot doc and test the example (Joyee Cheung) [#47468](https://github.com/nodejs/node/pull/47468)
-* \[[`1ec640ac70`](https://github.com/nodejs/node/commit/1ec640ac70)] - **esm**: do not use `'beforeExit'` on the main thread (Antoine du Hamel) [#47964](https://github.com/nodejs/node/pull/47964)
-* \[[`106dc612d6`](https://github.com/nodejs/node/commit/106dc612d6)] - **fs**: make readdir recursive algorithm iterative (Ethan Arrowood) [#47650](https://github.com/nodejs/node/pull/47650)
-* \[[`a0da2348a8`](https://github.com/nodejs/node/commit/a0da2348a8)] - **fs**: move fs\_use\_promises\_symbol to per-isolate symbols (Joyee Cheung) [#47768](https://github.com/nodejs/node/pull/47768)
-* \[[`4197a9a5a0`](https://github.com/nodejs/node/commit/4197a9a5a0)] - **(SEMVER-MINOR)** **http**: prevent writing to the body when not allowed by HTTP spec (Gerrard Lindsay) [#47732](https://github.com/nodejs/node/pull/47732)
-* \[[`a4d6543598`](https://github.com/nodejs/node/commit/a4d6543598)] - **http2**: improve nghttp2 error callback (Tobias Nießen) [#47840](https://github.com/nodejs/node/pull/47840)
-* \[[`a4fed6c580`](https://github.com/nodejs/node/commit/a4fed6c580)] - **lib**: update comment (sinkhaha) [#47884](https://github.com/nodejs/node/pull/47884)
-* \[[`fd8bec7b2b`](https://github.com/nodejs/node/commit/fd8bec7b2b)] - **meta**: bump step-security/harden-runner from 2.3.1 to 2.4.0 (Rich Trott) [#47980](https://github.com/nodejs/node/pull/47980)
-* \[[`f5b4b6d5dc`](https://github.com/nodejs/node/commit/f5b4b6d5dc)] - **meta**: bump github/codeql-action from 2.3.2 to 2.3.3 (Rich Trott) [#47979](https://github.com/nodejs/node/pull/47979)
-* \[[`c05c0a2359`](https://github.com/nodejs/node/commit/c05c0a2359)] - **meta**: bump actions/setup-python from 4.5.0 to 4.6.0 (Rich Trott) [#47968](https://github.com/nodejs/node/pull/47968)
-* \[[`2a3d6d97cb`](https://github.com/nodejs/node/commit/2a3d6d97cb)] - **meta**: add security-wg ping to permission.js (Rafael Gonzaga) [#47941](https://github.com/nodejs/node/pull/47941)
-* \[[`6c158e8dd1`](https://github.com/nodejs/node/commit/6c158e8dd1)] - **meta**: bump step-security/harden-runner from 2.2.1 to 2.3.1 (dependabot\[bot]) [#47808](https://github.com/nodejs/node/pull/47808)
-* \[[`f7a8094d37`](https://github.com/nodejs/node/commit/f7a8094d37)] - **meta**: bump actions/setup-python from 4.5.0 to 4.6.0 (dependabot\[bot]) [#47806](https://github.com/nodejs/node/pull/47806)
-* \[[`0f58e48792`](https://github.com/nodejs/node/commit/0f58e48792)] - **meta**: bump actions/checkout from 3.3.0 to 3.5.2 (dependabot\[bot]) [#47805](https://github.com/nodejs/node/pull/47805)
-* \[[`652b06dd82`](https://github.com/nodejs/node/commit/652b06dd82)] - **meta**: remove extra space in scorecard workflow (Mestery) [#47805](https://github.com/nodejs/node/pull/47805)
-* \[[`9f06eaccaf`](https://github.com/nodejs/node/commit/9f06eaccaf)] - **meta**: bump github/codeql-action from 2.2.9 to 2.3.2 (dependabot\[bot]) [#47809](https://github.com/nodejs/node/pull/47809)
-* \[[`977fd7cf35`](https://github.com/nodejs/node/commit/977fd7cf35)] - **meta**: bump codecov/codecov-action from 3.1.1 to 3.1.3 (dependabot\[bot]) [#47807](https://github.com/nodejs/node/pull/47807)
-* \[[`c19385c154`](https://github.com/nodejs/node/commit/c19385c154)] - **module**: refactor to use `normalizeRequirableId` in the CJS module loader (Darshan Sen) [#47896](https://github.com/nodejs/node/pull/47896)
-* \[[`739113f2fc`](https://github.com/nodejs/node/commit/739113f2fc)] - **module**: block requiring `test/reporters` without scheme (Moshe Atlow) [#47831](https://github.com/nodejs/node/pull/47831)
-* \[[`f489c6710c`](https://github.com/nodejs/node/commit/f489c6710c)] - **(NODE-API-SEMVER-MAJOR)** **node-api**: get Node API version used by addon (Vladimir Morozov) [#45715](https://github.com/nodejs/node/pull/45715)
-* \[[`7222f9d74b`](https://github.com/nodejs/node/commit/7222f9d74b)] - **path**: indicate index of wrong resolve() parameter (sosoba) [#47660](https://github.com/nodejs/node/pull/47660)
-* \[[`7dd32f1536`](https://github.com/nodejs/node/commit/7dd32f1536)] - **permission**: remove unused function declaration (Deokjin Kim) [#47957](https://github.com/nodejs/node/pull/47957)
-* \[[`af86625a05`](https://github.com/nodejs/node/commit/af86625a05)] - **permission**: resolve reference to absolute path only for fs permission (Daeyeon Jeong) [#47930](https://github.com/nodejs/node/pull/47930)
-* \[[`1625ae11fe`](https://github.com/nodejs/node/commit/1625ae11fe)] - **quic**: address recent coverity warning (Michael Dawson) [#47753](https://github.com/nodejs/node/pull/47753)
-* \[[`c4596b9ce7`](https://github.com/nodejs/node/commit/c4596b9ce7)] - **(SEMVER-MINOR)** **sea**: add option to disable the experimental SEA warning (Darshan Sen) [#47588](https://github.com/nodejs/node/pull/47588)
-* \[[`1a7fc186bc`](https://github.com/nodejs/node/commit/1a7fc186bc)] - **sea**: allow requiring core modules with the "node:" prefix (Darshan Sen) [#47779](https://github.com/nodejs/node/pull/47779)
-* \[[`786a1c5398`](https://github.com/nodejs/node/commit/786a1c5398)] - **src**: deduplicate X509Certificate::Fingerprint\* (Tobias Nießen) [#47978](https://github.com/nodejs/node/pull/47978)
-* \[[`060c1d502b`](https://github.com/nodejs/node/commit/060c1d502b)] - **src**: stop copying code cache, part 2 (Keyhan Vakil) [#47958](https://github.com/nodejs/node/pull/47958)
-* \[[`1aec718619`](https://github.com/nodejs/node/commit/1aec718619)] - **(SEMVER-MINOR)** **src**: add cjs\_module\_lexer\_version base64\_version (Jithil P Ponnan) [#45629](https://github.com/nodejs/node/pull/45629)
-* \[[`0c06bfd8dc`](https://github.com/nodejs/node/commit/0c06bfd8dc)] - **src**: move BlobSerializerDeserializer to a separate header file (Darshan Sen) [#47933](https://github.com/nodejs/node/pull/47933)
-* \[[`bd553e7521`](https://github.com/nodejs/node/commit/bd553e7521)] - **src**: rename SKIP\_CHECK\_SIZE to SKIP\_CHECK\_STRLEN (Tobias Nießen) [#47845](https://github.com/nodejs/node/pull/47845)
-* \[[`190596c189`](https://github.com/nodejs/node/commit/190596c189)] - **src**: register external references for source code (Keyhan Vakil) [#47055](https://github.com/nodejs/node/pull/47055)
-* \[[`4293cc47f4`](https://github.com/nodejs/node/commit/4293cc47f4)] - **src**: support V8 experimental shared values in messaging (Shu-yu Guo) [#47706](https://github.com/nodejs/node/pull/47706)
-* \[[`9bc5d78f0c`](https://github.com/nodejs/node/commit/9bc5d78f0c)] - **src**: register ext reference for Fingerprint512 (Tobias Nießen) [#47892](https://github.com/nodejs/node/pull/47892)
-* \[[`a11507e23b`](https://github.com/nodejs/node/commit/a11507e23b)] - **src**: stop copying code cache (Keyhan Vakil) [#47144](https://github.com/nodejs/node/pull/47144)
-* \[[`515c9b8de6`](https://github.com/nodejs/node/commit/515c9b8de6)] - **src**: clarify the parameter name in `Permission::Apply` (Daeyeon Jeong) [#47874](https://github.com/nodejs/node/pull/47874)
-* \[[`c4217613f5`](https://github.com/nodejs/node/commit/c4217613f5)] - **src**: fix creating an ArrayBuffer from a Blob created with `openAsBlob` (Daeyeon Jeong) [#47691](https://github.com/nodejs/node/pull/47691)
-* \[[`4bc17fd67b`](https://github.com/nodejs/node/commit/4bc17fd67b)] - **src**: avoid strcmp() with Utf8Value (Tobias Nießen) [#47827](https://github.com/nodejs/node/pull/47827)
-* \[[`d358317f70`](https://github.com/nodejs/node/commit/d358317f70)] - **src**: get binding data store directly from the realm (Joyee Cheung) [#47437](https://github.com/nodejs/node/pull/47437)
-* \[[`b04d51a0b5`](https://github.com/nodejs/node/commit/b04d51a0b5)] - **src**: prefer data accessor of string and vector (Mohammed Keyvanzadeh) [#47750](https://github.com/nodejs/node/pull/47750)
-* \[[`2952cc576c`](https://github.com/nodejs/node/commit/2952cc576c)] - **src**: add per-isolate SetFastMethod and Set\[Fast]MethodNoSideEffect (Joyee Cheung) [#47768](https://github.com/nodejs/node/pull/47768)
-* \[[`010d2ecf94`](https://github.com/nodejs/node/commit/010d2ecf94)] - **test**: mark test-esm-loader-http-imports as flaky (Tobias Nießen) [#47987](https://github.com/nodejs/node/pull/47987)
-* \[[`bb33c74c07`](https://github.com/nodejs/node/commit/bb33c74c07)] - **test**: add getRandomValues return length (Jithil P Ponnan) [#46357](https://github.com/nodejs/node/pull/46357)
-* \[[`6e019586f7`](https://github.com/nodejs/node/commit/6e019586f7)] - **test**: unskip negative-settimeout.any.js WPT (Filip Skokan) [#47946](https://github.com/nodejs/node/pull/47946)
-* \[[`8f547afe5f`](https://github.com/nodejs/node/commit/8f547afe5f)] - **test**: use appropriate usages for a negative import test (Filip Skokan) [#47878](https://github.com/nodejs/node/pull/47878)
-* \[[`7e34f77518`](https://github.com/nodejs/node/commit/7e34f77518)] - **test**: fix webcrypto wrap unwrap tests (Filip Skokan) [#47876](https://github.com/nodejs/node/pull/47876)
-* \[[`30f4f35244`](https://github.com/nodejs/node/commit/30f4f35244)] - **test**: fix output tests when path includes node version (Moshe Atlow) [#47843](https://github.com/nodejs/node/pull/47843)
-* \[[`54607bfd68`](https://github.com/nodejs/node/commit/54607bfd68)] - **test**: reduce WPT concurrency (Filip Skokan) [#47834](https://github.com/nodejs/node/pull/47834)
-* \[[`17945a2495`](https://github.com/nodejs/node/commit/17945a2495)] - **test**: migrate a pseudo\_tty test to use assertSnapshot (Moshe Atlow) [#47803](https://github.com/nodejs/node/pull/47803)
-* \[[`c9233679e8`](https://github.com/nodejs/node/commit/c9233679e8)] - **test**: fix WPT state when process exits but workers are still running (Filip Skokan) [#47826](https://github.com/nodejs/node/pull/47826)
-* \[[`34bfb69b5b`](https://github.com/nodejs/node/commit/34bfb69b5b)] - **test**: migrate message tests to use assertSnapshot (Moshe Atlow) [#47498](https://github.com/nodejs/node/pull/47498)
-* \[[`d25c785c2a`](https://github.com/nodejs/node/commit/d25c785c2a)] - **test**: allow SIGBUS in signal-handler abort test (Michaël Zasso) [#47851](https://github.com/nodejs/node/pull/47851)
-* \[[`aa2c7e00d7`](https://github.com/nodejs/node/commit/aa2c7e00d7)] - **test,crypto**: update WebCryptoAPI WPT (Filip Skokan) [#47921](https://github.com/nodejs/node/pull/47921)
-* \[[`da27542058`](https://github.com/nodejs/node/commit/da27542058)] - **test\_runner**: use v8.serialize instead of TAP (Moshe Atlow) [#47867](https://github.com/nodejs/node/pull/47867)
-* \[[`17befe008c`](https://github.com/nodejs/node/commit/17befe008c)] - **(SEMVER-MINOR)** **test\_runner**: add shorthands to `test` (Chemi Atlow) [#47909](https://github.com/nodejs/node/pull/47909)
-* \[[`42db1d50a0`](https://github.com/nodejs/node/commit/42db1d50a0)] - **test\_runner**: fix ordering of test hooks (Phil Nash) [#47931](https://github.com/nodejs/node/pull/47931)
-* \[[`d81c54e3a8`](https://github.com/nodejs/node/commit/d81c54e3a8)] - **test\_runner**: omit inaccessible files from coverage (Colin Ihrig) [#47850](https://github.com/nodejs/node/pull/47850)
-* \[[`a4e261e910`](https://github.com/nodejs/node/commit/a4e261e910)] - **tools**: debug log for nghttp3 (Marco Ippolito) [#47992](https://github.com/nodejs/node/pull/47992)
-* \[[`f6ff318d4c`](https://github.com/nodejs/node/commit/f6ff318d4c)] - **tools**: automate icu-small update (Marco Ippolito) [#47727](https://github.com/nodejs/node/pull/47727)
-* \[[`706c305381`](https://github.com/nodejs/node/commit/706c305381)] - **tools**: update lint-md-dependencies to rollup\@3.21.5 (Node.js GitHub Bot) [#47903](https://github.com/nodejs/node/pull/47903)
-* \[[`e22c686ca9`](https://github.com/nodejs/node/commit/e22c686ca9)] - **tools**: update eslint to 8.40.0 (Node.js GitHub Bot) [#47906](https://github.com/nodejs/node/pull/47906)
-* \[[`36f7cfac93`](https://github.com/nodejs/node/commit/36f7cfac93)] - **tools**: update eslint to 8.39.0 (Node.js GitHub Bot) [#47789](https://github.com/nodejs/node/pull/47789)
-* \[[`7323902a40`](https://github.com/nodejs/node/commit/7323902a40)] - **tools**: fix jsdoc lint (Moshe Atlow) [#47789](https://github.com/nodejs/node/pull/47789)
-* \[[`a0634d7f89`](https://github.com/nodejs/node/commit/a0634d7f89)] - **(SEMVER-MINOR)** **url**: add value argument to has and delete methods (Sankalp Shubham) [#47885](https://github.com/nodejs/node/pull/47885)
-* \[[`1b06c1e003`](https://github.com/nodejs/node/commit/1b06c1e003)] - **url**: improve `isURL` detection (Yagiz Nizipli) [#47886](https://github.com/nodejs/node/pull/47886)
-* \[[`2bd869d20c`](https://github.com/nodejs/node/commit/2bd869d20c)] - **vm**: fix crash when setting \_\_proto\_\_ on context's globalThis (Feng Yu) [#47939](https://github.com/nodejs/node/pull/47939)
-* \[[`e6685f9e82`](https://github.com/nodejs/node/commit/e6685f9e82)] - **vm,lib**: refactor microtaskQueue assignment logic (Khaidi Chu) [#47765](https://github.com/nodejs/node/pull/47765)
-* \[[`47fea13dac`](https://github.com/nodejs/node/commit/47fea13dac)] - **worker**: support more cases when (de)serializing errors (Moshe Atlow) [#47925](https://github.com/nodejs/node/pull/47925)
-* \[[`6f3876c035`](https://github.com/nodejs/node/commit/6f3876c035)] - **worker**: use snapshot in workers spawned by workers (Joyee Cheung) [#47731](https://github.com/nodejs/node/pull/47731)
-
-
-
-## 2023-05-03, Version 20.1.0 (Current), @targos
-
-### Notable Changes
-
-* \[[`5e99598639`](https://github.com/nodejs/node/commit/5e99598639)] - **assert**: deprecate `CallTracker` (Moshe Atlow) [#47740](https://github.com/nodejs/node/pull/47740)
-* \[[`2d97c89c6f`](https://github.com/nodejs/node/commit/2d97c89c6f)] - **crypto**: update root certificates to NSS 3.89 (Node.js GitHub Bot) [#47659](https://github.com/nodejs/node/pull/47659)
-* \[[`ce8820e292`](https://github.com/nodejs/node/commit/ce8820e292)] - **(SEMVER-MINOR)** **dns**: expose `getDefaultResultOrder` (btea) [#46973](https://github.com/nodejs/node/pull/46973)
-* \[[`9d30f469aa`](https://github.com/nodejs/node/commit/9d30f469aa)] - **doc**: add KhafraDev to collaborators (Matthew Aitken) [#47510](https://github.com/nodejs/node/pull/47510)
-* \[[`439ea47a77`](https://github.com/nodejs/node/commit/439ea47a77)] - **(SEMVER-MINOR)** **fs**: add `recursive` option to `readdir` and `opendir` (Ethan Arrowood) [#41439](https://github.com/nodejs/node/pull/41439)
-* \[[`a54e898dc8`](https://github.com/nodejs/node/commit/a54e898dc8)] - **(SEMVER-MINOR)** **fs**: add support for `mode` flag to specify the copy behavior of the `cp` methods (Tetsuharu Ohzeki) [#47084](https://github.com/nodejs/node/pull/47084)
-* \[[`4fa773964b`](https://github.com/nodejs/node/commit/4fa773964b)] - **(SEMVER-MINOR)** **http**: add `highWaterMark` option `http.createServer` (HinataKah0) [#47405](https://github.com/nodejs/node/pull/47405)
-* \[[`2b411f4b42`](https://github.com/nodejs/node/commit/2b411f4b42)] - **(SEMVER-MINOR)** **stream**: preserve object mode in `compose` (Raz Luvaton) [#47413](https://github.com/nodejs/node/pull/47413)
-* \[[`5327483f31`](https://github.com/nodejs/node/commit/5327483f31)] - **(SEMVER-MINOR)** **test\_runner**: add `testNamePatterns` to `run` API (Chemi Atlow) [#47628](https://github.com/nodejs/node/pull/47628)
-* \[[`bdd02a467d`](https://github.com/nodejs/node/commit/bdd02a467d)] - **(SEMVER-MINOR)** **test\_runner**: execute `before` hook on test (Chemi Atlow) [#47586](https://github.com/nodejs/node/pull/47586)
-* \[[`0e70c187bc`](https://github.com/nodejs/node/commit/0e70c187bc)] - **(SEMVER-MINOR)** **test\_runner**: support combining coverage reports (Colin Ihrig) [#47686](https://github.com/nodejs/node/pull/47686)
-* \[[`75c1d1b66e`](https://github.com/nodejs/node/commit/75c1d1b66e)] - **(SEMVER-MINOR)** **wasi**: make `returnOnExit` true by default (Michael Dawson) [#47390](https://github.com/nodejs/node/pull/47390)
-
-### Commits
-
-* \[[`33d1bd3e02`](https://github.com/nodejs/node/commit/33d1bd3e02)] - **assert**: deprecate callTracker (Moshe Atlow) [#47740](https://github.com/nodejs/node/pull/47740)
-* \[[`6d87355e83`](https://github.com/nodejs/node/commit/6d87355e83)] - **benchmark**: add eventtarget creation bench (Rafael Gonzaga) [#47774](https://github.com/nodejs/node/pull/47774)
-* \[[`40324a1dea`](https://github.com/nodejs/node/commit/40324a1dea)] - **benchmark**: differentiate whatwg and legacy url (Yagiz Nizipli) [#47377](https://github.com/nodejs/node/pull/47377)
-* \[[`936d7cb069`](https://github.com/nodejs/node/commit/936d7cb069)] - **benchmark**: add a benchmark for `defaultResolve` (Antoine du Hamel) [#47543](https://github.com/nodejs/node/pull/47543)
-* \[[`202042ee93`](https://github.com/nodejs/node/commit/202042ee93)] - **bootstrap**: support namespaced builtins in snapshot scripts (Joyee Cheung) [#47467](https://github.com/nodejs/node/pull/47467)
-* \[[`30af5cee55`](https://github.com/nodejs/node/commit/30af5cee55)] - **build**: use pathlib for paths (Mohammed Keyvanzadeh) [#47581](https://github.com/nodejs/node/pull/47581)
-* \[[`089c9c51e9`](https://github.com/nodejs/node/commit/089c9c51e9)] - **build**: refactor configure.py (Mohammed Keyvanzadeh) [#47667](https://github.com/nodejs/node/pull/47667)
-* \[[`5b851c8074`](https://github.com/nodejs/node/commit/5b851c8074)] - **build**: add devcontainer configuration (Tierney Cyren) [#40825](https://github.com/nodejs/node/pull/40825)
-* \[[`35e8b3b467`](https://github.com/nodejs/node/commit/35e8b3b467)] - **build**: bump ossf/scorecard-action from 2.1.2 to 2.1.3 (dependabot\[bot]) [#47367](https://github.com/nodejs/node/pull/47367)
-* \[[`78c08243df`](https://github.com/nodejs/node/commit/78c08243df)] - **build**: replace Python linter flake8 with ruff (Christian Clauss) [#47519](https://github.com/nodejs/node/pull/47519)
-* \[[`2d97c89c6f`](https://github.com/nodejs/node/commit/2d97c89c6f)] - **crypto**: update root certificates to NSS 3.89 (Node.js GitHub Bot) [#47659](https://github.com/nodejs/node/pull/47659)
-* \[[`420feb41cf`](https://github.com/nodejs/node/commit/420feb41cf)] - **crypto**: remove INT\_MAX restriction in randomBytes (Tobias Nießen) [#47559](https://github.com/nodejs/node/pull/47559)
-* \[[`6046779dd9`](https://github.com/nodejs/node/commit/6046779dd9)] - **deps**: disable V8 concurrent sparkplug compilation (Michaël Zasso) [#47450](https://github.com/nodejs/node/pull/47450)
-* \[[`00d461e93f`](https://github.com/nodejs/node/commit/00d461e93f)] - **deps**: V8: cherry-pick c5ab3e4f0c5a (Richard Lau) [#47736](https://github.com/nodejs/node/pull/47736)
-* \[[`d08dd8069f`](https://github.com/nodejs/node/commit/d08dd8069f)] - **deps**: update ada to 2.3.0 (Node.js GitHub Bot) [#47737](https://github.com/nodejs/node/pull/47737)
-* \[[`996245976b`](https://github.com/nodejs/node/commit/996245976b)] - **deps**: update undici to 5.22.0 (Node.js GitHub Bot) [#47679](https://github.com/nodejs/node/pull/47679)
-* \[[`f3ee3126df`](https://github.com/nodejs/node/commit/f3ee3126df)] - **deps**: update ada to 2.2.0 (Node.js GitHub Bot) [#47678](https://github.com/nodejs/node/pull/47678)
-* \[[`1391d3b9ff`](https://github.com/nodejs/node/commit/1391d3b9ff)] - **deps**: add minimatch as a dependency (Moshe Atlow) [#47499](https://github.com/nodejs/node/pull/47499)
-* \[[`315454350d`](https://github.com/nodejs/node/commit/315454350d)] - **deps**: update ada to 2.1.0 (Node.js GitHub Bot) [#47598](https://github.com/nodejs/node/pull/47598)
-* \[[`7f7735cad9`](https://github.com/nodejs/node/commit/7f7735cad9)] - **deps**: update ICU to 73.1 release (Steven R. Loomis) [#47456](https://github.com/nodejs/node/pull/47456)
-* \[[`13105c12b7`](https://github.com/nodejs/node/commit/13105c12b7)] - **deps**: patch V8 to 11.3.244.8 (Michaël Zasso) [#47536](https://github.com/nodejs/node/pull/47536)
-* \[[`ede69d272a`](https://github.com/nodejs/node/commit/ede69d272a)] - **deps**: update undici to 5.21.2 (Node.js GitHub Bot) [#47508](https://github.com/nodejs/node/pull/47508)
-* \[[`64b5a5f872`](https://github.com/nodejs/node/commit/64b5a5f872)] - **deps**: update simdutf to 3.2.8 (Node.js GitHub Bot) [#47507](https://github.com/nodejs/node/pull/47507)
-* \[[`2664536796`](https://github.com/nodejs/node/commit/2664536796)] - **deps**: V8: cherry-pick 8e10685ff918 (Jiawen Geng) [#47440](https://github.com/nodejs/node/pull/47440)
-* \[[`ba9ec91f0e`](https://github.com/nodejs/node/commit/ba9ec91f0e)] - **deps**: update undici to 5.21.1 (Node.js GitHub Bot) [#47488](https://github.com/nodejs/node/pull/47488)
-* \[[`ce8820e292`](https://github.com/nodejs/node/commit/ce8820e292)] - **(SEMVER-MINOR)** **dns**: expose getDefaultResultOrder (btea) [#46973](https://github.com/nodejs/node/pull/46973)
-* \[[`4c26e28c33`](https://github.com/nodejs/node/commit/4c26e28c33)] - **doc**: create maintaining folder for deps (Marco Ippolito) [#47589](https://github.com/nodejs/node/pull/47589)
-* \[[`aa0ef3eabd`](https://github.com/nodejs/node/commit/aa0ef3eabd)] - **doc**: fix --allow-\* CLI flag references (Tobias Nießen) [#47804](https://github.com/nodejs/node/pull/47804)
-* \[[`98603b6fd3`](https://github.com/nodejs/node/commit/98603b6fd3)] - **doc**: clarify fs permissions only affect fs module (Tobias Nießen) [#47782](https://github.com/nodejs/node/pull/47782)
-* \[[`3befe5dac9`](https://github.com/nodejs/node/commit/3befe5dac9)] - **doc**: add copy node executable guide on windows (XLor) [#47781](https://github.com/nodejs/node/pull/47781)
-* \[[`98450d9892`](https://github.com/nodejs/node/commit/98450d9892)] - **doc**: remove MoLow from Triagers (Moshe Atlow) [#47792](https://github.com/nodejs/node/pull/47792)
-* \[[`d75036410d`](https://github.com/nodejs/node/commit/d75036410d)] - **doc**: fix typo in webstreams.md (Christian Takle) [#47766](https://github.com/nodejs/node/pull/47766)
-* \[[`ceba37a74f`](https://github.com/nodejs/node/commit/ceba37a74f)] - **doc**: move BethGriggs to regular member (Rich Trott) [#47776](https://github.com/nodejs/node/pull/47776)
-* \[[`b954ea9781`](https://github.com/nodejs/node/commit/b954ea9781)] - **doc**: mark signing the binary is macOS and Windows only in SEA (Xuguang Mei) [#47722](https://github.com/nodejs/node/pull/47722)
-* \[[`26bccbcd10`](https://github.com/nodejs/node/commit/26bccbcd10)] - **doc**: move addaleax to TSC emeriti (Anna Henningsen) [#47752](https://github.com/nodejs/node/pull/47752)
-* \[[`20b0de242f`](https://github.com/nodejs/node/commit/20b0de242f)] - **doc**: add link to news for Node.js core (Michael Dawson) [#47704](https://github.com/nodejs/node/pull/47704)
-* \[[`5709133dc7`](https://github.com/nodejs/node/commit/5709133dc7)] - **doc**: fix a typo in `permissions.md` (Daeyeon Jeong) [#47730](https://github.com/nodejs/node/pull/47730)
-* \[[`c5c40a89f2`](https://github.com/nodejs/node/commit/c5c40a89f2)] - **doc**: async\_hooks asynchronous content example add mjs code (btea) [#47401](https://github.com/nodejs/node/pull/47401)
-* \[[`a1403a8df2`](https://github.com/nodejs/node/commit/a1403a8df2)] - **doc**: clarify concurrency model of test runner (Tobias Nießen) [#47642](https://github.com/nodejs/node/pull/47642)
-* \[[`c0c23fbe42`](https://github.com/nodejs/node/commit/c0c23fbe42)] - **doc**: fix a typo in `fs.openAsBlob` (Daeyeon Jeong) [#47693](https://github.com/nodejs/node/pull/47693)
-* \[[`4cef98812d`](https://github.com/nodejs/node/commit/4cef98812d)] - **doc**: fix typos (Mohammed Keyvanzadeh) [#47685](https://github.com/nodejs/node/pull/47685)
-* \[[`f30ef242ef`](https://github.com/nodejs/node/commit/f30ef242ef)] - **doc**: fix capitalization of ASan (Mohammed Keyvanzadeh) [#47676](https://github.com/nodejs/node/pull/47676)
-* \[[`78a3503406`](https://github.com/nodejs/node/commit/78a3503406)] - **doc**: fix typos in SECURITY.md (Mohammed Keyvanzadeh) [#47677](https://github.com/nodejs/node/pull/47677)
-* \[[`9101630e05`](https://github.com/nodejs/node/commit/9101630e05)] - **doc**: update error code of buffer (Deokjin Kim) [#47617](https://github.com/nodejs/node/pull/47617)
-* \[[`183f0c3e79`](https://github.com/nodejs/node/commit/183f0c3e79)] - **doc**: change offset of example in `Buffer.copyBytesFrom` (Deokjin Kim) [#47606](https://github.com/nodejs/node/pull/47606)
-* \[[`d11ff4bc53`](https://github.com/nodejs/node/commit/d11ff4bc53)] - **doc**: improve fs permissions description (Tobias Nießen) [#47596](https://github.com/nodejs/node/pull/47596)
-* \[[`b58920c3a9`](https://github.com/nodejs/node/commit/b58920c3a9)] - **doc**: remove markdown link from heading (Tobias Nießen) [#47585](https://github.com/nodejs/node/pull/47585)
-* \[[`c36634e880`](https://github.com/nodejs/node/commit/c36634e880)] - **doc**: fix history ordering of `WASI` constructor (Antoine du Hamel) [#47611](https://github.com/nodejs/node/pull/47611)
-* \[[`d3fadd889d`](https://github.com/nodejs/node/commit/d3fadd889d)] - **doc**: fix release-post script location (Rafael Gonzaga) [#47517](https://github.com/nodejs/node/pull/47517)
-* \[[`2a0bbe7883`](https://github.com/nodejs/node/commit/2a0bbe7883)] - **doc**: fix typo in webcrypto metadata (Tobias Nießen) [#47595](https://github.com/nodejs/node/pull/47595)
-* \[[`b0b16ee9f6`](https://github.com/nodejs/node/commit/b0b16ee9f6)] - **doc**: add link for news from uvwasi team (Michael Dawson) [#47531](https://github.com/nodejs/node/pull/47531)
-* \[[`7ca416af15`](https://github.com/nodejs/node/commit/7ca416af15)] - **doc**: add missing setEncoding call in ESM example (Anna Henningsen) [#47558](https://github.com/nodejs/node/pull/47558)
-* \[[`f9abd59b41`](https://github.com/nodejs/node/commit/f9abd59b41)] - **doc**: update darwin-x64 toolchain used for Node.js 20 releases (Michaël Zasso) [#47546](https://github.com/nodejs/node/pull/47546)
-* \[[`0dc508070f`](https://github.com/nodejs/node/commit/0dc508070f)] - **doc**: fix split infinitive in Hooks caveat (Jacob Smith) [#47550](https://github.com/nodejs/node/pull/47550)
-* \[[`4046280475`](https://github.com/nodejs/node/commit/4046280475)] - **doc**: fix typo in util.types.isNativeError() (Julian Dax) [#47532](https://github.com/nodejs/node/pull/47532)
-* \[[`9d30f469aa`](https://github.com/nodejs/node/commit/9d30f469aa)] - **doc**: add KhafraDev to collaborators (Matthew Aitken) [#47510](https://github.com/nodejs/node/pull/47510)
-* \[[`537c17ec48`](https://github.com/nodejs/node/commit/537c17ec48)] - **doc**: create maintaining-brotli.md (Marco Ippolito) [#47380](https://github.com/nodejs/node/pull/47380)
-* \[[`09ff9eafd9`](https://github.com/nodejs/node/commit/09ff9eafd9)] - **doc,fs**: update description of fs.stat() method (Mert Can Altın) [#47654](https://github.com/nodejs/node/pull/47654)
-* \[[`185d6090cd`](https://github.com/nodejs/node/commit/185d6090cd)] - **doc,test**: fix concurrency option of test() (Tobias Nießen) [#47734](https://github.com/nodejs/node/pull/47734)
-* \[[`a793cf401d`](https://github.com/nodejs/node/commit/a793cf401d)] - **esm**: rename `URLCanParse` to be consistent (Antoine du Hamel) [#47668](https://github.com/nodejs/node/pull/47668)
-* \[[`fbb6b72f87`](https://github.com/nodejs/node/commit/fbb6b72f87)] - **esm**: remove support for deprecated hooks (Antoine du Hamel) [#47580](https://github.com/nodejs/node/pull/47580)
-* \[[`c150976c4f`](https://github.com/nodejs/node/commit/c150976c4f)] - **esm**: initialize `import.meta` on eval (Antoine du Hamel) [#47551](https://github.com/nodejs/node/pull/47551)
-* \[[`55f70f6395`](https://github.com/nodejs/node/commit/55f70f6395)] - **esm**: propagate `process.exit` from the loader thread to the main thread (Antoine du Hamel) [#47548](https://github.com/nodejs/node/pull/47548)
-* \[[`269482f61f`](https://github.com/nodejs/node/commit/269482f61f)] - **esm**: avoid accessing lazy getters for urls (Yagiz Nizipli) [#47542](https://github.com/nodejs/node/pull/47542)
-* \[[`889add68e5`](https://github.com/nodejs/node/commit/889add68e5)] - **esm**: avoid try/catch when validating urls (Yagiz Nizipli) [#47541](https://github.com/nodejs/node/pull/47541)
-* \[[`439ea47a77`](https://github.com/nodejs/node/commit/439ea47a77)] - **(SEMVER-MINOR)** **fs**: add recursive option to readdir and opendir (Ethan Arrowood) [#41439](https://github.com/nodejs/node/pull/41439)
-* \[[`a54e898dc8`](https://github.com/nodejs/node/commit/a54e898dc8)] - **(SEMVER-MINOR)** **fs**: add support for mode flag to specify the copy behavior (Tetsuharu Ohzeki) [#47084](https://github.com/nodejs/node/pull/47084)
-* \[[`96f93cc500`](https://github.com/nodejs/node/commit/96f93cc500)] - **(SEMVER-MINOR)** **http**: remove internal error in assignSocket (Matteo Collina) [#47723](https://github.com/nodejs/node/pull/47723)
-* \[[`4fa773964b`](https://github.com/nodejs/node/commit/4fa773964b)] - **(SEMVER-MINOR)** **http**: add highWaterMark opt in http.createServer (HinataKah0) [#47405](https://github.com/nodejs/node/pull/47405)
-* \[[`94a5abb1e0`](https://github.com/nodejs/node/commit/94a5abb1e0)] - **inspector**: add tips for Session (theanarkh) [#47195](https://github.com/nodejs/node/pull/47195)
-* \[[`21ff33127a`](https://github.com/nodejs/node/commit/21ff33127a)] - **lib**: improve esm resolve performance (Yagiz Nizipli) [#46652](https://github.com/nodejs/node/pull/46652)
-* \[[`b8bdaf86c4`](https://github.com/nodejs/node/commit/b8bdaf86c4)] - **lib**: disallow file-backed blob cloning (James M Snell) [#47574](https://github.com/nodejs/node/pull/47574)
-* \[[`e8bc03b372`](https://github.com/nodejs/node/commit/e8bc03b372)] - **lib**: use webidl DOMString converter in EventTarget (Matthew Aitken) [#47514](https://github.com/nodejs/node/pull/47514)
-* \[[`91e4a7cdee`](https://github.com/nodejs/node/commit/91e4a7cdee)] - **loader**: use default loader as cascaded loader in the in loader worker (Joyee Cheung) [#47620](https://github.com/nodejs/node/pull/47620)
-* \[[`d5089fe00a`](https://github.com/nodejs/node/commit/d5089fe00a)] - **meta**: fix dependabot commit message (Mestery) [#47810](https://github.com/nodejs/node/pull/47810)
-* \[[`92794400ce`](https://github.com/nodejs/node/commit/92794400ce)] - **meta**: ping nodejs/startup for startup test changes (Joyee Cheung) [#47771](https://github.com/nodejs/node/pull/47771)
-* \[[`8d43689077`](https://github.com/nodejs/node/commit/8d43689077)] - **meta**: add mailmap entry for KhafraDev (Rich Trott) [#47512](https://github.com/nodejs/node/pull/47512)
-* \[[`4d02901935`](https://github.com/nodejs/node/commit/4d02901935)] - **node-api**: test passing NULL to napi\_define\_class (Gabriel Schulhof) [#47567](https://github.com/nodejs/node/pull/47567)
-* \[[`568256dca0`](https://github.com/nodejs/node/commit/568256dca0)] - **node-api**: test passing NULL to number APIs (Gabriel Schulhof) [#47549](https://github.com/nodejs/node/pull/47549)
-* \[[`12f0fa386d`](https://github.com/nodejs/node/commit/12f0fa386d)] - **node-api**: remove unused mark\_arraybuffer\_as\_untransferable (Chengzhong Wu) [#47557](https://github.com/nodejs/node/pull/47557)
-* \[[`e8ea83416a`](https://github.com/nodejs/node/commit/e8ea83416a)] - **quic**: add more QUIC implementation (James M Snell) [#47494](https://github.com/nodejs/node/pull/47494)
-* \[[`af227b159d`](https://github.com/nodejs/node/commit/af227b159d)] - **readline**: fix issue with newline-less last line (Ian Harris) [#47317](https://github.com/nodejs/node/pull/47317)
-* \[[`e948bec969`](https://github.com/nodejs/node/commit/e948bec969)] - **src**: avoid copying string in fs\_permission (Yagiz Nizipli) [#47746](https://github.com/nodejs/node/pull/47746)
-* \[[`dc43ce7706`](https://github.com/nodejs/node/commit/dc43ce7706)] - **src**: replace idna functions with ada::idna (Yagiz Nizipli) [#47735](https://github.com/nodejs/node/pull/47735)
-* \[[`1f9e7ce7e8`](https://github.com/nodejs/node/commit/1f9e7ce7e8)] - **src**: fix typo in comment in quic/sessionticket.cc (Tobias Nießen) [#47754](https://github.com/nodejs/node/pull/47754)
-* \[[`2acb57b777`](https://github.com/nodejs/node/commit/2acb57b777)] - **src**: mark fatal error functions as noreturn (Chengzhong Wu) [#47695](https://github.com/nodejs/node/pull/47695)
-* \[[`4431df7481`](https://github.com/nodejs/node/commit/4431df7481)] - **src**: split BlobSerializer/BlobDeserializer (Joyee Cheung) [#47458](https://github.com/nodejs/node/pull/47458)
-* \[[`bf9a52cb3d`](https://github.com/nodejs/node/commit/bf9a52cb3d)] - **src**: prevent changing FunctionTemplateInfo after publish (Shelley Vohr) [#46979](https://github.com/nodejs/node/pull/46979)
-* \[[`872e6706ca`](https://github.com/nodejs/node/commit/872e6706ca)] - **src**: add v8 fast api for url canParse (Matthew Aitken) [#47552](https://github.com/nodejs/node/pull/47552)
-* \[[`cfafe431f2`](https://github.com/nodejs/node/commit/cfafe431f2)] - **src**: make AliasedBuffers in the binding data weak (Joyee Cheung) [#47354](https://github.com/nodejs/node/pull/47354)
-* \[[`cf48db0034`](https://github.com/nodejs/node/commit/cf48db0034)] - **src**: use v8::Boolean(b) over b ? True() : False() (Tobias Nießen) [#47554](https://github.com/nodejs/node/pull/47554)
-* \[[`ba255eda37`](https://github.com/nodejs/node/commit/ba255eda37)] - **src**: fix typo in process.env accessor error message (Moritz Raho) [#47014](https://github.com/nodejs/node/pull/47014)
-* \[[`daf0c78232`](https://github.com/nodejs/node/commit/daf0c78232)] - **src**: replace static const string\_view by static constexpr (Daniel Lemire) [#47524](https://github.com/nodejs/node/pull/47524)
-* \[[`57e7ed7f47`](https://github.com/nodejs/node/commit/57e7ed7f47)] - **src**: fix CSPRNG when length exceeds INT\_MAX (Tobias Nießen) [#47515](https://github.com/nodejs/node/pull/47515)
-* \[[`cda36bfd8f`](https://github.com/nodejs/node/commit/cda36bfd8f)] - **src**: use correct variable in node\_builtins.cc (Michaël Zasso) [#47343](https://github.com/nodejs/node/pull/47343)
-* \[[`adc1601ccd`](https://github.com/nodejs/node/commit/adc1601ccd)] - **src**: slim down stream\_base-inl.h (lilsweetcaligula) [#46972](https://github.com/nodejs/node/pull/46972)
-* \[[`f88132f1b8`](https://github.com/nodejs/node/commit/f88132f1b8)] - **stream**: prevent pipeline hang with generator functions (Debadree Chatterjee) [#47712](https://github.com/nodejs/node/pull/47712)
-* \[[`2b411f4b42`](https://github.com/nodejs/node/commit/2b411f4b42)] - **(SEMVER-MINOR)** **stream**: preserve object mode in compose (Raz Luvaton) [#47413](https://github.com/nodejs/node/pull/47413)
-* \[[`159cf02920`](https://github.com/nodejs/node/commit/159cf02920)] - **test**: refactor to use `getEventListeners` in timers (Deokjin Kim) [#47759](https://github.com/nodejs/node/pull/47759)
-* \[[`97a3d39b8f`](https://github.com/nodejs/node/commit/97a3d39b8f)] - **test**: add and use tmpdir.hasEnoughSpace() (Tobias Nießen) [#47767](https://github.com/nodejs/node/pull/47767)
-* \[[`5bb7b26bb5`](https://github.com/nodejs/node/commit/5bb7b26bb5)] - **test**: remove spaces from test runner test names (Tobias Nießen) [#47733](https://github.com/nodejs/node/pull/47733)
-* \[[`84fa9fd725`](https://github.com/nodejs/node/commit/84fa9fd725)] - **test**: refactor WPTRunner and enable parallel WPT execution (Filip Skokan) [#47635](https://github.com/nodejs/node/pull/47635)
-* \[[`9d3768eb01`](https://github.com/nodejs/node/commit/9d3768eb01)] - _**Revert**_ "**test**: run WPT files in parallel again" (Filip Skokan) [#47627](https://github.com/nodejs/node/pull/47627)
-* \[[`826f4041d1`](https://github.com/nodejs/node/commit/826f4041d1)] - **test**: mark test-cluster-primary-error flaky on asan (Yagiz Nizipli) [#47422](https://github.com/nodejs/node/pull/47422)
-* \[[`e5251e31eb`](https://github.com/nodejs/node/commit/e5251e31eb)] - **test\_runner**: fix --require with --experimental-loader (Moshe Atlow) [#47751](https://github.com/nodejs/node/pull/47751)
-* \[[`6ee5e42c73`](https://github.com/nodejs/node/commit/6ee5e42c73)] - **(SEMVER-MINOR)** **test\_runner**: support combining coverage reports (Colin Ihrig) [#47686](https://github.com/nodejs/node/pull/47686)
-* \[[`f8581e7629`](https://github.com/nodejs/node/commit/f8581e7629)] - **test\_runner**: remove no-op validation (Colin Ihrig) [#47687](https://github.com/nodejs/node/pull/47687)
-* \[[`40b38797c5`](https://github.com/nodejs/node/commit/40b38797c5)] - **test\_runner**: fix test runner concurrency (Moshe Atlow) [#47675](https://github.com/nodejs/node/pull/47675)
-* \[[`2d7cac0c5b`](https://github.com/nodejs/node/commit/2d7cac0c5b)] - **test\_runner**: fix test counting (Moshe Atlow) [#47675](https://github.com/nodejs/node/pull/47675)
-* \[[`5a9b71a52e`](https://github.com/nodejs/node/commit/5a9b71a52e)] - **test\_runner**: fix nested hooks (Moshe Atlow) [#47648](https://github.com/nodejs/node/pull/47648)
-* \[[`5327483f31`](https://github.com/nodejs/node/commit/5327483f31)] - **(SEMVER-MINOR)** **test\_runner**: add testNamePatterns to run api (Chemi Atlow) [#47628](https://github.com/nodejs/node/pull/47628)
-* \[[`b6fb7914ca`](https://github.com/nodejs/node/commit/b6fb7914ca)] - **test\_runner**: support coverage of unnamed functions (Colin Ihrig) [#47652](https://github.com/nodejs/node/pull/47652)
-* \[[`1f120a396f`](https://github.com/nodejs/node/commit/1f120a396f)] - **test\_runner**: move coverage collection to root.postRun() (Colin Ihrig) [#47651](https://github.com/nodejs/node/pull/47651)
-* \[[`bdd02a467d`](https://github.com/nodejs/node/commit/bdd02a467d)] - **(SEMVER-MINOR)** **test\_runner**: execute before hook on test (Chemi Atlow) [#47586](https://github.com/nodejs/node/pull/47586)
-* \[[`ec24abaa03`](https://github.com/nodejs/node/commit/ec24abaa03)] - **test\_runner**: avoid reporting parents of failing tests in summary (Moshe Atlow) [#47579](https://github.com/nodejs/node/pull/47579)
-* \[[`4203057740`](https://github.com/nodejs/node/commit/4203057740)] - **test\_runner**: fix spec skip detection (Moshe Atlow) [#47537](https://github.com/nodejs/node/pull/47537)
-* \[[`57c69987ba`](https://github.com/nodejs/node/commit/57c69987ba)] - **tls**: accept SecureContext object in server.addContext() (HinataKah0) [#47570](https://github.com/nodejs/node/pull/47570)
-* \[[`c620eb80a0`](https://github.com/nodejs/node/commit/c620eb80a0)] - **tools**: update doc to highlight.js\@11.8.0 (Node.js GitHub Bot) [#47786](https://github.com/nodejs/node/pull/47786)
-* \[[`326c3f1593`](https://github.com/nodejs/node/commit/326c3f1593)] - **tools**: add the missing LoongArch64 definition in the v8.gyp file (Sun Haiyong) [#47641](https://github.com/nodejs/node/pull/47641)
-* \[[`8d1588acdc`](https://github.com/nodejs/node/commit/8d1588acdc)] - **tools**: update lint-md-dependencies to rollup\@3.21.1 (Node.js GitHub Bot) [#47787](https://github.com/nodejs/node/pull/47787)
-* \[[`226e5b83ee`](https://github.com/nodejs/node/commit/226e5b83ee)] - **tools**: move update-npm to dep updaters (Marco Ippolito) [#47619](https://github.com/nodejs/node/pull/47619)
-* \[[`9d0bef6c0a`](https://github.com/nodejs/node/commit/9d0bef6c0a)] - **tools**: fix update-v8-patch cache (Marco Ippolito) [#47725](https://github.com/nodejs/node/pull/47725)
-* \[[`63e8c95a66`](https://github.com/nodejs/node/commit/63e8c95a66)] - **tools**: automate v8 patch update (Marco Ippolito) [#47594](https://github.com/nodejs/node/pull/47594)
-* \[[`d2994e52d3`](https://github.com/nodejs/node/commit/d2994e52d3)] - **tools**: fix skip message in update-cjs-module-lexer (Tobias Nießen) [#47701](https://github.com/nodejs/node/pull/47701)
-* \[[`ccf9c37b43`](https://github.com/nodejs/node/commit/ccf9c37b43)] - **tools**: update lint-md-dependencies to @rollup/plugin-commonjs\@24.1.0 (Node.js GitHub Bot) [#47577](https://github.com/nodejs/node/pull/47577)
-* \[[`0887fa0464`](https://github.com/nodejs/node/commit/0887fa0464)] - **tools**: keep PR titles/description up-to-date (Tobias Nießen) [#47621](https://github.com/nodejs/node/pull/47621)
-* \[[`b8927ddf16`](https://github.com/nodejs/node/commit/b8927ddf16)] - **tools**: fix updating root certificates (Richard Lau) [#47607](https://github.com/nodejs/node/pull/47607)
-* \[[`87cae0cb59`](https://github.com/nodejs/node/commit/87cae0cb59)] - **tools**: update PR label config (Mohammed Keyvanzadeh) [#47593](https://github.com/nodejs/node/pull/47593)
-* \[[`c17f2688b8`](https://github.com/nodejs/node/commit/c17f2688b8)] - _**Revert**_ "**tools**: ensure failed daily wpt run still generates a report" (Filip Skokan) [#47627](https://github.com/nodejs/node/pull/47627)
-* \[[`fbe7d73234`](https://github.com/nodejs/node/commit/fbe7d73234)] - **tools**: add execution permission to uvwasi script (Mert Can Altın) [#47600](https://github.com/nodejs/node/pull/47600)
-* \[[`e3f4ff439e`](https://github.com/nodejs/node/commit/e3f4ff439e)] - **tools**: add update script for googletest (Tobias Nießen) [#47482](https://github.com/nodejs/node/pull/47482)
-* \[[`7c552e650a`](https://github.com/nodejs/node/commit/7c552e650a)] - **tools**: add option to run workflow with specific tool id (Michaël Zasso) [#47591](https://github.com/nodejs/node/pull/47591)
-* \[[`1509312170`](https://github.com/nodejs/node/commit/1509312170)] - **tools**: automate zlib update (Marco Ippolito) [#47417](https://github.com/nodejs/node/pull/47417)
-* \[[`6af7f1ee03`](https://github.com/nodejs/node/commit/6af7f1ee03)] - **tools**: add url and whatwg-url labels automatically (Yagiz Nizipli) [#47545](https://github.com/nodejs/node/pull/47545)
-* \[[`ff73c05d54`](https://github.com/nodejs/node/commit/ff73c05d54)] - **tools**: add performance label to benchmark changes (Yagiz Nizipli) [#47545](https://github.com/nodejs/node/pull/47545)
-* \[[`9e3e0b0a84`](https://github.com/nodejs/node/commit/9e3e0b0a84)] - **tools**: automate uvwasi dependency update (Ranieri Innocenti Spada) [#47509](https://github.com/nodejs/node/pull/47509)
-* \[[`233b628f22`](https://github.com/nodejs/node/commit/233b628f22)] - **tools**: add missing pinned dependencies (Mateo Nunez) [#47346](https://github.com/nodejs/node/pull/47346)
-* \[[`e4d95859f5`](https://github.com/nodejs/node/commit/e4d95859f5)] - **tools**: automate ngtcp2 and nghttp3 update (Marco Ippolito) [#47402](https://github.com/nodejs/node/pull/47402)
-* \[[`2e8338126b`](https://github.com/nodejs/node/commit/2e8338126b)] - **tools**: move update-undici.sh to dep\_updaters and create maintain md (Marco Ippolito) [#47380](https://github.com/nodejs/node/pull/47380)
-* \[[`8712eafc87`](https://github.com/nodejs/node/commit/8712eafc87)] - **typings**: fix syntax error in tsconfig (Mohammed Keyvanzadeh) [#47584](https://github.com/nodejs/node/pull/47584)
-* \[[`e4b6b79f18`](https://github.com/nodejs/node/commit/e4b6b79f18)] - **url**: reduce revokeObjectURL cpp calls (Yagiz Nizipli) [#47728](https://github.com/nodejs/node/pull/47728)
-* \[[`9aae76727f`](https://github.com/nodejs/node/commit/9aae76727f)] - **url**: handle URL.canParse without base parameter (Yagiz Nizipli) [#47547](https://github.com/nodejs/node/pull/47547)
-* \[[`180d365439`](https://github.com/nodejs/node/commit/180d365439)] - **url**: validate URL constructor arg length (Matthew Aitken) [#47513](https://github.com/nodejs/node/pull/47513)
-* \[[`4839fc4369`](https://github.com/nodejs/node/commit/4839fc4369)] - **url**: validate argument length in canParse (Matthew Aitken) [#47513](https://github.com/nodejs/node/pull/47513)
-* \[[`606523d37e`](https://github.com/nodejs/node/commit/606523d37e)] - **v8**: fix ERR\_NOT\_BUILDING\_SNAPSHOT is not a constructor (Chengzhong Wu) [#47721](https://github.com/nodejs/node/pull/47721)
-* \[[`75c1d1b66e`](https://github.com/nodejs/node/commit/75c1d1b66e)] - **(SEMVER-MINOR)** **wasi**: make returnOnExit true by default (Michael Dawson) [#47390](https://github.com/nodejs/node/pull/47390)
-
-
-
-## 2023-04-18, Version 20.0.0 (Current), @RafaelGSS
-
-We're excited to announce the release of Node.js 20! Highlights include the new Node.js Permission Model,
-a synchronous `import.meta.resolve`, a stable test\_runner, updates of the V8 JavaScript engine to 11.3, Ada to 2.0,
-and more!
-
-As a reminder, Node.js 20 will enter long-term support (LTS) in October, but until then, it will be the "Current" release for the next six months.
-We encourage you to explore the new features and benefits offered by this latest release and evaluate their potential impact on your applications.
-
-### Notable Changes
-
-#### Permission Model
-
-Node.js now has an experimental feature called the Permission Model.
-It allows developers to restrict access to specific resources during program execution, such as file system operations,
-child process spawning, and worker thread creation.
-The API exists behind a flag `--experimental-permission` which when enabled will restrict access to all available permissions.
-By using this feature, developers can prevent their applications from accessing or modifying sensitive data or running potentially harmful code.
-More information about the Permission Model can be found in the [Node.js documentation](https://nodejs.org/api/permissions.html#process-based-permissions).
-
-The Permission Model was a contribution by Rafael Gonzaga in [#44004](https://github.com/nodejs/node/pull/44004).
-
-#### Custom ESM loader hooks run on dedicated thread
-
-ESM hooks supplied via loaders (`--experimental-loader=foo.mjs`) now run in a dedicated thread, isolated from the main thread.
-This provides a separate scope for loaders and ensures no cross-contamination between loaders and application code.
-
-**Synchronous `import.meta.resolve()`**
-
-In alignment with browser behavior, this function now returns synchronously.
-Despite this, user loader `resolve` hooks can still be defined as async functions (or as sync functions, if the author prefers).
-Even when there are async `resolve` hooks loaded, `import.meta.resolve` will still return synchronously for application code.
-
-Contributed by Anna Henningsen, Antoine du Hamel, Geoffrey Booth, Guy Bedford, Jacob Smith, and Michaël Zasso in [#44710](https://github.com/nodejs/node/pull/44710)
-
-#### V8 11.3
-
-The V8 engine is updated to version 11.3, which is part of Chromium 113.
-This version includes three new features to the JavaScript API:
-
-* [String.prototype.isWellFormed and toWellFormed](https://chromestatus.com/feature/5200195346759680)
-* [Methods that change Array and TypedArray by copy](https://chromestatus.com/feature/5068609911521280)
-* [Resizable ArrayBuffer and growable SharedArrayBuffer](https://chromestatus.com/feature/4668361878274048)
-* [RegExp v flag with set notation + properties of strings](https://chromestatus.com/feature/5144156542861312)
-* [WebAssembly Tail Call](https://chromestatus.com/feature/5423405012615168)
-
-The V8 update was a contribution by Michaël Zasso in [#47251](https://github.com/nodejs/node/pull/47251).
-
-#### Stable Test Runner
-
-The recent update to Node.js, version 20, includes an important change to the test\_runner module. The module has been marked as stable after a recent update.
-Previously, the test\_runner module was experimental, but this change marks it as a stable module that is ready for production use.
-
-Contributed by Colin Ihrig in [#46983](https://github.com/nodejs/node/pull/46983)
-
-#### Ada 2.0
-
-Node.js v20 comes with the latest version of the URL parser, Ada. This update brings significant performance improvements
-to URL parsing, including enhancements to the `url.domainToASCII` and `url.domainToUnicode` functions in `node:url`.
-
-Ada 2.0 has been integrated into the Node.js codebase, ensuring that all parts of the application can benefit from the
-improved performance. Additionally, Ada 2.0 features a significant performance boost over its predecessor, Ada 1.0.4,
-while also eliminating the need for the ICU requirement for URL hostname parsing.
-
-Contributed by Yagiz Nizipli and Daniel Lemire in [#47339](https://github.com/nodejs/node/pull/47339)
-
-#### Preparing single executable apps now requires injecting a Blob
-
-Building a single executable app now requires injecting a blob prepared by
-Node.js from a JSON config instead of injecting the raw JS file.
-This opens up the possibility of embedding multiple co-existing resources into the SEA (Single Executable Apps).
-
-Contributed by Joyee Cheung in [#47125](https://github.com/nodejs/node/pull/47125)
-
-#### Web Crypto API
-
-Web Crypto API functions' arguments are now coerced and validated as per their WebIDL definitions like in other Web Crypto API implementations.
-This further improves interoperability with other implementations of Web Crypto API.
-
-This change was made by Filip Skokan in [#46067](https://github.com/nodejs/node/pull/46067).
-
-#### Official support for ARM64 Windows
-
-Node.js now includes binaries for ARM64 Windows, allowing for native execution on the platform.
-The MSI, zip/7z packages, and executable are available from the Node.js download site along with all other platforms.
-The CI system was updated and all changes are now fully tested on ARM64 Windows, to prevent regressions and ensure compatibility.
-
-ARM64 Windows was upgraded to tier 2 support by Stefan Stojanovic in [#47233](https://github.com/nodejs/node/pull/47233).
-
-#### WASI version must now be specified
-
-When `new WASI()` is called, the version option is now required and has no default value.
-Any code that relied on the default for the version will need to be updated to request a specific version.
-
-This change was made by Michael Dawson in [#47391](https://github.com/nodejs/node/pull/47391).
-
-#### Deprecations and Removals
-
-* \[[`3bed5f11e0`](https://github.com/nodejs/node/commit/3bed5f11e0)] - **(SEMVER-MAJOR)** **url**: runtime-deprecate url.parse() with invalid ports (Rich Trott) [#45526](https://github.com/nodejs/node/pull/45526)
-
-`url.parse()` accepts URLs with ports that are not numbers. This behavior might result in host name spoofing with unexpected input.
-These URLs will throw an error in future versions of Node.js, as the WHATWG URL API does already.
-Starting with Node.js 20, these URLS cause `url.parse()` to emit a warning.
-
-### Semver-Major Commits
-
-* \[[`9fafb0a090`](https://github.com/nodejs/node/commit/9fafb0a090)] - **(SEMVER-MAJOR)** **async\_hooks**: deprecate the AsyncResource.bind asyncResource property (James M Snell) [#46432](https://github.com/nodejs/node/pull/46432)
-* \[[`1948d37595`](https://github.com/nodejs/node/commit/1948d37595)] - **(SEMVER-MAJOR)** **buffer**: check INSPECT\_MAX\_BYTES with validateNumber (Umuoy) [#46599](https://github.com/nodejs/node/pull/46599)
-* \[[`7bc0e6a4e7`](https://github.com/nodejs/node/commit/7bc0e6a4e7)] - **(SEMVER-MAJOR)** **buffer**: graduate File from experimental and expose as global (Khafra) [#47153](https://github.com/nodejs/node/pull/47153)
-* \[[`671ffd7825`](https://github.com/nodejs/node/commit/671ffd7825)] - **(SEMVER-MAJOR)** **buffer**: use min/max of `validateNumber` (Deokjin Kim) [#45796](https://github.com/nodejs/node/pull/45796)
-* \[[`ab1614d280`](https://github.com/nodejs/node/commit/ab1614d280)] - **(SEMVER-MAJOR)** **build**: reset embedder string to "-node.0" (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`c1bcdbcf79`](https://github.com/nodejs/node/commit/c1bcdbcf79)] - **(SEMVER-MAJOR)** **build**: warn for gcc versions earlier than 10.1 (Richard Lau) [#46806](https://github.com/nodejs/node/pull/46806)
-* \[[`649f68fc1e`](https://github.com/nodejs/node/commit/649f68fc1e)] - **(SEMVER-MAJOR)** **build**: reset embedder string to "-node.0" (Yagiz Nizipli) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`9374700d7a`](https://github.com/nodejs/node/commit/9374700d7a)] - **(SEMVER-MAJOR)** **crypto**: remove DEFAULT\_ENCODING (Tobias Nießen) [#47182](https://github.com/nodejs/node/pull/47182)
-* \[[`1640aeb680`](https://github.com/nodejs/node/commit/1640aeb680)] - **(SEMVER-MAJOR)** **crypto**: remove obsolete SSL\_OP\_\* constants (Tobias Nießen) [#47073](https://github.com/nodejs/node/pull/47073)
-* \[[`c2e4b1fa9a`](https://github.com/nodejs/node/commit/c2e4b1fa9a)] - **(SEMVER-MAJOR)** **crypto**: remove ALPN\_ENABLED (Tobias Nießen) [#47028](https://github.com/nodejs/node/pull/47028)
-* \[[`3ef38c4bd7`](https://github.com/nodejs/node/commit/3ef38c4bd7)] - **(SEMVER-MAJOR)** **crypto**: use WebIDL converters in WebCryptoAPI (Filip Skokan) [#46067](https://github.com/nodejs/node/pull/46067)
-* \[[`08af023b1f`](https://github.com/nodejs/node/commit/08af023b1f)] - **(SEMVER-MAJOR)** **crypto**: runtime deprecate replaced rsa-pss keygen parameters (Filip Skokan) [#45653](https://github.com/nodejs/node/pull/45653)
-* \[[`7eb0ac3cb6`](https://github.com/nodejs/node/commit/7eb0ac3cb6)] - **(SEMVER-MAJOR)** **deps**: patch V8 to support compilation on win-arm64 (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`a7c129f286`](https://github.com/nodejs/node/commit/a7c129f286)] - **(SEMVER-MAJOR)** **deps**: silence irrelevant V8 warning (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`6f5655a18e`](https://github.com/nodejs/node/commit/6f5655a18e)] - **(SEMVER-MAJOR)** **deps**: always define V8\_EXPORT\_PRIVATE as no-op (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`f226350fcb`](https://github.com/nodejs/node/commit/f226350fcb)] - **(SEMVER-MAJOR)** **deps**: update V8 to 11.3.244.4 (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`d6dae7420e`](https://github.com/nodejs/node/commit/d6dae7420e)] - **(SEMVER-MAJOR)** **deps**: V8: cherry-pick f1c888e7093e (Michaël Zasso) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`56c436533e`](https://github.com/nodejs/node/commit/56c436533e)] - **(SEMVER-MAJOR)** **deps**: fix V8 build on Windows with MSVC (Michaël Zasso) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`51ab98c71b`](https://github.com/nodejs/node/commit/51ab98c71b)] - **(SEMVER-MAJOR)** **deps**: silence irrelevant V8 warning (Michaël Zasso) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`9f84d3eea8`](https://github.com/nodejs/node/commit/9f84d3eea8)] - **(SEMVER-MAJOR)** **deps**: V8: fix v8-cppgc.h for MSVC (Jiawen Geng) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`f2318cd4b5`](https://github.com/nodejs/node/commit/f2318cd4b5)] - **(SEMVER-MAJOR)** **deps**: fix V8 build issue with inline methods (Jiawen Geng) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`16e03e7968`](https://github.com/nodejs/node/commit/16e03e7968)] - **(SEMVER-MAJOR)** **deps**: update V8 to 10.9.194.4 (Yagiz Nizipli) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`6473f5e7f7`](https://github.com/nodejs/node/commit/6473f5e7f7)] - **(SEMVER-MAJOR)** **doc**: update toolchains used for Node.js 20 releases (Richard Lau) [#47352](https://github.com/nodejs/node/pull/47352)
-* \[[`cc18fd9608`](https://github.com/nodejs/node/commit/cc18fd9608)] - **(SEMVER-MAJOR)** **events**: refactor to use `validateNumber` (Deokjin Kim) [#45770](https://github.com/nodejs/node/pull/45770)
-* \[[`ff92b40ffc`](https://github.com/nodejs/node/commit/ff92b40ffc)] - **(SEMVER-MAJOR)** **http**: close the connection after sending a body without declared length (Tim Perry) [#46333](https://github.com/nodejs/node/pull/46333)
-* \[[`2a29df6464`](https://github.com/nodejs/node/commit/2a29df6464)] - **(SEMVER-MAJOR)** **http**: keep HTTP/1.1 conns alive even if the Connection header is removed (Tim Perry) [#46331](https://github.com/nodejs/node/pull/46331)
-* \[[`391dc74a10`](https://github.com/nodejs/node/commit/391dc74a10)] - **(SEMVER-MAJOR)** **http**: throw error if options of http.Server is array (Deokjin Kim) [#46283](https://github.com/nodejs/node/pull/46283)
-* \[[`ed3604cd64`](https://github.com/nodejs/node/commit/ed3604cd64)] - **(SEMVER-MAJOR)** **http**: server check Host header, to meet RFC 7230 5.4 requirement (wwwzbwcom) [#45597](https://github.com/nodejs/node/pull/45597)
-* \[[`88d71dc301`](https://github.com/nodejs/node/commit/88d71dc301)] - **(SEMVER-MAJOR)** **lib**: refactor to use min/max of `validateNumber` (Deokjin Kim) [#45772](https://github.com/nodejs/node/pull/45772)
-* \[[`e4d641f02a`](https://github.com/nodejs/node/commit/e4d641f02a)] - **(SEMVER-MAJOR)** **lib**: refactor to use validators in http2 (Debadree Chatterjee) [#46174](https://github.com/nodejs/node/pull/46174)
-* \[[`0f3e531096`](https://github.com/nodejs/node/commit/0f3e531096)] - **(SEMVER-MAJOR)** **lib**: performance improvement on readline async iterator (Thiago Oliveira Santos) [#41276](https://github.com/nodejs/node/pull/41276)
-* \[[`5b5898ac86`](https://github.com/nodejs/node/commit/5b5898ac86)] - **(SEMVER-MAJOR)** **lib,src**: update exit codes as per todos (Debadree Chatterjee) [#45841](https://github.com/nodejs/node/pull/45841)
-* \[[`55321bafd1`](https://github.com/nodejs/node/commit/55321bafd1)] - **(SEMVER-MAJOR)** **net**: enable autoSelectFamily by default (Paolo Insogna) [#46790](https://github.com/nodejs/node/pull/46790)
-* \[[`2d0d99733b`](https://github.com/nodejs/node/commit/2d0d99733b)] - **(SEMVER-MAJOR)** **process**: remove `process.exit()`, `process.exitCode` coercion to integer (Daeyeon Jeong) [#43716](https://github.com/nodejs/node/pull/43716)
-* \[[`dc06df31b6`](https://github.com/nodejs/node/commit/dc06df31b6)] - **(SEMVER-MAJOR)** **readline**: refactor to use `validateNumber` (Deokjin Kim) [#45801](https://github.com/nodejs/node/pull/45801)
-* \[[`295b2f3ff4`](https://github.com/nodejs/node/commit/295b2f3ff4)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 115 (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`3803b028dd`](https://github.com/nodejs/node/commit/3803b028dd)] - **(SEMVER-MAJOR)** **src**: share common code paths for SEA and embedder script (Anna Henningsen) [#46825](https://github.com/nodejs/node/pull/46825)
-* \[[`e8bddac3e9`](https://github.com/nodejs/node/commit/e8bddac3e9)] - **(SEMVER-MAJOR)** **src**: apply ABI-breaking API simplifications (Anna Henningsen) [#46705](https://github.com/nodejs/node/pull/46705)
-* \[[`f84de0ad4c`](https://github.com/nodejs/node/commit/f84de0ad4c)] - **(SEMVER-MAJOR)** **src**: use uint32\_t for process initialization flags enum (Anna Henningsen) [#46427](https://github.com/nodejs/node/pull/46427)
-* \[[`a6242772ec`](https://github.com/nodejs/node/commit/a6242772ec)] - **(SEMVER-MAJOR)** **src**: fix ArrayBuffer::Detach deprecation (Michaël Zasso) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`dd5c39a808`](https://github.com/nodejs/node/commit/dd5c39a808)] - **(SEMVER-MAJOR)** **src**: update NODE\_MODULE\_VERSION to 112 (Yagiz Nizipli) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`63eca7fec0`](https://github.com/nodejs/node/commit/63eca7fec0)] - **(SEMVER-MAJOR)** **stream**: validate readable defaultEncoding (Marco Ippolito) [#46430](https://github.com/nodejs/node/pull/46430)
-* \[[`9e7093f416`](https://github.com/nodejs/node/commit/9e7093f416)] - **(SEMVER-MAJOR)** **stream**: validate writable defaultEncoding (Marco Ippolito) [#46322](https://github.com/nodejs/node/pull/46322)
-* \[[`fb91ee4f26`](https://github.com/nodejs/node/commit/fb91ee4f26)] - **(SEMVER-MAJOR)** **test**: make trace-gc-flag tests less strict (Yagiz Nizipli) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`eca618071e`](https://github.com/nodejs/node/commit/eca618071e)] - **(SEMVER-MAJOR)** **test**: adapt test-v8-stats for V8 update (Michaël Zasso) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`c03354d3e0`](https://github.com/nodejs/node/commit/c03354d3e0)] - **(SEMVER-MAJOR)** **test**: test case for multiple res.writeHead and res.getHeader (Marco Ippolito) [#45508](https://github.com/nodejs/node/pull/45508)
-* \[[`c733cc0c7f`](https://github.com/nodejs/node/commit/c733cc0c7f)] - **(SEMVER-MAJOR)** **test\_runner**: mark module as stable (Colin Ihrig) [#46983](https://github.com/nodejs/node/pull/46983)
-* \[[`7ce223273d`](https://github.com/nodejs/node/commit/7ce223273d)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 11.1 (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`ca4bd3023e`](https://github.com/nodejs/node/commit/ca4bd3023e)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles for 11.0 (Michaël Zasso) [#47251](https://github.com/nodejs/node/pull/47251)
-* \[[`58b06a269a`](https://github.com/nodejs/node/commit/58b06a269a)] - **(SEMVER-MAJOR)** **tools**: update V8 gypfiles (Michaël Zasso) [#45579](https://github.com/nodejs/node/pull/45579)
-* \[[`027841c964`](https://github.com/nodejs/node/commit/027841c964)] - **(SEMVER-MAJOR)** **url**: use private properties for brand check (Yagiz Nizipli) [#46904](https://github.com/nodejs/node/pull/46904)
-* \[[`3bed5f11e0`](https://github.com/nodejs/node/commit/3bed5f11e0)] - **(SEMVER-MAJOR)** **url**: runtime-deprecate url.parse() with invalid ports (Rich Trott) [#45526](https://github.com/nodejs/node/pull/45526)
-* \[[`7c76fddf25`](https://github.com/nodejs/node/commit/7c76fddf25)] - **(SEMVER-MAJOR)** **util,doc**: mark parseArgs() as stable (Colin Ihrig) [#46718](https://github.com/nodejs/node/pull/46718)
-* \[[`4b52727976`](https://github.com/nodejs/node/commit/4b52727976)] - **(SEMVER-MAJOR)** **wasi**: make version non-optional (Michael Dawson) [#47391](https://github.com/nodejs/node/pull/47391)
-
-### Semver-Minor Commits
-
-* \[[`d4b440bfac`](https://github.com/nodejs/node/commit/d4b440bfac)] - **(SEMVER-MINOR)** **fs**: implement byob mode for readableWebStream() (Debadree Chatterjee) [#46933](https://github.com/nodejs/node/pull/46933)
-* \[[`00c222593e`](https://github.com/nodejs/node/commit/00c222593e)] - **(SEMVER-MINOR)** **src,process**: add permission model (Rafael Gonzaga) [#44004](https://github.com/nodejs/node/pull/44004)
-* \[[`978b57d750`](https://github.com/nodejs/node/commit/978b57d750)] - **(SEMVER-MINOR)** **wasi**: no longer require flag to enable wasi (Michael Dawson) [#47286](https://github.com/nodejs/node/pull/47286)
-
-### Semver-Patch Commits
-
-* \[[`e50c6b9a22`](https://github.com/nodejs/node/commit/e50c6b9a22)] - **bootstrap**: do not expand process.argv\[1] for snapshot entry points (Joyee Cheung) [#47466](https://github.com/nodejs/node/pull/47466)
-* \[[`c81e1143e4`](https://github.com/nodejs/node/commit/c81e1143e4)] - **bootstrap**: store internal loaders in C++ via a binding (Joyee Cheung) [#47215](https://github.com/nodejs/node/pull/47215)
-* \[[`8e673bdb84`](https://github.com/nodejs/node/commit/8e673bdb84)] - **build**: add node-core-utils to setup (Jiawen Geng) [#47442](https://github.com/nodejs/node/pull/47442)
-* \[[`5b561d72a6`](https://github.com/nodejs/node/commit/5b561d72a6)] - **build**: sync cares source change (Jiawen Geng) [#47359](https://github.com/nodejs/node/pull/47359)
-* \[[`8e6ee53e4e`](https://github.com/nodejs/node/commit/8e6ee53e4e)] - **build**: remove non-exist build file (Jiawen Geng) [#47361](https://github.com/nodejs/node/pull/47361)
-* \[[`9a4d21d1d9`](https://github.com/nodejs/node/commit/9a4d21d1d9)] - **build, deps, tools**: avoid excessive LTO (Konstantin Demin) [#47313](https://github.com/nodejs/node/pull/47313)
-* \[[`48c01485cd`](https://github.com/nodejs/node/commit/48c01485cd)] - **crypto**: replace THROW with CHECK for scrypt keylen (Tobias Nießen) [#47407](https://github.com/nodejs/node/pull/47407)
-* \[[`4c1a27716b`](https://github.com/nodejs/node/commit/4c1a27716b)] - **crypto**: re-add padding for AES-KW wrapped JWKs (Filip Skokan) [#46563](https://github.com/nodejs/node/pull/46563)
-* \[[`b66eb15d12`](https://github.com/nodejs/node/commit/b66eb15d12)] - **deps**: update simdutf to 3.2.7 (Node.js GitHub Bot) [#47473](https://github.com/nodejs/node/pull/47473)
-* \[[`3fc11477ba`](https://github.com/nodejs/node/commit/3fc11477ba)] - **deps**: update corepack to 0.17.2 (Node.js GitHub Bot) [#47474](https://github.com/nodejs/node/pull/47474)
-* \[[`c1776531ab`](https://github.com/nodejs/node/commit/c1776531ab)] - **deps**: upgrade npm to 9.6.4 (npm team) [#47432](https://github.com/nodejs/node/pull/47432)
-* \[[`e7ca09f310`](https://github.com/nodejs/node/commit/e7ca09f310)] - **deps**: update zlib to upstream 5edb52d4 (Luigi Pinca) [#47151](https://github.com/nodejs/node/pull/47151)
-* \[[`88387ccd12`](https://github.com/nodejs/node/commit/88387ccd12)] - **deps**: update ada to 2.0.0 (Node.js GitHub Bot) [#47339](https://github.com/nodejs/node/pull/47339)
-* \[[`9f468cc37e`](https://github.com/nodejs/node/commit/9f468cc37e)] - **deps**: cherry-pick Windows ARM64 fix for openssl (Richard Lau) [#46570](https://github.com/nodejs/node/pull/46570)
-* \[[`eeab210b1b`](https://github.com/nodejs/node/commit/eeab210b1b)] - **deps**: update archs files for quictls/openssl-3.0.8+quic (RafaelGSS) [#46570](https://github.com/nodejs/node/pull/46570)
-* \[[`d93d7716c7`](https://github.com/nodejs/node/commit/d93d7716c7)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.8+quic (RafaelGSS) [#46571](https://github.com/nodejs/node/pull/46571)
-* \[[`0f69ec4dd7`](https://github.com/nodejs/node/commit/0f69ec4dd7)] - **deps**: patch V8 to 10.9.194.9 (Michaël Zasso) [#45995](https://github.com/nodejs/node/pull/45995)
-* \[[`5890d09644`](https://github.com/nodejs/node/commit/5890d09644)] - **deps**: patch V8 to 10.9.194.6 (Michaël Zasso) [#45748](https://github.com/nodejs/node/pull/45748)
-* \[[`c02a7e7e93`](https://github.com/nodejs/node/commit/c02a7e7e93)] - **diagnostics\_channel**: fix ref counting bug when reaching zero subscribers (Stephen Belanger) [#47520](https://github.com/nodejs/node/pull/47520)
-* \[[`c7ad5bb37d`](https://github.com/nodejs/node/commit/c7ad5bb37d)] - **doc**: info on handling unintended breaking changes (Michael Dawson) [#47426](https://github.com/nodejs/node/pull/47426)
-* \[[`7d2d40ed0d`](https://github.com/nodejs/node/commit/7d2d40ed0d)] - **doc**: add performance initiative (Yagiz Nizipli) [#47424](https://github.com/nodejs/node/pull/47424)
-* \[[`d56c0f7318`](https://github.com/nodejs/node/commit/d56c0f7318)] - **doc**: do not create a backup file (Luigi Pinca) [#47151](https://github.com/nodejs/node/pull/47151)
-* \[[`412d27b65b`](https://github.com/nodejs/node/commit/412d27b65b)] - **doc**: add MoLow to the TSC (Colin Ihrig) [#47436](https://github.com/nodejs/node/pull/47436)
-* \[[`f131cca0c0`](https://github.com/nodejs/node/commit/f131cca0c0)] - **doc**: reserve 116 for Electron 25 (Keeley Hammond) [#47375](https://github.com/nodejs/node/pull/47375)
-* \[[`1022c6f424`](https://github.com/nodejs/node/commit/1022c6f424)] - **doc**: add experimental stages (Geoffrey Booth) [#46100](https://github.com/nodejs/node/pull/46100)
-* \[[`42d3d74717`](https://github.com/nodejs/node/commit/42d3d74717)] - **doc**: clarify release notes for Node.js 16.19.0 (Richard Lau) [#45846](https://github.com/nodejs/node/pull/45846)
-* \[[`533c6512da`](https://github.com/nodejs/node/commit/533c6512da)] - **doc**: clarify release notes for Node.js 14.21.2 (Richard Lau) [#45846](https://github.com/nodejs/node/pull/45846)
-* \[[`97165fc1a6`](https://github.com/nodejs/node/commit/97165fc1a6)] - **doc**: fix doc metadata for Node.js 16.19.0 (Richard Lau) [#45863](https://github.com/nodejs/node/pull/45863)
-* \[[`a266b8b702`](https://github.com/nodejs/node/commit/a266b8b702)] - **doc**: add registry number for Electron 23 & 24 (Keeley Hammond) [#45661](https://github.com/nodejs/node/pull/45661)
-* \[[`2613a9ced9`](https://github.com/nodejs/node/commit/2613a9ced9)] - **esm**: move hook execution to separate thread (Jacob Smith) [#44710](https://github.com/nodejs/node/pull/44710)
-* \[[`841f6b3abf`](https://github.com/nodejs/node/commit/841f6b3abf)] - **esm**: increase test coverage of edge cases (Antoine du Hamel) [#47033](https://github.com/nodejs/node/pull/47033)
-* \[[`0d575fe61a`](https://github.com/nodejs/node/commit/0d575fe61a)] - **gyp**: put filenames in variables (Cheng Zhao) [#46965](https://github.com/nodejs/node/pull/46965)
-* \[[`41b186722c`](https://github.com/nodejs/node/commit/41b186722c)] - **lib**: distinguish webidl interfaces with the extended property "Exposed" (Chengzhong Wu) [#46809](https://github.com/nodejs/node/pull/46809)
-* \[[`9b7db62276`](https://github.com/nodejs/node/commit/9b7db62276)] - **lib**: makeRequireFunction patch when experimental policy (RafaelGSS) [nodejs-private/node-private#358](https://github.com/nodejs-private/node-private/pull/358)
-* \[[`d43b532789`](https://github.com/nodejs/node/commit/d43b532789)] - **lib**: refactor to use `validateBuffer` (Deokjin Kim) [#46489](https://github.com/nodejs/node/pull/46489)
-* \[[`9a76a2521b`](https://github.com/nodejs/node/commit/9a76a2521b)] - **meta**: ping security-wg team on permission model changes (Rafael Gonzaga) [#47483](https://github.com/nodejs/node/pull/47483)
-* \[[`a4dadde1ba`](https://github.com/nodejs/node/commit/a4dadde1ba)] - **meta**: ping startup and realm team on src/node\_realm\* changes (Joyee Cheung) [#47448](https://github.com/nodejs/node/pull/47448)
-* \[[`631c3ef3de`](https://github.com/nodejs/node/commit/631c3ef3de)] - **module**: do less CJS module loader initialization at run time (Joyee Cheung) [#47194](https://github.com/nodejs/node/pull/47194)
-* \[[`8bcf0a42f7`](https://github.com/nodejs/node/commit/8bcf0a42f7)] - **permission**: fix chmod,chown improve fs coverage (Rafael Gonzaga) [#47529](https://github.com/nodejs/node/pull/47529)
-* \[[`54d17ff4b5`](https://github.com/nodejs/node/commit/54d17ff4b5)] - **permission**: support fs.mkdtemp (Rafael Gonzaga) [#47470](https://github.com/nodejs/node/pull/47470)
-* \[[`b441b5dc65`](https://github.com/nodejs/node/commit/b441b5dc65)] - **permission**: drop process.permission.deny (Rafael Gonzaga) [#47335](https://github.com/nodejs/node/pull/47335)
-* \[[`aa30e16716`](https://github.com/nodejs/node/commit/aa30e16716)] - **permission**: fix some vulnerabilities in fs (Tobias Nießen) [#47091](https://github.com/nodejs/node/pull/47091)
-* \[[`1726da9300`](https://github.com/nodejs/node/commit/1726da9300)] - **permission**: add path separator to loader check (Rafael Gonzaga) [#47030](https://github.com/nodejs/node/pull/47030)
-* \[[`b164038c86`](https://github.com/nodejs/node/commit/b164038c86)] - **permission**: fix spawnSync permission check (RafaelGSS) [#46975](https://github.com/nodejs/node/pull/46975)
-* \[[`af91400886`](https://github.com/nodejs/node/commit/af91400886)] - **policy**: makeRequireFunction on mainModule.require (RafaelGSS) [nodejs-private/node-private#358](https://github.com/nodejs-private/node-private/pull/358)
-* \[[`f8b4e26aee`](https://github.com/nodejs/node/commit/f8b4e26aee)] - **quic**: add more QUIC impl (James M Snell) [#47348](https://github.com/nodejs/node/pull/47348)
-* \[[`d65ae9f678`](https://github.com/nodejs/node/commit/d65ae9f678)] - **quic**: add additional quic implementation utilities (James M Snell) [#47289](https://github.com/nodejs/node/pull/47289)
-* \[[`9b104be502`](https://github.com/nodejs/node/commit/9b104be502)] - **quic**: do not dereference shared\_ptr after move (Tobias Nießen) [#47294](https://github.com/nodejs/node/pull/47294)
-* \[[`09a4bb152f`](https://github.com/nodejs/node/commit/09a4bb152f)] - **quic**: add multiple internal utilities (James M Snell) [#47263](https://github.com/nodejs/node/pull/47263)
-* \[[`2bde0059ca`](https://github.com/nodejs/node/commit/2bde0059ca)] - **sea**: use JSON configuration and blob content for SEA (Joyee Cheung) [#47125](https://github.com/nodejs/node/pull/47125)
-* \[[`78c7475493`](https://github.com/nodejs/node/commit/78c7475493)] - **src**: allow simdutf::convert\_\* functions to return zero (Daniel Lemire) [#47471](https://github.com/nodejs/node/pull/47471)
-* \[[`5250947a53`](https://github.com/nodejs/node/commit/5250947a53)] - **src**: track ShadowRealm native objects correctly in the heap snapshot (Joyee Cheung) [#47389](https://github.com/nodejs/node/pull/47389)
-* \[[`8059764621`](https://github.com/nodejs/node/commit/8059764621)] - **src**: use the internal field to determine if an object is a BaseObject (Joyee Cheung) [#47217](https://github.com/nodejs/node/pull/47217)
-* \[[`698508afa8`](https://github.com/nodejs/node/commit/698508afa8)] - **src**: bootstrap prepare stack trace callback in shadow realm (Chengzhong Wu) [#47107](https://github.com/nodejs/node/pull/47107)
-* \[[`e6b4d30a2f`](https://github.com/nodejs/node/commit/e6b4d30a2f)] - **src**: bootstrap Web \[Exposed=\*] APIs in the shadow realm (Chengzhong Wu) [#46809](https://github.com/nodejs/node/pull/46809)
-* \[[`3646a66044`](https://github.com/nodejs/node/commit/3646a66044)] - **src**: fix AliasedBuffer memory attribution in heap snapshots (Joyee Cheung) [#46817](https://github.com/nodejs/node/pull/46817)
-* \[[`8b2126f63f`](https://github.com/nodejs/node/commit/8b2126f63f)] - **src**: move AliasedBuffer implementation to -inl.h (Joyee Cheung) [#46817](https://github.com/nodejs/node/pull/46817)
-* \[[`3abbc3829a`](https://github.com/nodejs/node/commit/3abbc3829a)] - **src**: fix useless call in permission.cc (Tobias Nießen) [#46833](https://github.com/nodejs/node/pull/46833)
-* \[[`7b1e153530`](https://github.com/nodejs/node/commit/7b1e153530)] - **src**: simplify exit code accesses (Daeyeon Jeong) [#45125](https://github.com/nodejs/node/pull/45125)
-* \[[`7359b92a41`](https://github.com/nodejs/node/commit/7359b92a41)] - **test**: remove unnecessary status check on test-release-npm (RafaelGSS) [#47516](https://github.com/nodejs/node/pull/47516)
-* \[[`a5a5d2fb7e`](https://github.com/nodejs/node/commit/a5a5d2fb7e)] - **test**: mark test/parallel/test-file-write-stream4 as flaky (Yagiz Nizipli) [#47423](https://github.com/nodejs/node/pull/47423)
-* \[[`81ad73a205`](https://github.com/nodejs/node/commit/81ad73a205)] - **test**: remove unused callback variables (angellovc) [#47167](https://github.com/nodejs/node/pull/47167)
-* \[[`757a586ead`](https://github.com/nodejs/node/commit/757a586ead)] - **test**: migrate test runner message tests to snapshot (Moshe Atlow) [#47392](https://github.com/nodejs/node/pull/47392)
-* \[[`86f890539f`](https://github.com/nodejs/node/commit/86f890539f)] - **test**: remove stale entry from known\_issues.status (Richard Lau) [#47454](https://github.com/nodejs/node/pull/47454)
-* \[[`1f3773d0c1`](https://github.com/nodejs/node/commit/1f3773d0c1)] - **test**: move more inspector sequential tests to parallel (Joyee Cheung) [#47412](https://github.com/nodejs/node/pull/47412)
-* \[[`617b8d44c6`](https://github.com/nodejs/node/commit/617b8d44c6)] - **test**: use random port in test-inspector-enabled (Joyee Cheung) [#47412](https://github.com/nodejs/node/pull/47412)
-* \[[`ade0170c4f`](https://github.com/nodejs/node/commit/ade0170c4f)] - **test**: use random port in test-inspector-debug-brk-flag (Joyee Cheung) [#47412](https://github.com/nodejs/node/pull/47412)
-* \[[`1a78632cd3`](https://github.com/nodejs/node/commit/1a78632cd3)] - **test**: use random port in NodeInstance.startViaSignal() (Joyee Cheung) [#47412](https://github.com/nodejs/node/pull/47412)
-* \[[`23f66b137e`](https://github.com/nodejs/node/commit/23f66b137e)] - **test**: move test-shadow-realm-gc.js to known\_issues (Joyee Cheung) [#47355](https://github.com/nodejs/node/pull/47355)
-* \[[`9dfd0394c5`](https://github.com/nodejs/node/commit/9dfd0394c5)] - **test**: remove useless WPT init scripts (Khafra) [#47221](https://github.com/nodejs/node/pull/47221)
-* \[[`1cfe058778`](https://github.com/nodejs/node/commit/1cfe058778)] - **test**: fix test-permission-deny-fs-wildcard (win32) (Tobias Nießen) [#47095](https://github.com/nodejs/node/pull/47095)
-* \[[`b8ef1b476e`](https://github.com/nodejs/node/commit/b8ef1b476e)] - **test**: add coverage for custom loader hooks with permission model (Antoine du Hamel) [#46977](https://github.com/nodejs/node/pull/46977)
-* \[[`4a7c3e9c50`](https://github.com/nodejs/node/commit/4a7c3e9c50)] - **test**: fix file path in permission symlink test (Livia Medeiros) [#46859](https://github.com/nodejs/node/pull/46859)
-* \[[`10005de6a8`](https://github.com/nodejs/node/commit/10005de6a8)] - **tools**: make `js2c.py` usable for other build systems (Cheng Zhao) [#46930](https://github.com/nodejs/node/pull/46930)
-* \[[`1e2f9aca72`](https://github.com/nodejs/node/commit/1e2f9aca72)] - **tools**: move update-acorn.sh to dep\_updaters and create maintaining md (Marco Ippolito) [#47382](https://github.com/nodejs/node/pull/47382)
-* \[[`174662a463`](https://github.com/nodejs/node/commit/174662a463)] - **tools**: update eslint to 8.38.0 (Node.js GitHub Bot) [#47475](https://github.com/nodejs/node/pull/47475)
-* \[[`a58ca61f35`](https://github.com/nodejs/node/commit/a58ca61f35)] - **tools**: update eslint to 8.38.0 (Node.js GitHub Bot) [#47475](https://github.com/nodejs/node/pull/47475)
-* \[[`37d12730ab`](https://github.com/nodejs/node/commit/37d12730ab)] - **tools**: automate cjs-module-lexer dependency update (Marco Ippolito) [#47446](https://github.com/nodejs/node/pull/47446)
-* \[[`4fbfa3c9f2`](https://github.com/nodejs/node/commit/4fbfa3c9f2)] - **tools**: fix notify-on-push Slack messages (Antoine du Hamel) [#47453](https://github.com/nodejs/node/pull/47453)
-* \[[`b1f2ff1242`](https://github.com/nodejs/node/commit/b1f2ff1242)] - **tools**: update lint-md-dependencies to @rollup/plugin-node-resolve\@15.0.2 (Node.js GitHub Bot) [#47431](https://github.com/nodejs/node/pull/47431)
-* \[[`26b2584b84`](https://github.com/nodejs/node/commit/26b2584b84)] - **tools**: add root certificate update script (Richard Lau) [#47425](https://github.com/nodejs/node/pull/47425)
-* \[[`553b052648`](https://github.com/nodejs/node/commit/553b052648)] - **tools**: remove targets for individual test suites in `Makefile` (Antoine du Hamel) [#46892](https://github.com/nodejs/node/pull/46892)
-* \[[`747ff43e5b`](https://github.com/nodejs/node/commit/747ff43e5b)] - **url**: more sophisticated brand check for URLSearchParams (Timothy Gu) [#47414](https://github.com/nodejs/node/pull/47414)
-* \[[`e727eb066f`](https://github.com/nodejs/node/commit/e727eb066f)] - **url**: do not use object as hashmap (Timothy Gu) [#47415](https://github.com/nodejs/node/pull/47415)
-* \[[`81c7875eb7`](https://github.com/nodejs/node/commit/81c7875eb7)] - **url**: drop ICU requirement for parsing hostnames (Yagiz Nizipli) [#47339](https://github.com/nodejs/node/pull/47339)
-* \[[`a4895df94a`](https://github.com/nodejs/node/commit/a4895df94a)] - **url**: use ada::url\_aggregator for parsing urls (Yagiz Nizipli) [#47339](https://github.com/nodejs/node/pull/47339)
diff --git a/~/.nvm/versions/node/v20.3.1/LICENSE b/~/.nvm/versions/node/v20.3.1/LICENSE
deleted file mode 100644
index b26c65a2..00000000
--- a/~/.nvm/versions/node/v20.3.1/LICENSE
+++ /dev/null
@@ -1,2177 +0,0 @@
-Node.js is licensed for use as follows:
-
-"""
-Copyright Node.js contributors. All rights reserved.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-"""
-
-This license applies to parts of Node.js originating from the
-https://github.com/joyent/node repository:
-
-"""
-Copyright Joyent, Inc. and other Node contributors. All rights reserved.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
-"""
-
-The Node.js license applies to all parts of Node.js that are not externally
-maintained libraries.
-
-The externally maintained libraries used by Node.js are:
-
-- Acorn, located at deps/acorn, is licensed as follows:
- """
- MIT License
-
- Copyright (C) 2012-2022 by various contributors (see AUTHORS)
-
- 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.
- """
-
-- c-ares, located at deps/cares, is licensed as follows:
- """
- Copyright (c) 2007 - 2018, Daniel Stenberg with many contributors, see AUTHORS
- file.
-
- Copyright 1998 by the Massachusetts Institute of Technology.
-
- Permission to use, copy, modify, and distribute this software and its
- documentation for any purpose and without fee is hereby granted, provided that
- the above copyright notice appear in all copies and that both that copyright
- notice and this permission notice appear in supporting documentation, and that
- the name of M.I.T. not be used in advertising or publicity pertaining to
- distribution of the software without specific, written prior permission.
- M.I.T. makes no representations about the suitability of this software for any
- purpose. It is provided "as is" without express or implied warranty.
- """
-
-- cjs-module-lexer, located at deps/cjs-module-lexer, is licensed as follows:
- """
- MIT License
- -----------
-
- Copyright (C) 2018-2020 Guy Bedford
-
- 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.
- """
-
-- ittapi, located at deps/v8/third_party/ittapi, is licensed as follows:
- """
- Copyright (c) 2019 Intel Corporation. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- 2. 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.
- 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- """
-
-- ICU, located at deps/icu-small, is licensed as follows:
- """
- UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
-
- See Terms of Use
- for definitions of Unicode Inc.’s Data Files and Software.
-
- NOTICE TO USER: Carefully read the following legal agreement.
- BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
- DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
- YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
- TERMS AND CONDITIONS OF THIS AGREEMENT.
- IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
- THE DATA FILES OR SOFTWARE.
-
- COPYRIGHT AND PERMISSION NOTICE
-
- Copyright © 1991-2023 Unicode, Inc. All rights reserved.
- Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of the Unicode data files and any associated documentation
- (the "Data Files") or Unicode software and any associated documentation
- (the "Software") to deal in the Data Files or Software
- without restriction, including without limitation the rights to use,
- copy, modify, merge, publish, distribute, and/or sell copies of
- the Data Files or Software, and to permit persons to whom the Data Files
- or Software are furnished to do so, provided that either
- (a) this copyright and permission notice appear with all copies
- of the Data Files or Software, or
- (b) this copyright and permission notice appear in associated
- Documentation.
-
- THE DATA FILES AND SOFTWARE ARE 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 OF THIRD PARTY RIGHTS.
- IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
- NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
- DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- PERFORMANCE OF THE DATA FILES OR SOFTWARE.
-
- Except as contained in this notice, the name of a copyright holder
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in these Data Files or Software without prior
- written authorization of the copyright holder.
-
- ----------------------------------------------------------------------
-
- Third-Party Software Licenses
-
- This section contains third-party software notices and/or additional
- terms for licensed third-party software components included within ICU
- libraries.
-
- ----------------------------------------------------------------------
-
- ICU License - ICU 1.8.1 to ICU 57.1
-
- COPYRIGHT AND PERMISSION NOTICE
-
- Copyright (c) 1995-2016 International Business Machines Corporation and others
- All rights reserved.
-
- Permission is hereby granted, free of charge, to any person obtaining
- a copy of this software and associated documentation files (the
- "Software"), to deal in the Software without restriction, including
- without limitation the rights to use, copy, modify, merge, publish,
- distribute, and/or sell copies of the Software, and to permit persons
- to whom the Software is furnished to do so, provided that the above
- copyright notice(s) and this permission notice appear in all copies of
- the Software and that both the above copyright notice(s) and this
- permission notice appear in supporting documentation.
-
- 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
- OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
- HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
- SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
- RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- Except as contained in this notice, the name of a copyright holder
- shall not be used in advertising or otherwise to promote the sale, use
- or other dealings in this Software without prior written authorization
- of the copyright holder.
-
- All trademarks and registered trademarks mentioned herein are the
- property of their respective owners.
-
- ----------------------------------------------------------------------
-
- Chinese/Japanese Word Break Dictionary Data (cjdict.txt)
-
- # The Google Chrome software developed by Google is licensed under
- # the BSD license. Other software included in this distribution is
- # provided under other licenses, as set forth below.
- #
- # The BSD License
- # http://opensource.org/licenses/bsd-license.php
- # Copyright (C) 2006-2008, Google Inc.
- #
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions are met:
- #
- # Redistributions of source code must retain the above copyright notice,
- # this list of conditions and the following disclaimer.
- # Redistributions in binary form must reproduce the above
- # copyright notice, this list of conditions and the following
- # disclaimer in the documentation and/or other materials provided with
- # the distribution.
- # Neither the name of Google Inc. nor the names of its
- # contributors may be used to endorse or promote products derived from
- # this software without specific prior written permission.
- #
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER 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.
- #
- #
- # The word list in cjdict.txt are generated by combining three word lists
- # listed below with further processing for compound word breaking. The
- # frequency is generated with an iterative training against Google web
- # corpora.
- #
- # * Libtabe (Chinese)
- # - https://sourceforge.net/project/?group_id=1519
- # - Its license terms and conditions are shown below.
- #
- # * IPADIC (Japanese)
- # - http://chasen.aist-nara.ac.jp/chasen/distribution.html
- # - Its license terms and conditions are shown below.
- #
- # ---------COPYING.libtabe ---- BEGIN--------------------
- #
- # /*
- # * Copyright (c) 1999 TaBE Project.
- # * Copyright (c) 1999 Pai-Hsiang Hsiao.
- # * All rights reserved.
- # *
- # * Redistribution and use in source and binary forms, with or without
- # * modification, are permitted provided that the following conditions
- # * are met:
- # *
- # * . Redistributions of source code must retain the above copyright
- # * notice, this list of conditions and the following disclaimer.
- # * . Redistributions in binary form must reproduce the above copyright
- # * notice, this list of conditions and the following disclaimer in
- # * the documentation and/or other materials provided with the
- # * distribution.
- # * . Neither the name of the TaBE Project nor the names of its
- # * contributors may be used to endorse or promote products derived
- # * from this software without specific prior written permission.
- # *
- # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # * REGENTS 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.
- # */
- #
- # /*
- # * Copyright (c) 1999 Computer Systems and Communication Lab,
- # * Institute of Information Science, Academia
- # * Sinica. All rights reserved.
- # *
- # * Redistribution and use in source and binary forms, with or without
- # * modification, are permitted provided that the following conditions
- # * are met:
- # *
- # * . Redistributions of source code must retain the above copyright
- # * notice, this list of conditions and the following disclaimer.
- # * . Redistributions in binary form must reproduce the above copyright
- # * notice, this list of conditions and the following disclaimer in
- # * the documentation and/or other materials provided with the
- # * distribution.
- # * . Neither the name of the Computer Systems and Communication Lab
- # * nor the names of its contributors may be used to endorse or
- # * promote products derived from this software without specific
- # * prior written permission.
- # *
- # * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- # * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- # * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- # * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- # * REGENTS 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.
- # */
- #
- # Copyright 1996 Chih-Hao Tsai @ Beckman Institute,
- # University of Illinois
- # c-tsai4@uiuc.edu http://casper.beckman.uiuc.edu/~c-tsai4
- #
- # ---------------COPYING.libtabe-----END--------------------------------
- #
- #
- # ---------------COPYING.ipadic-----BEGIN-------------------------------
- #
- # Copyright 2000, 2001, 2002, 2003 Nara Institute of Science
- # and Technology. All Rights Reserved.
- #
- # Use, reproduction, and distribution of this software is permitted.
- # Any copy of this software, whether in its original form or modified,
- # must include both the above copyright notice and the following
- # paragraphs.
- #
- # Nara Institute of Science and Technology (NAIST),
- # the copyright holders, disclaims all warranties with regard to this
- # software, including all implied warranties of merchantability and
- # fitness, in no event shall NAIST be liable for
- # any special, indirect or consequential damages or any damages
- # whatsoever resulting from loss of use, data or profits, whether in an
- # action of contract, negligence or other tortuous action, arising out
- # of or in connection with the use or performance of this software.
- #
- # A large portion of the dictionary entries
- # originate from ICOT Free Software. The following conditions for ICOT
- # Free Software applies to the current dictionary as well.
- #
- # Each User may also freely distribute the Program, whether in its
- # original form or modified, to any third party or parties, PROVIDED
- # that the provisions of Section 3 ("NO WARRANTY") will ALWAYS appear
- # on, or be attached to, the Program, which is distributed substantially
- # in the same form as set out herein and that such intended
- # distribution, if actually made, will neither violate or otherwise
- # contravene any of the laws and regulations of the countries having
- # jurisdiction over the User or the intended distribution itself.
- #
- # NO WARRANTY
- #
- # The program was produced on an experimental basis in the course of the
- # research and development conducted during the project and is provided
- # to users as so produced on an experimental basis. Accordingly, the
- # program is provided without any warranty whatsoever, whether express,
- # implied, statutory or otherwise. The term "warranty" used herein
- # includes, but is not limited to, any warranty of the quality,
- # performance, merchantability and fitness for a particular purpose of
- # the program and the nonexistence of any infringement or violation of
- # any right of any third party.
- #
- # Each user of the program will agree and understand, and be deemed to
- # have agreed and understood, that there is no warranty whatsoever for
- # the program and, accordingly, the entire risk arising from or
- # otherwise connected with the program is assumed by the user.
- #
- # Therefore, neither ICOT, the copyright holder, or any other
- # organization that participated in or was otherwise related to the
- # development of the program and their respective officials, directors,
- # officers and other employees shall be held liable for any and all
- # damages, including, without limitation, general, special, incidental
- # and consequential damages, arising out of or otherwise in connection
- # with the use or inability to use the program or any product, material
- # or result produced or otherwise obtained by using the program,
- # regardless of whether they have been advised of, or otherwise had
- # knowledge of, the possibility of such damages at any time during the
- # project or thereafter. Each user will be deemed to have agreed to the
- # foregoing by his or her commencement of use of the program. The term
- # "use" as used herein includes, but is not limited to, the use,
- # modification, copying and distribution of the program and the
- # production of secondary products from the program.
- #
- # In the case where the program, whether in its original form or
- # modified, was distributed or delivered to or received by a user from
- # any person, organization or entity other than ICOT, unless it makes or
- # grants independently of ICOT any specific warranty to the user in
- # writing, such person, organization or entity, will also be exempted
- # from and not be held liable to the user for any such damages as noted
- # above as far as the program is concerned.
- #
- # ---------------COPYING.ipadic-----END----------------------------------
-
- ----------------------------------------------------------------------
-
- Lao Word Break Dictionary Data (laodict.txt)
-
- # Copyright (C) 2016 and later: Unicode, Inc. and others.
- # License & terms of use: http://www.unicode.org/copyright.html
- # Copyright (c) 2015 International Business Machines Corporation
- # and others. All Rights Reserved.
- #
- # Project: https://github.com/rober42539/lao-dictionary
- # Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt
- # License: https://github.com/rober42539/lao-dictionary/LICENSE.txt
- # (copied below)
- #
- # This file is derived from the above dictionary version of Nov 22, 2020
- # ----------------------------------------------------------------------
- # Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell.
- # 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.
- # --------------------------------------------------------------------------
-
- ----------------------------------------------------------------------
-
- Burmese Word Break Dictionary Data (burmesedict.txt)
-
- # Copyright (c) 2014 International Business Machines Corporation
- # and others. All Rights Reserved.
- #
- # This list is part of a project hosted at:
- # github.com/kanyawtech/myanmar-karen-word-lists
- #
- # --------------------------------------------------------------------------
- # Copyright (c) 2013, LeRoy Benjamin Sharon
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or without
- # modification, are permitted provided that the following conditions
- # are met: Redistributions of source code must retain the above
- # copyright notice, this list of conditions and the following
- # disclaimer. Redistributions in binary form must reproduce the
- # above copyright notice, this list of conditions and the following
- # disclaimer in the documentation and/or other materials provided
- # with the distribution.
- #
- # Neither the name Myanmar Karen Word Lists, nor the names of its
- # contributors may be used to endorse or promote products derived
- # from this software without specific prior written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- # DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
- # BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- # ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
- # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- # THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- # SUCH DAMAGE.
- # --------------------------------------------------------------------------
-
- ----------------------------------------------------------------------
-
- Time Zone Database
-
- ICU uses the public domain data and code derived from Time Zone
- Database for its time zone support. The ownership of the TZ database
- is explained in BCP 175: Procedure for Maintaining the Time Zone
- Database section 7.
-
- # 7. Database Ownership
- #
- # The TZ database itself is not an IETF Contribution or an IETF
- # document. Rather it is a pre-existing and regularly updated work
- # that is in the public domain, and is intended to remain in the
- # public domain. Therefore, BCPs 78 [RFC5378] and 79 [RFC3979] do
- # not apply to the TZ Database or contributions that individuals make
- # to it. Should any claims be made and substantiated against the TZ
- # Database, the organization that is providing the IANA
- # Considerations defined in this RFC, under the memorandum of
- # understanding with the IETF, currently ICANN, may act in accordance
- # with all competent court orders. No ownership claims will be made
- # by ICANN or the IETF Trust on the database or the code. Any person
- # making a contribution to the database or code waives all rights to
- # future claims in that contribution or in the TZ Database.
-
- ----------------------------------------------------------------------
-
- Google double-conversion
-
- Copyright 2006-2011, the V8 project authors. All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
- * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER 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.
-
- ----------------------------------------------------------------------
-
- File: aclocal.m4 (only for ICU4C)
- Section: pkg.m4 - Macros to locate and utilise pkg-config.
-
-
- Copyright © 2004 Scott James Remnant .
- Copyright © 2012-2015 Dan Nicholson
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
-
- As a special exception to the GNU General Public License, if you
- distribute this file as part of a program that contains a
- configuration script generated by Autoconf, you may include it under
- the same distribution terms that you use for the rest of that
- program.
-
-
- (The condition for the exception is fulfilled because
- ICU4C includes a configuration script generated by Autoconf,
- namely the `configure` script.)
-
- ----------------------------------------------------------------------
-
- File: config.guess (only for ICU4C)
-
-
- This file is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, see .
-
- As a special exception to the GNU General Public License, if you
- distribute this file as part of a program that contains a
- configuration script generated by Autoconf, you may include it under
- the same distribution terms that you use for the rest of that
- program. This Exception is an additional permission under section 7
- of the GNU General Public License, version 3 ("GPLv3").
-
-
- (The condition for the exception is fulfilled because
- ICU4C includes a configuration script generated by Autoconf,
- namely the `configure` script.)
-
- ----------------------------------------------------------------------
-
- File: install-sh (only for ICU4C)
-
-
- Copyright 1991 by the Massachusetts Institute of Technology
-
- Permission to use, copy, modify, distribute, and sell this software and its
- documentation for any purpose is hereby granted without fee, provided that
- the above copyright notice appear in all copies and that both that
- copyright notice and this permission notice appear in supporting
- documentation, and that the name of M.I.T. not be used in advertising or
- publicity pertaining to distribution of the software without specific,
- written prior permission. M.I.T. makes no representations about the
- suitability of this software for any purpose. It is provided "as is"
- without express or implied warranty.
- """
-
-- libuv, located at deps/uv, is licensed as follows:
- """
- Copyright (c) 2015-present libuv project 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.
- This license applies to parts of libuv originating from the
- https://github.com/joyent/libuv repository:
-
- ====
-
- Copyright Joyent, Inc. and other Node contributors. All rights reserved.
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to
- deal in the Software without restriction, including without limitation the
- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- sell copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- IN THE SOFTWARE.
-
- ====
-
- This license applies to all parts of libuv that are not externally
- maintained libraries.
-
- The externally maintained libraries used by libuv are:
-
- - tree.h (from FreeBSD), copyright Niels Provos. Two clause BSD license.
-
- - inet_pton and inet_ntop implementations, contained in src/inet.c, are
- copyright the Internet Systems Consortium, Inc., and licensed under the ISC
- license.
- """
-
-- llhttp, located at deps/llhttp, is licensed as follows:
- """
- This software is licensed under the MIT License.
-
- Copyright Fedor Indutny, 2018.
-
- 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.
- """
-
-- corepack, located at deps/corepack, is licensed as follows:
- """
- **Copyright © Corepack 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.
- """
-
-- undici, located at deps/undici, is licensed as follows:
- """
- MIT License
-
- Copyright (c) Matteo Collina and Undici 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.
- """
-
-- postject, located at test/fixtures/postject-copy, is licensed as follows:
- """
- Postject is licensed for use as follows:
-
- """
- MIT License
-
- Copyright (c) 2022 Postman, Inc
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
- """
-
- The Postject license applies to all parts of Postject that are not externally
- maintained libraries.
-
- The externally maintained libraries used by Postject are:
-
- - LIEF, located at vendor/LIEF, is licensed as follows:
- """
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2017 - 2022 R. Thomas
- Copyright 2017 - 2022 Quarkslab
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- """
- """
-
-- OpenSSL, located at deps/openssl, is licensed as follows:
- """
- Apache License
- Version 2.0, January 2004
- https://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
- """
-
-- Punycode.js, located at lib/punycode.js, is licensed as follows:
- """
- Copyright Mathias Bynens
-
- 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.
- """
-
-- V8, located at deps/v8, is licensed as follows:
- """
- This license applies to all parts of V8 that are not externally
- maintained libraries. The externally maintained libraries used by V8
- are:
-
- - PCRE test suite, located in
- test/mjsunit/third_party/regexp-pcre/regexp-pcre.js. This is based on the
- test suite from PCRE-7.3, which is copyrighted by the University
- of Cambridge and Google, Inc. The copyright notice and license
- are embedded in regexp-pcre.js.
-
- - Layout tests, located in test/mjsunit/third_party/object-keys. These are
- based on layout tests from webkit.org which are copyrighted by
- Apple Computer, Inc. and released under a 3-clause BSD license.
-
- - Strongtalk assembler, the basis of the files assembler-arm-inl.h,
- assembler-arm.cc, assembler-arm.h, assembler-ia32-inl.h,
- assembler-ia32.cc, assembler-ia32.h, assembler-x64-inl.h,
- assembler-x64.cc, assembler-x64.h, assembler.cc and assembler.h.
- This code is copyrighted by Sun Microsystems Inc. and released
- under a 3-clause BSD license.
-
- - Valgrind client API header, located at src/third_party/valgrind/valgrind.h
- This is released under the BSD license.
-
- - The Wasm C/C++ API headers, located at third_party/wasm-api/wasm.{h,hh}
- This is released under the Apache license. The API's upstream prototype
- implementation also formed the basis of V8's implementation in
- src/wasm/c-api.cc.
-
- These libraries have their own licenses; we recommend you read them,
- as their terms may differ from the terms below.
-
- Further license information can be found in LICENSE files located in
- sub-directories.
-
- Copyright 2014, the V8 project authors. All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following
- disclaimer in the documentation and/or other materials provided
- with the distribution.
- * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived
- from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER 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.
- """
-
-- SipHash, located at deps/v8/src/third_party/siphash, is licensed as follows:
- """
- SipHash reference C implementation
-
- Copyright (c) 2016 Jean-Philippe Aumasson
-
- To the extent possible under law, the author(s) have dedicated all
- copyright and related and neighboring rights to this software to the public
- domain worldwide. This software is distributed without any warranty.
- """
-
-- zlib, located at deps/zlib, is licensed as follows:
- """
- zlib.h -- interface of the 'zlib' general purpose compression library
- version 1.2.13, October 13th, 2022
-
- Copyright (C) 1995-2022 Jean-loup Gailly and Mark Adler
-
- This software is provided 'as-is', without any express or implied
- warranty. In no event will the authors be held liable for any damages
- arising from the use of this software.
-
- Permission is granted to anyone to use this software for any purpose,
- including commercial applications, and to alter it and redistribute it
- freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
- 3. This notice may not be removed or altered from any source distribution.
-
- Jean-loup Gailly Mark Adler
- jloup@gzip.org madler@alumni.caltech.edu
- """
-
-- simdutf, located at deps/simdutf, is licensed as follows:
- """
- Copyright 2021 The simdutf authors
-
- 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.
- """
-
-- ada, located at deps/ada, is licensed as follows:
- """
- Copyright 2023 Ada authors
-
- 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.
- """
-
-- minimatch, located at deps/minimatch, is licensed as follows:
- """
- The ISC License
-
- Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- """
-
-- npm, located at deps/npm, is licensed as follows:
- """
- The npm application
- Copyright (c) npm, Inc. and Contributors
- Licensed on the terms of The Artistic License 2.0
-
- Node package dependencies of the npm application
- Copyright (c) their respective copyright owners
- Licensed on their respective license terms
-
- The npm public registry at https://registry.npmjs.org
- and the npm website at https://www.npmjs.com
- Operated by npm, Inc.
- Use governed by terms published on https://www.npmjs.com
-
- "Node.js"
- Trademark Joyent, Inc., https://joyent.com
- Neither npm nor npm, Inc. are affiliated with Joyent, Inc.
-
- The Node.js application
- Project of Node Foundation, https://nodejs.org
-
- The npm Logo
- Copyright (c) Mathias Pettersson and Brian Hammond
-
- "Gubblebum Blocky" typeface
- Copyright (c) Tjarda Koster, https://jelloween.deviantart.com
- Used with permission
-
- --------
-
- The Artistic License 2.0
-
- Copyright (c) 2000-2006, The Perl Foundation.
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- This license establishes the terms under which a given free software
- Package may be copied, modified, distributed, and/or redistributed.
- The intent is that the Copyright Holder maintains some artistic
- control over the development of that Package while still keeping the
- Package available as open source and free software.
-
- You are always permitted to make arrangements wholly outside of this
- license directly with the Copyright Holder of a given Package. If the
- terms of this license do not permit the full use that you propose to
- make of the Package, you should contact the Copyright Holder and seek
- a different licensing arrangement.
-
- Definitions
-
- "Copyright Holder" means the individual(s) or organization(s)
- named in the copyright notice for the entire Package.
-
- "Contributor" means any party that has contributed code or other
- material to the Package, in accordance with the Copyright Holder's
- procedures.
-
- "You" and "your" means any person who would like to copy,
- distribute, or modify the Package.
-
- "Package" means the collection of files distributed by the
- Copyright Holder, and derivatives of that collection and/or of
- those files. A given Package may consist of either the Standard
- Version, or a Modified Version.
-
- "Distribute" means providing a copy of the Package or making it
- accessible to anyone else, or in the case of a company or
- organization, to others outside of your company or organization.
-
- "Distributor Fee" means any fee that you charge for Distributing
- this Package or providing support for this Package to another
- party. It does not mean licensing fees.
-
- "Standard Version" refers to the Package if it has not been
- modified, or has been modified only in ways explicitly requested
- by the Copyright Holder.
-
- "Modified Version" means the Package, if it has been changed, and
- such changes were not explicitly requested by the Copyright
- Holder.
-
- "Original License" means this Artistic License as Distributed with
- the Standard Version of the Package, in its current version or as
- it may be modified by The Perl Foundation in the future.
-
- "Source" form means the source code, documentation source, and
- configuration files for the Package.
-
- "Compiled" form means the compiled bytecode, object code, binary,
- or any other form resulting from mechanical transformation or
- translation of the Source form.
-
- Permission for Use and Modification Without Distribution
-
- (1) You are permitted to use the Standard Version and create and use
- Modified Versions for any purpose without restriction, provided that
- you do not Distribute the Modified Version.
-
- Permissions for Redistribution of the Standard Version
-
- (2) You may Distribute verbatim copies of the Source form of the
- Standard Version of this Package in any medium without restriction,
- either gratis or for a Distributor Fee, provided that you duplicate
- all of the original copyright notices and associated disclaimers. At
- your discretion, such verbatim copies may or may not include a
- Compiled form of the Package.
-
- (3) You may apply any bug fixes, portability changes, and other
- modifications made available from the Copyright Holder. The resulting
- Package will still be considered the Standard Version, and as such
- will be subject to the Original License.
-
- Distribution of Modified Versions of the Package as Source
-
- (4) You may Distribute your Modified Version as Source (either gratis
- or for a Distributor Fee, and with or without a Compiled form of the
- Modified Version) provided that you clearly document how it differs
- from the Standard Version, including, but not limited to, documenting
- any non-standard features, executables, or modules, and provided that
- you do at least ONE of the following:
-
- (a) make the Modified Version available to the Copyright Holder
- of the Standard Version, under the Original License, so that the
- Copyright Holder may include your modifications in the Standard
- Version.
-
- (b) ensure that installation of your Modified Version does not
- prevent the user installing or running the Standard Version. In
- addition, the Modified Version must bear a name that is different
- from the name of the Standard Version.
-
- (c) allow anyone who receives a copy of the Modified Version to
- make the Source form of the Modified Version available to others
- under
-
- (i) the Original License or
-
- (ii) a license that permits the licensee to freely copy,
- modify and redistribute the Modified Version using the same
- licensing terms that apply to the copy that the licensee
- received, and requires that the Source form of the Modified
- Version, and of any works derived from it, be made freely
- available in that license fees are prohibited but Distributor
- Fees are allowed.
-
- Distribution of Compiled Forms of the Standard Version
- or Modified Versions without the Source
-
- (5) You may Distribute Compiled forms of the Standard Version without
- the Source, provided that you include complete instructions on how to
- get the Source of the Standard Version. Such instructions must be
- valid at the time of your distribution. If these instructions, at any
- time while you are carrying out such distribution, become invalid, you
- must provide new instructions on demand or cease further distribution.
- If you provide valid instructions or cease distribution within thirty
- days after you become aware that the instructions are invalid, then
- you do not forfeit any of your rights under this license.
-
- (6) You may Distribute a Modified Version in Compiled form without
- the Source, provided that you comply with Section 4 with respect to
- the Source of the Modified Version.
-
- Aggregating or Linking the Package
-
- (7) You may aggregate the Package (either the Standard Version or
- Modified Version) with other packages and Distribute the resulting
- aggregation provided that you do not charge a licensing fee for the
- Package. Distributor Fees are permitted, and licensing fees for other
- components in the aggregation are permitted. The terms of this license
- apply to the use and Distribution of the Standard or Modified Versions
- as included in the aggregation.
-
- (8) You are permitted to link Modified and Standard Versions with
- other works, to embed the Package in a larger work of your own, or to
- build stand-alone binary or bytecode versions of applications that
- include the Package, and Distribute the result without restriction,
- provided the result does not expose a direct interface to the Package.
-
- Items That are Not Considered Part of a Modified Version
-
- (9) Works (including, but not limited to, modules and scripts) that
- merely extend or make use of the Package, do not, by themselves, cause
- the Package to be a Modified Version. In addition, such works are not
- considered parts of the Package itself, and are not subject to the
- terms of this license.
-
- General Provisions
-
- (10) Any use, modification, and distribution of the Standard or
- Modified Versions is governed by this Artistic License. By using,
- modifying or distributing the Package, you accept this license. Do not
- use, modify, or distribute the Package, if you do not accept this
- license.
-
- (11) If your Modified Version has been derived from a Modified
- Version made by someone other than you, you are nevertheless required
- to ensure that your Modified Version complies with the requirements of
- this license.
-
- (12) This license does not grant you the right to use any trademark,
- service mark, tradename, or logo of the Copyright Holder.
-
- (13) This license includes the non-exclusive, worldwide,
- free-of-charge patent license to make, have made, use, offer to sell,
- sell, import and otherwise transfer the Package with respect to any
- patent claims licensable by the Copyright Holder that are necessarily
- infringed by the Package. If you institute patent litigation
- (including a cross-claim or counterclaim) against any party alleging
- that the Package constitutes direct or contributory patent
- infringement, then this Artistic License to you shall terminate on the
- date that such litigation is filed.
-
- (14) Disclaimer of Warranty:
- THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS
- IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED
- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
- NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL
- LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL
- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
- DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF
- ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- --------
- """
-
-- GYP, located at tools/gyp, is licensed as follows:
- """
- Copyright (c) 2020 Node.js contributors. All rights reserved.
- Copyright (c) 2009 Google Inc. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER 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.
- """
-
-- inspector_protocol, located at tools/inspector_protocol, is licensed as follows:
- """
- // Copyright 2016 The Chromium Authors. All rights reserved.
- //
- // Redistribution and use in source and binary forms, with or without
- // modification, are permitted provided that the following conditions are
- // met:
- //
- // * Redistributions of source code must retain the above copyright
- // notice, this list of conditions and the following disclaimer.
- // * Redistributions in binary form must reproduce the above
- // copyright notice, this list of conditions and the following disclaimer
- // in the documentation and/or other materials provided with the
- // distribution.
- // * Neither the name of Google Inc. nor the names of its
- // contributors may be used to endorse or promote products derived from
- // this software without specific prior written permission.
- //
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- // OWNER 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.
- """
-
-- jinja2, located at tools/inspector_protocol/jinja2, is licensed as follows:
- """
- Copyright (c) 2009 by the Jinja Team, see AUTHORS for more details.
-
- Some 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.
-
- * The names of the contributors may not be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER 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.
- """
-
-- markupsafe, located at tools/inspector_protocol/markupsafe, is licensed as follows:
- """
- Copyright (c) 2010 by Armin Ronacher and contributors. See AUTHORS
- for more details.
-
- Some rights reserved.
-
- Redistribution and use in source and binary forms of the software as well
- as documentation, 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.
-
- * The names of the contributors may not be used to endorse or
- promote products derived from this software without specific
- prior written permission.
-
- THIS SOFTWARE AND DOCUMENTATION 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 OWNER
- 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 AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- DAMAGE.
- """
-
-- cpplint.py, located at tools/cpplint.py, is licensed as follows:
- """
- Copyright (c) 2009 Google Inc. All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER 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.
- """
-
-- ESLint, located at tools/node_modules/eslint, is licensed as follows:
- """
- Copyright OpenJS Foundation and other contributors,
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
- """
-
-- gtest, located at deps/googletest, is licensed as follows:
- """
- Copyright 2008, Google Inc.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
- * Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above
- copyright notice, this list of conditions and the following disclaimer
- in the documentation and/or other materials provided with the
- distribution.
- * Neither the name of Google Inc. nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- OWNER 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.
- """
-
-- nghttp2, located at deps/nghttp2, is licensed as follows:
- """
- The MIT License
-
- Copyright (c) 2012, 2014, 2015, 2016 Tatsuhiro Tsujikawa
- Copyright (c) 2012, 2014, 2015, 2016 nghttp2 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.
- """
-
-- large_pages, located at src/large_pages, is licensed as follows:
- """
- Copyright (C) 2018 Intel Corporation
-
- 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.
- """
-
-- caja, located at lib/internal/freeze_intrinsics.js, is licensed as follows:
- """
- Adapted from SES/Caja - Copyright (C) 2011 Google Inc.
- Copyright (C) 2018 Agoric
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- """
-
-- brotli, located at deps/brotli, is licensed as follows:
- """
- Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.
-
- 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.
- """
-
-- HdrHistogram, located at deps/histogram, is licensed as follows:
- """
- The code in this repository code was Written by Gil Tene, Michael Barker,
- and Matt Warren, and released to the public domain, as explained at
- http://creativecommons.org/publicdomain/zero/1.0/
-
- For users of this code who wish to consume it under the "BSD" license
- rather than under the public domain or CC0 contribution text mentioned
- above, the code found under this directory is *also* provided under the
- following license (commonly referred to as the BSD 2-Clause License). This
- license does not detract from the above stated release of the code into
- the public domain, and simply represents an additional license granted by
- the Author.
-
- -----------------------------------------------------------------------------
- ** Beginning of "BSD 2-Clause License" text. **
-
- Copyright (c) 2012, 2013, 2014 Gil Tene
- Copyright (c) 2014 Michael Barker
- Copyright (c) 2014 Matt Warren
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- 1. Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- 2. 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.
- """
-
-- highlight.js, located at doc/api_assets/highlight.pack.js, is licensed as follows:
- """
- BSD 3-Clause License
-
- Copyright (c) 2006, Ivan Sagalaev.
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this
- list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-
- * Neither the name of the copyright holder nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- """
-
-- node-heapdump, located at src/heap_utils.cc, is licensed as follows:
- """
- ISC License
-
- Copyright (c) 2012, Ben Noordhuis
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
- === src/compat.h src/compat-inl.h ===
-
- ISC License
-
- Copyright (c) 2014, StrongLoop Inc.
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- """
-
-- rimraf, located at lib/internal/fs/rimraf.js, is licensed as follows:
- """
- The ISC License
-
- Copyright (c) Isaac Z. Schlueter and Contributors
-
- Permission to use, copy, modify, and/or distribute this software for any
- purpose with or without fee is hereby granted, provided that the above
- copyright notice and this permission notice appear in all copies.
-
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- """
-
-- uvwasi, located at deps/uvwasi, is licensed as follows:
- """
- MIT License
-
- Copyright (c) 2019 Colin Ihrig 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.
- """
-
-- ngtcp2, located at deps/ngtcp2/ngtcp2/, is licensed as follows:
- """
- The MIT License
-
- Copyright (c) 2016 ngtcp2 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.
- """
-
-- nghttp3, located at deps/ngtcp2/nghttp3/, is licensed as follows:
- """
- The MIT License
-
- Copyright (c) 2019 nghttp3 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.
- """
-
-- node-fs-extra, located at lib/internal/fs/cp, is licensed as follows:
- """
- (The MIT License)
-
- Copyright (c) 2011-2017 JP Richardson
-
- 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.
- """
-
-- base64, located at deps/base64/base64/, is licensed as follows:
- """
- Copyright (c) 2005-2007, Nick Galbreath
- Copyright (c) 2013-2019, Alfred Klomp
- Copyright (c) 2015-2017, Wojciech Mula
- Copyright (c) 2016-2017, Matthieu Darbois
- 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.
- """
diff --git a/~/.nvm/versions/node/v20.3.1/README.md b/~/.nvm/versions/node/v20.3.1/README.md
deleted file mode 100644
index 17bb106d..00000000
--- a/~/.nvm/versions/node/v20.3.1/README.md
+++ /dev/null
@@ -1,846 +0,0 @@
-# Node.js
-
-Node.js is an open-source, cross-platform JavaScript runtime environment.
-
-For information on using Node.js, see the [Node.js website][].
-
-The Node.js project uses an [open governance model](./GOVERNANCE.md). The
-[OpenJS Foundation][] provides support for the project.
-
-Contributors are expected to act in a collaborative manner to move
-the project forward. We encourage the constructive exchange of contrary
-opinions and compromise. The [TSC](./GOVERNANCE.md#technical-steering-committee)
-reserves the right to limit or block contributors who repeatedly act in ways
-that discourage, exhaust, or otherwise negatively affect other participants.
-
-**This project has a [Code of Conduct][].**
-
-## Table of contents
-
-* [Support](#support)
-* [Release types](#release-types)
- * [Download](#download)
- * [Current and LTS releases](#current-and-lts-releases)
- * [Nightly releases](#nightly-releases)
- * [API documentation](#api-documentation)
- * [Verifying binaries](#verifying-binaries)
-* [Building Node.js](#building-nodejs)
-* [Security](#security)
-* [Contributing to Node.js](#contributing-to-nodejs)
-* [Current project team members](#current-project-team-members)
- * [TSC (Technical Steering Committee)](#tsc-technical-steering-committee)
- * [Collaborators](#collaborators)
- * [Triagers](#triagers)
- * [Release keys](#release-keys)
-* [License](#license)
-
-## Support
-
-Looking for help? Check out the
-[instructions for getting support](.github/SUPPORT.md).
-
-## Release types
-
-* **Current**: Under active development. Code for the Current release is in the
- branch for its major version number (for example,
- [v19.x](https://github.com/nodejs/node/tree/v19.x)). Node.js releases a new
- major version every 6 months, allowing for breaking changes. This happens in
- April and October every year. Releases appearing each October have a support
- life of 8 months. Releases appearing each April convert to LTS (see below)
- each October.
-* **LTS**: Releases that receive Long Term Support, with a focus on stability
- and security. Every even-numbered major version will become an LTS release.
- LTS releases receive 12 months of _Active LTS_ support and a further 18 months
- of _Maintenance_. LTS release lines have alphabetically-ordered code names,
- beginning with v4 Argon. There are no breaking changes or feature additions,
- except in some special circumstances.
-* **Nightly**: Code from the Current branch built every 24-hours when there are
- changes. Use with caution.
-
-Current and LTS releases follow [semantic versioning](https://semver.org). A
-member of the Release Team [signs](#release-keys) each Current and LTS release.
-For more information, see the
-[Release README](https://github.com/nodejs/Release#readme).
-
-### Download
-
-Binaries, installers, and source tarballs are available at
-.
-
-#### Current and LTS releases
-
-
-
-The [latest](https://nodejs.org/download/release/latest/) directory is an
-alias for the latest Current release. The latest-_codename_ directory is an
-alias for the latest release from an LTS line. For example, the
-[latest-hydrogen](https://nodejs.org/download/release/latest-hydrogen/)
-directory contains the latest Hydrogen (Node.js 18) release.
-
-#### Nightly releases
-
-
-
-Each directory name and filename contains a date (in UTC) and the commit
-SHA at the HEAD of the release.
-
-#### API documentation
-
-Documentation for the latest Current release is at .
-Version-specific documentation is available in each release directory in the
-_docs_ subdirectory. Version-specific documentation is also at
-.
-
-### Verifying binaries
-
-Download directories contain a `SHASUMS256.txt` file with SHA checksums for the
-files.
-
-To download `SHASUMS256.txt` using `curl`:
-
-```bash
-curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt
-```
-
-To check that a downloaded file matches the checksum, run
-it through `sha256sum` with a command such as:
-
-```bash
-grep node-vx.y.z.tar.gz SHASUMS256.txt | sha256sum -c -
-```
-
-For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in
-`SHASUMS256.txt.sig`. You can use it with `gpg` to verify the integrity of
-`SHASUMS256.txt`. You will first need to import
-[the GPG keys of individuals authorized to create releases](#release-keys). To
-import the keys:
-
-```bash
-gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C
-```
-
-See [Release keys](#release-keys) for a script to import active release keys.
-
-Next, download the `SHASUMS256.txt.sig` for the release:
-
-```bash
-curl -O https://nodejs.org/dist/vx.y.z/SHASUMS256.txt.sig
-```
-
-Then use `gpg --verify SHASUMS256.txt.sig SHASUMS256.txt` to verify
-the file's signature.
-
-## Building Node.js
-
-See [BUILDING.md](BUILDING.md) for instructions on how to build Node.js from
-source and a list of supported platforms.
-
-## Security
-
-For information on reporting security vulnerabilities in Node.js, see
-[SECURITY.md](./SECURITY.md).
-
-## Contributing to Node.js
-
-* [Contributing to the project][]
-* [Working Groups][]
-* [Strategic initiatives][]
-* [Technical values and prioritization][]
-
-## Current project team members
-
-For information about the governance of the Node.js project, see
-[GOVERNANCE.md](./GOVERNANCE.md).
-
-
-
-### TSC (Technical Steering Committee)
-
-#### TSC voting members
-
-
-
-* [aduh95](https://github.com/aduh95) -
- **Antoine du Hamel** <> (he/him)
-* [apapirovski](https://github.com/apapirovski) -
- **Anatoli Papirovski** <> (he/him)
-* [BridgeAR](https://github.com/BridgeAR) -
- **Ruben Bridgewater** <> (he/him)
-* [cjihrig](https://github.com/cjihrig) -
- **Colin Ihrig** <> (he/him)
-* [danielleadams](https://github.com/danielleadams) -
- **Danielle Adams** <> (she/her)
-* [GeoffreyBooth](https://github.com/geoffreybooth) -
- **Geoffrey Booth** <> (he/him)
-* [gireeshpunathil](https://github.com/gireeshpunathil) -
- **Gireesh Punathil** <> (he/him)
-* [jasnell](https://github.com/jasnell) -
- **James M Snell** <> (he/him)
-* [joyeecheung](https://github.com/joyeecheung) -
- **Joyee Cheung** <> (she/her)
-* [legendecas](https://github.com/legendecas) -
- **Chengzhong Wu** <> (he/him)
-* [mcollina](https://github.com/mcollina) -
- **Matteo Collina** <> (he/him)
-* [mhdawson](https://github.com/mhdawson) -
- **Michael Dawson** <> (he/him)
-* [MoLow](https://github.com/MoLow) -
- **Moshe Atlow** <> (he/him)
-* [RafaelGSS](https://github.com/RafaelGSS) -
- **Rafael Gonzaga** <> (he/him)
-* [RaisinTen](https://github.com/RaisinTen) -
- **Darshan Sen** <> (he/him)
-* [richardlau](https://github.com/richardlau) -
- **Richard Lau** <>
-* [ronag](https://github.com/ronag) -
- **Robert Nagy** <>
-* [ruyadorno](https://github.com/ruyadorno) -
- **Ruy Adorno** <> (he/him)
-* [targos](https://github.com/targos) -
- **Michaël Zasso** <> (he/him)
-* [tniessen](https://github.com/tniessen) -
- **Tobias Nießen** <> (he/him)
-* [Trott](https://github.com/Trott) -
- **Rich Trott** <> (he/him)
-
-#### TSC regular members
-
-* [BethGriggs](https://github.com/BethGriggs) -
- **Beth Griggs** <> (she/her)
-* [bnoordhuis](https://github.com/bnoordhuis) -
- **Ben Noordhuis** <>
-* [ChALkeR](https://github.com/ChALkeR) -
- **Сковорода Никита Андреевич** <> (he/him)
-* [codebytere](https://github.com/codebytere) -
- **Shelley Vohr** <> (she/her)
-* [danbev](https://github.com/danbev) -
- **Daniel Bevenius** <> (he/him)
-* [fhinkel](https://github.com/fhinkel) -
- **Franziska Hinkelmann** <> (she/her)
-* [gabrielschulhof](https://github.com/gabrielschulhof) -
- **Gabriel Schulhof** <>
-* [mscdex](https://github.com/mscdex) -
- **Brian White** <>
-* [MylesBorins](https://github.com/MylesBorins) -
- **Myles Borins** <> (he/him)
-* [rvagg](https://github.com/rvagg) -
- **Rod Vagg** <>
-* [TimothyGu](https://github.com/TimothyGu) -
- **Tiancheng "Timothy" Gu** <> (he/him)
-
-
-
-TSC emeriti members
-
-#### TSC emeriti members
-
-* [addaleax](https://github.com/addaleax) -
- **Anna Henningsen** <> (she/her)
-* [chrisdickinson](https://github.com/chrisdickinson) -
- **Chris Dickinson** <>
-* [evanlucas](https://github.com/evanlucas) -
- **Evan Lucas** <> (he/him)
-* [Fishrock123](https://github.com/Fishrock123) -
- **Jeremiah Senkpiel** <> (he/they)
-* [gibfahn](https://github.com/gibfahn) -
- **Gibson Fahnestock** <> (he/him)
-* [indutny](https://github.com/indutny) -
- **Fedor Indutny** <>
-* [isaacs](https://github.com/isaacs) -
- **Isaac Z. Schlueter** <>
-* [joshgav](https://github.com/joshgav) -
- **Josh Gavant** <>
-* [mmarchini](https://github.com/mmarchini) -
- **Mary Marchini** <> (she/her)
-* [nebrius](https://github.com/nebrius) -
- **Bryan Hughes** <>
-* [ofrobots](https://github.com/ofrobots) -
- **Ali Ijaz Sheikh** <> (he/him)
-* [orangemocha](https://github.com/orangemocha) -
- **Alexis Campailla** <>
-* [piscisaureus](https://github.com/piscisaureus) -
- **Bert Belder** <>
-* [sam-github](https://github.com/sam-github) -
- **Sam Roberts** <>
-* [shigeki](https://github.com/shigeki) -
- **Shigeki Ohtsu** <> (he/him)
-* [thefourtheye](https://github.com/thefourtheye) -
- **Sakthipriyan Vairamani** <> (he/him)
-* [trevnorris](https://github.com/trevnorris) -
- **Trevor Norris** <>
-
-
-
-
-
-### Collaborators
-
-* [addaleax](https://github.com/addaleax) -
- **Anna Henningsen** <> (she/her)
-* [aduh95](https://github.com/aduh95) -
- **Antoine du Hamel** <> (he/him)
-* [anonrig](https://github.com/anonrig) -
- **Yagiz Nizipli** <> (he/him)
-* [antsmartian](https://github.com/antsmartian) -
- **Anto Aravinth** <> (he/him)
-* [apapirovski](https://github.com/apapirovski) -
- **Anatoli Papirovski** <> (he/him)
-* [AshCripps](https://github.com/AshCripps) -
- **Ash Cripps** <>
-* [Ayase-252](https://github.com/Ayase-252) -
- **Qingyu Deng** <>
-* [bengl](https://github.com/bengl) -
- **Bryan English** <> (he/him)
-* [benjamingr](https://github.com/benjamingr) -
- **Benjamin Gruenbaum** <>
-* [BethGriggs](https://github.com/BethGriggs) -
- **Beth Griggs** <> (she/her)
-* [bmeck](https://github.com/bmeck) -
- **Bradley Farias** <>
-* [bnb](https://github.com/bnb) -
- **Tierney Cyren** <> (they/he)
-* [bnoordhuis](https://github.com/bnoordhuis) -
- **Ben Noordhuis** <>
-* [BridgeAR](https://github.com/BridgeAR) -
- **Ruben Bridgewater** <> (he/him)
-* [cclauss](https://github.com/cclauss) -
- **Christian Clauss** <> (he/him)
-* [ChALkeR](https://github.com/ChALkeR) -
- **Сковорода Никита Андреевич** <> (he/him)
-* [cjihrig](https://github.com/cjihrig) -
- **Colin Ihrig** <> (he/him)
-* [codebytere](https://github.com/codebytere) -
- **Shelley Vohr** <> (she/her)
-* [cola119](https://github.com/cola119) -
- **Kohei Ueno** <> (he/him)
-* [daeyeon](https://github.com/daeyeon) -
- **Daeyeon Jeong** <> (he/him)
-* [danbev](https://github.com/danbev) -
- **Daniel Bevenius** <> (he/him)
-* [danielleadams](https://github.com/danielleadams) -
- **Danielle Adams** <> (she/her)
-* [debadree25](https://github.com/debadree25) -
- **Debadree Chatterjee** <> (he/him)
-* [deokjinkim](https://github.com/deokjinkim) -
- **Deokjin Kim** <> (he/him)
-* [devnexen](https://github.com/devnexen) -
- **David Carlier** <>
-* [devsnek](https://github.com/devsnek) -
- **Gus Caplan** <> (they/them)
-* [edsadr](https://github.com/edsadr) -
- **Adrian Estrada** <> (he/him)
-* [erickwendel](https://github.com/erickwendel) -
- **Erick Wendel** <> (he/him)
-* [fhinkel](https://github.com/fhinkel) -
- **Franziska Hinkelmann** <> (she/her)
-* [F3n67u](https://github.com/F3n67u) -
- **Feng Yu** <> (he/him)
-* [Flarna](https://github.com/Flarna) -
- **Gerhard Stöbich** <> (he/they)
-* [gabrielschulhof](https://github.com/gabrielschulhof) -
- **Gabriel Schulhof** <>
-* [gengjiawen](https://github.com/gengjiawen) -
- **Jiawen Geng** <>
-* [GeoffreyBooth](https://github.com/geoffreybooth) -
- **Geoffrey Booth** <> (he/him)
-* [gireeshpunathil](https://github.com/gireeshpunathil) -
- **Gireesh Punathil** <> (he/him)
-* [guybedford](https://github.com/guybedford) -
- **Guy Bedford** <> (he/him)
-* [HarshithaKP](https://github.com/HarshithaKP) -
- **Harshitha K P** <> (she/her)
-* [himself65](https://github.com/himself65) -
- **Zeyu "Alex" Yang** <> (he/him)
-* [iansu](https://github.com/iansu) -
- **Ian Sutherland** <>
-* [JacksonTian](https://github.com/JacksonTian) -
- **Jackson Tian** <>
-* [JakobJingleheimer](https://github.com/JakobJingleheimer) -
- **Jacob Smith** <> (he/him)
-* [jasnell](https://github.com/jasnell) -
- **James M Snell** <> (he/him)
-* [jkrems](https://github.com/jkrems) -
- **Jan Krems** <> (he/him)
-* [joesepi](https://github.com/joesepi) -
- **Joe Sepi** <> (he/him)
-* [joyeecheung](https://github.com/joyeecheung) -
- **Joyee Cheung** <> (she/her)
-* [juanarbol](https://github.com/juanarbol) -
- **Juan José Arboleda** <> (he/him)
-* [JungMinu](https://github.com/JungMinu) -
- **Minwoo Jung** <> (he/him)
-* [KhafraDev](https://github.com/KhafraDev) -
- **Matthew Aitken** <> (he/him)
-* [kuriyosh](https://github.com/kuriyosh) -
- **Yoshiki Kurihara** <> (he/him)
-* [legendecas](https://github.com/legendecas) -
- **Chengzhong Wu** <> (he/him)
-* [Leko](https://github.com/Leko) -
- **Shingo Inoue** <> (he/him)
-* [linkgoron](https://github.com/linkgoron) -
- **Nitzan Uziely** <>
-* [LiviaMedeiros](https://github.com/LiviaMedeiros) -
- **LiviaMedeiros** <>
-* [lpinca](https://github.com/lpinca) -
- **Luigi Pinca** <> (he/him)
-* [lukekarrys](https://github.com/lukekarrys) -
- **Luke Karrys** <> (he/him)
-* [Lxxyx](https://github.com/Lxxyx) -
- **Zijian Liu** <> (he/him)
-* [marco-ippolito](https://github.com/marco-ippolito) -
- **Marco Ippolito** <> (he/him)
-* [marsonya](https://github.com/marsonya) -
- **Akhil Marsonya** <> (he/him)
-* [mcollina](https://github.com/mcollina) -
- **Matteo Collina** <> (he/him)
-* [meixg](https://github.com/meixg) -
- **Xuguang Mei** <> (he/him)
-* [Mesteery](https://github.com/Mesteery) -
- **Mestery** <> (he/him)
-* [mhdawson](https://github.com/mhdawson) -
- **Michael Dawson** <> (he/him)
-* [miladfarca](https://github.com/miladfarca) -
- **Milad Fa** <> (he/him)
-* [mildsunrise](https://github.com/mildsunrise) -
- **Alba Mendez** <> (she/her)
-* [MoLow](https://github.com/MoLow) -
- **Moshe Atlow** <> (he/him)
-* [mscdex](https://github.com/mscdex) -
- **Brian White** <>
-* [MylesBorins](https://github.com/MylesBorins) -
- **Myles Borins** <> (he/him)
-* [ovflowd](https://github.com/ovflowd) -
- **Claudio Wunder** <> (he/they)
-* [oyyd](https://github.com/oyyd) -
- **Ouyang Yadong** <> (he/him)
-* [panva](https://github.com/panva) -
- **Filip Skokan** <> (he/him)
-* [Qard](https://github.com/Qard) -
- **Stephen Belanger** <> (he/him)
-* [RafaelGSS](https://github.com/RafaelGSS) -
- **Rafael Gonzaga** <> (he/him)
-* [RaisinTen](https://github.com/RaisinTen) -
- **Darshan Sen** <> (he/him)
-* [richardlau](https://github.com/richardlau) -
- **Richard Lau** <>
-* [rickyes](https://github.com/rickyes) -
- **Ricky Zhou** <<0x19951125@gmail.com>> (he/him)
-* [ronag](https://github.com/ronag) -
- **Robert Nagy** <>
-* [ruyadorno](https://github.com/ruyadorno) -
- **Ruy Adorno** <> (he/him)
-* [rvagg](https://github.com/rvagg) -
- **Rod Vagg** <>
-* [ryzokuken](https://github.com/ryzokuken) -
- **Ujjwal Sharma** <> (he/him)
-* [santigimeno](https://github.com/santigimeno) -
- **Santiago Gimeno** <>
-* [shisama](https://github.com/shisama) -
- **Masashi Hirano** <> (he/him)
-* [ShogunPanda](https://github.com/ShogunPanda) -
- **Paolo Insogna** <> (he/him)
-* [srl295](https://github.com/srl295) -
- **Steven R Loomis** <>
-* [sxa](https://github.com/sxa) -
- **Stewart X Addison** <> (he/him)
-* [targos](https://github.com/targos) -
- **Michaël Zasso** <> (he/him)
-* [theanarkh](https://github.com/theanarkh) -
- **theanarkh** <> (he/him)
-* [TimothyGu](https://github.com/TimothyGu) -
- **Tiancheng "Timothy" Gu** <> (he/him)
-* [tniessen](https://github.com/tniessen) -
- **Tobias Nießen** <> (he/him)
-* [trivikr](https://github.com/trivikr) -
- **Trivikram Kamat** <>
-* [Trott](https://github.com/Trott) -
- **Rich Trott** <> (he/him)
-* [vdeturckheim](https://github.com/vdeturckheim) -
- **Vladimir de Turckheim** <> (he/him)
-* [VoltrexKeyva](https://github.com/VoltrexKeyva) -
- **Mohammed Keyvanzadeh** <> (he/him)
-* [watilde](https://github.com/watilde) -
- **Daijiro Wachi** <> (he/him)
-* [XadillaX](https://github.com/XadillaX) -
- **Khaidi Chu** <> (he/him)
-* [yashLadha](https://github.com/yashLadha) -
- **Yash Ladha** <> (he/him)
-* [ZYSzys](https://github.com/ZYSzys) -
- **Yongsheng Zhang** <> (he/him)
-
-
-
-Emeriti
-
-
-
-### Collaborator emeriti
-
-* [ak239](https://github.com/ak239) -
- **Aleksei Koziatinskii** <>
-* [andrasq](https://github.com/andrasq) -
- **Andras** <>
-* [AnnaMag](https://github.com/AnnaMag) -
- **Anna M. Kedzierska** <>
-* [AndreasMadsen](https://github.com/AndreasMadsen) -
- **Andreas Madsen** <> (he/him)
-* [aqrln](https://github.com/aqrln) -
- **Alexey Orlenko** <> (he/him)
-* [bcoe](https://github.com/bcoe) -
- **Ben Coe** <> (he/him)
-* [bmeurer](https://github.com/bmeurer) -
- **Benedikt Meurer** <>
-* [boneskull](https://github.com/boneskull) -
- **Christopher Hiller** <> (he/him)
-* [brendanashworth](https://github.com/brendanashworth) -
- **Brendan Ashworth** <>
-* [bzoz](https://github.com/bzoz) -
- **Bartosz Sosnowski** <>
-* [calvinmetcalf](https://github.com/calvinmetcalf) -
- **Calvin Metcalf** <>
-* [chrisdickinson](https://github.com/chrisdickinson) -
- **Chris Dickinson** <>
-* [claudiorodriguez](https://github.com/claudiorodriguez) -
- **Claudio Rodriguez** <>
-* [DavidCai1993](https://github.com/DavidCai1993) -
- **David Cai** <> (he/him)
-* [davisjam](https://github.com/davisjam) -
- **Jamie Davis** <> (he/him)
-* [digitalinfinity](https://github.com/digitalinfinity) -
- **Hitesh Kanwathirtha** <> (he/him)
-* [dmabupt](https://github.com/dmabupt) -
- **Xu Meng** <> (he/him)
-* [dnlup](https://github.com/dnlup)
- **dnlup** <>
-* [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) -
- **Robert Jefe Lindstaedt** <>
-* [estliberitas](https://github.com/estliberitas) -
- **Alexander Makarenko** <>
-* [eugeneo](https://github.com/eugeneo) -
- **Eugene Ostroukhov** <>
-* [evanlucas](https://github.com/evanlucas) -
- **Evan Lucas** <> (he/him)
-* [firedfox](https://github.com/firedfox) -
- **Daniel Wang** <>
-* [Fishrock123](https://github.com/Fishrock123) -
- **Jeremiah Senkpiel** <> (he/they)
-* [gdams](https://github.com/gdams) -
- **George Adams** <> (he/him)
-* [geek](https://github.com/geek) -
- **Wyatt Preul** <>
-* [gibfahn](https://github.com/gibfahn) -
- **Gibson Fahnestock** <> (he/him)
-* [glentiki](https://github.com/glentiki) -
- **Glen Keane** <> (he/him)
-* [hashseed](https://github.com/hashseed) -
- **Yang Guo** <> (he/him)
-* [hiroppy](https://github.com/hiroppy) -
- **Yuta Hiroto** <> (he/him)
-* [iarna](https://github.com/iarna) -
- **Rebecca Turner** <>
-* [imran-iq](https://github.com/imran-iq) -
- **Imran Iqbal** <>
-* [imyller](https://github.com/imyller) -
- **Ilkka Myller** <>
-* [indutny](https://github.com/indutny) -
- **Fedor Indutny** <>
-* [isaacs](https://github.com/isaacs) -
- **Isaac Z. Schlueter** <>
-* [italoacasas](https://github.com/italoacasas) -
- **Italo A. Casas** <> (he/him)
-* [jasongin](https://github.com/jasongin) -
- **Jason Ginchereau** <>
-* [jbergstroem](https://github.com/jbergstroem) -
- **Johan Bergström** <>
-* [jdalton](https://github.com/jdalton) -
- **John-David Dalton** <>
-* [jhamhader](https://github.com/jhamhader) -
- **Yuval Brik** <>
-* [joaocgreis](https://github.com/joaocgreis) -
- **João Reis** <>
-* [joshgav](https://github.com/joshgav) -
- **Josh Gavant** <>
-* [julianduque](https://github.com/julianduque) -
- **Julian Duque** <> (he/him)
-* [kfarnung](https://github.com/kfarnung) -
- **Kyle Farnung** <> (he/him)
-* [kunalspathak](https://github.com/kunalspathak) -
- **Kunal Pathak** <>
-* [lance](https://github.com/lance) -
- **Lance Ball** <> (he/him)
-* [lucamaraschi](https://github.com/lucamaraschi) -
- **Luca Maraschi** <> (he/him)
-* [lundibundi](https://github.com/lundibundi) -
- **Denys Otrishko** <> (he/him)
-* [lxe](https://github.com/lxe) -
- **Aleksey Smolenchuk** <>
-* [maclover7](https://github.com/maclover7) -
- **Jon Moss** <> (he/him)
-* [mafintosh](https://github.com/mafintosh) -
- **Mathias Buus** <> (he/him)
-* [matthewloring](https://github.com/matthewloring) -
- **Matthew Loring** <>
-* [micnic](https://github.com/micnic) -
- **Nicu Micleușanu** <> (he/him)
-* [mikeal](https://github.com/mikeal) -
- **Mikeal Rogers** <>
-* [misterdjules](https://github.com/misterdjules) -
- **Julien Gilli** <>
-* [mmarchini](https://github.com/mmarchini) -
- **Mary Marchini** <> (she/her)
-* [monsanto](https://github.com/monsanto) -
- **Christopher Monsanto** <>
-* [MoonBall](https://github.com/MoonBall) -
- **Chen Gang** <>
-* [not-an-aardvark](https://github.com/not-an-aardvark) -
- **Teddy Katz** <> (he/him)
-* [ofrobots](https://github.com/ofrobots) -
- **Ali Ijaz Sheikh** <> (he/him)
-* [Olegas](https://github.com/Olegas) -
- **Oleg Elifantiev** <>
-* [orangemocha](https://github.com/orangemocha) -
- **Alexis Campailla** <>
-* [othiym23](https://github.com/othiym23) -
- **Forrest L Norvell** <> (they/them/themself)
-* [petkaantonov](https://github.com/petkaantonov) -
- **Petka Antonov** <>
-* [phillipj](https://github.com/phillipj) -
- **Phillip Johnsen** <>
-* [piscisaureus](https://github.com/piscisaureus) -
- **Bert Belder** <>
-* [pmq20](https://github.com/pmq20) -
- **Minqi Pan** <>
-* [PoojaDurgad](https://github.com/PoojaDurgad) -
- **Pooja D P** <> (she/her)
-* [princejwesley](https://github.com/princejwesley) -
- **Prince John Wesley** <>
-* [psmarshall](https://github.com/psmarshall) -
- **Peter Marshall** <> (he/him)
-* [puzpuzpuz](https://github.com/puzpuzpuz) -
- **Andrey Pechkurov** <> (he/him)
-* [refack](https://github.com/refack) -
- **Refael Ackermann (רפאל פלחי)** <> (he/him/הוא/אתה)
-* [rexagod](https://github.com/rexagod) -
- **Pranshu Srivastava** <> (he/him)
-* [rlidwka](https://github.com/rlidwka) -
- **Alex Kocharin** <>
-* [rmg](https://github.com/rmg) -
- **Ryan Graham** <>
-* [robertkowalski](https://github.com/robertkowalski) -
- **Robert Kowalski** <>
-* [romankl](https://github.com/romankl) -
- **Roman Klauke** <>
-* [ronkorving](https://github.com/ronkorving) -
- **Ron Korving** <>
-* [RReverser](https://github.com/RReverser) -
- **Ingvar Stepanyan** <>
-* [rubys](https://github.com/rubys) -
- **Sam Ruby** <>
-* [saghul](https://github.com/saghul) -
- **Saúl Ibarra Corretgé** <>
-* [sam-github](https://github.com/sam-github) -
- **Sam Roberts** <>
-* [sebdeckers](https://github.com/sebdeckers) -
- **Sebastiaan Deckers** <>
-* [seishun](https://github.com/seishun) -
- **Nikolai Vavilov** <>
-* [shigeki](https://github.com/shigeki) -
- **Shigeki Ohtsu** <> (he/him)
-* [silverwind](https://github.com/silverwind) -
- **Roman Reiss** <>
-* [starkwang](https://github.com/starkwang) -
- **Weijia Wang** <>
-* [stefanmb](https://github.com/stefanmb) -
- **Stefan Budeanu** <>
-* [tellnes](https://github.com/tellnes) -
- **Christian Tellnes** <>
-* [thefourtheye](https://github.com/thefourtheye) -
- **Sakthipriyan Vairamani** <> (he/him)
-* [thlorenz](https://github.com/thlorenz) -
- **Thorsten Lorenz** <>
-* [trevnorris](https://github.com/trevnorris) -
- **Trevor Norris** <>
-* [tunniclm](https://github.com/tunniclm) -
- **Mike Tunnicliffe** <>
-* [vkurchatkin](https://github.com/vkurchatkin) -
- **Vladimir Kurchatkin** <>
-* [vsemozhetbyt](https://github.com/vsemozhetbyt) -
- **Vse Mozhet Byt** <> (he/him)
-* [watson](https://github.com/watson) -
- **Thomas Watson** <>
-* [whitlockjc](https://github.com/whitlockjc) -
- **Jeremy Whitlock** <>
-* [yhwang](https://github.com/yhwang) -
- **Yihong Wang** <>
-* [yorkie](https://github.com/yorkie) -
- **Yorkie Liu** <>
-* [yosuke-furukawa](https://github.com/yosuke-furukawa) -
- **Yosuke Furukawa** <>
-
-
-
-
-
-Collaborators follow the [Collaborator Guide](./doc/contributing/collaborator-guide.md) in
-maintaining the Node.js project.
-
-### Triagers
-
-* [atlowChemi](https://github.com/atlowChemi) -
- **Chemi Atlow** <> (he/him)
-* [Ayase-252](https://github.com/Ayase-252) -
- **Qingyu Deng** <>
-* [bmuenzenmeyer](https://github.com/bmuenzenmeyer) -
- **Brian Muenzenmeyer** <> (he/him)
-* [daeyeon](https://github.com/daeyeon) -
- **Daeyeon Jeong** <> (he/him)
-* [F3n67u](https://github.com/F3n67u) -
- **Feng Yu** <> (he/him)
-* [himadriganguly](https://github.com/himadriganguly) -
- **Himadri Ganguly** <> (he/him)
-* [iam-frankqiu](https://github.com/iam-frankqiu) -
- **Frank Qiu** <> (he/him)
-* [kvakil](https://github.com/kvakil) -
- **Keyhan Vakil** <> (they/them)
-* [marsonya](https://github.com/marsonya) -
- **Akhil Marsonya** <> (he/him)
-* [meixg](https://github.com/meixg) -
- **Xuguang Mei** <> (he/him)
-* [Mesteery](https://github.com/Mesteery) -
- **Mestery** <> (he/him)
-* [PoojaDurgad](https://github.com/PoojaDurgad) -
- **Pooja Durgad** <>
-* [RaisinTen](https://github.com/RaisinTen) -
- **Darshan Sen** <>
-* [VoltrexKeyva](https://github.com/VoltrexKeyva) -
- **Mohammed Keyvanzadeh** <> (he/him)
-
-Triagers follow the [Triage Guide](./doc/contributing/issues.md#triaging-a-bug-report) when
-responding to new issues.
-
-### Release keys
-
-Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys):
-
-* **Beth Griggs** <>
- `4ED778F539E3634C779C87C6D7062848A1AB005C`
-* **Bryan English** <>
- `141F07595B7B3FFE74309A937405533BE57C7D57`
-* **Danielle Adams** <>
- `74F12602B6F1C4E913FAA37AD3A89613643B6201`
-* **Juan José Arboleda** <>
- `DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7`
-* **Michaël Zasso** <>
- `8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600`
-* **Myles Borins** <>
- `C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8`
-* **RafaelGSS** <>
- `890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4`
-* **Richard Lau** <>
- `C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C`
-* **Ruy Adorno** <>
- `108F52B48DB57BB0CC439B2997B01419BD92F80A`
-
-To import the full set of trusted release keys (including subkeys possibly used
-to sign releases):
-
-```bash
-gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C
-gpg --keyserver hkps://keys.openpgp.org --recv-keys 141F07595B7B3FFE74309A937405533BE57C7D57
-gpg --keyserver hkps://keys.openpgp.org --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201
-gpg --keyserver hkps://keys.openpgp.org --recv-keys DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7
-gpg --keyserver hkps://keys.openpgp.org --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600
-gpg --keyserver hkps://keys.openpgp.org --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8
-gpg --keyserver hkps://keys.openpgp.org --recv-keys 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4
-gpg --keyserver hkps://keys.openpgp.org --recv-keys C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C
-gpg --keyserver hkps://keys.openpgp.org --recv-keys 108F52B48DB57BB0CC439B2997B01419BD92F80A
-```
-
-See [Verifying binaries](#verifying-binaries) for how to use these keys to
-verify a downloaded file.
-
-
-
-Other keys used to sign some previous releases
-
-* **Chris Dickinson** <>
- `9554F04D7259F04124DE6B476D5A82AC7E37093B`
-* **Colin Ihrig** <>
- `94AE36675C464D64BAFA68DD7434390BDBE9B9C5`
-* **Danielle Adams** <>
- `1C050899334244A8AF75E53792EF661D867B9DFA`
-* **Evan Lucas** <>
- `B9AE9905FFD7803F25714661B63B535A4C206CA9`
-* **Gibson Fahnestock** <>
- `77984A986EBC2AA786BC0F66B01FBB92821C587A`
-* **Isaac Z. Schlueter** <>
- `93C7E9E91B49E432C2F75674B0A78B0A6C481CF6`
-* **Italo A. Casas** <>
- `56730D5401028683275BD23C23EFEFE93C4CFFFE`
-* **James M Snell** <>
- `71DCFD284A79C3B38668286BC97EC7A07EDE3FC1`
-* **Jeremiah Senkpiel** <>
- `FD3A5288F042B6850C66B31F09FE44734EB7990E`
-* **Juan José Arboleda** <>
- `61FC681DFB92A079F1685E77973F295594EC4689`
-* **Julien Gilli** <>
- `114F43EE0176B71C7BC219DD50A3051F888C628D`
-* **Rod Vagg** <>
- `DD8F2338BAE7501E3DD5AC78C273792F7D83545D`
-* **Ruben Bridgewater** <>
- `A48C2BEE680E841632CD4E44F07496B3EB3C1762`
-* **Shelley Vohr** <>
- `B9E2F5981AA6E0CD28160D9FF13993A75599653C`
-* **Timothy J Fontaine** <>
- `7937DFD2AB06298B2293C3187D33FF9D0246406D`
-
-
-
-### Security release stewards
-
-When possible, the commitment to take slots in the
-security release steward rotation is made by companies in order
-to ensure individuals who act as security stewards have the
-support and recognition from their employer to be able to
-prioritize security releases. Security release stewards manage security
-releases on a rotation basis as outlined in the
-[security release process](./doc/contributing/security-release-process.md).
-
-* Datadog
- * [bengl](https://github.com/bengl) -
- **Bryan English** <> (he/him)
-* NearForm
- * [RafaelGSS](https://github.com/RafaelGSS) -
- **Rafael Gonzaga** <> (he/him)
-* NodeSource
- * [juanarbol](https://github.com/juanarbol) -
- **Juan José Arboleda** <> (he/him)
-* Platformatic
- * [mcollina](https://github.com/mcollina) -
- **Matteo Collina** <> (he/him)
-* Red Hat and IBM
- * [joesepi](https://github.com/joesepi) -
- **Joe Sepi** <> (he/him)
- * [mhdawson](https://github.com/mhdawson) -
- **Michael Dawson** <> (he/him)
-
-## License
-
-Node.js is available under the
-[MIT license](https://opensource.org/licenses/MIT). Node.js also includes
-external libraries that are available under a variety of licenses. See
-[LICENSE](https://github.com/nodejs/node/blob/HEAD/LICENSE) for the full
-license text.
-
-[Code of Conduct]: https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md
-[Contributing to the project]: CONTRIBUTING.md
-[Node.js website]: https://nodejs.org/
-[OpenJS Foundation]: https://openjsf.org/
-[Strategic initiatives]: doc/contributing/strategic-initiatives.md
-[Technical values and prioritization]: doc/contributing/technical-values.md
-[Working Groups]: https://github.com/nodejs/TSC/blob/HEAD/WORKING_GROUPS.md
diff --git a/~/.nvm/versions/node/v20.3.1/bin/corepack b/~/.nvm/versions/node/v20.3.1/bin/corepack
deleted file mode 120000
index e7ac3654..00000000
--- a/~/.nvm/versions/node/v20.3.1/bin/corepack
+++ /dev/null
@@ -1 +0,0 @@
-../lib/node_modules/corepack/dist/corepack.js
\ No newline at end of file
diff --git a/~/.nvm/versions/node/v20.3.1/bin/node b/~/.nvm/versions/node/v20.3.1/bin/node
deleted file mode 100755
index a1ea60c4..00000000
Binary files a/~/.nvm/versions/node/v20.3.1/bin/node and /dev/null differ
diff --git a/~/.nvm/versions/node/v20.3.1/bin/npm b/~/.nvm/versions/node/v20.3.1/bin/npm
deleted file mode 120000
index 3c8e2996..00000000
--- a/~/.nvm/versions/node/v20.3.1/bin/npm
+++ /dev/null
@@ -1 +0,0 @@
-../lib/node_modules/npm/bin/npm-cli.js
\ No newline at end of file
diff --git a/~/.nvm/versions/node/v20.3.1/bin/npx b/~/.nvm/versions/node/v20.3.1/bin/npx
deleted file mode 120000
index d224c292..00000000
--- a/~/.nvm/versions/node/v20.3.1/bin/npx
+++ /dev/null
@@ -1 +0,0 @@
-../lib/node_modules/npm/bin/npx-cli.js
\ No newline at end of file
diff --git a/~/.nvm/versions/node/v20.3.1/include/node/common.gypi b/~/.nvm/versions/node/v20.3.1/include/node/common.gypi
deleted file mode 100644
index 3161adbe..00000000
--- a/~/.nvm/versions/node/v20.3.1/include/node/common.gypi
+++ /dev/null
@@ -1,622 +0,0 @@
-{
- 'variables': {
- 'configuring_node%': 0,
- 'asan%': 0,
- 'werror': '', # Turn off -Werror in V8 build.
- 'visibility%': 'hidden', # V8's visibility setting
- 'target_arch%': 'ia32', # set v8's target architecture
- 'host_arch%': 'ia32', # set v8's host architecture
- 'want_separate_host_toolset%': 0, # V8 should not build target and host
- 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds
- 'component%': 'static_library', # NB. these names match with what V8 expects
- 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way
- 'enable_pgo_generate%': '0',
- 'enable_pgo_use%': '0',
- 'python%': 'python',
-
- 'node_shared%': 'false',
- 'force_dynamic_crt%': 0,
- 'node_use_v8_platform%': 'true',
- 'node_use_bundled_v8%': 'true',
- 'node_module_version%': '',
- 'node_with_ltcg%': '',
- 'node_shared_openssl%': 'false',
-
- 'node_tag%': '',
- 'uv_library%': 'static_library',
-
- 'clang%': 0,
- 'error_on_warn%': 'false',
-
- 'openssl_product': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)',
- 'openssl_no_asm%': 0,
-
- # Don't use ICU data file (icudtl.dat) from V8, we use our own.
- 'icu_use_data_file_flag%': 0,
-
- # Reset this number to 0 on major V8 upgrades.
- # Increment by one for each non-official patch applied to deps/v8.
- 'v8_embedder_string': '-node.9',
-
- ##### V8 defaults for Node.js #####
-
- # Turn on SipHash for hash seed generation, addresses HashWick
- 'v8_use_siphash': 'true',
-
- # These are more relevant for V8 internal development.
- # Refs: https://github.com/nodejs/node/issues/23122
- # Refs: https://github.com/nodejs/node/issues/23167
- # Enable compiler warnings when using V8_DEPRECATED apis from V8 code.
- 'v8_deprecation_warnings': 0,
- # Enable compiler warnings when using V8_DEPRECATE_SOON apis from V8 code.
- 'v8_imminent_deprecation_warnings': 0,
-
- # Enable disassembler for `--print-code` v8 options
- 'v8_enable_disassembler': 1,
-
- # Sets -dOBJECT_PRINT.
- 'v8_enable_object_print%': 1,
-
- # https://github.com/nodejs/node/pull/22920/files#r222779926
- 'v8_enable_handle_zapping': 0,
-
- # Disable pointer compression. Can be enabled at build time via configure
- # options but default values are required here as this file is also used by
- # node-gyp to build addons.
- 'v8_enable_pointer_compression%': 0,
- 'v8_enable_31bit_smis_on_64bit_arch%': 0,
-
- # Disable v8 hugepage by default.
- 'v8_enable_hugepage%': 0,
-
- # This is more of a V8 dev setting
- # https://github.com/nodejs/node/pull/22920/files#r222779926
- 'v8_enable_fast_mksnapshot': 0,
-
- 'v8_win64_unwinding_info': 1,
-
- # TODO(refack): make v8-perfetto happen
- 'v8_use_perfetto': 0,
-
- ##### end V8 defaults #####
-
- 'conditions': [
- ['OS == "win"', {
- 'os_posix': 0,
- 'v8_postmortem_support%': 0,
- 'obj_dir': '<(PRODUCT_DIR)/obj',
- 'v8_base': '<(PRODUCT_DIR)/lib/libv8_snapshot.a',
- }, {
- 'os_posix': 1,
- 'v8_postmortem_support%': 1,
- }],
- ['GENERATOR == "ninja"', {
- 'obj_dir': '<(PRODUCT_DIR)/obj',
- 'v8_base': '<(PRODUCT_DIR)/obj/tools/v8_gypfiles/libv8_snapshot.a',
- }, {
- 'obj_dir%': '<(PRODUCT_DIR)/obj.target',
- 'v8_base': '<(PRODUCT_DIR)/obj.target/tools/v8_gypfiles/libv8_snapshot.a',
- }],
- ['OS=="mac"', {
- 'clang%': 1,
- 'obj_dir%': '<(PRODUCT_DIR)/obj.target',
- 'v8_base': '<(PRODUCT_DIR)/libv8_snapshot.a',
- }],
- # V8 pointer compression only supports 64bit architectures.
- ['target_arch in "arm ia32 mips mipsel ppc"', {
- 'v8_enable_pointer_compression': 0,
- 'v8_enable_31bit_smis_on_64bit_arch': 0,
- }],
- ['target_arch in "ppc64 s390x"', {
- 'v8_enable_backtrace': 1,
- }],
- ['OS=="linux"', {
- 'node_section_ordering_info%': ''
- }],
- ['OS == "zos"', {
- # use ICU data file on z/OS
- 'icu_use_data_file_flag%': 1
- }]
- ],
- },
-
- 'target_defaults': {
- 'default_configuration': 'Release',
- 'configurations': {
- 'Debug': {
- 'variables': {
- 'v8_enable_handle_zapping': 1,
- 'conditions': [
- ['node_shared != "true"', {
- 'MSVC_runtimeType': 1, # MultiThreadedDebug (/MTd)
- }, {
- 'MSVC_runtimeType': 3, # MultiThreadedDebugDLL (/MDd)
- }],
- ],
- },
- 'defines': [ 'DEBUG', '_DEBUG', 'V8_ENABLE_CHECKS' ],
- 'cflags': [ '-g', '-O0' ],
- 'conditions': [
- ['OS in "aix os400"', {
- 'cflags': [ '-gxcoff' ],
- 'ldflags': [ '-Wl,-bbigtoc' ],
- }],
- ['OS == "android"', {
- 'cflags': [ '-fPIC' ],
- 'ldflags': [ '-fPIC' ]
- }],
- ],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'BasicRuntimeChecks': 3, # /RTC1
- 'MinimalRebuild': 'false',
- 'OmitFramePointers': 'false',
- 'Optimization': 0, # /Od, no optimization
- 'RuntimeLibrary': '<(MSVC_runtimeType)',
- },
- 'VCLinkerTool': {
- 'LinkIncremental': 2, # enable incremental linking
- },
- },
- 'xcode_settings': {
- 'GCC_OPTIMIZATION_LEVEL': '0', # stop gyp from defaulting to -Os
- },
- },
- 'Release': {
- 'variables': {
- 'v8_enable_handle_zapping': 0,
- 'pgo_generate': ' -fprofile-generate ',
- 'pgo_use': ' -fprofile-use -fprofile-correction ',
- 'conditions': [
- ['node_shared != "true"', {
- 'MSVC_runtimeType': 0 # MultiThreaded (/MT)
- }, {
- 'MSVC_runtimeType': 2 # MultiThreadedDLL (/MD)
- }],
- ['llvm_version=="0.0"', {
- 'lto': ' -flto=4 -fuse-linker-plugin -ffat-lto-objects ', # GCC
- }, {
- 'lto': ' -flto ', # Clang
- }],
- ],
- },
- 'cflags': [ '-O3' ],
- 'conditions': [
- ['enable_lto=="true"', {
- 'cflags': ['<(lto)'],
- 'ldflags': ['<(lto)'],
- 'xcode_settings': {
- 'LLVM_LTO': 'YES',
- },
- }],
- ['OS=="linux"', {
- 'conditions': [
- ['node_section_ordering_info!=""', {
- 'cflags': [
- '-fuse-ld=gold',
- '-ffunction-sections',
- ],
- 'ldflags': [
- '-fuse-ld=gold',
- '-Wl,--section-ordering-file=<(node_section_ordering_info)',
- ],
- }],
- ],
- }],
- ['OS=="solaris"', {
- # pull in V8's postmortem metadata
- 'ldflags': [ '-Wl,-z,allextract' ]
- }],
- ['OS=="zos"', {
- # increase performance, number from experimentation
- 'cflags': [ '-qINLINE=::150:100000' ]
- }],
- ['OS!="mac" and OS!="win" and OS!="zos"', {
- # -fno-omit-frame-pointer is necessary for the --perf_basic_prof
- # flag to work correctly. perf(1) gets confused about JS stack
- # frames otherwise, even with --call-graph dwarf.
- 'cflags': [ '-fno-omit-frame-pointer' ],
- }],
- ['OS=="linux"', {
- 'conditions': [
- ['enable_pgo_generate=="true"', {
- 'cflags': ['<(pgo_generate)'],
- 'ldflags': ['<(pgo_generate)'],
- },],
- ['enable_pgo_use=="true"', {
- 'cflags': ['<(pgo_use)'],
- 'ldflags': ['<(pgo_use)'],
- },],
- ],
- },],
- ['OS == "android"', {
- 'cflags': [ '-fPIC' ],
- 'ldflags': [ '-fPIC' ]
- }],
- ],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'conditions': [
- ['target_arch=="arm64"', {
- 'FloatingPointModel': 1 # /fp:strict
- }]
- ],
- 'EnableFunctionLevelLinking': 'true',
- 'EnableIntrinsicFunctions': 'true',
- 'FavorSizeOrSpeed': 1, # /Ot, favor speed over size
- 'InlineFunctionExpansion': 2, # /Ob2, inline anything eligible
- 'OmitFramePointers': 'true',
- 'Optimization': 3, # /Ox, full optimization
- 'RuntimeLibrary': '<(MSVC_runtimeType)',
- 'RuntimeTypeInfo': 'false',
- }
- },
- 'xcode_settings': {
- 'GCC_OPTIMIZATION_LEVEL': '3', # stop gyp from defaulting to -Os
- },
- }
- },
-
- # Defines these mostly for node-gyp to pickup, and warn addon authors of
- # imminent V8 deprecations, also to sync how dependencies are configured.
- 'defines': [
- 'V8_DEPRECATION_WARNINGS',
- 'V8_IMMINENT_DEPRECATION_WARNINGS',
- '_GLIBCXX_USE_CXX11_ABI=1',
- ],
-
- # Forcibly disable -Werror. We support a wide range of compilers, it's
- # simply not feasible to squelch all warnings, never mind that the
- # libraries in deps/ are not under our control.
- 'conditions': [
- [ 'error_on_warn=="false"', {
- 'cflags!': ['-Werror'],
- }, '(_target_name!="<(node_lib_target_name)" or '
- '_target_name!="<(node_core_target_name)")', {
- 'cflags!': ['-Werror'],
- }],
- ],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'AdditionalOptions': [
- '/Zc:__cplusplus',
- '-std:c++17'
- ],
- 'BufferSecurityCheck': 'true',
- 'DebugInformationFormat': 1, # /Z7 embed info in .obj files
- 'ExceptionHandling': 0, # /EHsc
- 'MultiProcessorCompilation': 'true',
- 'StringPooling': 'true', # pool string literals
- 'SuppressStartupBanner': 'true',
- 'WarnAsError': 'false',
- 'WarningLevel': 3, # /W3
- },
- 'VCLinkerTool': {
- 'target_conditions': [
- ['_type=="executable"', {
- 'SubSystem': 1, # /SUBSYSTEM:CONSOLE
- }],
- ],
- 'conditions': [
- ['target_arch=="ia32"', {
- 'TargetMachine' : 1, # /MACHINE:X86
- }],
- ['target_arch=="x64"', {
- 'TargetMachine' : 17, # /MACHINE:X64
- }],
- ['target_arch=="arm64"', {
- 'TargetMachine' : 0, # NotSet. MACHINE:ARM64 is inferred from the input files.
- }],
- ],
- 'GenerateDebugInformation': 'true',
- 'SuppressStartupBanner': 'true',
- },
- },
- # Disable warnings:
- # - "C4251: class needs to have dll-interface"
- # - "C4275: non-DLL-interface used as base for DLL-interface"
- # Over 10k of these warnings are generated when compiling node,
- # originating from v8.h. Most of them are false positives.
- # See also: https://github.com/nodejs/node/pull/15570
- # TODO: re-enable when Visual Studio fixes these upstream.
- #
- # - "C4267: conversion from 'size_t' to 'int'"
- # Many any originate from our dependencies, and their sheer number
- # drowns out other, more legitimate warnings.
- # - "C4244: conversion from 'type1' to 'type2', possible loss of data"
- # Ususaly safe. Disable for `dep`, enable for `src`
- 'msvs_disabled_warnings': [4351, 4355, 4800, 4251, 4275, 4244, 4267],
- 'msvs_cygwin_shell': 0, # prevent actions from trying to use cygwin
-
- 'conditions': [
- [ 'configuring_node', {
- 'msvs_configuration_attributes': {
- 'OutputDirectory': '<(DEPTH)/out/$(Configuration)/',
- 'IntermediateDirectory': '$(OutDir)obj/$(ProjectName)/'
- },
- }],
- [ 'target_arch=="x64"', {
- 'msvs_configuration_platform': 'x64',
- }],
- [ 'target_arch=="arm64"', {
- 'msvs_configuration_platform': 'arm64',
- }],
- ['asan == 1 and OS != "mac" and OS != "zos"', {
- 'cflags+': [
- '-fno-omit-frame-pointer',
- '-fsanitize=address',
- '-fsanitize-address-use-after-scope',
- ],
- 'defines': [ 'LEAK_SANITIZER', 'V8_USE_ADDRESS_SANITIZER' ],
- 'cflags!': [ '-fomit-frame-pointer' ],
- 'ldflags': [ '-fsanitize=address' ],
- }],
- ['asan == 1 and OS == "mac"', {
- 'xcode_settings': {
- 'OTHER_CFLAGS+': [
- '-fno-omit-frame-pointer',
- '-gline-tables-only',
- '-fsanitize=address',
- '-DLEAK_SANITIZER'
- ],
- 'OTHER_CFLAGS!': [
- '-fomit-frame-pointer',
- ],
- },
- 'target_conditions': [
- ['_type!="static_library"', {
- 'xcode_settings': {'OTHER_LDFLAGS': ['-fsanitize=address']},
- }],
- ],
- }],
- ['v8_enable_pointer_compression == 1', {
- 'defines': [
- 'V8_COMPRESS_POINTERS',
- 'V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE',
- ],
- }],
- ['v8_enable_pointer_compression == 1 or v8_enable_31bit_smis_on_64bit_arch == 1', {
- 'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH'],
- }],
- ['OS == "win"', {
- 'defines': [
- 'WIN32',
- # we don't really want VC++ warning us about
- # how dangerous C functions are...
- '_CRT_SECURE_NO_DEPRECATE',
- # ... or that C implementations shouldn't use
- # POSIX names
- '_CRT_NONSTDC_NO_DEPRECATE',
- # Make sure the STL doesn't try to use exceptions
- '_HAS_EXCEPTIONS=0',
- 'BUILDING_V8_SHARED=1',
- 'BUILDING_UV_SHARED=1',
- ],
- }],
- [ 'OS in "linux freebsd openbsd solaris aix os400"', {
- 'cflags': [ '-pthread' ],
- 'ldflags': [ '-pthread' ],
- }],
- [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi"', {
- 'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
- 'cflags_cc': [ '-fno-rtti', '-fno-exceptions', '-std=gnu++17' ],
- 'defines': [ '__STDC_FORMAT_MACROS' ],
- 'ldflags': [ '-rdynamic' ],
- 'target_conditions': [
- # The 1990s toolchain on SmartOS can't handle thin archives.
- ['_type=="static_library" and OS=="solaris"', {
- 'standalone_static_library': 1,
- }],
- ['OS=="openbsd"', {
- 'cflags': [ '-I/usr/local/include' ],
- 'ldflags': [ '-Wl,-z,wxneeded' ],
- }],
- ],
- 'conditions': [
- [ 'target_arch=="ia32"', {
- 'cflags': [ '-m32' ],
- 'ldflags': [ '-m32' ],
- }],
- [ 'target_arch=="x64"', {
- 'cflags': [ '-m64' ],
- 'ldflags': [ '-m64' ],
- }],
- [ 'target_arch=="ppc" and OS not in "aix os400"', {
- 'cflags': [ '-m32' ],
- 'ldflags': [ '-m32' ],
- }],
- [ 'target_arch=="ppc64" and OS not in "aix os400"', {
- 'cflags': [ '-m64', '-mminimal-toc' ],
- 'ldflags': [ '-m64' ],
- }],
- [ 'target_arch=="s390x" and OS=="linux"', {
- 'cflags': [ '-m64', '-march=z196' ],
- 'ldflags': [ '-m64', '-march=z196' ],
- }],
- [ 'OS=="solaris"', {
- 'cflags': [ '-pthreads' ],
- 'ldflags': [ '-pthreads' ],
- 'cflags!': [ '-pthread' ],
- 'ldflags!': [ '-pthread' ],
- }],
- [ 'node_shared=="true"', {
- 'cflags': [ '-fPIC' ],
- }],
- ],
- }],
- [ 'OS in "aix os400"', {
- 'variables': {
- # Used to differentiate `AIX` and `OS400`(IBM i).
- 'aix_variant_name': ' // NOLINT(modernize-deprecated-headers)
-#include // NOLINT(modernize-deprecated-headers)
-
-// Use INT_MAX, this should only be consumed by the pre-processor anyway.
-#define NAPI_VERSION_EXPERIMENTAL 2147483647
-#ifndef NAPI_VERSION
-#ifdef NAPI_EXPERIMENTAL
-#define NAPI_VERSION NAPI_VERSION_EXPERIMENTAL
-#else
-// The baseline version for N-API.
-// The NAPI_VERSION controls which version will be used by default when
-// compilling a native addon. If the addon developer specifically wants to use
-// functions available in a new version of N-API that is not yet ported in all
-// LTS versions, they can set NAPI_VERSION knowing that they have specifically
-// depended on that version.
-#define NAPI_VERSION 8
-#endif
-#endif
-
-#include "js_native_api_types.h"
-
-// If you need __declspec(dllimport), either include instead, or
-// define NAPI_EXTERN as __declspec(dllimport) on the compiler's command line.
-#ifndef NAPI_EXTERN
-#ifdef _WIN32
-#define NAPI_EXTERN __declspec(dllexport)
-#elif defined(__wasm32__)
-#define NAPI_EXTERN \
- __attribute__((visibility("default"))) \
- __attribute__((__import_module__("napi")))
-#else
-#define NAPI_EXTERN __attribute__((visibility("default")))
-#endif
-#endif
-
-#define NAPI_AUTO_LENGTH SIZE_MAX
-
-#ifdef __cplusplus
-#define EXTERN_C_START extern "C" {
-#define EXTERN_C_END }
-#else
-#define EXTERN_C_START
-#define EXTERN_C_END
-#endif
-
-EXTERN_C_START
-
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_get_last_error_info(napi_env env, const napi_extended_error_info** result);
-
-// Getters for defined singletons
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_undefined(napi_env env,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_null(napi_env env,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_global(napi_env env,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_boolean(napi_env env,
- bool value,
- napi_value* result);
-
-// Methods to create Primitive types/Objects
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_object(napi_env env,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_array(napi_env env,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_create_array_with_length(napi_env env, size_t length, napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_double(napi_env env,
- double value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_int32(napi_env env,
- int32_t value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_uint32(napi_env env,
- uint32_t value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_int64(napi_env env,
- int64_t value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_latin1(
- napi_env env, const char* str, size_t length, napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_utf8(napi_env env,
- const char* str,
- size_t length,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_string_utf16(napi_env env,
- const char16_t* str,
- size_t length,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_symbol(napi_env env,
- napi_value description,
- napi_value* result);
-#if NAPI_VERSION >= 9
-NAPI_EXTERN napi_status NAPI_CDECL
-node_api_symbol_for(napi_env env,
- const char* utf8description,
- size_t length,
- napi_value* result);
-#endif // NAPI_VERSION >= 9
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_function(napi_env env,
- const char* utf8name,
- size_t length,
- napi_callback cb,
- void* data,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_error(napi_env env,
- napi_value code,
- napi_value msg,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_type_error(napi_env env,
- napi_value code,
- napi_value msg,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_range_error(napi_env env,
- napi_value code,
- napi_value msg,
- napi_value* result);
-#if NAPI_VERSION >= 9
-NAPI_EXTERN napi_status NAPI_CDECL node_api_create_syntax_error(
- napi_env env, napi_value code, napi_value msg, napi_value* result);
-#endif // NAPI_VERSION >= 9
-
-// Methods to get the native napi_value from Primitive type
-NAPI_EXTERN napi_status NAPI_CDECL napi_typeof(napi_env env,
- napi_value value,
- napi_valuetype* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_double(napi_env env,
- napi_value value,
- double* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_int32(napi_env env,
- napi_value value,
- int32_t* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_uint32(napi_env env,
- napi_value value,
- uint32_t* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_int64(napi_env env,
- napi_value value,
- int64_t* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_bool(napi_env env,
- napi_value value,
- bool* result);
-
-// Copies LATIN-1 encoded bytes from a string into a buffer.
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_string_latin1(
- napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result);
-
-// Copies UTF-8 encoded bytes from a string into a buffer.
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_string_utf8(
- napi_env env, napi_value value, char* buf, size_t bufsize, size_t* result);
-
-// Copies UTF-16 encoded bytes from a string into a buffer.
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_string_utf16(napi_env env,
- napi_value value,
- char16_t* buf,
- size_t bufsize,
- size_t* result);
-
-// Methods to coerce values
-// These APIs may execute user scripts
-NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_bool(napi_env env,
- napi_value value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_number(napi_env env,
- napi_value value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_object(napi_env env,
- napi_value value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_coerce_to_string(napi_env env,
- napi_value value,
- napi_value* result);
-
-// Methods to work with Objects
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_prototype(napi_env env,
- napi_value object,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_property_names(napi_env env,
- napi_value object,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_set_property(napi_env env,
- napi_value object,
- napi_value key,
- napi_value value);
-NAPI_EXTERN napi_status NAPI_CDECL napi_has_property(napi_env env,
- napi_value object,
- napi_value key,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_property(napi_env env,
- napi_value object,
- napi_value key,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_delete_property(napi_env env,
- napi_value object,
- napi_value key,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_has_own_property(napi_env env,
- napi_value object,
- napi_value key,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_set_named_property(napi_env env,
- napi_value object,
- const char* utf8name,
- napi_value value);
-NAPI_EXTERN napi_status NAPI_CDECL napi_has_named_property(napi_env env,
- napi_value object,
- const char* utf8name,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_named_property(napi_env env,
- napi_value object,
- const char* utf8name,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_set_element(napi_env env,
- napi_value object,
- uint32_t index,
- napi_value value);
-NAPI_EXTERN napi_status NAPI_CDECL napi_has_element(napi_env env,
- napi_value object,
- uint32_t index,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_element(napi_env env,
- napi_value object,
- uint32_t index,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_delete_element(napi_env env,
- napi_value object,
- uint32_t index,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_define_properties(napi_env env,
- napi_value object,
- size_t property_count,
- const napi_property_descriptor* properties);
-
-// Methods to work with Arrays
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_array(napi_env env,
- napi_value value,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_array_length(napi_env env,
- napi_value value,
- uint32_t* result);
-
-// Methods to compare values
-NAPI_EXTERN napi_status NAPI_CDECL napi_strict_equals(napi_env env,
- napi_value lhs,
- napi_value rhs,
- bool* result);
-
-// Methods to work with Functions
-NAPI_EXTERN napi_status NAPI_CDECL napi_call_function(napi_env env,
- napi_value recv,
- napi_value func,
- size_t argc,
- const napi_value* argv,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_new_instance(napi_env env,
- napi_value constructor,
- size_t argc,
- const napi_value* argv,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_instanceof(napi_env env,
- napi_value object,
- napi_value constructor,
- bool* result);
-
-// Methods to work with napi_callbacks
-
-// Gets all callback info in a single call. (Ugly, but faster.)
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_cb_info(
- napi_env env, // [in] NAPI environment handle
- napi_callback_info cbinfo, // [in] Opaque callback-info handle
- size_t* argc, // [in-out] Specifies the size of the provided argv array
- // and receives the actual count of args.
- napi_value* argv, // [out] Array of values
- napi_value* this_arg, // [out] Receives the JS 'this' arg for the call
- void** data); // [out] Receives the data pointer for the callback.
-
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_new_target(
- napi_env env, napi_callback_info cbinfo, napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_define_class(napi_env env,
- const char* utf8name,
- size_t length,
- napi_callback constructor,
- void* data,
- size_t property_count,
- const napi_property_descriptor* properties,
- napi_value* result);
-
-// Methods to work with external data objects
-NAPI_EXTERN napi_status NAPI_CDECL napi_wrap(napi_env env,
- napi_value js_object,
- void* native_object,
- napi_finalize finalize_cb,
- void* finalize_hint,
- napi_ref* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_unwrap(napi_env env,
- napi_value js_object,
- void** result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_remove_wrap(napi_env env,
- napi_value js_object,
- void** result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_create_external(napi_env env,
- void* data,
- napi_finalize finalize_cb,
- void* finalize_hint,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_external(napi_env env,
- napi_value value,
- void** result);
-
-// Methods to control object lifespan
-
-// Set initial_refcount to 0 for a weak reference, >0 for a strong reference.
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_create_reference(napi_env env,
- napi_value value,
- uint32_t initial_refcount,
- napi_ref* result);
-
-// Deletes a reference. The referenced value is released, and may
-// be GC'd unless there are other references to it.
-NAPI_EXTERN napi_status NAPI_CDECL napi_delete_reference(napi_env env,
- napi_ref ref);
-
-// Increments the reference count, optionally returning the resulting count.
-// After this call the reference will be a strong reference because its
-// refcount is >0, and the referenced object is effectively "pinned".
-// Calling this when the refcount is 0 and the object is unavailable
-// results in an error.
-NAPI_EXTERN napi_status NAPI_CDECL napi_reference_ref(napi_env env,
- napi_ref ref,
- uint32_t* result);
-
-// Decrements the reference count, optionally returning the resulting count.
-// If the result is 0 the reference is now weak and the object may be GC'd
-// at any time if there are no other references. Calling this when the
-// refcount is already 0 results in an error.
-NAPI_EXTERN napi_status NAPI_CDECL napi_reference_unref(napi_env env,
- napi_ref ref,
- uint32_t* result);
-
-// Attempts to get a referenced value. If the reference is weak,
-// the value might no longer be available, in that case the call
-// is still successful but the result is NULL.
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_reference_value(napi_env env,
- napi_ref ref,
- napi_value* result);
-
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_open_handle_scope(napi_env env, napi_handle_scope* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_close_handle_scope(napi_env env, napi_handle_scope scope);
-NAPI_EXTERN napi_status NAPI_CDECL napi_open_escapable_handle_scope(
- napi_env env, napi_escapable_handle_scope* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_close_escapable_handle_scope(
- napi_env env, napi_escapable_handle_scope scope);
-
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_escape_handle(napi_env env,
- napi_escapable_handle_scope scope,
- napi_value escapee,
- napi_value* result);
-
-// Methods to support error handling
-NAPI_EXTERN napi_status NAPI_CDECL napi_throw(napi_env env, napi_value error);
-NAPI_EXTERN napi_status NAPI_CDECL napi_throw_error(napi_env env,
- const char* code,
- const char* msg);
-NAPI_EXTERN napi_status NAPI_CDECL napi_throw_type_error(napi_env env,
- const char* code,
- const char* msg);
-NAPI_EXTERN napi_status NAPI_CDECL napi_throw_range_error(napi_env env,
- const char* code,
- const char* msg);
-#if NAPI_VERSION >= 9
-NAPI_EXTERN napi_status NAPI_CDECL node_api_throw_syntax_error(napi_env env,
- const char* code,
- const char* msg);
-#endif // NAPI_VERSION >= 9
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_error(napi_env env,
- napi_value value,
- bool* result);
-
-// Methods to support catching exceptions
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_exception_pending(napi_env env,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_get_and_clear_last_exception(napi_env env, napi_value* result);
-
-// Methods to work with array buffers and typed arrays
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_arraybuffer(napi_env env,
- napi_value value,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_arraybuffer(napi_env env,
- size_t byte_length,
- void** data,
- napi_value* result);
-#ifndef NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_create_external_arraybuffer(napi_env env,
- void* external_data,
- size_t byte_length,
- napi_finalize finalize_cb,
- void* finalize_hint,
- napi_value* result);
-#endif // NODE_API_NO_EXTERNAL_BUFFERS_ALLOWED
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_arraybuffer_info(
- napi_env env, napi_value arraybuffer, void** data, size_t* byte_length);
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_typedarray(napi_env env,
- napi_value value,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_create_typedarray(napi_env env,
- napi_typedarray_type type,
- size_t length,
- napi_value arraybuffer,
- size_t byte_offset,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_get_typedarray_info(napi_env env,
- napi_value typedarray,
- napi_typedarray_type* type,
- size_t* length,
- void** data,
- napi_value* arraybuffer,
- size_t* byte_offset);
-
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_dataview(napi_env env,
- size_t length,
- napi_value arraybuffer,
- size_t byte_offset,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_dataview(napi_env env,
- napi_value value,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_get_dataview_info(napi_env env,
- napi_value dataview,
- size_t* bytelength,
- void** data,
- napi_value* arraybuffer,
- size_t* byte_offset);
-
-// version management
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_version(napi_env env,
- uint32_t* result);
-
-// Promises
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_promise(napi_env env,
- napi_deferred* deferred,
- napi_value* promise);
-NAPI_EXTERN napi_status NAPI_CDECL napi_resolve_deferred(napi_env env,
- napi_deferred deferred,
- napi_value resolution);
-NAPI_EXTERN napi_status NAPI_CDECL napi_reject_deferred(napi_env env,
- napi_deferred deferred,
- napi_value rejection);
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_promise(napi_env env,
- napi_value value,
- bool* is_promise);
-
-// Running a script
-NAPI_EXTERN napi_status NAPI_CDECL napi_run_script(napi_env env,
- napi_value script,
- napi_value* result);
-
-// Memory management
-NAPI_EXTERN napi_status NAPI_CDECL napi_adjust_external_memory(
- napi_env env, int64_t change_in_bytes, int64_t* adjusted_value);
-
-#if NAPI_VERSION >= 5
-
-// Dates
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_date(napi_env env,
- double time,
- napi_value* result);
-
-NAPI_EXTERN napi_status NAPI_CDECL napi_is_date(napi_env env,
- napi_value value,
- bool* is_date);
-
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_date_value(napi_env env,
- napi_value value,
- double* result);
-
-// Add finalizer for pointer
-NAPI_EXTERN napi_status NAPI_CDECL napi_add_finalizer(napi_env env,
- napi_value js_object,
- void* finalize_data,
- napi_finalize finalize_cb,
- void* finalize_hint,
- napi_ref* result);
-
-#endif // NAPI_VERSION >= 5
-
-#if NAPI_VERSION >= 6
-
-// BigInt
-NAPI_EXTERN napi_status NAPI_CDECL napi_create_bigint_int64(napi_env env,
- int64_t value,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_create_bigint_uint64(napi_env env, uint64_t value, napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_create_bigint_words(napi_env env,
- int sign_bit,
- size_t word_count,
- const uint64_t* words,
- napi_value* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_bigint_int64(napi_env env,
- napi_value value,
- int64_t* result,
- bool* lossless);
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_value_bigint_uint64(
- napi_env env, napi_value value, uint64_t* result, bool* lossless);
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_get_value_bigint_words(napi_env env,
- napi_value value,
- int* sign_bit,
- size_t* word_count,
- uint64_t* words);
-
-// Object
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_get_all_property_names(napi_env env,
- napi_value object,
- napi_key_collection_mode key_mode,
- napi_key_filter key_filter,
- napi_key_conversion key_conversion,
- napi_value* result);
-
-// Instance data
-NAPI_EXTERN napi_status NAPI_CDECL napi_set_instance_data(
- napi_env env, void* data, napi_finalize finalize_cb, void* finalize_hint);
-
-NAPI_EXTERN napi_status NAPI_CDECL napi_get_instance_data(napi_env env,
- void** data);
-#endif // NAPI_VERSION >= 6
-
-#if NAPI_VERSION >= 7
-// ArrayBuffer detaching
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_detach_arraybuffer(napi_env env, napi_value arraybuffer);
-
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_is_detached_arraybuffer(napi_env env, napi_value value, bool* result);
-#endif // NAPI_VERSION >= 7
-
-#if NAPI_VERSION >= 8
-// Type tagging
-NAPI_EXTERN napi_status NAPI_CDECL napi_type_tag_object(
- napi_env env, napi_value value, const napi_type_tag* type_tag);
-
-NAPI_EXTERN napi_status NAPI_CDECL
-napi_check_object_type_tag(napi_env env,
- napi_value value,
- const napi_type_tag* type_tag,
- bool* result);
-NAPI_EXTERN napi_status NAPI_CDECL napi_object_freeze(napi_env env,
- napi_value object);
-NAPI_EXTERN napi_status NAPI_CDECL napi_object_seal(napi_env env,
- napi_value object);
-#endif // NAPI_VERSION >= 8
-
-EXTERN_C_END
-
-#endif // SRC_JS_NATIVE_API_H_
diff --git a/~/.nvm/versions/node/v20.3.1/include/node/js_native_api_types.h b/~/.nvm/versions/node/v20.3.1/include/node/js_native_api_types.h
deleted file mode 100644
index 005382f1..00000000
--- a/~/.nvm/versions/node/v20.3.1/include/node/js_native_api_types.h
+++ /dev/null
@@ -1,168 +0,0 @@
-#ifndef SRC_JS_NATIVE_API_TYPES_H_
-#define SRC_JS_NATIVE_API_TYPES_H_
-
-// This file needs to be compatible with C compilers.
-// This is a public include file, and these includes have essentially
-// became part of it's API.
-#include // NOLINT(modernize-deprecated-headers)
-#include // NOLINT(modernize-deprecated-headers)
-
-#if !defined __cplusplus || (defined(_MSC_VER) && _MSC_VER < 1900)
-typedef uint16_t char16_t;
-#endif
-
-#ifndef NAPI_CDECL
-#ifdef _WIN32
-#define NAPI_CDECL __cdecl
-#else
-#define NAPI_CDECL
-#endif
-#endif
-
-// JSVM API types are all opaque pointers for ABI stability
-// typedef undefined structs instead of void* for compile time type safety
-typedef struct napi_env__* napi_env;
-typedef struct napi_value__* napi_value;
-typedef struct napi_ref__* napi_ref;
-typedef struct napi_handle_scope__* napi_handle_scope;
-typedef struct napi_escapable_handle_scope__* napi_escapable_handle_scope;
-typedef struct napi_callback_info__* napi_callback_info;
-typedef struct napi_deferred__* napi_deferred;
-
-typedef enum {
- napi_default = 0,
- napi_writable = 1 << 0,
- napi_enumerable = 1 << 1,
- napi_configurable = 1 << 2,
-
- // Used with napi_define_class to distinguish static properties
- // from instance properties. Ignored by napi_define_properties.
- napi_static = 1 << 10,
-
-#if NAPI_VERSION >= 8
- // Default for class methods.
- napi_default_method = napi_writable | napi_configurable,
-
- // Default for object properties, like in JS obj[prop].
- napi_default_jsproperty = napi_writable | napi_enumerable | napi_configurable,
-#endif // NAPI_VERSION >= 8
-} napi_property_attributes;
-
-typedef enum {
- // ES6 types (corresponds to typeof)
- napi_undefined,
- napi_null,
- napi_boolean,
- napi_number,
- napi_string,
- napi_symbol,
- napi_object,
- napi_function,
- napi_external,
- napi_bigint,
-} napi_valuetype;
-
-typedef enum {
- napi_int8_array,
- napi_uint8_array,
- napi_uint8_clamped_array,
- napi_int16_array,
- napi_uint16_array,
- napi_int32_array,
- napi_uint32_array,
- napi_float32_array,
- napi_float64_array,
- napi_bigint64_array,
- napi_biguint64_array,
-} napi_typedarray_type;
-
-typedef enum {
- napi_ok,
- napi_invalid_arg,
- napi_object_expected,
- napi_string_expected,
- napi_name_expected,
- napi_function_expected,
- napi_number_expected,
- napi_boolean_expected,
- napi_array_expected,
- napi_generic_failure,
- napi_pending_exception,
- napi_cancelled,
- napi_escape_called_twice,
- napi_handle_scope_mismatch,
- napi_callback_scope_mismatch,
- napi_queue_full,
- napi_closing,
- napi_bigint_expected,
- napi_date_expected,
- napi_arraybuffer_expected,
- napi_detachable_arraybuffer_expected,
- napi_would_deadlock, // unused
- napi_no_external_buffers_allowed,
- napi_cannot_run_js,
-} napi_status;
-// Note: when adding a new enum value to `napi_status`, please also update
-// * `const int last_status` in the definition of `napi_get_last_error_info()'
-// in file js_native_api_v8.cc.
-// * `const char* error_messages[]` in file js_native_api_v8.cc with a brief
-// message explaining the error.
-// * the definition of `napi_status` in doc/api/n-api.md to reflect the newly
-// added value(s).
-
-typedef napi_value(NAPI_CDECL* napi_callback)(napi_env env,
- napi_callback_info info);
-typedef void(NAPI_CDECL* napi_finalize)(napi_env env,
- void* finalize_data,
- void* finalize_hint);
-
-typedef struct {
- // One of utf8name or name should be NULL.
- const char* utf8name;
- napi_value name;
-
- napi_callback method;
- napi_callback getter;
- napi_callback setter;
- napi_value value;
-
- napi_property_attributes attributes;
- void* data;
-} napi_property_descriptor;
-
-typedef struct {
- const char* error_message;
- void* engine_reserved;
- uint32_t engine_error_code;
- napi_status error_code;
-} napi_extended_error_info;
-
-#if NAPI_VERSION >= 6
-typedef enum {
- napi_key_include_prototypes,
- napi_key_own_only
-} napi_key_collection_mode;
-
-typedef enum {
- napi_key_all_properties = 0,
- napi_key_writable = 1,
- napi_key_enumerable = 1 << 1,
- napi_key_configurable = 1 << 2,
- napi_key_skip_strings = 1 << 3,
- napi_key_skip_symbols = 1 << 4
-} napi_key_filter;
-
-typedef enum {
- napi_key_keep_numbers,
- napi_key_numbers_to_strings
-} napi_key_conversion;
-#endif // NAPI_VERSION >= 6
-
-#if NAPI_VERSION >= 8
-typedef struct {
- uint64_t lower;
- uint64_t upper;
-} napi_type_tag;
-#endif // NAPI_VERSION >= 8
-
-#endif // SRC_JS_NATIVE_API_TYPES_H_
diff --git a/~/.nvm/versions/node/v20.3.1/include/node/libplatform/libplatform-export.h b/~/.nvm/versions/node/v20.3.1/include/node/libplatform/libplatform-export.h
deleted file mode 100644
index 15618434..00000000
--- a/~/.nvm/versions/node/v20.3.1/include/node/libplatform/libplatform-export.h
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright 2016 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_LIBPLATFORM_LIBPLATFORM_EXPORT_H_
-#define V8_LIBPLATFORM_LIBPLATFORM_EXPORT_H_
-
-#if defined(_WIN32)
-
-#ifdef BUILDING_V8_PLATFORM_SHARED
-#define V8_PLATFORM_EXPORT __declspec(dllexport)
-#elif USING_V8_PLATFORM_SHARED
-#define V8_PLATFORM_EXPORT __declspec(dllimport)
-#else
-#define V8_PLATFORM_EXPORT
-#endif // BUILDING_V8_PLATFORM_SHARED
-
-#else // defined(_WIN32)
-
-// Setup for Linux shared library export.
-#ifdef BUILDING_V8_PLATFORM_SHARED
-#define V8_PLATFORM_EXPORT __attribute__((visibility("default")))
-#else
-#define V8_PLATFORM_EXPORT
-#endif
-
-#endif // defined(_WIN32)
-
-#endif // V8_LIBPLATFORM_LIBPLATFORM_EXPORT_H_
diff --git a/~/.nvm/versions/node/v20.3.1/include/node/libplatform/libplatform.h b/~/.nvm/versions/node/v20.3.1/include/node/libplatform/libplatform.h
deleted file mode 100644
index 9ec60c04..00000000
--- a/~/.nvm/versions/node/v20.3.1/include/node/libplatform/libplatform.h
+++ /dev/null
@@ -1,106 +0,0 @@
-// Copyright 2014 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_LIBPLATFORM_LIBPLATFORM_H_
-#define V8_LIBPLATFORM_LIBPLATFORM_H_
-
-#include
-
-#include "libplatform/libplatform-export.h"
-#include "libplatform/v8-tracing.h"
-#include "v8-platform.h" // NOLINT(build/include_directory)
-#include "v8config.h" // NOLINT(build/include_directory)
-
-namespace v8 {
-namespace platform {
-
-enum class IdleTaskSupport { kDisabled, kEnabled };
-enum class InProcessStackDumping { kDisabled, kEnabled };
-
-enum class MessageLoopBehavior : bool {
- kDoNotWait = false,
- kWaitForWork = true
-};
-
-/**
- * Returns a new instance of the default v8::Platform implementation.
- *
- * The caller will take ownership of the returned pointer. |thread_pool_size|
- * is the number of worker threads to allocate for background jobs. If a value
- * of zero is passed, a suitable default based on the current number of
- * processors online will be chosen.
- * If |idle_task_support| is enabled then the platform will accept idle
- * tasks (IdleTasksEnabled will return true) and will rely on the embedder
- * calling v8::platform::RunIdleTasks to process the idle tasks.
- * If |tracing_controller| is nullptr, the default platform will create a
- * v8::platform::TracingController instance and use it.
- */
-V8_PLATFORM_EXPORT std::unique_ptr NewDefaultPlatform(
- int thread_pool_size = 0,
- IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled,
- InProcessStackDumping in_process_stack_dumping =
- InProcessStackDumping::kDisabled,
- std::unique_ptr tracing_controller = {});
-
-/**
- * The same as NewDefaultPlatform but disables the worker thread pool.
- * It must be used with the --single-threaded V8 flag.
- */
-V8_PLATFORM_EXPORT std::unique_ptr
-NewSingleThreadedDefaultPlatform(
- IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled,
- InProcessStackDumping in_process_stack_dumping =
- InProcessStackDumping::kDisabled,
- std::unique_ptr tracing_controller = {});
-
-/**
- * Returns a new instance of the default v8::JobHandle implementation.
- *
- * The job will be executed by spawning up to |num_worker_threads| many worker
- * threads on the provided |platform| with the given |priority|.
- */
-V8_PLATFORM_EXPORT std::unique_ptr NewDefaultJobHandle(
- v8::Platform* platform, v8::TaskPriority priority,
- std::unique_ptr job_task, size_t num_worker_threads);
-
-/**
- * Pumps the message loop for the given isolate.
- *
- * The caller has to make sure that this is called from the right thread.
- * Returns true if a task was executed, and false otherwise. If the call to
- * PumpMessageLoop is nested within another call to PumpMessageLoop, only
- * nestable tasks may run. Otherwise, any task may run. Unless requested through
- * the |behavior| parameter, this call does not block if no task is pending. The
- * |platform| has to be created using |NewDefaultPlatform|.
- */
-V8_PLATFORM_EXPORT bool PumpMessageLoop(
- v8::Platform* platform, v8::Isolate* isolate,
- MessageLoopBehavior behavior = MessageLoopBehavior::kDoNotWait);
-
-/**
- * Runs pending idle tasks for at most |idle_time_in_seconds| seconds.
- *
- * The caller has to make sure that this is called from the right thread.
- * This call does not block if no task is pending. The |platform| has to be
- * created using |NewDefaultPlatform|.
- */
-V8_PLATFORM_EXPORT void RunIdleTasks(v8::Platform* platform,
- v8::Isolate* isolate,
- double idle_time_in_seconds);
-
-/**
- * Notifies the given platform about the Isolate getting deleted soon. Has to be
- * called for all Isolates which are deleted - unless we're shutting down the
- * platform.
- *
- * The |platform| has to be created using |NewDefaultPlatform|.
- *
- */
-V8_PLATFORM_EXPORT void NotifyIsolateShutdown(v8::Platform* platform,
- Isolate* isolate);
-
-} // namespace platform
-} // namespace v8
-
-#endif // V8_LIBPLATFORM_LIBPLATFORM_H_
diff --git a/~/.nvm/versions/node/v20.3.1/include/node/libplatform/v8-tracing.h b/~/.nvm/versions/node/v20.3.1/include/node/libplatform/v8-tracing.h
deleted file mode 100644
index 6039a9c5..00000000
--- a/~/.nvm/versions/node/v20.3.1/include/node/libplatform/v8-tracing.h
+++ /dev/null
@@ -1,333 +0,0 @@
-// Copyright 2016 the V8 project authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef V8_LIBPLATFORM_V8_TRACING_H_
-#define V8_LIBPLATFORM_V8_TRACING_H_
-
-#include
-#include
-#include
-#include
-#include
-
-#include "libplatform/libplatform-export.h"
-#include "v8-platform.h" // NOLINT(build/include_directory)
-
-namespace perfetto {
-namespace trace_processor {
-class TraceProcessorStorage;
-}
-class TracingSession;
-}
-
-namespace v8 {
-
-namespace base {
-class Mutex;
-} // namespace base
-
-namespace platform {
-namespace tracing {
-
-class TraceEventListener;
-
-const int kTraceMaxNumArgs = 2;
-
-class V8_PLATFORM_EXPORT TraceObject {
- public:
- union ArgValue {
- uint64_t as_uint;
- int64_t as_int;
- double as_double;
- const void* as_pointer;
- const char* as_string;
- };
-
- TraceObject() = default;
- ~TraceObject();
- void Initialize(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr* arg_convertables,
- unsigned int flags, int64_t timestamp, int64_t cpu_timestamp);
- void UpdateDuration(int64_t timestamp, int64_t cpu_timestamp);
- void InitializeForTesting(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr* arg_convertables,
- unsigned int flags, int pid, int tid, int64_t ts, int64_t tts,
- uint64_t duration, uint64_t cpu_duration);
-
- int pid() const { return pid_; }
- int tid() const { return tid_; }
- char phase() const { return phase_; }
- const uint8_t* category_enabled_flag() const {
- return category_enabled_flag_;
- }
- const char* name() const { return name_; }
- const char* scope() const { return scope_; }
- uint64_t id() const { return id_; }
- uint64_t bind_id() const { return bind_id_; }
- int num_args() const { return num_args_; }
- const char** arg_names() { return arg_names_; }
- uint8_t* arg_types() { return arg_types_; }
- ArgValue* arg_values() { return arg_values_; }
- std::unique_ptr* arg_convertables() {
- return arg_convertables_;
- }
- unsigned int flags() const { return flags_; }
- int64_t ts() { return ts_; }
- int64_t tts() { return tts_; }
- uint64_t duration() { return duration_; }
- uint64_t cpu_duration() { return cpu_duration_; }
-
- private:
- int pid_;
- int tid_;
- char phase_;
- const char* name_;
- const char* scope_;
- const uint8_t* category_enabled_flag_;
- uint64_t id_;
- uint64_t bind_id_;
- int num_args_ = 0;
- const char* arg_names_[kTraceMaxNumArgs];
- uint8_t arg_types_[kTraceMaxNumArgs];
- ArgValue arg_values_[kTraceMaxNumArgs];
- std::unique_ptr
- arg_convertables_[kTraceMaxNumArgs];
- char* parameter_copy_storage_ = nullptr;
- unsigned int flags_;
- int64_t ts_;
- int64_t tts_;
- uint64_t duration_;
- uint64_t cpu_duration_;
-
- // Disallow copy and assign
- TraceObject(const TraceObject&) = delete;
- void operator=(const TraceObject&) = delete;
-};
-
-class V8_PLATFORM_EXPORT TraceWriter {
- public:
- TraceWriter() = default;
- virtual ~TraceWriter() = default;
- virtual void AppendTraceEvent(TraceObject* trace_event) = 0;
- virtual void Flush() = 0;
-
- static TraceWriter* CreateJSONTraceWriter(std::ostream& stream);
- static TraceWriter* CreateJSONTraceWriter(std::ostream& stream,
- const std::string& tag);
-
- static TraceWriter* CreateSystemInstrumentationTraceWriter();
-
- private:
- // Disallow copy and assign
- TraceWriter(const TraceWriter&) = delete;
- void operator=(const TraceWriter&) = delete;
-};
-
-class V8_PLATFORM_EXPORT TraceBufferChunk {
- public:
- explicit TraceBufferChunk(uint32_t seq);
-
- void Reset(uint32_t new_seq);
- bool IsFull() const { return next_free_ == kChunkSize; }
- TraceObject* AddTraceEvent(size_t* event_index);
- TraceObject* GetEventAt(size_t index) { return &chunk_[index]; }
-
- uint32_t seq() const { return seq_; }
- size_t size() const { return next_free_; }
-
- static const size_t kChunkSize = 64;
-
- private:
- size_t next_free_ = 0;
- TraceObject chunk_[kChunkSize];
- uint32_t seq_;
-
- // Disallow copy and assign
- TraceBufferChunk(const TraceBufferChunk&) = delete;
- void operator=(const TraceBufferChunk&) = delete;
-};
-
-class V8_PLATFORM_EXPORT TraceBuffer {
- public:
- TraceBuffer() = default;
- virtual ~TraceBuffer() = default;
-
- virtual TraceObject* AddTraceEvent(uint64_t* handle) = 0;
- virtual TraceObject* GetEventByHandle(uint64_t handle) = 0;
- virtual bool Flush() = 0;
-
- static const size_t kRingBufferChunks = 1024;
-
- static TraceBuffer* CreateTraceBufferRingBuffer(size_t max_chunks,
- TraceWriter* trace_writer);
-
- private:
- // Disallow copy and assign
- TraceBuffer(const TraceBuffer&) = delete;
- void operator=(const TraceBuffer&) = delete;
-};
-
-// Options determines how the trace buffer stores data.
-enum TraceRecordMode {
- // Record until the trace buffer is full.
- RECORD_UNTIL_FULL,
-
- // Record until the user ends the trace. The trace buffer is a fixed size
- // and we use it as a ring buffer during recording.
- RECORD_CONTINUOUSLY,
-
- // Record until the trace buffer is full, but with a huge buffer size.
- RECORD_AS_MUCH_AS_POSSIBLE,
-
- // Echo to console. Events are discarded.
- ECHO_TO_CONSOLE,
-};
-
-class V8_PLATFORM_EXPORT TraceConfig {
- public:
- typedef std::vector StringList;
-
- static TraceConfig* CreateDefaultTraceConfig();
-
- TraceConfig() : enable_systrace_(false), enable_argument_filter_(false) {}
- TraceRecordMode GetTraceRecordMode() const { return record_mode_; }
- const StringList& GetEnabledCategories() const {
- return included_categories_;
- }
- bool IsSystraceEnabled() const { return enable_systrace_; }
- bool IsArgumentFilterEnabled() const { return enable_argument_filter_; }
-
- void SetTraceRecordMode(TraceRecordMode mode) { record_mode_ = mode; }
- void EnableSystrace() { enable_systrace_ = true; }
- void EnableArgumentFilter() { enable_argument_filter_ = true; }
-
- void AddIncludedCategory(const char* included_category);
-
- bool IsCategoryGroupEnabled(const char* category_group) const;
-
- private:
- TraceRecordMode record_mode_;
- bool enable_systrace_ : 1;
- bool enable_argument_filter_ : 1;
- StringList included_categories_;
-
- // Disallow copy and assign
- TraceConfig(const TraceConfig&) = delete;
- void operator=(const TraceConfig&) = delete;
-};
-
-#if defined(_MSC_VER)
-#define V8_PLATFORM_NON_EXPORTED_BASE(code) \
- __pragma(warning(suppress : 4275)) code
-#else
-#define V8_PLATFORM_NON_EXPORTED_BASE(code) code
-#endif // defined(_MSC_VER)
-
-class V8_PLATFORM_EXPORT TracingController
- : public V8_PLATFORM_NON_EXPORTED_BASE(v8::TracingController) {
- public:
- TracingController();
- ~TracingController() override;
-
-#if defined(V8_USE_PERFETTO)
- // Must be called before StartTracing() if V8_USE_PERFETTO is true. Provides
- // the output stream for the JSON trace data.
- void InitializeForPerfetto(std::ostream* output_stream);
- // Provide an optional listener for testing that will receive trace events.
- // Must be called before StartTracing().
- void SetTraceEventListenerForTesting(TraceEventListener* listener);
-#else // defined(V8_USE_PERFETTO)
- // The pointer returned from GetCategoryGroupEnabled() points to a value with
- // zero or more of the following bits. Used in this class only. The
- // TRACE_EVENT macros should only use the value as a bool. These values must
- // be in sync with macro values in TraceEvent.h in Blink.
- enum CategoryGroupEnabledFlags {
- // Category group enabled for the recording mode.
- ENABLED_FOR_RECORDING = 1 << 0,
- // Category group enabled by SetEventCallbackEnabled().
- ENABLED_FOR_EVENT_CALLBACK = 1 << 2,
- // Category group enabled to export events to ETW.
- ENABLED_FOR_ETW_EXPORT = 1 << 3
- };
-
- // Takes ownership of |trace_buffer|.
- void Initialize(TraceBuffer* trace_buffer);
-
- // v8::TracingController implementation.
- const uint8_t* GetCategoryGroupEnabled(const char* category_group) override;
- uint64_t AddTraceEvent(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr* arg_convertables,
- unsigned int flags) override;
- uint64_t AddTraceEventWithTimestamp(
- char phase, const uint8_t* category_enabled_flag, const char* name,
- const char* scope, uint64_t id, uint64_t bind_id, int32_t num_args,
- const char** arg_names, const uint8_t* arg_types,
- const uint64_t* arg_values,
- std::unique_ptr* arg_convertables,
- unsigned int flags, int64_t timestamp) override;
- void UpdateTraceEventDuration(const uint8_t* category_enabled_flag,
- const char* name, uint64_t handle) override;
-
- static const char* GetCategoryGroupName(const uint8_t* category_enabled_flag);
-
- void AddTraceStateObserver(
- v8::TracingController::TraceStateObserver* observer) override;
- void RemoveTraceStateObserver(
- v8::TracingController::TraceStateObserver* observer) override;
-#endif // !defined(V8_USE_PERFETTO)
-
- void StartTracing(TraceConfig* trace_config);
- void StopTracing();
-
- protected:
-#if !defined(V8_USE_PERFETTO)
- virtual int64_t CurrentTimestampMicroseconds();
- virtual int64_t CurrentCpuTimestampMicroseconds();
-#endif // !defined(V8_USE_PERFETTO)
-
- private:
-#if !defined(V8_USE_PERFETTO)
- void UpdateCategoryGroupEnabledFlag(size_t category_index);
- void UpdateCategoryGroupEnabledFlags();
-#endif // !defined(V8_USE_PERFETTO)
-
- std::unique_ptr mutex_;
- std::unique_ptr trace_config_;
- std::atomic_bool recording_{false};
-
-#if defined(V8_USE_PERFETTO)
- std::ostream* output_stream_ = nullptr;
- std::unique_ptr
- trace_processor_;
- TraceEventListener* listener_for_testing_ = nullptr;
- std::unique_ptr tracing_session_;
-#else // !defined(V8_USE_PERFETTO)
- std::unordered_set observers_;
- std::unique_ptr trace_buffer_;
-#endif // !defined(V8_USE_PERFETTO)
-
- // Disallow copy and assign
- TracingController(const TracingController&) = delete;
- void operator=(const TracingController&) = delete;
-};
-
-#undef V8_PLATFORM_NON_EXPORTED_BASE
-
-} // namespace tracing
-} // namespace platform
-} // namespace v8
-
-#endif // V8_LIBPLATFORM_V8_TRACING_H_
diff --git a/~/.nvm/versions/node/v20.3.1/include/node/node.h b/~/.nvm/versions/node/v20.3.1/include/node/node.h
deleted file mode 100644
index cee4ebe2..00000000
--- a/~/.nvm/versions/node/v20.3.1/include/node/node.h
+++ /dev/null
@@ -1,1481 +0,0 @@
-// Copyright Joyent, Inc. and other Node 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.
-
-#ifndef SRC_NODE_H_
-#define SRC_NODE_H_
-
-#ifdef _WIN32
-# ifndef BUILDING_NODE_EXTENSION
-# define NODE_EXTERN __declspec(dllexport)
-# else
-# define NODE_EXTERN __declspec(dllimport)
-# endif
-#else
-# define NODE_EXTERN __attribute__((visibility("default")))
-#endif
-
-// Declarations annotated with NODE_EXTERN_PRIVATE do not form part of
-// the public API. They are implementation details that can and will
-// change between releases, even in semver patch releases. Do not use
-// any such symbol in external code.
-#ifdef NODE_SHARED_MODE
-#define NODE_EXTERN_PRIVATE NODE_EXTERN
-#else
-#define NODE_EXTERN_PRIVATE
-#endif
-
-#ifdef BUILDING_NODE_EXTENSION
-# undef BUILDING_V8_SHARED
-# undef BUILDING_UV_SHARED
-# define USING_V8_SHARED 1
-# define USING_UV_SHARED 1
-#endif
-
-// This should be defined in make system.
-// See issue https://github.com/nodejs/node-v0.x-archive/issues/1236
-#if defined(__MINGW32__) || defined(_MSC_VER)
-#ifndef _WIN32_WINNT
-# define _WIN32_WINNT 0x0600 // Windows Server 2008
-#endif
-
-#ifndef NOMINMAX
-# define NOMINMAX
-#endif
-
-#endif
-
-#if defined(_MSC_VER)
-#define PATH_MAX MAX_PATH
-#endif
-
-#ifdef _WIN32
-# define SIGKILL 9
-#endif
-
-#include "v8.h" // NOLINT(build/include_order)
-
-#include "v8-platform.h" // NOLINT(build/include_order)
-#include "node_version.h" // NODE_MODULE_VERSION
-
-#define NAPI_EXPERIMENTAL
-#include "node_api.h"
-
-#include
-#include
-#include
-
-// We cannot use __POSIX__ in this header because that's only defined when
-// building Node.js.
-#ifndef _WIN32
-#include
-#endif // _WIN32
-
-#define NODE_MAKE_VERSION(major, minor, patch) \
- ((major) * 0x1000 + (minor) * 0x100 + (patch))
-
-#ifdef __clang__
-# define NODE_CLANG_AT_LEAST(major, minor, patch) \
- (NODE_MAKE_VERSION(major, minor, patch) <= \
- NODE_MAKE_VERSION(__clang_major__, __clang_minor__, __clang_patchlevel__))
-#else
-# define NODE_CLANG_AT_LEAST(major, minor, patch) (0)
-#endif
-
-#ifdef __GNUC__
-# define NODE_GNUC_AT_LEAST(major, minor, patch) \
- (NODE_MAKE_VERSION(major, minor, patch) <= \
- NODE_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__))
-#else
-# define NODE_GNUC_AT_LEAST(major, minor, patch) (0)
-#endif
-
-#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
-# define NODE_DEPRECATED(message, declarator) declarator
-#else // NODE_WANT_INTERNALS
-# if NODE_CLANG_AT_LEAST(2, 9, 0) || NODE_GNUC_AT_LEAST(4, 5, 0)
-# define NODE_DEPRECATED(message, declarator) \
- __attribute__((deprecated(message))) declarator
-# elif defined(_MSC_VER)
-# define NODE_DEPRECATED(message, declarator) \
- __declspec(deprecated) declarator
-# else
-# define NODE_DEPRECATED(message, declarator) declarator
-# endif
-#endif
-
-// Forward-declare libuv loop
-struct uv_loop_s;
-
-// Forward-declare these functions now to stop MSVS from becoming
-// terminally confused when it's done in node_internals.h
-namespace node {
-
-struct SnapshotData;
-
-namespace tracing {
-
-class TracingController;
-
-}
-
-NODE_EXTERN v8::Local ErrnoException(v8::Isolate* isolate,
- int errorno,
- const char* syscall = nullptr,
- const char* message = nullptr,
- const char* path = nullptr);
-NODE_EXTERN v8::Local UVException(v8::Isolate* isolate,
- int errorno,
- const char* syscall = nullptr,
- const char* message = nullptr,
- const char* path = nullptr,
- const char* dest = nullptr);
-
-NODE_DEPRECATED("Use ErrnoException(isolate, ...)",
- inline v8::Local ErrnoException(
- int errorno,
- const char* syscall = nullptr,
- const char* message = nullptr,
- const char* path = nullptr) {
- return ErrnoException(v8::Isolate::GetCurrent(),
- errorno,
- syscall,
- message,
- path);
-})
-
-NODE_DEPRECATED("Use UVException(isolate, ...)",
- inline v8::Local UVException(int errorno,
- const char* syscall = nullptr,
- const char* message = nullptr,
- const char* path = nullptr) {
- return UVException(v8::Isolate::GetCurrent(),
- errorno,
- syscall,
- message,
- path);
-})
-
-/*
- * These methods need to be called in a HandleScope.
- *
- * It is preferred that you use the `MakeCallback` overloads taking
- * `async_context` arguments.
- */
-
-NODE_DEPRECATED("Use MakeCallback(..., async_context)",
- NODE_EXTERN v8::Local MakeCallback(
- v8::Isolate* isolate,
- v8::Local recv,
- const char* method,
- int argc,
- v8::Local* argv));
-NODE_DEPRECATED("Use MakeCallback(..., async_context)",
- NODE_EXTERN v8::Local MakeCallback(
- v8::Isolate* isolate,
- v8::Local recv,
- v8::Local symbol,
- int argc,
- v8::Local* argv));
-NODE_DEPRECATED("Use MakeCallback(..., async_context)",
- NODE_EXTERN v8::Local MakeCallback(
- v8::Isolate* isolate,
- v8::Local recv,
- v8::Local callback,
- int argc,
- v8::Local* argv));
-
-} // namespace node
-
-#include
-#include
-
-#ifndef NODE_STRINGIFY
-# define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
-# define NODE_STRINGIFY_HELPER(n) #n
-#endif
-
-#ifdef _WIN32
-#if !defined(_SSIZE_T_) && !defined(_SSIZE_T_DEFINED)
-typedef intptr_t ssize_t;
-# define _SSIZE_T_
-# define _SSIZE_T_DEFINED
-#endif
-#else // !_WIN32
-# include // size_t, ssize_t
-#endif // _WIN32
-
-
-namespace node {
-
-class IsolateData;
-class Environment;
-class MultiIsolatePlatform;
-class InitializationResultImpl;
-
-namespace ProcessInitializationFlags {
-enum Flags : uint32_t {
- kNoFlags = 0,
- // Enable stdio inheritance, which is disabled by default.
- // This flag is also implied by kNoStdioInitialization.
- kEnableStdioInheritance = 1 << 0,
- // Disable reading the NODE_OPTIONS environment variable.
- kDisableNodeOptionsEnv = 1 << 1,
- // Do not parse CLI options.
- kDisableCLIOptions = 1 << 2,
- // Do not initialize ICU.
- kNoICU = 1 << 3,
- // Do not modify stdio file descriptor or TTY state.
- kNoStdioInitialization = 1 << 4,
- // Do not register Node.js-specific signal handlers
- // and reset other signal handlers to default state.
- kNoDefaultSignalHandling = 1 << 5,
- // Do not perform V8 initialization.
- kNoInitializeV8 = 1 << 6,
- // Do not initialize a default Node.js-provided V8 platform instance.
- kNoInitializeNodeV8Platform = 1 << 7,
- // Do not initialize OpenSSL config.
- kNoInitOpenSSL = 1 << 8,
- // Do not initialize Node.js debugging based on environment variables.
- kNoParseGlobalDebugVariables = 1 << 9,
- // Do not adjust OS resource limits for this process.
- kNoAdjustResourceLimits = 1 << 10,
- // Do not map code segments into large pages for this process.
- kNoUseLargePages = 1 << 11,
- // Skip printing output for --help, --version, --v8-options.
- kNoPrintHelpOrVersionOutput = 1 << 12,
-
- // Emulate the behavior of InitializeNodeWithArgs() when passing
- // a flags argument to the InitializeOncePerProcess() replacement
- // function.
- kLegacyInitializeNodeWithArgsBehavior =
- kNoStdioInitialization | kNoDefaultSignalHandling | kNoInitializeV8 |
- kNoInitializeNodeV8Platform | kNoInitOpenSSL |
- kNoParseGlobalDebugVariables | kNoAdjustResourceLimits |
- kNoUseLargePages | kNoPrintHelpOrVersionOutput,
-};
-} // namespace ProcessInitializationFlags
-namespace ProcessFlags = ProcessInitializationFlags; // Legacy alias.
-
-namespace StopFlags {
-enum Flags : uint32_t {
- kNoFlags = 0,
- // Do not explicitly terminate the Isolate
- // when exiting the Environment.
- kDoNotTerminateIsolate = 1 << 0,
-};
-} // namespace StopFlags
-
-class NODE_EXTERN InitializationResult {
- public:
- virtual ~InitializationResult();
-
- // Returns a suggested process exit code.
- virtual int exit_code() const = 0;
-
- // Returns 'true' if initialization was aborted early due to errors.
- virtual bool early_return() const = 0;
-
- // Returns the parsed list of non-Node.js arguments.
- virtual const std::vector& args() const = 0;
-
- // Returns the parsed list of Node.js arguments.
- virtual const std::vector& exec_args() const = 0;
-
- // Returns an array of errors. Note that these may be warnings
- // whose existence does not imply a non-zero exit code.
- virtual const std::vector& errors() const = 0;
-
- // If kNoInitializeNodeV8Platform was not specified, the global Node.js
- // platform instance.
- virtual MultiIsolatePlatform* platform() const = 0;
-
- private:
- InitializationResult() = default;
- friend class InitializationResultImpl;
-};
-
-// TODO(addaleax): Officially deprecate this and replace it with something
-// better suited for a public embedder API.
-NODE_EXTERN int Start(int argc, char* argv[]);
-
-// Tear down Node.js while it is running (there are active handles
-// in the loop and / or actively executing JavaScript code).
-NODE_EXTERN int Stop(Environment* env,
- StopFlags::Flags flags = StopFlags::kNoFlags);
-
-// Set up per-process state needed to run Node.js. This will consume arguments
-// from argv, fill exec_argv, and possibly add errors resulting from parsing
-// the arguments to `errors`. The return value is a suggested exit code for the
-// program; If it is 0, then initializing Node.js succeeded.
-// This runs a subset of the initialization performed by
-// InitializeOncePerProcess(), which supersedes this function.
-// The subset is roughly equivalent to the one given by
-// `ProcessInitializationFlags::kLegacyInitializeNodeWithArgsBehavior`.
-NODE_DEPRECATED("Use InitializeOncePerProcess() instead",
- NODE_EXTERN int InitializeNodeWithArgs(
- std::vector* argv,
- std::vector* exec_argv,
- std::vector* errors,
- ProcessInitializationFlags::Flags flags =
- ProcessInitializationFlags::kNoFlags));
-
-// Set up per-process state needed to run Node.js. This will consume arguments
-// from args, and return information about the initialization success,
-// including the arguments split into argv/exec_argv, a list of potential
-// errors encountered during initialization, and a potential suggested
-// exit code.
-NODE_EXTERN std::unique_ptr InitializeOncePerProcess(
- const std::vector& args,
- ProcessInitializationFlags::Flags flags =
- ProcessInitializationFlags::kNoFlags);
-// Undoes the initialization performed by InitializeOncePerProcess(),
-// where cleanup is necessary.
-NODE_EXTERN void TearDownOncePerProcess();
-// Convenience overload for specifying multiple flags without having
-// to worry about casts.
-inline std::unique_ptr InitializeOncePerProcess(
- const std::vector& args,
- std::initializer_list list) {
- uint64_t flags_accum = ProcessInitializationFlags::kNoFlags;
- for (const auto flag : list) flags_accum |= static_cast(flag);
- return InitializeOncePerProcess(
- args, static_cast(flags_accum));
-}
-
-enum OptionEnvvarSettings {
- // Allow the options to be set via the environment variable, like
- // `NODE_OPTIONS`.
- kAllowedInEnvvar = 0,
- // Disallow the options to be set via the environment variable, like
- // `NODE_OPTIONS`.
- kDisallowedInEnvvar = 1,
- // Deprecated, use kAllowedInEnvvar instead.
- kAllowedInEnvironment = kAllowedInEnvvar,
- // Deprecated, use kDisallowedInEnvvar instead.
- kDisallowedInEnvironment = kDisallowedInEnvvar,
-};
-
-// Process the arguments and set up the per-process options.
-// If the `settings` is set as OptionEnvvarSettings::kAllowedInEnvvar, the
-// options that are allowed in the environment variable are processed. Options
-// that are disallowed to be set via environment variable are processed as
-// errors.
-// Otherwise all the options that are disallowed (and those are allowed) to be
-// set via environment variable are processed.
-NODE_EXTERN int ProcessGlobalArgs(std::vector* args,
- std::vector* exec_args,
- std::vector* errors,
- OptionEnvvarSettings settings);
-
-class NodeArrayBufferAllocator;
-
-// An ArrayBuffer::Allocator class with some Node.js-specific tweaks. If you do
-// not have to use another allocator, using this class is recommended:
-// - It supports Buffer.allocUnsafe() and Buffer.allocUnsafeSlow() with
-// uninitialized memory.
-// - It supports transferring, rather than copying, ArrayBuffers when using
-// MessagePorts.
-class NODE_EXTERN ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
- public:
- // If `always_debug` is true, create an ArrayBuffer::Allocator instance
- // that performs additional integrity checks (e.g. make sure that only memory
- // that was allocated by the it is also freed by it).
- // This can also be set using the --debug-arraybuffer-allocations flag.
- static std::unique_ptr Create(
- bool always_debug = false);
-
- private:
- virtual NodeArrayBufferAllocator* GetImpl() = 0;
-
- friend class IsolateData;
-};
-
-// Legacy equivalents for ArrayBufferAllocator::Create().
-NODE_EXTERN ArrayBufferAllocator* CreateArrayBufferAllocator();
-NODE_EXTERN void FreeArrayBufferAllocator(ArrayBufferAllocator* allocator);
-
-class NODE_EXTERN IsolatePlatformDelegate {
- public:
- virtual std::shared_ptr GetForegroundTaskRunner() = 0;
- virtual bool IdleTasksEnabled() = 0;
-};
-
-class NODE_EXTERN MultiIsolatePlatform : public v8::Platform {
- public:
- ~MultiIsolatePlatform() override = default;
- // Returns true if work was dispatched or executed. New tasks that are
- // posted during flushing of the queue are postponed until the next
- // flushing.
- virtual bool FlushForegroundTasks(v8::Isolate* isolate) = 0;
- virtual void DrainTasks(v8::Isolate* isolate) = 0;
-
- // This needs to be called between the calls to `Isolate::Allocate()` and
- // `Isolate::Initialize()`, so that initialization can already start
- // using the platform.
- // When using `NewIsolate()`, this is taken care of by that function.
- // This function may only be called once per `Isolate`.
- virtual void RegisterIsolate(v8::Isolate* isolate,
- struct uv_loop_s* loop) = 0;
- // This method can be used when an application handles task scheduling on its
- // own through `IsolatePlatformDelegate`. Upon registering an isolate with
- // this overload any other method in this class with the exception of
- // `UnregisterIsolate` *must not* be used on that isolate.
- virtual void RegisterIsolate(v8::Isolate* isolate,
- IsolatePlatformDelegate* delegate) = 0;
-
- // This function may only be called once per `Isolate`, and discard any
- // pending delayed tasks scheduled for that isolate.
- // This needs to be called right before calling `Isolate::Dispose()`.
- virtual void UnregisterIsolate(v8::Isolate* isolate) = 0;
-
- // The platform should call the passed function once all state associated
- // with the given isolate has been cleaned up. This can, but does not have to,
- // happen asynchronously.
- virtual void AddIsolateFinishedCallback(v8::Isolate* isolate,
- void (*callback)(void*),
- void* data) = 0;
-
- static std::unique_ptr Create(
- int thread_pool_size,
- v8::TracingController* tracing_controller = nullptr,
- v8::PageAllocator* page_allocator = nullptr);
-};
-
-enum IsolateSettingsFlags {
- MESSAGE_LISTENER_WITH_ERROR_LEVEL = 1 << 0,
- DETAILED_SOURCE_POSITIONS_FOR_PROFILING = 1 << 1,
- SHOULD_NOT_SET_PROMISE_REJECTION_CALLBACK = 1 << 2,
- SHOULD_NOT_SET_PREPARE_STACK_TRACE_CALLBACK = 1 << 3,
- ALLOW_MODIFY_CODE_GENERATION_FROM_STRINGS_CALLBACK = 0, /* legacy no-op */
-};
-
-struct IsolateSettings {
- uint64_t flags = MESSAGE_LISTENER_WITH_ERROR_LEVEL |
- DETAILED_SOURCE_POSITIONS_FOR_PROFILING;
- v8::MicrotasksPolicy policy = v8::MicrotasksPolicy::kExplicit;
-
- // Error handling callbacks
- v8::Isolate::AbortOnUncaughtExceptionCallback
- should_abort_on_uncaught_exception_callback = nullptr;
- v8::FatalErrorCallback fatal_error_callback = nullptr;
- v8::PrepareStackTraceCallback prepare_stack_trace_callback = nullptr;
-
- // Miscellaneous callbacks
- v8::PromiseRejectCallback promise_reject_callback = nullptr;
- v8::AllowWasmCodeGenerationCallback
- allow_wasm_code_generation_callback = nullptr;
- v8::ModifyCodeGenerationFromStringsCallback2
- modify_code_generation_from_strings_callback = nullptr;
-};
-
-// Represents a startup snapshot blob, e.g. created by passing
-// --node-snapshot-main=entry.js to the configure script at build time,
-// or by running Node.js with the --build-snapshot option.
-//
-// If used, the snapshot *must* have been built with the same Node.js
-// version and V8 flags as the version that is currently running, and will
-// be rejected otherwise.
-// The same EmbedderSnapshotData instance *must* be passed to both
-// `NewIsolate()` and `CreateIsolateData()`. The first `Environment` instance
-// should be created with an empty `context` argument and will then
-// use the main context included in the snapshot blob. It can be retrieved
-// using `GetMainContext()`. `LoadEnvironment` can receive an empty
-// `StartExecutionCallback` in this case.
-// If V8 was configured with the shared-readonly-heap option, it requires
-// all snapshots used to create `Isolate` instances to be identical.
-// This option *must* be unset by embedders who wish to use the startup
-// feature during the build step by passing the --disable-shared-readonly-heap
-// flag to the configure script.
-//
-// The snapshot *must* be kept alive during the execution of the Isolate
-// that was created using it.
-//
-// Snapshots are an *experimental* feature. In particular, the embedder API
-// exposed through this class is subject to change or removal between Node.js
-// versions, including possible API and ABI breakage.
-class EmbedderSnapshotData {
- public:
- struct DeleteSnapshotData {
- void operator()(const EmbedderSnapshotData*) const;
- };
- using Pointer =
- std::unique_ptr;
-
- // Return an EmbedderSnapshotData object that refers to the built-in
- // snapshot of Node.js. This can have been configured through e.g.
- // --node-snapshot-main=entry.js.
- static Pointer BuiltinSnapshotData();
-
- // Return an EmbedderSnapshotData object that is based on an input file.
- // Calling this method will consume but not close the FILE* handle.
- // The FILE* handle can be closed immediately following this call.
- // If the snapshot is invalid, this returns an empty pointer.
- static Pointer FromFile(FILE* in);
- static Pointer FromBlob(const std::vector& in);
-
- // Write this EmbedderSnapshotData object to an output file.
- // Calling this method will not close the FILE* handle.
- // The FILE* handle can be closed immediately following this call.
- void ToFile(FILE* out) const;
- std::vector ToBlob() const;
-
- // Returns whether custom snapshots can be used. Currently, this means
- // that V8 was configured without the shared-readonly-heap feature.
- static bool CanUseCustomSnapshotPerIsolate();
-
- EmbedderSnapshotData(const EmbedderSnapshotData&) = delete;
- EmbedderSnapshotData& operator=(const EmbedderSnapshotData&) = delete;
- EmbedderSnapshotData(EmbedderSnapshotData&&) = delete;
- EmbedderSnapshotData& operator=(EmbedderSnapshotData&&) = delete;
-
- protected:
- EmbedderSnapshotData(const SnapshotData* impl, bool owns_impl);
-
- private:
- const SnapshotData* impl_;
- bool owns_impl_;
- friend struct SnapshotData;
- friend class CommonEnvironmentSetup;
-};
-
-// Overriding IsolateSettings may produce unexpected behavior
-// in Node.js core functionality, so proceed at your own risk.
-NODE_EXTERN void SetIsolateUpForNode(v8::Isolate* isolate,
- const IsolateSettings& settings);
-
-// Set a number of callbacks for the `isolate`, in particular the Node.js
-// uncaught exception listener.
-NODE_EXTERN void SetIsolateUpForNode(v8::Isolate* isolate);
-
-// Creates a new isolate with Node.js-specific settings.
-// This is a convenience method equivalent to using SetIsolateCreateParams(),
-// Isolate::Allocate(), MultiIsolatePlatform::RegisterIsolate(),
-// Isolate::Initialize(), and SetIsolateUpForNode().
-NODE_EXTERN v8::Isolate* NewIsolate(
- ArrayBufferAllocator* allocator,
- struct uv_loop_s* event_loop,
- MultiIsolatePlatform* platform,
- const EmbedderSnapshotData* snapshot_data = nullptr,
- const IsolateSettings& settings = {});
-NODE_EXTERN v8::Isolate* NewIsolate(
- std::shared_ptr allocator,
- struct uv_loop_s* event_loop,
- MultiIsolatePlatform* platform,
- const EmbedderSnapshotData* snapshot_data = nullptr,
- const IsolateSettings& settings = {});
-
-// Creates a new context with Node.js-specific tweaks.
-NODE_EXTERN v8::Local NewContext(
- v8::Isolate* isolate,
- v8::Local object_template =
- v8::Local());
-
-// Runs Node.js-specific tweaks on an already constructed context
-// Return value indicates success of operation
-NODE_EXTERN v8::Maybe InitializeContext(v8::Local context);
-
-// If `platform` is passed, it will be used to register new Worker instances.
-// It can be `nullptr`, in which case creating new Workers inside of
-// Environments that use this `IsolateData` will not work.
-NODE_EXTERN IsolateData* CreateIsolateData(
- v8::Isolate* isolate,
- struct uv_loop_s* loop,
- MultiIsolatePlatform* platform = nullptr,
- ArrayBufferAllocator* allocator = nullptr,
- const EmbedderSnapshotData* snapshot_data = nullptr);
-NODE_EXTERN void FreeIsolateData(IsolateData* isolate_data);
-
-struct ThreadId {
- uint64_t id = static_cast(-1);
-};
-NODE_EXTERN ThreadId AllocateEnvironmentThreadId();
-
-namespace EnvironmentFlags {
-enum Flags : uint64_t {
- kNoFlags = 0,
- // Use the default behaviour for Node.js instances.
- kDefaultFlags = 1 << 0,
- // Controls whether this Environment is allowed to affect per-process state
- // (e.g. cwd, process title, uid, etc.).
- // This is set when using kDefaultFlags.
- kOwnsProcessState = 1 << 1,
- // Set if this Environment instance is associated with the global inspector
- // handling code (i.e. listening on SIGUSR1).
- // This is set when using kDefaultFlags.
- kOwnsInspector = 1 << 2,
- // Set if Node.js should not run its own esm loader. This is needed by some
- // embedders, because it's possible for the Node.js esm loader to conflict
- // with another one in an embedder environment, e.g. Blink's in Chromium.
- kNoRegisterESMLoader = 1 << 3,
- // Set this flag to make Node.js track "raw" file descriptors, i.e. managed
- // by fs.open() and fs.close(), and close them during FreeEnvironment().
- kTrackUnmanagedFds = 1 << 4,
- // Set this flag to force hiding console windows when spawning child
- // processes. This is usually used when embedding Node.js in GUI programs on
- // Windows.
- kHideConsoleWindows = 1 << 5,
- // Set this flag to disable loading native addons via `process.dlopen`.
- // This environment flag is especially important for worker threads
- // so that a worker thread can't load a native addon even if `execArgv`
- // is overwritten and `--no-addons` is not specified but was specified
- // for this Environment instance.
- kNoNativeAddons = 1 << 6,
- // Set this flag to disable searching modules from global paths like
- // $HOME/.node_modules and $NODE_PATH. This is used by standalone apps that
- // do not expect to have their behaviors changed because of globally
- // installed modules.
- kNoGlobalSearchPaths = 1 << 7,
- // Do not export browser globals like setTimeout, console, etc.
- kNoBrowserGlobals = 1 << 8,
- // Controls whether or not the Environment should call V8Inspector::create().
- // This control is needed by embedders who may not want to initialize the V8
- // inspector in situations where one has already been created,
- // e.g. Blink's in Chromium.
- kNoCreateInspector = 1 << 9
-};
-} // namespace EnvironmentFlags
-
-struct InspectorParentHandle {
- virtual ~InspectorParentHandle();
-};
-
-// TODO(addaleax): Maybe move per-Environment options parsing here.
-// Returns nullptr when the Environment cannot be created e.g. there are
-// pending JavaScript exceptions.
-// `context` may be empty if an `EmbedderSnapshotData` instance was provided
-// to `NewIsolate()` and `CreateIsolateData()`.
-NODE_EXTERN Environment* CreateEnvironment(
- IsolateData* isolate_data,
- v8::Local context,
- const std::vector& args,
- const std::vector& exec_args,
- EnvironmentFlags::Flags flags = EnvironmentFlags::kDefaultFlags,
- ThreadId thread_id = {} /* allocates a thread id automatically */,
- std::unique_ptr inspector_parent_handle = {});
-
-// Returns a handle that can be passed to `LoadEnvironment()`, making the
-// child Environment accessible to the inspector as if it were a Node.js Worker.
-// `child_thread_id` can be created using `AllocateEnvironmentThreadId()`
-// and then later passed on to `CreateEnvironment()` to create the child
-// Environment, together with the inspector handle.
-// This method should not be called while the parent Environment is active
-// on another thread.
-NODE_EXTERN std::unique_ptr GetInspectorParentHandle(
- Environment* parent_env,
- ThreadId child_thread_id,
- const char* child_url);
-
-NODE_EXTERN std::unique_ptr GetInspectorParentHandle(
- Environment* parent_env,
- ThreadId child_thread_id,
- const char* child_url,
- const char* name);
-
-struct StartExecutionCallbackInfo {
- v8::Local process_object;
- v8::Local native_require;
- v8::Local run_cjs;
-};
-
-using StartExecutionCallback =
- std::function(const StartExecutionCallbackInfo&)>;
-
-NODE_EXTERN v8::MaybeLocal LoadEnvironment(
- Environment* env,
- StartExecutionCallback cb);
-NODE_EXTERN v8::MaybeLocal LoadEnvironment(
- Environment* env, std::string_view main_script_source_utf8);
-NODE_EXTERN void FreeEnvironment(Environment* env);
-
-// Set a callback that is called when process.exit() is called from JS,
-// overriding the default handler.
-// It receives the Environment* instance and the exit code as arguments.
-// This could e.g. call Stop(env); in order to terminate execution and stop
-// the event loop.
-// The default handler disposes of the global V8 platform instance, if one is
-// being used, and calls exit().
-NODE_EXTERN void SetProcessExitHandler(
- Environment* env,
- std::function&& handler);
-NODE_EXTERN void DefaultProcessExitHandler(Environment* env, int exit_code);
-
-// This may return nullptr if context is not associated with a Node instance.
-NODE_EXTERN Environment* GetCurrentEnvironment(v8::Local context);
-NODE_EXTERN IsolateData* GetEnvironmentIsolateData(Environment* env);
-NODE_EXTERN ArrayBufferAllocator* GetArrayBufferAllocator(IsolateData* data);
-// This is mostly useful for Environment* instances that were created through
-// a snapshot and have a main context that was read from that snapshot.
-NODE_EXTERN v8::Local