diff --git a/docs/architecture/architecture.md b/docs/architecture/architecture.md index ed627c63..641ce4cc 100644 --- a/docs/architecture/architecture.md +++ b/docs/architecture/architecture.md @@ -43,9 +43,10 @@ e.g. /unit/4 directs links of that pattern to src/views/ExerciseSession.vue ## src/views/ExerciseSession.vue `ExerciseSession` presents one of the exercise components -MatchingExercise.vue, MultipleChoiceExercise.vue or ClozeExercise.vue -based on the `exercise`/`exerciseItems` generated -by src/Units/ExerciseProvider.ts. +MatchingExercise.vue, MultipleChoiceExercise.vue, +ClozeExercise.vue or ComprehensionExercise.vue +based on the `exercise`/`exerciseItems` generated by +src/Units/ExerciseProvider.ts. When `ExerciseSession` is made available in the page/mounted, `getExercise()` is used to identify the correct unit specified by the `/unit/:id` route param in the browser's address bar. @@ -61,7 +62,7 @@ then generates an exercise of random type from the unit using `GenerateExerciseOfType[ExerciseType].bind(this)(unit)` (where ExerciseType is randomly picked from types available in the unit), which executes the relevant -`generate[Matching|MultipleChoice|ExplanationMatching|ExplanationMultipleChoice|SingleCloze|MultiCloze]Exercise(unit)`. +`generate[Matching|MultipleChoice|ExplanationMatching|ExplanationMultipleChoice|SingleCloze|MultiCloze|Comprehension]Exercise(unit)`. I.e. for `generateMultipleChoiceExercise`, a random exercise specification from the unit is selected, then 4 random word references from that exercise are selected, diff --git a/docs/content/content-spec.md b/docs/content/content-spec.md index e3527a33..6e1fdd98 100644 --- a/docs/content/content-spec.md +++ b/docs/content/content-spec.md @@ -4,13 +4,15 @@ # Content specification ::: tip Format versions -Seedlingo `v0.9.0` requires format version `1.1.0`. +Seedlingo `v1.4.0` and above requires format version `1.4.0`. -Seedlingo `v0.91.0` and above requires format version `1.1.1`. +Seedlingo `v1.3.0` and above requires format version `1.3.0`. Seedlingo `v1.0.0` and above requires format version `1.2.1`. -Seedlingo `v1.3.0` and above requires format version `1.3.0`. +Seedlingo `v0.91.0` and above requires format version `1.1.1`. + +Seedlingo `v0.9.0` requires format version `1.1.0`. ::: ## ContentSpec.json @@ -23,7 +25,7 @@ under that name. `ContentSpec.json` describes the file structure of the content. Mandatory field of type `string`. ```json -"formatVersion": "1.3.0" +"formatVersion": "1.4.0" ``` `formatVersion` is used by the Seedlingo app to determine how the file can be @@ -113,7 +115,7 @@ corresponding media, i.e. audio, picture, video and/or symbol (i.e. icon). Mandatory field of type `string`. ```json -"formatVersion": "1.3.0" +"formatVersion": "1.4.0" ``` `formatVersion` is used by the Seedlingo app to determine how the file can be @@ -178,7 +180,7 @@ which words from the word-specification to include in an exercise. Mandatory field of type `string`. ```json -"formatVersion": "1.3.0" +"formatVersion": "1.4.0" ``` `formatVersion` is used by the Seedlingo app to determine how the file can be @@ -265,6 +267,17 @@ Mandatory field of type `number`. `multiClozeCount` is the number of exercises in the unit of the type `MultiCloze`. +### comprehensionCount + +Mandatory field of type `number`. + +```json +"comprehensionCount": "8" +``` + +`comprehensionCount` is the number of exercises in the unit of the type +`Comprehension`. + ### wordsExercisedCount Optional field of type `number`. @@ -294,23 +307,30 @@ Each exercise must have the following mandatory fields of type `string`: - `Explanation` - `SingleCloze` - `MultiCloze` + - `Comprehension` Depending on the `type`, an exercise should have certain additional fields. #### MultipleChoice -- `words` (mandatory), a list (`Array`) of at least 4 unique word-references +- `multipleChoiceSpec` (mandatory), an `Object` defining the multiple choice + exercise, containing: + - `multipleChoiceWords` (mandatory), a list (`Array`) of at least 4 unique + word-references ```json "exercises": [ { "id": "dc760ae7-0804-4d5b-8102-c78b49ded883", "type": "MultipleChoice", - "words": [ - { "one": "00bb28fc-ca72-4c60-b04e-9484771a5303" }, - { "two": "89377ac8-f03a-43af-b701-168e5c02757f" }, - ] + "multipleChoiceSpec": { + "multipleChoiceWords": [ + { "one": "00bb28fc-ca72-4c60-b04e-9484771a5303" }, + { "two": "89377ac8-f03a-43af-b701-168e5c02757f" }, + {...} + ] + } }, {...} ] @@ -318,17 +338,26 @@ fields. #### Matching -- `words` (mandatory), a list (`Array`) of at least 2 unique word-references +- `matchingSpec` (mandatory), an `Object` defining the matching exercise, + containing: + - `matchingWords` (mandatory), a list (`Array`) of at least 2 unique + word-references + - `unsuppressWordAudio` (optional), a `boolean` (`true` or `false`) override to + allow audio cues for word tiles to play before a word tile has been matched + to its picture/symbol tile. Defaults to `false`. ```json "exercises": [ { "id": "7ce5fd1b-7b94-4ff7-8940-6c09301b10aa", "type": "Matching", - "words": [ - { "two": "89377ac8-f03a-43af-b701-168e5c02757f" }, - { "three": "f2b83c98-23a5-49d6-a366-a4530fdde789" }, - ] + "matchingSpec": { + "matchingWords": [ + { "two": "89377ac8-f03a-43af-b701-168e5c02757f" }, + { "three": "f2b83c98-23a5-49d6-a366-a4530fdde789" }, + ], + "unsuppressWordAudio": false + } }, {...} ] @@ -336,43 +365,47 @@ fields. #### Explanation -- `explanation` (mandatory), a list (`Array`) of at least one word-reference - forming a keyword, synonym or some other form of explanation that serves as - the clue to identify which single word the explanation points to. -- `explanationTargets` (mandatory), an object defining the correct target word - (valid option) the explanation hints to, as well as a few incorrect - alternatives (invalid options) that the correct alternative can hide among. -- `audio` (optional), the relative path (`string`) to the audio file - representing the pronunciation of the explanation -- `picture` (optional), the relative path (`string`) to a picture representing - the explanation -- `video` (optional), the relative path (`string`) to a video representing the - explanation -- `symbol` (optional), a list (`Array`) of one or more names (`strings`) of - [Material Design icons](https://materialdesignicons.com), prefixed with `mdi` - and [Camel-Cased](https://en.wikipedia.org/wiki/Camel_case), - so that `numeric-1` becomes `mdiNumeric1`, representing the idea conveyed by - the explanation. +- `explanationSpec` (mandatory), an `Object` defining the explanation exercise, + containing: + - `explanation` (mandatory), a list (`Array`) of at least one word-reference + forming a keyword, synonym or some other form of explanation that serves as + the clue to identify which single word the explanation points to. + - `explanationTargets` (mandatory), an `Object` defining the correct target word + (valid option) the explanation hints to, as well as a few incorrect + alternatives (invalid options) that the correct alternative can hide among. + - `audio` (optional), the relative path (`string`) to the audio file + representing the pronunciation of the explanation + - `picture` (optional), the relative path (`string`) to a picture representing + the explanation + - `video` (optional), the relative path (`string`) to a video representing the + explanation + - `symbol` (optional), a list (`Array`) of one or more names (`strings`) of + [Material Design icons](https://materialdesignicons.com), prefixed with `mdi` + and [Camel-Cased](https://en.wikipedia.org/wiki/Camel_case), + so that `numeric-1` becomes `mdiNumeric1`, representing the idea conveyed by + the explanation. ```json "exercises": [ { "id": "df7e8b41-d7bb-4dd8-acab-69a0c0045664", "type": "Explanation", - "explanation": [ - { "mama's": "2e803a36-22d3-4183-994a-00d4a2837b39" }, - { "mama": "14bb0008-1397-4684-8ef5-2f524524fc84" } - ], - "explanationTargets": { - "validOption": { "grandma": "8c40dd19-996c-428b-8962-212bd7e1c63c" }, - "invalidOptions": [ - { "grandpa": "97646a8e-33ee-4e43-a95d-4eeead0c4f94" }, - { "uncle": "5cd464a3-a04a-4ad2-9565-091036425550" }, - { "aunt": "e045242e-1867-444c-baf4-01f5d3f59fe3" } - ] - }, - "audio": "audio/mamasmama.mp3", - "symbol": ["mdiHumanFemale"] + "explanationSpec": { + "explanation": [ + { "mama's": "2e803a36-22d3-4183-994a-00d4a2837b39" }, + { "mama": "14bb0008-1397-4684-8ef5-2f524524fc84" } + ], + "explanationTargets": { + "validOption": { "grandma": "8c40dd19-996c-428b-8962-212bd7e1c63c" }, + "invalidOptions": [ + { "grandpa": "97646a8e-33ee-4e43-a95d-4eeead0c4f94" }, + { "uncle": "5cd464a3-a04a-4ad2-9565-091036425550" }, + { "aunt": "e045242e-1867-444c-baf4-01f5d3f59fe3" } + ] + }, + "audio": "audio/mamasmama.mp3", + "symbol": ["mdiHumanFemale"] + } }, {...} ] @@ -380,73 +413,90 @@ fields. #### SingleCloze -- `singleClozeText`, an object defining a cloze sentence (fill-the-blank - sentence) with a *single* blank, correct target words (valid options) that - will complete the sentence in a way that makes the sentence meaningful and - grammatically correct, as well as a few incorrect alternatives (invalid - options) that the correct alternative can hide among. -- `suppressClozeAudio` (optional), a boolean (`true` or `false`) that specifies - whether to prohibit users hearing the pronunciation of a word when tapping a - word in the cloze sentence (`suppressClozeAudio: true`), or to allow users to - hear the pronunciation of words (not blanks) they tap in the cloze sentence - (`suppressClozeAudio: false`) -- `suppressOptionAudio` (optional), a boolean (`true` or `false`) that specifies - whether to prohibit users hearing the pronunciation of an option when tapping - it (`suppressOptionAudio: true`), or to allow users to hear the pronunciation - when they tap an option (`suppressOptionAudio: false`) +- `singleClozeSpec`, an `Object` defining the cloze exercise, containing: + - `text` (mandatory), a list (`Array`) of elements that make up a cloze + sentence (fill-the-blank sentence) with a *single* blank, correct target + words (valid options) that will complete the sentence in a way that makes + the sentence meaningful and grammatically correct, as well as a few + incorrect alternatives (invalid options) that the correct alternative can + hide among. `Object`'s in `text` must have one of these shapes: + - a word-reference using a `string` key, like 'grandma', and a + word-reference value matching the word key as uniquely defined in the word + spec file, e.g `{ "grandma": "family-word-number-28" }` + - two lists (`Array`), one of `validOptions` and one of `invalidOptions`, + indicating that this entry in the `text` is a blank/gap that has a set + of valid alternatives that would make sense of the completed text, and a + set of invalid alternatives that will be treated as incorrect answers. + Either list should exclusively contain word-references as described above. + For a cloze exercise with only one blank/gap, `singleClozeSpec.text` + must contain one and only one reference to `validOptions` and + `invalidOptions`. + - `suppressClozeAudio` (optional), a `boolean` (`true` or `false`) that + specifies whether to prohibit users hearing the pronunciation of a word when + tapping a word in the cloze sentence (`suppressClozeAudio: true`), or to + allow users to hear the pronunciation of words (not blanks) they tap in the + cloze sentence (`suppressClozeAudio: false`). Defaults to `false`. + - `suppressOptionAudio` (optional), a `boolean` (`true` or `false`) that + specifies whether to prohibit users hearing the pronunciation of an option + when tapping it (`suppressOptionAudio: true`), or to allow users to hear the + pronunciation when they tap an option (`suppressOptionAudio: false`). + Defaults to `false`. ```json "exercises": [ { "id": "ddac5f75-c5af-4734-8455-b76b425e8bfb", "type": "SingleCloze", - "singleClozeText": [ - { "他": "c53add23-aba4-42f5-9fbb-d6a6d1d8882c" }, - { "是": "bc1ec01c-0fde-4e63-82e6-c0f78d01529e" }, - { "我": "9f4c842a-e36a-48b1-aa4b-955aedef35d2" }, - { "的": "843f4af4-5dcb-44a4-b690-759db29999c4" }, - { - "description": "relations", - "validOptions": [ - { "爸爸": "3773c800-4f9b-4951-b7a7-9e0c9861d089" }, - { "哥哥": "4e43f1dd-bdd8-4cfb-ad27-8446e44cc754" }, - { "弟弟": "802939da-7ac0-409c-bfb2-b0d6f81e2f56" }, - { "姥爷": "6c0f975c-4364-40c7-ae72-cfc2145da7e3" }, - { "爷爷": "1ad7f2f9-521a-4a00-b549-bd4ee081149b" }, - { "丈夫": "76004162-7f5b-4e28-bda5-bbcb39be8165" }, - { "大哥": "3eac3c44-25ef-434e-9e94-1fc71e510557" }, - { "二哥": "abb4c7a4-0c11-4f29-8506-a852f04a0ef5" }, - { "大弟弟": "0fcce854-d190-4e88-a3fe-da2e4763f48c" }, - { "小弟弟": "1846e964-c362-417a-815d-3319b2b6aca5" }, - { "姐夫": "c48bf08b-df1b-4fa8-a41b-15405ecebf49" }, - { "妹夫": "98d18086-a60a-4f81-80b3-e05bd2aaa400" }, - { "儿子": "af7cc883-0091-4d24-800e-95ca67ee451c" }, - { "外孙": "bb91deac-cbe1-4314-b7d3-9662cc82d446" }, - { "孙子": "4e594d79-ec54-4cc7-8ef0-2a950ebb2de3" }, - { "外甥": "54ff3fa1-141e-4620-861d-335376b3f8f2" }, - { "侄子": "dda9c23b-503d-4ada-8293-3450c8bfae7c" } - ], - "invalidOptions": [ - { "妈妈": "8da1e3a6-3268-40da-8707-be2a2c902c16" }, - { "姐姐": "b521f4d2-1084-4f17-af18-1bd6738d23a0" }, - { "妹妹": "8ee121b4-8522-4e16-91b7-8a2af070efd8" }, - { "姥姥": "d63f08dd-f8e6-4b47-940b-8d9d939034a6" }, - { "奶奶": "5cd464a3-a04a-4ad2-9565-091036425550" }, - { "妻子": "9ca14628-fd31-4f36-8f99-70dd7c9c8b28" }, - { "大姐": "891c12fc-23a3-4bb9-9744-dbaf2e785624" }, - { "二姐": "1d9b329c-a2fa-4eaa-aa2c-39d026a898a7" }, - { "大妹妹": "8531fafd-fd6c-47a2-861b-c401362f17c2" }, - { "小妹妹": "683a0834-e76f-44b4-9858-467b63380147" }, - { "嫂子": "afaf98c8-5f3d-4be9-8338-3f2942e6be17" }, - { "弟妹": "75a122a7-4a08-4333-acf1-072483f6a570" }, - { "女儿": "34d92533-9c8c-4469-b050-2638f2b5f4d5" }, - { "外孙女": "83ded6b2-d80b-4a78-bd10-00d4822aefb9" }, - { "孙女": "7f3cd2dd-da20-4c3c-8fb1-d6beefb43d0e" }, - { "外甥女": "b6ebbe69-9834-41f3-a353-4a9142d599b3" }, - { "侄女": "0087add3-b033-4cac-bb6b-cebf1c1acdd0" } - ] - } - ] + "singleClozeSpec": { + "text": [ + { "他": "c53add23-aba4-42f5-9fbb-d6a6d1d8882c" }, + { "是": "bc1ec01c-0fde-4e63-82e6-c0f78d01529e" }, + { "我": "9f4c842a-e36a-48b1-aa4b-955aedef35d2" }, + { "的": "843f4af4-5dcb-44a4-b690-759db29999c4" }, + { + "validOptions": [ + { "爸爸": "3773c800-4f9b-4951-b7a7-9e0c9861d089" }, + { "哥哥": "4e43f1dd-bdd8-4cfb-ad27-8446e44cc754" }, + { "弟弟": "802939da-7ac0-409c-bfb2-b0d6f81e2f56" }, + { "姥爷": "6c0f975c-4364-40c7-ae72-cfc2145da7e3" }, + { "爷爷": "1ad7f2f9-521a-4a00-b549-bd4ee081149b" }, + { "丈夫": "76004162-7f5b-4e28-bda5-bbcb39be8165" }, + { "大哥": "3eac3c44-25ef-434e-9e94-1fc71e510557" }, + { "二哥": "abb4c7a4-0c11-4f29-8506-a852f04a0ef5" }, + { "大弟弟": "0fcce854-d190-4e88-a3fe-da2e4763f48c" }, + { "小弟弟": "1846e964-c362-417a-815d-3319b2b6aca5" }, + { "姐夫": "c48bf08b-df1b-4fa8-a41b-15405ecebf49" }, + { "妹夫": "98d18086-a60a-4f81-80b3-e05bd2aaa400" }, + { "儿子": "af7cc883-0091-4d24-800e-95ca67ee451c" }, + { "外孙": "bb91deac-cbe1-4314-b7d3-9662cc82d446" }, + { "孙子": "4e594d79-ec54-4cc7-8ef0-2a950ebb2de3" }, + { "外甥": "54ff3fa1-141e-4620-861d-335376b3f8f2" }, + { "侄子": "dda9c23b-503d-4ada-8293-3450c8bfae7c" } + ], + "invalidOptions": [ + { "妈妈": "8da1e3a6-3268-40da-8707-be2a2c902c16" }, + { "姐姐": "b521f4d2-1084-4f17-af18-1bd6738d23a0" }, + { "妹妹": "8ee121b4-8522-4e16-91b7-8a2af070efd8" }, + { "姥姥": "d63f08dd-f8e6-4b47-940b-8d9d939034a6" }, + { "奶奶": "5cd464a3-a04a-4ad2-9565-091036425550" }, + { "妻子": "9ca14628-fd31-4f36-8f99-70dd7c9c8b28" }, + { "大姐": "891c12fc-23a3-4bb9-9744-dbaf2e785624" }, + { "二姐": "1d9b329c-a2fa-4eaa-aa2c-39d026a898a7" }, + { "大妹妹": "8531fafd-fd6c-47a2-861b-c401362f17c2" }, + { "小妹妹": "683a0834-e76f-44b4-9858-467b63380147" }, + { "嫂子": "afaf98c8-5f3d-4be9-8338-3f2942e6be17" }, + { "弟妹": "75a122a7-4a08-4333-acf1-072483f6a570" }, + { "女儿": "34d92533-9c8c-4469-b050-2638f2b5f4d5" }, + { "外孙女": "83ded6b2-d80b-4a78-bd10-00d4822aefb9" }, + { "孙女": "7f3cd2dd-da20-4c3c-8fb1-d6beefb43d0e" }, + { "外甥女": "b6ebbe69-9834-41f3-a353-4a9142d599b3" }, + { "侄女": "0087add3-b033-4cac-bb6b-cebf1c1acdd0" } + ] + } + ], + "suppressClozeAudio": false, + "suppressOptionAudio": false + } }, {...} ] @@ -454,73 +504,200 @@ fields. #### MultiCloze -- `multiClozeText`, an object defining a cloze sentence (fill-the-blank - sentence) with *multiple* blanks and correct target words (valid options) that - will complete the sentence in a way that makes the sentence meaningful and - grammatically correct. The key to solving the exercise is to connect the words - to the corresponding blanks. -- `suppressClozeAudio` (optional), a boolean (`true` or `false`) that specifies - whether to prohibit users hearing the pronunciation of a word when tapping a - word in the cloze sentence (`suppressClozeAudio: true`), or to allow users to - hear the pronunciation of words (not blanks) they tap in the cloze sentence - (`suppressClozeAudio: false`) -- `suppressOptionAudio` (optional), a boolean (`true` or `false`) that specifies - whether to prohibit users hearing the pronunciation of an option when tapping - it (`suppressOptionAudio: true`), or to allow users to hear the pronunciation - when they tap an option (`suppressOptionAudio: false`) +- `multiClozeSpec`, an `Object` defining the cloze exercise, containing: + - `text` (mandatory), a list (`Array`) of elements that make up a cloze + sentence (fill-the-blank sentence) with words interspersed with *multiple* + blanks as lists of correct target words (valid options) that will complete + the sentence in a way that makes the sentence meaningful and grammatically + correct, *if put in the correct order*. The key to solving the exercise is + to connect the valid word to the corresponding blanks. `Object`'s in + `text` must have one of these shapes: + - a word-reference using a `string` key, like 'grandma', and a + word-reference value matching the word key as uniquely defined in the word + spec file, e.g `{ "grandma": "family-word-number-28" }` + - a list (`Array`) called `validOptions` containing exactly one entry + indicating that this entry in the `text` is a blank/gap that has exactly + one correct alternative that will make sense of the completed text. The + list entry must be a word-reference as described above. + `multiClozeSpec.text` must contain at least two objects containing + `validOptions`. + - `suppressClozeAudio` (optional), a `boolean` (`true` or `false`) that + specifies whether to prohibit users hearing the pronunciation of a word when + tapping a word in the cloze sentence (`suppressClozeAudio: true`), or to + allow users to hear the pronunciation of words (not blanks) they tap in the + cloze sentence (`suppressClozeAudio: false`). Defaults to `false`. + - `suppressOptionAudio` (optional), a `boolean` (`true` or `false`) that + specifies whether to prohibit users hearing the pronunciation of an option + when tapping it (`suppressOptionAudio: true`), or to allow users to hear the + pronunciation when they tap an option (`suppressOptionAudio: false`). + Defaults to `false`. ```json "exercises": [ { "id": "6b941a32-89f3-4436-ac53-f2769cb0d3b3", "type": "MultiCloze", - "suppressClozeAudio": false, - "suppressOptionAudio": false, - "multiClozeText": [ - { "我": "9f4c842a-e36a-48b1-aa4b-955aedef35d2" }, - { "的": "843f4af4-5dcb-44a4-b690-759db29999c4" }, - { "妈妈": "8da1e3a6-3268-40da-8707-be2a2c902c16" }, - { "有": "35389a5a-4493-44e5-a8ae-dc0a30c98dbf" }, - { "四": "da473305-758c-40c0-a61b-d9de0aefb5a4" }, - { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, - { - "validOptions": [{ - "孩子": "c8de49d6-d26a-4d62-b959-83cf57327387" - }] - }, - { ":": "526a8ee7-7525-4b0f-a3a2-92e29618bed3" }, - { "两": "5dbf7670-f66d-46e4-b971-8f8d6de95a5c" }, - { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, - { "儿子": "af7cc883-0091-4d24-800e-95ca67ee451c" }, - { ",": "3fde2b11-aa78-4a96-9bd4-75c8462132b6" }, - { "两": "5dbf7670-f66d-46e4-b971-8f8d6de95a5c" }, - { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, - { - "validOptions": [{ - "女儿": "34d92533-9c8c-4469-b050-2638f2b5f4d5" - }] - }, - { "。": "5d0f410c-83ff-43bd-a31e-922b42b054ef" }, - { "我": "9f4c842a-e36a-48b1-aa4b-955aedef35d2" }, - { "有": "35389a5a-4493-44e5-a8ae-dc0a30c98dbf" }, - { "两": "5dbf7670-f66d-46e4-b971-8f8d6de95a5c" }, - { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, - { - "validOptions": [{ - "姐姐": "b521f4d2-1084-4f17-af18-1bd6738d23a0" - }] - }, - { ",": "3fde2b11-aa78-4a96-9bd4-75c8462132b6" }, - { - "validOptions": [{ - "一": "1d936b6b-e44c-466c-8d04-ab52643670c2" - }] - }, - { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, - { "弟弟": "802939da-7ac0-409c-bfb2-b0d6f81e2f56" }, - { "。": "5d0f410c-83ff-43bd-a31e-922b42b054ef" } - ] + "multiClozeSpec": { + "multiClozeText": [ + { "我": "9f4c842a-e36a-48b1-aa4b-955aedef35d2" }, + { "的": "843f4af4-5dcb-44a4-b690-759db29999c4" }, + { "妈妈": "8da1e3a6-3268-40da-8707-be2a2c902c16" }, + { "有": "35389a5a-4493-44e5-a8ae-dc0a30c98dbf" }, + { "四": "da473305-758c-40c0-a61b-d9de0aefb5a4" }, + { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, + { + "validOptions": [ + { "孩子": "c8de49d6-d26a-4d62-b959-83cf57327387" } + ] + }, + { ":": "526a8ee7-7525-4b0f-a3a2-92e29618bed3" }, + { "两": "5dbf7670-f66d-46e4-b971-8f8d6de95a5c" }, + { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, + { "儿子": "af7cc883-0091-4d24-800e-95ca67ee451c" }, + { ",": "3fde2b11-aa78-4a96-9bd4-75c8462132b6" }, + { "两": "5dbf7670-f66d-46e4-b971-8f8d6de95a5c" }, + { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, + { + "validOptions": [ + { "女儿": "34d92533-9c8c-4469-b050-2638f2b5f4d5" } + ] + }, + { "。": "5d0f410c-83ff-43bd-a31e-922b42b054ef" }, + { "我": "9f4c842a-e36a-48b1-aa4b-955aedef35d2" }, + { "有": "35389a5a-4493-44e5-a8ae-dc0a30c98dbf" }, + { "两": "5dbf7670-f66d-46e4-b971-8f8d6de95a5c" }, + { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, + { + "validOptions": [ + { "姐姐": "b521f4d2-1084-4f17-af18-1bd6738d23a0" } + ] + }, + { ",": "3fde2b11-aa78-4a96-9bd4-75c8462132b6" }, + { + "validOptions": [ + { "一": "1d936b6b-e44c-466c-8d04-ab52643670c2" } + ] + }, + { "个": "90f79865-ac90-4644-9a8b-88eaad30e979" }, + { "弟弟": "802939da-7ac0-409c-bfb2-b0d6f81e2f56" }, + { "。": "5d0f410c-83ff-43bd-a31e-922b42b054ef" } + ], + "suppressClozeAudio": false, + "suppressOptionAudio": false + } }, {...} ] ``` + +#### Comprehension + +- `comprehensionSpec` (mandatory), an `Object` defining the comprehension + exercise, containing: + - `text` (mandatory), a list (`Array`) of word-references to words that + make up a short text forming the base for the comprehension exercise. + `Object`'s in `text` must have this shape: + - a word-reference using a `string` key, like 'grandma', and a + word-reference value matching the word key as uniquely defined in the word + spec file, e.g `{ "grandma": "family-word-number-28" }` + - `multipleChoiceSpec` (optional), an `Object` defining a multiple-choice + exercise to include in the comprehension exercise. The specification here + should follow the general specification for multiple-choice exercises as + [defined above](#multiplechoice). + - `matchingSpec` (optional), an `Object` defining a matching exercise to + include in the comprehension exercise. The specification here should follow + the general specification for matching exercises as [defined above](#matching). + - `comprehensionQuestions` (mandatory), a list (`Array`) of questions to pose + with answer options. Each questions must be an `Object` with this shape: + - `questionText` (mandatory), a `string` posing the question in written form. + - `questionAudio` (mandatory), the path (`string`) to the audio file for the + question + - `options` (mandatory), a list (`Array`) of `Object`s defining a possible + answer to the question, of the shape: + - `word` (mandatory), a reference to a word in the word-spec + - `correct` (optional), a `boolean` (`true` or `false`) indicating whether + this option is the correct answer. Default to `false`. + - `comprehensionStages` (optional), a list (`Array`) of stages for the + comprehension exercise. A stage spec must have the following shape: + - `instructionText` (optional), an instruction (`string`) describing the + nature of the stage and what is expected of the user for this stage + - `instructionAudio` (optional), a path (`string`) to the audio file for the + instruction for this stage + - `questionnaire` (optional), a `boolean` (`true` or `false`) indicating + that this stage should use the `comprehensionQuestions` to form a + questionnaire-stage. Defaults to `false`. + - `onlyInstructionOnRequest` (optional), a `boolean` (`true` or `false`) + indicating whether the instruction for this stage should be suppressed + until the user asks for it (`true`), or should be played automatically + (`false`). Defaults to `false`. + - `suppressOptionAudio` (optional), a `boolean` (`true` or `false`) indicating + whether to prevent the audio on answer options to be played before the + correct answer has been found. Defaults to `false`. + + +```json +"exercises": [ + { + "id": "45e04dde-17d0-4842-a685-c10f3d11d6d3", + "type": "Comprehension", + "comprehensionSpec": { + "text": [ + { "We": "a300d857-21d1-4e9d-b1e9-ac120f038708" }, + { "are": "2000898c-9972-4971-807b-365d38db8bb0" }, + { "three": "eac2f9c5-8dca-49f4-b972-022dd174a9b1" }, + { "people": "d3e928c7-1cfe-426b-96f6-98c7b65d1077" }, + { "in": "08175114-13e9-4802-b5d3-458c58f289a2" }, + { "my": "c1f71e0c-62e7-41f5-ae48-320f60ba639f" }, + { "family": "1abb6ead-f22a-4565-99cc-26a412c9ca48" }, + { ".": "a64c2a49-916a-4109-a385-83915288c3b1" } + ], + "matchingSpec": { + "matchingWords": [ + { "two": "89377ac8-f03a-43af-b701-168e5c02757f" }, + { "three": "f2b83c98-23a5-49d6-a366-a4530fdde789" }, + ] + }, + "comprehensionQuestions": [ + { + "questionText": "How many people are there in this family?", + "questionAudio": "audio/unit02-1-q1.mp3", + "options": [ + { + "correct": true, + "word": { + "three": "923c82a4-5425-4fbe-95b3-66901a667c23" + } + }, + { + "word": { + "you": "2122a3a3-d4f6-42ea-a2a5-38f8865cc851" + } + } + ] + }, + "comprehensionStages": [ + { + "instructionText": "Read the text carefully, then answer questions about the text.", + "instructionAudio": "audio/comprehension-1.mp3" + }, + { + "questionnaire": true + }, + { + "instructionText": "Click an alternative to suggest the answer to the question.", + "instructionAudio": "audio/comprehension-2.mp3" + }, + { + "instructionText": "Practice some new words with this matching exercise.", + "instructionAudio": "audio/comprehension-3.mp3" + }, + { + "instructionText": "Finally, re-read the text and click on words you don't recognize to hear their pronunciation.", + "instructionAudio": "audio/comprehension-4.mp3" + } + ] + ] + } + } +] +``` diff --git a/docs/content/content-validation.md b/docs/content/content-validation.md index 3f0fe15a..1b831807 100644 --- a/docs/content/content-validation.md +++ b/docs/content/content-validation.md @@ -15,5 +15,5 @@ Set up a development environment as described in [Get started](/get-started/get- ```sh # Inside the `seedlingo/` folder: cd app -npm run test:unit Validation # Note the capital V +npm run verify:content ``` diff --git a/docs/get-started/get-started.md b/docs/get-started/get-started.md index f249cca4..b4f46dbb 100644 --- a/docs/get-started/get-started.md +++ b/docs/get-started/get-started.md @@ -52,6 +52,12 @@ npm install npm start # Then visit http://localhost:4173 in your web browser ``` +### Start the app in dev mode with hot reloading + +```sh +npm dev # Then visit http://localhost:5173 in your web browser +``` + ### Run full test suite This command combines the scripts for: diff --git a/docs/index.md b/docs/index.md index e0bec1ae..2f2b1e71 100644 --- a/docs/index.md +++ b/docs/index.md @@ -78,8 +78,8 @@ from ideas by [立爱教育 Li Ai Education](https://liaieducation.com), to help Putonghua speaking adults learn to read simplified Chinese characters. -To try the Android app, download [version 1.1.0]( - https://github.com/nodepa/seedlingo/releases/download/v1.1.0/seedlingo_v1.1.0_33.apk) +To try the Android app, download [version 1.4.0]( + https://github.com/nodepa/seedlingo/releases/download/v1.4.0/seedlingo_v1.4.0_54.apk) or [check the release history](https://github.com/nodepa/seedlingo/releases) for a more recent version. Download to your phone, then install. diff --git a/docs/package-lock.json b/docs/package-lock.json index c3ed7118..1fe488c8 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,20 +1,20 @@ { "name": "docs", - "version": "1.3.0", + "version": "1.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "docs", - "version": "1.3.0", + "version": "1.4.0", "license": "MIT", "devDependencies": { "@vuepress/bundler-vite": "^2.0.0-rc.9", "@vuepress/client": "^2.0.0-rc.9", - "@vuepress/plugin-docsearch": "^2.0.0-rc.21", - "@vuepress/plugin-seo": "^2.0.0-rc.23", - "@vuepress/plugin-sitemap": "^2.0.0-rc.23", - "@vuepress/theme-default": "^2.0.0-rc.23", + "@vuepress/plugin-docsearch": "^2.0.0-rc.24", + "@vuepress/plugin-seo": "^2.0.0-rc.24", + "@vuepress/plugin-sitemap": "^2.0.0-rc.24", + "@vuepress/theme-default": "^2.0.0-rc.24", "vuepress": "^2.0.0-rc.9" } }, @@ -64,151 +64,151 @@ } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.2.tgz", - "integrity": "sha512-PvRQdCmtiU22dw9ZcTJkrVKgNBVAxKgD0/cfiqyxhA5+PHzA2WDt6jOmZ9QASkeM2BpyzClJb/Wr1yt2/t78Kw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz", + "integrity": "sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.23.2" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/cache-common": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.2.tgz", - "integrity": "sha512-OUK/6mqr6CQWxzl/QY0/mwhlGvS6fMtvEPyn/7AHUx96NjqDA4X4+Ju7aXFQKh+m3jW9VPB0B9xvEQgyAnRPNw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.3.tgz", + "integrity": "sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==", "dev": true }, "node_modules/@algolia/cache-in-memory": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.2.tgz", - "integrity": "sha512-rfbi/SnhEa3MmlqQvgYz/9NNJ156NkU6xFxjbxBtLWnHbpj+qnlMoKd+amoiacHRITpajg6zYbLM9dnaD3Bczw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz", + "integrity": "sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.23.2" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/client-account": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.2.tgz", - "integrity": "sha512-VbrOCLIN/5I7iIdskSoSw3uOUPF516k4SjDD4Qz3BFwa3of7D9A0lzBMAvQEJJEPHWdVraBJlGgdJq/ttmquJQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.3.tgz", + "integrity": "sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==", "dev": true, "dependencies": { - "@algolia/client-common": "4.23.2", - "@algolia/client-search": "4.23.2", - "@algolia/transporter": "4.23.2" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-analytics": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.2.tgz", - "integrity": "sha512-lLj7irsAztGhMoEx/SwKd1cwLY6Daf1Q5f2AOsZacpppSvuFvuBrmkzT7pap1OD/OePjLKxicJS8wNA0+zKtuw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.3.tgz", + "integrity": "sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==", "dev": true, "dependencies": { - "@algolia/client-common": "4.23.2", - "@algolia/client-search": "4.23.2", - "@algolia/requester-common": "4.23.2", - "@algolia/transporter": "4.23.2" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-common": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.2.tgz", - "integrity": "sha512-Q2K1FRJBern8kIfZ0EqPvUr3V29ICxCm/q42zInV+VJRjldAD9oTsMGwqUQ26GFMdFYmqkEfCbY4VGAiQhh22g==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.3.tgz", + "integrity": "sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.23.2", - "@algolia/transporter": "4.23.2" + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-personalization": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.2.tgz", - "integrity": "sha512-vwPsgnCGhUcHhhQG5IM27z8q7dWrN9itjdvgA6uKf2e9r7vB+WXt4OocK0CeoYQt3OGEAExryzsB8DWqdMK5wg==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.3.tgz", + "integrity": "sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==", "dev": true, "dependencies": { - "@algolia/client-common": "4.23.2", - "@algolia/requester-common": "4.23.2", - "@algolia/transporter": "4.23.2" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-search": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.2.tgz", - "integrity": "sha512-CxSB29OVGSE7l/iyoHvamMonzq7Ev8lnk/OkzleODZ1iBcCs3JC/XgTIKzN/4RSTrJ9QybsnlrN/bYCGufo7qw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.3.tgz", + "integrity": "sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==", "dev": true, "dependencies": { - "@algolia/client-common": "4.23.2", - "@algolia/requester-common": "4.23.2", - "@algolia/transporter": "4.23.2" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/logger-common": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.2.tgz", - "integrity": "sha512-jGM49Q7626cXZ7qRAWXn0jDlzvoA1FvN4rKTi1g0hxKsTTSReyYk0i1ADWjChDPl3Q+nSDhJuosM2bBUAay7xw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.3.tgz", + "integrity": "sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==", "dev": true }, "node_modules/@algolia/logger-console": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.2.tgz", - "integrity": "sha512-oo+lnxxEmlhTBTFZ3fGz1O8PJ+G+8FiAoMY2Qo3Q4w23xocQev6KqDTA1JQAGPDxAewNA2VBwWOsVXeXFjrI/Q==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.3.tgz", + "integrity": "sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==", "dev": true, "dependencies": { - "@algolia/logger-common": "4.23.2" + "@algolia/logger-common": "4.23.3" } }, "node_modules/@algolia/recommend": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.2.tgz", - "integrity": "sha512-Q75CjnzRCDzgIlgWfPnkLtrfF4t82JCirhalXkSSwe/c1GH5pWh4xUyDOR3KTMo+YxxX3zTlrL/FjHmUJEWEcg==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.3.tgz", + "integrity": "sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==", "dev": true, "dependencies": { - "@algolia/cache-browser-local-storage": "4.23.2", - "@algolia/cache-common": "4.23.2", - "@algolia/cache-in-memory": "4.23.2", - "@algolia/client-common": "4.23.2", - "@algolia/client-search": "4.23.2", - "@algolia/logger-common": "4.23.2", - "@algolia/logger-console": "4.23.2", - "@algolia/requester-browser-xhr": "4.23.2", - "@algolia/requester-common": "4.23.2", - "@algolia/requester-node-http": "4.23.2", - "@algolia/transporter": "4.23.2" + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.2.tgz", - "integrity": "sha512-TO9wLlp8+rvW9LnIfyHsu8mNAMYrqNdQ0oLF6eTWFxXfxG3k8F/Bh7nFYGk2rFAYty4Fw4XUtrv/YjeNDtM5og==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz", + "integrity": "sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.23.2" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/requester-common": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.2.tgz", - "integrity": "sha512-3EfpBS0Hri0lGDB5H/BocLt7Vkop0bTTLVUBB844HH6tVycwShmsV6bDR7yXbQvFP1uNpgePRD3cdBCjeHmk6Q==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.3.tgz", + "integrity": "sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==", "dev": true }, "node_modules/@algolia/requester-node-http": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.2.tgz", - "integrity": "sha512-SVzgkZM/malo+2SB0NWDXpnT7nO5IZwuDTaaH6SjLeOHcya1o56LSWXk+3F3rNLz2GVH+I/rpYKiqmHhSOjerw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz", + "integrity": "sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==", "dev": true, "dependencies": { - "@algolia/requester-common": "4.23.2" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/transporter": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.2.tgz", - "integrity": "sha512-GY3aGKBy+8AK4vZh8sfkatDciDVKad5rTY2S10Aefyjh7e7UGBP4zigf42qVXwU8VOPwi7l/L7OACGMOFcjB0Q==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.3.tgz", + "integrity": "sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==", "dev": true, "dependencies": { - "@algolia/cache-common": "4.23.2", - "@algolia/logger-common": "4.23.2", - "@algolia/requester-common": "4.23.2" + "@algolia/cache-common": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/requester-common": "4.23.3" } }, "node_modules/@babel/parser": { @@ -646,89 +646,159 @@ "dev": true }, "node_modules/@mdit-vue/plugin-component": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-component/-/plugin-component-2.0.0.tgz", - "integrity": "sha512-cTRxlocav/+mfgDcp0P2z/gWuWBez+iNuN4D+b74LpX4AR6UAx2ZvWtCrUZ8VXrO4eCt1/G0YC/Af7mpIb3aoQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-component/-/plugin-component-2.1.1.tgz", + "integrity": "sha512-paTg5zYtJbLGMTQ6W4YNyyBKBiGOvm9Mhl/R9eanKgTMsFErksXFuygut8vgd9ueSPuaTk/eRQfHQEXfv41MTg==", "dev": true, "dependencies": { - "@types/markdown-it": "^13.0.7", - "markdown-it": "^14.0.0" + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-component/node_modules/@types/markdown-it": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, "node_modules/@mdit-vue/plugin-frontmatter": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-2.0.0.tgz", - "integrity": "sha512-/LrT6E60QI4XV4mqx3J87hqYXlR7ZyMvndmftR2RGz7cRAwa/xL+kyFLlgrMxkBIKitOShKa3LS/9Ov9b0fU+g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-2.1.0.tgz", + "integrity": "sha512-vVDjrv1RZorGo1yW7PZg7/dwRupSBzMt8YE8mmM+TMA0NtFEhYfWdHj8vWgkXm1ZJUugmXheL6SxJzo6fz6uHA==", "dev": true, "dependencies": { - "@mdit-vue/types": "2.0.0", - "@types/markdown-it": "^13.0.7", + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.0.0", "gray-matter": "^4.0.3", - "markdown-it": "^14.0.0" + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-frontmatter/node_modules/@types/markdown-it": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, "node_modules/@mdit-vue/plugin-headers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-headers/-/plugin-headers-2.0.0.tgz", - "integrity": "sha512-ITMMPCnLEYHHgj3XEUL2l75jsNn8guxNqr26YrMSi1f5zcgq4XVy1LIvfwvJ1puqM6Cc5v4BHk3oAyorAi7l1A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-headers/-/plugin-headers-2.1.0.tgz", + "integrity": "sha512-vau2AtVIN+nqjlMrvYOpz2toBkJJGUcqJY48Mlo33YybBYNDRCBrX/1VFWJ++B3IeJpdFFMLwhZvRN5tsuhPhQ==", "dev": true, "dependencies": { - "@mdit-vue/shared": "2.0.0", - "@mdit-vue/types": "2.0.0", - "@types/markdown-it": "^13.0.7", - "markdown-it": "^14.0.0" + "@mdit-vue/shared": "2.1.0", + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-headers/node_modules/@types/markdown-it": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, "node_modules/@mdit-vue/plugin-sfc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-sfc/-/plugin-sfc-2.0.0.tgz", - "integrity": "sha512-OXrMXOyk0iwdIou2jRoIHIbjskwghkO14C9/OjgVHXSSX+iM/WQ4l4yi1aWmNlbQNjtP8IXcVAyJB9K0DFYmLg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-sfc/-/plugin-sfc-2.1.0.tgz", + "integrity": "sha512-7M07z3sADHQXwf9CuOXQBK4+Ga+wxnyTNrwsuk0knnvXRO7l6N6yL5sPgzgz67e4UBsqDwsxgWzTgsnzmv6OMg==", "dev": true, "dependencies": { - "@mdit-vue/types": "2.0.0", - "@types/markdown-it": "^13.0.7", - "markdown-it": "^14.0.0" + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-sfc/node_modules/@types/markdown-it": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, "node_modules/@mdit-vue/plugin-title": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-title/-/plugin-title-2.0.0.tgz", - "integrity": "sha512-eqBoETPVkMXNLvwFshz/A2+Cz81VB5HEkXDm0tt6RBW/rTvnoWmGJ1Z+mvcjR5ck5W4nYdIyT68oHxX2JI2M4g==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-title/-/plugin-title-2.1.0.tgz", + "integrity": "sha512-16KmXwMnWxDwj6CelA1Fyf12/OYvkA2c2MN1iFAdJQnK7wOSPcUscdVO7nxverThuPQLENt/8500/AJqjH4/3Q==", "dev": true, "dependencies": { - "@mdit-vue/shared": "2.0.0", - "@mdit-vue/types": "2.0.0", - "@types/markdown-it": "^13.0.7", - "markdown-it": "^14.0.0" + "@mdit-vue/shared": "2.1.0", + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-title/node_modules/@types/markdown-it": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, "node_modules/@mdit-vue/plugin-toc": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-toc/-/plugin-toc-2.0.0.tgz", - "integrity": "sha512-PKQ8sZna3D5chTnt2lxL+ddpyXd++6Nyc0l8VXCeDgStlySQwiP9jaLeeC88oqY4BtRu4cAmILmxDrvuX0Rrdg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/plugin-toc/-/plugin-toc-2.1.0.tgz", + "integrity": "sha512-CUVIHELx73yPypYKvnG+6cwjudUCq5vqXOCb3HfFQOICVXk9Y5W0MFOnGBcyt2JxY4D1dUWusj3YT4o0MDm/Eg==", "dev": true, "dependencies": { - "@mdit-vue/shared": "2.0.0", - "@mdit-vue/types": "2.0.0", - "@types/markdown-it": "^13.0.7", - "markdown-it": "^14.0.0" + "@mdit-vue/shared": "2.1.0", + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/plugin-toc/node_modules/@types/markdown-it": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, "node_modules/@mdit-vue/shared": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/shared/-/shared-2.0.0.tgz", - "integrity": "sha512-PdxpQpbyTazeo2JT87qms6RPZIzyJd+gwuB+1jSwLDI7+0u5g79y2XgTAbZromSVgY2f3UU5HWdwaLbV9w4uOw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/shared/-/shared-2.1.0.tgz", + "integrity": "sha512-eLPdmaB9f7VGjC6AzA5Q2pOzj1s5uJMtF+925SQTjlZIzlJbv1KFwjcO57dlr8aOzF1XrWm8j8nB1qYlecW4Ig==", "dev": true, "dependencies": { - "@mdit-vue/types": "2.0.0", - "@types/markdown-it": "^13.0.7", - "markdown-it": "^14.0.0" + "@mdit-vue/types": "2.1.0", + "@types/markdown-it": "^14.0.0", + "markdown-it": "^14.1.0" + } + }, + "node_modules/@mdit-vue/shared/node_modules/@types/markdown-it": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-14.0.1.tgz", + "integrity": "sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ==", + "dev": true, + "dependencies": { + "@types/linkify-it": "*", + "@types/mdurl": "*" } }, "node_modules/@mdit-vue/types": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@mdit-vue/types/-/types-2.0.0.tgz", - "integrity": "sha512-1BeEB+DbtmDMUAfvbNUj5Hso8cSl2sBVK2iTyOMAqhfDVLdh+/9+D0JmQHaCeUk/vuJoMhOwbweZvh55wHxm4w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@mdit-vue/types/-/types-2.1.0.tgz", + "integrity": "sha512-TMBB/BQWVvwtpBdWD75rkZx4ZphQ6MN0O4QB2Bc0oI5PC2uE57QerhNxdRZ7cvBHE2iY2C+BUNUziCfJbjIRRA==", "dev": true }, "node_modules/@nodelib/fs.scandir": { @@ -767,9 +837,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.0.tgz", - "integrity": "sha512-jwXtxYbRt1V+CdQSy6Z+uZti7JF5irRKF8hlKfEnF/xJpcNGuuiZMBvuoYM+x9sr9iWGnzrlM0+9hvQ1kgkf1w==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.14.3.tgz", + "integrity": "sha512-X9alQ3XM6I9IlSlmC8ddAvMSyG1WuHk5oUnXGw+yUBs3BFoTizmG1La/Gr8fVJvDWAq+zlYTZ9DBgrlKRVY06g==", "cpu": [ "arm" ], @@ -780,9 +850,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.0.tgz", - "integrity": "sha512-fI9nduZhCccjzlsA/OuAwtFGWocxA4gqXGTLvOyiF8d+8o0fZUeSztixkYjcGq1fGZY3Tkq4yRvHPFxU+jdZ9Q==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.14.3.tgz", + "integrity": "sha512-eQK5JIi+POhFpzk+LnjKIy4Ks+pwJ+NXmPxOCSvOKSNRPONzKuUvWE+P9JxGZVxrtzm6BAYMaL50FFuPe0oWMQ==", "cpu": [ "arm64" ], @@ -793,9 +863,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.0.tgz", - "integrity": "sha512-BcnSPRM76/cD2gQC+rQNGBN6GStBs2pl/FpweW8JYuz5J/IEa0Fr4AtrPv766DB/6b2MZ/AfSIOSGw3nEIP8SA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.14.3.tgz", + "integrity": "sha512-Od4vE6f6CTT53yM1jgcLqNfItTsLt5zE46fdPaEmeFHvPs5SjZYlLpHrSiHEKR1+HdRfxuzXHjDOIxQyC3ptBA==", "cpu": [ "arm64" ], @@ -806,9 +876,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.0.tgz", - "integrity": "sha512-LDyFB9GRolGN7XI6955aFeI3wCdCUszFWumWU0deHA8VpR3nWRrjG6GtGjBrQxQKFevnUTHKCfPR4IvrW3kCgQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.14.3.tgz", + "integrity": "sha512-0IMAO21axJeNIrvS9lSe/PGthc8ZUS+zC53O0VhF5gMxfmcKAP4ESkKOCwEi6u2asUrt4mQv2rjY8QseIEb1aw==", "cpu": [ "x64" ], @@ -819,9 +889,22 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.0.tgz", - "integrity": "sha512-ygrGVhQP47mRh0AAD0zl6QqCbNsf0eTo+vgwkY6LunBcg0f2Jv365GXlDUECIyoXp1kKwL5WW6rsO429DBY/bA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.14.3.tgz", + "integrity": "sha512-ge2DC7tHRHa3caVEoSbPRJpq7azhG+xYsd6u2MEnJ6XzPSzQsTKyXvh6iWjXRf7Rt9ykIUWHtl0Uz3T6yXPpKw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.14.3.tgz", + "integrity": "sha512-ljcuiDI4V3ySuc7eSk4lQ9wU8J8r8KrOUvB2U+TtK0TiW6OFDmJ+DdIjjwZHIw9CNxzbmXY39wwpzYuFDwNXuw==", "cpu": [ "arm" ], @@ -832,9 +915,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.0.tgz", - "integrity": "sha512-x+uJ6MAYRlHGe9wi4HQjxpaKHPM3d3JjqqCkeC5gpnnI6OWovLdXTpfa8trjxPLnWKyBsSi5kne+146GAxFt4A==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.14.3.tgz", + "integrity": "sha512-Eci2us9VTHm1eSyn5/eEpaC7eP/mp5n46gTRB3Aar3BgSvDQGJZuicyq6TsH4HngNBgVqC5sDYxOzTExSU+NjA==", "cpu": [ "arm64" ], @@ -845,9 +928,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.0.tgz", - "integrity": "sha512-nrRw8ZTQKg6+Lttwqo6a2VxR9tOroa2m91XbdQ2sUUzHoedXlsyvY1fN4xWdqz8PKmf4orDwejxXHjh7YBGUCA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.14.3.tgz", + "integrity": "sha512-UrBoMLCq4E92/LCqlh+blpqMz5h1tJttPIniwUgOFJyjWI1qrtrDhhpHPuFxULlUmjFHfloWdixtDhSxJt5iKw==", "cpu": [ "arm64" ], @@ -858,11 +941,11 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.0.tgz", - "integrity": "sha512-xV0d5jDb4aFu84XKr+lcUJ9y3qpIWhttO3Qev97z8DKLXR62LC3cXT/bMZXrjLF9X+P5oSmJTzAhqwUbY96PnA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.14.3.tgz", + "integrity": "sha512-5aRjvsS8q1nWN8AoRfrq5+9IflC3P1leMoy4r2WjXyFqf3qcqsxRCfxtZIV58tCxd+Yv7WELPcO9mY9aeQyAmw==", "cpu": [ - "ppc64le" + "ppc64" ], "dev": true, "optional": true, @@ -871,9 +954,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.0.tgz", - "integrity": "sha512-SDDhBQwZX6LPRoPYjAZWyL27LbcBo7WdBFWJi5PI9RPCzU8ijzkQn7tt8NXiXRiFMJCVpkuMkBf4OxSxVMizAw==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.14.3.tgz", + "integrity": "sha512-sk/Qh1j2/RJSX7FhEpJn8n0ndxy/uf0kI/9Zc4b1ELhqULVdTfN6HL31CDaTChiBAOgLcsJ1sgVZjWv8XNEsAQ==", "cpu": [ "riscv64" ], @@ -884,9 +967,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.0.tgz", - "integrity": "sha512-RxB/qez8zIDshNJDufYlTT0ZTVut5eCpAZ3bdXDU9yTxBzui3KhbGjROK2OYTTor7alM7XBhssgoO3CZ0XD3qA==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.14.3.tgz", + "integrity": "sha512-jOO/PEaDitOmY9TgkxF/TQIjXySQe5KVYB57H/8LRP/ux0ZoO8cSHCX17asMSv3ruwslXW/TLBcxyaUzGRHcqg==", "cpu": [ "s390x" ], @@ -897,9 +980,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.0.tgz", - "integrity": "sha512-C6y6z2eCNCfhZxT9u+jAM2Fup89ZjiG5pIzZIDycs1IwESviLxwkQcFRGLjnDrP+PT+v5i4YFvlcfAs+LnreXg==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.14.3.tgz", + "integrity": "sha512-8ybV4Xjy59xLMyWo3GCfEGqtKV5M5gCSrZlxkPGvEPCGDLNla7v48S662HSGwRd6/2cSneMQWiv+QzcttLrrOA==", "cpu": [ "x64" ], @@ -910,9 +993,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.0.tgz", - "integrity": "sha512-i0QwbHYfnOMYsBEyjxcwGu5SMIi9sImDVjDg087hpzXqhBSosxkE7gyIYFHgfFl4mr7RrXksIBZ4DoLoP4FhJg==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.14.3.tgz", + "integrity": "sha512-s+xf1I46trOY10OqAtZ5Rm6lzHre/UiLA1J2uOhCFXWkbZrJRkYBPO6FhvGfHmdtQ3Bx793MNa7LvoWFAm93bg==", "cpu": [ "x64" ], @@ -923,9 +1006,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.0.tgz", - "integrity": "sha512-Fq52EYb0riNHLBTAcL0cun+rRwyZ10S9vKzhGKKgeD+XbwunszSY0rVMco5KbOsTlwovP2rTOkiII/fQ4ih/zQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.14.3.tgz", + "integrity": "sha512-+4h2WrGOYsOumDQ5S2sYNyhVfrue+9tc9XcLWLh+Kw3UOxAvrfOrSMFon60KspcDdytkNDh7K2Vs6eMaYImAZg==", "cpu": [ "arm64" ], @@ -936,9 +1019,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.0.tgz", - "integrity": "sha512-e/PBHxPdJ00O9p5Ui43+vixSgVf4NlLsmV6QneGERJ3lnjIua/kim6PRFe3iDueT1rQcgSkYP8ZBBXa/h4iPvw==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.14.3.tgz", + "integrity": "sha512-T1l7y/bCeL/kUwh9OD4PQT4aM7Bq43vX05htPJJ46RTI4r5KNt6qJRzAfNfM+OYMNEVBWQzR2Gyk+FXLZfogGw==", "cpu": [ "ia32" ], @@ -949,9 +1032,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.0.tgz", - "integrity": "sha512-aGg7iToJjdklmxlUlJh/PaPNa4PmqHfyRMLunbL3eaMO0gp656+q1zOKkpJ/CVe9CryJv6tAN1HDoR8cNGzkag==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.14.3.tgz", + "integrity": "sha512-/BypzV0H1y1HzgYpxqRaXGBRqfodgoBBCcsrujT6QRcakDQdfU+Lq9PENPh5jB4I44YWq+0C2eHsHya+nZY1sA==", "cpu": [ "x64" ], @@ -1030,9 +1113,9 @@ } }, "node_modules/@types/markdown-it-emoji": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/markdown-it-emoji/-/markdown-it-emoji-2.0.4.tgz", - "integrity": "sha512-H6ulk/ZmbDxOayPwI/leJzrmoW1YKX1Z+MVSCHXuYhvqckV4I/c+hPTf6UiqJyn2avWugfj30XroheEb6/Ekqg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/markdown-it-emoji/-/markdown-it-emoji-2.0.5.tgz", + "integrity": "sha512-iJLsmCNpSWKtV6Ia3mLSjcXJPEt7ubGG342z+hGvYx++TpM19oTUrJcI7XjbOqRQ+W2UQ323E7B0eCLwlgT/9g==", "dev": true, "dependencies": { "@types/markdown-it": "*" @@ -1051,9 +1134,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.4.tgz", - "integrity": "sha512-E+Fa9z3wSQpzgYQdYmme5X3OTuejnnTx88A6p6vkkJosR3KBz+HpE3kqNm98VE6cfLFcISx7zW7MsJkH6KwbTw==", + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1257,9 +1340,9 @@ } }, "node_modules/@vuepress/helper": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/helper/-/helper-2.0.0-rc.23.tgz", - "integrity": "sha512-eVGjnvTEDdHC3/T9L5nG89+HlJx8BhmS8tE0YZUPUqxonZMp1kV/xO5XuNH0xkMIFubehtltUIk2QQ4vumUw3g==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/helper/-/helper-2.0.0-rc.24.tgz", + "integrity": "sha512-qXC+tXTKfZ7eJ+h3wYC/7Q903Tbqcz9Vqxku63R6pmcpbsRtt3l8XQRdJ/LMT5yX0wZln4Qzx1NY6S4psr0lzw==", "dev": true, "dependencies": { "@vue/shared": "^3.4.21", @@ -1310,12 +1393,12 @@ } }, "node_modules/@vuepress/plugin-back-to-top": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.23.tgz", - "integrity": "sha512-h9HRWIzWC+jYQp9A+wSdUV4LywMh/7DjPbBXL6EdEo3bAvA8j494D4XKm19P3C+pRVxMrn6jsjjxQegX1GYwxw==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-back-to-top/-/plugin-back-to-top-2.0.0-rc.24.tgz", + "integrity": "sha512-cU5KtsuqUBcDiNlAD+I2NaaEd7ZRDldWPggJMgE7VvhEQ8uJMOq4ogh2IabeqGZ26XiUYuGnNrp4JK5mDkQlvw==", "dev": true, "dependencies": { - "@vuepress/helper": "~2.0.0-rc.23", + "@vuepress/helper": "~2.0.0-rc.24", "@vueuse/core": "^10.9.0", "vue": "^3.4.21" }, @@ -1338,12 +1421,12 @@ } }, "node_modules/@vuepress/plugin-copy-code": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.23.tgz", - "integrity": "sha512-KBq394svgsqhQuQD/AXdZ3+ClBr5+t/VqF+bA/gUzEQASsw4WFIKJ9kOFZlp20vJZtSGT0faZ07Afv78nO60jw==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-copy-code/-/plugin-copy-code-2.0.0-rc.24.tgz", + "integrity": "sha512-anLxeQqTiU+LNdEBK7EUbeIcU0YEh6x9Bs9SQV4wrdFKjYc5x2U4Gf9l9NagOSf1e3c0QZRYL3wLQ5q3XZnGjA==", "dev": true, "dependencies": { - "@vuepress/helper": "~2.0.0-rc.23", + "@vuepress/helper": "~2.0.0-rc.24", "@vueuse/core": "^10.9.0", "vue": "^3.4.21" }, @@ -1352,14 +1435,15 @@ } }, "node_modules/@vuepress/plugin-docsearch": { - "version": "2.0.0-rc.21", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-docsearch/-/plugin-docsearch-2.0.0-rc.21.tgz", - "integrity": "sha512-ekbtJyqcnd+J00rb905B8/9KTa4isA+MIsy/r2N+a8Fn0v/GMnGVSseqJs8q74YmHlIx4GawDfKy7F84zxMfjA==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-docsearch/-/plugin-docsearch-2.0.0-rc.24.tgz", + "integrity": "sha512-RWJSzRu7+fCO3//rYGO3EBq3+MkrGRyZx0k8nV1CiubpTa0aYftxxYoZdQH4UJslTuKhNShlYsIzxYNMYAf7uw==", "dev": true, "dependencies": { "@docsearch/css": "^3.6.0", "@docsearch/js": "^3.6.0", "@docsearch/react": "^3.6.0", + "@vuepress/helper": "~2.0.0-rc.24", "@vueuse/core": "^10.9.0", "ts-debounce": "^4.0.0", "vue": "^3.4.21" @@ -1369,9 +1453,9 @@ } }, "node_modules/@vuepress/plugin-external-link-icon": { - "version": "2.0.0-rc.21", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-external-link-icon/-/plugin-external-link-icon-2.0.0-rc.21.tgz", - "integrity": "sha512-Wt7hjWpoUccJHj5KHK24Uks+6oWug6y5cw9QzWlNgiCyg+hvII7I+FdORRvibPUG2ndymi6ZOFyJZcR072kbKA==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-external-link-icon/-/plugin-external-link-icon-2.0.0-rc.24.tgz", + "integrity": "sha512-kry1EFkv6WaGOCzk9vRGHGcAuQHNVQ/jDEgtagUFaRk5+HtCQB60VzhmFdwM08DC2XAmDieBLm1MMR0T2DdHSw==", "dev": true, "dependencies": { "vue": "^3.4.21" @@ -1393,24 +1477,24 @@ } }, "node_modules/@vuepress/plugin-links-check": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.23.tgz", - "integrity": "sha512-FboVGBHuN0AGj3Gl4ylSxX55wQmr8Q8odVUbTfZdBuEV4KB1fUBBFO07UbfmSc0itt05WLpvUUFa5vfyujm/rg==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-links-check/-/plugin-links-check-2.0.0-rc.24.tgz", + "integrity": "sha512-+HPIutNZhMP2eSf1Gb217WLCQlQhsMkebTfuZYyDSGGvY5TQmXOAuu/X7Xwh1lJlml9asPUXTcFe2cZcEtHHIA==", "dev": true, "dependencies": { - "@vuepress/helper": "~2.0.0-rc.23" + "@vuepress/helper": "~2.0.0-rc.24" }, "peerDependencies": { "vuepress": "2.0.0-rc.9" } }, "node_modules/@vuepress/plugin-medium-zoom": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.23.tgz", - "integrity": "sha512-WdvsPolNMOS9RoKBMCjK/aZO8SVo2FFLzH1YrP3yiaOF5oPUAMtboEB2byhnXHIiAIHOSXg3kWc8Z0oFFBGOCQ==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-medium-zoom/-/plugin-medium-zoom-2.0.0-rc.24.tgz", + "integrity": "sha512-ic9C8VVJGb+II+tcGyu2ihCDmyCgH8WJwSsQaLjYsAQPbgoJXbN4tbflmmx9nN3y44o75UHwPkUh/2k9pDMGgA==", "dev": true, "dependencies": { - "@vuepress/helper": "~2.0.0-rc.23", + "@vuepress/helper": "~2.0.0-rc.24", "medium-zoom": "^1.1.0", "vue": "^3.4.21" }, @@ -1455,24 +1539,24 @@ } }, "node_modules/@vuepress/plugin-seo": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.23.tgz", - "integrity": "sha512-CfMVp4njYOyrlOvFZye/RM8nbB6AKF8H35SNYHI17NtZVCefgq/zqu+jDZ8ZS4LbneAHnbpjDj32PDIKF+6Rzg==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-seo/-/plugin-seo-2.0.0-rc.24.tgz", + "integrity": "sha512-E0dRCNqV6RLoVV4j8xchmlsnlR7OyPQxWmWrk20mBiyluRI05OXdb20ZQbYJe3PfK8f8DnyETzob943HBg3sVA==", "dev": true, "dependencies": { - "@vuepress/helper": "~2.0.0-rc.23" + "@vuepress/helper": "~2.0.0-rc.24" }, "peerDependencies": { "vuepress": "2.0.0-rc.9" } }, "node_modules/@vuepress/plugin-sitemap": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.23.tgz", - "integrity": "sha512-fWTF7SlZ07hfvJngnMk7wr4dtFprQaPnIloVCL3Ax2HlVk+Pwr5UUf1ovm/pEsCb3rYZ4+6mlpZQ+BG0kVoOAA==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/plugin-sitemap/-/plugin-sitemap-2.0.0-rc.24.tgz", + "integrity": "sha512-su5ZD8vGuNpbqmb+uCOzWXCZ0eii8wnkdhn4V1xtmmXsrmYDr0FFHp61Ebb6EYAquB3HH1v3hWdfLRMU9DM6VQ==", "dev": true, "dependencies": { - "@vuepress/helper": "~2.0.0-rc.23", + "@vuepress/helper": "~2.0.0-rc.24", "sitemap": "^7.1.1" }, "peerDependencies": { @@ -1502,28 +1586,28 @@ } }, "node_modules/@vuepress/theme-default": { - "version": "2.0.0-rc.23", - "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-rc.23.tgz", - "integrity": "sha512-Z/KuxVMyCBVyUOjPbwhB9aQ4pdt1f196sA0Wlyv+TlfpEoPvAQl/ksa2hJ3eI7vZFtLgSbi7yiQAUGHpopLl8g==", + "version": "2.0.0-rc.24", + "resolved": "https://registry.npmjs.org/@vuepress/theme-default/-/theme-default-2.0.0-rc.24.tgz", + "integrity": "sha512-jzFIV4DnaRcew7iZUf7fvKoJ4dV2QKVkcCK6jwTCEzjO/XaPZD+yl9mUWoLKTM3NYgZx28RdBfcH6im/oC5eMQ==", "dev": true, "dependencies": { - "@vuepress/helper": "~2.0.0-rc.23", + "@vuepress/helper": "~2.0.0-rc.24", "@vuepress/plugin-active-header-links": "~2.0.0-rc.21", - "@vuepress/plugin-back-to-top": "~2.0.0-rc.23", + "@vuepress/plugin-back-to-top": "~2.0.0-rc.24", "@vuepress/plugin-container": "~2.0.0-rc.21", - "@vuepress/plugin-copy-code": "~2.0.0-rc.23", - "@vuepress/plugin-external-link-icon": "~2.0.0-rc.21", + "@vuepress/plugin-copy-code": "~2.0.0-rc.24", + "@vuepress/plugin-external-link-icon": "~2.0.0-rc.24", "@vuepress/plugin-git": "~2.0.0-rc.22", - "@vuepress/plugin-links-check": "~2.0.0-rc.23", - "@vuepress/plugin-medium-zoom": "~2.0.0-rc.23", + "@vuepress/plugin-links-check": "~2.0.0-rc.24", + "@vuepress/plugin-medium-zoom": "~2.0.0-rc.24", "@vuepress/plugin-nprogress": "~2.0.0-rc.21", "@vuepress/plugin-palette": "~2.0.0-rc.21", "@vuepress/plugin-prismjs": "~2.0.0-rc.21", - "@vuepress/plugin-seo": "~2.0.0-rc.23", - "@vuepress/plugin-sitemap": "~2.0.0-rc.23", + "@vuepress/plugin-seo": "~2.0.0-rc.24", + "@vuepress/plugin-sitemap": "~2.0.0-rc.24", "@vuepress/plugin-theme-data": "~2.0.0-rc.21", "@vueuse/core": "^10.9.0", - "sass": "^1.72.0", + "sass": "^1.74.1", "vue": "^3.4.21" }, "peerDependencies": { @@ -1644,26 +1728,26 @@ } }, "node_modules/algoliasearch": { - "version": "4.23.2", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.2.tgz", - "integrity": "sha512-8aCl055IsokLuPU8BzLjwzXjb7ty9TPcUFFOk0pYOwsE5DMVhE3kwCMFtsCFKcnoPZK7oObm+H5mbnSO/9ioxQ==", - "dev": true, - "dependencies": { - "@algolia/cache-browser-local-storage": "4.23.2", - "@algolia/cache-common": "4.23.2", - "@algolia/cache-in-memory": "4.23.2", - "@algolia/client-account": "4.23.2", - "@algolia/client-analytics": "4.23.2", - "@algolia/client-common": "4.23.2", - "@algolia/client-personalization": "4.23.2", - "@algolia/client-search": "4.23.2", - "@algolia/logger-common": "4.23.2", - "@algolia/logger-console": "4.23.2", - "@algolia/recommend": "4.23.2", - "@algolia/requester-browser-xhr": "4.23.2", - "@algolia/requester-common": "4.23.2", - "@algolia/requester-node-http": "4.23.2", - "@algolia/transporter": "4.23.2" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.3.tgz", + "integrity": "sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==", + "dev": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-account": "4.23.3", + "@algolia/client-analytics": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-personalization": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/recommend": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/ansi-regex": { @@ -1815,9 +1899,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001605", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", - "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", + "version": "1.0.30001610", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001610.tgz", + "integrity": "sha512-QFutAY4NgaelojVMjY63o6XlZyORPaLfyMnsl3HgnWdJUcX6K0oaJymHjH8PT5Gk7sTm8rvC/c5COUQKXqmOMA==", "dev": true, "funding": [ { @@ -2065,9 +2149,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.726", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.726.tgz", - "integrity": "sha512-xtjfBXn53RORwkbyKvDfTajtnTp0OJoPOIBzXvkNbb7+YYvCHJflba3L7Txyx/6Fov3ov2bGPr/n5MTixmPhdQ==", + "version": "1.4.736", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.736.tgz", + "integrity": "sha512-Rer6wc3ynLelKNM4lOCg7/zPQj8tPOCB2hzD32PX9wd3hgRRi9MxEbmkFCokzcEhRVMiOVLjnL9ig9cefJ+6+Q==", "dev": true }, "node_modules/emoji-regex": { @@ -2089,9 +2173,9 @@ } }, "node_modules/envinfo": { - "version": "7.11.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.1.tgz", - "integrity": "sha512-8PiZgZNIB4q/Lw4AhOvAfB/ityHAd2bli3lESSWmWSzSsl5dKpy5N1d1Rfkd2teq/g9xN90lc6o98DOjMeYHpg==", + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.12.0.tgz", + "integrity": "sha512-Iw9rQJBGpJRd3rwXm9ft/JiGoAZmLxxJZELYDQoPRZ4USVhkKtIcNBPw6U+/K2mBpaqM25JSV6Yl4Az9vO2wJg==", "dev": true, "bin": { "envinfo": "dist/cli.js" @@ -2955,9 +3039,9 @@ "dev": true }, "node_modules/preact": { - "version": "10.20.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.20.1.tgz", - "integrity": "sha512-JIFjgFg9B2qnOoGiYMVBtrcFxHqn+dNXbq76bVmcaHYJFYR4lW67AOcXgAYQQTDYXDOg/kTZrKPNCdRgJ2UJmw==", + "version": "10.20.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.20.2.tgz", + "integrity": "sha512-S1d1ernz3KQ+Y2awUxKakpfOg2CEmJmwOP+6igPx6dgr6pgDvenqYviyokWso2rhHvGtTlWWnJDa7RaPbQerTg==", "dev": true, "funding": { "type": "opencollective", @@ -3071,9 +3155,9 @@ } }, "node_modules/rollup": { - "version": "4.14.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.0.tgz", - "integrity": "sha512-Qe7w62TyawbDzB4yt32R0+AbIo6m1/sqO7UPzFS8Z/ksL5mrfhA0v4CavfdmFav3D+ub4QeAgsGEe84DoWe/nQ==", + "version": "4.14.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.14.3.tgz", + "integrity": "sha512-ag5tTQKYsj1bhrFC9+OEWqb5O6VYgtQDO9hPDBMmIbePwhfSr+ExlcU741t8Dhw5DkPCQf6noz0jb36D6W9/hw==", "dev": true, "dependencies": { "@types/estree": "1.0.5" @@ -3086,21 +3170,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.14.0", - "@rollup/rollup-android-arm64": "4.14.0", - "@rollup/rollup-darwin-arm64": "4.14.0", - "@rollup/rollup-darwin-x64": "4.14.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.14.0", - "@rollup/rollup-linux-arm64-gnu": "4.14.0", - "@rollup/rollup-linux-arm64-musl": "4.14.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.14.0", - "@rollup/rollup-linux-riscv64-gnu": "4.14.0", - "@rollup/rollup-linux-s390x-gnu": "4.14.0", - "@rollup/rollup-linux-x64-gnu": "4.14.0", - "@rollup/rollup-linux-x64-musl": "4.14.0", - "@rollup/rollup-win32-arm64-msvc": "4.14.0", - "@rollup/rollup-win32-ia32-msvc": "4.14.0", - "@rollup/rollup-win32-x64-msvc": "4.14.0", + "@rollup/rollup-android-arm-eabi": "4.14.3", + "@rollup/rollup-android-arm64": "4.14.3", + "@rollup/rollup-darwin-arm64": "4.14.3", + "@rollup/rollup-darwin-x64": "4.14.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.14.3", + "@rollup/rollup-linux-arm-musleabihf": "4.14.3", + "@rollup/rollup-linux-arm64-gnu": "4.14.3", + "@rollup/rollup-linux-arm64-musl": "4.14.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.14.3", + "@rollup/rollup-linux-riscv64-gnu": "4.14.3", + "@rollup/rollup-linux-s390x-gnu": "4.14.3", + "@rollup/rollup-linux-x64-gnu": "4.14.3", + "@rollup/rollup-linux-x64-musl": "4.14.3", + "@rollup/rollup-win32-arm64-msvc": "4.14.3", + "@rollup/rollup-win32-ia32-msvc": "4.14.3", + "@rollup/rollup-win32-x64-msvc": "4.14.3", "fsevents": "~2.3.2" } }, @@ -3128,9 +3213,9 @@ } }, "node_modules/sass": { - "version": "1.74.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.74.1.tgz", - "integrity": "sha512-w0Z9p/rWZWelb88ISOLyvqTWGmtmu2QJICqDBGyNnfG4OUnPX9BBjjYIXUpXCMOOg5MQWNpqzt876la1fsTvUA==", + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.75.0.tgz", + "integrity": "sha512-ShMYi3WkrDWxExyxSZPst4/okE9ts46xZmJDSawJQrnte7M1V9fScVB+uNXOVKRBt0PggHOwoZcn8mYX4trnBw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/docs/package.json b/docs/package.json index 65999ab2..4911a85a 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "docs", - "version": "1.3.0", + "version": "1.4.0", "description": "Documentation for Seedlingo.", "main": "index.js", "author": "toshify <4579559+toshify@users.noreply.github.com>", @@ -18,16 +18,16 @@ }, "homepage": "https://github.com/nodepa/seedlingo#readme", "volta": { - "node": "20.11.1", - "npm": "10.4.0" + "node": "20.12.2", + "npm": "10.5.2" }, "devDependencies": { "@vuepress/bundler-vite": "^2.0.0-rc.9", "@vuepress/client": "^2.0.0-rc.9", - "@vuepress/plugin-docsearch": "^2.0.0-rc.21", - "@vuepress/plugin-seo": "^2.0.0-rc.23", - "@vuepress/plugin-sitemap": "^2.0.0-rc.23", - "@vuepress/theme-default": "^2.0.0-rc.23", + "@vuepress/plugin-docsearch": "^2.0.0-rc.24", + "@vuepress/plugin-seo": "^2.0.0-rc.24", + "@vuepress/plugin-sitemap": "^2.0.0-rc.24", + "@vuepress/theme-default": "^2.0.0-rc.24", "vuepress": "^2.0.0-rc.9" }, "scripts": {