This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch HDDS-9225-website-v2
in repository https://gitbox.apache.org/repos/asf/ozone-site.git


The following commit(s) were added to refs/heads/HDDS-9225-website-v2 by this 
push:
     new 37a3cfa0 HDDS-9866. Add GitHub Actions checks for consistent 
Docusaurus formatting. (#84)
37a3cfa0 is described below

commit 37a3cfa0e14404a356e29920688a441a61da4203
Author: Ethan Rose <[email protected]>
AuthorDate: Thu Mar 7 11:54:04 2024 -0800

    HDDS-9866. Add GitHub Actions checks for consistent Docusaurus formatting. 
(#84)
    
    See:
    - https://docusaurus.io/docs/markdown-features#front-matter
    - https://ajv.js.org/guide/getting-started.html#basic-data-validation
---
 .github/resource/category.schema.json              | 17 +++++++
 .github/resource/frontmatter.schema.json           | 23 +++++++++
 .github/scripts/sidebar.sh                         | 48 ++++++++++++++++++
 .github/workflows/static.yml                       | 19 +++++++
 CONTRIBUTING.md                                    |  6 +--
 cspell.yaml                                        |  1 -
 .../02-data-operations/04-hsync.md                 |  4 +-
 .../07-features/05-ratis-streaming.md              |  4 +-
 docusaurus.config.js                               | 27 ++++++++++
 package.json                                       |  4 +-
 pnpm-lock.yaml                                     | 58 +++++++++++++++-------
 11 files changed, 185 insertions(+), 26 deletions(-)

diff --git a/.github/resource/category.schema.json 
b/.github/resource/category.schema.json
new file mode 100644
index 00000000..afa67b90
--- /dev/null
+++ b/.github/resource/category.schema.json
@@ -0,0 +1,17 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#";,
+  "$id": "https://ozone.apache.org/category.schema.json";,
+  "title": "Category",
+  "description": "Validates an allowed subset of keys in Docusaurus 
_category_.yml files.",
+  "type": "object",
+  "properties": {
+    "label": {
+      "description": "The name of this section shown in the docs sidebar.",
+      "type": "string"
+    }
+  },
+  "required": [
+    "label"
+  ],
+  "additionalProperties": false
+}
diff --git a/.github/resource/frontmatter.schema.json 
b/.github/resource/frontmatter.schema.json
new file mode 100644
index 00000000..b6955c08
--- /dev/null
+++ b/.github/resource/frontmatter.schema.json
@@ -0,0 +1,23 @@
+{
+  "$schema": "http://json-schema.org/draft-07/schema#";,
+  "$id": "https://ozone.apache.org/frontmatter.schema.json";,
+  "title": "Frontmatter",
+  "description": "Validates an allowed subset of Docusaurus docs frontmatter.",
+  "type": [ "object", "null" ],
+  "properties": {
+    "sidebar_label": {
+      "type": "string"
+    },
+    "slug": {
+      "description": "Only use slug to specify the base URL for 
documentation.",
+      "type": "string",
+      "enum": [ "/" ]
+    },
+    "draft": {
+      "description": "Makes pages for incomplete features only visible in 
development mode.",
+      "type": "boolean"
+    }
+  },
+  "additionalProperties": false
+}
+
diff --git a/.github/scripts/sidebar.sh b/.github/scripts/sidebar.sh
new file mode 100755
index 00000000..6b270946
--- /dev/null
+++ b/.github/scripts/sidebar.sh
@@ -0,0 +1,48 @@
+#!/usr/bin/env sh
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# Validates docusaurus _category_.yml files used to configure the docs sidebar.
+# Each docs subdirectory should have a _category_.yml file, and it must follow 
the defined schema.
+# The schema is more restrictive than what Docusaurus allows, and can be used 
to disallow keys or require all category
+# files to define the same keys.
+
+rc=0
+
+root="$(git rev-parse --show-toplevel)"
+schema="$root"/.github/resource/category.schema.json
+
+# Make sure all docs directories have a category sidebar file.
+for child in $(find "$root"/docs/*); do
+    if [ -d "$child" ]; then
+        category_file="$child/_category_.yml"
+        if [ ! -f "$category_file" ]; then
+            echo "_category_.yml is required for docs subdirectory $child" 1>&2
+            rc=1
+        fi
+    fi
+done
+
+[ "$rc" = 0 ] || exit $rc
+
+# If all category files are present, make sure they follow the schema.
+if ! pnpm ajv validate -s "$schema" -d "$root/docs/**/_category_.yml" 
1>/dev/null; then
+    rc=1
+    echo "Sidebar configuration validation failed against JSON schema $schema" 
1>&2
+fi
+
+exit "$rc"
diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml
index 7cc1e834..5f972c71 100644
--- a/.github/workflows/static.yml
+++ b/.github/workflows/static.yml
@@ -83,3 +83,22 @@ jobs:
       working-directory: ${{ env.script_dir }}
       run: |
         ./markdownlint.sh
+  check-sidebar:
+    runs-on: ubuntu-latest
+    steps:
+    - name: Checkout project
+      uses: actions/checkout@v4
+    - name: Enable corepack
+      run: |
+        corepack enable
+    - name: Use Node.js ${{ env.node_version }}
+      uses: actions/setup-node@v4
+      with:
+        node-version: ${{ env.node_version }}
+        cache: pnpm
+    - name: Install pnpm dependencies
+      run: pnpm install --dev
+    - name: Run docs sidebar check
+      working-directory: ${{ env.script_dir }}
+      run: |
+        ./sidebar.sh
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 7211f18a..9c2f1e2b 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -100,7 +100,7 @@ Docusaurus provides many options for laying out 
documentation pages and their me
 
 - File names and therefore generated URLs should all be `kebab-case`.
 
-- Let Docusaurus automatically generate the page's title from its top level 
markdown heading instead of using `title` in the frontmatter. This is different 
from the sidebar label or URL slug.
+- Let Docusaurus automatically generate the page's title from its top level 
markdown heading instead of using `title` in the front matter. This is 
different from the sidebar label or URL slug.
 
 - Use relative file paths for all links between pages.
   - This keeps page links pointing to the current version of the documentation.
@@ -129,7 +129,7 @@ Docusaurus provides many options for laying out 
documentation pages and their me
           Object Store Bucket Layout
   ```
 
-  - Sidebar labels are automatically generated from page titles. To use a 
different sidebar label, use the `sidebar_label` property in the page's 
frontmatter.
+  - Sidebar labels are automatically generated from page titles. To use a 
different sidebar label, use the `sidebar_label` property in the page's front 
matter.
 
 - Don't rely on Ozone specific acronyms in the sidebar. This makes docs 
navigation more beginner friendly.
   - For example, the pages on bucket layouts may be organized as:
@@ -178,7 +178,7 @@ The file names and content of all markdown pages are 
checked for spelling mistak
 
 - Option 1: If the word is relevant for the whole Ozone project, add it to the 
`words` list in *cspell.yaml* so that it is considered valid.
 
-- Option 2: If the word is only relevant for one specific page, add an [inline 
directive](https://cspell.org/configuration/document-settings/) as a comment in 
the markdown frontmatter of that page only.
+- Option 2: If the word is only relevant for one specific page, add an [inline 
directive](https://cspell.org/configuration/document-settings/) as a comment in 
the markdown front matter of that page only.
 
 ### Updating Graphics
 
diff --git a/cspell.yaml b/cspell.yaml
index 98e17654..2d7b30c8 100644
--- a/cspell.yaml
+++ b/cspell.yaml
@@ -78,7 +78,6 @@ words:
 - gpg
 - sed
 - mds
-- frontmatter
 - javadoc
 # Misc words
 - acking
diff --git a/docs/07-system-internals/02-data-operations/04-hsync.md 
b/docs/07-system-internals/02-data-operations/04-hsync.md
index 0321e317..f561324e 100644
--- a/docs/07-system-internals/02-data-operations/04-hsync.md
+++ b/docs/07-system-internals/02-data-operations/04-hsync.md
@@ -1,6 +1,6 @@
 ---
-# Page is accessible by direct link only in production site builds. It can be 
included in the sidebar when the feature is complete.
-unlisted: true
+# Page is available only in the development server. It can be included in 
production builds when the feature is complete.
+draft: true
 sidebar_label: HFlush and HSync
 ---
 
diff --git a/docs/07-system-internals/07-features/05-ratis-streaming.md 
b/docs/07-system-internals/07-features/05-ratis-streaming.md
index d789ec6c..1c898519 100644
--- a/docs/07-system-internals/07-features/05-ratis-streaming.md
+++ b/docs/07-system-internals/07-features/05-ratis-streaming.md
@@ -1,6 +1,6 @@
 ---
-# Page is accessible by direct link only in production site builds. It can be 
included in the sidebar when the feature is complete.
-unlisted: true
+# Page is available only in the development server. It can be included in 
production builds when the feature is complete.
+draft: true
 sidebar_label: Ratis Streaming
 ---
 
diff --git a/docusaurus.config.js b/docusaurus.config.js
index c7b2f5e8..dd1d6063 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -1,6 +1,8 @@
 // @ts-check
 // Note: type annotations allow type checking and IDEs autocompletion
 
+import Ajv from 'ajv';
+
 const {themes} = require('prism-react-renderer');
 const lightCodeTheme = themes.github;
 const darkCodeTheme = themes.dracula;
@@ -34,6 +36,31 @@ const config = {
     locales: ['en'],
   },
 
+  markdown: {
+    // Validate markdown frontmatter against a more restrictive schema than 
what Docusaurus allows.
+    // This ensures all pages are using a minimal set of consistent keys.
+    // It can also be used to require all pages to define certain markdown 
front matter keys.
+    parseFrontMatter: async (params) => {
+      // Reuse the default parser.
+      const result = await params.defaultParseFrontMatter(params);
+
+      // Validate front matter against the schema.
+      const schemaPath = './.github/resource/frontmatter.schema.json';
+      const frontMatterSchema = require(schemaPath);
+      const ajv = new Ajv();
+      const validate = ajv.compile(frontMatterSchema);
+      const isValid = validate(result.frontMatter);
+
+      if (!isValid) {
+        console.error('Front matter validation error in', params.filePath + 
':\n', validate.errors);
+        console.error('Front matter validation failed against JSON schema', 
schemaPath);
+        process.exit(1);
+      }
+
+      return result;
+    },
+  },
+
   presets: [
     [
       'classic',
diff --git a/package.json b/package.json
index 909eaaec..4ecc7fb7 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,8 @@
     "clsx": "^2.1.0",
     "prism-react-renderer": "^2.3.1",
     "react": "^18.2.0",
-    "react-dom": "^18.2.0"
+    "react-dom": "^18.2.0",
+    "ajv": "^8.12.0"
   },
   "devDependencies": {
     "@docusaurus/module-type-aliases": "3.1.1",
@@ -30,6 +31,7 @@
     "@cspell/dict-java": "^5.0.6",
     "@cspell/dict-markdown": "^2.0.1",
     "@cspell/dict-shell": "^1.0.6",
+    "ajv-cli": "^5.0.0",
     "markdownlint-cli": "^0.39.0"
   },
   "browserslist": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ff3c22de..e119b883 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -14,6 +14,9 @@ dependencies:
   '@mdx-js/react':
     specifier: ^3.0.0
     version: 3.0.0(@types/[email protected])([email protected])
+  ajv:
+    specifier: ^8.12.0
+    version: 8.12.0
   clsx:
     specifier: ^2.1.0
     version: 2.1.0
@@ -43,6 +46,9 @@ devDependencies:
   '@docusaurus/module-type-aliases':
     specifier: 3.1.1
     version: 3.1.1([email protected])([email protected])
+  ajv-cli:
+    specifier: ^5.0.0
+    version: 5.0.0
   cspell:
     specifier: ^8.2.1
     version: 8.4.1
@@ -3404,6 +3410,24 @@ packages:
       indent-string: 4.0.0
     dev: false
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-LY4m6dUv44HTyhV+u2z5uX4EhPYTM38Iv1jdgDJJJCyOOuqB8KtZEGjPZ2T+sh5ZIJrXUfgErYx/j3gLd3+PlQ==}
+    hasBin: true
+    peerDependencies:
+      ts-node: '>=9.0.0'
+    peerDependenciesMeta:
+      ts-node:
+        optional: true
+    dependencies:
+      ajv: 8.12.0
+      fast-json-patch: 2.2.1
+      glob: 7.2.3
+      js-yaml: 3.14.1
+      json-schema-migrate: 2.0.0
+      json5: 2.2.3
+      minimist: 1.2.8
+    dev: true
+
   /[email protected]([email protected]):
     resolution: {integrity: 
sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==}
     peerDependencies:
@@ -3446,7 +3470,6 @@ packages:
       json-schema-traverse: 1.0.0
       require-from-string: 2.0.2
       uri-js: 4.4.1
-    dev: false
 
   /[email protected]([email protected]):
     resolution: {integrity: 
sha512-Yl/Gu5Cq4Z5s/AJ0jR37OPI1H3+z7PHz657ibyaXgMOaWvPlZ3OACN13N+7HCLPUlB0BN+8BtmrG/CqTilowBA==}
@@ -3529,7 +3552,6 @@ packages:
     resolution: {integrity: 
sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
     dependencies:
       sprintf-js: 1.0.3
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@@ -3710,7 +3732,6 @@ packages:
     dependencies:
       balanced-match: 1.0.2
       concat-map: 0.0.1
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
@@ -4058,7 +4079,6 @@ packages:
 
   /[email protected]:
     resolution: {integrity: 
sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
@@ -4985,6 +5005,10 @@ packages:
   /[email protected]:
     resolution: {integrity: 
sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
 
@@ -5003,6 +5027,13 @@ packages:
       merge2: 1.4.1
       micromatch: 4.0.5
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-4j5uBaTnsYAV5ebkidvxiLUYOwjQ+JSFljeqfTxCrH9bDmlCQaOJFS84oDJ2rAXZq2yskmk3ORfoP9DCwqFNig==}
+    engines: {node: '>= 0.4.0'}
+    dependencies:
+      fast-deep-equal: 2.0.1
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
 
@@ -5232,7 +5263,6 @@ packages:
 
   /[email protected]:
     resolution: {integrity: 
sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
@@ -5320,7 +5350,6 @@ packages:
       minimatch: 3.1.2
       once: 1.4.0
       path-is-absolute: 1.0.1
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
@@ -5837,7 +5866,6 @@ packages:
     dependencies:
       once: 1.4.0
       wrappy: 1.0.2
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
@@ -5845,7 +5873,6 @@ packages:
 
   /[email protected]:
     resolution: {integrity: 
sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
@@ -6119,7 +6146,6 @@ packages:
     dependencies:
       argparse: 1.0.10
       esprima: 4.0.1
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
@@ -6144,18 +6170,22 @@ packages:
   /[email protected]:
     resolution: {integrity: 
sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-r38SVTtojDRp4eD6WsCqiE0eNDt4v1WalBXb9cyZYw9ai5cGtBwzRNWjHzJl38w6TxFkXAIA7h+fyX3tnrAFhQ==}
+    dependencies:
+      ajv: 8.12.0
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
 
   /[email protected]:
     resolution: {integrity: 
sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
     engines: {node: '>=6'}
     hasBin: true
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
@@ -7026,7 +7056,6 @@ packages:
     resolution: {integrity: 
sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
     dependencies:
       brace-expansion: 1.1.11
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
@@ -7186,7 +7215,6 @@ packages:
     resolution: {integrity: 
sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
     dependencies:
       wrappy: 1.0.2
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
@@ -7375,7 +7403,6 @@ packages:
   /[email protected]:
     resolution: {integrity: 
sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
     engines: {node: '>=0.10.0'}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==}
@@ -8359,7 +8386,6 @@ packages:
   /[email protected]:
     resolution: {integrity: 
sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
     engines: {node: '>=0.10.0'}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==}
@@ -8793,7 +8819,6 @@ packages:
 
   /[email protected]:
     resolution: {integrity: 
sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==}
@@ -9512,7 +9537,6 @@ packages:
 
   /[email protected]:
     resolution: {integrity: 
sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
-    dev: false
 
   /[email protected]:
     resolution: {integrity: 
sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to