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

xuanwo pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/opendal.git


The following commit(s) were added to refs/heads/main by this push:
     new 0da2ed451 docs(bindings/nodejs): fix broken links (#6017)
0da2ed451 is described below

commit 0da2ed451082a4ccf59861b2e4ab729d0fa91ec9
Author: miro <[email protected]>
AuthorDate: Mon Apr 14 18:37:58 2025 +0800

    docs(bindings/nodejs): fix broken links (#6017)
    
    * docs(bindings/nodejs): fix broken links
    
    * fix: fmt
    
    * fix: ci
    
    * fix: refactor header.js to use ES modules
    
    * fix: refactor index.js to use ES modules
---
 bindings/nodejs/index.js            |   4 +-
 bindings/nodejs/package.json        |   3 +-
 bindings/nodejs/pnpm-lock.yaml      | 240 +++++++++++++++++++++++-------------
 bindings/nodejs/scripts/header.js   |   8 +-
 bindings/nodejs/theme/index.tsx     |  39 +++---
 bindings/nodejs/tsconfig.theme.json |   5 +-
 bindings/nodejs/typedoc.json        |   1 +
 7 files changed, 179 insertions(+), 121 deletions(-)

diff --git a/bindings/nodejs/index.js b/bindings/nodejs/index.js
index 22ef628e0..1ec1e675d 100644
--- a/bindings/nodejs/index.js
+++ b/bindings/nodejs/index.js
@@ -19,7 +19,7 @@
 
 /// <reference types="node" />
 
-const { Writable, Readable } = require('node:stream')
+import { Writable, Readable } from 'node:stream'
 
 class ReadStream extends Readable {
   constructor(reader, options) {
@@ -119,7 +119,7 @@ class BlockingWriteStream extends Writable {
   }
 }
 
-const { Operator, RetryLayer, BlockingReader, Reader, BlockingWriter, Writer } 
= require('./generated.js')
+import { Operator, RetryLayer, BlockingReader, Reader, BlockingWriter, Writer 
} from './generated.js'
 
 BlockingReader.prototype.createReadStream = function (options) {
   return new BlockingReadStream(this, options)
diff --git a/bindings/nodejs/package.json b/bindings/nodejs/package.json
index 9fc428e58..0a45b9fde 100644
--- a/bindings/nodejs/package.json
+++ b/bindings/nodejs/package.json
@@ -3,6 +3,7 @@
   "author": "Apache OpenDAL <[email protected]>",
   "version": "0.48.0",
   "license": "Apache-2.0",
+  "type": "module",
   "main": "index.js",
   "types": "index.d.ts",
   "description": "Apache OpenDAL: Access data freely",
@@ -56,7 +57,7 @@
     "benny": "^3.7.1",
     "dotenv": "^16.0.3",
     "prettier": "^2.8.4",
-    "typedoc": "^0.25",
+    "typedoc": "^0.28",
     "typescript": "^5.0.2",
     "vitest": "^3.0.8"
   },
diff --git a/bindings/nodejs/pnpm-lock.yaml b/bindings/nodejs/pnpm-lock.yaml
index 3f03b5542..a93e31ec2 100644
--- a/bindings/nodejs/pnpm-lock.yaml
+++ b/bindings/nodejs/pnpm-lock.yaml
@@ -33,8 +33,8 @@ devDependencies:
     specifier: ^2.8.4
     version: 2.8.8
   typedoc:
-    specifier: ^0.25
-    version: 0.25.4([email protected])
+    specifier: ^0.28
+    version: 0.28.2([email protected])
   typescript:
     specifier: ^5.0.2
     version: 5.3.3
@@ -660,7 +660,7 @@ packages:
     dev: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==}
+    resolution: {integrity: 
sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA==,
 tarball: 
https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [android]
@@ -669,7 +669,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==}
+    resolution: {integrity: 
sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA==,
 tarball: 
https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [arm]
     os: [android]
@@ -678,7 +678,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==}
+    resolution: {integrity: 
sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A==,
 tarball: 
https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [android]
@@ -687,7 +687,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==}
+    resolution: {integrity: 
sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw==,
 tarball: 
https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [darwin]
@@ -696,7 +696,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==}
+    resolution: {integrity: 
sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q==,
 tarball: 
https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [darwin]
@@ -705,7 +705,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==}
+    resolution: {integrity: 
sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw==,
 tarball: 
https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [freebsd]
@@ -714,7 +714,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==}
+    resolution: {integrity: 
sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg==,
 tarball: 
https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [freebsd]
@@ -723,7 +723,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==}
+    resolution: {integrity: 
sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ==,
 tarball: 
https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [linux]
@@ -732,7 +732,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==}
+    resolution: {integrity: 
sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ==,
 tarball: https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [arm]
     os: [linux]
@@ -741,7 +741,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==}
+    resolution: {integrity: 
sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ==,
 tarball: 
https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [ia32]
     os: [linux]
@@ -750,7 +750,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==}
+    resolution: {integrity: 
sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ==,
 tarball: 
https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [loong64]
     os: [linux]
@@ -759,7 +759,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==}
+    resolution: {integrity: 
sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q==,
 tarball: 
https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [mips64el]
     os: [linux]
@@ -768,7 +768,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==}
+    resolution: {integrity: 
sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg==,
 tarball: 
https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [ppc64]
     os: [linux]
@@ -777,7 +777,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==}
+    resolution: {integrity: 
sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg==,
 tarball: 
https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [riscv64]
     os: [linux]
@@ -786,7 +786,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==}
+    resolution: {integrity: 
sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg==,
 tarball: 
https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [s390x]
     os: [linux]
@@ -795,7 +795,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==}
+    resolution: {integrity: 
sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg==,
 tarball: https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [linux]
@@ -804,7 +804,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==}
+    resolution: {integrity: 
sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw==,
 tarball: 
https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [netbsd]
@@ -813,7 +813,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==}
+    resolution: {integrity: 
sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ==,
 tarball: 
https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [openbsd]
@@ -822,7 +822,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==}
+    resolution: {integrity: 
sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w==,
 tarball: https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [sunos]
@@ -831,7 +831,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==}
+    resolution: {integrity: 
sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg==,
 tarball: 
https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [arm64]
     os: [win32]
@@ -840,7 +840,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==}
+    resolution: {integrity: 
sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw==,
 tarball: 
https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [ia32]
     os: [win32]
@@ -849,7 +849,7 @@ packages:
     optional: true
 
   /@esbuild/[email protected]:
-    resolution: {integrity: 
sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==}
+    resolution: {integrity: 
sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA==,
 tarball: https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz}
     engines: {node: '>=12'}
     cpu: [x64]
     os: [win32]
@@ -857,6 +857,16 @@ packages:
     dev: true
     optional: true
 
+  /@gerrit0/[email protected]:
+    resolution: {integrity: 
sha512-yemSYr0Oiqk5NAQRfbD5DKUTlThiZw1MxTMx/YpQTg6m4QRJDtV2JTYSuNevgx1ayy/O7x+uwDjh3IgECGFY/Q==,
 tarball: https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.2.3.tgz}
+    dependencies:
+      '@shikijs/engine-oniguruma': 3.2.2
+      '@shikijs/langs': 3.2.2
+      '@shikijs/themes': 3.2.2
+      '@shikijs/types': 3.2.2
+      '@shikijs/vscode-textmate': 10.0.2
+    dev: true
+
   /@jridgewell/[email protected]:
     resolution: {integrity: 
sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
     dev: true
@@ -868,7 +878,7 @@ packages:
     dev: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw==}
+    resolution: {integrity: 
sha512-rGku10pL1StFlFvXX5pEv88KdGW6DHUghsxyP/aRYb9eH+74jTGJ3U0S/rtlsQ4yYq1Hcc7AMkoJOb1xu29Fxw==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.7.0.tgz}
     cpu: [arm]
     os: [android]
     requiresBuild: true
@@ -876,7 +886,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA==}
+    resolution: {integrity: 
sha512-/EBw0cuJ/KVHiU2qyVYUhogXz7W2vXxBzeE9xtVIMC+RyitlY2vvaoysMUqASpkUtoNIHlnKTu/l7mXOPgnKOA==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.7.0.tgz}
     cpu: [arm64]
     os: [android]
     requiresBuild: true
@@ -884,7 +894,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg==}
+    resolution: {integrity: 
sha512-4VXG1bgvClJdbEYYjQ85RkOtwN8sqI3uCxH0HC5w9fKdqzRzgG39K7GAehATGS8jghA7zNoS5CjSKkDEqWmNZg==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.7.0.tgz}
     cpu: [arm64]
     os: [darwin]
     requiresBuild: true
@@ -892,7 +902,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw==}
+    resolution: {integrity: 
sha512-/ImhO+T/RWJ96hUbxiCn2yWI0/MeQZV/aeukQQfhxiSXuZJfyqtdHPUPrc84jxCfXTxbJLmg4q+GBETeb61aNw==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.7.0.tgz}
     cpu: [x64]
     os: [darwin]
     requiresBuild: true
@@ -900,7 +910,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg==}
+    resolution: {integrity: 
sha512-zhye8POvTyUXlKbfPBVqoHy3t43gIgffY+7qBFqFxNqVtltQLtWeHNAbrMnXiLIfYmxcoL/feuLDote2tx+Qbg==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.7.0.tgz}
     cpu: [arm]
     os: [linux]
     requiresBuild: true
@@ -908,7 +918,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg==}
+    resolution: {integrity: 
sha512-RAdr3OJnUum6Vs83cQmKjxdTg31zJnLLTkjhcFt0auxM6jw00GD6IPFF42uasYPr/wGC6TRm7FsQiJyk0qIEfg==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.7.0.tgz}
     cpu: [arm64]
     os: [linux]
     requiresBuild: true
@@ -916,7 +926,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw==}
+    resolution: {integrity: 
sha512-nhWwYsiJwZGq7SyR3afS3EekEOsEAlrNMpPC4ZDKn5ooYSEjDLe9W/xGvoIV8/F/+HNIY6jY8lIdXjjxfxopXw==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.7.0.tgz}
     cpu: [arm64]
     os: [linux]
     requiresBuild: true
@@ -924,7 +934,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA==}
+    resolution: {integrity: 
sha512-rlfy5RnQG1aop1BL/gjdH42M2geMUyVQqd52GJVirqYc787A/XVvl3kQ5NG/43KXgOgE9HXgCaEH05kzQ+hLoA==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.7.0.tgz}
     cpu: [riscv64]
     os: [linux]
     requiresBuild: true
@@ -932,7 +942,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg==}
+    resolution: {integrity: 
sha512-cCkoGlGWfBobdDtiiypxf79q6k3/iRVGu1HVLbD92gWV5WZbmuWJCgRM4x2N6i7ljGn1cGytPn9ZAfS8UwF6vg==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.7.0.tgz}
     cpu: [x64]
     os: [linux]
     requiresBuild: true
@@ -940,7 +950,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg==}
+    resolution: {integrity: 
sha512-R2oBf2p/Arc1m+tWmiWbpHBjEcJnHVnv6bsypu4tcKdrYTpDfl1UT9qTyfkIL1iiii5D4WHxUHCg5X0pzqmxFg==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.7.0.tgz}
     cpu: [x64]
     os: [linux]
     requiresBuild: true
@@ -948,7 +958,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g==}
+    resolution: {integrity: 
sha512-CPtgaQL1aaPc80m8SCVEoxFGHxKYIt3zQYC3AccL/SqqiWXblo3pgToHuBwR8eCP2Toa+X1WmTR/QKFMykws7g==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.7.0.tgz}
     cpu: [arm64]
     os: [win32]
     requiresBuild: true
@@ -956,7 +966,7 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g==}
+    resolution: {integrity: 
sha512-pmioUlttNh9GXF5x2CzNa7Z8kmRTyhEzzAC+2WOOapjewMbl+3tGuAnxbwc5JyG8Jsz2+hf/QD/n5VjimOZ63g==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.7.0.tgz}
     cpu: [ia32]
     os: [win32]
     requiresBuild: true
@@ -964,13 +974,43 @@ packages:
     optional: true
 
   /@rollup/[email protected]:
-    resolution: {integrity: 
sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q==}
+    resolution: {integrity: 
sha512-SeZzC2QhhdBQUm3U0c8+c/P6UlRyBcLL2Xp5KX7z46WXZxzR8RJSIWL9wSUeBTgxog5LTPJuPj0WOT9lvrtP7Q==,
 tarball: 
https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.7.0.tgz}
     cpu: [x64]
     os: [win32]
     requiresBuild: true
     dev: true
     optional: true
 
+  /@shikijs/[email protected]:
+    resolution: {integrity: 
sha512-vyXRnWVCSvokwbaUD/8uPn6Gqsf5Hv7XwcW4AgiU4Z2qwy19sdr6VGzMdheKKN58tJOOe5MIKiNb901bgcUXYQ==,
 tarball: 
https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.2.2.tgz}
+    dependencies:
+      '@shikijs/types': 3.2.2
+      '@shikijs/vscode-textmate': 10.0.2
+    dev: true
+
+  /@shikijs/[email protected]:
+    resolution: {integrity: 
sha512-NY0Urg2dV9ETt3JIOWoMPuoDNwte3geLZ4M1nrPHbkDS8dWMpKcEwlqiEIGqtwZNmt5gKyWpR26ln2Bg2ecPgw==,
 tarball: https://registry.npmjs.org/@shikijs/langs/-/langs-3.2.2.tgz}
+    dependencies:
+      '@shikijs/types': 3.2.2
+    dev: true
+
+  /@shikijs/[email protected]:
+    resolution: {integrity: 
sha512-Zuq4lgAxVKkb0FFdhHSdDkALuRpsj1so1JdihjKNQfgM78EHxV2JhO10qPsMrm01FkE3mDRTdF68wfmsqjt6HA==,
 tarball: https://registry.npmjs.org/@shikijs/themes/-/themes-3.2.2.tgz}
+    dependencies:
+      '@shikijs/types': 3.2.2
+    dev: true
+
+  /@shikijs/[email protected]:
+    resolution: {integrity: 
sha512-a5TiHk7EH5Lso8sHcLHbVNNhWKP0Wi3yVnXnu73g86n3WoDgEra7n3KszyeCGuyoagspQ2fzvy4cpSc8pKhb0A==,
 tarball: https://registry.npmjs.org/@shikijs/types/-/types-3.2.2.tgz}
+    dependencies:
+      '@shikijs/vscode-textmate': 10.0.2
+      '@types/hast': 3.0.4
+    dev: true
+
+  /@shikijs/[email protected]:
+    resolution: {integrity: 
sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==,
 tarball: 
https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz}
+    dev: true
+
   /@smithy/[email protected]:
     resolution: {integrity: 
sha512-JkS36PIS3/UCbq/MaozzV7jECeL+BTt4R75bwY8i+4RASys4xOyUS1HsRyUNSqUXFP4QyCz5aNnh3ltuaxv+pw==}
     engines: {node: '>=14.0.0'}
@@ -1445,7 +1485,7 @@ packages:
     dev: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==}
+    resolution: {integrity: 
sha512-XVWFsKe6ei+SsDbwmsuRkYck1SXRpO60Hioa4hoLwR8fxbA9eVp6enZtMxzVVMBi8ej5seZ4HZQeAWepbukiBw==,
 tarball: 
https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [darwin]
@@ -1454,7 +1494,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==}
+    resolution: {integrity: 
sha512-KF/MXrnH1nakm1wbt4XV8FS7kvqD9TGmVxeJ0U4bbvxXMvzeYUurzg3AJUTXYmXDhH/VXOYJE5N5RkwZZPs5iA==,
 tarball: 
https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [darwin]
@@ -1463,7 +1503,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==}
+    resolution: {integrity: 
sha512-p8hikNnAEJrw5vHCtKiFT4hdlQxk1V7vqPmvUDgL/qe2menQDK/i12tbz7/3BEQ4UqUPnvwpmVn2d19RdEMNxw==,
 tarball: 
https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [linux]
@@ -1472,7 +1512,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==}
+    resolution: {integrity: 
sha512-BWx/0EeY89WC4q3AaIaBSGfQxkYxIlS3mX19dwy2FWJs/O+fMvF9oLk/CyJPOZzbp+1DjGeeoGFuDYpiNO91JA==,
 tarball: 
https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [linux]
@@ -1481,7 +1521,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==}
+    resolution: {integrity: 
sha512-XUdGu3dxAkjsahLYnm8WijPfKebo+jHgHphDxaW0ovI6sTdmEGFDew7QzKZRlbYL2jRkUuuKuDGvD6lO5frmhA==,
 tarball: 
https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [linux]
@@ -1490,7 +1530,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==}
+    resolution: {integrity: 
sha512-PhoXKf+f0OaNW/GCuXjJ0/KfK9EJX7z2gko+7nVnEA0p3aaPtbP6cq1Ubbl6CMoPL+Ci3gZ7nYumDqXNc3CtLQ==,
 tarball: 
https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [linux]
@@ -1499,7 +1539,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==}
+    resolution: {integrity: 
sha512-PwLADZN6F9cXn4Jw52FeP/MCLVHm8vwouZZSOoOScDtihjY495SSjdPnlosMaRSR4wJQssGwiD/4MbpgQPqbAw==,
 tarball: 
https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [arm64]
     os: [win32]
@@ -1508,7 +1548,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==}
+    resolution: {integrity: 
sha512-0f6nicKSLlDKlyPRl2JEmkpBV4aeDfRQg6n8mPqgL7bliZIcDahG0ej+HxgNjZfS3e0yjDxsNRa6sAqWU2Z60A==,
 tarball: 
https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [ia32]
     os: [win32]
@@ -1517,7 +1557,7 @@ packages:
     optional: true
 
   /@swc/[email protected]:
-    resolution: {integrity: 
sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==}
+    resolution: {integrity: 
sha512-b7J0rPoMkRTa3XyUGt8PwCaIBuYWsL2DqbirrQKRESzgCvif5iNpqaM6kjIjI/5y5q1Ycv564CB51YDpiS8EtQ==,
 tarball: 
https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.100.tgz}
     engines: {node: '>=10'}
     cpu: [x64]
     os: [win32]
@@ -1561,6 +1601,12 @@ packages:
     resolution: {integrity: 
sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==}
     dev: true
 
+  /@types/[email protected]:
+    resolution: {integrity: 
sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==,
 tarball: https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz}
+    dependencies:
+      '@types/unist': 3.0.3
+    dev: true
+
   /@types/[email protected]:
     resolution: {integrity: 
sha512-k5fggr14DwAytoA/t8rPrIz++lXK7/DqckthCmoZOKNsEbJkId4Z//BqgApXBUGrGddrigYa1oqheo/7YmW4rg==}
     dependencies:
@@ -1583,6 +1629,10 @@ packages:
     resolution: {integrity: 
sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==}
     dev: true
 
+  /@types/[email protected]:
+    resolution: {integrity: 
sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==,
 tarball: https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz}
+    dev: true
+
   /@vitest/[email protected]:
     resolution: {integrity: 
sha512-Xu6TTIavTvSSS6LZaA3EebWFr6tsoXPetOWNMOlc7LO88QVVBwq2oQWBoDiLCN6YTvNYsGSjqOO8CAdjom5DCQ==}
     dependencies:
@@ -1656,10 +1706,6 @@ packages:
     engines: {node: '>=8'}
     dev: true
 
-  /[email protected]:
-    resolution: {integrity: 
sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==}
-    dev: true
-
   /[email protected]:
     resolution: {integrity: 
sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
     engines: {node: '>=8'}
@@ -1667,6 +1713,10 @@ packages:
       color-convert: 2.0.1
     dev: true
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==,
 tarball: https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz}
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==}
     engines: {node: '>=12'}
@@ -1678,7 +1728,7 @@ packages:
     dev: true
 
   /[email protected]:
-    resolution: {integrity: 
sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+    resolution: {integrity: 
sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==,
 tarball: https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz}
     dev: true
 
   /[email protected]:
@@ -1708,7 +1758,7 @@ packages:
     dev: true
 
   /[email protected]:
-    resolution: {integrity: 
sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+    resolution: {integrity: 
sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==,
 tarball: 
https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz}
     dependencies:
       balanced-match: 1.0.2
     dev: true
@@ -1812,6 +1862,11 @@ packages:
     resolution: {integrity: 
sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
     dev: true
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==,
 tarball: https://registry.npmjs.org/entities/-/entities-4.5.0.tgz}
+    engines: {node: '>=0.12'}
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==}
     dev: true
@@ -1878,7 +1933,7 @@ packages:
     dev: true
 
   /[email protected]:
-    resolution: {integrity: 
sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+    resolution: {integrity: 
sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==,
 tarball: https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz}
     engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
     os: [darwin]
     requiresBuild: true
@@ -1905,10 +1960,6 @@ packages:
       lodash.get: 4.4.2
     dev: true
 
-  /[email protected]:
-    resolution: {integrity: 
sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
-    dev: true
-
   /[email protected]:
     resolution: {integrity: 
sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
     dependencies:
@@ -1927,6 +1978,12 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==,
 tarball: https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz}
+    dependencies:
+      uc.micro: 2.1.0
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
     dev: true
@@ -1950,7 +2007,7 @@ packages:
     dev: true
 
   /[email protected]:
-    resolution: {integrity: 
sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
+    resolution: {integrity: 
sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==,
 tarball: https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz}
     dev: true
 
   /[email protected]:
@@ -1959,10 +2016,20 @@ packages:
       '@jridgewell/sourcemap-codec': 1.5.0
     dev: true
 
-  /[email protected]:
-    resolution: {integrity: 
sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==}
-    engines: {node: '>= 12'}
+  /[email protected]:
+    resolution: {integrity: 
sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==,
 tarball: https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz}
     hasBin: true
+    dependencies:
+      argparse: 2.0.1
+      entities: 4.5.0
+      linkify-it: 5.0.0
+      mdurl: 2.0.0
+      punycode.js: 2.3.1
+      uc.micro: 2.1.0
+    dev: true
+
+  /[email protected]:
+    resolution: {integrity: 
sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==,
 tarball: https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz}
     dev: true
 
   /[email protected]:
@@ -1970,8 +2037,8 @@ packages:
     engines: {node: '>=6'}
     dev: true
 
-  /[email protected]:
-    resolution: {integrity: 
sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==}
+  /[email protected]:
+    resolution: {integrity: 
sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==,
 tarball: https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz}
     engines: {node: '>=16 || 14 >=14.17'}
     dependencies:
       brace-expansion: 2.0.1
@@ -2035,6 +2102,11 @@ packages:
     hasBin: true
     dev: true
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==,
 tarball: https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz}
+    engines: {node: '>=6'}
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
     engines: {node: '>=8'}
@@ -2064,15 +2136,6 @@ packages:
       fsevents: 2.3.3
     dev: true
 
-  /[email protected]:
-    resolution: {integrity: 
sha512-R4koBBlQP33cC8cpzX0hAoOURBHJILp4Aaduh2eYi+Vj8ZBqtK/5SWNEHBS3qwUMu8dqOtI/ftno3ESfNeVW9g==}
-    dependencies:
-      ansi-sequence-parser: 1.1.1
-      jsonc-parser: 3.2.0
-      vscode-oniguruma: 1.7.0
-      vscode-textmate: 8.0.0
-    dev: true
-
   /[email protected]:
     resolution: {integrity: 
sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
     dev: true
@@ -2171,18 +2234,19 @@ packages:
     engines: {node: '>=10'}
     dev: true
 
-  /[email protected]([email protected]):
-    resolution: {integrity: 
sha512-Du9ImmpBCw54bX275yJrxPVnjdIyJO/84co0/L9mwe0R3G4FSR6rQ09AlXVRvZEGMUg09+z/usc8mgygQ1aidA==}
-    engines: {node: '>= 16'}
+  /[email protected]([email protected]):
+    resolution: {integrity: 
sha512-9Giuv+eppFKnJ0oi+vxqLM817b/IrIsEMYgy3jj6zdvppAfDqV3d6DXL2vXUg2TnlL62V48th25Zf/tcQKAJdg==,
 tarball: https://registry.npmjs.org/typedoc/-/typedoc-0.28.2.tgz}
+    engines: {node: '>= 18', pnpm: '>= 10'}
     hasBin: true
     peerDependencies:
-      typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x 
|| 5.3.x
+      typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x 
|| 5.7.x || 5.8.x
     dependencies:
+      '@gerrit0/mini-shiki': 3.2.3
       lunr: 2.3.9
-      marked: 4.3.0
-      minimatch: 9.0.3
-      shiki: 0.14.6
+      markdown-it: 14.1.0
+      minimatch: 9.0.5
       typescript: 5.3.3
+      yaml: 2.7.1
     dev: true
 
   /[email protected]:
@@ -2191,6 +2255,10 @@ packages:
     hasBin: true
     dev: true
 
+  /[email protected]:
+    resolution: {integrity: 
sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==,
 tarball: https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz}
+    dev: true
+
   /[email protected]:
     resolution: {integrity: 
sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
     dev: true
@@ -2322,14 +2390,6 @@ packages:
       - terser
     dev: true
 
-  /[email protected]:
-    resolution: {integrity: 
sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==}
-    dev: true
-
-  /[email protected]:
-    resolution: {integrity: 
sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==}
-    dev: true
-
   /[email protected]:
     resolution: {integrity: 
sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==}
     engines: {node: '>=8'}
@@ -2347,3 +2407,9 @@ packages:
       string-width: 4.2.3
       strip-ansi: 6.0.1
     dev: true
+
+  /[email protected]:
+    resolution: {integrity: 
sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==,
 tarball: https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz}
+    engines: {node: '>= 14'}
+    hasBin: true
+    dev: true
diff --git a/bindings/nodejs/scripts/header.js 
b/bindings/nodejs/scripts/header.js
index 6d15af5c4..1f5cb70e4 100644
--- a/bindings/nodejs/scripts/header.js
+++ b/bindings/nodejs/scripts/header.js
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-const fs = require('fs')
+import fs from 'fs'
 
-let files = ['generated.js', 'generated.d.ts']
+const files = ['generated.js', 'generated.d.ts']
 
-for (path of files) {
-  let data = fs.readFileSync(path, 'utf8')
+for (const path of files) {
+  const data = fs.readFileSync(path, 'utf8')
   fs.writeFileSync(
     path,
     `/*
diff --git a/bindings/nodejs/theme/index.tsx b/bindings/nodejs/theme/index.tsx
index afef7f319..58bed6146 100644
--- a/bindings/nodejs/theme/index.tsx
+++ b/bindings/nodejs/theme/index.tsx
@@ -17,34 +17,25 @@
  * under the License.
  */
 
-import { DefaultTheme, PageEvent, Reflection, Options, 
DefaultThemeRenderContext, Application, JSX } from 'typedoc'
+import React from 'react'
+import { DefaultTheme, PageEvent, Reflection, DefaultThemeRenderContext, 
Application, JSX } from 'typedoc'
 
-export class FooterWithASFCopyright extends DefaultThemeRenderContext {
-  constructor(theme: DefaultTheme, page: PageEvent<Reflection>, options: 
Options) {
-    super(theme, page, options)
-
-    this.footer = () => {
-      return (
-        <>
-          <div class="tsd-generator">
-            <p>
-              Copyright © 2022-{new Date().getFullYear()}, The Apache Software 
Foundation. Apache OpenDAL, OpenDAL, and
-              Apache are either registered trademarks or trademarks of the 
Apache Software Foundation.
-            </p>
-          </div>
-        </>
-      ) as unknown as JSX.Element
-    }
+class FooterWithASFCopyright extends DefaultThemeRenderContext {
+  override footer = () => {
+    return (
+      <footer>
+        <p>
+          Copyright © 2022-{new Date().getFullYear()}, The Apache Software 
Foundation. Apache OpenDAL, OpenDAL, and
+          Apache are either registered trademarks or trademarks of the Apache 
Software Foundation.
+        </p>
+      </footer>
+    ) as unknown as JSX.Element
   }
 }
 
-export class FooterOverrideTheme extends DefaultTheme {
-  private _contextCache?: FooterWithASFCopyright
-
-  override getRenderContext(pageEvent: PageEvent<Reflection>): 
FooterWithASFCopyright {
-    this._contextCache ||= new FooterWithASFCopyright(this, pageEvent, 
this.application.options)
-
-    return this._contextCache
+class FooterOverrideTheme extends DefaultTheme {
+  getRenderContext(pageEvent: PageEvent<Reflection>): 
DefaultThemeRenderContext {
+    return new FooterWithASFCopyright(this.router, this, pageEvent, 
this.application.options)
   }
 }
 
diff --git a/bindings/nodejs/tsconfig.theme.json 
b/bindings/nodejs/tsconfig.theme.json
index 1948e88b4..b4f0c9dbd 100644
--- a/bindings/nodejs/tsconfig.theme.json
+++ b/bindings/nodejs/tsconfig.theme.json
@@ -1,13 +1,12 @@
 {
   "compilerOptions": {
     "target": "es2020",
-    "module": "commonjs",
-    "moduleResolution": "node",
+    "module": "NodeNext",
+    "moduleResolution": "nodenext",
     "forceConsistentCasingInFileNames": true,
     "strict": true,
     "esModuleInterop": true,
     "outDir": "theme/dist",
-
     "jsx": "react",
     "jsxFactory": "JSX.createElement",
     "jsxFragmentFactory": "JSX.Fragment"
diff --git a/bindings/nodejs/typedoc.json b/bindings/nodejs/typedoc.json
index 6e9bf40b2..7043af22e 100644
--- a/bindings/nodejs/typedoc.json
+++ b/bindings/nodejs/typedoc.json
@@ -10,6 +10,7 @@
   "githubPages": false,
   "plugin": ["./theme/dist/index.js"],
   "theme": "opendal",
+  "projectDocuments": ["./CONTRIBUTING.md", "./upgrade.md"],
   "navigationLinks": {
     "Homepage": "https://opendal.apache.org/";,
     "GitHub": "https://github.com/apache/opendal/tree/main/bindings/nodejs";


Reply via email to