diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2dfc3c2417..48b0a6797f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,6 +25,7 @@ jobs: - run: npm run test:prettier - run: npm run test:spelling - run: npm run test:tsc + - run: npm run doc:html build: runs-on: ubuntu-latest diff --git a/package-lock.json b/package-lock.json index 321a691b06..acb0a8687c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -86,8 +86,7 @@ "tail": "^2.2.0", "ts-loader": "^9.3.1", "ts-node": "^10.9.1", - "typedoc": "^0.22.10", - "typedoc-plugin-no-inherit": "^1.3.1", + "typedoc": "^0.23.10", "typescript": "^4.5.5" }, "engines": { @@ -7294,9 +7293,9 @@ "dev": true }, "node_modules/jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", "dev": true }, "node_modules/jsonfile": { @@ -8142,9 +8141,9 @@ } }, "node_modules/marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.19.tgz", + "integrity": "sha512-rgQF/OxOiLcvgUAj1Q1tAf4Bgxn5h5JZTp04Fx4XUkVhs7B+7YA9JEWJhJpoO8eJt8MkZMwqLCNeNqj1bCREZQ==", "dev": true, "bin": { "marked": "bin/marked.js" @@ -10368,9 +10367,9 @@ "dev": true }, "node_modules/shiki": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.0.tgz", - "integrity": "sha512-iczxaIYeBFHTFrQPb9DVy2SKgYxC4Wo7Iucm7C17cCh2Ge/refnvHscUOxM85u57MfLoNOtjoEFUWt9gBexblA==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", + "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", "dev": true, "dependencies": { "jsonc-parser": "^3.0.0", @@ -11284,40 +11283,51 @@ } }, "node_modules/typedoc": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.12.tgz", - "integrity": "sha512-FcyC+YuaOpr3rB9QwA1IHOi9KnU2m50sPJW5vcNRPCIdecp+3bFkh7Rq5hBU1Fyn29UR2h4h/H7twZHWDhL0sw==", + "version": "0.23.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.10.tgz", + "integrity": "sha512-03EUiu/ZuScUBMnY6p0lY+HTH8SwhzvRE3gImoemdPDWXPXlks83UGTx++lyquWeB1MTwm9D9Ca8RIjkK3AFfQ==", "dev": true, "dependencies": { - "glob": "^7.2.0", "lunr": "^2.3.9", - "marked": "^4.0.10", - "minimatch": "^3.0.4", - "shiki": "^0.10.0" + "marked": "^4.0.18", + "minimatch": "^5.1.0", + "shiki": "^0.10.1" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { - "node": ">= 12.10.0" + "node": ">= 14.14" }, "peerDependencies": { - "typescript": "4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x" + "typescript": "4.6.x || 4.7.x" } }, - "node_modules/typedoc-plugin-no-inherit": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/typedoc-plugin-no-inherit/-/typedoc-plugin-no-inherit-1.3.1.tgz", - "integrity": "sha512-3fdPHRaIcCVV1W5gJYpZTdZL+F2VZTlUMd3Hw9xIv931ILh18CcD8IfxZtTtOijJRuKbgRLJ+J/+hVlgCbq1RQ==", + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "peerDependencies": { - "typedoc": ">=0.20.31" + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" } }, "node_modules/typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -11571,9 +11581,9 @@ } }, "node_modules/vscode-oniguruma": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", - "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", + "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", "dev": true }, "node_modules/vscode-textmate": { @@ -17654,9 +17664,9 @@ "dev": true }, "jsonc-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", - "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.1.0.tgz", + "integrity": "sha512-DRf0QjnNeCUds3xTjKlQQ3DpJD51GvDjJfnxUVWg6PZTo2otSm+slzNAxU/35hF8/oJIKoG9slq30JYOsF2azg==", "dev": true }, "jsonfile": { @@ -18319,9 +18329,9 @@ "dev": true }, "marked": { - "version": "4.0.12", - "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.12.tgz", - "integrity": "sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==", + "version": "4.0.19", + "resolved": "https://registry.npmjs.org/marked/-/marked-4.0.19.tgz", + "integrity": "sha512-rgQF/OxOiLcvgUAj1Q1tAf4Bgxn5h5JZTp04Fx4XUkVhs7B+7YA9JEWJhJpoO8eJt8MkZMwqLCNeNqj1bCREZQ==", "dev": true }, "media-typer": { @@ -19934,9 +19944,9 @@ "dev": true }, "shiki": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.0.tgz", - "integrity": "sha512-iczxaIYeBFHTFrQPb9DVy2SKgYxC4Wo7Iucm7C17cCh2Ge/refnvHscUOxM85u57MfLoNOtjoEFUWt9gBexblA==", + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz", + "integrity": "sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==", "dev": true, "requires": { "jsonc-parser": "^3.0.0", @@ -20611,29 +20621,41 @@ } }, "typedoc": { - "version": "0.22.12", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.22.12.tgz", - "integrity": "sha512-FcyC+YuaOpr3rB9QwA1IHOi9KnU2m50sPJW5vcNRPCIdecp+3bFkh7Rq5hBU1Fyn29UR2h4h/H7twZHWDhL0sw==", + "version": "0.23.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.23.10.tgz", + "integrity": "sha512-03EUiu/ZuScUBMnY6p0lY+HTH8SwhzvRE3gImoemdPDWXPXlks83UGTx++lyquWeB1MTwm9D9Ca8RIjkK3AFfQ==", "dev": true, "requires": { - "glob": "^7.2.0", "lunr": "^2.3.9", - "marked": "^4.0.10", - "minimatch": "^3.0.4", - "shiki": "^0.10.0" + "marked": "^4.0.18", + "minimatch": "^5.1.0", + "shiki": "^0.10.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } } }, - "typedoc-plugin-no-inherit": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/typedoc-plugin-no-inherit/-/typedoc-plugin-no-inherit-1.3.1.tgz", - "integrity": "sha512-3fdPHRaIcCVV1W5gJYpZTdZL+F2VZTlUMd3Hw9xIv931ILh18CcD8IfxZtTtOijJRuKbgRLJ+J/+hVlgCbq1RQ==", - "dev": true, - "requires": {} - }, "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==", + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, "ua-parser-js": { @@ -20820,9 +20842,9 @@ "dev": true }, "vscode-oniguruma": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.1.tgz", - "integrity": "sha512-vc4WhSIaVpgJ0jJIejjYxPvURJavX6QG41vu0mGhqywMkQqulezEqEQ3cO3gc8GvcOpX6ycmKGqRoROEMBNXTQ==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz", + "integrity": "sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==", "dev": true }, "vscode-textmate": { diff --git a/package.json b/package.json index a3df636c0f..83d3972214 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "watch:build": "tsc -p tsconfig.json -w", "watch:test": "mocha --watch", "doc": "run-s doc:*", - "doc:html": "typedoc", + "doc:html": "typedoc --treatWarningsAsErrors", "doc:cname": "echo 'js-waku.wakuconnect.dev' > build/docs/CNAME", "doc:examples": "mkdir -p build/docs/examples", "prepublish": "npm run build", @@ -162,8 +162,7 @@ "tail": "^2.2.0", "ts-loader": "^9.3.1", "ts-node": "^10.9.1", - "typedoc": "^0.22.10", - "typedoc-plugin-no-inherit": "^1.3.1", + "typedoc": "^0.23.10", "typescript": "^4.5.5" }, "overrides": { diff --git a/src/lib/create_waku.ts b/src/lib/create_waku.ts index 9e3be207a8..3605273b56 100644 --- a/src/lib/create_waku.ts +++ b/src/lib/create_waku.ts @@ -16,7 +16,7 @@ import { WakuStore } from "./waku_store"; export interface CreateOptions { /** - * The PubSub Topic to use. Defaults to {@link DefaultPubSubTopic}. + * The PubSub Topic to use. * * One and only one pubsub topic is used by Waku. This is used by: * - WakuRelay to receive, route and send messages, @@ -26,15 +26,15 @@ export interface CreateOptions { * The usage of the default pubsub topic is recommended. * See [Waku v2 Topic Usage Recommendations](https://rfc.vac.dev/spec/23/) for details. * - * @default {@link DefaultPubSubTopic} + * @default {@link index.DefaultPubSubTopic} */ pubSubTopic?: string; /** - * You can pass options to the `Libp2p` instance used by {@link Waku} using the {@link CreateOptions.libp2p} property. + * You can pass options to the `Libp2p` instance used by {@link index.waku.Waku} using the {@link CreateOptions.libp2p} property. * This property is the same type than the one passed to [`Libp2p.create`](https://github.com/libp2p/js-libp2p/blob/master/doc/API.md#create) * apart that we made the `modules` property optional and partial, * allowing its omission and letting Waku set good defaults. - * Notes that some values are overridden by {@link Waku} to ensure it implements the Waku protocol. + * Notes that some values are overridden by {@link index.waku.Waku} to ensure it implements the Waku protocol. */ libp2p?: Partial; /** diff --git a/src/lib/enr/enr.ts b/src/lib/enr/enr.ts index 47c88f5ce8..92d07eb2db 100644 --- a/src/lib/enr/enr.ts +++ b/src/lib/enr/enr.ts @@ -298,7 +298,7 @@ export class ENR extends Map { * address (e.g. `dns4`, `dnsaddr`, etc).. * * If the peer information only contains information that can be represented with the ENR pre-defined keys - * (ip, tcp, etc) then the usage of [[getLocationMultiaddr]] should be preferred. + * (ip, tcp, etc) then the usage of { @link getLocationMultiaddr } should be preferred. * * The multiaddresses stored in this field are expected to be location multiaddresses, ie, peer id less. */ @@ -318,7 +318,7 @@ export class ENR extends Map { * address (e.g. `dns4`, `dnsaddr`, etc).. * * If the peer information only contains information that can be represented with the ENR pre-defined keys - * (ip, tcp, etc) then the usage of [[setLocationMultiaddr]] should be preferred. + * (ip, tcp, etc) then the usage of { @link setLocationMultiaddr } should be preferred. * The multiaddresses stored in this field must be location multiaddresses, * ie, without a peer id. */ @@ -403,7 +403,7 @@ export class ENR extends Map { * Returns the full multiaddr from the ENR fields matching the provided * `protocol` parameter. * To return full multiaddrs from the `multiaddrs` ENR field, - * use [[ENR.getFullMultiaddrs]] + * use { @link ENR.getFullMultiaddrs }. * * @param protocol */ diff --git a/src/lib/enr/index.ts b/src/lib/enr/index.ts index 92a4208eee..32d56e1f6e 100644 --- a/src/lib/enr/index.ts +++ b/src/lib/enr/index.ts @@ -1,5 +1,3 @@ -import * as v4Crypto from "./v4"; -export const v4 = v4Crypto; export * from "./constants"; export * from "./enr"; export * from "./types"; diff --git a/src/lib/wait_for_remote_peer.ts b/src/lib/wait_for_remote_peer.ts index 24917fa608..85220e8dc1 100644 --- a/src/lib/wait_for_remote_peer.ts +++ b/src/lib/wait_for_remote_peer.ts @@ -22,8 +22,8 @@ interface WakuGossipSubProtocol extends GossipSub { /** * Wait for a remote peer to be ready given the passed protocols. - * Must be used after attempting to connect to nodes, using {@link Waku.dial} or - * a bootstrap method with {@link Waku.constructor}. + * Must be used after attempting to connect to nodes, using {@link index.waku.Waku.dial} or + * a bootstrap method with {@link index.waku.Waku.constructor}. * * If the passed protocols is a GossipSub protocol, then it resolves only once * a peer is in a mesh, to help ensure that other peers will send and receive diff --git a/src/lib/waku.ts b/src/lib/waku.ts index da40250eb6..33d18dde7d 100644 --- a/src/lib/waku.ts +++ b/src/lib/waku.ts @@ -170,7 +170,7 @@ export class Waku { /** * Register a decryption key to attempt decryption of messages received via - * [[WakuRelay]] and [[WakuStore]]. This can either be a private key for + * { @link WakuRelay } and { @link WakuStore }. This can either be a private key for * asymmetric encryption or a symmetric key. * * Strings must be in hex format. @@ -186,7 +186,7 @@ export class Waku { /** * Delete a decryption key that was used to attempt decryption of messages - * received via [[WakuRelay]] or [[WakuStore]]. + * received via { @link WakuRelay } or { @link WakuStore }. * * Strings must be in hex format. */ diff --git a/src/lib/waku_filter/index.ts b/src/lib/waku_filter/index.ts index d4b1281900..bef0827954 100644 --- a/src/lib/waku_filter/index.ts +++ b/src/lib/waku_filter/index.ts @@ -251,8 +251,8 @@ export class WakuFilter { /** * Register a decryption key to attempt decryption of messages received in any - * subsequent [[subscribe]] call. This can either be a private key for - * asymmetric encryption or a symmetric key. [[WakuStore]] will attempt to + * subsequent { @link subscribe } call. This can either be a private key for + * asymmetric encryption or a symmetric key. { @link WakuStore } will attempt to * decrypt messages using both methods. * * Strings must be in hex format. @@ -265,7 +265,7 @@ export class WakuFilter { } /** - * Delete a decryption key so that it cannot be used in future [[subscribe]] calls + * Delete a decryption key so that it cannot be used in future { @link subscribe } calls * * Strings must be in hex format. */ diff --git a/src/lib/waku_relay/index.ts b/src/lib/waku_relay/index.ts index aa84464226..c104f0b3ab 100644 --- a/src/lib/waku_relay/index.ts +++ b/src/lib/waku_relay/index.ts @@ -37,11 +37,10 @@ export interface CreateOptions { } /** - * Implements the [Waku v2 Relay protocol]{@link https://rfc.vac.dev/spec/11/}. - * Must be passed as a `pubsub` module to a {Libp2p} instance. + * Implements the [Waku v2 Relay protocol](https://rfc.vac.dev/spec/11/). + * Must be passed as a `pubsub` module to a `Libp2p` instance. * * @implements {require('libp2p-interfaces/src/pubsub')} - * @noInheritDoc */ export class WakuRelay extends GossipSub { pubSubTopic: string; diff --git a/src/lib/waku_store/index.ts b/src/lib/waku_store/index.ts index 3b88e4f97b..c8f0d05ae5 100644 --- a/src/lib/waku_store/index.ts +++ b/src/lib/waku_store/index.ts @@ -52,19 +52,19 @@ export interface QueryOptions { pubSubTopic?: string; /** * The direction in which pages are retrieved: - * - [[PageDirection.BACKWARD]]: Most recent page first. - * - [[PageDirection.FORWARD]]: Oldest page first. + * - { @link PageDirection.BACKWARD }: Most recent page first. + * - { @link PageDirection.FORWARD }: Oldest page first. * * Note: This does not affect the ordering of messages with the page * (oldest message is always first). * - * @default [[PageDirection.BACKWARD]] + * @default { @link PageDirection.BACKWARD } */ pageDirection?: PageDirection; /** * The number of message per page. * - * @default [[DefaultPageSize]] + * @default { @link DefaultPageSize } */ pageSize?: number; /** @@ -274,8 +274,8 @@ export class WakuStore { /** * Register a decryption key to attempt decryption of messages received in any - * subsequent [[queryHistory]] call. This can either be a private key for - * asymmetric encryption or a symmetric key. [[WakuStore]] will attempt to + * subsequent { @link queryHistory } call. This can either be a private key for + * asymmetric encryption or a symmetric key. { @link WakuStore } will attempt to * decrypt messages using both methods. * * Strings must be in hex format. @@ -289,7 +289,7 @@ export class WakuStore { /**cursorV2Beta4 * Delete a decryption key that was used to attempt decryption of messages - * received in subsequent [[queryHistory]] calls. + * received in subsequent { @link queryHistory } calls. * * Strings must be in hex format. */