Merge remote-tracking branch 'origin/port-documentation' into port-documentation-var-interp-atrules

This commit is contained in:
Sana Javed 2023-05-23 14:52:30 +02:00
commit 599abec691
9 changed files with 347 additions and 193 deletions

View File

@ -0,0 +1,76 @@
---
title: "Request for Comments: New Embedded Protocol"
author: Natalie Weizenbaum
date: 2023-05-19 16:00 PST
---
If you're not an author of a host package for the Embedded Sass Protocol, you
can skip this blog post—although if you're a big enough nerd, you may find it
interesting regardless!
We're planning to make a number of breaking changes to the Embedded Sass
Protocol, and we want your feedback before we lock in the new way of doing
things. We intend to make a number of breaking changes all at once to keep the
total number of disruptions to a minimum.
We're planning two major breaking changes:
1. The Dart Sass embedded host will no longer be released as a separate
executable. It will now be bundled into the main Dart Sass executable,
accessible by running `sass --embedded`.
2. Every packet in the embedded protocol now includes a compilation ID as part
of the packet structure, rather than declaring it in the protocol buffer
definitions.
We're using this opportunity to also introduce three much smaller breaking
changes:
1. The specification for the embedded protocol and the protocol buffer
definition have been moved to [the Sass language repository] so that they can
be updated at the same time as changes to the language and the JS API.
[the Sass language repository]: https://github.com/sass/sass/blob/main/spec/embedded-protocol.md
2. The embedded protocol now explicitly declares optional fields using the
protocol buffers language feature. This means that "default values" for
various fields are no longer considered to be unset.
3. The `CompilationSuccess.loaded_urls` field has been moved to
`CompilationResult.loaded_urls` so that it's available even when a
compilation fails. This allows watcher implementations to know which files to
watch to redo a failed compilation.
The repository-organization changes have already been made, but the changes to
the protocol itself are fully documented [in a proposal in the language
repository].
[in a proposal in the language repository]: https://github.com/sass/sass/blob/main/proposal/embedded-protocol-2.md
## Combining Executables
The primary benefit of folding Embedded Dart Sass into the main Dart Sass
executable is to provide embedded hosts an easy way to expose the standard Dart
Sass command-line API to users. Now every user who installs any embedded host
will have the full Dart Sass executable available to them at native Dart VM
speeds.
This also helps simplify the Sass team's organization by reducing the number of
separate repositories and release processes we need to manage.
## Wire-Level Compilation ID
We're pulling the compilation ID out to the protocol level in order to provide
better concurrency, particularly on the side of the embedded compiler. Sass
compilations done by the embedded compiler don't share any state between one
another, which means that they could in theory be run in totally separate worker
threads. However, with the embedded protocol as it exists today, directing each
message to the correct worker thread requires parsing the entire message on the
main thread to determine which compilation it belongs to, then parsing it
_again_ in the worker thread to actually handle it.
Making the compilation ID part of the protocol itself solves this issue. Each
endpoint can read the ID, look up the worker thread that's handling the
compilation, and pass the message on to that thread without parsing the rest of
the message. This makes concurrency both easier and more efficient, which will
help ensure that large compilations happen as fast as possible.

View File

@ -48,18 +48,18 @@
"@rollup/plugin-commonjs": "^25.0.0",
"@rollup/plugin-inject": "^5.0.3",
"@rollup/plugin-node-resolve": "^15.0.2",
"@rollup/plugin-terser": "^0.4.1",
"@rollup/plugin-terser": "^0.4.3",
"@types/jquery": "^3.5.16",
"@types/jqueryui": "^1.12.16",
"@types/jqueryui": "^1.12.17",
"@types/markdown-it": "^12.2.3",
"@types/markdown-it-attrs": "^4.1.0",
"@types/node": "^16",
"@types/prismjs": "^1.26.0",
"@typescript-eslint/eslint-plugin": "^5.59.5",
"@typescript-eslint/parser": "^5.59.5",
"@typescript-eslint/eslint-plugin": "^5.59.6",
"@typescript-eslint/parser": "^5.59.6",
"date-fns": "^2.30.0",
"deep-equal": "^2.2.1",
"eslint": "^8.40.0",
"eslint": "^8.41.0",
"eslint-config-prettier": "^8.8.0",
"eslint-import-resolver-typescript": "^3.5.5",
"eslint-plugin-import": "^2.27.5",
@ -77,10 +77,10 @@
"npm-run-all": "^4.1.5",
"prettier": "^2.8.8",
"prismjs": "^1.29.0",
"rollup": "^3.21.7",
"rollup": "^3.23.0",
"sass": "^1.62.1",
"semver-parser": "^4.1.4",
"stylelint": "^15.6.1",
"stylelint": "^15.6.2",
"stylelint-config-standard-scss": "^9.0.0",
"truncate-html": "^1.0.4",
"ts-node": "^10.9.1",

View File

@ -0,0 +1,76 @@
---
title: "Request for Comments: New Embedded Protocol"
author: Natalie Weizenbaum
date: 2023-05-19 16:00:00 -8
---
If you're not an author of a host package for the Embedded Sass Protocol, you
can skip this blog post—although if you're a big enough nerd, you may find it
interesting regardless!
We're planning to make a number of breaking changes to the Embedded Sass
Protocol, and we want your feedback before we lock in the new way of doing
things. We intend to make a number of breaking changes all at once to keep the
total number of disruptions to a minimum.
We're planning two major breaking changes:
1. The Dart Sass embedded host will no longer be released as a separate
executable. It will now be bundled into the main Dart Sass executable,
accessible by running `sass --embedded`.
2. Every packet in the embedded protocol now includes a compilation ID as part
of the packet structure, rather than declaring it in the protocol buffer
definitions.
We're using this opportunity to also introduce three much smaller breaking
changes:
1. The specification for the embedded protocol and the protocol buffer
definition have been moved to [the Sass language repository] so that they can
be updated at the same time as changes to the language and the JS API.
[the Sass language repository]: https://github.com/sass/sass/blob/main/spec/embedded-protocol.md
2. The embedded protocol now explicitly declares optional fields using the
protocol buffers language feature. This means that "default values" for
various fields are no longer considered to be unset.
3. The `CompilationSuccess.loaded_urls` field has been moved to
`CompilationResult.loaded_urls` so that it's available even when a
compilation fails. This allows watcher implementations to know which files to
watch to redo a failed compilation.
The repository-organization changes have already been made, but the changes to
the protocol itself are fully documented [in a proposal in the language
repository].
[in a proposal in the language repository]: https://github.com/sass/sass/blob/main/proposal/embedded-protocol-2.md
## Combining Executables
The primary benefit of folding Embedded Dart Sass into the main Dart Sass
executable is to provide embedded hosts an easy way to expose the standard Dart
Sass command-line API to users. Now every user who installs any embedded host
will have the full Dart Sass executable available to them at native Dart VM
speeds.
This also helps simplify the Sass team's organization by reducing the number of
separate repositories and release processes we need to manage.
## Wire-Level Compilation ID
We're pulling the compilation ID out to the protocol level in order to provide
better concurrency, particularly on the side of the embedded compiler. Sass
compilations done by the embedded compiler don't share any state between one
another, which means that they could in theory be run in totally separate worker
threads. However, with the embedded protocol as it exists today, directing each
message to the correct worker thread requires parsing the entire message on the
main thread to determine which compilation it belongs to, then parsing it
_again_ in the worker thread to actually handle it.
Making the compilation ID part of the protocol itself solves this issue. Each
endpoint can read the ID, look up the worker thread that's handling the
compilation, and pass the message on to that thread without parsing the rest of
the message. This makes concurrency both easier and more efficient, which will
help ensure that large compilations happen as fast as possible.

View File

@ -29,7 +29,7 @@ introduction: >
## Older Versions
This documentation is written for the most recent version of the Sass language.
If you're using [Dart Sass] <%= impl_version(:dart) %>, you'll have access to
If you're using [Dart Sass] {{ releases['dart-sass'].version }}, you'll have access to
all the features described here. But if you're using an older version of Dart
Sass or a deprecated Sass implementation like [LibSass] or [Ruby Sass], there
may be some behavioral differences.

View File

@ -25,9 +25,9 @@ By default, multi-line comments be stripped from the compiled CSS in [compressed
mode][]. If a comment begins with `/*!`, though, it will always be included in
the CSS output.
[statement]: structure#statements
[interpolation]: ../interpolation
[compressed mode]: ../cli/dart-sass#style
[statement]: ../structure#statements
[interpolation]: ../../interpolation
[compressed mode]: ../../cli/dart-sass#style
{% endmarkdown %}
{% codeExample 'scss-comment', , true, 'scss'%}
@ -64,7 +64,7 @@ stripped in compressed mode.
Comments can also be used within [expressions][] in the indented syntax. In this
case, they have exactly the same syntax as they do in SCSS.
[expressions]: structure#expressions
[expressions]: ../structure#expressions
{% endmarkdown %}
{% codeExample 'sass-comment', , true, 'sass'%}
@ -92,10 +92,10 @@ read by the [SassDoc][] tool, which uses them to generate beautiful
documentation. Check out [the Susy grid engine][susy]'s documentation to see it
in action!
[mixins]: ../at-rules/mixin
[functions]: ../at-rules/function
[variables]: ../variables
[placeholder selectors]: ../style-rules/placeholder-selectors
[mixins]: ../../at-rules/mixin
[functions]: ../../at-rules/function
[variables]: ../../variables
[placeholder selectors]: ../../style-rules/placeholder-selectors
[SassDoc]: http://sassdoc.com
[susy]: http://oddbird.net/susy/docs/index.html

View File

@ -3,10 +3,10 @@ title: Special Functions
introduction: >
CSS defines many functions, and most of them work just fine with Sasss normal
function syntax. Theyre parsed as function calls, resolved to [plain CSS
functions](../at-rules/function#plain-css-functions), and compiled as-is to
functions](../../at-rules/function#plain-css-functions), and compiled as-is to
CSS. There are a few exceptions, though, which have special syntax that cant
just be parsed as a [SassScript expression](structure#expressions). All
special function calls return [unquoted strings](../values/strings#unquoted).
just be parsed as a [SassScript expression](../structure#expressions). All
special function calls return [unquoted strings](../../values/strings#unquoted).
table_of_contents: true
complementary_content: |
<nav aria-labelledby="page-sections" class="page-sections sl-c-list-navigation-wrapper sl-c-list-navigation-wrapper--collapsible">
@ -33,10 +33,10 @@ although [interpolation][] may also be used to inject SassScript values. If it's
not a valid unquoted URL—for example, if it contains [variables][] or [function
calls][]—it's parsed as a normal [plain CSS function call][].
[interpolation]: ../interpolation
[variables]: ../variables
[function calls]: ../at-rules/function
[plain CSS function call]: ../at-rules/function#plain-css-functions
[interpolation]: ../../interpolation
[variables]: ../../variables
[function calls]: ../../at-rules/function
[plain CSS function call]: ../../at-rules/function#plain-css-functions
{% endmarkdown %}
@ -44,55 +44,55 @@ calls][]—it's parsed as a normal [plain CSS function call][].
$roboto-font-path: "../fonts/roboto";
@font-face {
// This is parsed as a normal function call that takes a quoted string.
src: url("#{$roboto-font-path}/Roboto-Thin.woff2") format("woff2");
// This is parsed as a normal function call that takes a quoted string.
src: url("#{$roboto-font-path}/Roboto-Thin.woff2") format("woff2");
font-family: "Roboto";
font-weight: 100;
font-family: "Roboto";
font-weight: 100;
}
@font-face {
// This is parsed as a normal function call that takes an arithmetic
// expression.
src: url($roboto-font-path + "/Roboto-Light.woff2") format("woff2");
// This is parsed as a normal function call that takes an arithmetic
// expression.
src: url($roboto-font-path + "/Roboto-Light.woff2") format("woff2");
font-family: "Roboto";
font-weight: 300;
font-family: "Roboto";
font-weight: 300;
}
@font-face {
// This is parsed as an interpolated special function.
src: url(#{$roboto-font-path}/Roboto-Regular.woff2) format("woff2");
// This is parsed as an interpolated special function.
src: url(#{$roboto-font-path}/Roboto-Regular.woff2) format("woff2");
font-family: "Roboto";
font-weight: 400;
}
font-family: "Roboto";
font-weight: 400;
}
===
$roboto-font-path: "../fonts/roboto"
@font-face
// This is parsed as a normal function call that takes a quoted string.
src: url("#{$roboto-font-path}/Roboto-Thin.woff2") format("woff2")
// This is parsed as a normal function call that takes a quoted string.
src: url("#{$roboto-font-path}/Roboto-Thin.woff2") format("woff2")
font-family: "Roboto"
font-weight: 100
font-family: "Roboto"
font-weight: 100
@font-face
// This is parsed as a normal function call that takes an arithmetic
// expression.
src: url($roboto-font-path + "/Roboto-Light.woff2") format("woff2")
// This is parsed as a normal function call that takes an arithmetic
// expression.
src: url($roboto-font-path + "/Roboto-Light.woff2") format("woff2")
font-family: "Roboto"
font-weight: 300
font-family: "Roboto"
font-weight: 300
@font-face
// This is parsed as an interpolated special function.
src: url(#{$roboto-font-path}/Roboto-Regular.woff2) format("woff2")
// This is parsed as an interpolated special function.
src: url(#{$roboto-font-path}/Roboto-Regular.woff2) format("woff2")
font-family: "Roboto"
font-weight: 400
font-family: "Roboto"
font-weight: 400
{% endcodeExample %}
{% markdown %}
@ -104,21 +104,21 @@ LibSass, Ruby Sass, and versions of Dart Sass prior to 1.40.0 parse `calc()` as
Dart Sass versions 1.40.0 and later parse `calc()` as a [calculation].
[calculation]: ../values/calculations
[calculation]: ../../values/calculations
{% endcompatibility %}
{% compatibility ">=1.31.0 <1.40.0", false, false, "clamp()" %}
LibSass, Ruby Sass, and versions of Dart Sass prior to 1.31.0 parse `clamp()`
as a [plain CSS function] rather than supporting special syntax within it.
[plain CSS function]: ../at-rules/function#plain-css-functions
[plain CSS function]: ../../at-rules/function#plain-css-functions
Dart Sass versions between 1.31.0 and 1.40.0 parse `clamp()` as special
syntactic function like `element()`.
Dart Sass versions 1.40.0 and later parse `clamp()` as a [calculation].
[calculation]: ../values/calculations
[calculation]: ../../values/calculations
{% endcompatibility %}
The [`element()`] function is defined in the CSS spec, and because its IDs couldbe parsed as colors, they need special parsing.
@ -136,6 +136,9 @@ compatibility.
Sass allows _any text_ in these function calls, including nested parentheses.
Nothing is interpreted as a SassScript expression, with the exception that
[interpolation][] can be used to inject dynamic values.
[interpolation]: ../../interpolation
{% endmarkdown %}
{% codeExample 'element' %}

View File

@ -117,7 +117,7 @@ Sass defines syntax for a number of operations:
- [Function calls](../../at-rules/function), like `nth($list, 1)` or
`var(--main-bg-color)`, which may call Sass core library functions or
user-defined functions, or which may be compiled directly to CSS.
- [Special functions](special-functions), like `calc(1px + 100%)` or
- [Special functions](../special-functions), like `calc(1px + 100%)` or
`url(http://myapp.com/assets/logo.png)`, that have their own unique parsing
rules.
- [The parent selector](../../style-rules/parent-selector), `&`.

View File

@ -32,7 +32,7 @@ export const getLorem = (type: string, number = 1) => {
* @see https://github.com/oe/truncate-html
*/
export const truncateHTML = (html: string, words = 170) =>
truncate(html, words, { byWords: true });
truncate(html, words, { byWords: true, keepWhitespaces: true });
/**
* Renders block of Markdown into HTML.

275
yarn.lock
View File

@ -1509,10 +1509,10 @@ __metadata:
languageName: node
linkType: hard
"@eslint/js@npm:8.40.0":
version: 8.40.0
resolution: "@eslint/js@npm:8.40.0"
checksum: e84936b8ebd1c8fd90e860182e95d1404006da4cbca722b14950b298aeeca102b080aa9b62c8e69f90824ec54e19f1ba79b239046223624d1414ee82e8e628ac
"@eslint/js@npm:8.41.0":
version: 8.41.0
resolution: "@eslint/js@npm:8.41.0"
checksum: af013d70fe8d0429cdf5cd8b5dcc6fc384ed026c1eccb0cfe30f5849b968ab91645111373fd1b83282b38955b1bdfbe667c1a7dbda3b06cae753521223cad775
languageName: node
linkType: hard
@ -1765,19 +1765,19 @@ __metadata:
languageName: node
linkType: hard
"@rollup/plugin-terser@npm:^0.4.1":
version: 0.4.1
resolution: "@rollup/plugin-terser@npm:0.4.1"
"@rollup/plugin-terser@npm:^0.4.3":
version: 0.4.3
resolution: "@rollup/plugin-terser@npm:0.4.3"
dependencies:
serialize-javascript: ^6.0.0
smob: ^0.0.6
terser: ^5.15.1
serialize-javascript: ^6.0.1
smob: ^1.0.0
terser: ^5.17.4
peerDependencies:
rollup: ^2.x || ^3.x
peerDependenciesMeta:
rollup:
optional: true
checksum: 684244206df147fbeba66e7327f45cf2134513a89b5e576570cacf67cc517b679eea99cf739a4f13542249d4aba774866c8d406f040ad6a7f4f9b691077da039
checksum: 0d697e816f32e9609c48defbda6f3ed90548126fbf673451cfde2c576a7511073cd25d45a9669f179d0b89485e62f56cabeb65428c2232469ab6057ae5dc7709
languageName: node
linkType: hard
@ -1877,12 +1877,12 @@ __metadata:
languageName: node
linkType: hard
"@types/jqueryui@npm:^1.12.16":
version: 1.12.16
resolution: "@types/jqueryui@npm:1.12.16"
"@types/jqueryui@npm:^1.12.17":
version: 1.12.17
resolution: "@types/jqueryui@npm:1.12.17"
dependencies:
"@types/jquery": "*"
checksum: a39a2b5c26a2b1341f50af49957b17a36423bdd6300c2a9188b1adc0d263f3e31255e8f2f77ffd59f750ede6cc713c84c9c88cdc6d43fa7d88949a40679f8a5e
checksum: cc59c4abe29668765bb5c092e76048d535535f50a73832b327c337a9ce146c6aacfce1e48ceee89d5b03d5d7c9fa62790a0d7bff1ae609f34875e2ea44e055da
languageName: node
linkType: hard
@ -1948,16 +1948,16 @@ __metadata:
linkType: hard
"@types/node@npm:*":
version: 20.1.4
resolution: "@types/node@npm:20.1.4"
checksum: bffa6a6e92831cc805b13658c55be8e04abe3202d5e57ddd7fee4cfbe269656a1f475909a9f9514e1aff50310d0d90c516ac2c649cb6f1c77d4b1079c2fd1e88
version: 20.2.3
resolution: "@types/node@npm:20.2.3"
checksum: 576065e8fc1fa45798c8f59a6bf809169582d04abc2e25fab1a048ffc734975b9992ae31be0d960cf705a21fb37112f7fcde11aa322beddf7491e73d5a5a988c
languageName: node
linkType: hard
"@types/node@npm:^16":
version: 16.18.30
resolution: "@types/node@npm:16.18.30"
checksum: 2975519e337a3f29c495b97aa7510ef3f4ac5d3c9356f7886698a4abf8b12641c1f1247512b525599cba6aefe774735ef25fc83555e989033bdbcc4a2b1c7401
version: 16.18.32
resolution: "@types/node@npm:16.18.32"
checksum: c5966c8e671205b2971ae66ae548ce92235cef89ae1a0f2ecbf118e775923259dc85f57c58cfc56267089d56dfce967700c058276199c6ed9510d0a0b077af2d
languageName: node
linkType: hard
@ -1996,14 +1996,14 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/eslint-plugin@npm:5.59.5"
"@typescript-eslint/eslint-plugin@npm:^5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/eslint-plugin@npm:5.59.6"
dependencies:
"@eslint-community/regexpp": ^4.4.0
"@typescript-eslint/scope-manager": 5.59.5
"@typescript-eslint/type-utils": 5.59.5
"@typescript-eslint/utils": 5.59.5
"@typescript-eslint/scope-manager": 5.59.6
"@typescript-eslint/type-utils": 5.59.6
"@typescript-eslint/utils": 5.59.6
debug: ^4.3.4
grapheme-splitter: ^1.0.4
ignore: ^5.2.0
@ -2016,43 +2016,43 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: cc0e5ad8d70e140f0dada2fd1ad69d7c31d3f3dfe75939286fdc3950ff2e37033889acc7c9d92c074b67de3bbb6e46916d688e848fb98dde63b23c08a8b07884
checksum: fc495b5eadc70603f0d677921a70f151ac94453ebd76b77abbf7ed213c09daf05a3e2b2e2b16139b30dc6574d068d988e4e53c017759f3d3307fa394cfd4ae39
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/parser@npm:5.59.5"
"@typescript-eslint/parser@npm:^5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/parser@npm:5.59.6"
dependencies:
"@typescript-eslint/scope-manager": 5.59.5
"@typescript-eslint/types": 5.59.5
"@typescript-eslint/typescript-estree": 5.59.5
"@typescript-eslint/scope-manager": 5.59.6
"@typescript-eslint/types": 5.59.6
"@typescript-eslint/typescript-estree": 5.59.6
debug: ^4.3.4
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
peerDependenciesMeta:
typescript:
optional: true
checksum: ef4122074f2c00be1dabbb3fb5534280f81b45f8de6c1a696092af5175684fea65bc002814546d06f880ea5beff2006589e2633662e92d65035437c8e2d9134c
checksum: 1f6e259f501e3d13f9632bd71da2cf3d11150f1276079522e8d5c392a07c3aea867c855481981fca3bf32beb6bef046ef64cdfceba8ea4150f27099e44d9a92c
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/scope-manager@npm:5.59.5"
"@typescript-eslint/scope-manager@npm:5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/scope-manager@npm:5.59.6"
dependencies:
"@typescript-eslint/types": 5.59.5
"@typescript-eslint/visitor-keys": 5.59.5
checksum: b3d8a5b70e741b9bef60d0a297da77e844cb744895f31fb6880fdac4c53f7c58f3e04065a7d644afb6e1dc51591285ec866eca2fbd2ad50de6b376031aaccfbd
"@typescript-eslint/types": 5.59.6
"@typescript-eslint/visitor-keys": 5.59.6
checksum: 65cce7b3fc320e264ef966da9a26bb7cba014ec5a0c9c5518cb08a624d67ac6eb67dd8e2df49b33eeaaaacaf42c73f291d56f93a9d1ec82c58bd1e7e872e530b
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/type-utils@npm:5.59.5"
"@typescript-eslint/type-utils@npm:5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/type-utils@npm:5.59.6"
dependencies:
"@typescript-eslint/typescript-estree": 5.59.5
"@typescript-eslint/utils": 5.59.5
"@typescript-eslint/typescript-estree": 5.59.6
"@typescript-eslint/utils": 5.59.6
debug: ^4.3.4
tsutils: ^3.21.0
peerDependencies:
@ -2060,23 +2060,23 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 9ef2b219c71abe3d2ffa4c791ec3da8d120b6a202e7f9c7722d1e8193f8709d6ebec2abc2862b9fa78dffe6214d033898d21c925fc961feb4488070b66aab9f5
checksum: f8e09dc16f413090ec464d48bd86e1b44a569e5a6ed78370f3e8132e80a464dfcdc1525f4f0706b79e397841b1865016cb38353475264beec49851d78a7fdd36
languageName: node
linkType: hard
"@typescript-eslint/types@npm:5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/types@npm:5.59.5"
checksum: 98c93d354d6410934f468ba8bd468d2746f20b2910c0ef5b08fc788c0742aa7cb82eb2edc4194c85d3fabac5563c1a91d377e84bf5c25caeb4ac9e871aabd4bb
"@typescript-eslint/types@npm:5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/types@npm:5.59.6"
checksum: e898ca629d95b69f5dbfb7c9a3d28f943e5a372d37bf7efaefb41341d2d7147372cd4956b35b637e9b3a1b8555d64a5b35776650b815c4227b114513247ec2b5
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/typescript-estree@npm:5.59.5"
"@typescript-eslint/typescript-estree@npm:5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/typescript-estree@npm:5.59.6"
dependencies:
"@typescript-eslint/types": 5.59.5
"@typescript-eslint/visitor-keys": 5.59.5
"@typescript-eslint/types": 5.59.6
"@typescript-eslint/visitor-keys": 5.59.6
debug: ^4.3.4
globby: ^11.1.0
is-glob: ^4.0.3
@ -2085,35 +2085,35 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10a8c01ad53da115ca698668941dcb18c497035ba07faf08237bfa3ab92185bdfaf1df93562915a936b49e9f72a4cc6b10b1d9296b7cdc8c34ba0ca323c37677
checksum: 65b7879e8cd4ccb987c1e1fa75cd84250cb46799ba0de6cdcaec70f6700b45ae4efcebb24163ca7946152e1b12595ee58e35bfb31ea6d35b3f39deaf973d4f1a
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/utils@npm:5.59.5"
"@typescript-eslint/utils@npm:5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/utils@npm:5.59.6"
dependencies:
"@eslint-community/eslint-utils": ^4.2.0
"@types/json-schema": ^7.0.9
"@types/semver": ^7.3.12
"@typescript-eslint/scope-manager": 5.59.5
"@typescript-eslint/types": 5.59.5
"@typescript-eslint/typescript-estree": 5.59.5
"@typescript-eslint/scope-manager": 5.59.6
"@typescript-eslint/types": 5.59.6
"@typescript-eslint/typescript-estree": 5.59.6
eslint-scope: ^5.1.1
semver: ^7.3.7
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
checksum: 2703972653d3c6eab2423d9a2586908086afa3b89580969ed38e454bc372265d5ca9fadf7967e4ea639d482ad069f763981ef4a03a42d79df28f43f00ee9d43a
checksum: 40ffe1d2f1fbf6c30aa05f4a68785fb1e77aa09772ea45b001daf4068e504830cf60a441a819b2c6ffe4a19216aba404869300b2ce6bc2a67d093f74ded504a7
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:5.59.5":
version: 5.59.5
resolution: "@typescript-eslint/visitor-keys@npm:5.59.5"
"@typescript-eslint/visitor-keys@npm:5.59.6":
version: 5.59.6
resolution: "@typescript-eslint/visitor-keys@npm:5.59.6"
dependencies:
"@typescript-eslint/types": 5.59.5
"@typescript-eslint/types": 5.59.6
eslint-visitor-keys: ^3.3.0
checksum: 94db281ec8ea3a7ede46763aaa0d3349e035b19334fd03e2e560f89c70faebcfa937d51b53d2eaad2506b60a5d901428cc8b5a65ad8e90ca1c12a133dbe977fc
checksum: 8f216411344f5ed618ab838fa3fc4b04f3041f33e08d9b160df4db988f496c71f934c4b0362f686ce63ecf7f5d926c67190d5116c91945c1957544728449ec6b
languageName: node
linkType: hard
@ -2692,9 +2692,9 @@ __metadata:
linkType: hard
"caniuse-lite@npm:^1.0.30001449":
version: 1.0.30001487
resolution: "caniuse-lite@npm:1.0.30001487"
checksum: b5a9e72ec165765fb3e07913cc389685ce8a30ac48967f99baec773a4353d2037fb534241e87b3c95d40a5081079be2263710b784883183bb2998b73f7202233
version: 1.0.30001488
resolution: "caniuse-lite@npm:1.0.30001488"
checksum: ef0caf2914f9fca700b75d22921f500241f4e988ded9985e62737136031787052185d8136a65a3a6d6d12b559cf75ab99f5488931f8bd060f1b7810a2c1ee1d1
languageName: node
linkType: hard
@ -3324,9 +3324,9 @@ __metadata:
linkType: hard
"electron-to-chromium@npm:^1.4.284":
version: 1.4.394
resolution: "electron-to-chromium@npm:1.4.394"
checksum: db511decf3436f7293602ee6f4c363a5ed8e69f9b7edeb541d31c60950fe0dffc719027e1191a2151e0478658c5debe7059f4ee0b2c4bf8e5476c945e726816d
version: 1.4.402
resolution: "electron-to-chromium@npm:1.4.402"
checksum: d2e6473921df875169d58e6317bcb64f1d88127fbd841799218720458e1e6d30e5a3abaac97d20c5bf02c3c2246f3cc701d6503713e3f14ff656a87068489d1e
languageName: node
linkType: hard
@ -3657,14 +3657,14 @@ __metadata:
languageName: node
linkType: hard
"eslint@npm:^8.40.0":
version: 8.40.0
resolution: "eslint@npm:8.40.0"
"eslint@npm:^8.41.0":
version: 8.41.0
resolution: "eslint@npm:8.41.0"
dependencies:
"@eslint-community/eslint-utils": ^4.2.0
"@eslint-community/regexpp": ^4.4.0
"@eslint/eslintrc": ^2.0.3
"@eslint/js": 8.40.0
"@eslint/js": 8.41.0
"@humanwhocodes/config-array": ^0.11.8
"@humanwhocodes/module-importer": ^1.0.1
"@nodelib/fs.walk": ^1.2.8
@ -3684,13 +3684,12 @@ __metadata:
find-up: ^5.0.0
glob-parent: ^6.0.2
globals: ^13.19.0
grapheme-splitter: ^1.0.4
graphemer: ^1.4.0
ignore: ^5.2.0
import-fresh: ^3.0.0
imurmurhash: ^0.1.4
is-glob: ^4.0.0
is-path-inside: ^3.0.3
js-sdsl: ^4.1.4
js-yaml: ^4.1.0
json-stable-stringify-without-jsonify: ^1.0.1
levn: ^0.4.1
@ -3703,7 +3702,7 @@ __metadata:
text-table: ^0.2.0
bin:
eslint: bin/eslint.js
checksum: b79eba37f52f517a420eec99a80ae9f284d2cbe73afc0d4d3d4d5ed1cce0b06f21badc0374bfb7ac239efd2d49a1fd7c6111d6c3d52888521f377ba33de77e61
checksum: 09979a6f8451dcc508a7005b6670845c8a518376280b3fd96657a406b8b6ef29d0e480d1ba11b4eb48da93d607e0c55c9b877676fe089d09973ec152354e23b2
languageName: node
linkType: hard
@ -3876,7 +3875,7 @@ __metadata:
languageName: node
linkType: hard
"filelist@npm:^1.0.1":
"filelist@npm:^1.0.4":
version: 1.0.4
resolution: "filelist@npm:1.0.4"
dependencies:
@ -4222,6 +4221,13 @@ __metadata:
languageName: node
linkType: hard
"graphemer@npm:^1.4.0":
version: 1.4.0
resolution: "graphemer@npm:1.4.0"
checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673
languageName: node
linkType: hard
"gray-matter@npm:^4.0.3":
version: 4.0.3
resolution: "gray-matter@npm:4.0.3"
@ -4635,11 +4641,11 @@ __metadata:
linkType: hard
"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0":
version: 2.12.0
resolution: "is-core-module@npm:2.12.0"
version: 2.12.1
resolution: "is-core-module@npm:2.12.1"
dependencies:
has: ^1.0.3
checksum: f7f7eb2ab71fd769ee9fb2385c095d503aa4b5ce0028c04557de03f1e67a87c85e5bac1f215945fc3c955867a139a415a3ec4c4234a0bffdf715232660f440a6
checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468
languageName: node
linkType: hard
@ -4944,16 +4950,16 @@ __metadata:
linkType: hard
"jake@npm:^10.8.5":
version: 10.8.5
resolution: "jake@npm:10.8.5"
version: 10.8.6
resolution: "jake@npm:10.8.6"
dependencies:
async: ^3.2.3
chalk: ^4.0.2
filelist: ^1.0.1
minimatch: ^3.0.4
filelist: ^1.0.4
minimatch: ^3.1.2
bin:
jake: ./bin/cli.js
checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba
jake: bin/cli.js
checksum: eebebd3ca62a01ced630afc116f429d727d34bebe58a9424c0d5a0618ad6c1db893163fb4fbcdff01f34d34d6d63c0dd2448de598270bcd27d9440630de4aeea
languageName: node
linkType: hard
@ -4973,13 +4979,6 @@ __metadata:
languageName: node
linkType: hard
"js-sdsl@npm:^4.1.4":
version: 4.4.0
resolution: "js-sdsl@npm:4.4.0"
checksum: 7bb08a2d746ab7ff742720339aa006c631afe05e77d11eda988c1c35fae8e03e492e4e347e883e786e3ce6170685d4780c125619111f0730c11fdb41b04059c7
languageName: node
linkType: hard
"js-stringify@npm:^1.0.2":
version: 1.0.2
resolution: "js-stringify@npm:1.0.2"
@ -5609,11 +5608,11 @@ __metadata:
linkType: hard
"minimatch@npm:^9.0.0":
version: 9.0.0
resolution: "minimatch@npm:9.0.0"
version: 9.0.1
resolution: "minimatch@npm:9.0.1"
dependencies:
brace-expansion: ^2.0.1
checksum: 7bd57899edd1d1b0560f50b5b2d1ea4ad2a366c5a2c8e0a943372cf2f200b64c256bae45a87a80915adbce27fa36526264296ace0da57b600481fe5ea3e372e5
checksum: 97f5f5284bb57dc65b9415dec7f17a0f6531a33572193991c60ff18450dcfad5c2dad24ffeaf60b5261dccd63aae58cc3306e2209d57e7f88c51295a532d8ec3
languageName: node
linkType: hard
@ -5868,9 +5867,9 @@ __metadata:
linkType: hard
"node-releases@npm:^2.0.8":
version: 2.0.10
resolution: "node-releases@npm:2.0.10"
checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc
version: 2.0.11
resolution: "node-releases@npm:2.0.11"
checksum: ade1c8e19852aa7d7b45691c2708e6275703dd4994b16bc191cdbf66add29ccf87c595ecdb03a39db54a8aaba645f228bccd7d9477e4066f1d97a94f857dae9d
languageName: node
linkType: hard
@ -6351,12 +6350,12 @@ __metadata:
linkType: hard
"postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.12":
version: 6.0.12
resolution: "postcss-selector-parser@npm:6.0.12"
version: 6.0.13
resolution: "postcss-selector-parser@npm:6.0.13"
dependencies:
cssesc: ^3.0.0
util-deprecate: ^1.0.2
checksum: f166ed4350511f6fb4a7e82aaaa6dfd81a1e648d4567ca15a3ca87b7ea2e55a8c136fb0ae9456b7b88a390c160f05d06bd1c69f47d7e331b53b70941e06e90fe
checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096
languageName: node
linkType: hard
@ -6872,9 +6871,9 @@ __metadata:
languageName: node
linkType: hard
"rollup@npm:^3.21.7":
version: 3.21.7
resolution: "rollup@npm:3.21.7"
"rollup@npm:^3.23.0":
version: 3.23.0
resolution: "rollup@npm:3.23.0"
dependencies:
fsevents: ~2.3.2
dependenciesMeta:
@ -6882,7 +6881,7 @@ __metadata:
optional: true
bin:
rollup: dist/bin/rollup
checksum: 44372a1e6fbd1941d6cb230b2a3de6d86861ca7523792757c9fe1d254ae4cd645f5dae27d93c7b1e02c60945d2eadd8c74a99033bd8328eda84949086330d804
checksum: 0721065cf725c5611815be61d2b01f20b4d0027e17035f6e76384d38396b56cf6ed21a3db78eb004d9db4d24c8a6a19da4563b4ff96b5dd36f0a0f7a3baf85e8
languageName: node
linkType: hard
@ -6943,18 +6942,18 @@ __metadata:
"@rollup/plugin-commonjs": ^25.0.0
"@rollup/plugin-inject": ^5.0.3
"@rollup/plugin-node-resolve": ^15.0.2
"@rollup/plugin-terser": ^0.4.1
"@rollup/plugin-terser": ^0.4.3
"@types/jquery": ^3.5.16
"@types/jqueryui": ^1.12.16
"@types/jqueryui": ^1.12.17
"@types/markdown-it": ^12.2.3
"@types/markdown-it-attrs": ^4.1.0
"@types/node": ^16
"@types/prismjs": ^1.26.0
"@typescript-eslint/eslint-plugin": ^5.59.5
"@typescript-eslint/parser": ^5.59.5
"@typescript-eslint/eslint-plugin": ^5.59.6
"@typescript-eslint/parser": ^5.59.6
date-fns: ^2.30.0
deep-equal: ^2.2.1
eslint: ^8.40.0
eslint: ^8.41.0
eslint-config-prettier: ^8.8.0
eslint-import-resolver-typescript: ^3.5.5
eslint-plugin-import: ^2.27.5
@ -6972,10 +6971,10 @@ __metadata:
npm-run-all: ^4.1.5
prettier: ^2.8.8
prismjs: ^1.29.0
rollup: ^3.21.7
rollup: ^3.23.0
sass: ^1.62.1
semver-parser: ^4.1.4
stylelint: ^15.6.1
stylelint: ^15.6.2
stylelint-config-standard-scss: ^9.0.0
truncate-html: ^1.0.4
ts-node: ^10.9.1
@ -7051,7 +7050,7 @@ __metadata:
languageName: node
linkType: hard
"serialize-javascript@npm:^6.0.0":
"serialize-javascript@npm:^6.0.1":
version: 6.0.1
resolution: "serialize-javascript@npm:6.0.1"
dependencies:
@ -7189,10 +7188,10 @@ __metadata:
languageName: node
linkType: hard
"smob@npm:^0.0.6":
version: 0.0.6
resolution: "smob@npm:0.0.6"
checksum: 360b8b72896974411ec6ca9a352b306bd4233aea44309dbebaeb41fc822cf770b094589e42a8a025ae291f043cbfc4199fc01dd909e45c7bd3c23d287c7e5bac
"smob@npm:^1.0.0":
version: 1.1.1
resolution: "smob@npm:1.1.1"
checksum: 3912e09b29e95718b11d08a1449349469489b7d585af84f9189781922fb9cdf3d9954da855a814d076cefb6a1fbfaad29edea53cf576938f50150600220158eb
languageName: node
linkType: hard
@ -7507,9 +7506,9 @@ __metadata:
languageName: node
linkType: hard
"stylelint@npm:^15.6.1":
version: 15.6.1
resolution: "stylelint@npm:15.6.1"
"stylelint@npm:^15.6.2":
version: 15.6.2
resolution: "stylelint@npm:15.6.2"
dependencies:
"@csstools/css-parser-algorithms": ^2.1.1
"@csstools/css-tokenizer": ^2.1.1
@ -7555,7 +7554,7 @@ __metadata:
write-file-atomic: ^5.0.1
bin:
stylelint: bin/stylelint.js
checksum: 192ac3b5185cb59aaead62e1e2e53c42ffc9eba38e471bcb9e3a34381f688d2194a48ae5a356759e2368a9764626d2c6131dffd31933244519422ebcf76f6da6
checksum: b44949053b0500226d718d810af64a10b43d8faeed6c464ab1c8bebd8ace488135b47e3a6e4a97ae552d7e14f011dce82c6c69624e463476f8408751b7544b2f
languageName: node
linkType: hard
@ -7632,8 +7631,8 @@ __metadata:
linkType: hard
"tar@npm:^6.1.11, tar@npm:^6.1.2":
version: 6.1.14
resolution: "tar@npm:6.1.14"
version: 6.1.15
resolution: "tar@npm:6.1.15"
dependencies:
chownr: ^2.0.0
fs-minipass: ^2.0.0
@ -7641,13 +7640,13 @@ __metadata:
minizlib: ^2.1.1
mkdirp: ^1.0.3
yallist: ^4.0.0
checksum: a1be0815a9bdc97dfca7c6c2d71d1b836f8ba9314684e2c412832f0f59cc226d4c13da303d6bc30925e82f634cc793f40da79ae72f3e96fb87c23d0f4efd5207
checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268
languageName: node
linkType: hard
"terser@npm:^5.15.1":
version: 5.17.3
resolution: "terser@npm:5.17.3"
"terser@npm:^5.17.4":
version: 5.17.4
resolution: "terser@npm:5.17.4"
dependencies:
"@jridgewell/source-map": ^0.3.2
acorn: ^8.5.0
@ -7655,7 +7654,7 @@ __metadata:
source-map-support: ~0.5.20
bin:
terser: bin/terser
checksum: 6b5a859bf9707f34be6e4c567437bc4e47e9364eec37a48b0ae3bff46bb510ef43caf543a23a89b8f43eca47c90a6759105add171fdb0d768dd639deb4545ac9
checksum: 4bb4bbee170bee4cf897545b602999e0b74d2cd035387514c6859fae6a71d623f8d1319de47bcf6a157358355cc7afaa62a5d5661bfc72968d13b35113022486
languageName: node
linkType: hard
@ -7764,9 +7763,9 @@ __metadata:
linkType: hard
"tslib@npm:>=2":
version: 2.5.0
resolution: "tslib@npm:2.5.0"
checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1
version: 2.5.2
resolution: "tslib@npm:2.5.2"
checksum: 4d3c1e238b94127ed0e88aa0380db3c2ddae581dc0f4bae5a982345e9f50ee5eda90835b8bfba99b02df10a5734470be197158c36f9129ac49fdc14a6a9da222
languageName: node
linkType: hard