diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5c113d642..082cbece4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -35,6 +35,20 @@ jobs: env: MONGOMS_VERSION: ${{ matrix.mongodb }} + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.1.6 + with: + filter: tree:0 + - uses: pnpm/action-setup@v4.0.0 + - uses: actions/setup-node@v4.0.1 + with: + node-version-file: 'package.json' + cache: 'pnpm' + - run: pnpm install --frozen-lockfile + - run: pnpm build:docs && git diff + lint: runs-on: ubuntu-latest steps: diff --git a/docs/build.js b/docs/build.js index 067bcec09..e80ba323a 100644 --- a/docs/build.js +++ b/docs/build.js @@ -99,7 +99,7 @@ for (const doc of DOCS) { const sourceTranspiled = transpileTS(source); - const jsdoc = jsdocApi.explainSync({ source: sourceTranspiled }); + const jsdoc = await jsdocApi.explain({ source: sourceTranspiled }); const parsed = jsdocParse(jsdoc); const intro = parsed.find((item) => item.kind === 'module' && item.name === 'intro'); diff --git a/package.json b/package.json index 42333d1bf..266aedc23 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,8 @@ }, "scripts": { "build": "./build.sh", - "docs": "node docs/build.js && docsify serve ./docs", + "build:docs": "node docs/build.js", + "docs": "pnpm build:docs && docsify serve ./docs", "benchmark": "pnpm build && node --experimental-specifier-resolution=node ./benchmark/run.js", "lint:ci": "./tests/build.sh && eslint .", "lint": "eslint .", @@ -75,7 +76,7 @@ "globals": "15.9.0", "husky": "9.1.4", "jest": "29.7.0", - "jsdoc-api": "8.1.1", + "jsdoc-api": "9.3.1", "jsdoc-parse": "6.2.1", "lint-staged": "15.2.9", "mongodb": "6.9.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5432bf03a..b8a059709 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,8 +66,8 @@ importers: specifier: 29.7.0 version: 29.7.0(@types/node@20.16.1)(ts-node@10.9.2(@types/node@20.16.1)(typescript@5.6.2)) jsdoc-api: - specifier: 8.1.1 - version: 8.1.1 + specifier: 9.3.1 + version: 9.3.1 jsdoc-parse: specifier: 6.2.1 version: 6.2.1 @@ -1228,10 +1228,6 @@ packages: resolution: {integrity: sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==} engines: {node: '>=4'} - array-back@4.0.2: - resolution: {integrity: sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==} - engines: {node: '>=8'} - array-back@5.0.0: resolution: {integrity: sha512-kgVWwJReZWmVuWOQKEOohXKJX+nD02JAZ54D1RRWlv8L0NebauKAaFxACKzB74RTclt1+WNz5KHaLRDAPZbDEw==} engines: {node: '>=10'} @@ -1367,9 +1363,14 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - cache-point@2.0.0: - resolution: {integrity: sha512-4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==} - engines: {node: '>=8'} + cache-point@3.0.0: + resolution: {integrity: sha512-LDGNWYv/tqRWAAZxMy75PIYynaIuhcyoyjJtwA7X5uMZjdzvGm+XmTey/GXUy2EJ+lwc2eBFzFYxjvNYyE/0Iw==} + engines: {node: '>=12.17'} + peerDependencies: + '@75lb/nature': ^0.1.1 + peerDependenciesMeta: + '@75lb/nature': + optional: true cacheable-request@6.1.0: resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} @@ -1469,10 +1470,6 @@ packages: resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - collect-all@1.0.4: - resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==} - engines: {node: '>=0.10.0'} - collect-v8-coverage@1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} @@ -1656,6 +1653,10 @@ packages: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} + current-module-paths@1.1.2: + resolution: {integrity: sha512-H4s4arcLx/ugbu1XkkgSvcUZax0L6tXUqnppGniQb8l5VjUKGHoayXE5RiriiPhYDd+kjZnaok1Uig13PKtKYQ==} + engines: {node: '>=12.17'} + dargs@7.0.0: resolution: {integrity: sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg==} engines: {node: '>=8'} @@ -2088,9 +2089,14 @@ packages: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} - file-set@4.0.2: - resolution: {integrity: sha512-fuxEgzk4L8waGXaAkd8cMr73Pm0FxOVkn8hztzUW7BAHhOGH90viQNXbiOsnecCWmfInqU6YmAMwxRMdKETceQ==} - engines: {node: '>=10'} + file-set@5.2.2: + resolution: {integrity: sha512-/KgJI1V/QaDK4enOk/E2xMFk1cTWJghEr7UmWiRZfZ6upt6gQCfMn4jJ7aOm64OKurj4TaVnSSgSDqv5ZKYA3A==} + engines: {node: '>=12.17'} + peerDependencies: + '@75lb/nature': latest + peerDependenciesMeta: + '@75lb/nature': + optional: true fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} @@ -2151,10 +2157,6 @@ packages: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} - fs-then-native@2.0.0: - resolution: {integrity: sha512-X712jAOaWXkemQCAmWeg5rOT2i+KOpWz1Z/txk/cW0qlOu2oQ9H61vc5w3X/iyuUEfq/OyaFJ78/cZAQD1/bgA==} - engines: {node: '>=4.0.0'} - fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} @@ -2752,9 +2754,14 @@ packages: js2xmlparser@4.0.2: resolution: {integrity: sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA==} - jsdoc-api@8.1.1: - resolution: {integrity: sha512-yas9E4h8NHp1CTEZiU/DPNAvLoUcip+Hl8Xi1RBYzHqSrgsF+mImAZNtwymrXvgbrgl4bNGBU9syulM0JzFeHQ==} + jsdoc-api@9.3.1: + resolution: {integrity: sha512-pgZ5nrLnzF8Swxbv5OV8RYAoM/S3Cbf1UHncNYMRCQwU4KlCfg5bz5/VZlg0a1EATSHclIBf9Hm55GkXz0VItA==} engines: {node: '>=12.17'} + peerDependencies: + '@75lb/nature': latest + peerDependenciesMeta: + '@75lb/nature': + optional: true jsdoc-parse@6.2.1: resolution: {integrity: sha512-9viGRUUtWOk/G4V0+nQ6rfLucz5plxh5I74WbNSNm9h9NWugCDVX4jbG8hZP9QqKGpdTPDE+qJXzaYNos3wqTA==} @@ -3061,9 +3068,6 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - mkdirp2@1.0.5: - resolution: {integrity: sha512-xOE9xbICroUDmG1ye2h4bZ8WBie9EGmACaco8K8cx6RlkJJrxGIqjGqztAI+NMhexXBcdGbSEzI6N3EJPevxZw==} - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} @@ -3784,15 +3788,6 @@ packages: resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} engines: {node: '>= 0.8'} - stream-connect@1.0.2: - resolution: {integrity: sha512-68Kl+79cE0RGKemKkhxTSg8+6AGrqBt+cbZAXevg2iJ6Y3zX4JhA/sZeGzLpxW9cXhmqAcE7KnJCisUmIUfnFQ==} - engines: {node: '>=0.10.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - - stream-via@1.0.4: - resolution: {integrity: sha512-DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==} - engines: {node: '>=0.10.0'} - streamx@2.15.1: resolution: {integrity: sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==} @@ -3904,9 +3899,6 @@ packages: tar-stream@3.1.7: resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} - temp-path@1.0.0: - resolution: {integrity: sha512-TvmyH7kC6ZVTYkqCODjJIbgvu0FKiwQpZ4D1aknE7xpcDf/qEOB8KZEK5ef2pfbVoiBhNWs3yx4y+ESMtNYmlg==} - term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} @@ -4166,8 +4158,8 @@ packages: validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} - walk-back@5.1.0: - resolution: {integrity: sha512-Uhxps5yZcVNbLEAnb+xaEEMdgTXl9qAQDzKYejG2AZ7qPwRQ81lozY9ECDbjLPNWm7YsO1IK5rsP1KoQzXAcGA==} + walk-back@5.1.1: + resolution: {integrity: sha512-e/FRLDVdZQWFrAzU6Hdvpm7D7m2ina833gIKLptQykRK49mmCYHLHq7UqjPDbxbKLZkTkW1rFqbengdE3sLfdw==} engines: {node: '>=12.17'} walker@1.0.8: @@ -5799,8 +5791,6 @@ snapshots: dependencies: typical: 2.6.1 - array-back@4.0.2: {} - array-back@5.0.0: {} array-back@6.2.2: {} @@ -5992,11 +5982,9 @@ snapshots: buffer-from@1.1.2: {} - cache-point@2.0.0: + cache-point@3.0.0: dependencies: - array-back: 4.0.2 - fs-then-native: 2.0.0 - mkdirp2: 1.0.5 + array-back: 6.2.2 cacheable-request@6.1.0: dependencies: @@ -6115,11 +6103,6 @@ snapshots: co@4.6.0: {} - collect-all@1.0.4: - dependencies: - stream-connect: 1.0.2 - stream-via: 1.0.4 - collect-v8-coverage@1.0.1: {} color-convert@1.9.3: @@ -6361,6 +6344,8 @@ snapshots: crypto-random-string@2.0.0: {} + current-module-paths@1.1.2: {} + dargs@7.0.0: {} dargs@8.1.0: {} @@ -6861,10 +6846,10 @@ snapshots: dependencies: flat-cache: 4.0.1 - file-set@4.0.2: + file-set@5.2.2: dependencies: - array-back: 5.0.0 - glob: 7.2.3 + array-back: 6.2.2 + fast-glob: 3.3.2 fill-range@7.1.1: dependencies: @@ -6935,8 +6920,6 @@ snapshots: jsonfile: 4.0.0 universalify: 0.1.2 - fs-then-native@2.0.0: {} - fs.realpath@1.0.0: {} fsevents@2.3.3: @@ -7689,17 +7672,15 @@ snapshots: dependencies: xmlcreate: 2.0.4 - jsdoc-api@8.1.1: + jsdoc-api@9.3.1: dependencies: array-back: 6.2.2 - cache-point: 2.0.0 - collect-all: 1.0.4 - file-set: 4.0.2 - fs-then-native: 2.0.0 + cache-point: 3.0.0 + current-module-paths: 1.1.2 + file-set: 5.2.2 jsdoc: 4.0.3 object-to-spawn-args: 2.0.1 - temp-path: 1.0.0 - walk-back: 5.1.0 + walk-back: 5.1.1 jsdoc-parse@6.2.1: dependencies: @@ -7998,8 +7979,6 @@ snapshots: minimist@1.2.8: {} - mkdirp2@1.0.5: {} - mkdirp@1.0.4: {} modify-values@1.0.1: {} @@ -8715,12 +8694,6 @@ snapshots: statuses@2.0.1: {} - stream-connect@1.0.2: - dependencies: - array-back: 1.0.4 - - stream-via@1.0.4: {} - streamx@2.15.1: dependencies: fast-fifo: 1.3.2 @@ -8831,8 +8804,6 @@ snapshots: fast-fifo: 1.3.2 streamx: 2.15.1 - temp-path@1.0.0: {} - term-size@2.2.1: {} test-exclude@6.0.0: @@ -9084,7 +9055,7 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - walk-back@5.1.0: {} + walk-back@5.1.1: {} walker@1.0.8: dependencies: