feat: combine jsdoc with tsimport

This commit is contained in:
Yarmo Mackenbach 2024-01-28 12:15:03 +01:00
parent deaa858345
commit fe6588dcbb
No known key found for this signature in database
GPG key ID: C248C28D432560ED
24 changed files with 50 additions and 62 deletions

View file

@ -1,5 +1,8 @@
{ {
"plugins": ["plugins/markdown"], "plugins": [
"plugins/markdown",
"node_modules/jsdoc-tsimport-plugin"
],
"source": { "source": {
"include": ["./src", "./README.md"] "include": ["./src", "./README.md"]
}, },

View file

@ -51,6 +51,7 @@
"eslint-plugin-promise": "^6.1.1", "eslint-plugin-promise": "^6.1.1",
"husky": "^7.0.0", "husky": "^7.0.0",
"jsdoc": "^4.0.2", "jsdoc": "^4.0.2",
"jsdoc-tsimport-plugin": "^1.0.5",
"license-check-and-add": "^4.0.3", "license-check-and-add": "^4.0.3",
"lint-staged": "^11.0.0", "lint-staged": "^11.0.0",
"minify": "^9.1", "minify": "^9.1",

View file

@ -13,9 +13,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import axios, * as axiosMod from 'axios' import axios from 'axios'
import { decodeProtectedHeader, importJWK, compactVerify, calculateJwkThumbprint } from 'jose' import { decodeProtectedHeader, importJWK, compactVerify, calculateJwkThumbprint } from 'jose'
import * as joseMod from 'jose'
import { base32, base64url } from 'rfc4648' import { base32, base64url } from 'rfc4648'
import { Claim } from './claim.js' import { Claim } from './claim.js'
import { Persona } from './persona.js' import { Persona } from './persona.js'
@ -58,12 +57,12 @@ export async function fetchASPE (uri) {
responseType: 'text' responseType: 'text'
} }
) )
.then((/** @type {axiosMod.AxiosResponse} */ response) => { .then((/** @type {import('axios').AxiosResponse} */ response) => {
if (response.status === 200) { if (response.status === 200) {
return response return response
} }
}) })
.then((/** @type {axiosMod.AxiosResponse} */ response) => response.data) .then((/** @type {import('axios').AxiosResponse} */ response) => response.data)
} catch (e) { } catch (e) {
throw new Error(`Error fetching Keybase key: ${e.message}`) throw new Error(`Error fetching Keybase key: ${e.message}`)
} }
@ -170,9 +169,9 @@ export async function parseProfileJws (profileJws, uri) {
} }
/** /**
* Compute the fingerprint for JWK keys * Compute the fingerprint for {@link https://github.com/panva/jose/blob/main/docs/interfaces/types.JWK.md JWK} keys
* @function * @function
* @param {joseMod.JWK} key - The JWK public key for which to compute the fingerprint * @param {import('jose').JWK} key - The JWK public key for which to compute the fingerprint
* @returns {Promise<string>} The computed fingerprint * @returns {Promise<string>} The computed fingerprint
*/ */
export async function computeJwkFingerprint (key) { export async function computeJwkFingerprint (key) {

View file

@ -22,7 +22,6 @@ import { list, data as _data } from './serviceProviders/index.js'
import { opts as _opts } from './defaults.js' import { opts as _opts } from './defaults.js'
import { ClaimStatus } from './enums.js' import { ClaimStatus } from './enums.js'
import { ServiceProvider } from './serviceProvider.js' import { ServiceProvider } from './serviceProvider.js'
import * as Types from './types.js'
/** /**
* @class * @class
@ -217,7 +216,7 @@ export class Claim {
* regardless of the result. * regardless of the result.
* @async * @async
* @function * @function
* @param {Types.VerificationConfig} [opts] - Options for proxy, fetchers * @param {import('./types').VerificationConfig} [opts] - Options for proxy, fetchers
*/ */
async verify (opts) { async verify (opts) {
if (this._status === ClaimStatus.INIT) { if (this._status === ClaimStatus.INIT) {
@ -245,7 +244,7 @@ export class Claim {
let claimData = this._matches[index] let claimData = this._matches[index]
/** @type {Types.VerificationResult} */ /** @type {import('./types').VerificationResult} */
let verificationResult = null let verificationResult = null
let proofData = null let proofData = null
let proofFetchError let proofFetchError

View file

@ -14,7 +14,6 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import { ProxyPolicy } from './enums.js' import { ProxyPolicy } from './enums.js'
import * as Types from './types.js'
/** /**
* Contains default values * Contains default values
@ -24,7 +23,7 @@ import * as Types from './types.js'
/** /**
* The default claim verification config used throughout the library * The default claim verification config used throughout the library
* @constant * @constant
* @type {Types.VerificationConfig} * @type {import('./types').VerificationConfig}
*/ */
export const opts = { export const opts = {
proxy: { proxy: {

View file

@ -26,7 +26,6 @@ import isURL from 'validator/lib/isURL.js'
import { isNode } from 'browser-or-node' import { isNode } from 'browser-or-node'
import crypto from 'crypto' import crypto from 'crypto'
import { version } from '../constants.js' import { version } from '../constants.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -43,7 +42,7 @@ export const timeout = 5000
* @param {object} data - Data used in the request * @param {object} data - Data used in the request
* @param {string} data.url - The URL of the account to verify * @param {string} data.url - The URL of the account to verify
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object>} The fetched ActivityPub object * @returns {Promise<object>} The fetched ActivityPub object
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -24,7 +24,6 @@ import axios from 'axios'
import isFQDN from 'validator/lib/isFQDN.js' import isFQDN from 'validator/lib/isFQDN.js'
import { version } from '../constants.js' import { version } from '../constants.js'
import { parseProfileJws } from '../asp.js' import { parseProfileJws } from '../asp.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -43,7 +42,7 @@ const reURI = /^aspe:([a-zA-Z0-9.\-_]*):([a-zA-Z0-9]*)/
* @param {object} data - Data used in the request * @param {object} data - Data used in the request
* @param {string} data.aspeUri - ASPE URI of the targeted profile * @param {string} data.aspeUri - ASPE URI of the targeted profile
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object>} The fetched claims from an ASP profile * @returns {Promise<object>} The fetched claims from an ASP profile
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -23,7 +23,6 @@ limitations under the License.
import { isBrowser } from 'browser-or-node' import { isBrowser } from 'browser-or-node'
import dns from 'dns' import dns from 'dns'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -40,7 +39,7 @@ export const timeout = 5000
* @param {object} data - Data used in the request * @param {object} data - Data used in the request
* @param {string} data.domain - The targeted domain * @param {string} data.domain - The targeted domain
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object>} The fetched DNS records * @returns {Promise<object>} The fetched DNS records
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -23,7 +23,6 @@ limitations under the License.
import axios from 'axios' import axios from 'axios'
import { version } from '../constants.js' import { version } from '../constants.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -41,7 +40,7 @@ export const timeout = 5000
* @param {string} data.url - The URL pointing at the GraphQL HTTP endpoint * @param {string} data.url - The URL pointing at the GraphQL HTTP endpoint
* @param {string} data.query - The GraphQL query to fetch the data containing the proof * @param {string} data.query - The GraphQL query to fetch the data containing the proof
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object>} The fetched GraphQL object * @returns {Promise<object>} The fetched GraphQL object
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -24,7 +24,6 @@ limitations under the License.
import axios from 'axios' import axios from 'axios'
import { ProofFormat } from '../enums.js' import { ProofFormat } from '../enums.js'
import { version } from '../constants.js' import { version } from '../constants.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -42,7 +41,7 @@ export const timeout = 5000
* @param {string} data.url - The URL pointing at targeted content * @param {string} data.url - The URL pointing at targeted content
* @param {string} data.format - The format of the targeted content * @param {string} data.format - The format of the targeted content
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object|string>} The fetched JSON object or text * @returns {Promise<object|string>} The fetched JSON object or text
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -23,7 +23,6 @@ limitations under the License.
import irc from 'irc-upd' import irc from 'irc-upd'
import isAscii from 'validator/lib/isAscii.js' import isAscii from 'validator/lib/isAscii.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -41,7 +40,7 @@ export const timeout = 20000
* @param {string} data.nick - The nick of the targeted account * @param {string} data.nick - The nick of the targeted account
* @param {string} data.domain - The domain on which the targeted account is registered * @param {string} data.domain - The domain on which the targeted account is registered
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<string[]>} The fetched proofs from an IRC account * @returns {Promise<string[]>} The fetched proofs from an IRC account
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -25,7 +25,6 @@ import axios from 'axios'
import isFQDN from 'validator/lib/isFQDN.js' import isFQDN from 'validator/lib/isFQDN.js'
import isAscii from 'validator/lib/isAscii.js' import isAscii from 'validator/lib/isAscii.js'
import { version } from '../constants.js' import { version } from '../constants.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -43,7 +42,7 @@ export const timeout = 5000
* @param {string} data.eventId - The identifier of the targeted post * @param {string} data.eventId - The identifier of the targeted post
* @param {string} data.roomId - The identifier of the room containing the targeted post * @param {string} data.roomId - The identifier of the room containing the targeted post
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object>} The fetched Matrix object * @returns {Promise<object>} The fetched Matrix object
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -33,7 +33,6 @@ import { readKey } from 'openpgp'
import { OpenPgpQueryProtocol } from '../enums.js' import { OpenPgpQueryProtocol } from '../enums.js'
import { version } from '../constants.js' import { version } from '../constants.js'
import { parsePublicKey } from '../openpgp.js' import { parsePublicKey } from '../openpgp.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -51,7 +50,7 @@ export const timeout = 5000
* @param {string} data.url - The URL pointing at targeted content * @param {string} data.url - The URL pointing at targeted content
* @param {OpenPgpQueryProtocol} data.protocol - The protocol used to access the targeted content * @param {OpenPgpQueryProtocol} data.protocol - The protocol used to access the targeted content
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object>} The fetched notations from an OpenPGP key * @returns {Promise<object>} The fetched notations from an OpenPGP key
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -24,7 +24,6 @@ limitations under the License.
import axios from 'axios' import axios from 'axios'
import isAscii from 'validator/lib/isAscii.js' import isAscii from 'validator/lib/isAscii.js'
import { version } from '../constants.js' import { version } from '../constants.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -42,7 +41,7 @@ export const timeout = 5000
* @param {string} data.chat - Telegram public group name (slug) * @param {string} data.chat - Telegram public group name (slug)
* @param {string} data.user - Telegram username * @param {string} data.user - Telegram username
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<object|string>} The fetched Telegram object * @returns {Promise<object|string>} The fetched Telegram object
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -25,7 +25,6 @@ import { client, xml } from '@xmpp/client'
import debug from '@xmpp/debug' import debug from '@xmpp/debug'
import isFQDN from 'validator/lib/isFQDN.js' import isFQDN from 'validator/lib/isFQDN.js'
import isAscii from 'validator/lib/isAscii.js' import isAscii from 'validator/lib/isAscii.js'
import * as Types from '../types.js'
/** /**
* Default timeout after which the fetch is aborted * Default timeout after which the fetch is aborted
@ -43,7 +42,7 @@ let iqCaller = null
* @ignore * @ignore
* @function * @function
* @async * @async
* @param {Types.XmppClaimVerificationConfig} params - XMPP claim verification config * @param {import('../types').XmppClaimVerificationConfig} params - XMPP claim verification config
* @returns {Promise<object>} The fetched proofs from an XMPP account * @returns {Promise<object>} The fetched proofs from an XMPP account
*/ */
const xmppStart = async (params) => { const xmppStart = async (params) => {
@ -74,7 +73,7 @@ const xmppStart = async (params) => {
* @param {object} data - Data used in the request * @param {object} data - Data used in the request
* @param {string} data.id - The identifier of the targeted account * @param {string} data.id - The identifier of the targeted account
* @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher * @param {number} [data.fetcherTimeout] - Optional timeout for the fetcher
* @param {Types.VerificationConfig} [opts] - Options used to enable the request * @param {import('../types').VerificationConfig} [opts] - Options used to enable the request
* @returns {Promise<Array<string>>} The fetched proofs from an XMPP account * @returns {Promise<Array<string>>} The fetched proofs from an XMPP account
*/ */
export async function fn (data, opts) { export async function fn (data, opts) {

View file

@ -28,4 +28,3 @@ export * as utils from './utils.js'
export * as verifications from './verifications.js' export * as verifications from './verifications.js'
export * as schemas from './schemas.js' export * as schemas from './schemas.js'
export * as fetcher from './fetcher/index.js' export * as fetcher from './fetcher/index.js'
export * as types from './types.js'

View file

@ -13,7 +13,7 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import axios, * as axiosMod from 'axios' import axios from 'axios'
import { isUri } from 'valid-url' import { isUri } from 'valid-url'
import { readKey, PublicKey } from 'openpgp' import { readKey, PublicKey } from 'openpgp'
import HKP from '@openpgp/hkp-client' import HKP from '@openpgp/hkp-client'
@ -128,12 +128,12 @@ export async function fetchKeybase (username, fingerprint) {
responseType: 'text' responseType: 'text'
} }
) )
.then((/** @type {axiosMod.AxiosResponse} */ response) => { .then((/** @type {import('axios').AxiosResponse} */ response) => {
if (response.status === 200) { if (response.status === 200) {
return response return response
} }
}) })
.then((/** @type {axiosMod.AxiosResponse} */ response) => response.data) .then((/** @type {import('axios').AxiosResponse} */ response) => response.data)
} catch (e) { } catch (e) {
throw new Error(`Error fetching Keybase key: ${e.message}`) throw new Error(`Error fetching Keybase key: ${e.message}`)
} }

View file

@ -15,7 +15,6 @@ limitations under the License.
*/ */
import { PublicKeyFetchMethod, PublicKeyEncoding, PublicKeyType, ProfileType } from './enums.js' import { PublicKeyFetchMethod, PublicKeyEncoding, PublicKeyType, ProfileType } from './enums.js'
import { Persona } from './persona.js' import { Persona } from './persona.js'
import * as Types from './types.js'
/** /**
* @class * @class
@ -64,7 +63,7 @@ export class Profile {
this.primaryPersonaIndex = personas.length > 0 ? 0 : -1 this.primaryPersonaIndex = personas.length > 0 ? 0 : -1
/** /**
* The cryptographic key associated with the profile * The cryptographic key associated with the profile
* @type {Types.ProfilePublicKey} * @type {import('./types').ProfilePublicKey}
* @public * @public
*/ */
this.publicKey = { this.publicKey = {
@ -81,7 +80,7 @@ export class Profile {
} }
/** /**
* List of verifier URLs * List of verifier URLs
* @type {Types.ProfileVerifier[]} * @type {import('./types').ProfileVerifier[]}
* @public * @public
*/ */
this.verifiers = [] this.verifiers = []

View file

@ -18,7 +18,6 @@ import { fetcher } from './index.js'
import { generateProxyURL } from './utils.js' import { generateProxyURL } from './utils.js'
import { ProxyPolicy, ProofAccessRestriction } from './enums.js' import { ProxyPolicy, ProofAccessRestriction } from './enums.js'
import { ServiceProvider } from './serviceProvider.js' import { ServiceProvider } from './serviceProvider.js'
import * as Types from './types.js'
/** /**
* @module proofs * @module proofs
@ -32,7 +31,7 @@ import * as Types from './types.js'
* approach is possible. * approach is possible.
* @async * @async
* @param {ServiceProvider} data - Data from a claim definition * @param {ServiceProvider} data - Data from a claim definition
* @param {Types.VerificationConfig} opts - Options to enable the request * @param {import('./types').VerificationConfig} opts - Options to enable the request
* @returns {Promise<object|string>} Fetched proof data * @returns {Promise<object|string>} Fetched proof data
*/ */
export async function fetch (data, opts) { export async function fetch (data, opts) {

View file

@ -13,7 +13,6 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
*/ */
import * as Types from './types.js'
/** /**
* A service provider matched to an identity claim * A service provider matched to an identity claim
@ -22,27 +21,27 @@ import * as Types from './types.js'
*/ */
export class ServiceProvider { export class ServiceProvider {
/** /**
* @param {Types.ServiceProviderObject} serviceProviderObject - JSON representation of a {@link ServiceProvider} * @param {import('./types').ServiceProviderObject} serviceProviderObject - JSON representation of a {@link ServiceProvider}
*/ */
constructor (serviceProviderObject) { constructor (serviceProviderObject) {
/** /**
* Details about the service provider * Details about the service provider
* @type {Types.ServiceProviderAbout} * @type {import('./types').ServiceProviderAbout}
*/ */
this.about = serviceProviderObject.about this.about = serviceProviderObject.about
/** /**
* What the profile would look like if a claim matches this service provider * What the profile would look like if a claim matches this service provider
* @type {Types.ServiceProviderProfile} * @type {import('./types').ServiceProviderProfile}
*/ */
this.profile = serviceProviderObject.profile this.profile = serviceProviderObject.profile
/** /**
* Information about the claim matching process * Information about the claim matching process
* @type {Types.ServiceProviderClaim} * @type {import('./types').ServiceProviderClaim}
*/ */
this.claim = serviceProviderObject.claim this.claim = serviceProviderObject.claim
/** /**
* Information for the proof verification process * Information for the proof verification process
* @type {Types.ServiceProviderProof} * @type {import('./types').ServiceProviderProof}
*/ */
this.proof = serviceProviderObject.proof this.proof = serviceProviderObject.proof
} }
@ -50,7 +49,7 @@ export class ServiceProvider {
/** /**
* Get a JSON representation of the {@link ServiceProvider} * Get a JSON representation of the {@link ServiceProvider}
* @function * @function
* @returns {Types.ServiceProviderObject} JSON representation of a {@link ServiceProvider} * @returns {import('./types').ServiceProviderObject} JSON representation of a {@link ServiceProvider}
*/ */
toJSON () { toJSON () {
return { return {

View file

@ -18,9 +18,7 @@ limitations under the License.
* @module types * @module types
*/ */
import { PublicKey } from 'openpgp' import { PublicKeyType, PublicKeyEncoding, PublicKeyFetchMethod, ProxyPolicy, ClaimFormat, EntityEncodingFormat, ClaimRelation, ProofAccessRestriction, ProofFormat } from './enums'
import * as joseMod from 'jose'
import { ClaimFormat, ClaimRelation, EntityEncodingFormat, ProofAccessRestriction, ProofFormat, ProxyPolicy, PublicKeyEncoding, PublicKeyFetchMethod, PublicKeyType } from './enums.js'
/** /**
* Service provider * Service provider
@ -84,7 +82,7 @@ import { ClaimFormat, ClaimRelation, EntityEncodingFormat, ProofAccessRestrictio
* @property {PublicKeyEncoding} encoding - The encoding of the cryptographic key * @property {PublicKeyEncoding} encoding - The encoding of the cryptographic key
* @property {string} [fingerprint] - The fingerprint of the cryptographic key * @property {string} [fingerprint] - The fingerprint of the cryptographic key
* @property {string} [encodedKey] - The encoded cryptographic key * @property {string} [encodedKey] - The encoded cryptographic key
* @property {PublicKey | joseMod.JWK} [key] - The raw cryptographic key as object (to be removed during toJSON()) * @property {import('openpgp').PublicKey | import('jose').JWK} [key] - The raw cryptographic key as object (to be removed during toJSON())
* @property {ProfilePublicKeyFetch} fetch - Details on how to fetch the public key * @property {ProfilePublicKeyFetch} fetch - Details on how to fetch the public key
*/ */
@ -108,7 +106,7 @@ import { ClaimFormat, ClaimRelation, EntityEncodingFormat, ProofAccessRestrictio
* @typedef {object} ProxyVerificationConfig * @typedef {object} ProxyVerificationConfig
* @property {string} [scheme] - The scheme to use for proxy requests * @property {string} [scheme] - The scheme to use for proxy requests
* @property {string} [hostname] - The hostname of the proxy * @property {string} [hostname] - The hostname of the proxy
* @property {ProxyPolicy} policy - The policy that defines when to use a proxy ({@link module:enums~ProxyPolicy|here}) * @property {ProxyPolicy} policy - The policy that defines when to use a proxy
*/ */
/** /**

View file

@ -15,7 +15,6 @@ limitations under the License.
*/ */
import isFQDN from 'validator/lib/isFQDN.js' import isFQDN from 'validator/lib/isFQDN.js'
import { ClaimFormat } from './enums.js' import { ClaimFormat } from './enums.js'
import * as Types from './types.js'
/** /**
* @module utils * @module utils
@ -25,7 +24,7 @@ import * as Types from './types.js'
* Generate an URL to request data from a proxy server * Generate an URL to request data from a proxy server
* @param {string} type - The name of the fetcher the proxy must use * @param {string} type - The name of the fetcher the proxy must use
* @param {object} data - The data the proxy must provide to the fetcher * @param {object} data - The data the proxy must provide to the fetcher
* @param {Types.VerificationConfig} opts - Options to enable the request * @param {import('./types').VerificationConfig} opts - Options to enable the request
* @returns {string} Generated proxy URL * @returns {string} Generated proxy URL
*/ */
export function generateProxyURL (type, data, opts) { export function generateProxyURL (type, data, opts) {
@ -51,7 +50,7 @@ export function generateProxyURL (type, data, opts) {
/** /**
* Generate the string that must be found in the proof to verify a claim * Generate the string that must be found in the proof to verify a claim
* @param {string} fingerprint - The fingerprint of the claim * @param {string} fingerprint - The fingerprint of the claim
* @param {ClaimFormat} format - The claim's format (see {@link ClaimFormat}) * @param {ClaimFormat} format - The claim's format
* @returns {string} Generate claim * @returns {string} Generate claim
*/ */
export function generateClaim (fingerprint, format) { export function generateClaim (fingerprint, format) {

View file

@ -18,7 +18,6 @@ import { ClaimFormat, EntityEncodingFormat, ClaimRelation, ProofFormat } from '.
import { bcryptVerify, argon2Verify } from 'hash-wasm' import { bcryptVerify, argon2Verify } from 'hash-wasm'
import { decodeHTML, decodeXML } from 'entities' import { decodeHTML, decodeXML } from 'entities'
import { ServiceProvider } from './serviceProvider.js' import { ServiceProvider } from './serviceProvider.js'
import * as Types from './types.js'
/** /**
* @module verifications * @module verifications
@ -29,7 +28,7 @@ import * as Types from './types.js'
* Check if string contains the proof * Check if string contains the proof
* @function * @function
* @param {string} data - Data potentially containing the proof * @param {string} data - Data potentially containing the proof
* @param {Types.VerificationParams} params - Verification parameters * @param {import('./types').VerificationParams} params - Verification parameters
* @returns {Promise<boolean>} Whether the proof was found in the string * @returns {Promise<boolean>} Whether the proof was found in the string
*/ */
const containsProof = async (data, params) => { const containsProof = async (data, params) => {
@ -218,7 +217,7 @@ const containsProof = async (data, params) => {
* @function * @function
* @param {any} proofData - Data potentially containing the proof * @param {any} proofData - Data potentially containing the proof
* @param {string[]} checkPath - Paths to check for proof * @param {string[]} checkPath - Paths to check for proof
* @param {Types.VerificationParams} params - Verification parameters * @param {import('./types').VerificationParams} params - Verification parameters
* @returns {Promise<boolean>} Whether the proof was found in the object * @returns {Promise<boolean>} Whether the proof was found in the object
*/ */
const runJSON = async (proofData, checkPath, params) => { const runJSON = async (proofData, checkPath, params) => {
@ -271,10 +270,10 @@ const runJSON = async (proofData, checkPath, params) => {
* @param {object} proofData - The proof data * @param {object} proofData - The proof data
* @param {ServiceProvider} claimData - The claim data * @param {ServiceProvider} claimData - The claim data
* @param {string} fingerprint - The fingerprint * @param {string} fingerprint - The fingerprint
* @returns {Promise<Types.VerificationResult>} Result of the verification * @returns {Promise<import('./types').VerificationResult>} Result of the verification
*/ */
export async function run (proofData, claimData, fingerprint) { export async function run (proofData, claimData, fingerprint) {
/** @type {Types.VerificationResult} */ /** @type {import('./types').VerificationResult} */
const res = { const res = {
result: false, result: false,
completed: false, completed: false,

View file

@ -2834,6 +2834,11 @@ js2xmlparser@^4.0.2:
dependencies: dependencies:
xmlcreate "^2.0.4" xmlcreate "^2.0.4"
jsdoc-tsimport-plugin@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/jsdoc-tsimport-plugin/-/jsdoc-tsimport-plugin-1.0.5.tgz#a329f48a01c307747931cca81aa856f51bf49c26"
integrity sha512-6mvyF+tXdanf3zxEumTF9Uf/sXGlANP+XohSuiJiOVVWPGxi+3f2a2sy5Ew3W+0PMYUkcGYNxfYd5mMZsIHQpg==
jsdoc-type-pratt-parser@~4.0.0: jsdoc-type-pratt-parser@~4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114" resolved "https://registry.yarnpkg.com/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-4.0.0.tgz#136f0571a99c184d84ec84662c45c29ceff71114"