Add CodeQL Analysis workflow (#13851)

This commit is contained in:
fisker Cheung authored and GitHub committed 2022-11-20 15:35:24 +08:00
1 parent decc3bae65
commit f9a71da439
9 files changed
+293 -58

No files matched your search

+3
View File
@@ -0,0 +1,3 @@
name: "CodeQL config"
paths-ignore:
- tests/format
+40
View File
@@ -0,0 +1,40 @@
name: CodeQL
on:
push:
branches:
- main
- patch-release
- next
- "!renovate/**"
pull_request:
branches:
- main
- patch-release
- next
- "!renovate/**"
permissions:
actions: read
contents: read
security-events: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3.1.0
- name: Initialize CodeQL
uses: github/codeql-action/init@v2.1.32
with:
config-file: ./.github/codeql/codeql-config.yml
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2.1.32
+4
View File
@@ -2,6 +2,10 @@ name: Internal_ESLint_Rules_Test
on:
push:
branches:
- main
- patch-release
- next
paths:
- "scripts/tools/eslint-plugin-prettier-internal-rules/**"
# This workflow file
@@ -13,6 +13,10 @@ concurrency:
on:
push:
branches:
- main
- patch-release
- next
paths:
- "scripts/release/**"
- ".github/workflows/release-script-test.yml"
+1 -1
View File
@@ -836,7 +836,7 @@ function printTitle(title, options, printSpace = true) {
: options.singleQuote
? "'"
: '"';
title = title.replace(/\\/, "\\\\");
title = title.replaceAll("\\", "\\\\");
title = title.replace(new RegExp(`(${quote})`, "g"), "\\$1");
return `${quote}${title}${quote}`;
}
@@ -206,12 +206,27 @@ proseWrap: "always"
[a]: https://example.com "\\\\\\""
[a]: https://example.com '\\\\\\''
[a] https://example.com (\\\\\\))
[a]: https://example.com (\\\\\\))
[a]: https://example.com "\\\\'"
[a]: https://example.com '\\\\"'
[a]: https://example.com (\\\\")
[a]: https://example.com "\\a\\a"
[a]: https://example.com '\\a\\a'
[a]: https://example.com (\\a\\a)
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com '\\\\a\\\\a'
[a]: https://example.com (\\\\a\\\\a)
[a]: https://example.com "\\\\\\a\\\\\\a"
[a]: https://example.com '\\\\\\a\\\\\\a'
[a]: https://example.com (\\\\\\a\\\\\\a)
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com '\\\\\\\\a\\\\\\\\a'
[a]: https://example.com (\\\\\\\\a\\\\\\\\a)
=====================================output=====================================
[ref]: https://example.com "bar"
@@ -231,12 +246,24 @@ https://example.com (\\")
[a]: https://example.com (\\))
[a]: https://example.com "\\\\\\"" [a]: https://example.com '\\\\\\'' [a]
[a]: https://example.com "\\\\\\"" [a]: https://example.com '\\\\\\'' [a]:
https://example.com (\\\\\\))
[a]: https://example.com "'"
[a]: https://example.com '"'
[a]: https://example.com '"'
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
================================================================================
`;
@@ -265,12 +292,27 @@ proseWrap: "never"
[a]: https://example.com "\\\\\\""
[a]: https://example.com '\\\\\\''
[a] https://example.com (\\\\\\))
[a]: https://example.com (\\\\\\))
[a]: https://example.com "\\\\'"
[a]: https://example.com '\\\\"'
[a]: https://example.com (\\\\")
[a]: https://example.com "\\a\\a"
[a]: https://example.com '\\a\\a'
[a]: https://example.com (\\a\\a)
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com '\\\\a\\\\a'
[a]: https://example.com (\\\\a\\\\a)
[a]: https://example.com "\\\\\\a\\\\\\a"
[a]: https://example.com '\\\\\\a\\\\\\a'
[a]: https://example.com (\\\\\\a\\\\\\a)
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com '\\\\\\\\a\\\\\\\\a'
[a]: https://example.com (\\\\\\\\a\\\\\\\\a)
=====================================output=====================================
[ref]: https://example.com "bar"
@@ -287,11 +329,23 @@ proseWrap: "never"
[a]: https://example.com (\\))
[a]: https://example.com "\\\\\\"" [a]: https://example.com '\\\\\\'' [a] https://example.com (\\\\\\))
[a]: https://example.com "\\\\\\"" [a]: https://example.com '\\\\\\'' [a]: https://example.com (\\\\\\))
[a]: https://example.com "'"
[a]: https://example.com '"'
[a]: https://example.com '"'
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
[a]: https://example.com "\\\\\\\\a\\\\\\\\a"
================================================================================
`;
+16 -1
View File
@@ -15,9 +15,24 @@
[a]: https://example.com "\\\""
[a]: https://example.com '\\\''
[a] https://example.com (\\\))
[a]: https://example.com (\\\))
[a]: https://example.com "\\'"
[a]: https://example.com '\\"'
[a]: https://example.com (\\")
[a]: https://example.com "\a\a"
[a]: https://example.com '\a\a'
[a]: https://example.com (\a\a)
[a]: https://example.com "\\a\\a"
[a]: https://example.com '\\a\\a'
[a]: https://example.com (\\a\\a)
[a]: https://example.com "\\\a\\\a"
[a]: https://example.com '\\\a\\\a'
[a]: https://example.com (\\\a\\\a)
[a]: https://example.com "\\\\a\\\\a"
[a]: https://example.com '\\\\a\\\\a'
[a]: https://example.com (\\\\a\\\\a)
+141 -28
View File
@@ -28,39 +28,146 @@
<link
rel="stylesheet"
crossorigin
href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/codemirror.min.css"
href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/codemirror.min.css"
integrity="sha512-uf06llspW44/LZpHzHT6qBOIVODjWtv4MxCricRxkzvopAlSWnTf6hpZTFxuuZcuNE9CBQhqE0Seu1CoRk84nQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<link
rel="stylesheet"
crossorigin
href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/fold/foldgutter.min.css"
href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/foldgutter.min.css"
integrity="sha512-YwkMTlTHn8dBnwa47IF+cKsS00HPiiVhQ4DpwT1KF2gUftfFR7aefepabSPLAs6zrMyD89M3w0Ow6mQ5XJEUCw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/codemirror.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/mode/javascript/javascript.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/mode/xml/xml.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/mode/jsx/jsx.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/mode/css/css.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/mode/markdown/markdown.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/display/placeholder.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/display/rulers.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/search/searchcursor.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/edit/matchbrackets.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/edit/closebrackets.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/comment/comment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/wrap/hardwrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/fold/foldcode.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/fold/foldgutter.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/addon/fold/brace-fold.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.6/keymap/sublime.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.11/clipboard.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/lz-string/1.4.4/lz-string.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.1.0/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.1.0/umd/react-dom.production.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/codemirror.min.js"
integrity="sha512-Kpi2Sp2KpXM2S7aM0p+CwWhm8NuogI15GFPXCmgqAnFr5c86VBXuLEZu0IGBwGSdhhTW6148hP9KTcRMmrjuFQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/javascript/javascript.min.js"
integrity="sha512-I6CdJdruzGtvDyvdO4YsiAq+pkWf2efgd1ZUSK2FnM/u2VuRASPC7GowWQrWyjxCZn6CT89s3ddGI+be0Ak9Fg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/xml/xml.min.js"
integrity="sha512-LarNmzVokUmcA7aUDtqZ6oTS+YXmUKzpGdm8DxC46A6AHu+PQiYCUlwEGWidjVYMo/QXZMFMIadZtrkfApYp/g=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/jsx/jsx.min.js"
integrity="sha512-+0Bk5jqcZFYMi5WaRZaTboF7s25sht/1pxmg3sXqWDeidrrw1yRqDzF25jsMOnToR8iXSqzrHfAD5wiDO1lwSA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/css/css.js"
integrity="sha512-kbf0gMc1+KPTTDWkjkGwf3h2Nx4djnWBVtcCKJcwLQpQ/TIMAjRBKM9f0ZDgj9kT5WTs1Qzsq+5Si2p7j9whkg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/markdown/markdown.min.js"
integrity="sha512-DmMao0nRIbyDjbaHc8fNd3kxGsZj9PCU6Iu/CeidLQT9Py8nYVA5n0PqXYmvqNdU+lCiTHOM/4E7bM/G8BttJg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/display/placeholder.min.js"
integrity="sha512-acBo6sW2h2GZQ9BqU9v5RyYGPUEr1a9jrukJg825Y0ahxAg/7aqTNPtcalloqnf4DfsRVdcdNmcBNWPD8b8W8Q=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/display/rulers.min.js"
integrity="sha512-sF+AF3zpVOHMt4f4mN1dVS2/Hon6pr/7h1gc7rDHtga0SeD9z0UiL1J0k3umDFEz5qkY06ARcNzi45NkJ9GsYw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/search/searchcursor.min.js"
integrity="sha512-+ZfZDC9gi1y9Xoxi9UUsSp+5k+AcFE0TRNjI0pfaAHQ7VZTaaoEpBZp9q9OvHdSomOze/7s5w27rcsYpT6xU6g=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/edit/matchbrackets.min.js"
integrity="sha512-GSYCbN/le5gNmfAWVEjg1tKnOH7ilK6xCLgA7c48IReoIR2g2vldxTM6kZlN6o3VtWIe6fHu/qhwxIt11J8EBA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/edit/closebrackets.min.js"
integrity="sha512-tsjcYO5hFvViRssxiM7Jhd8601epWOx1He3Hl4yuI5dKKPxr43KxkOhc9GZeeqzlYJm9ABb7UPA9697NiqZZ7Q=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/comment/comment.min.js"
integrity="sha512-UaJ8Lcadz5cc5mkWmdU8cJr0wMn7d8AZX5A24IqVGUd1MZzPJTq9dLLW6I102iljTcdB39YvVcCgBhM0raGAZQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/wrap/hardwrap.min.js"
integrity="sha512-ZPPL1o5pyZOIF/+PL/pRRBdxrYENhEbcNas/6PJcXMM1aBu5wI2yeFzJY6Jv+fJjH8o48HBYomInIYsYvFlXig=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/foldcode.min.js"
integrity="sha512-Q2qfEJEU257Qlqc4/5g6iKuJNnn5L0xu2D48p8WHe9YC/kLj2UfkdGD01qfxWk+XIcHsZngcA8WuKcizF8MAHA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/foldgutter.js"
integrity="sha512-tGjjnhNOLvNMtP2S/fpsalcaJofEksE83moo23We+afRBd1kx3JtSSDn9CDmEyKhwk4N7dJqLq3iUWyVOs9ejQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/brace-fold.min.js"
integrity="sha512-5MuaB1PVXvhsYVG0Ozb0bwauN7/D1VU4P8dwo5E/xiB9SXY+VSEhIyxt1ggYk2xaB/RKqKL7rPXpm1o1IlTQDA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/keymap/sublime.min.js"
integrity="sha512-SV3qeFFtzcmGtUQPLM7HLy/7GKJ/x3c2PdiF5GZQnbHzIlI2q7r77y0IgLLbBDeHiNfCSBYDQt898Xp0tcZOeA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.11/clipboard.min.js"
integrity="sha512-7O5pXpc0oCRrxk8RUfDYFgn0nO1t+jLuIOQdOMRp4APB7uZ4vSjspzp5y6YDtDs4VzUSTbWzBFZ/LKJhnyFOKw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/lz-string/1.4.4/lz-string.min.js"
integrity="sha512-qoCTmFwBtCPvFhA+WAqatSOrghwpDhFHxwAGh+cppWonXbHA09nG1z5zi4/NGnp8dUhXiVrzA6EnKgJA+fyrpw=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js"
integrity="sha512-8Q6Y9XnTbOE+JNvjBQwJ2H8S+UV4uA6hiRykhdtIyDYZ2TprdNmWOUaKdGzOhyr4dCyk287OejbPvwl7lrfqrQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js"
integrity="sha512-MOCpqoRoisCTwJ8vQQiciZv0qcpROCidek3GTFS6KTk2+y7munJIlKCVkFCYY+p3ErYFXCjmFjnfTTRSC1OHWQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<link rel="stylesheet" href="/separate-css/playground.css" />
<!-- Global site tag (gtag.js) - Google Analytics -->
@@ -103,6 +210,12 @@
<script src="/install-service-worker.js"></script>
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script
async
defer
src="https://buttons.github.io/buttons.js"
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
</body>
</html>
+26 -24
View File
@@ -3,7 +3,9 @@
"use strict";
importScripts("lib/parsers-location.js");
importScripts("https://unpkg.com/sw-toolbox@3.6.0/sw-toolbox.js");
importScripts(
"https://cdnjs.cloudflare.com/ajax/libs/sw-toolbox/3.6.0/sw-toolbox.js"
);
const plugins = [
...new Set(Object.values(parsersLocation).map((file) => `lib/${file}`)),
@@ -15,33 +17,33 @@ toolbox.precache([
"lib/parsers-location.js",
...plugins,
"playground.js",
"https://unpkg.com/sw-toolbox@3.6.0/sw-toolbox.js",
"https://cdnjs.cloudflare.com/ajax/libs/sw-toolbox/3.6.0/sw-toolbox.js",
// CodeMirror; keep this in sync with website/pages/playground/index.html
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/codemirror.min.css",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/fold/foldgutter.min.css",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/codemirror.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/javascript/javascript.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/xml/xml.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/jsx/jsx.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/css/css.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/mode/markdown/markdown.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/display/placeholder.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/display/rulers.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/search/searchcursor.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/edit/matchbrackets.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/edit/closebrackets.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/comment/comment.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/wrap/hardwrap.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/fold/foldcode.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/fold/foldgutter.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/addon/fold/brace-fold.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.58.1/keymap/sublime.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/codemirror.min.css",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/foldgutter.min.css",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/codemirror.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/javascript/javascript.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/xml/xml.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/jsx/jsx.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/css/css.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/mode/markdown/markdown.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/display/placeholder.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/display/rulers.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/search/searchcursor.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/edit/matchbrackets.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/edit/closebrackets.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/comment/comment.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/wrap/hardwrap.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/foldcode.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/foldgutter.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/addon/fold/brace-fold.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.65.9/keymap/sublime.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.11/clipboard.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/lz-string/1.4.4/lz-string.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/react/17.0.1/umd/react.production.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/react-dom/17.0.1/umd/react-dom.production.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/react/18.2.0/umd/react.production.min.js",
"https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.2.0/umd/react-dom.production.min.js",
// Images
"/prettier.png",