diff --git a/.eslintrc.js b/.eslintrc.cjs
similarity index 100%
rename from .eslintrc.js
rename to .eslintrc.cjs
diff --git a/.eslintrc.lang.js b/.eslintrc.lang.cjs
similarity index 100%
rename from .eslintrc.lang.js
rename to .eslintrc.lang.cjs
diff --git a/VERSION_11_UPGRADE.md b/VERSION_11_UPGRADE.md
new file mode 100644
index 0000000000..c418aaba78
--- /dev/null
+++ b/VERSION_11_UPGRADE.md
@@ -0,0 +1,47 @@
+# Default Build Changes
+
+- remove apache, http, nginx, properties, coffeescript from :common #2848
+
+### Feature Removal
+
+- HTML merging is now no longer included in core. You'll want to use a plugin instead. https://github.com/highlightjs/highlight.js/issues/2889
+- fixMarkup is gone now, provide your own replacement #2534
+
+### Behavior changes
+
+- `initHighlighting` and `initHighlightingOnLoad` call `highlightAll`
+- Calling `highlightAll` over and over is not guarded against
+
+### Grammar's removed or renamed
+
+- remove the old htmlbars stub, use handlebars
+- remove c-like, use c, cpp, or arduino
+- removed `sql_more`, use `sql` instead
+
+### Visual / Themeing / CSS Changes
+
+- Default padding on `.hljs` is now 1em (up from 0.5em)
+- schoolbook no longer has a custom lined background, it's solid now
+
+### Alias Changes
+
+- php3,4,5,6,etc... aliases removed, use php instead
+- `zsh` removed, use `sh` instead
+- `freepascal`, `lazarus`, `lpr`, `lpm` removed. Use `delphi` or add you own aliases back.
+
+## API's changed
+
+- rename second_best to secondBest (highlightAuto)
+- highlightElement/highlightBlock result now no longer returns `re` key, use `relevance` instead
+- `CSS_NUMBER_MODE` has now been moved into the internal `css-shared` library
+- `highlight()` result now renames some keys to mark them as private: `_top`, `_emitter`, and `_illegalBy`
+
+### Configuration options removed/changed
+
+- useBR gone, #2559
+- tabReplace gone, #2874
+
+## Others
+
+- `relevance` returned may be a floating point number now
+- regex utility `join` renamed to `_eitherRewriteBackreferences` (this was always internal)
diff --git a/docs/api.rst b/docs/api.rst
index 3c2936b0d4..1f58be722e 100644
--- a/docs/api.rst
+++ b/docs/api.rst
@@ -42,17 +42,7 @@ Returns an object with the following properties:
* ``language``: detected language
* ``relevance``: integer value representing the relevance score
* ``value``: HTML string with highlighting markup
-* ``second_best``: object with the same structure for second-best heuristically detected language (may be absent)
-
-
-``fixMarkup(value)`` (deprecated as of 10.3)
---------------------------------------------
-
-**fixMarkup is deprecated and will be removed entirely in v11.**
-
-Post-processing of the highlighted markup. Currently consists of replacing indentation TAB characters and using ``
`` tags instead of new-line characters. Options are set globally with ``configure``.
-
-Accepts a string with the highlighted markup.
+* ``secondBest``: object with the same structure for second-best heuristically detected language (may be absent)
``highlightBlock(block)``
@@ -73,8 +63,6 @@ in the ``class`` attribute of the DOM node. See the :doc:`class reference
Configures global options:
-* ``tabReplace``: a string used to replace TAB characters in indentation.
-* ``useBR``: a flag to generate ``
`` tags instead of new-line characters in the output, useful when code is marked up using a non-``
`` container.
* ``classPrefix``: a string prefix added before class names in the generated markup, used for backwards compatibility with stylesheets.
* ``languages``: an array of language names and aliases restricting auto detection to only these languages.
* ``languageDetectRe``: a regex to configure how CSS class names map to language (allows class names like say `color-as-php` vs the default of `language-php`, etc.)
@@ -84,11 +72,12 @@ Accepts an object representing options with the values to updated. Other options
::
hljs.configure({
- tabReplace: ' ', // 4 spaces
+ noHighlightRe: /^do-not-highlightme$/i,
+ languageDetectRe: /\bgrammar-([\w-]+)\b/i, // for `grammar-swift` style CSS naming
classPrefix: '' // don't append class prefix
// … other options aren't changed
});
- hljs.initHighlighting();
+ hljs.highlightAll();
``highlightAll()``
diff --git a/docs/style-guide.rst b/docs/style-guide.rst
index e813f94ec3..b02b47b670 100644
--- a/docs/style-guide.rst
+++ b/docs/style-guide.rst
@@ -60,17 +60,6 @@ Okay to use:
These may seem arbitrary at first but it's what has shown to make sense in
practice.
-There's also a common set of rules that *has* to be defined for the root
-container verbatim:
-
-::
-
- .hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
- }
-
``.subst``
----------
diff --git a/package-lock.json b/package-lock.json
index 7217d29247..eb3f0d3ead 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -83,9 +83,9 @@
}
},
"node_modules/@eslint/eslintrc": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
- "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz",
+ "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==",
"dev": true,
"dependencies": {
"ajv": "^6.12.4",
@@ -95,7 +95,6 @@
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
"js-yaml": "^3.13.1",
- "lodash": "^4.17.20",
"minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1"
},
@@ -103,6 +102,21 @@
"node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/@eslint/eslintrc/node_modules/ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
@@ -112,6 +126,15 @@
"node": ">= 4"
}
},
+ "node_modules/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@nodelib/fs.scandir": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
@@ -250,15 +273,6 @@
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
"dev": true
},
- "node_modules/@rollup/pluginutils/node_modules/picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- }
- },
"node_modules/@types/estree": {
"version": "0.0.39",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
@@ -300,13 +314,13 @@
"dev": true
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.1.tgz",
- "integrity": "sha512-yW2epMYZSpNJXZy22Biu+fLdTG8Mn6b22kR3TqblVk50HGNV8Zya15WAXuQCr8tKw4Qf1BL4QtI6kv6PCkLoJw==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz",
+ "integrity": "sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/experimental-utils": "4.15.1",
- "@typescript-eslint/scope-manager": "4.15.1",
+ "@typescript-eslint/experimental-utils": "4.18.0",
+ "@typescript-eslint/scope-manager": "4.18.0",
"debug": "^4.1.1",
"functional-red-black-tree": "^1.0.1",
"lodash": "^4.17.15",
@@ -344,15 +358,15 @@
}
},
"node_modules/@typescript-eslint/experimental-utils": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.1.tgz",
- "integrity": "sha512-9LQRmOzBRI1iOdJorr4jEnQhadxK4c9R2aEAsm7WE/7dq8wkKD1suaV0S/JucTL8QlYUPU1y2yjqg+aGC0IQBQ==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz",
+ "integrity": "sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/scope-manager": "4.15.1",
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/typescript-estree": "4.15.1",
+ "@typescript-eslint/scope-manager": "4.18.0",
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/typescript-estree": "4.18.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
},
@@ -368,14 +382,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.1.tgz",
- "integrity": "sha512-V8eXYxNJ9QmXi5ETDguB7O9diAXlIyS+e3xzLoP/oVE4WCAjssxLIa0mqCLsCGXulYJUfT+GV70Jv1vHsdKwtA==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.18.0.tgz",
+ "integrity": "sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "4.15.1",
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/typescript-estree": "4.15.1",
+ "@typescript-eslint/scope-manager": "4.18.0",
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/typescript-estree": "4.18.0",
"debug": "^4.1.1"
},
"engines": {
@@ -395,13 +409,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.1.tgz",
- "integrity": "sha512-ibQrTFcAm7yG4C1iwpIYK7vDnFg+fKaZVfvyOm3sNsGAerKfwPVFtYft5EbjzByDJ4dj1WD8/34REJfw/9wdVA==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz",
+ "integrity": "sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/visitor-keys": "4.15.1"
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/visitor-keys": "4.18.0"
},
"engines": {
"node": "^8.10.0 || ^10.13.0 || >=11.10.1"
@@ -412,9 +426,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.1.tgz",
- "integrity": "sha512-iGsaUyWFyLz0mHfXhX4zO6P7O3sExQpBJ2dgXB0G5g/8PRVfBBsmQIc3r83ranEQTALLR3Vko/fnCIVqmH+mPw==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.18.0.tgz",
+ "integrity": "sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A==",
"dev": true,
"engines": {
"node": "^8.10.0 || ^10.13.0 || >=11.10.1"
@@ -425,13 +439,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.1.tgz",
- "integrity": "sha512-z8MN3CicTEumrWAEB2e2CcoZa3KP9+SMYLIA2aM49XW3cWIaiVSOAGq30ffR5XHxRirqE90fgLw3e6WmNx5uNw==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz",
+ "integrity": "sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/visitor-keys": "4.15.1",
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/visitor-keys": "4.18.0",
"debug": "^4.1.1",
"globby": "^11.0.1",
"is-glob": "^4.0.1",
@@ -467,12 +481,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.1.tgz",
- "integrity": "sha512-tYzaTP9plooRJY8eNlpAewTOqtWW/4ff/5wBjNVaJ0S0wC4Gpq/zDVRTJa5bq2v1pCNQ08xxMCndcvR+h7lMww==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz",
+ "integrity": "sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "4.15.1",
+ "@typescript-eslint/types": "4.18.0",
"eslint-visitor-keys": "^2.0.0"
},
"engines": {
@@ -725,9 +739,9 @@
}
},
"node_modules/binary-extensions": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
- "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true,
"engines": {
"node": ">=8"
@@ -791,15 +805,6 @@
"node": ">=6"
}
},
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -871,14 +876,13 @@
}
},
"node_modules/chokidar": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
- "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
"dev": true,
"dependencies": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
- "fsevents": "~2.1.2",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@@ -889,13 +893,13 @@
"node": ">= 8.10.0"
},
"optionalDependencies": {
- "fsevents": "~2.1.2"
+ "fsevents": "~2.3.1"
}
},
"node_modules/clean-css": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.0.1.tgz",
- "integrity": "sha512-F1zAGOowUCg8yxT0O4UR+nmbMauf3YwbiUS60CPxpzJU7ulpamGzQomFrJSK4w/HqHtMmQKSHJUNue+dQQYQdg==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.1.tgz",
+ "integrity": "sha512-GQ6HdEyJN0543mRTA/TkZ7RPoMXGWKq1shs9H86F2kLuixR0RI+xd4JfhJxWUW08FGKQXTKAKpVjKQXu5zkFNA==",
"dev": true,
"dependencies": {
"source-map": "~0.6.0"
@@ -914,91 +918,35 @@
}
},
"node_modules/cli-table": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz",
- "integrity": "sha512-1vinpnX/ZERcmE443i3SZTmU5DF0rPO9DrL4I2iVAllhxzCM9SzPlHnz19fsZB78htkKZvYBvj6SZ6vXnaxmTA==",
- "dev": true,
- "dependencies": {
- "chalk": "^2.4.1",
- "string-width": "^4.2.0"
- },
- "engines": {
- "node": ">= 10.0.0"
- }
- },
- "node_modules/cli-table/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz",
+ "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==",
"dev": true,
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "colors": "1.0.3"
},
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/cli-table/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/cli-table/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node": ">= 0.2.0"
}
},
- "node_modules/cli-table/node_modules/string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+ "node_modules/cli-table/node_modules/colors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
"dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
"engines": {
- "node": ">=8"
+ "node": ">=0.1.90"
}
},
"node_modules/cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "dev": true,
- "dependencies": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
- }
- },
- "node_modules/cliui/node_modules/ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
"node_modules/color-convert": {
@@ -1038,9 +986,9 @@
}
},
"node_modules/commander": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz",
- "integrity": "sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz",
+ "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==",
"dev": true,
"engines": {
"node": ">= 10"
@@ -1138,24 +1086,20 @@
}
},
"node_modules/debug": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
- "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true,
"dependencies": {
"ms": "2.1.2"
},
"engines": {
"node": ">=6.0"
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
"node_modules/decimal.js": {
@@ -1232,9 +1176,9 @@
"dev": true
},
"node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
"dev": true,
"engines": {
"node": ">=0.3.1"
@@ -1296,9 +1240,9 @@
}
},
"node_modules/emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"node_modules/enquirer": {
@@ -1367,6 +1311,15 @@
"node": ">= 0.4"
}
},
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -1377,33 +1330,44 @@
}
},
"node_modules/escodegen": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
- "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
+ "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
"dev": true,
"dependencies": {
"esprima": "^4.0.1",
- "estraverse": "^4.2.0",
+ "estraverse": "^5.2.0",
"esutils": "^2.0.2",
- "optionator": "^0.8.1",
- "source-map": "~0.6.1"
+ "optionator": "^0.8.1"
},
"bin": {
"escodegen": "bin/escodegen.js",
"esgenerate": "bin/esgenerate.js"
},
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/escodegen/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true,
"engines": {
"node": ">=4.0"
}
},
"node_modules/eslint": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.20.0.tgz",
- "integrity": "sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw==",
+ "version": "7.22.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz",
+ "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==",
"dev": true,
"dependencies": {
"@babel/code-frame": "7.12.11",
- "@eslint/eslintrc": "^0.3.0",
+ "@eslint/eslintrc": "^0.4.0",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -1416,10 +1380,10 @@
"espree": "^7.3.1",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
- "file-entry-cache": "^6.0.0",
+ "file-entry-cache": "^6.0.1",
"functional-red-black-tree": "^1.0.1",
"glob-parent": "^5.0.0",
- "globals": "^12.1.0",
+ "globals": "^13.6.0",
"ignore": "^4.0.6",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
@@ -1427,7 +1391,7 @@
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
- "lodash": "^4.17.20",
+ "lodash": "^4.17.21",
"minimatch": "^3.0.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
@@ -1923,15 +1887,6 @@
"node": ">= 6"
}
},
- "node_modules/fast-glob/node_modules/picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- }
- },
"node_modules/fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
@@ -1954,9 +1909,9 @@
}
},
"node_modules/file-entry-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz",
- "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
"dependencies": {
"flat-cache": "^3.0.4"
@@ -2022,9 +1977,9 @@
}
},
"node_modules/flatted": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz",
- "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz",
+ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==",
"dev": true
},
"node_modules/forever-agent": {
@@ -2057,10 +2012,11 @@
"dev": true
},
"node_modules/fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
+ "hasInstallScript": true,
"optional": true,
"os": [
"darwin"
@@ -2129,9 +2085,9 @@
}
},
"node_modules/glob-promise": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-4.0.1.tgz",
- "integrity": "sha512-QwMkHW0vn0hXHFQg3JWsj2HW8pJQhHeAvsaIcpn4EDP5bU757GtJP/ClLX4iKIFtzgodRiKtb+aOG/k6i2B5mw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-4.1.0.tgz",
+ "integrity": "sha512-wOdaX1+QJi3ldbjq4fXX/BbGSjhsG6eGXqMnBjQj9ubDiDLvrXbbXRj02rA0CXbMMM7J58dajiQ72va63D7pNw==",
"dev": true,
"dependencies": {
"@types/glob": "^7.1.3"
@@ -2144,12 +2100,12 @@
}
},
"node_modules/globals": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
- "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "version": "13.6.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz",
+ "integrity": "sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==",
"dev": true,
"dependencies": {
- "type-fest": "^0.8.1"
+ "type-fest": "^0.20.2"
},
"engines": {
"node": ">=8"
@@ -2191,15 +2147,14 @@
}
},
"node_modules/handlebars": {
- "version": "4.7.6",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
- "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
"dev": true,
"dependencies": {
"minimist": "^1.2.5",
"neo-async": "^2.6.0",
"source-map": "^0.6.1",
- "uglify-js": "^3.1.4",
"wordwrap": "^1.0.0"
},
"bin": {
@@ -2377,15 +2332,6 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
- "node_modules/ip-regex": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
- "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -2582,9 +2528,9 @@
"dev": true
},
"node_modules/js-yaml": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
- "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"dependencies": {
"argparse": "^1.0.7",
@@ -2601,40 +2547,60 @@
"dev": true
},
"node_modules/jsdom": {
- "version": "16.4.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz",
- "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==",
+ "version": "16.5.1",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz",
+ "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==",
"dev": true,
"dependencies": {
- "abab": "^2.0.3",
- "acorn": "^7.1.1",
+ "abab": "^2.0.5",
+ "acorn": "^8.0.5",
"acorn-globals": "^6.0.0",
"cssom": "^0.4.4",
- "cssstyle": "^2.2.0",
+ "cssstyle": "^2.3.0",
"data-urls": "^2.0.0",
- "decimal.js": "^10.2.0",
+ "decimal.js": "^10.2.1",
"domexception": "^2.0.1",
- "escodegen": "^1.14.1",
+ "escodegen": "^2.0.0",
"html-encoding-sniffer": "^2.0.1",
"is-potential-custom-element-name": "^1.0.0",
"nwsapi": "^2.2.0",
- "parse5": "5.1.1",
+ "parse5": "6.0.1",
"request": "^2.88.2",
- "request-promise-native": "^1.0.8",
- "saxes": "^5.0.0",
+ "request-promise-native": "^1.0.9",
+ "saxes": "^5.0.1",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^3.0.1",
+ "tough-cookie": "^4.0.0",
"w3c-hr-time": "^1.0.2",
"w3c-xmlserializer": "^2.0.0",
"webidl-conversions": "^6.1.0",
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^8.0.0",
- "ws": "^7.2.3",
+ "ws": "^7.4.4",
"xml-name-validator": "^3.0.0"
},
"engines": {
"node": ">=10"
+ },
+ "peerDependencies": {
+ "canvas": "^2.5.0"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsdom/node_modules/acorn": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz",
+ "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
}
},
"node_modules/json-schema": {
@@ -2729,9 +2695,9 @@
}
},
"node_modules/lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
"node_modules/lodash.sortby": {
@@ -2826,35 +2792,35 @@
"dev": true
},
"node_modules/mocha": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz",
- "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==",
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz",
+ "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==",
"dev": true,
"dependencies": {
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
- "chokidar": "3.4.3",
- "debug": "4.2.0",
- "diff": "4.0.2",
+ "chokidar": "3.5.1",
+ "debug": "4.3.1",
+ "diff": "5.0.0",
"escape-string-regexp": "4.0.0",
"find-up": "5.0.0",
"glob": "7.1.6",
"growl": "1.10.5",
"he": "1.2.0",
- "js-yaml": "3.14.0",
+ "js-yaml": "4.0.0",
"log-symbols": "4.0.0",
"minimatch": "3.0.4",
- "ms": "2.1.2",
- "nanoid": "3.1.12",
+ "ms": "2.1.3",
+ "nanoid": "3.1.20",
"serialize-javascript": "5.0.1",
"strip-json-comments": "3.1.1",
- "supports-color": "7.2.0",
+ "supports-color": "8.1.1",
"which": "2.0.2",
"wide-align": "1.1.3",
- "workerpool": "6.0.2",
- "yargs": "13.3.2",
- "yargs-parser": "13.1.2",
+ "workerpool": "6.1.0",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
"yargs-unparser": "2.0.0"
},
"bin": {
@@ -2863,8 +2829,18 @@
},
"engines": {
"node": ">= 10.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mochajs"
}
},
+ "node_modules/mocha/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
"node_modules/mocha/node_modules/escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -2883,16 +2859,37 @@
"node": ">=8"
}
},
+ "node_modules/mocha/node_modules/js-yaml": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/mocha/node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
"node_modules/mocha/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
"node_modules/ms": {
@@ -2902,15 +2899,15 @@
"dev": true
},
"node_modules/nanoid": {
- "version": "3.1.12",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz",
- "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==",
+ "version": "3.1.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
+ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
"dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
"engines": {
- "node": "^10 || ^12 || >=13.7"
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
}
},
"node_modules/natural-compare": {
@@ -3102,9 +3099,9 @@
}
},
"node_modules/parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
"dev": true
},
"node_modules/path-exists": {
@@ -3156,12 +3153,15 @@
"dev": true
},
"node_modules/picomatch": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
- "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/pify": {
@@ -3403,15 +3403,6 @@
"node": ">=8.10.0"
}
},
- "node_modules/readdirp/node_modules/picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- }
- },
"node_modules/refa": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/refa/-/refa-0.4.1.tgz",
@@ -3522,12 +3513,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
"node_modules/resolve": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
@@ -3573,13 +3558,10 @@
}
},
"node_modules/rollup": {
- "version": "2.39.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.39.0.tgz",
- "integrity": "sha512-+WR3bttcq7zE+BntH09UxaW3bQo3vItuYeLsyk4dL2tuwbeSKJuvwiawyhEnvRdRgrII0Uzk00FpctHO/zB1kw==",
+ "version": "2.41.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.41.4.tgz",
+ "integrity": "sha512-f9IHfMO8p2Y8OdisI7Oj3oKkPuaQ6cgSwYqAi0TDvP3w2p+oX1VejX/w28a1h8WTnrapzfO5d4Uqhww+gL0b0g==",
"dev": true,
- "dependencies": {
- "fsevents": "~2.3.1"
- },
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -3590,20 +3572,6 @@
"fsevents": "~2.3.1"
}
},
- "node_modules/rollup/node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/run-parallel": {
"version": "1.1.9",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
@@ -3652,12 +3620,6 @@
"randombytes": "^2.1.0"
}
},
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
- },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -3899,38 +3861,26 @@
}
},
"node_modules/string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
"dev": true,
"dependencies": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
- "node_modules/string-width/node_modules/ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/string-width/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "node_modules/string-width/node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
"engines": {
- "node": ">=6"
+ "node": ">=8"
}
},
"node_modules/string.prototype.trimend": {
@@ -4308,35 +4258,6 @@
"node": ">=10.0.0"
}
},
- "node_modules/table/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/table/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/table/node_modules/string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/terser": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/terser/-/terser-5.6.0.tgz",
@@ -4397,14 +4318,14 @@
}
},
"node_modules/tough-cookie": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
- "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
+ "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
"dev": true,
"dependencies": {
- "ip-regex": "^2.1.0",
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.1.2"
},
"engines": {
"node": ">=6"
@@ -4483,18 +4404,21 @@
}
},
"node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/typescript": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz",
- "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
+ "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
"dev": true,
"bin": {
"tsc": "bin/tsc",
@@ -4527,6 +4451,15 @@
"dev": true,
"optional": true
},
+ "node_modules/universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
"node_modules/uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -4649,12 +4582,6 @@
"node": ">= 8"
}
},
- "node_modules/which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "dev": true
- },
"node_modules/wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
@@ -4714,46 +4641,61 @@
"dev": true
},
"node_modules/workerpool": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz",
- "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
+ "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
"dev": true
},
"node_modules/wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"dependencies": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
}
},
- "node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "node_modules/wrap-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
- "ansi-regex": "^4.1.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=6"
+ "node": ">=7.0.0"
}
},
+ "node_modules/wrap-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -4761,12 +4703,24 @@
"dev": true
},
"node_modules/ws": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
- "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz",
+ "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==",
"dev": true,
"engines": {
"node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
}
},
"node_modules/xml-name-validator": {
@@ -4782,10 +4736,13 @@
"dev": true
},
"node_modules/y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
- "dev": true
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
+ "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
},
"node_modules/yallist": {
"version": "4.0.0",
@@ -4794,31 +4751,30 @@
"dev": true
},
"node_modules/yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"dependencies": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.1.2"
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
"dev": true,
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/yargs-unparser": {
@@ -4853,55 +4809,6 @@
"engines": {
"node": ">=10"
}
- },
- "node_modules/yargs/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yargs/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yargs/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yargs/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
}
},
"dependencies": {
@@ -4945,9 +4852,9 @@
}
},
"@eslint/eslintrc": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz",
- "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==",
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.0.tgz",
+ "integrity": "sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
@@ -4957,16 +4864,30 @@
"ignore": "^4.0.6",
"import-fresh": "^3.2.1",
"js-yaml": "^3.13.1",
- "lodash": "^4.17.20",
"minimatch": "^3.0.4",
"strip-json-comments": "^3.1.1"
},
"dependencies": {
+ "globals": {
+ "version": "12.4.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
+ "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.8.1"
+ }
+ },
"ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
+ },
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
}
}
},
@@ -5087,12 +5008,6 @@
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
"integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
"dev": true
- },
- "picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true
}
}
},
@@ -5137,13 +5052,13 @@
"dev": true
},
"@typescript-eslint/eslint-plugin": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.15.1.tgz",
- "integrity": "sha512-yW2epMYZSpNJXZy22Biu+fLdTG8Mn6b22kR3TqblVk50HGNV8Zya15WAXuQCr8tKw4Qf1BL4QtI6kv6PCkLoJw==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.18.0.tgz",
+ "integrity": "sha512-Lzkc/2+7EoH7+NjIWLS2lVuKKqbEmJhtXe3rmfA8cyiKnZm3IfLf51irnBcmow8Q/AptVV0XBZmBJKuUJTe6cQ==",
"dev": true,
"requires": {
- "@typescript-eslint/experimental-utils": "4.15.1",
- "@typescript-eslint/scope-manager": "4.15.1",
+ "@typescript-eslint/experimental-utils": "4.18.0",
+ "@typescript-eslint/scope-manager": "4.18.0",
"debug": "^4.1.1",
"functional-red-black-tree": "^1.0.1",
"lodash": "^4.17.15",
@@ -5161,55 +5076,55 @@
}
},
"@typescript-eslint/experimental-utils": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.15.1.tgz",
- "integrity": "sha512-9LQRmOzBRI1iOdJorr4jEnQhadxK4c9R2aEAsm7WE/7dq8wkKD1suaV0S/JucTL8QlYUPU1y2yjqg+aGC0IQBQ==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.18.0.tgz",
+ "integrity": "sha512-92h723Kblt9JcT2RRY3QS2xefFKar4ZQFVs3GityOKWQYgtajxt/tuXIzL7sVCUlM1hgreiV5gkGYyBpdOwO6A==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
- "@typescript-eslint/scope-manager": "4.15.1",
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/typescript-estree": "4.15.1",
+ "@typescript-eslint/scope-manager": "4.18.0",
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/typescript-estree": "4.18.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
},
"@typescript-eslint/parser": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.15.1.tgz",
- "integrity": "sha512-V8eXYxNJ9QmXi5ETDguB7O9diAXlIyS+e3xzLoP/oVE4WCAjssxLIa0mqCLsCGXulYJUfT+GV70Jv1vHsdKwtA==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.18.0.tgz",
+ "integrity": "sha512-W3z5S0ZbecwX3PhJEAnq4mnjK5JJXvXUDBYIYGoweCyWyuvAKfGHvzmpUzgB5L4cRBb+cTu9U/ro66dx7dIimA==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "4.15.1",
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/typescript-estree": "4.15.1",
+ "@typescript-eslint/scope-manager": "4.18.0",
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/typescript-estree": "4.18.0",
"debug": "^4.1.1"
}
},
"@typescript-eslint/scope-manager": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.15.1.tgz",
- "integrity": "sha512-ibQrTFcAm7yG4C1iwpIYK7vDnFg+fKaZVfvyOm3sNsGAerKfwPVFtYft5EbjzByDJ4dj1WD8/34REJfw/9wdVA==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.18.0.tgz",
+ "integrity": "sha512-olX4yN6rvHR2eyFOcb6E4vmhDPsfdMyfQ3qR+oQNkAv8emKKlfxTWUXU5Mqxs2Fwe3Pf1BoPvrwZtwngxDzYzQ==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/visitor-keys": "4.15.1"
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/visitor-keys": "4.18.0"
}
},
"@typescript-eslint/types": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.15.1.tgz",
- "integrity": "sha512-iGsaUyWFyLz0mHfXhX4zO6P7O3sExQpBJ2dgXB0G5g/8PRVfBBsmQIc3r83ranEQTALLR3Vko/fnCIVqmH+mPw==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.18.0.tgz",
+ "integrity": "sha512-/BRociARpj5E+9yQ7cwCF/SNOWwXJ3qhjurMuK2hIFUbr9vTuDeu476Zpu+ptxY2kSxUHDGLLKy+qGq2sOg37A==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.15.1.tgz",
- "integrity": "sha512-z8MN3CicTEumrWAEB2e2CcoZa3KP9+SMYLIA2aM49XW3cWIaiVSOAGq30ffR5XHxRirqE90fgLw3e6WmNx5uNw==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.18.0.tgz",
+ "integrity": "sha512-wt4xvF6vvJI7epz+rEqxmoNQ4ZADArGQO9gDU+cM0U5fdVv7N+IAuVoVAoZSOZxzGHBfvE3XQMLdy+scsqFfeg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.15.1",
- "@typescript-eslint/visitor-keys": "4.15.1",
+ "@typescript-eslint/types": "4.18.0",
+ "@typescript-eslint/visitor-keys": "4.18.0",
"debug": "^4.1.1",
"globby": "^11.0.1",
"is-glob": "^4.0.1",
@@ -5229,12 +5144,12 @@
}
},
"@typescript-eslint/visitor-keys": {
- "version": "4.15.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.15.1.tgz",
- "integrity": "sha512-tYzaTP9plooRJY8eNlpAewTOqtWW/4ff/5wBjNVaJ0S0wC4Gpq/zDVRTJa5bq2v1pCNQ08xxMCndcvR+h7lMww==",
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.18.0.tgz",
+ "integrity": "sha512-Q9t90JCvfYaN0OfFUgaLqByOfz8yPeTAdotn/XYNm5q9eHax90gzdb+RJ6E9T5s97Kv/UHWKERTmqA0jTKAEHw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "4.15.1",
+ "@typescript-eslint/types": "4.18.0",
"eslint-visitor-keys": "^2.0.0"
},
"dependencies": {
@@ -5431,9 +5346,9 @@
}
},
"binary-extensions": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
- "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true
},
"brace-expansion": {
@@ -5485,12 +5400,6 @@
"integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -5549,14 +5458,14 @@
}
},
"chokidar": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
- "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
"dev": true,
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
- "fsevents": "~2.1.2",
+ "fsevents": "~2.3.1",
"glob-parent": "~5.1.0",
"is-binary-path": "~2.1.0",
"is-glob": "~4.0.1",
@@ -5565,9 +5474,9 @@
}
},
"clean-css": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.0.1.tgz",
- "integrity": "sha512-F1zAGOowUCg8yxT0O4UR+nmbMauf3YwbiUS60CPxpzJU7ulpamGzQomFrJSK4w/HqHtMmQKSHJUNue+dQQYQdg==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.1.tgz",
+ "integrity": "sha512-GQ6HdEyJN0543mRTA/TkZ7RPoMXGWKq1shs9H86F2kLuixR0RI+xd4JfhJxWUW08FGKQXTKAKpVjKQXu5zkFNA==",
"dev": true,
"requires": {
"source-map": "~0.6.0"
@@ -5580,77 +5489,31 @@
"dev": true
},
"cli-table": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz",
- "integrity": "sha512-1vinpnX/ZERcmE443i3SZTmU5DF0rPO9DrL4I2iVAllhxzCM9SzPlHnz19fsZB78htkKZvYBvj6SZ6vXnaxmTA==",
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.6.tgz",
+ "integrity": "sha512-ZkNZbnZjKERTY5NwC2SeMeLeifSPq/pubeRoTpdr3WchLlnZg6hEgvHkK5zL7KNFdd9PmHN8lxrENUwI3cE8vQ==",
"dev": true,
"requires": {
- "chalk": "^2.4.1",
- "string-width": "^4.2.0"
+ "colors": "1.0.3"
},
"dependencies": {
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "colors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
"dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
}
}
},
"cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
"color-convert": {
@@ -5684,9 +5547,9 @@
}
},
"commander": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.0.0.tgz",
- "integrity": "sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz",
+ "integrity": "sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg==",
"dev": true
},
"commondir": {
@@ -5768,20 +5631,14 @@
}
},
"debug": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
- "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
"dev": true,
"requires": {
"ms": "2.1.2"
}
},
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
- },
"decimal.js": {
"version": "10.2.1",
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz",
@@ -5844,9 +5701,9 @@
"dev": true
},
"diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
"dev": true
},
"dir-glob": {
@@ -5895,9 +5752,9 @@
}
},
"emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"enquirer": {
@@ -5956,6 +5813,12 @@
"is-symbol": "^1.0.2"
}
},
+ "escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "dev": true
+ },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -5963,26 +5826,34 @@
"dev": true
},
"escodegen": {
- "version": "1.14.3",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
- "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz",
+ "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==",
"dev": true,
"requires": {
"esprima": "^4.0.1",
- "estraverse": "^4.2.0",
+ "estraverse": "^5.2.0",
"esutils": "^2.0.2",
"optionator": "^0.8.1",
"source-map": "~0.6.1"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "dev": true
+ }
}
},
"eslint": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.20.0.tgz",
- "integrity": "sha512-qGi0CTcOGP2OtCQBgWZlQjcTuP0XkIpYFj25XtRTQSHC+umNnp7UMshr2G8SLsRFYDdAPFeHOsiteadmMH02Yw==",
+ "version": "7.22.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz",
+ "integrity": "sha512-3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==",
"dev": true,
"requires": {
"@babel/code-frame": "7.12.11",
- "@eslint/eslintrc": "^0.3.0",
+ "@eslint/eslintrc": "^0.4.0",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
"cross-spawn": "^7.0.2",
@@ -5995,10 +5866,10 @@
"espree": "^7.3.1",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
- "file-entry-cache": "^6.0.0",
+ "file-entry-cache": "^6.0.1",
"functional-red-black-tree": "^1.0.1",
"glob-parent": "^5.0.0",
- "globals": "^12.1.0",
+ "globals": "^13.6.0",
"ignore": "^4.0.6",
"import-fresh": "^3.0.0",
"imurmurhash": "^0.1.4",
@@ -6006,7 +5877,7 @@
"js-yaml": "^3.13.1",
"json-stable-stringify-without-jsonify": "^1.0.1",
"levn": "^0.4.1",
- "lodash": "^4.17.20",
+ "lodash": "^4.17.21",
"minimatch": "^3.0.4",
"natural-compare": "^1.4.0",
"optionator": "^0.9.1",
@@ -6386,12 +6257,6 @@
"requires": {
"is-glob": "^4.0.1"
}
- },
- "picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true
}
}
},
@@ -6417,9 +6282,9 @@
}
},
"file-entry-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.0.tgz",
- "integrity": "sha512-fqoO76jZ3ZnYrXLDRxBR1YvOvc0k844kcOg40bgsPrE25LAb/PDqTY+ho64Xh2c8ZXgIKldchCFHczG2UVRcWA==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
"requires": {
"flat-cache": "^3.0.4"
@@ -6469,9 +6334,9 @@
}
},
"flatted": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz",
- "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz",
+ "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==",
"dev": true
},
"forever-agent": {
@@ -6498,9 +6363,9 @@
"dev": true
},
"fsevents": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
- "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
"optional": true
},
@@ -6555,21 +6420,21 @@
}
},
"glob-promise": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-4.0.1.tgz",
- "integrity": "sha512-QwMkHW0vn0hXHFQg3JWsj2HW8pJQhHeAvsaIcpn4EDP5bU757GtJP/ClLX4iKIFtzgodRiKtb+aOG/k6i2B5mw==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-4.1.0.tgz",
+ "integrity": "sha512-wOdaX1+QJi3ldbjq4fXX/BbGSjhsG6eGXqMnBjQj9ubDiDLvrXbbXRj02rA0CXbMMM7J58dajiQ72va63D7pNw==",
"dev": true,
"requires": {
"@types/glob": "^7.1.3"
}
},
"globals": {
- "version": "12.4.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
- "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
+ "version": "13.6.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.6.0.tgz",
+ "integrity": "sha512-YFKCX0SiPg7l5oKYCJ2zZGxcXprVXHcSnVuvzrT3oSENQonVLqM5pf9fN5dLGZGyCjhw8TN8Btwe/jKnZ0pjvQ==",
"dev": true,
"requires": {
- "type-fest": "^0.8.1"
+ "type-fest": "^0.20.2"
}
},
"globby": {
@@ -6599,9 +6464,9 @@
"dev": true
},
"handlebars": {
- "version": "4.7.6",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
- "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
+ "version": "4.7.7",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
+ "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
"dev": true,
"requires": {
"minimist": "^1.2.5",
@@ -6733,12 +6598,6 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"dev": true
},
- "ip-regex": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
- "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
- "dev": true
- },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -6895,9 +6754,9 @@
"dev": true
},
"js-yaml": {
- "version": "3.14.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
- "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -6911,37 +6770,45 @@
"dev": true
},
"jsdom": {
- "version": "16.4.0",
- "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz",
- "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==",
+ "version": "16.5.1",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz",
+ "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==",
"dev": true,
"requires": {
- "abab": "^2.0.3",
- "acorn": "^7.1.1",
+ "abab": "^2.0.5",
+ "acorn": "^8.0.5",
"acorn-globals": "^6.0.0",
"cssom": "^0.4.4",
- "cssstyle": "^2.2.0",
+ "cssstyle": "^2.3.0",
"data-urls": "^2.0.0",
- "decimal.js": "^10.2.0",
+ "decimal.js": "^10.2.1",
"domexception": "^2.0.1",
- "escodegen": "^1.14.1",
+ "escodegen": "^2.0.0",
"html-encoding-sniffer": "^2.0.1",
"is-potential-custom-element-name": "^1.0.0",
"nwsapi": "^2.2.0",
- "parse5": "5.1.1",
+ "parse5": "6.0.1",
"request": "^2.88.2",
- "request-promise-native": "^1.0.8",
- "saxes": "^5.0.0",
+ "request-promise-native": "^1.0.9",
+ "saxes": "^5.0.1",
"symbol-tree": "^3.2.4",
- "tough-cookie": "^3.0.1",
+ "tough-cookie": "^4.0.0",
"w3c-hr-time": "^1.0.2",
"w3c-xmlserializer": "^2.0.0",
"webidl-conversions": "^6.1.0",
"whatwg-encoding": "^1.0.5",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^8.0.0",
- "ws": "^7.2.3",
+ "ws": "^7.4.4",
"xml-name-validator": "^3.0.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz",
+ "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==",
+ "dev": true
+ }
}
},
"json-schema": {
@@ -7021,9 +6888,9 @@
}
},
"lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==",
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
"lodash.sortby": {
@@ -7097,38 +6964,44 @@
"dev": true
},
"mocha": {
- "version": "8.2.1",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz",
- "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==",
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.3.2.tgz",
+ "integrity": "sha512-UdmISwr/5w+uXLPKspgoV7/RXZwKRTiTjJ2/AC5ZiEztIoOYdfKb19+9jNmEInzx5pBsCyJQzarAxqIGBNYJhg==",
"dev": true,
"requires": {
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
- "chokidar": "3.4.3",
- "debug": "4.2.0",
- "diff": "4.0.2",
+ "chokidar": "3.5.1",
+ "debug": "4.3.1",
+ "diff": "5.0.0",
"escape-string-regexp": "4.0.0",
"find-up": "5.0.0",
"glob": "7.1.6",
"growl": "1.10.5",
"he": "1.2.0",
- "js-yaml": "3.14.0",
+ "js-yaml": "4.0.0",
"log-symbols": "4.0.0",
"minimatch": "3.0.4",
- "ms": "2.1.2",
- "nanoid": "3.1.12",
+ "ms": "2.1.3",
+ "nanoid": "3.1.20",
"serialize-javascript": "5.0.1",
"strip-json-comments": "3.1.1",
- "supports-color": "7.2.0",
+ "supports-color": "8.1.1",
"which": "2.0.2",
"wide-align": "1.1.3",
- "workerpool": "6.0.2",
- "yargs": "13.3.2",
- "yargs-parser": "13.1.2",
+ "workerpool": "6.1.0",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
"yargs-unparser": "2.0.0"
},
"dependencies": {
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
"escape-string-regexp": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
@@ -7141,10 +7014,25 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
+ "js-yaml": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true
+ },
"supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
@@ -7159,9 +7047,9 @@
"dev": true
},
"nanoid": {
- "version": "3.1.12",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz",
- "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==",
+ "version": "3.1.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
+ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
"dev": true
},
"natural-compare": {
@@ -7317,9 +7205,9 @@
}
},
"parse5": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz",
- "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz",
+ "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==",
"dev": true
},
"path-exists": {
@@ -7359,9 +7247,9 @@
"dev": true
},
"picomatch": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz",
- "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
+ "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
"dev": true
},
"pify": {
@@ -7547,14 +7435,6 @@
"dev": true,
"requires": {
"picomatch": "^2.2.1"
- },
- "dependencies": {
- "picomatch": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
- "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
- "dev": true
- }
}
},
"refa": {
@@ -7650,12 +7530,6 @@
"integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
"dev": true
},
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
"resolve": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz",
@@ -7688,21 +7562,12 @@
}
},
"rollup": {
- "version": "2.39.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.39.0.tgz",
- "integrity": "sha512-+WR3bttcq7zE+BntH09UxaW3bQo3vItuYeLsyk4dL2tuwbeSKJuvwiawyhEnvRdRgrII0Uzk00FpctHO/zB1kw==",
+ "version": "2.41.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.41.4.tgz",
+ "integrity": "sha512-f9IHfMO8p2Y8OdisI7Oj3oKkPuaQ6cgSwYqAi0TDvP3w2p+oX1VejX/w28a1h8WTnrapzfO5d4Uqhww+gL0b0g==",
"dev": true,
"requires": {
"fsevents": "~2.3.1"
- },
- "dependencies": {
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- }
}
},
"run-parallel": {
@@ -7747,12 +7612,6 @@
"randombytes": "^2.1.0"
}
},
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "dev": true
- },
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -7955,30 +7814,21 @@
"dev": true
},
"string-width": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+ "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
"dev": true,
"requires": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
}
}
},
@@ -8282,31 +8132,6 @@
"lodash": "^4.17.20",
"slice-ansi": "^4.0.0",
"string-width": "^4.2.0"
- },
- "dependencies": {
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
- "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- }
}
},
"terser": {
@@ -8359,14 +8184,14 @@
}
},
"tough-cookie": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz",
- "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz",
+ "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==",
"dev": true,
"requires": {
- "ip-regex": "^2.1.0",
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.1.2"
}
},
"tr46": {
@@ -8430,15 +8255,15 @@
}
},
"type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
},
"typescript": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.5.tgz",
- "integrity": "sha512-6OSu9PTIzmn9TCDiovULTnET6BgXtDYL4Gg4szY+cGsc3JP1dQL8qvE8kShTRx1NIw4Q9IBHlwODjkjWEtMUyA==",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.2.3.tgz",
+ "integrity": "sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==",
"dev": true
},
"uglify-js": {
@@ -8460,6 +8285,12 @@
}
}
},
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
@@ -8561,12 +8392,6 @@
"isexe": "^2.0.0"
}
},
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "dev": true
- },
"wide-align": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
@@ -8616,36 +8441,45 @@
"dev": true
},
"workerpool": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz",
- "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
+ "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg==",
"dev": true
},
"wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
},
"dependencies": {
- "ansi-regex": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
- "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
- "dev": true
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
},
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
- "ansi-regex": "^4.1.0"
+ "color-name": "~1.1.4"
}
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
}
}
},
@@ -8656,10 +8490,11 @@
"dev": true
},
"ws": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
- "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
- "dev": true
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz",
+ "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==",
+ "dev": true,
+ "requires": {}
},
"xml-name-validator": {
"version": "3.0.0",
@@ -8674,9 +8509,9 @@
"dev": true
},
"y18n": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
- "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz",
+ "integrity": "sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==",
"dev": true
},
"yallist": {
@@ -8686,71 +8521,25 @@
"dev": true
},
"yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"requires": {
- "cliui": "^5.0.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^2.0.1",
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
"require-directory": "^2.1.1",
- "require-main-filename": "^2.0.0",
- "set-blocking": "^2.0.0",
- "string-width": "^3.0.0",
- "which-module": "^2.0.0",
- "y18n": "^4.0.0",
- "yargs-parser": "^13.1.2"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- }
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
}
},
"yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "dev": true
},
"yargs-unparser": {
"version": "2.0.0",
diff --git a/package.json b/package.json
index 783987da5a..7da0ee72d1 100644
--- a/package.json
+++ b/package.json
@@ -34,11 +34,17 @@
},
"main": "./lib/index.js",
"types": "./types/index.d.ts",
+ "imports": {
+ "#hljs": "./build/lib/index.js",
+ "#tools/*": "./tools/lib/*.js"
+ },
+ "type": "module",
"scripts": {
"mocha": "mocha",
"lint": "eslint src/*.js src/lib/*.js src/plugins/*.js demo/*.js",
- "lint-languages": "eslint --no-eslintrc -c .eslintrc.lang.js src/languages/**/*.js",
+ "lint-languages": "eslint --no-eslintrc -c .eslintrc.lang.cjs src/languages/**/*.js",
"build_and_test": "npm run build && npm run test",
+ "build_and_test_browser": "npm run build-browser && npm run test-browser",
"build": "node ./tools/build.js -t node",
"build-cdn": "node ./tools/build.js -t cdn",
"build-browser": "node ./tools/build.js -t browser :common",
diff --git a/src/highlight.js b/src/highlight.js
index 49d974af18..d522766054 100644
--- a/src/highlight.js
+++ b/src/highlight.js
@@ -13,7 +13,6 @@ import * as MODES from './lib/modes.js';
import { compileLanguage } from './lib/mode_compiler.js';
import * as packageJSON from '../package.json';
import { BuildVuePlugin } from "./plugins/vue.js";
-import { mergeHTMLPlugin } from "./plugins/merge_html.js";
import * as logger from "./lib/logger.js";
const escape = utils.escapeHTML;
@@ -36,7 +35,6 @@ const HLJS = function(hljs) {
// safe/production mode - swallows more errors, tries to keep running
// even if a single syntax or parse hits a fatal error
let SAFE_MODE = true;
- const fixMarkupRe = /(^(<[^>]+>|\t|)+|\n)/gm;
const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?";
/** @type {Language} */
const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };
@@ -48,8 +46,6 @@ const HLJS = function(hljs) {
noHighlightRe: /^(no-?highlight)$/i,
languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i,
classPrefix: 'hljs-',
- tabReplace: null,
- useBR: false,
languages: null,
// beta configuration options, subject to change, welcome to discuss
// https://github.com/highlightjs/highlight.js/issues/1086
@@ -201,7 +197,7 @@ const HLJS = function(hljs) {
return;
}
result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);
- continuations[top.subLanguage] = /** @type {CompiledMode} */ (result.top);
+ continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);
} else {
result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);
}
@@ -213,7 +209,7 @@ const HLJS = function(hljs) {
if (top.relevance > 0) {
relevance += result.relevance;
}
- emitter.addSublanguage(result.emitter, result.language);
+ emitter.addSublanguage(result._emitter, result.language);
}
function processBuffer() {
@@ -516,36 +512,37 @@ const HLJS = function(hljs) {
return {
// avoid possible breakage with v10 clients expecting
// this to always be an integer
- relevance: Math.floor(relevance),
- value: result,
language: languageName,
+ value: result,
+ relevance: Math.floor(relevance),
illegal: false,
- emitter: emitter,
- top: top
+ _emitter: emitter,
+ _top: top
};
} catch (err) {
if (err.message && err.message.includes('Illegal')) {
return {
+ value: escape(codeToHighlight),
illegal: true,
- illegalBy: {
- msg: err.message,
+ relevance: 0,
+ _illegalBy: {
+ message: err.message,
+ index: index,
context: codeToHighlight.slice(index - 100, index + 100),
- mode: err.mode
+ mode: err.mode,
+ resultSoFar: result
},
- sofar: result,
- relevance: 0,
- value: escape(codeToHighlight),
- emitter: emitter
+ _emitter: emitter
};
} else if (SAFE_MODE) {
return {
+ language: languageName,
+ value: escape(codeToHighlight),
illegal: false,
relevance: 0,
- value: escape(codeToHighlight),
- emitter: emitter,
- language: languageName,
- top: top,
- errorRaised: err
+ errorRaised: err,
+ _emitter: emitter,
+ _top: top
};
} else {
throw err;
@@ -562,13 +559,13 @@ const HLJS = function(hljs) {
*/
function justTextHighlightResult(code) {
const result = {
- relevance: 0,
- emitter: new options.__emitter(options),
value: escape(code),
illegal: false,
- top: PLAINTEXT_LANGUAGE
+ relevance: 0,
+ _top: PLAINTEXT_LANGUAGE,
+ _emitter: new options.__emitter(options)
};
- result.emitter.addText(code);
+ result._emitter.addText(code);
return result;
}
@@ -579,7 +576,7 @@ const HLJS = function(hljs) {
- language (detected language)
- relevance (int)
- value (an HTML string with highlighting markup)
- - second_best (object with the same structure for second-best heuristically
+ - secondBest (object with the same structure for second-best heuristically
detected language, may be absent)
@param {string} code
@@ -620,35 +617,11 @@ const HLJS = function(hljs) {
/** @type {AutoHighlightResult} */
const result = best;
- result.second_best = secondBest;
+ result.secondBest = secondBest;
return result;
}
- /**
- Post-processing of the highlighted markup:
-
- - replace TABs with something more useful
- - replace real line-breaks with '
' for non-pre containers
-
- @param {string} html
- @returns {string}
- */
- function fixMarkup(html) {
- if (!(options.tabReplace || options.useBR)) {
- return html;
- }
-
- return html.replace(fixMarkupRe, match => {
- if (match === '\n') {
- return options.useBR ? '
' : match;
- } else if (options.tabReplace) {
- return match.replace(/\t/g, options.tabReplace);
- }
- return match;
- });
- }
-
/**
* Builds new class name for block given the language name
*
@@ -663,35 +636,8 @@ const HLJS = function(hljs) {
if (language) element.classList.add(language);
}
- /** @type {HLJSPlugin} */
- const brPlugin = {
- "before:highlightElement": ({ el }) => {
- if (options.useBR) {
- el.innerHTML = el.innerHTML.replace(/\n/g, '').replace(/
/g, '\n');
- }
- },
- "after:highlightElement": ({ result }) => {
- if (options.useBR) {
- result.value = result.value.replace(/\n/g, "
");
- }
- }
- };
-
- const TAB_REPLACE_RE = /^(<[^>]+>|\t)+/gm;
- /** @type {HLJSPlugin} */
- const tabReplacePlugin = {
- "after:highlightElement": ({ result }) => {
- if (options.tabReplace) {
- result.value = result.value.replace(TAB_REPLACE_RE, (m) =>
- m.replace(/\t/g, options.tabReplace)
- );
- }
- }
- };
-
/**
- * Applies highlighting to a DOM node containing code. Accepts a DOM node and
- * two optional parameters for fixMarkup.
+ * Applies highlighting to a DOM node containing code.
*
* @param {HighlightedHTMLElement} element - the HTML element to highlight
*/
@@ -721,12 +667,10 @@ const HLJS = function(hljs) {
re: result.relevance,
relavance: result.relevance
};
- if (result.second_best) {
- element.second_best = {
- language: result.second_best.language,
- // TODO: remove with version 11.0
- re: result.second_best.relevance,
- relavance: result.second_best.relevance
+ if (result.secondBest) {
+ element.secondBest = {
+ language: result.secondBest.language,
+ relavance: result.secondBest.relevance
};
}
}
@@ -737,34 +681,19 @@ const HLJS = function(hljs) {
* @param {Partial} userOptions
*/
function configure(userOptions) {
- if (userOptions.useBR) {
- logger.deprecated("10.3.0", "'useBR' will be removed entirely in v11.0");
- logger.deprecated("10.3.0", "Please see https://github.com/highlightjs/highlight.js/issues/2559");
- }
options = inherit(options, userOptions);
}
- /**
- * Highlights to all blocks on a page
- *
- * @type {Function & {called?: boolean}}
- */
// TODO: remove v12, deprecated
const initHighlighting = () => {
- if (initHighlighting.called) return;
- initHighlighting.called = true;
-
- logger.deprecated("10.6.0", "initHighlighting() is deprecated. Use highlightAll() instead.");
-
- const blocks = document.querySelectorAll('pre code');
- blocks.forEach(highlightElement);
+ highlightAll();
+ logger.deprecated("10.6.0", "initHighlighting() deprecated. Use highlightAll() now.");
};
- // Higlights all when DOMContentLoaded fires
// TODO: remove v12, deprecated
function initHighlightingOnLoad() {
- logger.deprecated("10.6.0", "initHighlightingOnLoad() is deprecated. Use highlightAll() instead.");
- wantsHighlight = true;
+ highlightAll();
+ logger.deprecated("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now.");
}
let wantsHighlight = false;
@@ -939,19 +868,6 @@ const HLJS = function(hljs) {
});
}
- /**
- Note: fixMarkup is deprecated and will be removed entirely in v11
-
- @param {string} arg
- @returns {string}
- */
- function deprecateFixMarkup(arg) {
- logger.deprecated("10.2.0", "fixMarkup will be removed entirely in v11.0");
- logger.deprecated("10.2.0", "Please see https://github.com/highlightjs/highlight.js/issues/2534");
-
- return fixMarkup(arg);
- }
-
/**
*
* @param {HighlightedHTMLElement} el
@@ -968,7 +884,6 @@ const HLJS = function(hljs) {
highlight,
highlightAuto,
highlightAll,
- fixMarkup: deprecateFixMarkup,
highlightElement,
// TODO: Remove with v12 API
highlightBlock: deprecateHighlightBlock,
@@ -1003,10 +918,6 @@ const HLJS = function(hljs) {
// merge all the modes/regexs into our main object
Object.assign(hljs, MODES);
- // built-in plugins, likely to be moved out of core in the future
- hljs.addPlugin(brPlugin); // slated to be removed in v11
- hljs.addPlugin(mergeHTMLPlugin);
- hljs.addPlugin(tabReplacePlugin);
return hljs;
};
diff --git a/src/languages/apache.js b/src/languages/apache.js
index 605bdfa455..6afaff143d 100644
--- a/src/languages/apache.js
+++ b/src/languages/apache.js
@@ -4,7 +4,7 @@ Author: Ruslan Keba
Contributors: Ivan Sagalaev
Website: https://httpd.apache.org
Description: language definition for Apache configuration files (httpd.conf & .htaccess)
-Category: common, config
+Category: config
Audit: 2020
*/
diff --git a/src/languages/bash.js b/src/languages/bash.js
index 9dd90dd6bd..7941603405 100644
--- a/src/languages/bash.js
+++ b/src/languages/bash.js
@@ -103,7 +103,7 @@ export default function(hljs) {
return {
name: 'Bash',
- aliases: ['sh', 'zsh'],
+ aliases: ['sh'],
keywords: {
$pattern: /\b[a-z._-]+\b/,
keyword:
diff --git a/src/languages/c-like.js b/src/languages/c-like.js
deleted file mode 100644
index 88a3d988eb..0000000000
--- a/src/languages/c-like.js
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-Language: C-like (deprecated, use C and C++ instead)
-Author: Ivan Sagalaev
-Contributors: Evgeny Stepanischev , Zaven Muradyan , Roel Deckers , Sam Wu , Jordi Petit , Pieter Vantorre , Google Inc. (David Benjamin)
-*/
-
-/*
-C and C++ have now been fully split into `c.js` and `cpp.js`.
-This file only exists for legacy purposes to support v10.
-TODO: Remove this in v11.
-
-See: https://github.com/highlightjs/highlight.js/issues/2146
-*/
-
-import cPlusPlus from './cpp.js';
-
-/** @type LanguageFn */
-export default function(hljs) {
- const lang = cPlusPlus(hljs);
-
- const C_ALIASES = [
- "c",
- "h"
- ];
-
- const CPP_ALIASES = [
- 'cc',
- 'c++',
- 'h++',
- 'hpp',
- 'hh',
- 'hxx',
- 'cxx'
- ];
-
- lang.disableAutodetect = true;
- lang.aliases = [];
- // support users only loading c-like (legacy)
- if (!hljs.getLanguage("c")) lang.aliases.push(...C_ALIASES);
- if (!hljs.getLanguage("cpp")) lang.aliases.push(...CPP_ALIASES);
-
- // if c and cpp are loaded after then they will reclaim these
- // aliases for themselves
-
- return lang;
-}
diff --git a/src/languages/coffeescript.js b/src/languages/coffeescript.js
index 0097546326..8c1acc7ee5 100644
--- a/src/languages/coffeescript.js
+++ b/src/languages/coffeescript.js
@@ -3,7 +3,7 @@ Language: CoffeeScript
Author: Dmytrii Nagirniak
Contributors: Oleg Efimov , Cédric Néhémie
Description: CoffeeScript is a programming language that transcompiles to JavaScript. For info about language see http://coffeescript.org/
-Category: common, scripting
+Category: scripting
Website: https://coffeescript.org
*/
diff --git a/src/languages/css.js b/src/languages/css.js
index 58818f54c9..5198fa3c5e 100644
--- a/src/languages/css.js
+++ b/src/languages/css.js
@@ -43,7 +43,7 @@ export default function(hljs) {
VENDOR_PREFIX,
// to recognize keyframe 40% etc which are outside the scope of our
// attribute value mode
- hljs.CSS_NUMBER_MODE,
+ modes.CSS_NUMBER_MODE,
{
className: 'selector-id',
begin: /#[A-Za-z0-9_-]+/,
@@ -83,7 +83,7 @@ export default function(hljs) {
contains: [
modes.HEXCOLOR,
modes.IMPORTANT,
- hljs.CSS_NUMBER_MODE,
+ modes.CSS_NUMBER_MODE,
...STRINGS,
// needed to highlight these as strings and to avoid issues with
// illegal characters that might be inside urls that would tigger the
@@ -135,7 +135,7 @@ export default function(hljs) {
className: "attribute"
},
...STRINGS,
- hljs.CSS_NUMBER_MODE
+ modes.CSS_NUMBER_MODE
]
}
]
diff --git a/src/languages/delphi.js b/src/languages/delphi.js
index 5f1dbfdc29..1ff672c6c6 100644
--- a/src/languages/delphi.js
+++ b/src/languages/delphi.js
@@ -102,11 +102,7 @@ export default function(hljs) {
'dpr',
'dfm',
'pas',
- 'pascal',
- 'freepascal',
- 'lazarus',
- 'lpr',
- 'lfm'
+ 'pascal'
],
case_insensitive: true,
keywords: KEYWORDS,
diff --git a/src/languages/htmlbars.js b/src/languages/htmlbars.js
deleted file mode 100644
index 4a5dddd64b..0000000000
--- a/src/languages/htmlbars.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- Language: HTMLBars (legacy)
- Requires: xml.js
- Description: Matcher for Handlebars as well as EmberJS additions.
- Website: https://github.com/tildeio/htmlbars
- Category: template
- */
-
-/*
-
-See: https://github.com/highlightjs/highlight.js/issues/2181
-
-This file is a stub that is only left in place for compatbility reasons for
-anyone who may be manually pulling in this file via a require or fetching
-it individually via CDN.
-
-TODO: Remove in version 11.0.
-
-*/
-
-// compile time dependency on handlebars
-import handlebars from "./handlebars.js";
-
-export default function(hljs) {
- const definition = handlebars(hljs);
-
- definition.name = "HTMLbars";
-
- // HACK: This lets handlebars do the auto-detection if it's been loaded (by
- // default the build script will load in alphabetical order) and if not (perhaps
- // an install is only using `htmlbars`, not `handlebars`) then this will still
- // allow HTMLBars to participate in the auto-detection
-
- // worse case someone will have HTMLbars and handlebars competing for the same
- // content and will need to change their setup to only require handlebars, but
- // I don't consider this a breaking change
- if (hljs.getLanguage("handlebars")) {
- definition.disableAutodetect = true;
- }
-
- return definition;
-}
diff --git a/src/languages/http.js b/src/languages/http.js
index 577d9db1af..af19f087e1 100644
--- a/src/languages/http.js
+++ b/src/languages/http.js
@@ -2,7 +2,7 @@
Language: HTTP
Description: HTTP request and response headers with automatic body highlighting
Author: Ivan Sagalaev
-Category: common, protocols
+Category: protocols
Website: https://developer.mozilla.org/en-US/docs/Web/HTTP/Overview
*/
diff --git a/src/languages/less.js b/src/languages/less.js
index 4cac68b418..6f83379595 100644
--- a/src/languages/less.js
+++ b/src/languages/less.js
@@ -58,7 +58,7 @@ export default function(hljs) {
hljs.C_BLOCK_COMMENT_MODE,
STRING_MODE("'"),
STRING_MODE('"'),
- hljs.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(
+ modes.CSS_NUMBER_MODE, // fixme: it does not include dot for numbers like .5em :(
{
begin: '(url|data-uri)\\(',
starts: {
diff --git a/src/languages/lib/css-shared.js b/src/languages/lib/css-shared.js
index 127fd51fb6..1a9f9e79b2 100644
--- a/src/languages/lib/css-shared.js
+++ b/src/languages/lib/css-shared.js
@@ -17,6 +17,19 @@ export const MODES = (hljs) => {
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE
]
+ },
+ CSS_NUMBER_MODE: {
+ className: 'number',
+ begin: hljs.NUMBER_RE + '(' +
+ '%|em|ex|ch|rem' +
+ '|vw|vh|vmin|vmax' +
+ '|cm|mm|in|pt|pc|px' +
+ '|deg|grad|rad|turn' +
+ '|s|ms' +
+ '|Hz|kHz' +
+ '|dpi|dpcm|dppx' +
+ ')?',
+ relevance: 0
}
};
};
diff --git a/src/languages/nginx.js b/src/languages/nginx.js
index c6bddb6b64..83ac6c2100 100644
--- a/src/languages/nginx.js
+++ b/src/languages/nginx.js
@@ -2,7 +2,7 @@
Language: Nginx config
Author: Peter Leonov
Contributors: Ivan Sagalaev
-Category: common, config
+Category: config
Website: https://www.nginx.com
*/
diff --git a/src/languages/php.js b/src/languages/php.js
index 847e6599fe..ce0af400a8 100644
--- a/src/languages/php.js
+++ b/src/languages/php.js
@@ -103,7 +103,6 @@ export default function(hljs) {
'Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass'
};
return {
- aliases: ['php3', 'php4', 'php5', 'php6', 'php7', 'php8'],
case_insensitive: true,
keywords: KEYWORDS,
contains: [
diff --git a/src/languages/properties.js b/src/languages/properties.js
index 4f5fa8d0f5..87eb082e30 100644
--- a/src/languages/properties.js
+++ b/src/languages/properties.js
@@ -2,7 +2,7 @@
Language: .properties
Contributors: Valentin Aitken , Egor Rogov
Website: https://en.wikipedia.org/wiki/.properties
-Category: common, config
+Category: config
*/
export default function(hljs) {
diff --git a/src/languages/scss.js b/src/languages/scss.js
index 9b32a3629c..06bb634271 100644
--- a/src/languages/scss.js
+++ b/src/languages/scss.js
@@ -58,7 +58,7 @@ export default function(hljs) {
{ // pseudo-selector params
begin: /\(/,
end: /\)/,
- contains: [ hljs.CSS_NUMBER_MODE ]
+ contains: [ modes.CSS_NUMBER_MODE ]
},
{
className: 'attribute',
@@ -73,7 +73,7 @@ export default function(hljs) {
contains: [
VARIABLE,
modes.HEXCOLOR,
- hljs.CSS_NUMBER_MODE,
+ modes.CSS_NUMBER_MODE,
hljs.QUOTE_STRING_MODE,
hljs.APOS_STRING_MODE,
modes.IMPORTANT
@@ -109,7 +109,7 @@ export default function(hljs) {
hljs.QUOTE_STRING_MODE,
hljs.APOS_STRING_MODE,
modes.HEXCOLOR,
- hljs.CSS_NUMBER_MODE
+ modes.CSS_NUMBER_MODE
]
}
]
diff --git a/src/languages/sql_more.js b/src/languages/sql_more.js
deleted file mode 100644
index eb18c83e0f..0000000000
--- a/src/languages/sql_more.js
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- Language: SQL More (mix of MySQL, Oracle, etc)
- Contributors: Nikolay Lisienko , Heiko August , Travis Odom , Vadimtro , Benjamin Auder
- Website: https://en.wikipedia.org/wiki/SQL
- Category: database
- */
-
-/*
-
-This is a preservation of the old bloated SQL grammar which includes pretty much
-the kitchen sink because no one was keeping track of which keywords belong to
-which databases. This is likely to be removed in the future.
-
-- Oracle SQL should be factored into it's own 3rd party grammar.
-- MySQL should be factored out into it's own 3rd party grammar.
-
-*/
-
-export default function(hljs) {
- var COMMENT_MODE = hljs.COMMENT('--', '$');
- return {
- name: 'SQL (more)',
- aliases: ["mysql", "oracle"],
- disableAutodetect: true,
- case_insensitive: true,
- illegal: /[<>{}*]/,
- contains: [
- {
- beginKeywords:
- 'begin end start commit rollback savepoint lock alter create drop rename call ' +
- 'delete do handler insert load replace select truncate update set show pragma grant ' +
- 'merge describe use explain help declare prepare execute deallocate release ' +
- 'unlock purge reset change stop analyze cache flush optimize repair kill ' +
- 'install uninstall checksum restore check backup revoke comment values with',
- end: /;/, endsWithParent: true,
- keywords: {
- $pattern: /[\w\.]+/,
- keyword:
- 'as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add ' +
- 'addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias ' +
- 'all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply ' +
- 'archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan ' +
- 'atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid ' +
- 'authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile ' +
- 'before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float ' +
- 'binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound ' +
- 'bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel ' +
- 'capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base ' +
- 'char_length character_length characters characterset charindex charset charsetform charsetid check ' +
- 'checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close ' +
- 'cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation ' +
- 'collect colu colum column column_value columns columns_updated comment commit compact compatibility ' +
- 'compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn ' +
- 'connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection ' +
- 'consider consistent constant constraint constraints constructor container content contents context ' +
- 'contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost ' +
- 'count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation ' +
- 'critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user ' +
- 'cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add ' +
- 'date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts ' +
- 'day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate ' +
- 'declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults ' +
- 'deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank ' +
- 'depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor ' +
- 'deterministic diagnostics difference dimension direct_load directory disable disable_all ' +
- 'disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div ' +
- 'do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable ' +
- 'editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt ' +
- 'end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors ' +
- 'escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding ' +
- 'execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external ' +
- 'external_1 external_2 externally extract failed failed_login_attempts failover failure far fast ' +
- 'feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final ' +
- 'finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign ' +
- 'form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ' +
- 'ftp full function general generated get get_format get_lock getdate getutcdate global global_name ' +
- 'globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups ' +
- 'gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex ' +
- 'hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified ' +
- 'identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment ' +
- 'index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile ' +
- 'initial initialized initially initrans inmemory inner innodb input insert install instance instantiable ' +
- 'instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat ' +
- 'is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists ' +
- 'keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase ' +
- 'lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit ' +
- 'lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate ' +
- 'locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call ' +
- 'logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime ' +
- 'managed management manual map mapping mask master master_pos_wait match matched materialized max ' +
- 'maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans ' +
- 'md5 measures median medium member memcompress memory merge microsecond mid migration min minextents ' +
- 'minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month ' +
- 'months mount move movement multiset mutex name name_const names nan national native natural nav nchar ' +
- 'nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile ' +
- 'nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile ' +
- 'nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder ' +
- 'nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck ' +
- 'noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe ' +
- 'nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ' +
- 'ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old ' +
- 'on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date ' +
- 'oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary ' +
- 'out outer outfile outline output over overflow overriding package pad parallel parallel_enable ' +
- 'parameters parent parse partial partition partitions pascal passing password password_grace_time ' +
- 'password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex ' +
- 'pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc ' +
- 'performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin ' +
- 'policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction ' +
- 'prediction_cost prediction_details prediction_probability prediction_set prepare present preserve ' +
- 'prior priority private private_sga privileges procedural procedure procedure_analyze processlist ' +
- 'profiles project prompt protection public publishingservername purge quarter query quick quiesce quota ' +
- 'quotename radians raise rand range rank raw read reads readsize rebuild record records ' +
- 'recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh ' +
- 'regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy ' +
- 'reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename ' +
- 'repair repeat replace replicate replication required reset resetlogs resize resource respect restore ' +
- 'restricted result result_cache resumable resume retention return returning returns reuse reverse revoke ' +
- 'right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows ' +
- 'rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll ' +
- 'sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select ' +
- 'self semi sequence sequential serializable server servererror session session_user sessions_per_user set ' +
- 'sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor ' +
- 'si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin ' +
- 'size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex ' +
- 'source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows ' +
- 'sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone ' +
- 'standby start starting startup statement static statistics stats_binomial_test stats_crosstab ' +
- 'stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep ' +
- 'stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev ' +
- 'stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate ' +
- 'subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum ' +
- 'suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate ' +
- 'sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo ' +
- 'template temporary terminated tertiary_weights test than then thread through tier ties time time_format ' +
- 'time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr ' +
- 'timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking ' +
- 'transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate ' +
- 'try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress ' +
- 'under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot ' +
- 'unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert ' +
- 'url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date ' +
- 'utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var ' +
- 'var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray ' +
- 'verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear ' +
- 'wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped ' +
- 'xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces ' +
- 'xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek',
- literal:
- 'true false null unknown',
- built_in:
- 'array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number ' +
- 'numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void'
- },
- contains: [
- {
- className: 'string',
- begin: '\'', end: '\'',
- contains: [{begin: '\'\''}]
- },
- {
- className: 'string',
- begin: '"', end: '"',
- contains: [{begin: '""'}]
- },
- {
- className: 'string',
- begin: '`', end: '`'
- },
- hljs.C_NUMBER_MODE,
- hljs.C_BLOCK_COMMENT_MODE,
- COMMENT_MODE,
- hljs.HASH_COMMENT_MODE
- ]
- },
- hljs.C_BLOCK_COMMENT_MODE,
- COMMENT_MODE,
- hljs.HASH_COMMENT_MODE
- ]
- };
-}
diff --git a/src/languages/stylus.js b/src/languages/stylus.js
index 4a0236399e..6dfba93dfb 100644
--- a/src/languages/stylus.js
+++ b/src/languages/stylus.js
@@ -111,7 +111,7 @@ export default function(hljs) {
keyword: AT_MODIFIERS,
attribute: css.MEDIA_FEATURES.join(" ")
},
- contains: [ hljs.CSS_NUMBER_MODE ]
+ contains: [ modes.CSS_NUMBER_MODE ]
}
},
@@ -125,7 +125,7 @@ export default function(hljs) {
VARIABLE,
// dimension
- hljs.CSS_NUMBER_MODE,
+ modes.CSS_NUMBER_MODE,
// functions
// - only from beginning of line + whitespace
@@ -147,7 +147,7 @@ export default function(hljs) {
modes.HEXCOLOR,
VARIABLE,
hljs.APOS_STRING_MODE,
- hljs.CSS_NUMBER_MODE,
+ modes.CSS_NUMBER_MODE,
hljs.QUOTE_STRING_MODE
]
}
@@ -168,7 +168,7 @@ export default function(hljs) {
VARIABLE,
hljs.APOS_STRING_MODE,
hljs.QUOTE_STRING_MODE,
- hljs.CSS_NUMBER_MODE,
+ modes.CSS_NUMBER_MODE,
hljs.C_BLOCK_COMMENT_MODE,
modes.IMPORTANT
],
diff --git a/src/lib/mode_compiler.js b/src/lib/mode_compiler.js
index 173185c60e..4ab7bd27c4 100644
--- a/src/lib/mode_compiler.js
+++ b/src/lib/mode_compiler.js
@@ -66,7 +66,7 @@ export function compileLanguage(language, { plugins }) {
this.exec = () => null;
}
const terminators = this.regexes.map(el => el[1]);
- this.matcherRe = langRe(regex.join(terminators), true);
+ this.matcherRe = langRe(regex._eitherRewriteBackreferences(terminators), true);
this.lastIndex = 0;
}
diff --git a/src/lib/modes.js b/src/lib/modes.js
index e4d2ab45b9..a6c6942ee6 100644
--- a/src/lib/modes.js
+++ b/src/lib/modes.js
@@ -99,19 +99,6 @@ export const BINARY_NUMBER_MODE = {
begin: BINARY_NUMBER_RE,
relevance: 0
};
-export const CSS_NUMBER_MODE = {
- className: 'number',
- begin: NUMBER_RE + '(' +
- '%|em|ex|ch|rem' +
- '|vw|vh|vmin|vmax' +
- '|cm|mm|in|pt|pc|px' +
- '|deg|grad|rad|turn' +
- '|s|ms' +
- '|Hz|kHz' +
- '|dpi|dpcm|dppx' +
- ')?',
- relevance: 0
-};
export const REGEXP_MODE = {
// this outer rule makes sure we actually have a WHOLE regex and not simply
// an expression such as:
diff --git a/src/lib/regex.js b/src/lib/regex.js
index 55714db46f..3422666df8 100644
--- a/src/lib/regex.js
+++ b/src/lib/regex.js
@@ -89,6 +89,7 @@ export function startsWith(re, lexeme) {
// follow the '(' with a '?'.
const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
+// **INTERNAL** Not intended for outside usage
// join logically computes regexps.join(separator), but fixes the
// backreferences so they continue to match.
// it also places each individual regular expression into it's own
@@ -99,7 +100,7 @@ const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;
* @param {string} separator
* @returns {string}
*/
-export function join(regexps, separator = "|") {
+export function _eitherRewriteBackreferences(regexps) {
let numCaptures = 0;
return regexps.map((regex) => {
@@ -127,5 +128,5 @@ export function join(regexps, separator = "|") {
}
}
return out;
- }).map(re => `(${re})`).join(separator);
+ }).map(re => `(${re})`).join("|");
}
diff --git a/src/plugins/merge_html.js b/src/plugins/merge_html.js
deleted file mode 100644
index a081df649f..0000000000
--- a/src/plugins/merge_html.js
+++ /dev/null
@@ -1,156 +0,0 @@
-import { escapeHTML } from "../lib/utils.js";
-
-/* plugin itself */
-
-/** @type {HLJSPlugin} */
-export const mergeHTMLPlugin = {
- "after:highlightElement": ({ el, result, text }) => {
- const originalStream = nodeStream(el);
- if (!originalStream.length) return;
-
- const resultNode = document.createElement('div');
- resultNode.innerHTML = result.value;
- result.value = mergeStreams(originalStream, nodeStream(resultNode), text);
- }
-};
-
-/* Stream merging support functions */
-
-/**
- * @typedef Event
- * @property {'start'|'stop'} event
- * @property {number} offset
- * @property {Node} node
- */
-
-/**
- * @param {Node} node
- */
-function tag(node) {
- return node.nodeName.toLowerCase();
-}
-
-/**
- * @param {Node} node
- */
-export function nodeStream(node) {
- /** @type Event[] */
- const result = [];
- (function _nodeStream(node, offset) {
- for (let child = node.firstChild; child; child = child.nextSibling) {
- if (child.nodeType === 3) {
- offset += child.nodeValue.length;
- } else if (child.nodeType === 1) {
- result.push({
- event: 'start',
- offset: offset,
- node: child
- });
- offset = _nodeStream(child, offset);
- // Prevent void elements from having an end tag that would actually
- // double them in the output. There are more void elements in HTML
- // but we list only those realistically expected in code display.
- if (!tag(child).match(/br|hr|img|input/)) {
- result.push({
- event: 'stop',
- offset: offset,
- node: child
- });
- }
- }
- }
- return offset;
- })(node, 0);
- return result;
-}
-
-/**
- * @param {any} original - the original stream
- * @param {any} highlighted - stream of the highlighted source
- * @param {string} value - the original source itself
- */
-export function mergeStreams(original, highlighted, value) {
- let processed = 0;
- let result = '';
- const nodeStack = [];
-
- function selectStream() {
- if (!original.length || !highlighted.length) {
- return original.length ? original : highlighted;
- }
- if (original[0].offset !== highlighted[0].offset) {
- return (original[0].offset < highlighted[0].offset) ? original : highlighted;
- }
-
- /*
- To avoid starting the stream just before it should stop the order is
- ensured that original always starts first and closes last:
-
- if (event1 == 'start' && event2 == 'start')
- return original;
- if (event1 == 'start' && event2 == 'stop')
- return highlighted;
- if (event1 == 'stop' && event2 == 'start')
- return original;
- if (event1 == 'stop' && event2 == 'stop')
- return highlighted;
-
- ... which is collapsed to:
- */
- return highlighted[0].event === 'start' ? original : highlighted;
- }
-
- /**
- * @param {Node} node
- */
- function open(node) {
- /** @param {Attr} attr */
- function attributeString(attr) {
- return ' ' + attr.nodeName + '="' + escapeHTML(attr.value) + '"';
- }
- // @ts-ignore
- result += '<' + tag(node) + [].map.call(node.attributes, attributeString).join('') + '>';
- }
-
- /**
- * @param {Node} node
- */
- function close(node) {
- result += '' + tag(node) + '>';
- }
-
- /**
- * @param {Event} event
- */
- function render(event) {
- (event.event === 'start' ? open : close)(event.node);
- }
-
- while (original.length || highlighted.length) {
- let stream = selectStream();
- result += escapeHTML(value.substring(processed, stream[0].offset));
- processed = stream[0].offset;
- if (stream === original) {
- /*
- On any opening or closing tag of the original markup we first close
- the entire highlighted node stack, then render the original tag along
- with all the following original tags at the same offset and then
- reopen all the tags on the highlighted stack.
- */
- nodeStack.reverse().forEach(close);
- do {
- render(stream.splice(0, 1)[0]);
- stream = selectStream();
- } while (stream === original && stream.length && stream[0].offset === processed);
- nodeStack.reverse().forEach(open);
- } else {
- if (stream[0].event === 'start') {
- nodeStack.push(stream[0].node);
- } else {
- nodeStack.pop();
- }
- render(stream.splice(0, 1)[0]);
- }
- }
- return result + escapeHTML(value.substr(processed));
-}
diff --git a/src/stub.js b/src/stub.js
new file mode 100644
index 0000000000..ee342b5e3d
--- /dev/null
+++ b/src/stub.js
@@ -0,0 +1,13 @@
+import HighlightJS from "./highlight.js";
+// @ts-ignore
+import * as builtIns from "builtInLanguages";
+
+const hljs = HighlightJS;
+
+for (const key of Object.keys(builtIns)) {
+ const languageName = key.replace("grmr_", "");
+ hljs.registerLanguage(languageName, builtIns[key]);
+}
+// console.log(hljs.listLanguages());
+
+export default hljs;
diff --git a/src/styles/a11y-dark.css b/src/styles/a11y-dark.css
index b93b742a45..76f75f1a04 100644
--- a/src/styles/a11y-dark.css
+++ b/src/styles/a11y-dark.css
@@ -2,6 +2,11 @@
/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */
/* @author: ericwbailey */
+.hljs {
+ background: #2b2b2b;
+ color: #f8f8f2;
+}
+
/* Comment */
.hljs-comment,
.hljs-quote {
@@ -57,14 +62,6 @@
color: #dcc6e0;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #2b2b2b;
- color: #f8f8f2;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/a11y-light.css b/src/styles/a11y-light.css
index f1bf8f3f8f..504d60b79b 100644
--- a/src/styles/a11y-light.css
+++ b/src/styles/a11y-light.css
@@ -2,6 +2,11 @@
/* Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css */
/* @author: ericwbailey */
+.hljs {
+ background: #fefefe;
+ color: #545454;
+}
+
/* Comment */
.hljs-comment,
.hljs-quote {
@@ -57,14 +62,6 @@
color: #7928a1;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #fefefe;
- color: #545454;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/agate.css b/src/styles/agate.css
index 5d7a3e8c78..57abd15a91 100644
--- a/src/styles/agate.css
+++ b/src/styles/agate.css
@@ -17,9 +17,6 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #333;
color: white;
}
diff --git a/src/styles/an-old-hope.css b/src/styles/an-old-hope.css
index a6d56f4b40..d0d2d3e768 100644
--- a/src/styles/an-old-hope.css
+++ b/src/styles/an-old-hope.css
@@ -1,4 +1,4 @@
-/*
+/*
An Old Hope – Star Wars Syntax (c) Gustavo Costa
Original theme - Ocean Dark Theme – by https://github.com/gavsiu
@@ -6,9 +6,16 @@ Based on Jesse Leite's Atom syntax theme 'An Old Hope' – https://github.com/Je
*/
+/* Millenium Falcon */
+.hljs
+{
+ background: #1C1D21;
+ color: #c0c5ce;
+}
+
/* Death Star Comment */
.hljs-comment,
-.hljs-quote
+.hljs-quote
{
color: #B6B18B;
}
@@ -21,7 +28,7 @@ Based on Jesse Leite's Atom syntax theme 'An Old Hope' – https://github.com/Je
.hljs-selector-id,
.hljs-selector-class,
.hljs-regexp,
-.hljs-deletion
+.hljs-deletion
{
color: #EB3C54;
}
@@ -34,13 +41,13 @@ Based on Jesse Leite's Atom syntax theme 'An Old Hope' – https://github.com/Je
.hljs-type,
.hljs-params,
.hljs-meta,
-.hljs-link
+.hljs-link
{
color: #E7CE56;
}
/* Luke Skywalker */
-.hljs-attribute
+.hljs-attribute
{
color: #EE7C2B;
}
@@ -49,41 +56,31 @@ Based on Jesse Leite's Atom syntax theme 'An Old Hope' – https://github.com/Je
.hljs-string,
.hljs-symbol,
.hljs-bullet,
-.hljs-addition
+.hljs-addition
{
color: #4FB4D7;
}
/* Yoda */
.hljs-title,
-.hljs-section
+.hljs-section
{
color: #78BB65;
}
/* Mace Windu */
.hljs-keyword,
-.hljs-selector-tag
+.hljs-selector-tag
{
color: #B45EA4;
}
-/* Millenium Falcon */
-.hljs
-{
- display: block;
- overflow-x: auto;
- background: #1C1D21;
- color: #c0c5ce;
- padding: 0.5em;
-}
-
-.hljs-emphasis
+.hljs-emphasis
{
font-style: italic;
}
-.hljs-strong
+.hljs-strong
{
font-weight: bold;
}
diff --git a/src/styles/androidstudio.css b/src/styles/androidstudio.css
index bc8e473b59..47779718bd 100644
--- a/src/styles/androidstudio.css
+++ b/src/styles/androidstudio.css
@@ -6,9 +6,6 @@ Author: Pedro Oliveira
.hljs {
color: #a9b7c6;
background: #282b2e;
- display: block;
- overflow-x: auto;
- padding: 0.5em;
}
.hljs-number,
diff --git a/src/styles/arduino-light.css b/src/styles/arduino-light.css
index e6039c36f8..ec7a25c09c 100644
--- a/src/styles/arduino-light.css
+++ b/src/styles/arduino-light.css
@@ -5,13 +5,10 @@ Arduino® Light Theme - Stefania Mellai
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
- background: #FFFFFF;
+ background: white;
+ color: #434f54;
}
-.hljs,
.hljs-subst {
color: #434f54;
}
@@ -83,5 +80,5 @@ Arduino® Light Theme - Stefania Mellai
}
.hljs-number {
- color: #8A7B52;
+ color: #8A7B52;
}
diff --git a/src/styles/arta.css b/src/styles/arta.css
index 75ef3a9e59..bd7d6eeee1 100644
--- a/src/styles/arta.css
+++ b/src/styles/arta.css
@@ -4,13 +4,10 @@ Author: pumbur
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #222;
+ color: #aaa;
}
-.hljs,
.hljs-subst {
color: #aaa;
}
diff --git a/src/styles/ascetic.css b/src/styles/ascetic.css
index 48397e889d..73b3c314e6 100644
--- a/src/styles/ascetic.css
+++ b/src/styles/ascetic.css
@@ -5,9 +5,6 @@ Original style from softwaremaniacs.org (c) Ivan Sagalaev
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #363c69;
background:#b7a68e url(./brown-papersq.png);
}
@@ -18,9 +16,8 @@ Brown Paper style from goldblog.com.ua (c) Zaripov Yura
font-weight:bold;
}
-.hljs,
.hljs-subst {
- color: #363c69;
+ /* default */
}
.hljs-string,
diff --git a/src/styles/codepen-embed.css b/src/styles/codepen-embed.css
index 195c4a0784..3189c1f33d 100644
--- a/src/styles/codepen-embed.css
+++ b/src/styles/codepen-embed.css
@@ -5,9 +5,6 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #222;
color: #fff;
}
diff --git a/src/styles/color-brewer.css b/src/styles/color-brewer.css
index 7934d986a7..51c85233b4 100644
--- a/src/styles/color-brewer.css
+++ b/src/styles/color-brewer.css
@@ -7,15 +7,12 @@ Ported by Fabrício Tavares de Oliveira
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #000;
background: #fff;
}
-.hljs,
.hljs-subst {
- color: #000;
+ /* default */
}
.hljs-string,
diff --git a/src/styles/darcula.css b/src/styles/darcula.css
index 4c734f1cd7..4b627925bf 100644
--- a/src/styles/darcula.css
+++ b/src/styles/darcula.css
@@ -1,14 +1,9 @@
/*
-
Darcula color scheme from the JetBrains family of IDEs
-
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #2b2b2b;
color: #bababa;
}
diff --git a/src/styles/dark.css b/src/styles/dark.css
index b4724f5f50..34708897f3 100644
--- a/src/styles/dark.css
+++ b/src/styles/dark.css
@@ -5,9 +5,7 @@ Dark style from softwaremaniacs.org (c) Ivan Sagalaev
-
*/
.hljs {
display: block;
overflow-x: auto;
- padding: 0.5em;
+ padding: 1em;
background: #F0F0F0;
+ color: #444;
}
/* Base color: saturation 0; */
-.hljs,
.hljs-subst {
- color: #444;
+ /* default */
}
.hljs-comment {
diff --git a/src/styles/docco.css b/src/styles/docco.css
index db366be372..5a44d8651d 100644
--- a/src/styles/docco.css
+++ b/src/styles/docco.css
@@ -3,9 +3,6 @@ Docco style used in http://jashkenas.github.com/docco/ converted by Simon Madine
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
color: #000;
background: #f8f8ff;
}
diff --git a/src/styles/dracula.css b/src/styles/dracula.css
index d591db6801..f8dfb3d529 100644
--- a/src/styles/dracula.css
+++ b/src/styles/dracula.css
@@ -15,9 +15,7 @@ http://zenorocha.mit-license.org
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #f8f8f2;
background: #282a36;
}
@@ -33,9 +31,8 @@ http://zenorocha.mit-license.org
color: #ff79c6;
}
-.hljs,
.hljs-subst {
- color: #f8f8f2;
+ /* default */
}
.hljs-string,
diff --git a/src/styles/far.css b/src/styles/far.css
index 2b3f87b562..8669f97b95 100644
--- a/src/styles/far.css
+++ b/src/styles/far.css
@@ -5,15 +5,13 @@ FAR Style (c) MajestiC
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #0ff;
background: #000080;
}
-.hljs,
+
.hljs-subst {
- color: #0ff;
+ /* default */
}
.hljs-string,
diff --git a/src/styles/foundation.css b/src/styles/foundation.css
index 67c6e10152..d32f8050f6 100644
--- a/src/styles/foundation.css
+++ b/src/styles/foundation.css
@@ -7,9 +7,6 @@ Date: 2013-04-02
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #eee;
color: black;
}
diff --git a/src/styles/github-gist.css b/src/styles/github-gist.css
index 18240c8882..982ce16cdf 100644
--- a/src/styles/github-gist.css
+++ b/src/styles/github-gist.css
@@ -5,11 +5,8 @@
*/
.hljs {
- display: block;
background: white;
- padding: 0.5em;
color: #333333;
- overflow-x: auto;
}
.hljs-comment,
diff --git a/src/styles/github.css b/src/styles/github.css
index 791932b87e..4e7f3d1740 100644
--- a/src/styles/github.css
+++ b/src/styles/github.css
@@ -5,9 +5,6 @@ github.com style (c) Vasily Polovnyov
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
color: #333;
background: #f8f8f8;
}
diff --git a/src/styles/gml.css b/src/styles/gml.css
index 7fff0b8772..3c47525a1a 100644
--- a/src/styles/gml.css
+++ b/src/styles/gml.css
@@ -5,9 +5,6 @@ GML Theme - Meseta
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #222222;
color: #C0C0C0;
}
diff --git a/src/styles/googlecode.css b/src/styles/googlecode.css
index 884ad63538..2a5adcbb1c 100644
--- a/src/styles/googlecode.css
+++ b/src/styles/googlecode.css
@@ -5,9 +5,6 @@ Google Code style (c) Aahan Krish
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: white;
color: black;
}
diff --git a/src/styles/gradient-dark.css b/src/styles/gradient-dark.css
index ca6d001b41..35ae517dab 100644
--- a/src/styles/gradient-dark.css
+++ b/src/styles/gradient-dark.css
@@ -6,9 +6,6 @@ Gradient Dark (c) Samia Ali
.hljs
{
-display: block;
-overflow-x: auto;
-padding: 0.5em;
background: rgb(80,31,122);
background: linear-gradient(166deg, rgba(80,31,122,1) 0%, rgba(40,32,179,1) 80%);
color:#e7e4eb;
@@ -42,7 +39,7 @@ color:#e7e4eb;
{
color:#F19FFF;
-
+
}
.hljs-keyword,
diff --git a/src/styles/gradient-light.css b/src/styles/gradient-light.css
index 801a136f4f..af57b67be9 100644
--- a/src/styles/gradient-light.css
+++ b/src/styles/gradient-light.css
@@ -6,9 +6,6 @@ Gradient Light (c) Samia Ali
.hljs
{
-display: block;
-overflow-x: auto;
-padding: 0.5em;
background: rgb(255,253,141);
background: linear-gradient(142deg, rgba(255,253,141,1) 0%, rgba(252,183,255,1) 35%, rgba(144,236,255,1) 100%);
color:#250482;
@@ -42,7 +39,7 @@ color:#01958B;
{
color:#43449F;
-
+
}
.hljs-keyword,
diff --git a/src/styles/grayscale.css b/src/styles/grayscale.css
index 5376f34064..a549abcf31 100644
--- a/src/styles/grayscale.css
+++ b/src/styles/grayscale.css
@@ -5,9 +5,6 @@ grayscale style (c) MY Sun
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
color: #333;
background: #fff;
}
diff --git a/src/styles/gruvbox-dark.css b/src/styles/gruvbox-dark.css
index f563811a86..493a100abe 100644
--- a/src/styles/gruvbox-dark.css
+++ b/src/styles/gruvbox-dark.css
@@ -5,15 +5,13 @@ Gruvbox style (dark) (c) Pavel Pertsev (original style at https://github.com/mor
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #ebdbb2;
background: #282828;
}
-.hljs,
+
.hljs-subst {
- color: #ebdbb2;
+ /* default */
}
/* Gruvbox Red */
diff --git a/src/styles/gruvbox-light.css b/src/styles/gruvbox-light.css
index ff45468eb2..28d56116c3 100644
--- a/src/styles/gruvbox-light.css
+++ b/src/styles/gruvbox-light.css
@@ -5,15 +5,13 @@ Gruvbox style (light) (c) Pavel Pertsev (original style at https://github.com/mo
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #3c3836;
background: #fbf1c7;
}
-.hljs,
+
.hljs-subst {
- color: #3c3836;
+ /* default */
}
/* Gruvbox Red */
diff --git a/src/styles/hopscotch.css b/src/styles/hopscotch.css
index 5934601a00..e408c6d2b9 100644
--- a/src/styles/hopscotch.css
+++ b/src/styles/hopscotch.css
@@ -6,6 +6,11 @@
* This work is licensed under the Creative Commons CC0 1.0 Universal License
*/
+.hljs {
+ background: #322931;
+ color: #b9b5b8;
+}
+
/* Comment */
.hljs-comment,
.hljs-quote {
@@ -67,14 +72,6 @@
color: #c85e7c;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #322931;
- color: #b9b5b8;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/hybrid.css b/src/styles/hybrid.css
index 29735a1890..04ea31b9c7 100644
--- a/src/styles/hybrid.css
+++ b/src/styles/hybrid.css
@@ -4,12 +4,9 @@ vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid)
*/
-/*background color*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #1d1f21;
+ color: #c5c8c6;
}
/*selection color*/
@@ -23,11 +20,6 @@ vim-hybrid theme by w0ng (https://github.com/w0ng/vim-hybrid)
background: #373b41;
}
-/*foreground color*/
-.hljs {
- color: #c5c8c6;
-}
-
/*color: fg_yellow*/
.hljs-title,
.hljs-name {
diff --git a/src/styles/idea.css b/src/styles/idea.css
index 3bf1892bd4..5adc8f899d 100644
--- a/src/styles/idea.css
+++ b/src/styles/idea.css
@@ -5,9 +5,6 @@ Intellij Idea-like styling (c) Vasily Polovnyov
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
color: #000;
background: #fff;
}
diff --git a/src/styles/ir-black.css b/src/styles/ir-black.css
index bd4c755ed8..b70839ba47 100644
--- a/src/styles/ir-black.css
+++ b/src/styles/ir-black.css
@@ -3,9 +3,6 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #000;
color: #f8f8f8;
}
diff --git a/src/styles/isbl-editor-dark.css b/src/styles/isbl-editor-dark.css
index 2f1d95dd50..0d52ef6967 100644
--- a/src/styles/isbl-editor-dark.css
+++ b/src/styles/isbl-editor-dark.css
@@ -5,9 +5,6 @@ ISBL Editor style dark color scheme (c) Dmitriy Tarasov
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #404040;
color: #f0f0f0;
}
diff --git a/src/styles/isbl-editor-light.css b/src/styles/isbl-editor-light.css
index 5dee9ca037..8ad8661d0a 100644
--- a/src/styles/isbl-editor-light.css
+++ b/src/styles/isbl-editor-light.css
@@ -5,9 +5,6 @@ ISBL Editor style light color schemec (c) Dmitriy Tarasov
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: white;
color: black;
}
diff --git a/src/styles/kimbie.dark.css b/src/styles/kimbie.dark.css
index d139cb5d0c..866fdac8fe 100644
--- a/src/styles/kimbie.dark.css
+++ b/src/styles/kimbie.dark.css
@@ -5,6 +5,11 @@
URL: https://github.com/idleberg/Kimbie-highlight.js
*/
+.hljs {
+ background: #221a0f;
+ color: #d3af86;
+}
+
/* Kimbie Comment */
.hljs-comment,
.hljs-quote {
@@ -57,14 +62,6 @@
color: #98676a;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #221a0f;
- color: #d3af86;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/kimbie.light.css b/src/styles/kimbie.light.css
index 04ff6ed3a2..f865a538e3 100644
--- a/src/styles/kimbie.light.css
+++ b/src/styles/kimbie.light.css
@@ -5,6 +5,11 @@
URL: https://github.com/idleberg/Kimbie-highlight.js
*/
+.hljs {
+ background: #fbebd4;
+ color: #84613d;
+}
+
/* Kimbie Comment */
.hljs-comment,
.hljs-quote {
@@ -57,14 +62,6 @@
color: #98676a;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #fbebd4;
- color: #84613d;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/lightfair.css b/src/styles/lightfair.css
index 7d645d60f9..5a5103ec55 100644
--- a/src/styles/lightfair.css
+++ b/src/styles/lightfair.css
@@ -5,9 +5,7 @@ Lightfair style (c) Tristian Kelly
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #444
background: #fff;
}
@@ -19,9 +17,8 @@ Lightfair style (c) Tristian Kelly
color:#778899;
}
-.hljs,
.hljs-subst {
- color: #444
+ /* default */
}
.hljs-comment {
diff --git a/src/styles/lioshi.css b/src/styles/lioshi.css
index 594ac21556..f1df5043d4 100644
--- a/src/styles/lioshi.css
+++ b/src/styles/lioshi.css
@@ -1,6 +1,11 @@
/* lioshi Theme */
/* Original theme - https://github.com/lioshi/vscode-lioshi-theme */
+.hljs {
+ background: #303030;
+ color: #c5c8c6;
+}
+
/* Comment */
.hljs-comment {
color: #8d8d8d;
@@ -67,14 +72,6 @@
color: #dbc4d9;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #303030;
- color: #c5c8c6;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/magula.css b/src/styles/magula.css
index b8003bf422..a891a6f702 100644
--- a/src/styles/magula.css
+++ b/src/styles/magula.css
@@ -8,9 +8,6 @@ Music: Aphex Twin / Xtal
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background-color: #f4f4f4;
color: black;
}
diff --git a/src/styles/mono-blue.css b/src/styles/mono-blue.css
index 24a35a3d8c..6a0ab02308 100644
--- a/src/styles/mono-blue.css
+++ b/src/styles/mono-blue.css
@@ -2,9 +2,6 @@
Five-color theme from a single blue hue.
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #eaeef3;
color: #00193a;
}
diff --git a/src/styles/monokai-sublime.css b/src/styles/monokai-sublime.css
index 2864170daf..5039177632 100644
--- a/src/styles/monokai-sublime.css
+++ b/src/styles/monokai-sublime.css
@@ -5,13 +5,10 @@ Monokai Sublime style. Derived from Monokai by noformnocontent http://nn.mit-lic
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #23241f;
+ color: #f8f8f2;
}
-.hljs,
.hljs-tag,
.hljs-subst {
color: #f8f8f2;
diff --git a/src/styles/monokai.css b/src/styles/monokai.css
index af24834a99..cbd44e9cc8 100644
--- a/src/styles/monokai.css
+++ b/src/styles/monokai.css
@@ -3,9 +3,6 @@ Monokai style - ported by Luigi Maselli - http://grigio.org
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #272822;
color: #ddd;
}
diff --git a/src/styles/night-owl.css b/src/styles/night-owl.css
index 45f45cd298..ec55032a6c 100644
--- a/src/styles/night-owl.css
+++ b/src/styles/night-owl.css
@@ -2,8 +2,8 @@
Night Owl for highlight.js (c) Carl Baxter
-An adaptation of Sarah Drasner's Night Owl VS Code Theme
-https://github.com/sdras/night-owl-vscode-theme
+An adaptation of Sarah Drasner's Night Owl VS Code Theme
+https://github.com/sdras/night-owl-vscode-theme
Copyright (c) 2018 Sarah Drasner
@@ -28,9 +28,6 @@ SOFTWARE.
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #011627;
color: #d6deeb;
}
diff --git a/src/styles/nnfx-dark.css b/src/styles/nnfx-dark.css
index 0751ee5d99..efd329ffce 100644
--- a/src/styles/nnfx-dark.css
+++ b/src/styles/nnfx-dark.css
@@ -7,9 +7,6 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #333;
color: #fff;
}
diff --git a/src/styles/nnfx.css b/src/styles/nnfx.css
index e7beaa518a..0f3cde5cfe 100644
--- a/src/styles/nnfx.css
+++ b/src/styles/nnfx.css
@@ -7,9 +7,6 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #fff;
color: #000;
}
diff --git a/src/styles/nord.css b/src/styles/nord.css
index 424038443a..5c2420b932 100644
--- a/src/styles/nord.css
+++ b/src/styles/nord.css
@@ -11,9 +11,6 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #2E3440;
}
diff --git a/src/styles/obsidian.css b/src/styles/obsidian.css
index 356630fa23..924f5049d8 100644
--- a/src/styles/obsidian.css
+++ b/src/styles/obsidian.css
@@ -4,9 +4,7 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #e0e2e4;
background: #282b2e;
}
@@ -21,10 +19,6 @@
color: #ffcd22;
}
-.hljs {
- color: #e0e2e4;
-}
-
.hljs-attribute {
color: #668bb0;
}
diff --git a/src/styles/ocean.css b/src/styles/ocean.css
index 5901581b40..fabe751b8f 100644
--- a/src/styles/ocean.css
+++ b/src/styles/ocean.css
@@ -2,6 +2,11 @@
/* https://github.com/gavsiu */
/* Original theme - https://github.com/chriskempson/base16 */
+.hljs {
+ background: #2b303b;
+ color: #c0c5ce;
+}
+
/* Ocean Comment */
.hljs-comment,
.hljs-quote {
@@ -57,14 +62,6 @@
color: #b48ead;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #2b303b;
- color: #c0c5ce;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/paraiso-dark.css b/src/styles/paraiso-dark.css
index e7292401c6..c3af150a43 100644
--- a/src/styles/paraiso-dark.css
+++ b/src/styles/paraiso-dark.css
@@ -4,6 +4,11 @@
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
*/
+.hljs {
+ background: #2f1e2e;
+ color: #a39e9b;
+}
+
/* Paraíso Comment */
.hljs-comment,
.hljs-quote {
@@ -55,14 +60,6 @@
color: #815ba4;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #2f1e2e;
- color: #a39e9b;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/paraiso-light.css b/src/styles/paraiso-light.css
index 944857cd8d..f349ab628f 100644
--- a/src/styles/paraiso-light.css
+++ b/src/styles/paraiso-light.css
@@ -4,6 +4,11 @@
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
*/
+.hljs {
+ background: #e7e9db;
+ color: #4f424c;
+}
+
/* Paraíso Comment */
.hljs-comment,
.hljs-quote {
@@ -55,14 +60,6 @@
color: #815ba4;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #e7e9db;
- color: #4f424c;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/pojoaque.css b/src/styles/pojoaque.css
index 2e07847b2b..8b6e742bf7 100644
--- a/src/styles/pojoaque.css
+++ b/src/styles/pojoaque.css
@@ -7,9 +7,6 @@ Based on Solarized Style from http://ethanschoonover.com/solarized
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
color: #dccf8f;
background: url(./pojoaque.jpg) repeat scroll left top #181914;
}
diff --git a/src/styles/purebasic.css b/src/styles/purebasic.css
index 20a5230bcc..963e4e6d1b 100644
--- a/src/styles/purebasic.css
+++ b/src/styles/purebasic.css
@@ -22,13 +22,7 @@ NOTE_2: Color names provided in comments were derived using "Name that Color" on
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #FFFFDF; /* Half and Half (approx.) */
-/* --- Uncomment to add PureBASIC native IDE styled font!
- font-family: Consolas;
-*/
}
.hljs, /* --- used for PureBASIC base color --- */
diff --git a/src/styles/qtcreator_dark.css b/src/styles/qtcreator_dark.css
index 7aa56a3655..358ed69afc 100644
--- a/src/styles/qtcreator_dark.css
+++ b/src/styles/qtcreator_dark.css
@@ -6,13 +6,10 @@ Qt Creator dark color scheme
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #aaaaaa;
background: #000000;
}
-.hljs,
.hljs-subst,
.hljs-tag,
.hljs-title {
diff --git a/src/styles/qtcreator_light.css b/src/styles/qtcreator_light.css
index 1efa2c660f..6904d0dace 100644
--- a/src/styles/qtcreator_light.css
+++ b/src/styles/qtcreator_light.css
@@ -1,18 +1,13 @@
/*
-
Qt Creator light color scheme
-
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #000000;
background: #ffffff;
}
-.hljs,
.hljs-subst,
.hljs-tag,
.hljs-title {
diff --git a/src/styles/railscasts.css b/src/styles/railscasts.css
index 008cdc5bf1..baafcb5348 100644
--- a/src/styles/railscasts.css
+++ b/src/styles/railscasts.css
@@ -5,9 +5,6 @@ Railscasts-like style (c) Visoft, Inc. (Damien White)
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #232323;
color: #e6e1dc;
}
diff --git a/src/styles/rainbow.css b/src/styles/rainbow.css
index 905eb8ef18..d39ca1832f 100644
--- a/src/styles/rainbow.css
+++ b/src/styles/rainbow.css
@@ -5,9 +5,6 @@ Style with support for rainbow parens
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #474949;
color: #d1d9e1;
}
diff --git a/src/styles/routeros.css b/src/styles/routeros.css
index ebe23990da..54b2a86946 100644
--- a/src/styles/routeros.css
+++ b/src/styles/routeros.css
@@ -5,15 +5,12 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
+ color: #444;
background: #F0F0F0;
}
/* Base color: saturation 0; */
-.hljs,
.hljs-subst {
color: #444;
}
@@ -32,7 +29,7 @@
.hljs-attribute {
color: #0E9A00;
-}
+}
.hljs-function {
color: #99069A;
diff --git a/src/styles/school-book.css b/src/styles/school-book.css
index 94838513f1..19360ba92d 100644
--- a/src/styles/school-book.css
+++ b/src/styles/school-book.css
@@ -5,14 +5,8 @@ School Book style from goldblog.com.ua (c) Zaripov Yura
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 15px 0.5em 0.5em 30px;
- font-size: 11px;
- line-height:16px;
- background:#f6f6ae url(./school-book.png);
- border-top: solid 2px #d2e8b9;
- border-bottom: solid 1px #d2e8b9;
+ color: #3e5915;
+ background:#f6f5b2;
}
.hljs-keyword,
@@ -22,7 +16,6 @@ School Book style from goldblog.com.ua (c) Zaripov Yura
font-weight:bold;
}
-.hljs,
.hljs-subst {
color: #3e5915;
}
diff --git a/src/styles/school-book.png b/src/styles/school-book.png
deleted file mode 100644
index 956e9790a0..0000000000
Binary files a/src/styles/school-book.png and /dev/null differ
diff --git a/src/styles/shades-of-purple.css b/src/styles/shades-of-purple.css
index 9759cdd2b8..388618f755 100644
--- a/src/styles/shades-of-purple.css
+++ b/src/styles/shades-of-purple.css
@@ -7,15 +7,15 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
- /* Custom font is optional */
- /* font-family: 'Operator Mono', 'Fira Code', 'Menlo', 'Monaco', 'Courier New', 'monospace'; */
- padding: 0.5em;
background: #2d2b57;
+ color: #e3dfff;
font-weight: normal;
}
+.hljs-subst {
+ color: #e3dfff;
+}
+
.hljs-title {
color: #fad000;
font-weight: normal;
@@ -44,11 +44,6 @@
color: #fb9e00;
}
-.hljs,
-.hljs-subst {
- color: #e3dfff;
-}
-
.hljs-string,
.hljs-attribute,
.hljs-symbol,
diff --git a/src/styles/solarized-dark.css b/src/styles/solarized-dark.css
index b4c0da1f78..dcc33ebd7e 100644
--- a/src/styles/solarized-dark.css
+++ b/src/styles/solarized-dark.css
@@ -5,9 +5,6 @@ Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #000;
color: #f8f8f8;
}
diff --git a/src/styles/tomorrow-night-blue.css b/src/styles/tomorrow-night-blue.css
index 78e59cc8cb..5712b98b45 100644
--- a/src/styles/tomorrow-night-blue.css
+++ b/src/styles/tomorrow-night-blue.css
@@ -59,11 +59,8 @@
}
.hljs {
- display: block;
- overflow-x: auto;
background: #002451;
color: white;
- padding: 0.5em;
}
.hljs-emphasis {
diff --git a/src/styles/tomorrow-night-bright.css b/src/styles/tomorrow-night-bright.css
index e05af8ae24..f63d1c9f50 100644
--- a/src/styles/tomorrow-night-bright.css
+++ b/src/styles/tomorrow-night-bright.css
@@ -58,11 +58,8 @@
}
.hljs {
- display: block;
- overflow-x: auto;
background: black;
color: #eaeaea;
- padding: 0.5em;
}
.hljs-emphasis {
diff --git a/src/styles/tomorrow-night-eighties.css b/src/styles/tomorrow-night-eighties.css
index 08fd51c742..d666acbd9f 100644
--- a/src/styles/tomorrow-night-eighties.css
+++ b/src/styles/tomorrow-night-eighties.css
@@ -2,6 +2,11 @@
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+.hljs {
+ background: #2d2d2d;
+ color: #cccccc;
+}
+
/* Tomorrow Comment */
.hljs-comment,
.hljs-quote {
@@ -57,14 +62,6 @@
color: #cc99cc;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #2d2d2d;
- color: #cccccc;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/tomorrow-night.css b/src/styles/tomorrow-night.css
index ddd270a4e7..53eb2d5cc5 100644
--- a/src/styles/tomorrow-night.css
+++ b/src/styles/tomorrow-night.css
@@ -3,6 +3,11 @@
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+.hljs {
+ background: #1d1f21;
+ color: #c5c8c6;
+}
+
/* Tomorrow Comment */
.hljs-comment,
.hljs-quote {
@@ -58,14 +63,6 @@
color: #b294bb;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: #1d1f21;
- color: #c5c8c6;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/tomorrow.css b/src/styles/tomorrow.css
index 026a62fe3b..e604fb80d7 100644
--- a/src/styles/tomorrow.css
+++ b/src/styles/tomorrow.css
@@ -1,5 +1,10 @@
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
+.hljs {
+ background: white;
+ color: #4d4d4c;
+}
+
/* Tomorrow Comment */
.hljs-comment,
.hljs-quote {
@@ -55,14 +60,6 @@
color: #8959a8;
}
-.hljs {
- display: block;
- overflow-x: auto;
- background: white;
- color: #4d4d4c;
- padding: 0.5em;
-}
-
.hljs-emphasis {
font-style: italic;
}
diff --git a/src/styles/vs.css b/src/styles/vs.css
index c5d07d3115..a1ed6da859 100644
--- a/src/styles/vs.css
+++ b/src/styles/vs.css
@@ -4,9 +4,6 @@ Visual Studio-like style based on original C# coloring by Jason Diamond
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #fff;
color: black;
}
diff --git a/src/styles/xt256.css b/src/styles/xt256.css
index 3e35ad2d5c..be5eea634d 100644
--- a/src/styles/xt256.css
+++ b/src/styles/xt256.css
@@ -7,11 +7,8 @@
*/
.hljs {
- display: block;
- overflow-x: auto;
color: #eaeaea;
background: #000;
- padding: 0.5em;
}
.hljs-subst {
diff --git a/src/styles/zenburn.css b/src/styles/zenburn.css
index 07be502016..9f32e58eb2 100644
--- a/src/styles/zenburn.css
+++ b/src/styles/zenburn.css
@@ -6,9 +6,6 @@ based on dark.css by Ivan Sagalaev
*/
.hljs {
- display: block;
- overflow-x: auto;
- padding: 0.5em;
background: #3f3f3f;
color: #dcdcdc;
}
diff --git a/test/api/autoDetection.js b/test/api/autoDetection.js
index dc8d3d25a7..e47b9a9b95 100644
--- a/test/api/autoDetection.js
+++ b/test/api/autoDetection.js
@@ -1,7 +1,5 @@
-'use strict';
-
-const hljs = require('../../build');
-const should = require('should');
+import hljs from '#hljs';
+import should from 'should';
describe('.autoDetection()', () => {
it('should get an existing language', () => {
diff --git a/test/api/beginKeywords.js b/test/api/beginKeywords.js
index 53bf85b796..53162e29f3 100644
--- a/test/api/beginKeywords.js
+++ b/test/api/beginKeywords.js
@@ -1,6 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
+import hljs from '#hljs';
let grammar = function() {
return {
@@ -24,6 +22,10 @@ describe('beginKeywords', () => {
hljs.registerLanguage("test", grammar);
hljs.registerLanguage("has-followup", grammarWithFollowupRule);
});
+ after( () => {
+ hljs.unregisterLanguage("test");
+ hljs.unregisterLanguage('has-followup');
+ });
it("should allow subsequence matches to still succeed", () => {
let content = "A.class = self";
diff --git a/test/api/binaryNumber.js b/test/api/binaryNumber.js
index 107788e213..caa2bddff2 100644
--- a/test/api/binaryNumber.js
+++ b/test/api/binaryNumber.js
@@ -1,6 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
+import hljs from '#hljs';
const pattern = new RegExp(`${hljs.BINARY_NUMBER_RE}$`);
describe('.BINARY_NUMBER_RE', () => {
diff --git a/test/api/cNumber.js b/test/api/cNumber.js
index b852287965..26591cc174 100644
--- a/test/api/cNumber.js
+++ b/test/api/cNumber.js
@@ -1,7 +1,5 @@
-'use strict';
-
-const _ = require('lodash');
-const hljs = require('../../build');
+import hljs from '#hljs';
+import _ from 'lodash';
const pattern = new RegExp(`${hljs.C_NUMBER_RE}$`);
diff --git a/test/api/fixmarkup.js b/test/api/fixmarkup.js
deleted file mode 100644
index 360b6a51e9..0000000000
--- a/test/api/fixmarkup.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'use strict';
-
-const should = require('should');
-const hljs = require('../../build');
-
-describe('.fixmarkup()', () => {
- after(() => {
- hljs.configure({ useBR: false });
- });
-
- it('should not strip HTML from beginning of strings', () => {
- hljs.configure({ useBR: true });
- const value = '"some": \n "json"';
- const result = hljs.fixMarkup(value);
-
- result.should.equal(
- '"some":
"json"'
- );
- });
-
- it('should not add "undefined" to the beginning of the result (#1452)', () => {
- hljs.configure({ useBR: true });
- const value = '{ "some": \n "json" }';
- const result = hljs.fixMarkup(value);
-
-
- result.should.equal(
- '{ "some":
"json" }'
- );
- });
-});
diff --git a/test/api/getLanguage.js b/test/api/getLanguage.js
index ae14ebb92e..0cd765d22c 100644
--- a/test/api/getLanguage.js
+++ b/test/api/getLanguage.js
@@ -1,7 +1,5 @@
-'use strict';
-
-const hljs = require('../../build');
-const should = require('should');
+import hljs from '#hljs';
+import should from 'should';
describe('.getLanguage()', () => {
it('should get an existing language', () => {
diff --git a/test/api/highlight.cjs b/test/api/highlight.cjs
new file mode 100644
index 0000000000..ea36fea933
--- /dev/null
+++ b/test/api/highlight.cjs
@@ -0,0 +1,17 @@
+'use strict';
+
+describe('.highlight()', () => {
+ it('should works without continuation', async () => {
+ const { default: hljs } = await import('#hljs');
+ const code = 'public void moveTo(int x, int y, int z);';
+ const result = hljs.highlight('java', code, false, false);
+
+ result.value.should.equal(
+ 'public ' +
+ 'void moveTo' +
+ '(int x, ' +
+ 'int y, ' +
+ 'int z);'
+ );
+ });
+});
diff --git a/test/api/highlight.js b/test/api/highlight.js
index 962c36e175..9a75f734c5 100644
--- a/test/api/highlight.js
+++ b/test/api/highlight.js
@@ -1,7 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
-const should = require('should');
+import hljs from '#hljs';
describe('.highlight()', () => {
it('should works without continuation', () => {
diff --git a/test/api/ident.js b/test/api/ident.js
index 89ea859335..0bece8f379 100644
--- a/test/api/ident.js
+++ b/test/api/ident.js
@@ -1,6 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
+import hljs from '#hljs';
const pattern = new RegExp(`^${hljs.IDENT_RE}$`);
diff --git a/test/api/index.js b/test/api/index.js
index b15ed29936..4f38c88bf3 100644
--- a/test/api/index.js
+++ b/test/api/index.js
@@ -1,18 +1,14 @@
-'use strict';
-
-describe('hljs', function() {
- require('./autoDetection');
- require('./beginKeywords');
- require('./binaryNumber');
- require('./cNumber');
- require('./fixmarkup');
- require('./getLanguage');
- require('./highlight');
- require('./ident');
- require('./keywords');
- require('./number');
- require('./registerAlias');
- require('./unregisterLanguage');
- require('./starters');
- require('./underscoreIdent');
-});
+import "./autoDetection.js";
+import "./beginKeywords.js";
+import "./binaryNumber.js";
+import "./cNumber.js";
+import "./getLanguage.js";
+import "./highlight.js";
+import "./highlight.cjs";
+import "./ident.js";
+import "./keywords.js";
+import "./number.js";
+import "./registerAlias.js";
+import "./starters.js";
+import "./underscoreIdent.js";
+import "./unregisterLanguage.js";
diff --git a/test/api/keywords.js b/test/api/keywords.js
index f72a212c08..46362bdf87 100644
--- a/test/api/keywords.js
+++ b/test/api/keywords.js
@@ -1,6 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
+import hljs from '#hljs';
describe('computing the relevance score of a language', () => {
it('should ignore common keywords', () => {
diff --git a/test/api/number.js b/test/api/number.js
index 85f60fe1a0..cef7ee3313 100644
--- a/test/api/number.js
+++ b/test/api/number.js
@@ -1,7 +1,5 @@
-'use strict';
-
-const _ = require('lodash');
-const hljs = require('../../build');
+import hljs from '#hljs';
+import _ from 'lodash';
const pattern = new RegExp(`${hljs.NUMBER_RE}$`);
diff --git a/test/api/registerAlias.js b/test/api/registerAlias.js
index aede3ebb7a..94d3379097 100644
--- a/test/api/registerAlias.js
+++ b/test/api/registerAlias.js
@@ -1,7 +1,5 @@
-'use strict';
-
-const hljs = require('../../build');
-const should = require('should');
+import hljs from '#hljs';
+import should from 'should';
describe('.registerAliases()', () => {
it('should get an existing language by alias', () => {
diff --git a/test/api/starters.js b/test/api/starters.js
index c6afcbbe63..f6b8e434bb 100644
--- a/test/api/starters.js
+++ b/test/api/starters.js
@@ -1,6 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
+import hljs from '#hljs';
const pattern = new RegExp(`^${hljs.RE_STARTERS_RE}$`);
diff --git a/test/api/underscoreIdent.js b/test/api/underscoreIdent.js
index 5fb03d4820..7adba59706 100644
--- a/test/api/underscoreIdent.js
+++ b/test/api/underscoreIdent.js
@@ -1,6 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
+import hljs from '#hljs';
const pattern = new RegExp(`^${hljs.UNDERSCORE_IDENT_RE}$`);
diff --git a/test/api/unregisterLanguage.js b/test/api/unregisterLanguage.js
index ce0ff00b99..9d6ac06311 100644
--- a/test/api/unregisterLanguage.js
+++ b/test/api/unregisterLanguage.js
@@ -1,6 +1,4 @@
-"use strict";
-
-const hljs = require("../../build");
+import hljs from '#hljs';
const jQuery = function() {
return {
diff --git a/test/browser/highlight_block_callbacks.js b/test/browser/highlight_block_callbacks.js
index 165c3067a1..059e64d64f 100644
--- a/test/browser/highlight_block_callbacks.js
+++ b/test/browser/highlight_block_callbacks.js
@@ -1,8 +1,4 @@
-'use strict';
-
-const {promisify} = require('util');
-
-const {newTestCase, defaultCase, buildFakeDOM } = require('./test_case')
+import {newTestCase, defaultCase, buildFakeDOM } from './test_case.js';
class ContentAdder {
constructor(params) {
diff --git a/test/browser/index.js b/test/browser/index.js
index b429726aff..dd6cfcc3cf 100644
--- a/test/browser/index.js
+++ b/test/browser/index.js
@@ -1,5 +1,3 @@
-'use strict';
-
-require('./plain');
-require('./worker');
-require('./highlight_block_callbacks');
+import './plain.js';
+import './worker.js';
+import './highlight_block_callbacks.js';
diff --git a/test/browser/plain.js b/test/browser/plain.js
index 0416e94d3f..0b4fada580 100644
--- a/test/browser/plain.js
+++ b/test/browser/plain.js
@@ -1,16 +1,4 @@
-'use strict';
-
-const {newTestCase, defaultCase, buildFakeDOM } = require('./test_case')
-
-describe('browser with html with quotes in attributes', function() {
- it('should property escape all quotes',
- newTestCase({
- code: "const oops = pick(employee, ['name', 'height'])\n",
- language: "javascript",
- expect: `const oops = pick(employee, ['name', 'height'])\n`
- }).runner
- );
-})
+import {newTestCase, defaultCase, buildFakeDOM } from './test_case.js';
describe('plain browser', function() {
diff --git a/test/browser/test_case.js b/test/browser/test_case.js
index 8ff8e87f64..2867785e98 100644
--- a/test/browser/test_case.js
+++ b/test/browser/test_case.js
@@ -1,8 +1,10 @@
-const {promisify} = require('util');
-const { JSDOM } = require('jsdom');
-const utility = require('../utility');
-const glob = promisify(require('glob'));
-const fs = require('fs');
+import {promisify} from 'util';
+import { JSDOM } from 'jsdom';
+import * as utility from '../utility.js';
+import fs from 'fs';
+import _glob from 'glob';
+
+const glob = promisify(_glob);
// default to the minified library if it was built, otherwise fallback to
// the non-minified
@@ -57,4 +59,4 @@ const defaultCase = newTestCase({
'"Hello";'
});
-module.exports = { newTestCase, defaultCase, buildFakeDOM, findLibrary };
+export { newTestCase, defaultCase, buildFakeDOM, findLibrary };
diff --git a/test/browser/worker.js b/test/browser/worker.js
index c1e99ca64e..98447fa3c0 100644
--- a/test/browser/worker.js
+++ b/test/browser/worker.js
@@ -1,8 +1,6 @@
-'use strict';
+import Worker from 'tiny-worker';
-const Worker = require('tiny-worker');
-
-const { defaultCase, findLibrary } = require('./test_case')
+import { defaultCase, findLibrary } from './test_case.js';
describe('web worker', function() {
before(async function() {
diff --git a/test/builds/browser_build_as_commonjs.js b/test/builds/browser_build_as_commonjs.js
index ef5f6815d7..b3170c4b7c 100644
--- a/test/builds/browser_build_as_commonjs.js
+++ b/test/builds/browser_build_as_commonjs.js
@@ -1,8 +1,8 @@
-const hljs = require("../../build/highlight");
+import hljs from "../../build/highlight.js";
-let major = parseInt(majorVersion=hljs.versionString.split("."))
+const major = parseInt(hljs.versionString.split("."));
if (major != 10) {
- process.exit(1)
+ process.exit(1);
}
-console.log("Pass: browser build works with Node.js just fine.")
+console.log("Pass: browser build works with Node.js just fine.");
diff --git a/test/detect/index.js b/test/detect/index.js
index b51adb10b3..1fb91fea58 100644
--- a/test/detect/index.js
+++ b/test/detect/index.js
@@ -1,14 +1,11 @@
-'use strict';
+import hljs from '#hljs';
-delete require.cache[require.resolve('../../build')];
-delete require.cache[require.resolve('../../build/lib/core')];
+import { promises as fs } from 'fs';
+import path from 'path';
+import * as utility from '../utility.js';
+import { getThirdPartyPackages } from '#tools/external_language';
-const fs = require('fs').promises;
-const hljs = require('../../build');
hljs.debugMode(); // tests run in debug mode so errors are raised
-const path = require('path');
-const utility = require('../utility');
-const { getThirdPartyPackages } = require('../../tools/lib/external_language');
function testAutoDetection(language, { detectPath }) {
const languagePath = detectPath || utility.buildPath('detect', language);
diff --git a/test/detect/sql_more/default.txt b/test/detect/sql_more/default.txt
deleted file mode 100644
index d4325cc1c5..0000000000
--- a/test/detect/sql_more/default.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-CREATE TABLE "topic" (
- "id" serial NOT NULL PRIMARY KEY,
- "forum_id" integer NOT NULL,
- "subject" varchar(255) NOT NULL
-);
-ALTER TABLE "topic"
-ADD CONSTRAINT forum_id FOREIGN KEY ("forum_id")
-REFERENCES "forum" ("id");
-
--- Initials
-insert into "topic" ("forum_id", "subject")
-values (2, 'D''artagnian');
diff --git a/test/fixtures/expect/brInPre.txt b/test/fixtures/expect/brInPre.txt
deleted file mode 100644
index e065147ab3..0000000000
--- a/test/fixtures/expect/brInPre.txt
+++ /dev/null
@@ -1 +0,0 @@
->> '\x41\x42\x43'
'ABC'
>> '\x61\x62\x63'
'abc'
diff --git a/test/fixtures/expect/custommarkup.txt b/test/fixtures/expect/custommarkup.txt
deleted file mode 100644
index f0304c200c..0000000000
--- a/test/fixtures/expect/custommarkup.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-<div id="contents">
- <p>Hello, World!Goodbye, cruel world!
-</div>
diff --git a/test/fixtures/expect/customtabreplace.txt b/test/fixtures/expect/customtabreplace.txt
deleted file mode 100644
index f6a396b716..0000000000
--- a/test/fixtures/expect/customtabreplace.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-for x in [1, 2, 3]:
- count(x)
- if x == 3:
- count(x + 1)
diff --git a/test/fixtures/expect/tabreplace.txt b/test/fixtures/expect/tabreplace.txt
deleted file mode 100644
index 01d1c576ac..0000000000
--- a/test/fixtures/expect/tabreplace.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-for x in [1, 2, 3]:
- count(x)
\ No newline at end of file
diff --git a/test/fixtures/index.html b/test/fixtures/index.html
index 99a45bdf71..0ca5640bbb 100644
--- a/test/fixtures/index.html
+++ b/test/fixtures/index.html
@@ -31,30 +31,6 @@
-
-
-
-for x in [1, 2, 3]:
- count(x)
-
-
-<div id="contents">
- <p>Hello, World!Goodbye, cruel world!
-</div>
-
-
-
-for x in [1, 2, 3]:
- count(x)
- if x == 3:
- count(x + 1)
-
-
->> '\x41\x42\x43'
'ABC'
>> '\x61\x62\x63'
'abc'
-
-
-
-
@@ -113,22 +89,6 @@
-
-
-<head>
<meta charset="utf-8">
<title></title>
</head>
-
-<head>
- <meta charset="utf-8">
- <title></title>
-</head>
-
-<head>
- <meta charset="utf-8">
- <title></title>
-</head>
-
-
-
( [ ( ) ] )
diff --git a/test/fixtures/nested.js b/test/fixtures/nested.js
index 3c6b59dab9..31b926d611 100644
--- a/test/fixtures/nested.js
+++ b/test/fixtures/nested.js
@@ -1,4 +1,4 @@
-module.exports = function(hljs) {
+export default function(hljs) {
var BODY = {
className: 'body', endsWithParent: true
};
diff --git a/test/index.js b/test/index.js
index 62a78cdad6..7b94009143 100644
--- a/test/index.js
+++ b/test/index.js
@@ -1,26 +1,25 @@
-'use strict';
+import hljs from '#hljs';
-const hljs = require('../build');
hljs.debugMode(); // tests run in debug mode so errors are raised
// Tests specific to the API exposed inside the hljs object.
// Right now, that only includes tests for several common regular expressions.
-require('./api');
+import './api/index.js';
// Test weird bugs we've fixed over time
-require("./parser");
+import "./parser/index.js";
// Tests for auto detection of languages via `highlightAuto`.
-require('./detect');
+import './detect/index.js';
// HTML markup tests for particular languages. Usually when there is an
// incorrect highlighting of one language, once the bug get fixed, the
// expected markup will be added into the `test/markup` folder to keep
// theses highlighting errors from cropping up again.
-require('./markup');
+import './markup/index.js';
// check regex for fatal issues like exponential backtracking, etc
-require('./regex');
+import './regex/index.js';
// Tests meant for the browser only. Using the `test/fixtures/index.html` file
// along with `jsdom` these tests check for things like: custom markup already
@@ -28,4 +27,5 @@ require('./regex');
// and several other cases. Do note that the `test/fixtures/index.html` file
// isn't actually used to test inside a browser but `jsdom` acts as a virtual
// browser inside of node.js and runs together with all the other tests.
-require('./special');
+import './special/index.js';
+
diff --git a/test/markup/index.js b/test/markup/index.js
index 28138ffa6b..f15d3938b0 100644
--- a/test/markup/index.js
+++ b/test/markup/index.js
@@ -1,14 +1,14 @@
'use strict';
-const fs = require('fs').promises;
-const glob = require('glob');
-const hljs = require('../../build');
-const path = require('path');
-const utility = require('../utility');
+import { promises as fs } from 'fs';
+import glob from 'glob';;
+import hljs from '#hljs';
+import path from 'path';
+import * as utility from '../utility.js';
hljs.debugMode();
-const { getThirdPartyPackages } = require("../../tools/lib/external_language")
+import { getThirdPartyPackages } from "#tools/external_language"
function testLanguage(language, {testDir}) {
describe(language, function() {
diff --git a/test/markup/sql_more/interval.expect.txt b/test/markup/sql_more/interval.expect.txt
deleted file mode 100644
index fa32487be7..0000000000
--- a/test/markup/sql_more/interval.expect.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-SELECT
- CURRENT_TIMESTAMP
- - INTERVAL 2 YEARS
- + INTERVAL 1 MONTH
- - INTERVAL 3 DAYS
- + INTERVAL 10 HOURS
- + interval 30 MINUTES
- - INTERVAL 20 SECOND AS past_timestamp
-FROM VALUES ("dummy");
-
-WITH ts AS (
- SELECT CURRENT_TIMESTAMP AS now FROM VALUES ('dummy')
- )
-SELECT
- now - INTERVAL 1 DAY - INTERVAL 2 HOURS - INTERVAL 3 MINUTES - INTERVAL 4 SECONDS AS LONG_VERSION,
- now - INTERVAL '1 2:3:4.100' DAY TO SECOND AS SHORT_VERSION
-FROM ts;
diff --git a/test/markup/sql_more/interval.txt b/test/markup/sql_more/interval.txt
deleted file mode 100644
index 9f1657d4b6..0000000000
--- a/test/markup/sql_more/interval.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-SELECT
- CURRENT_TIMESTAMP
- - INTERVAL 2 YEARS
- + INTERVAL 1 MONTH
- - INTERVAL 3 DAYS
- + INTERVAL 10 HOURS
- + interval 30 MINUTES
- - INTERVAL 20 SECOND AS past_timestamp
-FROM VALUES ("dummy");
-
-WITH ts AS (
- SELECT CURRENT_TIMESTAMP AS now FROM VALUES ('dummy')
- )
-SELECT
- now - INTERVAL 1 DAY - INTERVAL 2 HOURS - INTERVAL 3 MINUTES - INTERVAL 4 SECONDS AS LONG_VERSION,
- now - INTERVAL '1 2:3:4.100' DAY TO SECOND AS SHORT_VERSION
-FROM ts;
diff --git a/test/markup/sql_more/join.expect.txt b/test/markup/sql_more/join.expect.txt
deleted file mode 100644
index fdeacf3663..0000000000
--- a/test/markup/sql_more/join.expect.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-SELECT
- left_table.col1 AS l_col1,
- left_table.col2 AS l_col2
-FROM
- VALUES (0, 10), (1, 11), (2, 12), (3,13), (4, 14), (5, 14) AS left_table
- ANTI JOIN
- VALUES (0, 10), (2, 12), (4, 14), (6, 16) AS right_table
- ON left_table.col1 = right_table.col1;
-
-SELECT
- left_table.col1 AS l_col1,
- left_table.col2 AS l_col2
-FROM
- VALUES (0, 10), (1, 11), (2, 12), (3,13), (4, 14), (5, 14) AS left_table
- LEFT SEMI JOIN
- VALUES (0, 10), (2, 12), (4, 14), (6, 16) AS right_table
- ON left_table.col1 = right_table.col1;
diff --git a/test/markup/sql_more/join.txt b/test/markup/sql_more/join.txt
deleted file mode 100644
index 3c23573a84..0000000000
--- a/test/markup/sql_more/join.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-SELECT
- left_table.col1 AS l_col1,
- left_table.col2 AS l_col2
-FROM
- VALUES (0, 10), (1, 11), (2, 12), (3,13), (4, 14), (5, 14) AS left_table
- ANTI JOIN
- VALUES (0, 10), (2, 12), (4, 14), (6, 16) AS right_table
- ON left_table.col1 = right_table.col1;
-
-SELECT
- left_table.col1 AS l_col1,
- left_table.col2 AS l_col2
-FROM
- VALUES (0, 10), (1, 11), (2, 12), (3,13), (4, 14), (5, 14) AS left_table
- LEFT SEMI JOIN
- VALUES (0, 10), (2, 12), (4, 14), (6, 16) AS right_table
- ON left_table.col1 = right_table.col1;
diff --git a/test/markup/sql_more/lateral-view.expect.txt b/test/markup/sql_more/lateral-view.expect.txt
deleted file mode 100644
index 006b309b70..0000000000
--- a/test/markup/sql_more/lateral-view.expect.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-SELECT
- master_child.col1 AS master_id,
- child_table.child_id
-FROM VALUES
- ( 1 , ARRAY(1,2,3)),
- (2, ARRAY(4,5,6)) AS master_child
-LATERAL VIEW EXPLODE(master_child.col2) child_table AS child_id;
diff --git a/test/markup/sql_more/lateral-view.txt b/test/markup/sql_more/lateral-view.txt
deleted file mode 100644
index 9a152f3956..0000000000
--- a/test/markup/sql_more/lateral-view.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-SELECT
- master_child.col1 AS master_id,
- child_table.child_id
-FROM VALUES
- ( 1 , ARRAY(1,2,3)),
- (2, ARRAY(4,5,6)) AS master_child
-LATERAL VIEW EXPLODE(master_child.col2) child_table AS child_id;
diff --git a/test/markup/sql_more/window-function.expect.txt b/test/markup/sql_more/window-function.expect.txt
deleted file mode 100644
index a6882aac4a..0000000000
--- a/test/markup/sql_more/window-function.expect.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-SELECT *
-FROM (
- SELECT
- posts.col1 AS emp_id,
- posts.col2 AS dept_id,
- posts.col3 AS posts,
- DENSE_RANK() OVER post_ranking AS rank
- FROM VALUES
- (1, 1 ,100),
- (2, 1 ,50),
- (8, 1 ,250),
- (3, 2 ,200),
- (4, 2 ,300),
- (9, 2 ,1000),
- (5, 3 ,300),
- (6, 3 ,100),
- (7, 3 ,400) AS posts
- WINDOW post_ranking AS (
- PARTITION BY posts.col2
- ORDER BY posts.col3 DESC
- ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
-)
-WHERE rank <= 2;
diff --git a/test/markup/sql_more/window-function.txt b/test/markup/sql_more/window-function.txt
deleted file mode 100644
index a3dbf70c73..0000000000
--- a/test/markup/sql_more/window-function.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-SELECT *
-FROM (
- SELECT
- posts.col1 AS emp_id,
- posts.col2 AS dept_id,
- posts.col3 AS posts,
- DENSE_RANK() OVER post_ranking AS rank
- FROM VALUES
- (1, 1 ,100),
- (2, 1 ,50),
- (8, 1 ,250),
- (3, 2 ,200),
- (4, 2 ,300),
- (9, 2 ,1000),
- (5, 3 ,300),
- (6, 3 ,100),
- (7, 3 ,400) AS posts
- WINDOW post_ranking AS (
- PARTITION BY posts.col2
- ORDER BY posts.col3 DESC
- ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
-)
-WHERE rank <= 2;
diff --git a/test/parser/compiler-extensions.js b/test/parser/compiler-extensions.js
index 90b1d0f37e..4fa60480f2 100644
--- a/test/parser/compiler-extensions.js
+++ b/test/parser/compiler-extensions.js
@@ -1,4 +1,4 @@
-const hljs = require('../../build');
+import hljs from '#hljs';
// not quite ready to become a plugin yet, so these hooks
// have been removed and we're skipping this test for now
diff --git a/test/parser/index.js b/test/parser/index.js
index 5b59a5b725..08d59140f8 100644
--- a/test/parser/index.js
+++ b/test/parser/index.js
@@ -1,11 +1,5 @@
-'use strict';
-
-const should = require('should');
-
-describe('hljs', function() {
- require('./look-ahead-end-matchers');
- require('./resume-scan');
- require('./reuse-endsWithParent');
- require('./should-not-destroyData');
- require('./compiler-extensions');
-});
+import "./compiler-extensions.js";
+import "./look-ahead-end-matchers.js";
+import "./resume-scan.js";
+import "./reuse-endsWithParent.js";
+import "./should-not-destroyData.js";
diff --git a/test/parser/look-ahead-end-matchers.js b/test/parser/look-ahead-end-matchers.js
index 241e1fd0f6..a6dfc55910 100644
--- a/test/parser/look-ahead-end-matchers.js
+++ b/test/parser/look-ahead-end-matchers.js
@@ -1,6 +1,9 @@
-const hljs = require('../../build');
+import hljs from '#hljs';
describe("parser specifics", function () {
+ after(()=>{
+ hljs.unregisterLanguage('test-language');
+ });
// CONTEXT: https://github.com/highlightjs/highlight.js/pull/2219
describe("a grammar with look-ahead end matchers", () => {
diff --git a/test/parser/resume-scan.js b/test/parser/resume-scan.js
index fb50a47f37..c761851626 100644
--- a/test/parser/resume-scan.js
+++ b/test/parser/resume-scan.js
@@ -1,6 +1,4 @@
-'use strict';
-
-const hljs = require('../../build');
+import hljs from '#hljs';
hljs.debugMode(); // tests run in debug mode so errors are raised
describe("bugs", function() {
diff --git a/test/parser/reuse-endsWithParent.js b/test/parser/reuse-endsWithParent.js
index 7a4d2fe9dc..5649ee2698 100644
--- a/test/parser/reuse-endsWithParent.js
+++ b/test/parser/reuse-endsWithParent.js
@@ -1,6 +1,9 @@
-const hljs = require('../../build');
+import hljs from '#hljs';
describe("bugs", function () {
+ after(()=>{
+ hljs.unregisterLanguage('test-language');
+ });
describe("modes containing 'endsWithParent'", () => {
it("should be allowed to be reused", () => {
diff --git a/test/parser/should-not-destroyData.js b/test/parser/should-not-destroyData.js
index e12a571ed0..52ee49ab24 100644
--- a/test/parser/should-not-destroyData.js
+++ b/test/parser/should-not-destroyData.js
@@ -1,6 +1,9 @@
-const hljs = require('../../build');
+import hljs from '#hljs';
describe("parser/should not destroy data", function () {
+ after(()=>{
+ hljs.unregisterLanguage('test-language');
+ });
// CONTEXT: https://github.com/highlightjs/highlight.js/pull/2219
describe("a grammar with a mode that makes a 0 width match", () => {
diff --git a/test/regex/index.js b/test/regex/index.js
index 426568ba4f..5ffeead335 100644
--- a/test/regex/index.js
+++ b/test/regex/index.js
@@ -1,10 +1,8 @@
-'use strict';
-
-const hljs = require('../../build');
-const { BFS, parseRegex, regexFor } = require('./lib/util.js');
-const { visitRegExpAST } = require('regexpp');
-const { JS, Words, NFA, CharSet } = require('refa');
-const { firstOf, underAStar, isFirstMatch, isAlwaysZeroWidth} = require('./lib/analysis.js');
+import hljs from '#hljs';
+import { visitRegExpAST } from 'regexpp';
+import { JS, Words, NFA, CharSet } from 'refa';
+import { parseRegex, regexFor } from './lib/util.js';
+import { firstOf, underAStar } from './lib/analysis.js';
hljs.debugMode();
diff --git a/test/regex/lib/analysis.js b/test/regex/lib/analysis.js
index 3b14fbcb4a..274e91e528 100644
--- a/test/regex/lib/analysis.js
+++ b/test/regex/lib/analysis.js
@@ -84,4 +84,4 @@ function firstOf(iter) {
return undefined;
}
-module.exports = { firstOf, underAStar, isFirstMatch, isAlwaysZeroWidth};
+export { firstOf, underAStar, isFirstMatch, isAlwaysZeroWidth};
diff --git a/test/regex/lib/util.js b/test/regex/lib/util.js
index f323a37264..8c0ac5edb5 100644
--- a/test/regex/lib/util.js
+++ b/test/regex/lib/util.js
@@ -1,6 +1,6 @@
/* eslint-disable no-undefined */
-const { RegExpParser } = require('regexpp');
+import { RegExpParser } from 'regexpp';
/**
* @typedef {import("regexpp/ast").Pattern} Pattern
@@ -104,4 +104,4 @@ const parseRegex = (regex) => {
return literal;
};
-module.exports = { BFS, regexFor, parseRegex };
+export { BFS, regexFor, parseRegex };
diff --git a/test/special/buildClassName.js b/test/special/buildClassName.js
index 304071e431..3bff060bc3 100644
--- a/test/special/buildClassName.js
+++ b/test/special/buildClassName.js
@@ -1,6 +1,6 @@
-'use strict';
+import { document } from './document.js'
-describe('block class names', () => {
+describe('block class names', function() {
before( () => {
const testHTML = document.querySelectorAll('#build-classname .hljs');
diff --git a/test/special/customMarkup.js b/test/special/customMarkup.js
deleted file mode 100644
index fd88e377cc..0000000000
--- a/test/special/customMarkup.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-const utility = require('../utility');
-
-describe('custom markup', () => {
- before(() => {
- const testHTML = document.querySelectorAll('#custom-markup .hljs');
-
- this.blocks = [...testHTML].map(x => x.innerHTML);
- });
-
- it('should replace tabs', () => {
- const filename = utility.buildPath('fixtures', 'expect',
- 'tabreplace.txt'),
- actual = this.blocks[0];
-
- return utility.expectedFile(filename, 'utf-8', actual);
- });
-
- it('should keep custom markup', () => {
- const filename = utility.buildPath('fixtures', 'expect',
- 'custommarkup.txt'),
- actual = this.blocks[1];
-
- return utility.expectedFile(filename, 'utf-8', actual);
- });
-
- it('should keep custom markup and replace tabs', () => {
- const filename = utility.buildPath('fixtures', 'expect',
- 'customtabreplace.txt'),
- actual = this.blocks[2];
-
- return utility.expectedFile(filename, 'utf-8', actual);
- });
-
- it('should keep the same amount of void elements (
,
, ...)', () => {
- const filename = utility.buildPath('fixtures', 'expect', 'brInPre.txt'),
- actual = this.blocks[3];
-
- return utility.expectedFile(filename, 'utf-8', actual);
- });
-});
diff --git a/test/special/document.js b/test/special/document.js
new file mode 100644
index 0000000000..3821a4af59
--- /dev/null
+++ b/test/special/document.js
@@ -0,0 +1,25 @@
+import hljs from '#hljs';
+
+import { JSDOM } from 'jsdom';
+import * as utility from '../utility.js';
+import nested from '../fixtures/nested.js';
+
+const filename = utility.buildPath('fixtures', 'index.html');
+const { window } = await JSDOM.fromFile(filename);
+
+// Allows hljs to use document
+export const document = window.document;
+
+// Special language to test endsWithParentVariants
+hljs.registerLanguage('nested', nested);
+
+// Setup hljs environment
+hljs.configure({ tabReplace: ' ' });
+let blocks = document.querySelectorAll('pre code');
+blocks.forEach(hljs.highlightElement);
+
+// Setup hljs for non-`` tests
+hljs.configure();
+
+blocks = document.querySelectorAll('.code');
+blocks.forEach(hljs.highlightElement);
diff --git a/test/special/endsWithParentVariants.js b/test/special/endsWithParentVariants.js
index db84ecc42b..47215e1a90 100644
--- a/test/special/endsWithParentVariants.js
+++ b/test/special/endsWithParentVariants.js
@@ -1,8 +1,7 @@
-'use strict';
+import { document } from './document.js'
+import * as utility from '../utility.js';
-const utility = require('../utility');
-
-describe('ends with parent variants', () => {
+describe('ends with parent variants', function() {
before(() => {
const filename = utility.buildPath('fixtures', 'expect', 'endsWithParentVariants.txt'),
testHTML = document.querySelectorAll('#ends-with-parent-variants .hljs');
diff --git a/test/special/explicitLanguage.js b/test/special/explicitLanguage.js
index cc54e6123e..8cdede3b53 100644
--- a/test/special/explicitLanguage.js
+++ b/test/special/explicitLanguage.js
@@ -1,8 +1,7 @@
-'use strict';
+import { document } from './document.js'
+import * as utility from '../utility.js';
-const utility = require('../utility');
-
-describe('explicit language class', () => {
+describe('explicit language class', function() {
before(() => {
const filename = utility.buildPath('fixtures', 'expect', 'explicit1.txt'),
testHTML = document.querySelectorAll('#explicit-language .hljs');
diff --git a/test/special/index.js b/test/special/index.js
index 80f91e3466..2ff50ca937 100644
--- a/test/special/index.js
+++ b/test/special/index.js
@@ -1,42 +1,6 @@
-'use strict';
-
-const hljs = require('../../build');
-hljs.debugMode(); // tests run in debug mode so errors are raised
-
-const { JSDOM } = require('jsdom');
-const { readFile } = require('fs').promises;
-const utility = require('../utility');
-
-describe('special cases tests', () => {
- before(async () => {
- const filename = utility.buildPath('fixtures', 'index.html');
- const page = await readFile(filename, 'utf-8');
- const { window } = await new JSDOM(page);
-
- // Allows hljs to use document
- global.document = window.document;
-
- // Special language to test endsWithParentVariants
- hljs.registerLanguage('nested', require('../fixtures/nested.js'));
-
- // Setup hljs environment
- hljs.configure({ tabReplace: ' ' });
- let blocks = document.querySelectorAll('pre code');
- blocks.forEach(hljs.highlightElement);
-
- // Setup hljs for non-`` tests
- hljs.configure({ useBR: true });
-
- blocks = document.querySelectorAll('.code');
- blocks.forEach(hljs.highlightElement);
- });
-
- require('./explicitLanguage');
- require('./customMarkup');
- require('./languageAlias');
- require('./noHighlight');
- require('./subLanguages');
- require('./buildClassName');
- require('./useBr');
- require('./endsWithParentVariants')
-});
+import "./buildClassName.js";
+import "./endsWithParentVariants.js";
+import "./explicitLanguage.js";
+import "./languageAlias.js";
+import "./noHighlight.js";
+import "./subLanguages.js";
diff --git a/test/special/languageAlias.js b/test/special/languageAlias.js
index 7f80294cc3..1c7ac34bb0 100644
--- a/test/special/languageAlias.js
+++ b/test/special/languageAlias.js
@@ -1,8 +1,7 @@
-'use strict';
+import { document } from './document.js'
+import * as utility from '../utility.js';
-const utility = require('../utility');
-
-describe('language alias', () => {
+describe('language alias', function() {
before(() => {
const testHTML = document.querySelectorAll('#language-alias .hljs');
diff --git a/test/special/noHighlight.js b/test/special/noHighlight.js
index 3907b37722..cd684f958f 100644
--- a/test/special/noHighlight.js
+++ b/test/special/noHighlight.js
@@ -1,6 +1,6 @@
-'use strict';
+import { document } from './document.js'
-describe('no highlighting', () => {
+describe('no highlighting', function() {
before(() => {
const testHTML = document.querySelectorAll('#no-highlight pre');
diff --git a/test/special/subLanguages.js b/test/special/subLanguages.js
index a04d128b06..c146e22645 100644
--- a/test/special/subLanguages.js
+++ b/test/special/subLanguages.js
@@ -1,8 +1,7 @@
-'use strict';
+import { document } from './document.js'
+import * as utility from '../utility.js';
-const utility = require('../utility');
-
-describe('sub-languages', () => {
+describe('sub-languages', function() {
before(() => {
this.block = document.querySelector('#sublanguages');
});
diff --git a/test/special/useBr.js b/test/special/useBr.js
deleted file mode 100644
index 55b255fe9b..0000000000
--- a/test/special/useBr.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'use strict';
-
-const utility = require('../utility');
-
-describe('use br', () => {
- before(() => {
- const filename = utility.buildPath('fixtures', 'expect', 'useBr.txt'),
- testHTML = document.querySelectorAll('#use-br .hljs');
-
- return utility.setupFile(filename, 'utf-8', this, testHTML);
- });
-
- it('should respect
tags', () => {
- const actual = this.blocks[0];
-
- actual.should.equal(this.expected);
- });
-
- it('should ignore literal new lines', () => {
- const actual = this.blocks[1];
-
- actual.should.equal(this.expected);
- });
-
- it('should recognize xml-style
', () => {
- const actual = this.blocks[2];
-
- actual.should.equal(this.expected);
- });
-});
diff --git a/test/utility.js b/test/utility.js
index 60318df03f..ba72c79710 100644
--- a/test/utility.js
+++ b/test/utility.js
@@ -1,22 +1,24 @@
-'use strict';
+import { promises as fs } from "fs";
+const { readFile } = fs;
+import path from "path";
+import { fileURLToPath } from "url";
-const { readFile } = require('fs').promises;
-const path = require('path');
+const __dirname = path.dirname(fileURLToPath(import.meta.url));
// Build a path relative to `test/`
-exports.buildPath = function() {
+export const buildPath = function() {
const args = [...arguments],
paths = [__dirname].concat(args);
return path.join.apply(this, paths);
};
-exports.expectedFile = (filename, encoding, actual) => {
+export const expectedFile = (filename, encoding, actual) => {
return readFile(filename, encoding)
.then(expected => actual.trim().should.equal(expected.trim()));
};
-exports.setupFile = (filename, encoding, that, testHTML) => {
+export const setupFile = (filename, encoding, that, testHTML) => {
return readFile(filename, encoding)
.then(expected => {
that.expected = expected.trim();
diff --git a/tools/build.js b/tools/build.js
old mode 100644
new mode 100755
diff --git a/tools/build_browser.js b/tools/build_browser.js
index 3b2b59592f..bb0112418e 100644
--- a/tools/build_browser.js
+++ b/tools/build_browser.js
@@ -12,6 +12,8 @@ const { install, installCleanCSS, mkdir, renderTemplate } = require("./lib/makes
const log = (...args) => console.log(...args);
const { rollupCode } = require("./lib/bundling.js");
const bundling = require('./lib/bundling.js');
+const Table = require('cli-table');
+const { result } = require('lodash');
function buildHeader(args) {
return "/*\n" +
@@ -20,6 +22,23 @@ function buildHeader(args) {
` Copyright (c) ${config.copyrightYears}, ${args.author.name}\n*/`;
}
+function detailedGrammarSizes(languages) {
+ if (languages.length > 180) return;
+
+ const resultTable = new Table({
+ head: ['lang','minified'],
+ // colWidths: [20,20,10,20,10,20],
+ chars: {'mid': '', 'left-mid': '', 'mid-mid': '', 'right-mid': ''},
+ style: {
+ head: ['grey']
+ }
+ });
+ languages.map(async(lang) => {
+ resultTable.push([lang.name, lang.data.length]);
+ });
+ console.log(resultTable.sort((b, a) => a[1] - b[1]).toString());
+}
+
async function buildBrowser(options) {
let languages = await getLanguages();
// filter languages for inclusion in the highlight.js bundle
@@ -31,23 +50,21 @@ async function buildBrowser(options) {
log("Preparing languages.");
await Promise.all(
languages.map(async(lang) => {
- await lang.compile({ terser: config.terser });
+ // await lang.compile({ terser: config.terser });
process.stdout.write(".");
})
);
log("");
+ detailedGrammarSizes(languages);
+
const size = await buildBrowserHighlightJS(languages, { minify: options.minify });
log("-----");
log("Core :", size.core, "bytes");
if (options.minify) { log("Core (min) :", size.core_min, "bytes"); }
- log("Languages :",
+ log("Languages (raw) :",
languages.map((el) => el.data.length).reduce((acc, curr) => acc + curr, 0), "bytes");
- if (options.minify) {
- log("Languages (min) :",
- languages.map((el) => el.minified.length).reduce((acc, curr) => acc + curr, 0), "bytes");
- }
log("highlight.js :", size.full, "bytes");
if (options.minify) {
log("highlight.min.js :", size.minified, "bytes");
@@ -150,22 +167,48 @@ async function buildBrowserHighlightJS(languages, { minify }) {
const outFile = `${process.env.BUILD_DIR}/highlight.js`;
const minifiedFile = outFile.replace(/js$/, "min.js");
- const input = { ...config.rollup.browser_core.input, input: `src/highlight.js` };
+ const built_in_langs = {
+ name: "dynamicLanguages",
+ resolveId: (source) => {
+ if (source == "builtInLanguages") { return "builtInLanguages"}
+ return null;
+ },
+ load: (id) => {
+ if (id == "builtInLanguages") {
+ const escape = (s) => "grmr_" + s.replace("-", "_");
+ let src = "";
+ src += languages.map((x) => `import ${escape(x.name)} from '${x.path}'`).join("\n");
+ src += `\nexport {${languages.map((x) => escape(x.name)).join(",")}}`;
+ return src;
+ }
+ return null;
+ }
+ }
+
+ const plugins = [...config.rollup.browser_core.input.plugins, built_in_langs];
+
+ const input = { ...config.rollup.browser_core.input, input: `src/stub.js`, plugins };
const output = { ...config.rollup.browser_core.output, file: outFile };
let librarySrc = await rollupCode(input, output);
- // var librarySrc = await fs.readFile("src/highlight.js", {encoding: "utf8"});
- const coreSize = librarySrc.length;
+
+ // we don't use this, we just use it to get a size approximation for the build stats
+ const coreSrc = await rollupCode({ ...config.rollup.browser_core.input, input: `src/highlight.js`, plugins }, output);
+ const coreSize = coreSrc.length;
// strip off the original top comment
librarySrc = librarySrc.replace(/\/\*.*?\*\//s, "");
const fullSrc = [
header, librarySrc,
- ...languages.map((lang) => lang.module)].join("\n");
+ // ...languages.map((lang) => lang.module)
+ ].join("\n");
const tasks = [];
tasks.push(fs.writeFile(outFile, fullSrc, { encoding: "utf8" }));
+ tasks.push(fs.writeFile(`${process.env.BUILD_DIR}/package.json`, JSON.stringify({
+ type:'commonjs'
+ }), { encoding: "utf8" }));
const shas = {
"highlight.js": bundling.sha384(fullSrc)
};
@@ -175,13 +218,15 @@ async function buildBrowserHighlightJS(languages, { minify }) {
if (minify) {
const tersed = await Terser.minify(librarySrc, config.terser);
+ const tersedCore = await Terser.minify(coreSrc, config.terser);
minifiedSrc = [
header, tersed.code,
- ...languages.map((lang) => lang.minified)].join("\n");
+ // ...languages.map((lang) => lang.minified)
+ ].join("\n");
// get approximate core minified size
- core_min = [header, tersed.code].join().length;
+ core_min = [header, tersedCore.code].join().length;
tasks.push(fs.writeFile(minifiedFile, minifiedSrc, { encoding: "utf8" }));
shas["highlight.min.js"] = bundling.sha384(minifiedSrc);
diff --git a/tools/build_config.js b/tools/build_config.js
index 9052aaf92e..b522e54a49 100644
--- a/tools/build_config.js
+++ b/tools/build_config.js
@@ -5,7 +5,9 @@ const { nodeResolve } = require('@rollup/plugin-node-resolve');
module.exports = {
build_dir: "build",
copyrightYears: `2006-${new Date().getFullYear()}`,
- clean_css: {},
+ clean_css: {
+ level: 2
+ },
rollup: {
node: {
output: { format: "cjs", strict: false, exports: "auto" },
diff --git a/tools/build_node.js b/tools/build_node.js
index 90b041e5d2..be39fcf835 100644
--- a/tools/build_node.js
+++ b/tools/build_node.js
@@ -42,6 +42,7 @@ async function buildNodeHighlightJS() {
async function buildPackageJSON() {
const packageJson = require("../package");
+ packageJson.type = 'commonjs';
await fs.writeFile(`${process.env.BUILD_DIR}/package.json`, JSON.stringify(packageJson, null, 2));
}
diff --git a/tools/checkAutoDetect.js b/tools/checkAutoDetect.js
index 4836a557b0..f4ff21ed0e 100755
--- a/tools/checkAutoDetect.js
+++ b/tools/checkAutoDetect.js
@@ -26,13 +26,13 @@ function testAutoDetection(language, index, languages) {
.forEach(function(content) {
const expected = language,
actual = hljs.highlightAuto(content);
- if (actual.language !== expected && actual.second_best.language !== expected) {
+ if (actual.language !== expected && actual.secondBest.language !== expected) {
return resultTable.push([
expected,
colors.red(actual.language),
actual.relevance ? actual.relevance : colors.grey('None'),
- colors.red(actual.second_best.language),
- actual.second_best.relevance ? actual.second_best.relevance : colors.grey('None')
+ colors.red(actual.secondBest.language),
+ actual.secondBest.relevance ? actual.secondBest.relevance : colors.grey('None')
]);
}
if (actual.language !== expected) {
@@ -40,18 +40,18 @@ function testAutoDetection(language, index, languages) {
expected,
colors.yellow(actual.language),
actual.relevance ? actual.relevance : colors.grey('None'),
- colors.yellow(actual.second_best.language),
- actual.second_best.relevance ? actual.second_best.relevance : colors.grey('None')
+ colors.yellow(actual.secondBest.language),
+ actual.secondBest.relevance ? actual.secondBest.relevance : colors.grey('None')
]);
}
// equal relevance is flagged
- if (actual.relevance == actual.second_best.relevance) {
+ if (actual.relevance == actual.secondBest.relevance) {
return resultTable.push([
expected,
actual.language,
actual.relevance ? colors.yellow(actual.relevance) : colors.grey('None'),
- actual.second_best.language,
- actual.second_best.relevance ? colors.yellow(actual.second_best.relevance) : colors.grey('None'),
+ actual.secondBest.language,
+ actual.secondBest.relevance ? colors.yellow(actual.secondBest.relevance) : colors.grey('None'),
"Relevance match."
]);
}
diff --git a/tools/developer.html b/tools/developer.html
index b446aacd13..f01722d392 100644
--- a/tools/developer.html
+++ b/tools/developer.html
@@ -215,8 +215,8 @@ Markup
vue.language = hljs.getLanguage(language) ? language : '';
var rendering_stats = result.language + ': relevance ' + (result.relevance );
- if (result.second_best) {
- rendering_stats += ', ' + result.second_best.language + ': ' + (result.second_best.relevance || result.second_best.r);
+ if (result.secondBest) {
+ rendering_stats += ', ' + result.secondBest.language + ': ' + (result.secondBest.relevance || result.secondBest.r);
}
editor.find('.rendering_stats').text(rendering_stats);
editor.find('.rendering_time').text(rendering_time);
diff --git a/tools/lib/makestuff.js b/tools/lib/makestuff.js
index 1562ea8798..38d15a0582 100644
--- a/tools/lib/makestuff.js
+++ b/tools/lib/makestuff.js
@@ -14,8 +14,17 @@ function install(file, dest = file) {
fs.copyFileSync(file, `${process.env.BUILD_DIR}/${dest}`);
}
+const DEFAULT_CSS = `
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: 0.5em;
+}
+`.trim();
+
function installCleanCSS(file, dest) {
- const content = fs.readFileSync(file, { encoding: "utf8" });
+ const theme = fs.readFileSync(file, { encoding: "utf8" });
+ const content = DEFAULT_CSS + "\n" + theme;
const out = new CleanCSS(config.clean_css).minify(content).styles;
fs.writeFileSync(`${process.env.BUILD_DIR}/${dest}`, out);
}
diff --git a/tools/package.json b/tools/package.json
new file mode 100644
index 0000000000..5bbefffbab
--- /dev/null
+++ b/tools/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "commonjs"
+}
diff --git a/types/index.d.ts b/types/index.d.ts
index 96b14965c6..28a19be9ba 100644
--- a/types/index.d.ts
+++ b/types/index.d.ts
@@ -17,7 +17,6 @@ interface VuePlugin {
interface PublicApi {
highlight: (languageName: string, code: string, ignoreIllegals?: boolean, continuation?: Mode) => HighlightResult
highlightAuto: (code: string, languageSubset?: string[]) => AutoHighlightResult
- fixMarkup: (html: string) => string
highlightBlock: (element: HTMLElement) => void
configure: (options: Partial) => void
initHighlighting: () => void
@@ -51,7 +50,6 @@ interface ModesAPI {
NUMBER_MODE: Mode
C_NUMBER_MODE: Mode
BINARY_NUMBER_MODE: Mode
- CSS_NUMBER_MODE: Mode
REGEXP_MODE: Mode
TITLE_MODE: Mode
UNDERSCORE_TITLE_MODE: Mode
@@ -74,21 +72,24 @@ interface HighlightResult {
relevance : number
value : string
language? : string
- emitter : Emitter
illegal : boolean
- top? : Language | CompiledMode
- illegalBy? : illegalData
- sofar? : string
+ _illegalBy? : illegalData
errorRaised? : Error
// * for auto-highlight
- second_best? : Omit
+ secondBest? : Omit
code?: string
+ // technically psuedo-private API
+ _emitter : Emitter
+ _top? : Language | CompiledMode
+
}
interface AutoHighlightResult extends HighlightResult {}
interface illegalData {
- msg: string
+ message: string
context: string
+ index: number
+ resultSoFar : string
mode: CompiledMode
}
@@ -116,8 +117,6 @@ interface HLJSOptions {
noHighlightRe: RegExp
languageDetectRe: RegExp
classPrefix: string
- tabReplace?: string
- useBR: boolean
languages?: string[]
__emitter: EmitterConstructor
}
@@ -136,7 +135,7 @@ interface CallbackResponse {
type AnnotatedError = Error & {mode?: Mode | Language, languageName?: string, badRule?: Mode}
type ModeCallback = (match: RegExpMatchArray, response: CallbackResponse) => void
-type HighlightedHTMLElement = HTMLElement & {result?: object, second_best?: object, parentNode: HTMLElement}
+type HighlightedHTMLElement = HTMLElement & {result?: object, secondBest?: object, parentNode: HTMLElement}
type EnhancedMatch = RegExpMatchArray & {rule: CompiledMode, type: MatchType}
type MatchType = "begin" | "end" | "illegal"