diff --git a/packages/account-tree-controller/tsconfig.typedoc.json b/packages/account-tree-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/account-tree-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/account-tree-controller/typedoc.json b/packages/account-tree-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/account-tree-controller/typedoc.json +++ b/packages/account-tree-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/accounts-controller/tsconfig.typedoc.json b/packages/accounts-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/accounts-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/accounts-controller/typedoc.json b/packages/accounts-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/accounts-controller/typedoc.json +++ b/packages/accounts-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/address-book-controller/tsconfig.typedoc.json b/packages/address-book-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/address-book-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/address-book-controller/typedoc.json b/packages/address-book-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/address-book-controller/typedoc.json +++ b/packages/address-book-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/ai-controllers/tsconfig.typedoc.json b/packages/ai-controllers/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/ai-controllers/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/ai-controllers/typedoc.json b/packages/ai-controllers/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/ai-controllers/typedoc.json +++ b/packages/ai-controllers/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/analytics-controller/tsconfig.typedoc.json b/packages/analytics-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/analytics-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/analytics-controller/typedoc.json b/packages/analytics-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/analytics-controller/typedoc.json +++ b/packages/analytics-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/analytics-data-regulation-controller/tsconfig.typedoc.json b/packages/analytics-data-regulation-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/analytics-data-regulation-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/analytics-data-regulation-controller/typedoc.json b/packages/analytics-data-regulation-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/analytics-data-regulation-controller/typedoc.json +++ b/packages/analytics-data-regulation-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/announcement-controller/tsconfig.typedoc.json b/packages/announcement-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/announcement-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/announcement-controller/typedoc.json b/packages/announcement-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/announcement-controller/typedoc.json +++ b/packages/announcement-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/app-metadata-controller/tsconfig.typedoc.json b/packages/app-metadata-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/app-metadata-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/app-metadata-controller/typedoc.json b/packages/app-metadata-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/app-metadata-controller/typedoc.json +++ b/packages/app-metadata-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/approval-controller/tsconfig.typedoc.json b/packages/approval-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/approval-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/approval-controller/typedoc.json b/packages/approval-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/approval-controller/typedoc.json +++ b/packages/approval-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/assets-controller/tsconfig.typedoc.json b/packages/assets-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/assets-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/assets-controller/typedoc.json b/packages/assets-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/assets-controller/typedoc.json +++ b/packages/assets-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/assets-controllers/src/selectors/token-selectors.ts b/packages/assets-controllers/src/selectors/token-selectors.ts index 61716fc7fdb..5e39e981b0a 100644 --- a/packages/assets-controllers/src/selectors/token-selectors.ts +++ b/packages/assets-controllers/src/selectors/token-selectors.ts @@ -8,7 +8,6 @@ import type { NetworkState } from '@metamask/network-controller'; import { hexToBigInt, parseCaipAssetType } from '@metamask/utils'; import type { Hex } from '@metamask/utils'; import { createSelector, weakMapMemoize } from 'reselect'; -import { TokenRwaData } from 'src/token-service'; import { parseBalanceWithDecimals, @@ -19,6 +18,7 @@ import type { MultichainAssetsControllerState } from '../MultichainAssetsControl import type { MultichainAssetsRatesControllerState } from '../MultichainAssetsRatesController'; import type { MultichainBalancesControllerState } from '../MultichainBalancesController'; import { getNativeTokenAddress } from '../token-prices-service/codefi-v2'; +import { TokenRwaData } from '../token-service'; import type { TokenBalancesControllerState } from '../TokenBalancesController'; import type { Token, TokenRatesControllerState } from '../TokenRatesController'; import type { TokensControllerState } from '../TokensController'; diff --git a/packages/assets-controllers/tsconfig.typedoc.json b/packages/assets-controllers/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/assets-controllers/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/assets-controllers/typedoc.json b/packages/assets-controllers/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/assets-controllers/typedoc.json +++ b/packages/assets-controllers/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/base-controller/tsconfig.typedoc.json b/packages/base-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/base-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/base-controller/typedoc.json b/packages/base-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/base-controller/typedoc.json +++ b/packages/base-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/bridge-controller/tsconfig.typedoc.json b/packages/bridge-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/bridge-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/bridge-controller/typedoc.json b/packages/bridge-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/bridge-controller/typedoc.json +++ b/packages/bridge-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/bridge-status-controller/tsconfig.typedoc.json b/packages/bridge-status-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/bridge-status-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/bridge-status-controller/typedoc.json b/packages/bridge-status-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/bridge-status-controller/typedoc.json +++ b/packages/bridge-status-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/build-utils/tsconfig.typedoc.json b/packages/build-utils/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/build-utils/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/build-utils/typedoc.json b/packages/build-utils/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/build-utils/typedoc.json +++ b/packages/build-utils/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/chain-agnostic-permission/tsconfig.typedoc.json b/packages/chain-agnostic-permission/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/chain-agnostic-permission/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/chain-agnostic-permission/typedoc.json b/packages/chain-agnostic-permission/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/chain-agnostic-permission/typedoc.json +++ b/packages/chain-agnostic-permission/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/claims-controller/tsconfig.typedoc.json b/packages/claims-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/claims-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/claims-controller/typedoc.json b/packages/claims-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/claims-controller/typedoc.json +++ b/packages/claims-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/composable-controller/tsconfig.typedoc.json b/packages/composable-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/composable-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/composable-controller/typedoc.json b/packages/composable-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/composable-controller/typedoc.json +++ b/packages/composable-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/connectivity-controller/tsconfig.typedoc.json b/packages/connectivity-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/connectivity-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/connectivity-controller/typedoc.json b/packages/connectivity-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/connectivity-controller/typedoc.json +++ b/packages/connectivity-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/controller-utils/tsconfig.typedoc.json b/packages/controller-utils/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/controller-utils/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/controller-utils/typedoc.json b/packages/controller-utils/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/controller-utils/typedoc.json +++ b/packages/controller-utils/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/core-backend/docs/.nojekyll b/packages/core-backend/docs/.nojekyll new file mode 100644 index 00000000000..e2ac6616add --- /dev/null +++ b/packages/core-backend/docs/.nojekyll @@ -0,0 +1 @@ +TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/packages/core-backend/docs/assets/highlight.css b/packages/core-backend/docs/assets/highlight.css new file mode 100644 index 00000000000..ecb07c6faea --- /dev/null +++ b/packages/core-backend/docs/assets/highlight.css @@ -0,0 +1,92 @@ +:root { + --light-hl-0: #795E26; + --dark-hl-0: #DCDCAA; + --light-hl-1: #000000; + --dark-hl-1: #D4D4D4; + --light-hl-2: #A31515; + --dark-hl-2: #CE9178; + --light-hl-3: #AF00DB; + --dark-hl-3: #C586C0; + --light-hl-4: #001080; + --dark-hl-4: #9CDCFE; + --light-hl-5: #008000; + --dark-hl-5: #6A9955; + --light-hl-6: #0000FF; + --dark-hl-6: #569CD6; + --light-hl-7: #0070C1; + --dark-hl-7: #4FC1FF; + --light-hl-8: #098658; + --dark-hl-8: #B5CEA8; + --light-hl-9: #267F99; + --dark-hl-9: #4EC9B0; + --light-code-background: #FFFFFF; + --dark-code-background: #1E1E1E; +} + +@media (prefers-color-scheme: light) { :root { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --code-background: var(--light-code-background); +} } + +@media (prefers-color-scheme: dark) { :root { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --code-background: var(--dark-code-background); +} } + +:root[data-theme='light'] { + --hl-0: var(--light-hl-0); + --hl-1: var(--light-hl-1); + --hl-2: var(--light-hl-2); + --hl-3: var(--light-hl-3); + --hl-4: var(--light-hl-4); + --hl-5: var(--light-hl-5); + --hl-6: var(--light-hl-6); + --hl-7: var(--light-hl-7); + --hl-8: var(--light-hl-8); + --hl-9: var(--light-hl-9); + --code-background: var(--light-code-background); +} + +:root[data-theme='dark'] { + --hl-0: var(--dark-hl-0); + --hl-1: var(--dark-hl-1); + --hl-2: var(--dark-hl-2); + --hl-3: var(--dark-hl-3); + --hl-4: var(--dark-hl-4); + --hl-5: var(--dark-hl-5); + --hl-6: var(--dark-hl-6); + --hl-7: var(--dark-hl-7); + --hl-8: var(--dark-hl-8); + --hl-9: var(--dark-hl-9); + --code-background: var(--dark-code-background); +} + +.hl-0 { color: var(--hl-0); } +.hl-1 { color: var(--hl-1); } +.hl-2 { color: var(--hl-2); } +.hl-3 { color: var(--hl-3); } +.hl-4 { color: var(--hl-4); } +.hl-5 { color: var(--hl-5); } +.hl-6 { color: var(--hl-6); } +.hl-7 { color: var(--hl-7); } +.hl-8 { color: var(--hl-8); } +.hl-9 { color: var(--hl-9); } +pre, code { background: var(--code-background); } diff --git a/packages/core-backend/docs/assets/icons.js b/packages/core-backend/docs/assets/icons.js new file mode 100644 index 00000000000..b79c9e89fbc --- /dev/null +++ b/packages/core-backend/docs/assets/icons.js @@ -0,0 +1,15 @@ +(function(svg) { + svg.innerHTML = ``; + svg.style.display = 'none'; + if (location.protocol === 'file:') { + if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', updateUseElements); + else updateUseElements() + function updateUseElements() { + document.querySelectorAll('use').forEach(el => { + if (el.getAttribute('href').includes('#icon-')) { + el.setAttribute('href', el.getAttribute('href').replace(/.*#/, '#')); + } + }); + } + } +})(document.body.appendChild(document.createElementNS('http://www.w3.org/2000/svg', 'svg'))) \ No newline at end of file diff --git a/packages/core-backend/docs/assets/icons.svg b/packages/core-backend/docs/assets/icons.svg new file mode 100644 index 00000000000..7dead61183b --- /dev/null +++ b/packages/core-backend/docs/assets/icons.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/core-backend/docs/assets/main.js b/packages/core-backend/docs/assets/main.js new file mode 100644 index 00000000000..d6f138860f0 --- /dev/null +++ b/packages/core-backend/docs/assets/main.js @@ -0,0 +1,59 @@ +"use strict"; +"use strict";(()=>{var Ce=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ce(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),y=s.str.charAt(1),p;y in s.node.edges?p=s.node.edges[y]:(p=new t.TokenSet,s.node.edges[y]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(console.log("Show page"),document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){console.log("Scorlling");let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!e.checkVisibility()){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ve(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ne(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ve(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` + ${ce(l.parent,i)}.${d}`);let y=document.createElement("li");y.classList.value=l.classes??"";let p=document.createElement("a");p.href=r.base+l.url,p.innerHTML=u+d,y.append(p),e.appendChild(y)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ne(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var I=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",fe="mousemove",H="mouseup",J={x:0,y:0},pe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",fe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(fe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{pe&&(t.preventDefault(),t.stopImmediatePropagation(),pe=!1)});var X=class extends I{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ye=document.head.appendChild(document.createElement("style"));ye.dataset.for="filters";var Y=class extends I{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ye.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,this.app.updateIndexVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.app.updateIndexVisibility()}};var Z=class extends I{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ve(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ve(t.value)})}function ve(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.pathname===r.pathname&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); +/*! Bundled license information: + +lunr/lunr.js: + (** + * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 + * Copyright (C) 2020 Oliver Nightingale + * @license MIT + *) + (*! + * lunr.utils + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Set + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.tokenizer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Pipeline + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Vector + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.stemmer + * Copyright (C) 2020 Oliver Nightingale + * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt + *) + (*! + * lunr.stopWordFilter + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.trimmer + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.TokenSet + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Index + * Copyright (C) 2020 Oliver Nightingale + *) + (*! + * lunr.Builder + * Copyright (C) 2020 Oliver Nightingale + *) +*/ diff --git a/packages/core-backend/docs/assets/navigation.js b/packages/core-backend/docs/assets/navigation.js new file mode 100644 index 00000000000..6eedf27d097 --- /dev/null +++ b/packages/core-backend/docs/assets/navigation.js @@ -0,0 +1 @@ +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE6WZa2/iOBSG/wufq+22M91Lv9HAtEgFKqAdrVYr5JoDWBg7azudQaP97yvMLYkvx8l8JOc9z2s7x7fw94+Oge+mc9/5Cu9TSTdg+h8gzGyXQ+eqkxOz7tx3QBRbfe0qflmbLe9cdTZMLDr3f/x35dKmhpgwyUbDlC6lshCmSw37YGY3BfXBaIlGOdEa9LVfV+Xe3HrIupuzjDMQJgi9SKK8nL1wYpZSbYO8uiTGeyB0A2JxGahQ1wPCGPvJmLyvlFQu7RyK5b8oRiE2cjVBjDWTGxARVDWOkmKtqgkSquNUT0PQmqxKg292uVt1R1WVe/vrn7/f3N2iNb3/KYVGLKrilk6cy2+waGZYyfkpX7t2NLM9pLRzfSCcCAqv+YKYIynN25PYrgVNOvwzPd2XH4gVqDSrs7yd2zhvUD5HcTun/RZR6GxNxKrRC3TzWvoX75oqZrtgl8YmbfDmtmvHTBGhiZ2Bzas5kIy2pL5lhV57QIfytQa3B/uHWGZg2wusanF1S69MCgGWYE8xsQptTmjZJv9iExW3dAouN5i+pV+g8uJq3Msu8i7UPk7MPkyoAOMQxEj7Ny+AZ4Tzd0I3dVYtjNLsFJzAvwVoEzi7+DQoVzLxCHQjp7k09oznUB0Fxux/p7bqJ8TAQCxlnViPY7wvYOg6UCvlGMYZErUB0yOG9MAQxh2YI8CIIzDfpNr4OlkKoZSlGRjYOoTDYyz7hay8o3x6juYru6nluVQGFsdm6wnoXArtVENcjXntZzKokTRsySjZv7RAKQeFaQ6n9kTpNRFKLu37gWL0SHDqcSizQikQdOcyawKUuNMGtuWh2xe0g/WqMLa9bvWYpvID1M5XtK4iiTkEQxaeZlaCOCn3Hj5OzxPyHwkToPRUquNxx8NyNCj3clBzcJdQEmXp7s2n53g+iAUTq327H5wyq0absALj5ChSmfaVh3A2iJHebo4H5glwW9p6zfIJ6II7pRGRJruU3mFw2YyKcafyjhnx8Mpw+hPTRipGCT985AkbhJS4x7RYrUAbWIwpPSxk8IVLqSJmaEqKa+K2FpHiLoc1D85Lf9gkpEz0aNCduD7B71KnD7snotcRq5AUdbm1N1pAexPQ4fzjgd23UVWCyaRIG+sKnDlamgivHMVZ6aURluIuDasQ0Sf6Yfx03id7DAjiqmGclrxuBpW4x/nSFaG7GpT7Ga1nR4EzhwU3rMmmiGagnnexGX7XZIbfoSPiKFAm4QWEjm2VIEY6fwq5fF3yXfkCsmR64LpUjyfzyvehILQsQr8tZtn4dTSbd7PZ4G0w+2s+7U/eBll/3n1+Hn/t92xgPJpezD6IYuSd7z9BJuZW2/CpkX3/rT+atXM/pMbMXwbz18mzn36MRdIfs/lsMOx700+xSPp01n3uhwmlcARCCacFJwYmYNSuB5yU7iHLQhwm/7VHVoX+9rkMVUAMRP6rLYH90gh8BSbjUsMEiC7X8IVZVURQei0LvrBd8nFKYQfyz//0teNy0h8AAA==" \ No newline at end of file diff --git a/packages/core-backend/docs/assets/search.js b/packages/core-backend/docs/assets/search.js new file mode 100644 index 00000000000..f42c351143a --- /dev/null +++ b/packages/core-backend/docs/assets/search.js @@ -0,0 +1 @@ +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/packages/core-backend/docs/assets/style.css b/packages/core-backend/docs/assets/style.css new file mode 100644 index 00000000000..778b9492791 --- /dev/null +++ b/packages/core-backend/docs/assets/style.css @@ -0,0 +1,1412 @@ +:root { + /* Light */ + --light-color-background: #f2f4f8; + --light-color-background-secondary: #eff0f1; + --light-color-warning-text: #222; + --light-color-background-warning: #e6e600; + --light-color-icon-background: var(--light-color-background); + --light-color-accent: #c5c7c9; + --light-color-active-menu-item: var(--light-color-accent); + --light-color-text: #222; + --light-color-text-aside: #6e6e6e; + --light-color-link: #1f70c2; + + --light-color-ts-keyword: #056bd6; + --light-color-ts-project: #b111c9; + --light-color-ts-module: var(--light-color-ts-project); + --light-color-ts-namespace: var(--light-color-ts-project); + --light-color-ts-enum: #7e6f15; + --light-color-ts-enum-member: var(--light-color-ts-enum); + --light-color-ts-variable: #4760ec; + --light-color-ts-function: #572be7; + --light-color-ts-class: #1f70c2; + --light-color-ts-interface: #108024; + --light-color-ts-constructor: var(--light-color-ts-class); + --light-color-ts-property: var(--light-color-ts-variable); + --light-color-ts-method: var(--light-color-ts-function); + --light-color-ts-call-signature: var(--light-color-ts-method); + --light-color-ts-index-signature: var(--light-color-ts-property); + --light-color-ts-constructor-signature: var(--light-color-ts-constructor); + --light-color-ts-parameter: var(--light-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --light-color-ts-type-parameter: #a55c0e; + --light-color-ts-accessor: var(--light-color-ts-property); + --light-color-ts-get-signature: var(--light-color-ts-accessor); + --light-color-ts-set-signature: var(--light-color-ts-accessor); + --light-color-ts-type-alias: #d51270; + /* reference not included as links will be colored with the kind that it points to */ + + --light-external-icon: url("data:image/svg+xml;utf8,"); + --light-color-scheme: light; + + /* Dark */ + --dark-color-background: #2b2e33; + --dark-color-background-secondary: #1e2024; + --dark-color-background-warning: #bebe00; + --dark-color-warning-text: #222; + --dark-color-icon-background: var(--dark-color-background-secondary); + --dark-color-accent: #9096a2; + --dark-color-active-menu-item: #5d5d6a; + --dark-color-text: #f5f5f5; + --dark-color-text-aside: #dddddd; + --dark-color-link: #00aff4; + + --dark-color-ts-keyword: #3399ff; + --dark-color-ts-project: #e358ff; + --dark-color-ts-module: var(--dark-color-ts-project); + --dark-color-ts-namespace: var(--dark-color-ts-project); + --dark-color-ts-enum: #f4d93e; + --dark-color-ts-enum-member: var(--dark-color-ts-enum); + --dark-color-ts-variable: #798dff; + --dark-color-ts-function: #a280ff; + --dark-color-ts-class: #8ac4ff; + --dark-color-ts-interface: #6cff87; + --dark-color-ts-constructor: var(--dark-color-ts-class); + --dark-color-ts-property: var(--dark-color-ts-variable); + --dark-color-ts-method: var(--dark-color-ts-function); + --dark-color-ts-call-signature: var(--dark-color-ts-method); + --dark-color-ts-index-signature: var(--dark-color-ts-property); + --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); + --dark-color-ts-parameter: var(--dark-color-ts-variable); + /* type literal not included as links will never be generated to it */ + --dark-color-ts-type-parameter: #e07d13; + --dark-color-ts-accessor: var(--dark-color-ts-property); + --dark-color-ts-get-signature: var(--dark-color-ts-accessor); + --dark-color-ts-set-signature: var(--dark-color-ts-accessor); + --dark-color-ts-type-alias: #ff6492; + /* reference not included as links will be colored with the kind that it points to */ + + --dark-external-icon: url("data:image/svg+xml;utf8,"); + --dark-color-scheme: dark; +} + +@media (prefers-color-scheme: light) { + :root { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); + } +} + +@media (prefers-color-scheme: dark) { + :root { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); + } +} + +html { + color-scheme: var(--color-scheme); +} + +body { + margin: 0; +} + +:root[data-theme="light"] { + --color-background: var(--light-color-background); + --color-background-secondary: var(--light-color-background-secondary); + --color-background-warning: var(--light-color-background-warning); + --color-warning-text: var(--light-color-warning-text); + --color-icon-background: var(--light-color-icon-background); + --color-accent: var(--light-color-accent); + --color-active-menu-item: var(--light-color-active-menu-item); + --color-text: var(--light-color-text); + --color-text-aside: var(--light-color-text-aside); + --color-link: var(--light-color-link); + + --color-ts-keyword: var(--light-color-ts-keyword); + --color-ts-module: var(--light-color-ts-module); + --color-ts-namespace: var(--light-color-ts-namespace); + --color-ts-enum: var(--light-color-ts-enum); + --color-ts-enum-member: var(--light-color-ts-enum-member); + --color-ts-variable: var(--light-color-ts-variable); + --color-ts-function: var(--light-color-ts-function); + --color-ts-class: var(--light-color-ts-class); + --color-ts-interface: var(--light-color-ts-interface); + --color-ts-constructor: var(--light-color-ts-constructor); + --color-ts-property: var(--light-color-ts-property); + --color-ts-method: var(--light-color-ts-method); + --color-ts-call-signature: var(--light-color-ts-call-signature); + --color-ts-index-signature: var(--light-color-ts-index-signature); + --color-ts-constructor-signature: var( + --light-color-ts-constructor-signature + ); + --color-ts-parameter: var(--light-color-ts-parameter); + --color-ts-type-parameter: var(--light-color-ts-type-parameter); + --color-ts-accessor: var(--light-color-ts-accessor); + --color-ts-get-signature: var(--light-color-ts-get-signature); + --color-ts-set-signature: var(--light-color-ts-set-signature); + --color-ts-type-alias: var(--light-color-ts-type-alias); + + --external-icon: var(--light-external-icon); + --color-scheme: var(--light-color-scheme); +} + +:root[data-theme="dark"] { + --color-background: var(--dark-color-background); + --color-background-secondary: var(--dark-color-background-secondary); + --color-background-warning: var(--dark-color-background-warning); + --color-warning-text: var(--dark-color-warning-text); + --color-icon-background: var(--dark-color-icon-background); + --color-accent: var(--dark-color-accent); + --color-active-menu-item: var(--dark-color-active-menu-item); + --color-text: var(--dark-color-text); + --color-text-aside: var(--dark-color-text-aside); + --color-link: var(--dark-color-link); + + --color-ts-keyword: var(--dark-color-ts-keyword); + --color-ts-module: var(--dark-color-ts-module); + --color-ts-namespace: var(--dark-color-ts-namespace); + --color-ts-enum: var(--dark-color-ts-enum); + --color-ts-enum-member: var(--dark-color-ts-enum-member); + --color-ts-variable: var(--dark-color-ts-variable); + --color-ts-function: var(--dark-color-ts-function); + --color-ts-class: var(--dark-color-ts-class); + --color-ts-interface: var(--dark-color-ts-interface); + --color-ts-constructor: var(--dark-color-ts-constructor); + --color-ts-property: var(--dark-color-ts-property); + --color-ts-method: var(--dark-color-ts-method); + --color-ts-call-signature: var(--dark-color-ts-call-signature); + --color-ts-index-signature: var(--dark-color-ts-index-signature); + --color-ts-constructor-signature: var( + --dark-color-ts-constructor-signature + ); + --color-ts-parameter: var(--dark-color-ts-parameter); + --color-ts-type-parameter: var(--dark-color-ts-type-parameter); + --color-ts-accessor: var(--dark-color-ts-accessor); + --color-ts-get-signature: var(--dark-color-ts-get-signature); + --color-ts-set-signature: var(--dark-color-ts-set-signature); + --color-ts-type-alias: var(--dark-color-ts-type-alias); + + --external-icon: var(--dark-external-icon); + --color-scheme: var(--dark-color-scheme); +} + +.always-visible, +.always-visible .tsd-signatures { + display: inherit !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + line-height: 1.2; +} + +h1 > a:not(.link), +h2 > a:not(.link), +h3 > a:not(.link), +h4 > a:not(.link), +h5 > a:not(.link), +h6 > a:not(.link) { + text-decoration: none; + color: var(--color-text); +} + +h1 { + font-size: 1.875rem; + margin: 0.67rem 0; +} + +h2 { + font-size: 1.5rem; + margin: 0.83rem 0; +} + +h3 { + font-size: 1.25rem; + margin: 1rem 0; +} + +h4 { + font-size: 1.05rem; + margin: 1.33rem 0; +} + +h5 { + font-size: 1rem; + margin: 1.5rem 0; +} + +h6 { + font-size: 0.875rem; + margin: 2.33rem 0; +} + +.uppercase { + text-transform: uppercase; +} + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +.container { + max-width: 1700px; + padding: 0 2rem; +} + +/* Footer */ +footer { + border-top: 1px solid var(--color-accent); + padding-top: 1rem; + padding-bottom: 1rem; + max-height: 3.5rem; +} +.tsd-generator { + margin: 0 1em; +} + +.container-main { + margin: 0 auto; + /* toolbar, footer, margin */ + min-height: calc(100vh - 41px - 56px - 4rem); +} + +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes fade-out { + from { + opacity: 1; + visibility: visible; + } + to { + opacity: 0; + } +} +@keyframes fade-in-delayed { + 0% { + opacity: 0; + } + 33% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fade-out-delayed { + 0% { + opacity: 1; + visibility: visible; + } + 66% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes pop-in-from-right { + from { + transform: translate(100%, 0); + } + to { + transform: translate(0, 0); + } +} +@keyframes pop-out-to-right { + from { + transform: translate(0, 0); + visibility: visible; + } + to { + transform: translate(100%, 0); + } +} +body { + background: var(--color-background); + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", + Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; + font-size: 16px; + color: var(--color-text); +} + +a { + color: var(--color-link); + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +a.external[target="_blank"] { + background-image: var(--external-icon); + background-position: top 3px right; + background-repeat: no-repeat; + padding-right: 13px; +} + +code, +pre { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + padding: 0.2em; + margin: 0; + font-size: 0.875rem; + border-radius: 0.8em; +} + +pre { + position: relative; + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; + padding: 10px; + border: 1px solid var(--color-accent); +} +pre code { + padding: 0; + font-size: 100%; +} +pre > button { + position: absolute; + top: 10px; + right: 10px; + opacity: 0; + transition: opacity 0.1s; + box-sizing: border-box; +} +pre:hover > button, +pre > button.visible { + opacity: 1; +} + +blockquote { + margin: 1em 0; + padding-left: 1em; + border-left: 4px solid gray; +} + +.tsd-typography { + line-height: 1.333em; +} +.tsd-typography ul { + list-style: square; + padding: 0 0 0 20px; + margin: 0; +} +.tsd-typography .tsd-index-panel h3, +.tsd-index-panel .tsd-typography h3, +.tsd-typography h4, +.tsd-typography h5, +.tsd-typography h6 { + font-size: 1em; +} +.tsd-typography h5, +.tsd-typography h6 { + font-weight: normal; +} +.tsd-typography p, +.tsd-typography ul, +.tsd-typography ol { + margin: 1em 0; +} +.tsd-typography table { + border-collapse: collapse; + border: none; +} +.tsd-typography td, +.tsd-typography th { + padding: 6px 13px; + border: 1px solid var(--color-accent); +} +.tsd-typography thead, +.tsd-typography tr:nth-child(even) { + background-color: var(--color-background-secondary); +} + +.tsd-breadcrumb { + margin: 0; + padding: 0; + color: var(--color-text-aside); +} +.tsd-breadcrumb a { + color: var(--color-text-aside); + text-decoration: none; +} +.tsd-breadcrumb a:hover { + text-decoration: underline; +} +.tsd-breadcrumb li { + display: inline; +} +.tsd-breadcrumb li:after { + content: " / "; +} + +.tsd-comment-tags { + display: flex; + flex-direction: column; +} +dl.tsd-comment-tag-group { + display: flex; + align-items: center; + overflow: hidden; + margin: 0.5em 0; +} +dl.tsd-comment-tag-group dt { + display: flex; + margin-right: 0.5em; + font-size: 0.875em; + font-weight: normal; +} +dl.tsd-comment-tag-group dd { + margin: 0; +} +code.tsd-tag { + padding: 0.25em 0.4em; + border: 0.1em solid var(--color-accent); + margin-right: 0.25em; + font-size: 70%; +} +h1 code.tsd-tag:first-of-type { + margin-left: 0.25em; +} + +dl.tsd-comment-tag-group dd:before, +dl.tsd-comment-tag-group dd:after { + content: " "; +} +dl.tsd-comment-tag-group dd pre, +dl.tsd-comment-tag-group dd:after { + clear: both; +} +dl.tsd-comment-tag-group p { + margin: 0; +} + +.tsd-panel.tsd-comment .lead { + font-size: 1.1em; + line-height: 1.333em; + margin-bottom: 2em; +} +.tsd-panel.tsd-comment .lead:last-child { + margin-bottom: 0; +} + +.tsd-filter-visibility h4 { + font-size: 1rem; + padding-top: 0.75rem; + padding-bottom: 0.5rem; + margin: 0; +} +.tsd-filter-item:not(:last-child) { + margin-bottom: 0.5rem; +} +.tsd-filter-input { + display: flex; + width: fit-content; + width: -moz-fit-content; + align-items: center; + user-select: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + cursor: pointer; +} +.tsd-filter-input input[type="checkbox"] { + cursor: pointer; + position: absolute; + width: 1.5em; + height: 1.5em; + opacity: 0; +} +.tsd-filter-input input[type="checkbox"]:disabled { + pointer-events: none; +} +.tsd-filter-input svg { + cursor: pointer; + width: 1.5em; + height: 1.5em; + margin-right: 0.5em; + border-radius: 0.33em; + /* Leaving this at full opacity breaks event listeners on Firefox. + Don't remove unless you know what you're doing. */ + opacity: 0.99; +} +.tsd-filter-input input[type="checkbox"]:focus + svg { + transform: scale(0.95); +} +.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { + transform: scale(1); +} +.tsd-checkbox-background { + fill: var(--color-accent); +} +input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { + stroke: var(--color-text); +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { + fill: var(--color-background); + stroke: var(--color-accent); + stroke-width: 0.25rem; +} +.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { + stroke: var(--color-accent); +} + +.tsd-theme-toggle { + padding-top: 0.75rem; +} +.tsd-theme-toggle > h4 { + display: inline; + vertical-align: middle; + margin-right: 0.75rem; +} + +.tsd-hierarchy { + list-style: square; + margin: 0; +} +.tsd-hierarchy .target { + font-weight: bold; +} + +.tsd-full-hierarchy:not(:last-child) { + margin-bottom: 1em; + padding-bottom: 1em; + border-bottom: 1px solid var(--color-accent); +} +.tsd-full-hierarchy, +.tsd-full-hierarchy ul { + list-style: none; + margin: 0; + padding: 0; +} +.tsd-full-hierarchy ul { + padding-left: 1.5rem; +} +.tsd-full-hierarchy a { + padding: 0.25rem 0 !important; + font-size: 1rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} + +.tsd-panel-group.tsd-index-group { + margin-bottom: 0; +} +.tsd-index-panel .tsd-index-list { + list-style: none; + line-height: 1.333em; + margin: 0; + padding: 0.25rem 0 0 0; + overflow: hidden; + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 1rem; + grid-template-rows: auto; +} +@media (max-width: 1024px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(2, 1fr); + } +} +@media (max-width: 768px) { + .tsd-index-panel .tsd-index-list { + grid-template-columns: repeat(1, 1fr); + } +} +.tsd-index-panel .tsd-index-list li { + -webkit-page-break-inside: avoid; + -moz-page-break-inside: avoid; + -ms-page-break-inside: avoid; + -o-page-break-inside: avoid; + page-break-inside: avoid; +} + +.tsd-flag { + display: inline-block; + padding: 0.25em 0.4em; + border-radius: 4px; + color: var(--color-comment-tag-text); + background-color: var(--color-comment-tag); + text-indent: 0; + font-size: 75%; + line-height: 1; + font-weight: normal; +} + +.tsd-anchor { + position: relative; + top: -100px; +} + +.tsd-member { + position: relative; +} +.tsd-member .tsd-anchor + h3 { + display: flex; + align-items: center; + margin-top: 0; + margin-bottom: 0; + border-bottom: none; +} + +.tsd-navigation.settings { + margin: 1rem 0; +} +.tsd-navigation > a, +.tsd-navigation .tsd-accordion-summary { + width: calc(100% - 0.25rem); + display: flex; + align-items: center; +} +.tsd-navigation a, +.tsd-navigation summary > span, +.tsd-page-navigation a { + display: flex; + width: calc(100% - 0.25rem); + align-items: center; + padding: 0.25rem; + color: var(--color-text); + text-decoration: none; + box-sizing: border-box; +} +.tsd-navigation a.current, +.tsd-page-navigation a.current { + background: var(--color-active-menu-item); +} +.tsd-navigation a:hover, +.tsd-page-navigation a:hover { + text-decoration: underline; +} +.tsd-navigation ul, +.tsd-page-navigation ul { + margin-top: 0; + margin-bottom: 0; + padding: 0; + list-style: none; +} +.tsd-navigation li, +.tsd-page-navigation li { + padding: 0; + max-width: 100%; +} +.tsd-nested-navigation { + margin-left: 3rem; +} +.tsd-nested-navigation > li > details { + margin-left: -1.5rem; +} +.tsd-small-nested-navigation { + margin-left: 1.5rem; +} +.tsd-small-nested-navigation > li > details { + margin-left: -1.5rem; +} + +.tsd-page-navigation ul { + padding-left: 1.75rem; +} + +#tsd-sidebar-links a { + margin-top: 0; + margin-bottom: 0.5rem; + line-height: 1.25rem; +} +#tsd-sidebar-links a:last-of-type { + margin-bottom: 0; +} + +a.tsd-index-link { + padding: 0.25rem 0 !important; + font-size: 1rem; + line-height: 1.25rem; + display: inline-flex; + align-items: center; + color: var(--color-text); +} +.tsd-accordion-summary { + list-style-type: none; /* hide marker on non-safari */ + outline: none; /* broken on safari, so just hide it */ +} +.tsd-accordion-summary::-webkit-details-marker { + display: none; /* hide marker on safari */ +} +.tsd-accordion-summary, +.tsd-accordion-summary a { + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + + cursor: pointer; +} +.tsd-accordion-summary a { + width: calc(100% - 1.5rem); +} +.tsd-accordion-summary > * { + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; +} +.tsd-index-accordion .tsd-accordion-summary > svg { + margin-left: 0.25rem; +} +.tsd-index-content > :not(:first-child) { + margin-top: 0.75rem; +} +.tsd-index-heading { + margin-top: 1.5rem; + margin-bottom: 0.75rem; +} + +.tsd-kind-icon { + margin-right: 0.5rem; + width: 1.25rem; + height: 1.25rem; + min-width: 1.25rem; + min-height: 1.25rem; +} +.tsd-kind-icon path { + transform-origin: center; + transform: scale(1.1); +} +.tsd-signature > .tsd-kind-icon { + margin-right: 0.8rem; +} + +.tsd-panel { + margin-bottom: 2.5rem; +} +.tsd-panel.tsd-member { + margin-bottom: 4rem; +} +.tsd-panel:empty { + display: none; +} +.tsd-panel > h1, +.tsd-panel > h2, +.tsd-panel > h3 { + margin: 1.5rem -1.5rem 0.75rem -1.5rem; + padding: 0 1.5rem 0.75rem 1.5rem; +} +.tsd-panel > h1.tsd-before-signature, +.tsd-panel > h2.tsd-before-signature, +.tsd-panel > h3.tsd-before-signature { + margin-bottom: 0; + border-bottom: none; +} + +.tsd-panel-group { + margin: 4rem 0; +} +.tsd-panel-group.tsd-index-group { + margin: 2rem 0; +} +.tsd-panel-group.tsd-index-group details { + margin: 2rem 0; +} + +#tsd-search { + transition: background-color 0.2s; +} +#tsd-search .title { + position: relative; + z-index: 2; +} +#tsd-search .field { + position: absolute; + left: 0; + top: 0; + right: 2.5rem; + height: 100%; +} +#tsd-search .field input { + box-sizing: border-box; + position: relative; + top: -50px; + z-index: 1; + width: 100%; + padding: 0 10px; + opacity: 0; + outline: 0; + border: 0; + background: transparent; + color: var(--color-text); +} +#tsd-search .field label { + position: absolute; + overflow: hidden; + right: -40px; +} +#tsd-search .field input, +#tsd-search .title, +#tsd-toolbar-links a { + transition: opacity 0.2s; +} +#tsd-search .results { + position: absolute; + visibility: hidden; + top: 40px; + width: 100%; + margin: 0; + padding: 0; + list-style: none; + box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); +} +#tsd-search .results li { + background-color: var(--color-background); + line-height: initial; + padding: 4px; +} +#tsd-search .results li:nth-child(even) { + background-color: var(--color-background-secondary); +} +#tsd-search .results li.state { + display: none; +} +#tsd-search .results li.current:not(.no-results), +#tsd-search .results li:hover:not(.no-results) { + background-color: var(--color-accent); +} +#tsd-search .results a { + display: flex; + align-items: center; + padding: 0.25rem; + box-sizing: border-box; +} +#tsd-search .results a:before { + top: 10px; +} +#tsd-search .results span.parent { + color: var(--color-text-aside); + font-weight: normal; +} +#tsd-search.has-focus { + background-color: var(--color-accent); +} +#tsd-search.has-focus .field input { + top: 0; + opacity: 1; +} +#tsd-search.has-focus .title, +#tsd-search.has-focus #tsd-toolbar-links a { + z-index: 0; + opacity: 0; +} +#tsd-search.has-focus .results { + visibility: visible; +} +#tsd-search.loading .results li.state.loading { + display: block; +} +#tsd-search.failure .results li.state.failure { + display: block; +} + +#tsd-toolbar-links { + position: absolute; + top: 0; + right: 2rem; + height: 100%; + display: flex; + align-items: center; + justify-content: flex-end; +} +#tsd-toolbar-links a { + margin-left: 1.5rem; +} +#tsd-toolbar-links a:hover { + text-decoration: underline; +} + +.tsd-signature { + margin: 0 0 1rem 0; + padding: 1rem 0.5rem; + border: 1px solid var(--color-accent); + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; + font-size: 14px; + overflow-x: auto; +} + +.tsd-signature-keyword { + color: var(--color-ts-keyword); + font-weight: normal; +} + +.tsd-signature-symbol { + color: var(--color-text-aside); + font-weight: normal; +} + +.tsd-signature-type { + font-style: italic; + font-weight: normal; +} + +.tsd-signatures { + padding: 0; + margin: 0 0 1em 0; + list-style-type: none; +} +.tsd-signatures .tsd-signature { + margin: 0; + border-color: var(--color-accent); + border-width: 1px 0; + transition: background-color 0.1s; +} +.tsd-description .tsd-signatures .tsd-signature { + border-width: 1px; +} + +ul.tsd-parameter-list, +ul.tsd-type-parameter-list { + list-style: square; + margin: 0; + padding-left: 20px; +} +ul.tsd-parameter-list > li.tsd-parameter-signature, +ul.tsd-type-parameter-list > li.tsd-parameter-signature { + list-style: none; + margin-left: -20px; +} +ul.tsd-parameter-list h5, +ul.tsd-type-parameter-list h5 { + font-size: 16px; + margin: 1em 0 0.5em 0; +} +.tsd-sources { + margin-top: 1rem; + font-size: 0.875em; +} +.tsd-sources a { + color: var(--color-text-aside); + text-decoration: underline; +} +.tsd-sources ul { + list-style: none; + padding: 0; +} + +.tsd-page-toolbar { + position: sticky; + z-index: 1; + top: 0; + left: 0; + width: 100%; + color: var(--color-text); + background: var(--color-background-secondary); + border-bottom: 1px var(--color-accent) solid; + transition: transform 0.3s ease-in-out; +} +.tsd-page-toolbar a { + color: var(--color-text); + text-decoration: none; +} +.tsd-page-toolbar a.title { + font-weight: bold; +} +.tsd-page-toolbar a.title:hover { + text-decoration: underline; +} +.tsd-page-toolbar .tsd-toolbar-contents { + display: flex; + justify-content: space-between; + height: 2.5rem; + margin: 0 auto; +} +.tsd-page-toolbar .table-cell { + position: relative; + white-space: nowrap; + line-height: 40px; +} +.tsd-page-toolbar .table-cell:first-child { + width: 100%; +} +.tsd-page-toolbar .tsd-toolbar-icon { + box-sizing: border-box; + line-height: 0; + padding: 12px 0; +} + +.tsd-widget { + display: inline-block; + overflow: hidden; + opacity: 0.8; + height: 40px; + transition: + opacity 0.1s, + background-color 0.2s; + vertical-align: bottom; + cursor: pointer; +} +.tsd-widget:hover { + opacity: 0.9; +} +.tsd-widget.active { + opacity: 1; + background-color: var(--color-accent); +} +.tsd-widget.no-caption { + width: 40px; +} +.tsd-widget.no-caption:before { + margin: 0; +} + +.tsd-widget.options, +.tsd-widget.menu { + display: none; +} +input[type="checkbox"] + .tsd-widget:before { + background-position: -120px 0; +} +input[type="checkbox"]:checked + .tsd-widget:before { + background-position: -160px 0; +} + +img { + max-width: 100%; +} + +.tsd-anchor-icon { + display: inline-flex; + align-items: center; + margin-left: 0.5rem; + vertical-align: middle; + color: var(--color-text); +} + +.tsd-anchor-icon svg { + width: 1em; + height: 1em; + visibility: hidden; +} + +.tsd-anchor-link:hover > .tsd-anchor-icon svg { + visibility: visible; +} + +.deprecated { + text-decoration: line-through !important; +} + +.warning { + padding: 1rem; + color: var(--color-warning-text); + background: var(--color-background-warning); +} + +.tsd-kind-project { + color: var(--color-ts-project); +} +.tsd-kind-module { + color: var(--color-ts-module); +} +.tsd-kind-namespace { + color: var(--color-ts-namespace); +} +.tsd-kind-enum { + color: var(--color-ts-enum); +} +.tsd-kind-enum-member { + color: var(--color-ts-enum-member); +} +.tsd-kind-variable { + color: var(--color-ts-variable); +} +.tsd-kind-function { + color: var(--color-ts-function); +} +.tsd-kind-class { + color: var(--color-ts-class); +} +.tsd-kind-interface { + color: var(--color-ts-interface); +} +.tsd-kind-constructor { + color: var(--color-ts-constructor); +} +.tsd-kind-property { + color: var(--color-ts-property); +} +.tsd-kind-method { + color: var(--color-ts-method); +} +.tsd-kind-call-signature { + color: var(--color-ts-call-signature); +} +.tsd-kind-index-signature { + color: var(--color-ts-index-signature); +} +.tsd-kind-constructor-signature { + color: var(--color-ts-constructor-signature); +} +.tsd-kind-parameter { + color: var(--color-ts-parameter); +} +.tsd-kind-type-literal { + color: var(--color-ts-type-literal); +} +.tsd-kind-type-parameter { + color: var(--color-ts-type-parameter); +} +.tsd-kind-accessor { + color: var(--color-ts-accessor); +} +.tsd-kind-get-signature { + color: var(--color-ts-get-signature); +} +.tsd-kind-set-signature { + color: var(--color-ts-set-signature); +} +.tsd-kind-type-alias { + color: var(--color-ts-type-alias); +} + +/* if we have a kind icon, don't color the text by kind */ +.tsd-kind-icon ~ span { + color: var(--color-text); +} + +* { + scrollbar-width: thin; + scrollbar-color: var(--color-accent) var(--color-icon-background); +} + +*::-webkit-scrollbar { + width: 0.75rem; +} + +*::-webkit-scrollbar-track { + background: var(--color-icon-background); +} + +*::-webkit-scrollbar-thumb { + background-color: var(--color-accent); + border-radius: 999rem; + border: 0.25rem solid var(--color-icon-background); +} + +/* mobile */ +@media (max-width: 769px) { + .tsd-widget.options, + .tsd-widget.menu { + display: inline-block; + } + + .container-main { + display: flex; + } + html .col-content { + float: none; + max-width: 100%; + width: 100%; + } + html .col-sidebar { + position: fixed !important; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + z-index: 1024; + top: 0 !important; + bottom: 0 !important; + left: auto !important; + right: 0 !important; + padding: 1.5rem 1.5rem 0 0; + width: 75vw; + visibility: hidden; + background-color: var(--color-background); + transform: translate(100%, 0); + } + html .col-sidebar > *:last-child { + padding-bottom: 20px; + } + html .overlay { + content: ""; + display: block; + position: fixed; + z-index: 1023; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.75); + visibility: hidden; + } + + .to-has-menu .overlay { + animation: fade-in 0.4s; + } + + .to-has-menu .col-sidebar { + animation: pop-in-from-right 0.4s; + } + + .from-has-menu .overlay { + animation: fade-out 0.4s; + } + + .from-has-menu .col-sidebar { + animation: pop-out-to-right 0.4s; + } + + .has-menu body { + overflow: hidden; + } + .has-menu .overlay { + visibility: visible; + } + .has-menu .col-sidebar { + visibility: visible; + transform: translate(0, 0); + display: flex; + flex-direction: column; + gap: 1.5rem; + max-height: 100vh; + padding: 1rem 2rem; + } + .has-menu .tsd-navigation { + max-height: 100%; + } +} + +/* one sidebar */ +@media (min-width: 770px) { + .container-main { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); + grid-template-areas: "sidebar content"; + margin: 2rem auto; + } + + .col-sidebar { + grid-area: sidebar; + } + .col-content { + grid-area: content; + padding: 0 1rem; + } +} +@media (min-width: 770px) and (max-width: 1399px) { + .col-sidebar { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + padding-top: 1rem; + } + .site-menu { + margin-top: 1rem; + } +} + +/* two sidebars */ +@media (min-width: 1200px) { + .container-main { + grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); + grid-template-areas: "sidebar content toc"; + } + + .col-sidebar { + display: contents; + } + + .page-menu { + grid-area: toc; + padding-left: 1rem; + } + .site-menu { + grid-area: sidebar; + } + + .site-menu { + margin-top: 1rem 0; + } + + .page-menu, + .site-menu { + max-height: calc(100vh - 2rem - 42px); + overflow: auto; + position: sticky; + top: 42px; + } +} diff --git a/packages/core-backend/docs/classes/AccountActivityService.html b/packages/core-backend/docs/classes/AccountActivityService.html new file mode 100644 index 00000000000..2c3e32dc77e --- /dev/null +++ b/packages/core-backend/docs/classes/AccountActivityService.html @@ -0,0 +1,39 @@ +AccountActivityService | @metamask/core-backend

High-performance service for real-time account activity monitoring using optimized +WebSocket subscriptions with direct callback routing. Automatically subscribes to +the currently selected account and switches subscriptions when the selected account changes. +Receives transactions and balance updates using the comprehensive AccountActivityMessage format.

+

Performance Features:

+
    +
  • Direct callback routing (no EventEmitter overhead)
  • +
  • Minimal subscription tracking (no duplication with BackendWebSocketService)
  • +
  • Optimized cleanup for mobile environments
  • +
  • Single-account subscription (only selected account)
  • +
  • Comprehensive balance updates with transfer tracking
  • +
+

Architecture:

+
    +
  • Uses messenger pattern to communicate with BackendWebSocketService
  • +
  • AccountActivityService tracks channel-to-subscriptionId mappings via messenger calls
  • +
  • Automatically subscribes to selected account on initialization
  • +
  • Switches subscriptions when selected account changes
  • +
  • No direct dependency on BackendWebSocketService (uses messenger instead)
  • +
+

Example

const service = new AccountActivityService({
messenger: activityMessenger,
});

// Service automatically subscribes to the currently selected account
// When user switches accounts, service automatically resubscribes

// All transactions and balance updates are received via optimized
// WebSocket callbacks and processed with zero-allocation routing
// Balance updates include comprehensive transfer details and post-transaction balances +
+

Constructors

Properties

Methods

Constructors

Properties

name: "AccountActivityService" = SERVICE_NAME

The name of the service.

+

Methods

  • Subscribe to account activity (transactions and balance updates) +Address should be in CAIP-10 format (e.g., "eip155:0:0x1234..." or "solana:0:ABC123...")

    +

    Parameters

    Returns Promise<void>

  • Unsubscribe from account activity for specified address +Address should be in CAIP-10 format (e.g., "eip155:0:0x1234..." or "solana:0:ABC123...")

    +

    Parameters

    • subscription: SubscriptionOptions

      Account subscription configuration with address to unsubscribe

      +

    Returns Promise<void>

\ No newline at end of file diff --git a/packages/core-backend/docs/classes/AccountsApiClient.html b/packages/core-backend/docs/classes/AccountsApiClient.html new file mode 100644 index 00000000000..541a263a9e2 --- /dev/null +++ b/packages/core-backend/docs/classes/AccountsApiClient.html @@ -0,0 +1,131 @@ +AccountsApiClient | @metamask/core-backend

Accounts API Client. +Provides methods for interacting with the Accounts API.

+

Hierarchy

  • BaseApiClient
    • AccountsApiClient

Constructors

Properties

clientProduct: string
clientVersion: string
getBearerToken?: (() => Promise<undefined | string>)

Type declaration

    • (): Promise<undefined | string>
    • Returns Promise<undefined | string>

Accessors

  • get queryClient(): QueryClient
  • Get the underlying QueryClient instance. +Exposed for cache management operations.

    +

    Returns QueryClient

    The QueryClient instance.

    +

Methods

  • Internal HTTP fetch method with authentication and error handling.

    +

    Type Parameters

    • ResponseType

    Parameters

    • baseUrl: string

      The base URL for the API.

      +
    • path: string

      The API endpoint path.

      +
    • Optional options: InternalFetchOptions

      Optional fetch configuration.

      +

    Returns Promise<ResponseType>

    The parsed JSON response.

    +
  • Get account transactions (v1 endpoint).

    +

    Parameters

    • address: string

      The account address.

      +
    • Optional queryOptions: {
          chainIds?: string[];
          cursor?: string;
          endTimestamp?: number;
          sortDirection?: "ASC" | "DESC";
          startTimestamp?: number;
      }

      Query filter options.

      +
      • Optional chainIds?: string[]

        Chain IDs to filter by.

        +
      • Optional cursor?: string

        Pagination cursor.

        +
      • Optional endTimestamp?: number

        End timestamp filter.

        +
      • Optional sortDirection?: "ASC" | "DESC"

        Sort direction (ASC/DESC).

        +
      • Optional startTimestamp?: number

        Start timestamp filter.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V1AccountTransactionsResponse>

    The account transactions response.

    +
  • Get a specific transaction by hash (v1 endpoint).

    +

    Parameters

    • chainId: number

      The chain ID.

      +
    • txHash: string

      The transaction hash.

      +
    • Optional queryOptions: {
          includeLogs?: boolean;
          includeTxMetadata?: boolean;
          includeValueTransfers?: boolean;
          lang?: string;
      }

      Query filter options.

      +
      • Optional includeLogs?: boolean

        Whether to include logs.

        +
      • Optional includeTxMetadata?: boolean

        Whether to include transaction metadata.

        +
      • Optional includeValueTransfers?: boolean

        Whether to include value transfers.

        +
      • Optional lang?: string

        Language for metadata.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V1TransactionByHashResponse>

    The transaction details.

    +
  • Get NFTs owned by an account (v2 endpoint).

    +

    Parameters

    • address: string

      The account address.

      +
    • Optional queryOptions: {
          cursor?: string;
          networks?: number[];
      }

      Query filter options.

      +
      • Optional cursor?: string

        Pagination cursor.

        +
      • Optional networks?: number[]

        Networks to filter by.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V2NftsResponse>

    The NFTs response.

    +
  • Get ERC20 tokens detected for an account (v2 endpoint).

    +

    Parameters

    • address: string

      The account address.

      +
    • Optional queryOptions: {
          networks?: number[];
      }

      Query filter options.

      +
      • Optional networks?: number[]

        Networks to filter by.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V2TokensResponse>

    The tokens response.

    +
  • Get active networks by CAIP-10 account IDs (v2 endpoint).

    +

    Parameters

    • accountIds: string[]

      Array of CAIP-10 account IDs.

      +
    • Optional queryOptions: {
          filterMMListTokens?: boolean;
          networks?: string[];
      }

      Query filter options.

      +
      • Optional filterMMListTokens?: boolean

        Whether to filter MM list tokens.

        +
      • Optional networks?: string[]

        Networks to filter by.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V2ActiveNetworksResponse>

    The active networks response.

    +
  • Get account balances for a single address (v2 endpoint).

    +

    Parameters

    • address: string

      The account address.

      +
    • Optional queryOptions: {
          networks?: number[];
      }

      Query filter options.

      +
      • Optional networks?: number[]

        Networks to filter by.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V2BalancesResponse>

    The account balances response.

    +
  • Get account balances with additional options (v2 endpoint).

    +

    Parameters

    • address: string

      The account address.

      +
    • Optional queryOptions: {
          filterSupportedTokens?: boolean;
          includeStakedAssets?: boolean;
          includeTokenAddresses?: string[];
          networks?: number[];
      }

      Query filter options.

      +
      • Optional filterSupportedTokens?: boolean

        Whether to filter supported tokens.

        +
      • Optional includeStakedAssets?: boolean

        Whether to include staked assets.

        +
      • Optional includeTokenAddresses?: string[]

        Token addresses to include.

        +
      • Optional networks?: number[]

        Networks to filter by.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V2BalancesResponse>

    The account balances response.

    +
  • Get balances for multiple accounts (v4 endpoint).

    +

    Parameters

    • accountAddresses: string[]

      Array of account addresses.

      +
    • Optional queryOptions: {
          networks?: number[];
      }

      Query filter options.

      +
      • Optional networks?: number[]

        Networks to filter by.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V4BalancesResponse>

    The multi-account balances response.

    +
  • Get multi-account transactions (v4 endpoint).

    +

    Parameters

    • accountIds: string[]

      Array of CAIP-10 account IDs.

      +
    • Optional queryOptions: {
          cursor?: string;
          includeLogs?: boolean;
          includeTxMetadata?: boolean;
          includeValueTransfers?: boolean;
          networks?: string[];
          sortDirection?: "ASC" | "DESC";
      }

      Query filter options.

      +
      • Optional cursor?: string

        Pagination cursor.

        +
      • Optional includeLogs?: boolean

        Whether to include logs.

        +
      • Optional includeTxMetadata?: boolean

        Whether to include transaction metadata.

        +
      • Optional includeValueTransfers?: boolean

        Whether to include value transfers.

        +
      • Optional networks?: string[]

        Networks to filter by.

        +
      • Optional sortDirection?: "ASC" | "DESC"

        Sort direction (ASC/DESC).

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V4MultiAccountTransactionsResponse>

    The multi-account transactions response.

    +
  • Get balances for multiple accounts using CAIP-10 IDs (v5 endpoint).

    +

    Parameters

    • accountIds: string[]

      Array of CAIP-10 account IDs.

      +
    • Optional queryOptions: {
          filterMMListTokens?: boolean;
          includeStakedAssets?: boolean;
          networks?: string[];
      }

      Query filter options.

      +
      • Optional filterMMListTokens?: boolean

        Whether to filter MM list tokens.

        +
      • Optional includeStakedAssets?: boolean

        Whether to include staked assets.

        +
      • Optional networks?: string[]

        Networks to filter by.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V5BalancesResponse>

    The multi-account balances response.

    +
  • Invalidate the cached auth token. +Call this when the user logs out or the token expires.

    +

    Uses resetQueries() instead of invalidateQueries() to completely remove +the cached value, ensuring the next request fetches a fresh token immediately.

    +

    Returns Promise<void>

\ No newline at end of file diff --git a/packages/core-backend/docs/classes/ApiPlatformClient.html b/packages/core-backend/docs/classes/ApiPlatformClient.html new file mode 100644 index 00000000000..5ea2a3df620 --- /dev/null +++ b/packages/core-backend/docs/classes/ApiPlatformClient.html @@ -0,0 +1,47 @@ +ApiPlatformClient | @metamask/core-backend

MetaMask API Platform Client with TanStack Query caching. +Provides cached access to all MetaMask backend APIs through a unified interface.

+

Access API methods through the sub-clients:

+
    +
  • client.accounts - Accounts API (balances, transactions, NFTs, etc.)
  • +
  • client.prices - Prices API (spot prices, exchange rates, historical prices)
  • +
  • client.token - Token API (token metadata, trending, top gainers)
  • +
  • client.tokens - Tokens API (bulk asset operations, supported networks)
  • +
+

Constructors

Properties

Accounts API client. +Provides methods for balances, transactions, relationships, NFTs, and token discovery.

+

Prices API client. +Provides methods for spot prices, exchange rates, and historical prices.

+

Token API client. +Provides methods for token metadata, networks, trending tokens, and top assets.

+

Tokens API client. +Provides methods for bulk asset operations and supported networks.

+

Accessors

Methods

  • Invalidate the cached auth token. +Call this when the user logs out or the token expires.

    +

    Uses resetQueries() instead of invalidateQueries() to completely remove +the cached value, ensuring the next request fetches a fresh token immediately.

    +

    Returns Promise<void>

\ No newline at end of file diff --git a/packages/core-backend/docs/classes/BackendWebSocketService.html b/packages/core-backend/docs/classes/BackendWebSocketService.html new file mode 100644 index 00000000000..b360070d2f2 --- /dev/null +++ b/packages/core-backend/docs/classes/BackendWebSocketService.html @@ -0,0 +1,175 @@ +BackendWebSocketService | @metamask/core-backend

WebSocket Service with automatic reconnection, session management and direct callback routing

+

Connection Management:

+
    +
  • Automatically subscribes to AuthenticationController:stateChange (sign in/out)
  • +
  • Automatically subscribes to KeyringController:lock/unlock events
  • +
  • Idempotent connect() function safe for multiple rapid calls
  • +
  • Auto-reconnects on unexpected disconnects (manualDisconnect = false)
  • +
+

Platform Responsibilities:

+
    +
  • Call connect() when app opens/foregrounds
  • +
  • Call disconnect() when app closes/backgrounds
  • +
  • Provide isEnabled() callback (feature flag)
  • +
  • Call destroy() on app termination
  • +
+

Real-Time Performance Optimizations:

+
    +
  • Fast path message routing (zero allocations)
  • +
  • Production mode removes try-catch overhead
  • +
  • Optimized JSON parsing with fail-fast
  • +
  • Direct callback routing bypasses event emitters
  • +
  • Memory cleanup and resource management
  • +
+

Constructors

Properties

name: "BackendWebSocketService" = SERVICE_NAME

The name of the service.

+

Methods

  • Register a callback for specific channels (local callback only, no server subscription)

    +

    Key Difference from subscribe():

    +
      +
    • addChannelCallback(): Registers a local callback without creating a server-side subscription. +The callback triggers on ANY message matching the channel name, regardless of subscriptionId. +Useful for system-wide notifications or when you don't control the subscription lifecycle.

      +
    • +
    • subscribe(): Creates a proper server-side subscription with a subscriptionId. +The callback only triggers for messages with the matching subscriptionId. +Includes proper lifecycle management (unsubscribe, automatic cleanup on disconnect).

      +
    • +
    +

    When to use addChannelCallback():

    +
      +
    • Listening to system-wide notifications (e.g., 'system-notifications.v1')
    • +
    • Monitoring channels where subscriptions are managed elsewhere
    • +
    • Debug/logging scenarios where you want to observe all channel messages
    • +
    +

    When to use subscribe() instead:

    +
      +
    • Creating new subscriptions that need server-side registration
    • +
    • When you need proper cleanup via unsubscribe
    • +
    • Most application use cases (recommended approach)
    • +
    +

    Parameters

    • options: {
          callback: ((notification) => void);
          channelName: string;
      }

      Channel callback configuration

      +
      • callback: ((notification) => void)

        Function to call when channel matches

        +
      • channelName: string

        Channel name to match exactly

        +

    Returns void

    Example

    // Listen to system notifications (no server subscription needed)
    webSocketService.addChannelCallback({
    channelName: 'system-notifications.v1',
    callback: (notification) => {
    console.log('System notification:', notification.data);
    }
    });

    // For account-specific subscriptions, use subscribe() instead:
    // const sub = await webSocketService.subscribe({
    // channels: ['account-activity.v1.eip155:0:0x1234...'],
    // callback: (notification) => { ... }
    // }); +
    +

    See

    subscribe for creating proper server-side subscriptions with lifecycle management

    +
  • Establishes WebSocket connection with smart reconnection behavior

    +

    Connection Requirements (all must be true):

    +
      +
    1. Feature enabled (isEnabled() = true)
    2. +
    3. Wallet unlocked (checked by getBearerToken)
    4. +
    5. User signed in (checked by getBearerToken)
    6. +
    +

    Platform code should call this when app opens/foregrounds. +Automatically called on KeyringController:unlock event.

    +

    Returns Promise<void>

    Promise that resolves when connection is established

    +
  • Forces a WebSocket reconnection to clean up subscription state

    +

    This method is useful when subscription state may be out of sync and needs to be reset. +It performs a controlled disconnect-then-reconnect sequence:

    +
      +
    • Disconnects cleanly to trigger subscription cleanup
    • +
    • Schedules reconnection with exponential backoff to prevent rapid loops
    • +
    • All subscriptions will be cleaned up automatically on disconnect
    • +
    +

    Use cases:

    +
      +
    • Recovering from subscription/unsubscription issues
    • +
    • Cleaning up orphaned subscriptions
    • +
    • Forcing a fresh subscription state
    • +
    +

    Returns Promise<void>

    Promise that resolves when disconnection is complete (reconnection is scheduled)

    +
  • Remove a channel callback

    +

    Parameters

    • channelName: string

      The channel name returned from addChannelCallback

      +

    Returns boolean

    True if callback was found and removed, false otherwise

    +
  • Sends a message through the WebSocket (fire-and-forget, no response expected)

    +

    This is a low-level method for sending messages without waiting for a response. +Most consumers should use sendRequest() instead, which handles request-response +correlation and provides proper error handling with timeouts.

    +

    Use this method only when:

    +
      +
    • You don't need a response from the server
    • +
    • You're implementing custom message protocols
    • +
    • You need fine-grained control over message timing
    • +
    +

    Parameters

    Returns void

    Throws

    Error if WebSocket is not connected or send fails

    +

    See

    sendRequest for request-response pattern with automatic correlation

    +
  • Sends a request and waits for a correlated response (recommended for most use cases)

    +

    This is the recommended high-level method for request-response communication. +It automatically handles:

    +
      +
    • Request ID generation and correlation
    • +
    • Response matching with timeout protection
    • +
    • Automatic reconnection on timeout
    • +
    • Proper cleanup of pending requests
    • +
    +

    Type Parameters

    • Type = {
          failed?: string[];
          requestId: string;
          subscriptionId?: string;
          succeeded?: string[];
          [key: string]: unknown;
      }

    Parameters

    • message: Omit<ClientRequestMessage, "data"> & {
          data?: Omit<{
              channels?: string[];
              requestId: string;
              [key: string]: unknown;
          }, "requestId"> & {
              requestId?: string;
          };
      }

      The request message (can include optional requestId for testing)

      +

    Returns Promise<Type>

    Promise that resolves with the response data

    +

    Throws

    Error if WebSocket is not connected, request times out, or response indicates failure

    +

    See

    sendMessage for fire-and-forget messaging without response handling

    +
  • Create and manage a subscription with server-side registration (recommended for most use cases)

    +

    This is the recommended subscription API for high-level services. It creates a proper +server-side subscription and routes notifications based on subscriptionId.

    +

    Key Features:

    +
      +
    • Creates server-side subscription with unique subscriptionId
    • +
    • Callback triggered only for messages with matching subscriptionId
    • +
    • Automatic lifecycle management (cleanup on disconnect)
    • +
    • Includes unsubscribe method for proper cleanup
    • +
    • Request-response pattern with error handling
    • +
    +

    When to use subscribe():

    +
      +
    • Creating new subscriptions (account activity, price updates, etc.)
    • +
    • When you need proper cleanup/unsubscribe functionality
    • +
    • Most application use cases
    • +
    +

    When to use addChannelCallback() instead:

    +
      +
    • System-wide notifications without server-side subscription
    • +
    • Observing channels managed elsewhere
    • +
    • Debug/logging scenarios
    • +
    +

    Parameters

    • options: {
          callback: ((notification) => void);
          channelType: string;
          channels: string[];
          requestId?: string;
      }

      Subscription configuration

      +
      • callback: ((notification) => void)

        Handler for incoming notifications

        +
      • channelType: string

        Channel type with version (e.g., 'account-activity.v1') for tracing and monitoring

        +
      • channels: string[]

        Channel names to subscribe to

        +
      • Optional requestId?: string

        Optional request ID for testing (will generate UUID if not provided)

        +

    Returns Promise<WebSocketSubscription>

    Subscription object with unsubscribe method

    +

    Example

    // AccountActivityService usage
    const subscription = await webSocketService.subscribe({
    channels: ['account-activity.v1.eip155:0:0x1234...'],
    callback: (notification) => {
    this.handleAccountActivity(notification.data);
    }
    });

    // Later, clean up
    await subscription.unsubscribe(); +
    +

    See

    addChannelCallback for local callbacks without server-side subscription

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/classes/HttpError.html b/packages/core-backend/docs/classes/HttpError.html new file mode 100644 index 00000000000..fa26fdaadf6 --- /dev/null +++ b/packages/core-backend/docs/classes/HttpError.html @@ -0,0 +1,15 @@ +HttpError | @metamask/core-backend

Hierarchy

  • Error
    • HttpError

Constructors

Properties

body: unknown
message: string
name: string
stack?: string
status: number
statusText: string
url: string
prepareStackTrace?: ((err, stackTraces) => any)

Optional override for formatting stack traces

+

Type declaration

    • (err, stackTraces): any
    • Parameters

      • err: Error
      • stackTraces: CallSite[]

      Returns any

stackTraceLimit: number

Methods

  • Create .stack property on a target object

    +

    Parameters

    • targetObject: object
    • Optional constructorOpt: Function

    Returns void

\ No newline at end of file diff --git a/packages/core-backend/docs/classes/PricesApiClient.html b/packages/core-backend/docs/classes/PricesApiClient.html new file mode 100644 index 00000000000..f9a66e432bc --- /dev/null +++ b/packages/core-backend/docs/classes/PricesApiClient.html @@ -0,0 +1,149 @@ +PricesApiClient | @metamask/core-backend

Prices API Client. +Provides methods for interacting with the Price API.

+

Hierarchy

  • BaseApiClient
    • PricesApiClient

Constructors

Properties

clientProduct: string
clientVersion: string
getBearerToken?: (() => Promise<undefined | string>)

Type declaration

    • (): Promise<undefined | string>
    • Returns Promise<undefined | string>

Accessors

  • get queryClient(): QueryClient
  • Get the underlying QueryClient instance. +Exposed for cache management operations.

    +

    Returns QueryClient

    The QueryClient instance.

    +

Methods

  • Internal HTTP fetch method with authentication and error handling.

    +

    Type Parameters

    • ResponseType

    Parameters

    • baseUrl: string

      The base URL for the API.

      +
    • path: string

      The API endpoint path.

      +
    • Optional options: InternalFetchOptions

      Optional fetch configuration.

      +

    Returns Promise<ResponseType>

    The parsed JSON response.

    +
  • Get historical prices by CoinGecko coin ID (v1 endpoint).

    +

    Parameters

    • coinId: string

      The CoinGecko coin ID.

      +
    • Optional queryOptions: {
          currency?: SupportedCurrency;
          from?: number;
          timePeriod?: string;
          to?: number;
      }

      Query options.

      +
      • Optional currency?: SupportedCurrency

        The currency for prices.

        +
      • Optional from?: number

        Start timestamp.

        +
      • Optional timePeriod?: string

        The time period.

        +
      • Optional to?: number

        End timestamp.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V1HistoricalPricesResponse>

    The historical prices response.

    +
  • Get historical prices for tokens on a chain (v1 endpoint).

    +

    Parameters

    • chainId: string

      The chain ID (hex format).

      +
    • tokenAddresses: string[]

      Array of token addresses.

      +
    • Optional queryOptions: {
          currency?: SupportedCurrency;
          from?: number;
          timePeriod?: string;
          to?: number;
      }

      Query options.

      +
      • Optional currency?: SupportedCurrency

        The currency for prices.

        +
      • Optional from?: number

        Start timestamp.

        +
      • Optional timePeriod?: string

        The time period.

        +
      • Optional to?: number

        End timestamp.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V1HistoricalPricesResponse>

    The historical prices response.

    +
  • Get spot prices for tokens on a chain (v1 endpoint).

    +

    Parameters

    • chainId: string

      The chain ID (hex format).

      +
    • tokenAddresses: string[]

      Array of token addresses.

      +
    • Optional queryOptions: {
          currency?: SupportedCurrency;
          includeMarketData?: boolean;
      }

      Query options.

      +
      • Optional currency?: SupportedCurrency

        The currency for prices.

        +
      • Optional includeMarketData?: boolean

        Whether to include market data.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<Record<string, Record<string, number>>>

    The token prices by address.

    +
  • Get spot prices for tokens on a chain with market data (v2 endpoint).

    +

    Parameters

    • chainId: string

      The chain ID (hex format).

      +
    • tokenAddresses: string[]

      Array of token addresses.

      +
    • Optional queryOptions: {
          currency?: SupportedCurrency;
          includeMarketData?: boolean;
      }

      Query options.

      +
      • Optional currency?: SupportedCurrency

        The currency for prices.

        +
      • Optional includeMarketData?: boolean

        Whether to include market data.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<Record<string, MarketDataDetails>>

    The spot prices with market data.

    +
  • Get historical prices by CAIP-19 asset ID (v3 endpoint).

    +

    Parameters

    • chainId: string

      The CAIP-2 chain ID.

      +
    • assetType: string

      The asset type portion of CAIP-19.

      +
    • Optional queryOptions: {
          currency?: SupportedCurrency;
          from?: number;
          interval?: "5m" | "hourly" | "daily";
          timePeriod?: string;
          to?: number;
      }

      Query options.

      +
      • Optional currency?: SupportedCurrency

        The currency for prices.

        +
      • Optional from?: number

        Start timestamp.

        +
      • Optional interval?: "5m" | "hourly" | "daily"

        Data interval.

        +
      • Optional timePeriod?: string

        The time period.

        +
      • Optional to?: number

        End timestamp.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V3HistoricalPricesResponse>

    The historical prices response.

    +
  • Get spot prices by CAIP-19 asset IDs (v3 endpoint).

    +

    Parameters

    • assetIds: string[]

      Array of CAIP-19 asset IDs.

      +
    • Optional queryOptions: {
          cacheOnly?: boolean;
          currency?: SupportedCurrency;
          includeMarketData?: boolean;
      }

      Query options.

      +
      • Optional cacheOnly?: boolean

        Whether to use cache only.

        +
      • Optional currency?: SupportedCurrency

        The currency for prices.

        +
      • Optional includeMarketData?: boolean

        Whether to include market data.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V3SpotPricesResponse>

    The spot prices response.

    +
  • Invalidate the cached auth token. +Call this when the user logs out or the token expires.

    +

    Uses resetQueries() instead of invalidateQueries() to completely remove +the cached value, ensuring the next request fetches a fresh token immediately.

    +

    Returns Promise<void>

\ No newline at end of file diff --git a/packages/core-backend/docs/classes/TokenApiClient.html b/packages/core-backend/docs/classes/TokenApiClient.html new file mode 100644 index 00000000000..600bd831795 --- /dev/null +++ b/packages/core-backend/docs/classes/TokenApiClient.html @@ -0,0 +1,118 @@ +TokenApiClient | @metamask/core-backend

Token API Client. +Provides methods for interacting with the Token API.

+

Hierarchy

  • BaseApiClient
    • TokenApiClient

Constructors

Properties

clientProduct: string
clientVersion: string
getBearerToken?: (() => Promise<undefined | string>)

Type declaration

    • (): Promise<undefined | string>
    • Returns Promise<undefined | string>

Accessors

  • get queryClient(): QueryClient
  • Get the underlying QueryClient instance. +Exposed for cache management operations.

    +

    Returns QueryClient

    The QueryClient instance.

    +

Methods

  • Internal HTTP fetch method with authentication and error handling.

    +

    Type Parameters

    • ResponseType

    Parameters

    • baseUrl: string

      The base URL for the API.

      +
    • path: string

      The API endpoint path.

      +
    • Optional options: InternalFetchOptions

      Optional fetch configuration.

      +

    Returns Promise<ResponseType>

    The parsed JSON response.

    +
  • Get token list for a chain.

    +

    Parameters

    • chainId: number

      The chain ID.

      +
    • Optional queryOptions: {
          includeAddress?: boolean;
          includeAggregators?: boolean;
          includeAssetType?: boolean;
          includeERC20Permit?: boolean;
          includeIconUrl?: boolean;
          includeName?: boolean;
          includeOccurrences?: boolean;
          includeStorage?: boolean;
          includeTokenFees?: boolean;
      }

      Query options.

      +
      • Optional includeAddress?: boolean

        Include address.

        +
      • Optional includeAggregators?: boolean

        Include aggregators data.

        +
      • Optional includeAssetType?: boolean

        Include asset type data.

        +
      • Optional includeERC20Permit?: boolean

        Include ERC20 permit data.

        +
      • Optional includeIconUrl?: boolean

        Include icon URL.

        +
      • Optional includeName?: boolean

        Include name.

        +
      • Optional includeOccurrences?: boolean

        Include occurrences data.

        +
      • Optional includeStorage?: boolean

        Include storage data.

        +
      • Optional includeTokenFees?: boolean

        Include token fees data.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<TokenMetadata[]>

    Array of token metadata.

    +
  • Get token metadata by address.

    +

    Parameters

    • chainId: number

      The chain ID.

      +
    • tokenAddress: string

      The token address.

      +
    • Optional queryOptions: {
          includeAddress?: boolean;
          includeAggregators?: boolean;
          includeAssetType?: boolean;
          includeERC20Permit?: boolean;
          includeIconUrl?: boolean;
          includeName?: boolean;
          includeOccurrences?: boolean;
          includeStorage?: boolean;
          includeTokenFees?: boolean;
      }

      Query options.

      +
      • Optional includeAddress?: boolean

        Include address.

        +
      • Optional includeAggregators?: boolean

        Include aggregators data.

        +
      • Optional includeAssetType?: boolean

        Include asset type data.

        +
      • Optional includeERC20Permit?: boolean

        Include ERC20 permit data.

        +
      • Optional includeIconUrl?: boolean

        Include icon URL.

        +
      • Optional includeName?: boolean

        Include name.

        +
      • Optional includeOccurrences?: boolean

        Include occurrences data.

        +
      • Optional includeStorage?: boolean

        Include storage data.

        +
      • Optional includeTokenFees?: boolean

        Include token fees data.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<undefined | TokenMetadata>

    The token metadata or undefined.

    +
  • Get popular tokens (v3 endpoint).

    +

    Parameters

    • chainIds: string[]

      Array of chain IDs.

      +
    • Optional queryOptions: {
          blockRegion?: "global" | "us";
          maxMarketCap?: number;
          maxVolume24hUsd?: number;
          minLiquidity?: number;
          minMarketCap?: number;
          minVolume24hUsd?: number;
      }

      Query options.

      +
      • Optional blockRegion?: "global" | "us"

        Region filter (global/us).

        +
      • Optional maxMarketCap?: number

        Maximum market cap filter.

        +
      • Optional maxVolume24hUsd?: number

        Maximum 24h volume filter.

        +
      • Optional minLiquidity?: number

        Minimum liquidity filter.

        +
      • Optional minMarketCap?: number

        Minimum market cap filter.

        +
      • Optional minVolume24hUsd?: number

        Minimum 24h volume filter.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<TrendingToken[]>

    Array of popular tokens.

    +
  • Get top gainers/losers (v3 endpoint).

    +

    Parameters

    • chainIds: string[]

      Array of chain IDs.

      +
    • Optional queryOptions: {
          blockRegion?: "global" | "us";
          maxMarketCap?: number;
          maxVolume24hUsd?: number;
          minLiquidity?: number;
          minMarketCap?: number;
          minVolume24hUsd?: number;
          sort?: TopGainersSortOption;
      }

      Query options.

      +
      • Optional blockRegion?: "global" | "us"

        Region filter (global/us).

        +
      • Optional maxMarketCap?: number

        Maximum market cap filter.

        +
      • Optional maxVolume24hUsd?: number

        Maximum 24h volume filter.

        +
      • Optional minLiquidity?: number

        Minimum liquidity filter.

        +
      • Optional minMarketCap?: number

        Minimum market cap filter.

        +
      • Optional minVolume24hUsd?: number

        Minimum 24h volume filter.

        +
      • Optional sort?: TopGainersSortOption

        Sort option.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<TrendingToken[]>

    Array of top gainer tokens.

    +
  • Get trending tokens (v3 endpoint).

    +

    Parameters

    • chainIds: string[]

      Array of chain IDs.

      +
    • Optional queryOptions: {
          maxMarketCap?: number;
          maxVolume24hUsd?: number;
          minLiquidity?: number;
          minMarketCap?: number;
          minVolume24hUsd?: number;
          sortBy?: TrendingSortOption;
      }

      Query options.

      +
      • Optional maxMarketCap?: number

        Maximum market cap filter.

        +
      • Optional maxVolume24hUsd?: number

        Maximum 24h volume filter.

        +
      • Optional minLiquidity?: number

        Minimum liquidity filter.

        +
      • Optional minMarketCap?: number

        Minimum market cap filter.

        +
      • Optional minVolume24hUsd?: number

        Minimum 24h volume filter.

        +
      • Optional sortBy?: TrendingSortOption

        Sort option.

        +
    • Optional options: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<TrendingToken[]>

    Array of trending tokens.

    +
  • Invalidate the cached auth token. +Call this when the user logs out or the token expires.

    +

    Uses resetQueries() instead of invalidateQueries() to completely remove +the cached value, ensuring the next request fetches a fresh token immediately.

    +

    Returns Promise<void>

  • Invalidate all token API queries. +Note: This only invalidates queries from token.api.cx.metamask.io, +not from tokens.api.cx.metamask.io (use TokensApiClient.invalidateTokens() for that).

    +

    Returns Promise<void>

\ No newline at end of file diff --git a/packages/core-backend/docs/classes/TokensApiClient.html b/packages/core-backend/docs/classes/TokensApiClient.html new file mode 100644 index 00000000000..5d7d54ea5e0 --- /dev/null +++ b/packages/core-backend/docs/classes/TokensApiClient.html @@ -0,0 +1,39 @@ +TokensApiClient | @metamask/core-backend

Tokens API Client. +Provides methods for interacting with the Tokens API.

+

Hierarchy

  • BaseApiClient
    • TokensApiClient

Constructors

Properties

clientProduct: string
clientVersion: string
getBearerToken?: (() => Promise<undefined | string>)

Type declaration

    • (): Promise<undefined | string>
    • Returns Promise<undefined | string>

Accessors

  • get queryClient(): QueryClient
  • Get the underlying QueryClient instance. +Exposed for cache management operations.

    +

    Returns QueryClient

    The QueryClient instance.

    +

Methods

  • Internal HTTP fetch method with authentication and error handling.

    +

    Type Parameters

    • ResponseType

    Parameters

    • baseUrl: string

      The base URL for the API.

      +
    • path: string

      The API endpoint path.

      +
    • Optional options: InternalFetchOptions

      Optional fetch configuration.

      +

    Returns Promise<ResponseType>

    The parsed JSON response.

    +
  • Fetch assets by IDs (v3) with caching.

    +

    Parameters

    • assetIds: string[]

      Array of CAIP-19 asset IDs.

      +
    • Optional queryOptions: V3AssetsQueryOptions

      Query options to include additional data in response.

      +
    • Optional fetchOptions: FetchOptions

      Fetch options including cache settings.

      +

    Returns Promise<V3AssetResponse[]>

    Array of asset responses.

    +
  • Invalidate the cached auth token. +Call this when the user logs out or the token expires.

    +

    Uses resetQueries() instead of invalidateQueries() to completely remove +the cached value, ensuring the next request fetches a fresh token immediately.

    +

    Returns Promise<void>

\ No newline at end of file diff --git a/packages/core-backend/docs/enums/WebSocketEventType.html b/packages/core-backend/docs/enums/WebSocketEventType.html new file mode 100644 index 00000000000..3bf73aa1610 --- /dev/null +++ b/packages/core-backend/docs/enums/WebSocketEventType.html @@ -0,0 +1,8 @@ +WebSocketEventType | @metamask/core-backend

Enumeration WebSocketEventType

WebSocket event types

+

Enumeration Members

CONNECTED: "connected"
DISCONNECTED: "disconnected"
ERROR: "error"
MESSAGE: "message"
RECONNECTED: "reconnected"
RECONNECTING: "reconnecting"
\ No newline at end of file diff --git a/packages/core-backend/docs/enums/WebSocketState.html b/packages/core-backend/docs/enums/WebSocketState.html new file mode 100644 index 00000000000..646178338d5 --- /dev/null +++ b/packages/core-backend/docs/enums/WebSocketState.html @@ -0,0 +1,9 @@ +WebSocketState | @metamask/core-backend

Enumeration WebSocketState

WebSocket connection states

+

Enumeration Members

CONNECTED: "connected"
CONNECTING: "connecting"
DISCONNECTED: "disconnected"
DISCONNECTING: "disconnecting"

Deprecated

This value is no longer used internally and will be removed in a future major release

+
ERROR: "error"

Deprecated

TThis value is no longer used internally and will be removed in a future major release

+
\ No newline at end of file diff --git a/packages/core-backend/docs/functions/calculateRetryDelay.html b/packages/core-backend/docs/functions/calculateRetryDelay.html new file mode 100644 index 00000000000..f5bffa7dda6 --- /dev/null +++ b/packages/core-backend/docs/functions/calculateRetryDelay.html @@ -0,0 +1,4 @@ +calculateRetryDelay | @metamask/core-backend

Function calculateRetryDelay

  • Calculate retry delay with exponential backoff and jitter.

    +

    Parameters

    • attemptIndex: number

      The current retry attempt (0-indexed).

      +

    Returns number

    The delay in milliseconds before the next retry.

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/functions/createApiPlatformClient.html b/packages/core-backend/docs/functions/createApiPlatformClient.html new file mode 100644 index 00000000000..e3e3ab9345f --- /dev/null +++ b/packages/core-backend/docs/functions/createApiPlatformClient.html @@ -0,0 +1,4 @@ +createApiPlatformClient | @metamask/core-backend

Function createApiPlatformClient

\ No newline at end of file diff --git a/packages/core-backend/docs/functions/getCloseReason.html b/packages/core-backend/docs/functions/getCloseReason.html new file mode 100644 index 00000000000..2358102dbf4 --- /dev/null +++ b/packages/core-backend/docs/functions/getCloseReason.html @@ -0,0 +1,4 @@ +getCloseReason | @metamask/core-backend
\ No newline at end of file diff --git a/packages/core-backend/docs/functions/shouldRetry.html b/packages/core-backend/docs/functions/shouldRetry.html new file mode 100644 index 00000000000..ab483e00806 --- /dev/null +++ b/packages/core-backend/docs/functions/shouldRetry.html @@ -0,0 +1,5 @@ +shouldRetry | @metamask/core-backend
  • Determine if a failed request should be retried.

    +

    Parameters

    • failureCount: number

      The number of failures so far (1 = first failure).

      +
    • error: unknown

      The error from the failed request.

      +

    Returns boolean

    True if the request should be retried, false otherwise.

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/index.html b/packages/core-backend/docs/index.html new file mode 100644 index 00000000000..ca3c97acade --- /dev/null +++ b/packages/core-backend/docs/index.html @@ -0,0 +1,453 @@ +@metamask/core-backend

@metamask/core-backend

@metamask/core-backend

Core backend services for MetaMask, serving as the data layer between Backend services (REST APIs, WebSocket services) and Frontend applications (Extension, Mobile). Provides authenticated real-time data delivery including account activity monitoring, price updates, and WebSocket connection management with type-safe controller integration.

+

Table of Contents

+

Installation

yarn add @metamask/core-backend
+
+

or

+
npm install @metamask/core-backend
+
+

Quick Start

Basic Usage

WebSocket for Real-time Updates:

+
import {
BackendWebSocketService,
AccountActivityService,
} from '@metamask/core-backend';

// Initialize Backend WebSocket service
const backendWebSocketService = new BackendWebSocketService({
messenger: backendWebSocketServiceMessenger,
url: 'wss://api.metamask.io/ws',
timeout: 15000,
requestTimeout: 20000,
});

// Initialize Account Activity service
const accountActivityService = new AccountActivityService({
messenger: accountActivityMessenger,
});

// Connect and subscribe to account activity
await backendWebSocketService.connect();
await accountActivityService.subscribe({
address: 'eip155:0:0x742d35cc6634c0532925a3b8d40c4e0e2c6e4e6',
});

// Listen for real-time updates
messenger.subscribe('AccountActivityService:transactionUpdated', (tx) => {
console.log('New transaction:', tx);
});

messenger.subscribe(
'AccountActivityService:balanceUpdated',
({ address, updates }) => {
console.log(`Balance updated for ${address}:`, updates);
},
); +
+

HTTP API for REST Requests:

+
import { ApiPlatformClient } from '@metamask/core-backend';

// Create API client
const apiClient = new ApiPlatformClient({
clientProduct: 'metamask-extension',
getBearerToken: async () => authController.getBearerToken(),
});

// Fetch data with automatic caching and deduplication
const balances = await apiClient.accounts.fetchV5MultiAccountBalances([
'eip155:1:0x742d35cc6634c0532925a3b8d40c4e0e2c6e4e6',
]);

const prices = await apiClient.prices.fetchV3SpotPrices([
'eip155:1/slip44:60', // ETH
'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
]); +
+

Integration with Controllers

// Coordinate with TokenBalancesController for fallback polling
messenger.subscribe(
'BackendWebSocketService:connectionStateChanged',
(info) => {
if (info.state === 'CONNECTED') {
// Reduce polling when WebSocket is active
messenger.call(
'TokenBalancesController:updateChainPollingConfigs',
{ '0x1': { interval: 600000 } }, // 10 min backup polling
{ immediateUpdate: false },
);
} else {
// Increase polling when WebSocket is down
const defaultInterval = messenger.call(
'TokenBalancesController:getDefaultPollingInterval',
);
messenger.call(
'TokenBalancesController:updateChainPollingConfigs',
{ '0x1': { interval: defaultInterval } },
{ immediateUpdate: true },
);
}
},
);

// Listen for account changes and manage subscriptions
messenger.subscribe(
'AccountsController:selectedAccountChange',
async (selectedAccount) => {
if (selectedAccount) {
await accountActivityService.subscribe({
address: selectedAccount.address,
});
}
},
); +
+

Architecture & Design

Layered Architecture

graph TD
subgraph "FRONTEND"
subgraph "Presentation Layer"
FE[Frontend Applications<br/>MetaMask Extension, Mobile, etc.]
end

subgraph "Integration Layer"
IL[Controllers, State Management, UI]
end

subgraph "Data layer (core-backend)"
subgraph "Domain Services"
AAS[AccountActivityService]
PUS[PriceUpdateService<br/>future]
CS[Custom Services...]
end

subgraph "Transport Layer"
WSS[WebSocketService<br/>Connection management<br/>Automatic reconnection<br/>Message routing<br/>Subscription management]
HTTP[HTTP API Clients<br/>REST API calls<br/>Automatic caching<br/>Request deduplication<br/>Retry with backoff]
end
end
end

subgraph "BACKEND"
BS[Backend Services<br/>REST APIs, WebSocket Services, etc.]
end

%% Flow connections
FE --> IL
IL --> AAS
IL --> PUS
IL --> CS
AAS --> WSS
AAS --> HTTP
PUS --> WSS
PUS --> HTTP
CS --> WSS
CS --> HTTP
WSS <--> BS
HTTP <--> BS

%% Styling
classDef frontend fill:#e1f5fe
classDef backend fill:#f3e5f5
classDef service fill:#e8f5e8
classDef transport fill:#fff3e0

class FE,IL frontend
class BS backend
class AAS,PUS,CS service
class WSS,HTTP transport +
+

Dependencies Structure

graph BT
%% External Controllers
AC["AccountsController<br/>(Auto-generated types)"]
AuthC["AuthenticationController<br/>(Auto-generated types)"]
TBC["TokenBalancesController<br/>(External Integration)"]

%% Core Services
AA["AccountActivityService"]
WS["BackendWebSocketService"]

%% Dependencies & Type Imports
AC -.->|"Import types<br/>(DRY)" | AA
AuthC -.->|"Import types<br/>(DRY)" | WS
WS -->|"Messenger calls"| AA
AA -.->|"Event publishing"| TBC

%% Styling
classDef core fill:#f3e5f5
classDef integration fill:#fff3e0
classDef controller fill:#e8f5e8

class WS,AA core
class TBC integration
class AC,AuthC controller +
+

Data Flow

Sequence Diagram: Real-time Account Activity Flow

sequenceDiagram
participant TBC as TokenBalancesController
participant AA as AccountActivityService
participant WS as BackendWebSocketService
participant HTTP as HTTP Services<br/>(APIs & RPC)
participant Backend as WebSocket Endpoint<br/>(Backend)

Note over TBC,Backend: Initial Setup
TBC->>HTTP: Initial balance fetch via HTTP<br/>(first request for current state)

WS->>Backend: WebSocket connection request
Backend->>WS: Connection established
WS->>AA: WebSocket connection status notification<br/>(BackendWebSocketService:connectionStateChanged)<br/>{state: 'CONNECTED'}

AA->>AA: call('AccountsController:getSelectedAccount')
AA->>WS: subscribe({channels, callback})
WS->>Backend: {event: 'subscribe', channels: ['account-activity.v1.eip155:0:0x123...']}
Backend->>WS: {event: 'subscribe-response', subscriptionId: 'sub-456'}

Note over WS,Backend: System notification sent automatically upon subscription
Backend->>WS: {event: 'system-notification', data: {chainIds: ['eip155:1', 'eip155:137', ...], status: 'up'}}
WS->>AA: System notification received
AA->>AA: Track chains as 'up' internally
AA->>TBC: Chain availability notification<br/>(AccountActivityService:statusChanged)<br/>{chainIds: ['0x1', '0x89', ...], status: 'up'}
TBC->>TBC: Increase polling interval from 20s to 10min<br/>(.updateChainPollingConfigs({0x89: 600000}))

Note over TBC,Backend: User Account Change

par StatusChanged Event
TBC->>HTTP: Fetch balances for new account<br/>(fill transition gap)
and Account Subscription
AA->>AA: User switched to different account<br/>(AccountsController:selectedAccountChange)
AA->>WS: subscribe (new account)
WS->>Backend: {event: 'subscribe', channels: ['account-activity.v1.eip155:0:0x456...']}
Backend->>WS: {event: 'subscribe-response', subscriptionId: 'sub-789'}
AA->>WS: unsubscribe (previous account)
WS->>Backend: {event: 'unsubscribe', subscriptionId: 'sub-456'}
Backend->>WS: {event: 'unsubscribe-response'}
end


Note over TBC,Backend: Real-time Data Flow

Backend->>WS: {event: 'notification', channel: 'account-activity.v1.eip155:0:0x123...',<br/>data: {address, tx, updates}}
WS->>AA: Direct callback routing
AA->>AA: Validate & process AccountActivityMessage

par Balance Update
AA->>TBC: Real-time balance change notification<br/>(AccountActivityService:balanceUpdated)<br/>{address, chain, updates}
TBC->>TBC: Update balance state directly<br/>(or fallback poll if error)
and Transaction and Activity Update (Not yet implemented)
AA->>AA: Process transaction data<br/>(AccountActivityService:transactionUpdated)<br/>{tx: Transaction}
Note right of AA: Future: Forward to TransactionController<br/>for transaction state management<br/>(pending → confirmed → finalized)
end

Note over TBC,Backend: System Notifications

Backend->>WS: {event: 'system-notification', data: {chainIds: ['eip155:137'], status: 'down'}}
WS->>AA: System notification received
AA->>AA: Process chain status change
AA->>TBC: Chain status notification<br/>(AccountActivityService:statusChanged)<br/>{chainIds: ['eip155:137'], status: 'down'}
TBC->>TBC: Decrease polling interval from 10min to 20s<br/>(.updateChainPollingConfigs({0x89: 20000}))
TBC->>HTTP: Fetch balances immediately

Backend->>WS: {event: 'system-notification', data: {chainIds: ['eip155:137'], status: 'up'}}
WS->>AA: System notification received
AA->>AA: Process chain status change
AA->>TBC: Chain status notification<br/>(AccountActivityService:statusChanged)<br/>{chainIds: ['eip155:137'], status: 'up'}
TBC->>TBC: Increase polling interval from 20s to 10min<br/>(.updateChainPollingConfigs({0x89: 600000}))

Note over TBC,Backend: Connection Health Management

Backend-->>WS: Connection lost
WS->>AA: WebSocket connection status notification<br/>(BackendWebSocketService:connectionStateChanged)<br/>{state: 'DISCONNECTED'}
AA->>AA: Mark all tracked chains as 'down'<br/>(flush internal tracking set)
AA->>TBC: Chain status notification for all tracked chains<br/>(AccountActivityService:statusChanged)<br/>{chainIds: ['0x1', '0x89', ...], status: 'down'}
TBC->>TBC: Decrease polling interval from 10min to 20s<br/>(.updateChainPollingConfigs({0x89: 20000}))
TBC->>HTTP: Fetch balances immediately
WS->>WS: Automatic reconnection<br/>with exponential backoff
WS->>Backend: Reconnection successful

Note over AA,Backend: Restart initial setup - resubscribe and get fresh chain status
AA->>WS: subscribe (same account, new subscription)
WS->>Backend: {event: 'subscribe', channels: ['account-activity.v1.eip155:0:0x123...']}
Backend->>WS: {event: 'subscribe-response', subscriptionId: 'sub-999'}
Backend->>WS: {event: 'system-notification', data: {chainIds: [...], status: 'up'}}
WS->>AA: System notification received
AA->>AA: Track chains as 'up' again
AA->>TBC: Chain availability notification<br/>(AccountActivityService:statusChanged)<br/>{chainIds: [...], status: 'up'}
TBC->>TBC: Increase polling interval back to 10min +
+

Key Flow Characteristics

    +
  1. Initial Setup: BackendWebSocketService establishes connection, then AccountActivityService subscribes to selected account. Backend automatically sends a system notification with all chains that are currently up. AccountActivityService tracks these chains internally and notifies TokenBalancesController, which increases polling interval to 5 min
  2. +
  3. Chain Status Tracking: AccountActivityService maintains an internal set of chains that are 'up' based on system notifications. On disconnect, it marks all tracked chains as 'down' before clearing the set
  4. +
  5. System Notifications: Backend automatically sends chain status updates (up/down) upon subscription and when status changes. AccountActivityService forwards these to TokenBalancesController, which adjusts polling intervals (up: 5min, down: 30s + immediate fetch)
  6. +
  7. User Account Changes: When users switch accounts, AccountActivityService unsubscribes from old account and subscribes to new account. Backend sends fresh system notification with current chain status for the new account
  8. +
  9. Connection Resilience: On reconnection, AccountActivityService resubscribes to selected account and receives fresh chain status via system notification. Automatic reconnection with exponential backoff
  10. +
  11. Real-time Updates: Backend pushes data through: Backend → BackendWebSocketService → AccountActivityService → TokenBalancesController (+ future TransactionController integration)
  12. +
  13. Parallel Processing: Transaction and balance updates processed simultaneously - AccountActivityService publishes both transactionUpdated (future) and balanceUpdated events in parallel
  14. +
  15. Direct Balance Processing: Real-time balance updates bypass HTTP polling and update TokenBalancesController state directly
  16. +
+

WebSocket Connection Management

Connection Requirements

The WebSocket connects when ALL 3 conditions are true:

+
    +
  1. Feature enabled - isEnabled() callback returns true (feature flag)
  2. +
  3. User signed in - AuthenticationController.isSignedIn = true
  4. +
  5. Wallet unlocked - KeyringController.isUnlocked = true
  6. +
+

Plus: Platform code must call connect() when app opens/foregrounds and disconnect() when app closes/backgrounds.

+

Connection Behavior

Idempotent connect():

+
    +
  • Safe to call multiple times - validates conditions and returns early if already connected
  • +
  • Multiple rapid calls reuse the same connection promise (no duplicate connections)
  • +
  • No debouncing needed - handled automatically
  • +
+

Auto-Reconnect:

+
    +
  • Unexpected disconnects (network issues, server restart) → Auto-reconnect
  • +
  • Manual disconnects (app backgrounds, wallet locks, user signs out) → Stay disconnected
  • +
+

HTTP API

Overview

The HTTP API provides type-safe clients for accessing MetaMask backend REST APIs. It uses @tanstack/query-core for intelligent caching, request deduplication, and automatic retries.

+

Available APIs:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
APIBase URLPurpose
Accountsaccounts.api.cx.metamask.ioBalances, transactions, NFTs, token discovery
Pricesprice.api.cx.metamask.ioSpot prices, exchange rates, historical prices
Tokentoken.api.cx.metamask.ioToken metadata, trending, top gainers
Tokenstokens.api.cx.metamask.ioBulk asset operations, supported networks
+

Features

    +
  • Automatic request deduplication - Identical concurrent requests share a single network call
  • +
  • Intelligent caching - Configurable stale times per data type (prices: 30s, balances: 1min, networks: 30min)
  • +
  • Automatic retries - Exponential backoff with jitter, skips 4xx errors (except 429, 408)
  • +
  • Type safety - Full TypeScript support with response types
  • +
  • Bearer token caching - Auth tokens cached for 5 minutes
  • +
  • Unified client - Single entry point or individual API clients
  • +
+

Quick Start

import {
ApiPlatformClient,
createApiPlatformClient,
} from '@metamask/core-backend';

// Create unified client
const client = new ApiPlatformClient({
clientProduct: 'metamask-extension',
clientVersion: '12.0.0',
getBearerToken: async () => authController.getBearerToken(),
});

// Access API methods through sub-clients
const networks = await client.accounts.fetchV2SupportedNetworks();
const balances = await client.accounts.fetchV5MultiAccountBalances([
'eip155:1:0x742d35cc6634c0532925a3b8d40c4e0e2c6e4e6',
]);
const prices = await client.prices.fetchV3SpotPrices([
'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
]);
const tokenList = await client.token.fetchTokenList(1);
const assets = await client.tokens.fetchV3Assets([
'eip155:1/erc20:0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
]); +
+

Or use individual clients:

+
import { AccountsApiClient, PricesApiClient } from '@metamask/core-backend';

const accountsClient = new AccountsApiClient({
clientProduct: 'metamask-extension',
});

const pricesClient = new PricesApiClient({
clientProduct: 'metamask-extension',
getBearerToken: async () => token,
}); +
+

API Clients

AccountsApiClient

Handles account-related operations including balances, transactions, NFTs, and token discovery.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodDescription
fetchV1SupportedNetworks()Get supported networks (v1)
fetchV2SupportedNetworks()Get supported networks (v2)
fetchV2ActiveNetworks(accountIds, options?)Get active networks by CAIP-10 account IDs
fetchV2Balances(address, options?)Get balances for single address
fetchV2BalancesWithOptions(address, options?)Get balances with filters
fetchV4MultiAccountBalances(addresses, options?)Get balances for multiple addresses
fetchV5MultiAccountBalances(accountIds, options?)Get balances using CAIP-10 IDs
fetchV1TransactionByHash(chainId, txHash, options?)Get transaction by hash
fetchV1AccountTransactions(address, options?)Get account transactions
fetchV4MultiAccountTransactions(accountIds, options?)Get multi-account transactions
fetchV1AccountRelationship(chainId, from, to)Get address relationship
fetchV2AccountNfts(address, options?)Get account NFTs
fetchV2AccountTokens(address, options?)Get detected ERC20 tokens
invalidateBalances()Invalidate all balance cache
invalidateAccounts()Invalidate all account cache
+

PricesApiClient

Handles price-related operations including spot prices, exchange rates, and historical data.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodDescription
fetchPriceV1SupportedNetworks()Get price-supported networks (v1)
fetchPriceV2SupportedNetworks()Get price-supported networks in CAIP format (v2)
fetchV1ExchangeRates(baseCurrency)Get exchange rates for base currency
fetchV1FiatExchangeRates()Get fiat exchange rates
fetchV1CryptoExchangeRates()Get crypto exchange rates
fetchV1SpotPricesByCoinIds(coinIds)Get spot prices by CoinGecko IDs
fetchV1SpotPriceByCoinId(coinId, currency?)Get single coin spot price
fetchV1TokenPrices(chainId, addresses, options?)Get token prices on chain
fetchV1TokenPrice(chainId, address, currency?)Get single token price
fetchV2SpotPrices(chainId, addresses, options?)Get spot prices with market data
fetchV3SpotPrices(assetIds, options?)Get spot prices by CAIP-19 asset IDs
fetchV1HistoricalPricesByCoinId(coinId, options?)Get historical prices by CoinGecko ID
fetchV1HistoricalPricesByTokenAddresses(chainId, addresses, options?)Get historical prices for tokens
fetchV1HistoricalPrices(chainId, address, options?)Get historical prices for single token
fetchV3HistoricalPrices(chainId, assetType, options?)Get historical prices by CAIP-19
fetchV1HistoricalPriceGraphByCoinId(coinId, options?)Get price graph by CoinGecko ID
fetchV1HistoricalPriceGraphByTokenAddress(chainId, address, options?)Get price graph by token address
invalidatePrices()Invalidate all price cache
+

TokenApiClient

Handles token metadata, lists, and trending/popular token discovery.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodDescription
fetchNetworks()Get all networks
fetchNetworkByChainId(chainId)Get network by chain ID
fetchTokenList(chainId, options?)Get token list for chain
fetchV1TokenMetadata(chainId, address, options?)Get token metadata
fetchTokenDescription(chainId, address)Get token description
fetchV3TrendingTokens(chainIds, options?)Get trending tokens
fetchV3TopGainers(chainIds, options?)Get top gainers/losers
fetchV3PopularTokens(chainIds, options?)Get popular tokens
fetchTopAssets(chainId)Get top assets for chain
fetchV1SuggestedOccurrenceFloors()Get suggested occurrence floors
+

TokensApiClient

Handles bulk token operations and supported network queries.

+ + + + + + + + + + + + + + + + + + + + + + + +
MethodDescription
fetchTokenV1SupportedNetworks()Get token-supported networks (v1)
fetchTokenV2SupportedNetworks()Get token-supported networks with full/partial support (v2)
fetchV3Assets(assetIds)Fetch assets by CAIP-19 IDs
invalidateTokens()Invalidate all token cache
+

Configuration

type ApiPlatformClientOptions = {
/** Client product identifier (e.g., 'metamask-extension', 'metamask-mobile') */
clientProduct: string;
/** Optional client version (default: '1.0.0') */
clientVersion?: string;
/** Function to get bearer token for authenticated requests */
getBearerToken?: () => Promise<string | undefined>;
/** Optional custom QueryClient instance for shared caching */
queryClient?: QueryClient;
}; +
+

Default Stale Times:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Data TypeStale Time
Prices30 seconds
Balances1 minute
Transactions30 seconds
Networks10 minutes
Supported Networks30 minutes
Token Metadata5 minutes
Token List10 minutes
Exchange Rates5 minutes
Trending2 minutes
Auth Token5 minutes
+

Override Stale Time:

+
// Use custom stale time for specific request
const balances = await client.accounts.fetchV5MultiAccountBalances(
accountIds,
{ networks: ['eip155:1'] },
{ staleTime: 10000 }, // 10 seconds
); +
+

Cache Management

// Invalidate all caches
await client.invalidateAll();

// Invalidate auth token (on logout)
await client.invalidateAuthToken();

// Domain-specific invalidation
await client.accounts.invalidateBalances();
await client.prices.invalidatePrices();
await client.tokens.invalidateTokens();

// Clear all cached data
client.clear();

// Check if query is fetching
const isFetching = client.isFetching(['accounts', 'balances']);

// Access cached data directly
const cached = client.getCachedData(['accounts', 'balances', 'v5', { ... }]);

// Set cached data
client.setCachedData(queryKey, data);

// Access underlying QueryClient for advanced usage
const queryClient = client.queryClient; +
+

API Reference

BackendWebSocketService

The core WebSocket client providing connection management, authentication, and message routing.

+

Constructor Options

interface BackendWebSocketServiceOptions {
messenger: BackendWebSocketServiceMessenger;
url: string;
timeout?: number;
reconnectDelay?: number;
maxReconnectDelay?: number;
requestTimeout?: number;
enableAuthentication?: boolean;
enabledCallback?: () => boolean;
} +
+

Methods

    +
  • connect(): Promise<void> - Establish authenticated WebSocket connection
  • +
  • disconnect(): Promise<void> - Close WebSocket connection
  • +
  • subscribe(options: SubscriptionOptions): Promise<SubscriptionResult> - Subscribe to channels
  • +
  • sendRequest(message: ClientRequestMessage): Promise<ServerResponseMessage> - Send request/response messages
  • +
  • channelHasSubscription(channel: string): boolean - Check subscription status
  • +
  • findSubscriptionsByChannelPrefix(prefix: string): SubscriptionInfo[] - Find subscriptions by prefix
  • +
  • getConnectionInfo(): WebSocketConnectionInfo - Get detailed connection state
  • +
+

AccountActivityService

High-level service for monitoring account activity using WebSocket data.

+

Constructor Options

interface AccountActivityServiceOptions {
messenger: AccountActivityServiceMessenger;
subscriptionNamespace?: string;
} +
+

Methods

    +
  • subscribe(subscription: SubscriptionOptions): Promise<void> - Subscribe to account activity
  • +
  • unsubscribe(subscription: SubscriptionOptions): Promise<void> - Unsubscribe from account activity
  • +
+

Events Published

    +
  • AccountActivityService:balanceUpdated - Real-time balance changes
  • +
  • AccountActivityService:transactionUpdated - Transaction status updates
  • +
  • AccountActivityService:statusChanged - Chain/service status changes
  • +
+
\ No newline at end of file diff --git a/packages/core-backend/docs/modules.html b/packages/core-backend/docs/modules.html new file mode 100644 index 00000000000..f84626d00f4 --- /dev/null +++ b/packages/core-backend/docs/modules.html @@ -0,0 +1,91 @@ +@metamask/core-backend

@metamask/core-backend

Index

Enumerations

Classes

Type Aliases

AccountActivityMessage +AccountActivityServiceActions +AccountActivityServiceAllowedActions +AccountActivityServiceAllowedEvents +AccountActivityServiceBalanceUpdatedEvent +AccountActivityServiceEvents +AccountActivityServiceMessenger +AccountActivityServiceOptions +AccountActivityServiceStatusChangedEvent +AccountActivityServiceSubscriptionErrorEvent +AccountActivityServiceTransactionUpdatedEvent +ApiPlatformClientOptions +Asset +BackendWebSocketServiceActions +BackendWebSocketServiceConnectionStateChangedEvent +BackendWebSocketServiceEvents +BackendWebSocketServiceMessenger +BackendWebSocketServiceOptions +Balance +BalanceUpdate +ChannelCallback +ClientRequestMessage +CoinGeckoSpotPrice +ExchangeRateInfo +FetchOptions +MarketDataDetails +NetworkInfo +NftItem +PageInfo +PriceSupportedNetworksResponse +ServerNotificationMessage +ServerResponseMessage +SubscriptionOptions +SupportedCurrency +SystemNotificationData +TokenDiscoveryItem +TokenMetadata +TopAsset +TopGainersSortOption +Transaction +Transfer +TrendingSortBy +TrendingSortOption +TrendingToken +V1AccountRelationshipResult +V1AccountTransactionsResponse +V1ExchangeRatesResponse +V1HistoricalPricesResponse +V1SuggestedOccurrenceFloorsResponse +V1SupportedNetworksResponse +V1TokenDescriptionResponse +V1TokenSupportedNetworksResponse +V1TransactionByHashResponse +V2ActiveNetworksResponse +V2BalanceItem +V2BalancesResponse +V2NftsResponse +V2SupportedNetworksResponse +V2TokenSupportedNetworksResponse +V2TokensResponse +V3AssetResponse +V3HistoricalPricesResponse +V3SpotPricesResponse +V4BalancesResponse +V4MultiAccountTransactionsResponse +V5BalanceItem +V5BalancesResponse +ValueTransfer +WebSocketConnectionInfo +WebSocketMessage +WebSocketSubscription +

Variables

Functions

\ No newline at end of file diff --git a/packages/core-backend/docs/real-time-balance-updates-flow.md b/packages/core-backend/docs/real-time-balance-updates-flow.md deleted file mode 100644 index 3884643ab74..00000000000 --- a/packages/core-backend/docs/real-time-balance-updates-flow.md +++ /dev/null @@ -1,253 +0,0 @@ -# Real-Time Balance Updates and Status Management Flow - -This document describes the architecture and flow for real-time balance updates and WebSocket status management in MetaMask Core, specifically focusing on the `AccountActivityService:balanceUpdated` and `AccountActivityService:statusChanged` events. - -## Overview - -The system provides real-time balance updates and intelligent polling management through a multi-layered architecture that combines WebSocket streaming with fallback HTTP polling. The key components work together to ensure users receive timely balance updates while optimizing network usage and battery consumption. - -## Architecture Components - -### 1. BackendWebSocketService - -- **Purpose**: Low-level WebSocket connection management -- **Responsibilities**: - - Maintains WebSocket connection with automatic reconnection - - Handles subscription management - - Routes incoming messages to registered callbacks - - Publishes connection state changes - -### 2. AccountActivityService - -- **Purpose**: High-level account activity monitoring -- **Responsibilities**: - - Subscribes to selected account activity - - Processes transaction and balance updates - - Emits `balanceUpdated` and `statusChanged` events - - Manages chain status based on WebSocket connectivity and system notifications - -### 3. TokenBalancesController - -- **Purpose**: Token balance state management and intelligent polling -- **Responsibilities**: - - Maintains token balance state for all accounts - - Implements per-chain configurable polling intervals - - Responds to real-time balance updates from AccountActivityService - - Dynamically adjusts polling based on WebSocket availability - - Imports newly detected tokens via TokenDetectionController - -## Event Flow - -### Balance Update Flow - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ BALANCE UPDATE FLOW │ -└─────────────────────────────────────────────────────────────────────────┘ - -1. WebSocket receives account activity message - ↓ -2. BackendWebSocketService routes message to registered callback - ↓ -3. AccountActivityService processes AccountActivityMessage - { - address: "0x123...", - tx: { hash: "0x...", chain: "eip155:1", status: "completed", ... }, - updates: [ - { - asset: { fungible: true, type: "eip155:1/erc20:0x...", unit: "USDT" }, - postBalance: { amount: "1254.75" }, - transfers: [{ from: "0x...", to: "0x...", amount: "500.00" }] - } - ] - } - ↓ -4. AccountActivityService publishes separate events: - - AccountActivityService:transactionUpdated (transaction data) - - AccountActivityService:balanceUpdated (balance updates) - ↓ -5. TokenBalancesController receives balanceUpdated event - ↓ -6. TokenBalancesController processes balance updates: - a. Parses CAIP chain ID (e.g., "eip155:1" → "0x1") - b. Parses asset types: - - ERC20 tokens: "eip155:1/erc20:0x..." → token address - - Native tokens: "eip155:1/slip44:60" → zero address - c. Validates addresses and checksums them - d. Checks if tokens are tracked (imported or detected) - ↓ -7. For tracked tokens: - - Updates tokenBalances state immediately - - Updates AccountTrackerController for native balances - ↓ -8. For untracked ERC20 tokens: - - Queues tokens for import via TokenDetectionController - - Triggers fallback polling to fetch newly imported token balances - ↓ -9. On errors: - - Falls back to HTTP polling for the affected chain -``` - -### Status Change Flow - -The system manages chain status through two primary mechanisms: - -#### A. WebSocket Connection State Changes - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ WEBSOCKET CONNECTION STATUS FLOW │ -└─────────────────────────────────────────────────────────────────────────┘ - -1. BackendWebSocketService detects connection state change - (CONNECTING → CONNECTED | DISCONNECTED | ERROR) - ↓ -2. BackendWebSocketService publishes: - BackendWebSocketService:connectionStateChanged - ↓ -3. AccountActivityService receives connection state change - ↓ -4. AccountActivityService determines affected chains: - - Fetches list of supported chains from backend API - - Example: ["eip155:1", "eip155:137", "eip155:56"] - ↓ -5. AccountActivityService publishes status based on connection state: - - IF state === CONNECTED: - → Publishes: statusChanged { chainIds: [...], status: 'up' } - → Triggers resubscription to selected account - - IF state === DISCONNECTED || ERROR: - → Publishes: statusChanged { chainIds: [...], status: 'down' } - ↓ -6. TokenBalancesController receives statusChanged event - ↓ -7. TokenBalancesController applies debouncing (5 second window) - - Accumulates status changes to prevent excessive updates - - Latest status wins for each chain - ↓ -8. After debounce period, processes accumulated changes: - - Converts CAIP format to hex (e.g., "eip155:1" → "0x1") - - Calculates new polling intervals: - * status = 'down' → Uses default interval (30 seconds) - * status = 'up' → Uses extended interval (5 minutes) - ↓ -9. Adds jitter delay (0 to default interval) - - Prevents synchronized requests across instances - ↓ -10. Updates chain polling configurations - - Triggers immediate balance fetch - - Restarts polling with new intervals -``` - -#### B. System Notifications (Per-Chain Status) - -``` -┌─────────────────────────────────────────────────────────────────────────┐ -│ SYSTEM NOTIFICATION STATUS FLOW │ -└─────────────────────────────────────────────────────────────────────────┘ - -1. WebSocket receives system notification message - { - type: 'system', - chainIds: ['eip155:1'], // Specific affected chains - status: 'down' // or 'up' - } - ↓ -2. BackendWebSocketService routes to AccountActivityService - ↓ -3. AccountActivityService validates notification: - - Ensures chainIds array is present and valid - - Ensures status is present - ↓ -4. AccountActivityService publishes delta update: - AccountActivityService:statusChanged - { - chainIds: ['eip155:1'], // Only affected chains - status: 'down' - } - ↓ -5. TokenBalancesController processes (same as WebSocket flow above) -``` - -#### Status Change Event Format - -```typescript -// Event published by AccountActivityService -AccountActivityService:statusChanged -Payload: { - chainIds: string[]; // Array of CAIP chain IDs (e.g., ["eip155:1", "eip155:137"]) - status: 'up' | 'down'; // Connection status -} -``` - -## Polling Strategy - -The TokenBalancesController implements intelligent polling that adapts based on WebSocket availability: - -### Polling Intervals - -| Scenario | Interval | Reason | -| ----------------------------------------- | -------------------- | --------------------------------------------------- | -| WebSocket Connected (`status: 'up'`) | 5 minutes | Real-time updates available, polling is backup only | -| WebSocket Disconnected (`status: 'down'`) | 30 seconds (default) | Primary update mechanism, needs faster polling | -| Per-chain custom configuration | Configurable | Allows fine-tuning per chain requirements | - -### Debouncing Strategy - -To prevent excessive HTTP calls during unstable connections: - -1. **Accumulation Window**: 5 seconds - - - All status changes within this window are accumulated - - Latest status wins for each chain - -2. **Jitter Addition**: Random delay (0 to default interval) - - - Prevents synchronized requests across multiple instances - - Reduces backend load spikes - -3. **Batch Processing**: After debounce + jitter - - All accumulated changes applied at once - - Single polling configuration update - - Immediate balance fetch triggered - -### Per-Chain Polling Configuration - -TokenBalancesController supports per-chain polling intervals: - -```typescript -// Configure custom intervals for specific chains -tokenBalancesController.updateChainPollingConfigs({ - '0x1': { interval: 30000 }, // Ethereum: 30 seconds (default) - '0x89': { interval: 15000 }, // Polygon: 15 seconds (faster) - '0xa4b1': { interval: 60000 }, // Arbitrum: 1 minute (slower) -}); -``` - -## Token Discovery Flow - -When balance updates include previously unknown tokens: - -``` -1. TokenBalancesController receives balance update for unknown token - ↓ -2. Checks if token is tracked (in allTokens or allIgnoredTokens) - ↓ -3. If NOT tracked: - a. Queues token for import - b. Calls TokenDetectionController:addDetectedTokensViaWs - c. Token is added to detected tokens list - ↓ -4. Triggers balance fetch for the chain - ↓ -5. New token balance is fetched and state is updated -``` - -## References - -- [`TokenBalancesController.ts`](../packages/assets-controllers/src/TokenBalancesController.ts) - Main controller implementation -- [`AccountActivityService.ts`](../packages/core-backend/src/AccountActivityService.ts) - Account activity monitoring -- [`BackendWebSocketService.ts`](../packages/core-backend/src/BackendWebSocketService.ts) - WebSocket connection management -- [`types.ts`](../packages/core-backend/src/types.ts) - Type definitions -- [Core Backend README](../packages/core-backend/README.md) - Package overview diff --git a/packages/core-backend/docs/types/AccountActivityMessage.html b/packages/core-backend/docs/types/AccountActivityMessage.html new file mode 100644 index 00000000000..c66252f0c15 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityMessage.html @@ -0,0 +1,5 @@ +AccountActivityMessage | @metamask/core-backend

Type alias AccountActivityMessage

AccountActivityMessage: {
    address: string;
    tx: Transaction;
    updates: BalanceUpdate[];
}

Complete transaction/balance update message

+

Type declaration

  • address: string

    Account address

    +
  • tx: Transaction

    Transaction information

    +
  • updates: BalanceUpdate[]

    Array of balance updates for different assets

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceActions.html b/packages/core-backend/docs/types/AccountActivityServiceActions.html new file mode 100644 index 00000000000..77a3fb1bd31 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceActions.html @@ -0,0 +1 @@ +AccountActivityServiceActions | @metamask/core-backend

Type alias AccountActivityServiceActions

AccountActivityServiceActions: AccountActivityServiceMethodActions
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceAllowedActions.html b/packages/core-backend/docs/types/AccountActivityServiceAllowedActions.html new file mode 100644 index 00000000000..fecccad3a77 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceAllowedActions.html @@ -0,0 +1 @@ +AccountActivityServiceAllowedActions | @metamask/core-backend

Type alias AccountActivityServiceAllowedActions

AccountActivityServiceAllowedActions: AccountsControllerGetSelectedAccountAction | BackendWebSocketServiceMethodActions
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceAllowedEvents.html b/packages/core-backend/docs/types/AccountActivityServiceAllowedEvents.html new file mode 100644 index 00000000000..7fda03b0c85 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceAllowedEvents.html @@ -0,0 +1 @@ +AccountActivityServiceAllowedEvents | @metamask/core-backend

Type alias AccountActivityServiceAllowedEvents

AccountActivityServiceAllowedEvents: AccountsControllerSelectedAccountChangeEvent | BackendWebSocketServiceConnectionStateChangedEvent
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceBalanceUpdatedEvent.html b/packages/core-backend/docs/types/AccountActivityServiceBalanceUpdatedEvent.html new file mode 100644 index 00000000000..47f94cc0add --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceBalanceUpdatedEvent.html @@ -0,0 +1 @@ +AccountActivityServiceBalanceUpdatedEvent | @metamask/core-backend

Type alias AccountActivityServiceBalanceUpdatedEvent

AccountActivityServiceBalanceUpdatedEvent: {
    payload: [{
        address: string;
        chain: string;
        updates: BalanceUpdate[];
    }];
    type: "AccountActivityService:balanceUpdated";
}

Type declaration

  • payload: [{
        address: string;
        chain: string;
        updates: BalanceUpdate[];
    }]
  • type: "AccountActivityService:balanceUpdated"
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceEvents.html b/packages/core-backend/docs/types/AccountActivityServiceEvents.html new file mode 100644 index 00000000000..764f0637b45 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceEvents.html @@ -0,0 +1 @@ +AccountActivityServiceEvents | @metamask/core-backend
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceMessenger.html b/packages/core-backend/docs/types/AccountActivityServiceMessenger.html new file mode 100644 index 00000000000..1fed8fba8c0 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceMessenger.html @@ -0,0 +1 @@ +AccountActivityServiceMessenger | @metamask/core-backend
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceOptions.html b/packages/core-backend/docs/types/AccountActivityServiceOptions.html new file mode 100644 index 00000000000..4c8507ccb00 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceOptions.html @@ -0,0 +1,4 @@ +AccountActivityServiceOptions | @metamask/core-backend

Type alias AccountActivityServiceOptions

AccountActivityServiceOptions: {
    subscriptionNamespace?: string;
    traceFn?: TraceCallback;
}

Configuration options for the account activity service

+

Type declaration

  • Optional subscriptionNamespace?: string

    Custom subscription namespace (default: 'account-activity.v1')

    +
  • Optional traceFn?: TraceCallback

    Optional callback to trace performance of account activity operations (default: no-op)

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceStatusChangedEvent.html b/packages/core-backend/docs/types/AccountActivityServiceStatusChangedEvent.html new file mode 100644 index 00000000000..441a3d31a89 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceStatusChangedEvent.html @@ -0,0 +1 @@ +AccountActivityServiceStatusChangedEvent | @metamask/core-backend

Type alias AccountActivityServiceStatusChangedEvent

AccountActivityServiceStatusChangedEvent: {
    payload: [{
        chainIds: string[];
        status: "up" | "down";
        timestamp?: number;
    }];
    type: "AccountActivityService:statusChanged";
}

Type declaration

  • payload: [{
        chainIds: string[];
        status: "up" | "down";
        timestamp?: number;
    }]
  • type: "AccountActivityService:statusChanged"
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceSubscriptionErrorEvent.html b/packages/core-backend/docs/types/AccountActivityServiceSubscriptionErrorEvent.html new file mode 100644 index 00000000000..e6838b40a96 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceSubscriptionErrorEvent.html @@ -0,0 +1 @@ +AccountActivityServiceSubscriptionErrorEvent | @metamask/core-backend

Type alias AccountActivityServiceSubscriptionErrorEvent

AccountActivityServiceSubscriptionErrorEvent: {
    payload: [{
        addresses: string[];
        error: string;
        operation: string;
    }];
    type: "AccountActivityService:subscriptionError";
}

Type declaration

  • payload: [{
        addresses: string[];
        error: string;
        operation: string;
    }]
  • type: "AccountActivityService:subscriptionError"
\ No newline at end of file diff --git a/packages/core-backend/docs/types/AccountActivityServiceTransactionUpdatedEvent.html b/packages/core-backend/docs/types/AccountActivityServiceTransactionUpdatedEvent.html new file mode 100644 index 00000000000..48a311ae3c4 --- /dev/null +++ b/packages/core-backend/docs/types/AccountActivityServiceTransactionUpdatedEvent.html @@ -0,0 +1 @@ +AccountActivityServiceTransactionUpdatedEvent | @metamask/core-backend

Type alias AccountActivityServiceTransactionUpdatedEvent

AccountActivityServiceTransactionUpdatedEvent: {
    payload: [Transaction];
    type: "AccountActivityService:transactionUpdated";
}

Type declaration

  • payload: [Transaction]
  • type: "AccountActivityService:transactionUpdated"
\ No newline at end of file diff --git a/packages/core-backend/docs/types/ApiPlatformClientOptions.html b/packages/core-backend/docs/types/ApiPlatformClientOptions.html new file mode 100644 index 00000000000..2953d1a9a80 --- /dev/null +++ b/packages/core-backend/docs/types/ApiPlatformClientOptions.html @@ -0,0 +1,5 @@ +ApiPlatformClientOptions | @metamask/core-backend

Type alias ApiPlatformClientOptions

ApiPlatformClientOptions: {
    clientProduct: string;
    clientVersion?: string;
    getBearerToken?: (() => Promise<string | undefined>);
    queryClient?: QueryClient;
}

Type declaration

  • clientProduct: string

    Client product identifier (e.g., 'metamask-extension')

    +
  • Optional clientVersion?: string

    Optional client version

    +
  • Optional getBearerToken?: (() => Promise<string | undefined>)

    Function to get bearer token for authenticated requests

    +
      • (): Promise<string | undefined>
      • Returns Promise<string | undefined>

  • Optional queryClient?: QueryClient

    Optional custom QueryClient instance

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/Asset.html b/packages/core-backend/docs/types/Asset.html new file mode 100644 index 00000000000..648ea00615c --- /dev/null +++ b/packages/core-backend/docs/types/Asset.html @@ -0,0 +1,6 @@ +Asset | @metamask/core-backend
Asset: {
    decimals: number;
    fungible: boolean;
    type: string;
    unit: string;
}

Asset information for balance updates

+

Type declaration

  • decimals: number

    Number of decimal places for the asset

    +
  • fungible: boolean

    Whether the asset is fungible

    +
  • type: string

    Asset type in CAIP format (e.g., "eip155:1/erc20:0x...")

    +
  • unit: string

    Asset unit/symbol (e.g., "USDT", "ETH")

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/BackendWebSocketServiceActions.html b/packages/core-backend/docs/types/BackendWebSocketServiceActions.html new file mode 100644 index 00000000000..1d41cbeb135 --- /dev/null +++ b/packages/core-backend/docs/types/BackendWebSocketServiceActions.html @@ -0,0 +1 @@ +BackendWebSocketServiceActions | @metamask/core-backend

Type alias BackendWebSocketServiceActions

BackendWebSocketServiceActions: BackendWebSocketServiceMethodActions
\ No newline at end of file diff --git a/packages/core-backend/docs/types/BackendWebSocketServiceConnectionStateChangedEvent.html b/packages/core-backend/docs/types/BackendWebSocketServiceConnectionStateChangedEvent.html new file mode 100644 index 00000000000..bc1cd84ce17 --- /dev/null +++ b/packages/core-backend/docs/types/BackendWebSocketServiceConnectionStateChangedEvent.html @@ -0,0 +1 @@ +BackendWebSocketServiceConnectionStateChangedEvent | @metamask/core-backend

Type alias BackendWebSocketServiceConnectionStateChangedEvent

BackendWebSocketServiceConnectionStateChangedEvent: {
    payload: [WebSocketConnectionInfo];
    type: "BackendWebSocketService:connectionStateChanged";
}

Type declaration

\ No newline at end of file diff --git a/packages/core-backend/docs/types/BackendWebSocketServiceEvents.html b/packages/core-backend/docs/types/BackendWebSocketServiceEvents.html new file mode 100644 index 00000000000..9e75824dd9a --- /dev/null +++ b/packages/core-backend/docs/types/BackendWebSocketServiceEvents.html @@ -0,0 +1 @@ +BackendWebSocketServiceEvents | @metamask/core-backend
\ No newline at end of file diff --git a/packages/core-backend/docs/types/BackendWebSocketServiceMessenger.html b/packages/core-backend/docs/types/BackendWebSocketServiceMessenger.html new file mode 100644 index 00000000000..f0142137c37 --- /dev/null +++ b/packages/core-backend/docs/types/BackendWebSocketServiceMessenger.html @@ -0,0 +1 @@ +BackendWebSocketServiceMessenger | @metamask/core-backend

Type alias BackendWebSocketServiceMessenger

BackendWebSocketServiceMessenger: Messenger<typeof SERVICE_NAME, BackendWebSocketServiceActions | AllowedActions, BackendWebSocketServiceEvents | AllowedEvents>
\ No newline at end of file diff --git a/packages/core-backend/docs/types/BackendWebSocketServiceOptions.html b/packages/core-backend/docs/types/BackendWebSocketServiceOptions.html new file mode 100644 index 00000000000..428e94ab890 --- /dev/null +++ b/packages/core-backend/docs/types/BackendWebSocketServiceOptions.html @@ -0,0 +1,10 @@ +BackendWebSocketServiceOptions | @metamask/core-backend

Type alias BackendWebSocketServiceOptions

BackendWebSocketServiceOptions: {
    isEnabled?: (() => boolean);
    maxReconnectDelay?: number;
    messenger: BackendWebSocketServiceMessenger;
    reconnectDelay?: number;
    requestTimeout?: number;
    timeout?: number;
    traceFn?: TraceCallback;
    url: string;
}

Configuration options for the WebSocket service

+

Type declaration

  • Optional isEnabled?: (() => boolean)

    Optional callback to determine if connection should be enabled (default: always enabled)

    +
      • (): boolean
      • Returns boolean

  • Optional maxReconnectDelay?: number

    Maximum reconnection delay in milliseconds (default: 60000)

    +
  • messenger: BackendWebSocketServiceMessenger

    The messenger for inter-service communication

    +
  • Optional reconnectDelay?: number

    Initial reconnection delay in milliseconds (default: 10000)

    +
  • Optional requestTimeout?: number

    Request timeout in milliseconds (default: 30000)

    +
  • Optional timeout?: number

    Connection timeout in milliseconds (default: 10000)

    +
  • Optional traceFn?: TraceCallback

    Optional callback to trace performance of WebSocket operations (default: no-op)

    +
  • url: string

    The WebSocket URL to connect to

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/Balance.html b/packages/core-backend/docs/types/Balance.html new file mode 100644 index 00000000000..eba45bbd9c1 --- /dev/null +++ b/packages/core-backend/docs/types/Balance.html @@ -0,0 +1,4 @@ +Balance | @metamask/core-backend
Balance: {
    amount: string;
    error?: string;
}

Balance information

+

Type declaration

  • amount: string

    Balance amount as string

    +
  • Optional error?: string

    Optional error message

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/BalanceUpdate.html b/packages/core-backend/docs/types/BalanceUpdate.html new file mode 100644 index 00000000000..8d4428a0c30 --- /dev/null +++ b/packages/core-backend/docs/types/BalanceUpdate.html @@ -0,0 +1,5 @@ +BalanceUpdate | @metamask/core-backend

Type alias BalanceUpdate

BalanceUpdate: {
    asset: Asset;
    postBalance: Balance;
    transfers: Transfer[];
}

Balance update information for a specific asset

+

Type declaration

  • asset: Asset

    Asset information

    +
  • postBalance: Balance

    Post-transaction balance

    +
  • transfers: Transfer[]

    List of transfers for this asset

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/ChannelCallback.html b/packages/core-backend/docs/types/ChannelCallback.html new file mode 100644 index 00000000000..a4f1405b99e --- /dev/null +++ b/packages/core-backend/docs/types/ChannelCallback.html @@ -0,0 +1,4 @@ +ChannelCallback | @metamask/core-backend

Type alias ChannelCallback

ChannelCallback: {
    callback: ((notification) => void);
    channelName: string;
}

Channel-based callback configuration

+

Type declaration

  • callback: ((notification) => void)

    Callback function

    +
  • channelName: string

    Channel name to match (also serves as the unique identifier)

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/ClientRequestMessage.html b/packages/core-backend/docs/types/ClientRequestMessage.html new file mode 100644 index 00000000000..a2480917374 --- /dev/null +++ b/packages/core-backend/docs/types/ClientRequestMessage.html @@ -0,0 +1,3 @@ +ClientRequestMessage | @metamask/core-backend

Type alias ClientRequestMessage

ClientRequestMessage: {
    data: {
        channels?: string[];
        requestId: string;
        [key: string]: unknown;
    };
    event: string;
}

Client Request message +Used when client sends a request to the server

+

Type declaration

  • data: {
        channels?: string[];
        requestId: string;
        [key: string]: unknown;
    }
    • [key: string]: unknown
    • Optional channels?: string[]
    • requestId: string
  • event: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/CoinGeckoSpotPrice.html b/packages/core-backend/docs/types/CoinGeckoSpotPrice.html new file mode 100644 index 00000000000..adfffb9990b --- /dev/null +++ b/packages/core-backend/docs/types/CoinGeckoSpotPrice.html @@ -0,0 +1,2 @@ +CoinGeckoSpotPrice | @metamask/core-backend

Type alias CoinGeckoSpotPrice

CoinGeckoSpotPrice: {
    allTimeHigh?: number;
    allTimeLow?: number;
    circulatingSupply?: number;
    dilutedMarketCap?: number;
    high1d?: number;
    id: string;
    low1d?: number;
    marketCap?: number;
    marketCapPercentChange1d?: number;
    price: number;
    priceChange1d?: number;
    pricePercentChange14d?: number;
    pricePercentChange1d?: number;
    pricePercentChange1h?: number;
    pricePercentChange1y?: number;
    pricePercentChange200d?: number;
    pricePercentChange30d?: number;
    pricePercentChange7d?: number;
    totalVolume?: number;
}

CoinGecko spot price

+

Type declaration

  • Optional allTimeHigh?: number
  • Optional allTimeLow?: number
  • Optional circulatingSupply?: number
  • Optional dilutedMarketCap?: number
  • Optional high1d?: number
  • id: string
  • Optional low1d?: number
  • Optional marketCap?: number
  • Optional marketCapPercentChange1d?: number
  • price: number
  • Optional priceChange1d?: number
  • Optional pricePercentChange14d?: number
  • Optional pricePercentChange1d?: number
  • Optional pricePercentChange1h?: number
  • Optional pricePercentChange1y?: number
  • Optional pricePercentChange200d?: number
  • Optional pricePercentChange30d?: number
  • Optional pricePercentChange7d?: number
  • Optional totalVolume?: number
\ No newline at end of file diff --git a/packages/core-backend/docs/types/ExchangeRateInfo.html b/packages/core-backend/docs/types/ExchangeRateInfo.html new file mode 100644 index 00000000000..9c06ce711ad --- /dev/null +++ b/packages/core-backend/docs/types/ExchangeRateInfo.html @@ -0,0 +1,2 @@ +ExchangeRateInfo | @metamask/core-backend

Type alias ExchangeRateInfo

ExchangeRateInfo: {
    currencyType: "crypto" | "fiat";
    name: string;
    ticker: string;
    value: number;
}

Exchange rate info

+

Type declaration

  • currencyType: "crypto" | "fiat"
  • name: string
  • ticker: string
  • value: number
\ No newline at end of file diff --git a/packages/core-backend/docs/types/FetchOptions.html b/packages/core-backend/docs/types/FetchOptions.html new file mode 100644 index 00000000000..e0153db69da --- /dev/null +++ b/packages/core-backend/docs/types/FetchOptions.html @@ -0,0 +1,3 @@ +FetchOptions | @metamask/core-backend

Type alias FetchOptions

FetchOptions: {
    gcTime?: number;
    staleTime?: number;
}

Type declaration

  • Optional gcTime?: number

    Custom GC time (ms)

    +
  • Optional staleTime?: number

    Custom stale time (ms)

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/MarketDataDetails.html b/packages/core-backend/docs/types/MarketDataDetails.html new file mode 100644 index 00000000000..b3564afee03 --- /dev/null +++ b/packages/core-backend/docs/types/MarketDataDetails.html @@ -0,0 +1,21 @@ +MarketDataDetails | @metamask/core-backend

Type alias MarketDataDetails

MarketDataDetails: {
    allTimeHigh: number;
    allTimeLow: number;
    circulatingSupply: number;
    currency: string;
    dilutedMarketCap: number;
    high1d: number;
    low1d: number;
    marketCap: number;
    marketCapPercentChange1d: number;
    price: number;
    priceChange1d: number;
    pricePercentChange14d: number;
    pricePercentChange1d: number;
    pricePercentChange1h: number;
    pricePercentChange1y: number;
    pricePercentChange200d: number;
    pricePercentChange30d: number;
    pricePercentChange7d: number;
    totalVolume: number;
}

Market data details from Price API spot-prices endpoint

+

Type declaration

  • allTimeHigh: number

    All-time high price

    +
  • allTimeLow: number

    All-time low price

    +
  • circulatingSupply: number

    Circulating supply

    +
  • currency: string

    Currency code (e.g., 'ETH', 'USD')

    +
  • dilutedMarketCap: number

    Diluted market cap

    +
  • high1d: number

    24h high price

    +
  • low1d: number

    24h low price

    +
  • marketCap: number

    Market capitalization

    +
  • marketCapPercentChange1d: number

    Market cap 24h change percentage

    +
  • price: number

    Current price in the requested currency

    +
  • priceChange1d: number

    24h price change amount

    +
  • pricePercentChange14d: number

    14d price change percentage

    +
  • pricePercentChange1d: number

    24h price change percentage

    +
  • pricePercentChange1h: number

    1h price change percentage

    +
  • pricePercentChange1y: number

    1y price change percentage

    +
  • pricePercentChange200d: number

    200d price change percentage

    +
  • pricePercentChange30d: number

    30d price change percentage

    +
  • pricePercentChange7d: number

    7d price change percentage

    +
  • totalVolume: number

    Total trading volume

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/NetworkInfo.html b/packages/core-backend/docs/types/NetworkInfo.html new file mode 100644 index 00000000000..38d43b388a1 --- /dev/null +++ b/packages/core-backend/docs/types/NetworkInfo.html @@ -0,0 +1,2 @@ +NetworkInfo | @metamask/core-backend

Type alias NetworkInfo

NetworkInfo: {
    active: boolean;
    blockExplorerUrl?: string;
    chainId: number;
    chainName: string;
    iconUrl?: string;
    nativeCurrency: {
        address: string;
        decimals: number;
        name: string;
        symbol: string;
    };
    networkType?: string;
    tokenSources?: string[];
}

Network info

+

Type declaration

  • active: boolean
  • Optional blockExplorerUrl?: string
  • chainId: number
  • chainName: string
  • Optional iconUrl?: string
  • nativeCurrency: {
        address: string;
        decimals: number;
        name: string;
        symbol: string;
    }
    • address: string
    • decimals: number
    • name: string
    • symbol: string
  • Optional networkType?: string
  • Optional tokenSources?: string[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/NftItem.html b/packages/core-backend/docs/types/NftItem.html new file mode 100644 index 00000000000..334d8ce5c97 --- /dev/null +++ b/packages/core-backend/docs/types/NftItem.html @@ -0,0 +1,2 @@ +NftItem | @metamask/core-backend
NftItem: {
    attributes?: Record<string, unknown>[];
    chainId: number;
    contractAddress: string;
    description?: string;
    imageUrl?: string;
    name?: string;
    tokenId: string;
}

NFT item

+

Type declaration

  • Optional attributes?: Record<string, unknown>[]
  • chainId: number
  • contractAddress: string
  • Optional description?: string
  • Optional imageUrl?: string
  • Optional name?: string
  • tokenId: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/PageInfo.html b/packages/core-backend/docs/types/PageInfo.html new file mode 100644 index 00000000000..965fa177caa --- /dev/null +++ b/packages/core-backend/docs/types/PageInfo.html @@ -0,0 +1,2 @@ +PageInfo | @metamask/core-backend
PageInfo: {
    count: number;
    cursor?: string;
    hasNextPage: boolean;
}

Pagination info for paginated responses

+

Type declaration

  • count: number
  • Optional cursor?: string
  • hasNextPage: boolean
\ No newline at end of file diff --git a/packages/core-backend/docs/types/PriceSupportedNetworksResponse.html b/packages/core-backend/docs/types/PriceSupportedNetworksResponse.html new file mode 100644 index 00000000000..8133d4cec4b --- /dev/null +++ b/packages/core-backend/docs/types/PriceSupportedNetworksResponse.html @@ -0,0 +1,2 @@ +PriceSupportedNetworksResponse | @metamask/core-backend

Type alias PriceSupportedNetworksResponse

PriceSupportedNetworksResponse: {
    fullSupport: string[];
    partialSupport: string[];
}

Price supported networks response

+

Type declaration

  • fullSupport: string[]
  • partialSupport: string[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/ServerNotificationMessage.html b/packages/core-backend/docs/types/ServerNotificationMessage.html new file mode 100644 index 00000000000..eeeddc7cca9 --- /dev/null +++ b/packages/core-backend/docs/types/ServerNotificationMessage.html @@ -0,0 +1,4 @@ +ServerNotificationMessage | @metamask/core-backend

Type alias ServerNotificationMessage

ServerNotificationMessage: {
    channel: string;
    data: Record<string, unknown>;
    event: string;
    subscriptionId?: string;
    timestamp: number;
}

Server Notification message +Used when server sends unsolicited data to client +subscriptionId is optional for system-wide notifications

+

Type declaration

  • channel: string
  • data: Record<string, unknown>
  • event: string
  • Optional subscriptionId?: string
  • timestamp: number
\ No newline at end of file diff --git a/packages/core-backend/docs/types/ServerResponseMessage.html b/packages/core-backend/docs/types/ServerResponseMessage.html new file mode 100644 index 00000000000..ac765153882 --- /dev/null +++ b/packages/core-backend/docs/types/ServerResponseMessage.html @@ -0,0 +1,3 @@ +ServerResponseMessage | @metamask/core-backend

Type alias ServerResponseMessage

ServerResponseMessage: {
    data: {
        failed?: string[];
        requestId: string;
        subscriptionId?: string;
        succeeded?: string[];
        [key: string]: unknown;
    };
    event: string;
}

Server Response message +Used when server responds to a client request

+

Type declaration

  • data: {
        failed?: string[];
        requestId: string;
        subscriptionId?: string;
        succeeded?: string[];
        [key: string]: unknown;
    }
    • [key: string]: unknown
    • Optional failed?: string[]
    • requestId: string
    • Optional subscriptionId?: string
    • Optional succeeded?: string[]
  • event: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/SubscriptionOptions.html b/packages/core-backend/docs/types/SubscriptionOptions.html new file mode 100644 index 00000000000..3a8fd5a9a54 --- /dev/null +++ b/packages/core-backend/docs/types/SubscriptionOptions.html @@ -0,0 +1,2 @@ +SubscriptionOptions | @metamask/core-backend

Type alias SubscriptionOptions

SubscriptionOptions: {
    address: string;
}

Account subscription options

+

Type declaration

  • address: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/SupportedCurrency.html b/packages/core-backend/docs/types/SupportedCurrency.html new file mode 100644 index 00000000000..66f01fe6a21 --- /dev/null +++ b/packages/core-backend/docs/types/SupportedCurrency.html @@ -0,0 +1,2 @@ +SupportedCurrency | @metamask/core-backend

Type alias SupportedCurrency

SupportedCurrency: "btc" | "eth" | "ltc" | "bch" | "bnb" | "eos" | "xrp" | "xlm" | "link" | "dot" | "yfi" | "usd" | "aed" | "ars" | "aud" | "bdt" | "bhd" | "bmd" | "brl" | "cad" | "chf" | "clp" | "cny" | "czk" | "dkk" | "eur" | "gbp" | "gel" | "hkd" | "huf" | "idr" | "ils" | "inr" | "jpy" | "krw" | "kwd" | "lkr" | "mmk" | "mxn" | "myr" | "ngn" | "nok" | "nzd" | "php" | "pkr" | "pln" | "rub" | "sar" | "sek" | "sgd" | "thb" | "try" | "twd" | "uah" | "vef" | "vnd" | "zar"

Supported currencies for Price API

+
\ No newline at end of file diff --git a/packages/core-backend/docs/types/SystemNotificationData.html b/packages/core-backend/docs/types/SystemNotificationData.html new file mode 100644 index 00000000000..89406d80892 --- /dev/null +++ b/packages/core-backend/docs/types/SystemNotificationData.html @@ -0,0 +1,5 @@ +SystemNotificationData | @metamask/core-backend

Type alias SystemNotificationData

SystemNotificationData: {
    chainIds: string[];
    status: "down" | "up";
    timestamp?: number;
}

System notification data for chain status updates

+

Type declaration

  • chainIds: string[]

    Array of chain IDs affected (e.g., ['eip155:137', 'eip155:1'])

    +
  • status: "down" | "up"

    Status of the chains: 'down' or 'up'

    +
  • Optional timestamp?: number

    Timestamp of the notification

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/TokenDiscoveryItem.html b/packages/core-backend/docs/types/TokenDiscoveryItem.html new file mode 100644 index 00000000000..b420a071cd5 --- /dev/null +++ b/packages/core-backend/docs/types/TokenDiscoveryItem.html @@ -0,0 +1,2 @@ +TokenDiscoveryItem | @metamask/core-backend

Type alias TokenDiscoveryItem

TokenDiscoveryItem: {
    address: string;
    balance?: string;
    chainId: number;
    decimals: number;
    name: string;
    symbol: string;
}

Token discovery item

+

Type declaration

  • address: string
  • Optional balance?: string
  • chainId: number
  • decimals: number
  • name: string
  • symbol: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/TokenMetadata.html b/packages/core-backend/docs/types/TokenMetadata.html new file mode 100644 index 00000000000..3ae061e78e0 --- /dev/null +++ b/packages/core-backend/docs/types/TokenMetadata.html @@ -0,0 +1,2 @@ +TokenMetadata | @metamask/core-backend

Type alias TokenMetadata

TokenMetadata: {
    address: string;
    aggregators?: string[];
    decimals: number;
    iconUrl?: string;
    name: string;
    occurrences?: number;
    symbol: string;
}

Token metadata from Token API v1 /tokens/{chainId} endpoint

+

Type declaration

  • address: string
  • Optional aggregators?: string[]
  • decimals: number
  • Optional iconUrl?: string
  • name: string
  • Optional occurrences?: number
  • symbol: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/TopAsset.html b/packages/core-backend/docs/types/TopAsset.html new file mode 100644 index 00000000000..005b782a5d2 --- /dev/null +++ b/packages/core-backend/docs/types/TopAsset.html @@ -0,0 +1,2 @@ +TopAsset | @metamask/core-backend
TopAsset: {
    address: string;
    symbol: string;
}

Top asset

+

Type declaration

  • address: string
  • symbol: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/TopGainersSortOption.html b/packages/core-backend/docs/types/TopGainersSortOption.html new file mode 100644 index 00000000000..e3717928365 --- /dev/null +++ b/packages/core-backend/docs/types/TopGainersSortOption.html @@ -0,0 +1,2 @@ +TopGainersSortOption | @metamask/core-backend

Type alias TopGainersSortOption

TopGainersSortOption: "m5_price_change_percentage_desc" | "h1_price_change_percentage_desc" | "h6_price_change_percentage_desc" | "h24_price_change_percentage_desc" | "m5_price_change_percentage_asc" | "h1_price_change_percentage_asc" | "h6_price_change_percentage_asc" | "h24_price_change_percentage_asc"

Top gainers sort options

+
\ No newline at end of file diff --git a/packages/core-backend/docs/types/Transaction.html b/packages/core-backend/docs/types/Transaction.html new file mode 100644 index 00000000000..c5d8fc78b66 --- /dev/null +++ b/packages/core-backend/docs/types/Transaction.html @@ -0,0 +1,8 @@ +Transaction | @metamask/core-backend

Type alias Transaction

Transaction: {
    chain: string;
    from: string;
    id: string;
    status: string;
    timestamp: number;
    to: string;
}

Basic transaction information

+

Type declaration

  • chain: string

    Chain identifier in CAIP-2 format (e.g., "eip155:1")

    +
  • from: string

    Address that initiated the transaction

    +
  • id: string

    Transaction ID/hash

    +
  • status: string

    Transaction status

    +
  • timestamp: number

    Timestamp when the transaction was processed

    +
  • to: string

    Address that received the transaction

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/Transfer.html b/packages/core-backend/docs/types/Transfer.html new file mode 100644 index 00000000000..02c849a68e1 --- /dev/null +++ b/packages/core-backend/docs/types/Transfer.html @@ -0,0 +1,5 @@ +Transfer | @metamask/core-backend
Transfer: {
    amount: string;
    from: string;
    to: string;
}

Transfer information

+

Type declaration

  • amount: string

    Transfer amount as string

    +
  • from: string

    Address sending the transfer

    +
  • to: string

    Address receiving the transfer

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/TrendingSortBy.html b/packages/core-backend/docs/types/TrendingSortBy.html new file mode 100644 index 00000000000..6be510c614b --- /dev/null +++ b/packages/core-backend/docs/types/TrendingSortBy.html @@ -0,0 +1,2 @@ +TrendingSortBy | @metamask/core-backend

Type alias TrendingSortBy

TrendingSortBy: "m5_trending" | "h1_trending" | "h6_trending" | "h24_trending"

Sort options for trending tokens (v3)

+
\ No newline at end of file diff --git a/packages/core-backend/docs/types/TrendingSortOption.html b/packages/core-backend/docs/types/TrendingSortOption.html new file mode 100644 index 00000000000..c90fadde8a6 --- /dev/null +++ b/packages/core-backend/docs/types/TrendingSortOption.html @@ -0,0 +1,2 @@ +TrendingSortOption | @metamask/core-backend

Type alias TrendingSortOption

TrendingSortOption: "m5_trending" | "h1_trending" | "h6_trending" | "h24_trending"

Trending sort options

+
\ No newline at end of file diff --git a/packages/core-backend/docs/types/TrendingToken.html b/packages/core-backend/docs/types/TrendingToken.html new file mode 100644 index 00000000000..0d5a509ac6d --- /dev/null +++ b/packages/core-backend/docs/types/TrendingToken.html @@ -0,0 +1,2 @@ +TrendingToken | @metamask/core-backend

Type alias TrendingToken

TrendingToken: {
    aggregatedUsdVolume: number;
    assetId: string;
    decimals: number;
    labels?: string[];
    marketCap: number;
    name: string;
    price: string;
    priceChangePct?: {
        h1?: string;
        h24?: string;
        h6?: string;
        m15?: string;
        m30?: string;
        m5?: string;
    };
    symbol: string;
}

Trending token data from Token API v3 /tokens/trending endpoint

+

Type declaration

  • aggregatedUsdVolume: number
  • assetId: string
  • decimals: number
  • Optional labels?: string[]
  • marketCap: number
  • name: string
  • price: string
  • Optional priceChangePct?: {
        h1?: string;
        h24?: string;
        h6?: string;
        m15?: string;
        m30?: string;
        m5?: string;
    }
    • Optional h1?: string
    • Optional h24?: string
    • Optional h6?: string
    • Optional m15?: string
    • Optional m30?: string
    • Optional m5?: string
  • symbol: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1AccountRelationshipResult.html b/packages/core-backend/docs/types/V1AccountRelationshipResult.html new file mode 100644 index 00000000000..d0d32c23917 --- /dev/null +++ b/packages/core-backend/docs/types/V1AccountRelationshipResult.html @@ -0,0 +1,7 @@ +V1AccountRelationshipResult | @metamask/core-backend

Type alias V1AccountRelationshipResult

V1AccountRelationshipResult: {
    chainId?: number;
    count?: number;
    data?: {
        blockHash: string;
        blockNumber: number;
        chainId: number;
        cumulativeGasUsed: number;
        effectiveGasPrice: string;
        from: string;
        gas: number;
        gasPrice: string;
        gasUsed: number;
        hash: string;
        isError: boolean;
        logs: unknown[];
        methodId: string;
        nonce: number;
        readable: string;
        textFunctionSignature: string;
        timestamp: string;
        to: string;
        transactionCategory: string;
        transactionType: string;
        value: string;
        valueTransfers: ValueTransfer[];
    };
    error?: {
        code: string;
        message: string;
    };
    txHash?: string;
}

Account address relationship result from v1 endpoint

+

Type declaration

  • Optional chainId?: number

    Chain ID

    +
  • Optional count?: number

    Number of interactions

    +
  • Optional data?: {
        blockHash: string;
        blockNumber: number;
        chainId: number;
        cumulativeGasUsed: number;
        effectiveGasPrice: string;
        from: string;
        gas: number;
        gasPrice: string;
        gasUsed: number;
        hash: string;
        isError: boolean;
        logs: unknown[];
        methodId: string;
        nonce: number;
        readable: string;
        textFunctionSignature: string;
        timestamp: string;
        to: string;
        transactionCategory: string;
        transactionType: string;
        value: string;
        valueTransfers: ValueTransfer[];
    }

    Transaction data details

    +
    • blockHash: string
    • blockNumber: number
    • chainId: number
    • cumulativeGasUsed: number
    • effectiveGasPrice: string
    • from: string
    • gas: number
    • gasPrice: string
    • gasUsed: number
    • hash: string
    • isError: boolean
    • logs: unknown[]
    • methodId: string
    • nonce: number
    • readable: string
    • textFunctionSignature: string
    • timestamp: string
    • to: string
    • transactionCategory: string
    • transactionType: string
    • value: string
    • valueTransfers: ValueTransfer[]
  • Optional error?: {
        code: string;
        message: string;
    }

    Error information when relationship lookup fails

    +
    • code: string
    • message: string
  • Optional txHash?: string

    Transaction hash of the relationship

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1AccountTransactionsResponse.html b/packages/core-backend/docs/types/V1AccountTransactionsResponse.html new file mode 100644 index 00000000000..80fd542be93 --- /dev/null +++ b/packages/core-backend/docs/types/V1AccountTransactionsResponse.html @@ -0,0 +1,2 @@ +V1AccountTransactionsResponse | @metamask/core-backend

Type alias V1AccountTransactionsResponse

V1AccountTransactionsResponse: {
    data: V1TransactionByHashResponse[];
    pageInfo: PageInfo;
}

Account transactions response

+

Type declaration

\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1ExchangeRatesResponse.html b/packages/core-backend/docs/types/V1ExchangeRatesResponse.html new file mode 100644 index 00000000000..04a760454c7 --- /dev/null +++ b/packages/core-backend/docs/types/V1ExchangeRatesResponse.html @@ -0,0 +1,2 @@ +V1ExchangeRatesResponse | @metamask/core-backend

Type alias V1ExchangeRatesResponse

V1ExchangeRatesResponse: {
    [currency: string]: ExchangeRateInfo;
}

Exchange rates response

+

Type declaration

\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1HistoricalPricesResponse.html b/packages/core-backend/docs/types/V1HistoricalPricesResponse.html new file mode 100644 index 00000000000..9612706fd98 --- /dev/null +++ b/packages/core-backend/docs/types/V1HistoricalPricesResponse.html @@ -0,0 +1,3 @@ +V1HistoricalPricesResponse | @metamask/core-backend

Type alias V1HistoricalPricesResponse

V1HistoricalPricesResponse: {
    prices: [number, number][];
}

V1 Historical prices response

+

Type declaration

  • prices: [number, number][]

    Array of price data points as [timestamp, price] tuples

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1SuggestedOccurrenceFloorsResponse.html b/packages/core-backend/docs/types/V1SuggestedOccurrenceFloorsResponse.html new file mode 100644 index 00000000000..f53be95a902 --- /dev/null +++ b/packages/core-backend/docs/types/V1SuggestedOccurrenceFloorsResponse.html @@ -0,0 +1,2 @@ +V1SuggestedOccurrenceFloorsResponse | @metamask/core-backend

Type alias V1SuggestedOccurrenceFloorsResponse

V1SuggestedOccurrenceFloorsResponse: {
    [chainId: string]: number;
}

Suggested occurrence floors response

+

Type declaration

  • [chainId: string]: number
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1SupportedNetworksResponse.html b/packages/core-backend/docs/types/V1SupportedNetworksResponse.html new file mode 100644 index 00000000000..36db5bc7e51 --- /dev/null +++ b/packages/core-backend/docs/types/V1SupportedNetworksResponse.html @@ -0,0 +1,2 @@ +V1SupportedNetworksResponse | @metamask/core-backend

Type alias V1SupportedNetworksResponse

V1SupportedNetworksResponse: {
    supportedNetworks: number[];
}

V1 Supported networks response

+

Type declaration

  • supportedNetworks: number[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1TokenDescriptionResponse.html b/packages/core-backend/docs/types/V1TokenDescriptionResponse.html new file mode 100644 index 00000000000..0099691e2f6 --- /dev/null +++ b/packages/core-backend/docs/types/V1TokenDescriptionResponse.html @@ -0,0 +1,2 @@ +V1TokenDescriptionResponse | @metamask/core-backend

Type alias V1TokenDescriptionResponse

V1TokenDescriptionResponse: {
    description: string;
}

Token description response

+

Type declaration

  • description: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1TokenSupportedNetworksResponse.html b/packages/core-backend/docs/types/V1TokenSupportedNetworksResponse.html new file mode 100644 index 00000000000..63a40b029e8 --- /dev/null +++ b/packages/core-backend/docs/types/V1TokenSupportedNetworksResponse.html @@ -0,0 +1,2 @@ +V1TokenSupportedNetworksResponse | @metamask/core-backend

Type alias V1TokenSupportedNetworksResponse

V1TokenSupportedNetworksResponse: {
    fullSupport: string[];
}

Token supported networks response (v1)

+

Type declaration

  • fullSupport: string[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V1TransactionByHashResponse.html b/packages/core-backend/docs/types/V1TransactionByHashResponse.html new file mode 100644 index 00000000000..79b0b4d924d --- /dev/null +++ b/packages/core-backend/docs/types/V1TransactionByHashResponse.html @@ -0,0 +1,2 @@ +V1TransactionByHashResponse | @metamask/core-backend

Type alias V1TransactionByHashResponse

V1TransactionByHashResponse: {
    blockHash: string;
    blockNumber: number;
    chainId: number;
    cumulativeGasUsed: number;
    effectiveGasPrice: string;
    from: string;
    gas: number;
    gasPrice: string;
    gasUsed: number;
    hash: string;
    isError?: boolean;
    logs?: {
        address: string;
        data: string;
        logIndex: number;
        topics: string[];
    }[];
    methodId?: string;
    nonce: number;
    timestamp: string;
    to: string;
    transactionCategory?: string;
    transactionProtocol?: string;
    transactionType?: string;
    value: string;
    valueTransfers?: {
        amount: string;
        contractAddress: string;
        decimal: number;
        from: string;
        name: string;
        symbol: string;
        to: string;
        transferType: string;
    }[];
}

Transaction by hash response

+

Type declaration

  • blockHash: string
  • blockNumber: number
  • chainId: number
  • cumulativeGasUsed: number
  • effectiveGasPrice: string
  • from: string
  • gas: number
  • gasPrice: string
  • gasUsed: number
  • hash: string
  • Optional isError?: boolean
  • Optional logs?: {
        address: string;
        data: string;
        logIndex: number;
        topics: string[];
    }[]
  • Optional methodId?: string
  • nonce: number
  • timestamp: string
  • to: string
  • Optional transactionCategory?: string
  • Optional transactionProtocol?: string
  • Optional transactionType?: string
  • value: string
  • Optional valueTransfers?: {
        amount: string;
        contractAddress: string;
        decimal: number;
        from: string;
        name: string;
        symbol: string;
        to: string;
        transferType: string;
    }[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V2ActiveNetworksResponse.html b/packages/core-backend/docs/types/V2ActiveNetworksResponse.html new file mode 100644 index 00000000000..6eb185af394 --- /dev/null +++ b/packages/core-backend/docs/types/V2ActiveNetworksResponse.html @@ -0,0 +1,2 @@ +V2ActiveNetworksResponse | @metamask/core-backend

Type alias V2ActiveNetworksResponse

V2ActiveNetworksResponse: {
    activeNetworks: string[];
}

Active networks response

+

Type declaration

  • activeNetworks: string[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V2BalanceItem.html b/packages/core-backend/docs/types/V2BalanceItem.html new file mode 100644 index 00000000000..b123144b652 --- /dev/null +++ b/packages/core-backend/docs/types/V2BalanceItem.html @@ -0,0 +1,2 @@ +V2BalanceItem | @metamask/core-backend

Type alias V2BalanceItem

V2BalanceItem: {
    accountAddress?: string;
    address: string;
    balance: string;
    chainId: number;
    decimals: number;
    name: string;
    object: string;
    symbol: string;
    timestamp?: string;
    type?: string;
}

V2 Balance item

+

Type declaration

  • Optional accountAddress?: string
  • address: string
  • balance: string
  • chainId: number
  • decimals: number
  • name: string
  • object: string
  • symbol: string
  • Optional timestamp?: string
  • Optional type?: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V2BalancesResponse.html b/packages/core-backend/docs/types/V2BalancesResponse.html new file mode 100644 index 00000000000..bb135c4a765 --- /dev/null +++ b/packages/core-backend/docs/types/V2BalancesResponse.html @@ -0,0 +1,2 @@ +V2BalancesResponse | @metamask/core-backend

Type alias V2BalancesResponse

V2BalancesResponse: {
    balances: V2BalanceItem[];
    count: number;
    unprocessedNetworks: number[];
}

V2 Balances response

+

Type declaration

  • balances: V2BalanceItem[]
  • count: number
  • unprocessedNetworks: number[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V2NftsResponse.html b/packages/core-backend/docs/types/V2NftsResponse.html new file mode 100644 index 00000000000..1bf7df60ee9 --- /dev/null +++ b/packages/core-backend/docs/types/V2NftsResponse.html @@ -0,0 +1,2 @@ +V2NftsResponse | @metamask/core-backend

Type alias V2NftsResponse

V2NftsResponse: {
    data: NftItem[];
    pageInfo: PageInfo;
}

NFTs response

+

Type declaration

\ No newline at end of file diff --git a/packages/core-backend/docs/types/V2SupportedNetworksResponse.html b/packages/core-backend/docs/types/V2SupportedNetworksResponse.html new file mode 100644 index 00000000000..cf1e6c64bdd --- /dev/null +++ b/packages/core-backend/docs/types/V2SupportedNetworksResponse.html @@ -0,0 +1,2 @@ +V2SupportedNetworksResponse | @metamask/core-backend

Type alias V2SupportedNetworksResponse

V2SupportedNetworksResponse: {
    fullSupport: number[];
    partialSupport: {
        balances: number[];
    };
}

V2 Supported networks response

+

Type declaration

  • fullSupport: number[]
  • partialSupport: {
        balances: number[];
    }
    • balances: number[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V2TokenSupportedNetworksResponse.html b/packages/core-backend/docs/types/V2TokenSupportedNetworksResponse.html new file mode 100644 index 00000000000..b966ffb01fb --- /dev/null +++ b/packages/core-backend/docs/types/V2TokenSupportedNetworksResponse.html @@ -0,0 +1,2 @@ +V2TokenSupportedNetworksResponse | @metamask/core-backend

Type alias V2TokenSupportedNetworksResponse

V2TokenSupportedNetworksResponse: {
    fullSupport: string[];
    partialSupport: string[];
}

Token supported networks response (v2) - includes partial support

+

Type declaration

  • fullSupport: string[]
  • partialSupport: string[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V2TokensResponse.html b/packages/core-backend/docs/types/V2TokensResponse.html new file mode 100644 index 00000000000..0f6f0f4f314 --- /dev/null +++ b/packages/core-backend/docs/types/V2TokensResponse.html @@ -0,0 +1,2 @@ +V2TokensResponse | @metamask/core-backend

Type alias V2TokensResponse

V2TokensResponse: {
    data: TokenDiscoveryItem[];
}

Tokens response

+

Type declaration

\ No newline at end of file diff --git a/packages/core-backend/docs/types/V3AssetResponse.html b/packages/core-backend/docs/types/V3AssetResponse.html new file mode 100644 index 00000000000..15821bf276c --- /dev/null +++ b/packages/core-backend/docs/types/V3AssetResponse.html @@ -0,0 +1,18 @@ +V3AssetResponse | @metamask/core-backend

Type alias V3AssetResponse

V3AssetResponse: {
    aggregators?: string[];
    assetId: string;
    coingeckoId?: string;
    decimals: number;
    description?: V3AssetDescription;
    erc20Permit?: boolean;
    fees?: V3AssetFees;
    honeypotStatus?: V3AssetHoneypotStatus;
    iconUrl?: string;
    isContractVerified?: boolean;
    labels?: string[];
    name: string;
    occurrences?: number;
    storage?: V3AssetStorage;
    symbol: string;
}

Asset response from V3 Assets endpoint. +All fields are stored in state (FungibleAssetMetadata).

+

Type declaration

  • Optional aggregators?: string[]

    DEX/aggregator integrations

    +
  • assetId: string

    CAIP-19 asset ID (e.g., "eip155:1/erc20:0x...")

    +
  • Optional coingeckoId?: string

    CoinGecko ID for price lookups

    +
  • decimals: number

    Decimal places

    +
  • Optional description?: V3AssetDescription

    Localized description (maps to metadata.description in state)

    +
  • Optional erc20Permit?: boolean

    Whether the token supports ERC-20 permit

    +
  • Optional fees?: V3AssetFees

    Fee information

    +
  • Optional honeypotStatus?: V3AssetHoneypotStatus

    Honeypot detection status

    +
  • Optional iconUrl?: string

    Icon URL (maps to image in state)

    +
  • Optional isContractVerified?: boolean

    Whether the contract is verified

    +
  • Optional labels?: string[]

    Asset labels/tags (e.g., "stable_coin")

    +
  • name: string

    Asset display name

    +
  • Optional occurrences?: number

    Number of token list occurrences

    +
  • Optional storage?: V3AssetStorage

    Storage slot information

    +
  • symbol: string

    Asset symbol

    +
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V3HistoricalPricesResponse.html b/packages/core-backend/docs/types/V3HistoricalPricesResponse.html new file mode 100644 index 00000000000..32da386faa4 --- /dev/null +++ b/packages/core-backend/docs/types/V3HistoricalPricesResponse.html @@ -0,0 +1,2 @@ +V3HistoricalPricesResponse | @metamask/core-backend

Type alias V3HistoricalPricesResponse

V3HistoricalPricesResponse: {
    marketCaps?: [number, number][];
    prices: [number, number][];
    totalVolumes?: [number, number][];
}

V3 Historical prices response

+

Type declaration

  • Optional marketCaps?: [number, number][]
  • prices: [number, number][]
  • Optional totalVolumes?: [number, number][]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V3SpotPricesResponse.html b/packages/core-backend/docs/types/V3SpotPricesResponse.html new file mode 100644 index 00000000000..576ba0a2417 --- /dev/null +++ b/packages/core-backend/docs/types/V3SpotPricesResponse.html @@ -0,0 +1,2 @@ +V3SpotPricesResponse | @metamask/core-backend

Type alias V3SpotPricesResponse

V3SpotPricesResponse: Record<string, {
    marketCap?: number;
    price: number;
    pricePercentChange1d?: number;
    totalVolume?: number;
} | null>

V3 Spot prices response

+
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V4BalancesResponse.html b/packages/core-backend/docs/types/V4BalancesResponse.html new file mode 100644 index 00000000000..d24b4f0791c --- /dev/null +++ b/packages/core-backend/docs/types/V4BalancesResponse.html @@ -0,0 +1,2 @@ +V4BalancesResponse | @metamask/core-backend

Type alias V4BalancesResponse

V4BalancesResponse: {
    balances: V2BalanceItem[];
    count: number;
    unprocessedNetworks: number[];
}

V4 Multi-account balances response

+

Type declaration

  • balances: V2BalanceItem[]
  • count: number
  • unprocessedNetworks: number[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V4MultiAccountTransactionsResponse.html b/packages/core-backend/docs/types/V4MultiAccountTransactionsResponse.html new file mode 100644 index 00000000000..651a901800f --- /dev/null +++ b/packages/core-backend/docs/types/V4MultiAccountTransactionsResponse.html @@ -0,0 +1,2 @@ +V4MultiAccountTransactionsResponse | @metamask/core-backend

Type alias V4MultiAccountTransactionsResponse

V4MultiAccountTransactionsResponse: {
    data: V1TransactionByHashResponse[];
    pageInfo: {
        count: number;
        endCursor?: string;
        hasNextPage: boolean;
    };
    unprocessedNetworks: string[];
}

V4 Multi-account transactions response

+

Type declaration

  • data: V1TransactionByHashResponse[]
  • pageInfo: {
        count: number;
        endCursor?: string;
        hasNextPage: boolean;
    }
    • count: number
    • Optional endCursor?: string
    • hasNextPage: boolean
  • unprocessedNetworks: string[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V5BalanceItem.html b/packages/core-backend/docs/types/V5BalanceItem.html new file mode 100644 index 00000000000..6e73249f81c --- /dev/null +++ b/packages/core-backend/docs/types/V5BalanceItem.html @@ -0,0 +1,2 @@ +V5BalanceItem | @metamask/core-backend

Type alias V5BalanceItem

V5BalanceItem: {
    accountId: string;
    assetId: string;
    balance: string;
    decimals: number;
    name: string;
    object: "token";
    symbol: string;
    type: "native" | "erc20";
}

V5 Balance Item from Accounts API

+

Type declaration

  • accountId: string
  • assetId: string
  • balance: string
  • decimals: number
  • name: string
  • object: "token"
  • symbol: string
  • type: "native" | "erc20"
\ No newline at end of file diff --git a/packages/core-backend/docs/types/V5BalancesResponse.html b/packages/core-backend/docs/types/V5BalancesResponse.html new file mode 100644 index 00000000000..be76cd38d85 --- /dev/null +++ b/packages/core-backend/docs/types/V5BalancesResponse.html @@ -0,0 +1,2 @@ +V5BalancesResponse | @metamask/core-backend

Type alias V5BalancesResponse

V5BalancesResponse: {
    balances: V5BalanceItem[];
    count: number;
    unprocessedNetworks: string[];
}

V5 Multi-account balances response

+

Type declaration

  • balances: V5BalanceItem[]
  • count: number
  • unprocessedNetworks: string[]
\ No newline at end of file diff --git a/packages/core-backend/docs/types/ValueTransfer.html b/packages/core-backend/docs/types/ValueTransfer.html new file mode 100644 index 00000000000..42e380c5263 --- /dev/null +++ b/packages/core-backend/docs/types/ValueTransfer.html @@ -0,0 +1,2 @@ +ValueTransfer | @metamask/core-backend

Type alias ValueTransfer

ValueTransfer: {
    amount: string;
    decimal: number;
    from: string;
    to: string;
    transferType: string;
}

Value transfer within a transaction

+

Type declaration

  • amount: string
  • decimal: number
  • from: string
  • to: string
  • transferType: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/WebSocketConnectionInfo.html b/packages/core-backend/docs/types/WebSocketConnectionInfo.html new file mode 100644 index 00000000000..7ae338220b9 --- /dev/null +++ b/packages/core-backend/docs/types/WebSocketConnectionInfo.html @@ -0,0 +1,2 @@ +WebSocketConnectionInfo | @metamask/core-backend

Type alias WebSocketConnectionInfo

WebSocketConnectionInfo: {
    connectedAt?: number;
    maxReconnectDelay: number;
    reconnectAttempts: number;
    reconnectDelay: number;
    requestTimeout: number;
    state: WebSocketState;
    timeout: number;
    url: string;
}

WebSocket connection info

+

Type declaration

  • Optional connectedAt?: number
  • maxReconnectDelay: number
  • reconnectAttempts: number
  • reconnectDelay: number
  • requestTimeout: number
  • state: WebSocketState
  • timeout: number
  • url: string
\ No newline at end of file diff --git a/packages/core-backend/docs/types/WebSocketMessage.html b/packages/core-backend/docs/types/WebSocketMessage.html new file mode 100644 index 00000000000..18ca7761023 --- /dev/null +++ b/packages/core-backend/docs/types/WebSocketMessage.html @@ -0,0 +1,2 @@ +WebSocketMessage | @metamask/core-backend
\ No newline at end of file diff --git a/packages/core-backend/docs/types/WebSocketSubscription.html b/packages/core-backend/docs/types/WebSocketSubscription.html new file mode 100644 index 00000000000..b04f0fac3fc --- /dev/null +++ b/packages/core-backend/docs/types/WebSocketSubscription.html @@ -0,0 +1,7 @@ +WebSocketSubscription | @metamask/core-backend

Type alias WebSocketSubscription

WebSocketSubscription: {
    callback?: ((notification) => void);
    channelType: string;
    channels: string[];
    subscriptionId: string;
    unsubscribe: ((requestId?) => Promise<void>);
}

Unified WebSocket subscription object used for both internal storage and external API

+

Type declaration

  • Optional callback?: ((notification) => void)

    Callback function for handling notifications (optional for external use)

    +
  • channelType: string

    Channel type with version (e.g., 'account-activity.v1') extracted from first channel

    +
  • channels: string[]

    Channel names for this subscription

    +
  • subscriptionId: string

    The subscription ID from the server

    +
  • unsubscribe: ((requestId?) => Promise<void>)

    Function to unsubscribe and clean up

    +
      • (requestId?): Promise<void>
      • Parameters

        • Optional requestId: string

        Returns Promise<void>

\ No newline at end of file diff --git a/packages/core-backend/docs/variables/ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONS.html b/packages/core-backend/docs/variables/ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONS.html new file mode 100644 index 00000000000..16dad8b7a42 --- /dev/null +++ b/packages/core-backend/docs/variables/ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONS.html @@ -0,0 +1 @@ +ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONS | @metamask/core-backend

Variable ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONSConst

ACCOUNT_ACTIVITY_SERVICE_ALLOWED_ACTIONS: readonly ["AccountsController:getSelectedAccount", "BackendWebSocketService:connect", "BackendWebSocketService:forceReconnection", "BackendWebSocketService:subscribe", "BackendWebSocketService:getConnectionInfo", "BackendWebSocketService:channelHasSubscription", "BackendWebSocketService:getSubscriptionsByChannel", "BackendWebSocketService:findSubscriptionsByChannelPrefix", "BackendWebSocketService:addChannelCallback", "BackendWebSocketService:removeChannelCallback"] = ...
\ No newline at end of file diff --git a/packages/core-backend/docs/variables/ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTS.html b/packages/core-backend/docs/variables/ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTS.html new file mode 100644 index 00000000000..890103faa7b --- /dev/null +++ b/packages/core-backend/docs/variables/ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTS.html @@ -0,0 +1 @@ +ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTS | @metamask/core-backend

Variable ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTSConst

ACCOUNT_ACTIVITY_SERVICE_ALLOWED_EVENTS: readonly ["AccountsController:selectedAccountChange", "BackendWebSocketService:connectionStateChanged"] = ...
\ No newline at end of file diff --git a/packages/core-backend/docs/variables/API_URLS.html b/packages/core-backend/docs/variables/API_URLS.html new file mode 100644 index 00000000000..35ef03f6dd8 --- /dev/null +++ b/packages/core-backend/docs/variables/API_URLS.html @@ -0,0 +1,2 @@ +API_URLS | @metamask/core-backend

Variable API_URLSConst

API_URLS: {
    ACCOUNTS: "https://accounts.api.cx.metamask.io";
    PRICES: "https://price.api.cx.metamask.io";
    TOKEN: "https://token.api.cx.metamask.io";
    TOKENS: "https://tokens.api.cx.metamask.io";
} = ...

API Base URLs

+

Type declaration

  • Readonly ACCOUNTS: "https://accounts.api.cx.metamask.io"
  • Readonly PRICES: "https://price.api.cx.metamask.io"
  • Readonly TOKEN: "https://token.api.cx.metamask.io"
  • Readonly TOKENS: "https://tokens.api.cx.metamask.io"
\ No newline at end of file diff --git a/packages/core-backend/docs/variables/GC_TIMES.html b/packages/core-backend/docs/variables/GC_TIMES.html new file mode 100644 index 00000000000..929cd5673aa --- /dev/null +++ b/packages/core-backend/docs/variables/GC_TIMES.html @@ -0,0 +1,2 @@ +GC_TIMES | @metamask/core-backend

Variable GC_TIMESConst

GC_TIMES: {
    DEFAULT: number;
    EXTENDED: number;
    SHORT: number;
} = ...

Garbage collection times (ms)

+

Type declaration

  • Readonly DEFAULT: number
  • Readonly EXTENDED: number
  • Readonly SHORT: number
\ No newline at end of file diff --git a/packages/core-backend/docs/variables/STALE_TIMES.html b/packages/core-backend/docs/variables/STALE_TIMES.html new file mode 100644 index 00000000000..b85fb16d0ef --- /dev/null +++ b/packages/core-backend/docs/variables/STALE_TIMES.html @@ -0,0 +1,2 @@ +STALE_TIMES | @metamask/core-backend

Variable STALE_TIMESConst

STALE_TIMES: {
    AUTH_TOKEN: number;
    BALANCES: number;
    DEFAULT: number;
    EXCHANGE_RATES: number;
    NETWORKS: number;
    PRICES: number;
    SUPPORTED_NETWORKS: number;
    TOKEN_LIST: number;
    TOKEN_METADATA: number;
    TRANSACTIONS: number;
    TRENDING: number;
} = ...

Stale times for different data types (ms)

+

Type declaration

  • Readonly AUTH_TOKEN: number
  • Readonly BALANCES: number
  • Readonly DEFAULT: number
  • Readonly EXCHANGE_RATES: number
  • Readonly NETWORKS: number
  • Readonly PRICES: number
  • Readonly SUPPORTED_NETWORKS: number
  • Readonly TOKEN_LIST: number
  • Readonly TOKEN_METADATA: number
  • Readonly TRANSACTIONS: number
  • Readonly TRENDING: number
\ No newline at end of file diff --git a/packages/core-backend/tsconfig.typedoc.json b/packages/core-backend/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/core-backend/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/core-backend/typedoc.json b/packages/core-backend/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/core-backend/typedoc.json +++ b/packages/core-backend/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/delegation-controller/tsconfig.typedoc.json b/packages/delegation-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/delegation-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/delegation-controller/typedoc.json b/packages/delegation-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/delegation-controller/typedoc.json +++ b/packages/delegation-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/earn-controller/tsconfig.typedoc.json b/packages/earn-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/earn-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/earn-controller/typedoc.json b/packages/earn-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/earn-controller/typedoc.json +++ b/packages/earn-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/eip-5792-middleware/tsconfig.typedoc.json b/packages/eip-5792-middleware/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/eip-5792-middleware/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/eip-5792-middleware/typedoc.json b/packages/eip-5792-middleware/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/eip-5792-middleware/typedoc.json +++ b/packages/eip-5792-middleware/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/eip-7702-internal-rpc-middleware/tsconfig.typedoc.json b/packages/eip-7702-internal-rpc-middleware/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/eip-7702-internal-rpc-middleware/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/eip-7702-internal-rpc-middleware/typedoc.json b/packages/eip-7702-internal-rpc-middleware/typedoc.json index b867251d8d8..5222e986cf0 100644 --- a/packages/eip-7702-internal-rpc-middleware/typedoc.json +++ b/packages/eip-7702-internal-rpc-middleware/typedoc.json @@ -1,6 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["src/index.ts"], "out": "docs", + "tsconfig": "./tsconfig.typedoc.json", "exclude": ["**/*.test.ts"], "excludeExternals": true, "excludePrivate": true, @@ -20,7 +22,7 @@ "Enum", "Class", "Interface", - "Type alias", + "TypeAlias", "Constructor", "Property", "Variable", diff --git a/packages/eip1193-permission-middleware/tsconfig.typedoc.json b/packages/eip1193-permission-middleware/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/eip1193-permission-middleware/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/eip1193-permission-middleware/typedoc.json b/packages/eip1193-permission-middleware/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/eip1193-permission-middleware/typedoc.json +++ b/packages/eip1193-permission-middleware/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/ens-controller/tsconfig.typedoc.json b/packages/ens-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/ens-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/ens-controller/typedoc.json b/packages/ens-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/ens-controller/typedoc.json +++ b/packages/ens-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/error-reporting-service/tsconfig.typedoc.json b/packages/error-reporting-service/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/error-reporting-service/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/error-reporting-service/typedoc.json b/packages/error-reporting-service/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/error-reporting-service/typedoc.json +++ b/packages/error-reporting-service/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/eth-block-tracker/tsconfig.typedoc.json b/packages/eth-block-tracker/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/eth-block-tracker/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/eth-block-tracker/typedoc.json b/packages/eth-block-tracker/typedoc.json index 38d60c72307..14490d72c5f 100644 --- a/packages/eth-block-tracker/typedoc.json +++ b/packages/eth-block-tracker/typedoc.json @@ -1,6 +1,7 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], - "tsconfig": "./tsconfig.build.json", + "tsconfig": "./tsconfig.typedoc.json", "excludePrivate": true, "hideGenerator": true, "out": "docs" diff --git a/packages/eth-json-rpc-middleware/tsconfig.typedoc.json b/packages/eth-json-rpc-middleware/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/eth-json-rpc-middleware/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/eth-json-rpc-middleware/typedoc.json b/packages/eth-json-rpc-middleware/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/eth-json-rpc-middleware/typedoc.json +++ b/packages/eth-json-rpc-middleware/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/eth-json-rpc-provider/tsconfig.typedoc.json b/packages/eth-json-rpc-provider/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/eth-json-rpc-provider/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/eth-json-rpc-provider/typedoc.json b/packages/eth-json-rpc-provider/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/eth-json-rpc-provider/typedoc.json +++ b/packages/eth-json-rpc-provider/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/foundryup/tsconfig.typedoc.json b/packages/foundryup/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/foundryup/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/foundryup/typedoc.json b/packages/foundryup/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/foundryup/typedoc.json +++ b/packages/foundryup/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/gas-fee-controller/tsconfig.typedoc.json b/packages/gas-fee-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/gas-fee-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/gas-fee-controller/typedoc.json b/packages/gas-fee-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/gas-fee-controller/typedoc.json +++ b/packages/gas-fee-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/gator-permissions-controller/tsconfig.typedoc.json b/packages/gator-permissions-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/gator-permissions-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/gator-permissions-controller/typedoc.json b/packages/gator-permissions-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/gator-permissions-controller/typedoc.json +++ b/packages/gator-permissions-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/json-rpc-engine/tsconfig.typedoc.json b/packages/json-rpc-engine/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/json-rpc-engine/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/json-rpc-engine/typedoc.json b/packages/json-rpc-engine/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/json-rpc-engine/typedoc.json +++ b/packages/json-rpc-engine/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/json-rpc-middleware-stream/tsconfig.typedoc.json b/packages/json-rpc-middleware-stream/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/json-rpc-middleware-stream/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/json-rpc-middleware-stream/typedoc.json b/packages/json-rpc-middleware-stream/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/json-rpc-middleware-stream/typedoc.json +++ b/packages/json-rpc-middleware-stream/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/keyring-controller/tsconfig.typedoc.json b/packages/keyring-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/keyring-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/keyring-controller/typedoc.json b/packages/keyring-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/keyring-controller/typedoc.json +++ b/packages/keyring-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/logging-controller/tsconfig.typedoc.json b/packages/logging-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/logging-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/logging-controller/typedoc.json b/packages/logging-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/logging-controller/typedoc.json +++ b/packages/logging-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/message-manager/tsconfig.typedoc.json b/packages/message-manager/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/message-manager/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/message-manager/typedoc.json b/packages/message-manager/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/message-manager/typedoc.json +++ b/packages/message-manager/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/messenger/tsconfig.typedoc.json b/packages/messenger/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/messenger/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/messenger/typedoc.json b/packages/messenger/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/messenger/typedoc.json +++ b/packages/messenger/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/multichain-account-service/tsconfig.typedoc.json b/packages/multichain-account-service/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/multichain-account-service/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/multichain-account-service/typedoc.json b/packages/multichain-account-service/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/multichain-account-service/typedoc.json +++ b/packages/multichain-account-service/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/multichain-api-middleware/tsconfig.typedoc.json b/packages/multichain-api-middleware/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/multichain-api-middleware/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/multichain-api-middleware/typedoc.json b/packages/multichain-api-middleware/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/multichain-api-middleware/typedoc.json +++ b/packages/multichain-api-middleware/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/multichain-network-controller/tsconfig.typedoc.json b/packages/multichain-network-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/multichain-network-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/multichain-network-controller/typedoc.json b/packages/multichain-network-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/multichain-network-controller/typedoc.json +++ b/packages/multichain-network-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/multichain-transactions-controller/tsconfig.typedoc.json b/packages/multichain-transactions-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/multichain-transactions-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/multichain-transactions-controller/typedoc.json b/packages/multichain-transactions-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/multichain-transactions-controller/typedoc.json +++ b/packages/multichain-transactions-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/name-controller/tsconfig.typedoc.json b/packages/name-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/name-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/name-controller/typedoc.json b/packages/name-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/name-controller/typedoc.json +++ b/packages/name-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/network-controller/tsconfig.typedoc.json b/packages/network-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/network-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/network-controller/typedoc.json b/packages/network-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/network-controller/typedoc.json +++ b/packages/network-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/network-enablement-controller/tsconfig.typedoc.json b/packages/network-enablement-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/network-enablement-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/network-enablement-controller/typedoc.json b/packages/network-enablement-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/network-enablement-controller/typedoc.json +++ b/packages/network-enablement-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/notification-services-controller/tsconfig.typedoc.json b/packages/notification-services-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/notification-services-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/notification-services-controller/typedoc.json b/packages/notification-services-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/notification-services-controller/typedoc.json +++ b/packages/notification-services-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/permission-controller/tsconfig.typedoc.json b/packages/permission-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/permission-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/permission-controller/typedoc.json b/packages/permission-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/permission-controller/typedoc.json +++ b/packages/permission-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/permission-log-controller/tsconfig.typedoc.json b/packages/permission-log-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/permission-log-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/permission-log-controller/typedoc.json b/packages/permission-log-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/permission-log-controller/typedoc.json +++ b/packages/permission-log-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/perps-controller/tsconfig.typedoc.json b/packages/perps-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/perps-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/perps-controller/typedoc.json b/packages/perps-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/perps-controller/typedoc.json +++ b/packages/perps-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/phishing-controller/tsconfig.typedoc.json b/packages/phishing-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/phishing-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/phishing-controller/typedoc.json b/packages/phishing-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/phishing-controller/typedoc.json +++ b/packages/phishing-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/polling-controller/tsconfig.typedoc.json b/packages/polling-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/polling-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/polling-controller/typedoc.json b/packages/polling-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/polling-controller/typedoc.json +++ b/packages/polling-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/preferences-controller/tsconfig.typedoc.json b/packages/preferences-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/preferences-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/preferences-controller/typedoc.json b/packages/preferences-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/preferences-controller/typedoc.json +++ b/packages/preferences-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/profile-metrics-controller/tsconfig.typedoc.json b/packages/profile-metrics-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/profile-metrics-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/profile-metrics-controller/typedoc.json b/packages/profile-metrics-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/profile-metrics-controller/typedoc.json +++ b/packages/profile-metrics-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/profile-sync-controller/tsconfig.typedoc.json b/packages/profile-sync-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/profile-sync-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/profile-sync-controller/typedoc.json b/packages/profile-sync-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/profile-sync-controller/typedoc.json +++ b/packages/profile-sync-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/ramps-controller/tsconfig.typedoc.json b/packages/ramps-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/ramps-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/ramps-controller/typedoc.json b/packages/ramps-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/ramps-controller/typedoc.json +++ b/packages/ramps-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/rate-limit-controller/tsconfig.typedoc.json b/packages/rate-limit-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/rate-limit-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/rate-limit-controller/typedoc.json b/packages/rate-limit-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/rate-limit-controller/typedoc.json +++ b/packages/rate-limit-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/remote-feature-flag-controller/tsconfig.typedoc.json b/packages/remote-feature-flag-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/remote-feature-flag-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/remote-feature-flag-controller/typedoc.json b/packages/remote-feature-flag-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/remote-feature-flag-controller/typedoc.json +++ b/packages/remote-feature-flag-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/sample-controllers/tsconfig.typedoc.json b/packages/sample-controllers/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/sample-controllers/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/sample-controllers/typedoc.json b/packages/sample-controllers/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/sample-controllers/typedoc.json +++ b/packages/sample-controllers/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/seedless-onboarding-controller/tsconfig.typedoc.json b/packages/seedless-onboarding-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/seedless-onboarding-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/seedless-onboarding-controller/typedoc.json b/packages/seedless-onboarding-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/seedless-onboarding-controller/typedoc.json +++ b/packages/seedless-onboarding-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/selected-network-controller/tsconfig.typedoc.json b/packages/selected-network-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/selected-network-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/selected-network-controller/typedoc.json b/packages/selected-network-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/selected-network-controller/typedoc.json +++ b/packages/selected-network-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/shield-controller/tsconfig.typedoc.json b/packages/shield-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/shield-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/shield-controller/typedoc.json b/packages/shield-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/shield-controller/typedoc.json +++ b/packages/shield-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/signature-controller/tsconfig.typedoc.json b/packages/signature-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/signature-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/signature-controller/typedoc.json b/packages/signature-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/signature-controller/typedoc.json +++ b/packages/signature-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/storage-service/tsconfig.typedoc.json b/packages/storage-service/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/storage-service/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/storage-service/typedoc.json b/packages/storage-service/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/storage-service/typedoc.json +++ b/packages/storage-service/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/subscription-controller/tsconfig.typedoc.json b/packages/subscription-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/subscription-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/subscription-controller/typedoc.json b/packages/subscription-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/subscription-controller/typedoc.json +++ b/packages/subscription-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/transaction-controller/tsconfig.typedoc.json b/packages/transaction-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/transaction-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/transaction-controller/typedoc.json b/packages/transaction-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/transaction-controller/typedoc.json +++ b/packages/transaction-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/transaction-pay-controller/tsconfig.typedoc.json b/packages/transaction-pay-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/transaction-pay-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/transaction-pay-controller/typedoc.json b/packages/transaction-pay-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/transaction-pay-controller/typedoc.json +++ b/packages/transaction-pay-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/packages/user-operation-controller/tsconfig.typedoc.json b/packages/user-operation-controller/tsconfig.typedoc.json new file mode 100644 index 00000000000..29ff3318040 --- /dev/null +++ b/packages/user-operation-controller/tsconfig.typedoc.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "composite": false, + "declaration": false, + "declarationMap": false, + "noEmit": true, + "skipLibCheck": true, + "rootDir": "../../" + }, + "references": [], + "include": ["../../types", "./src"], + "exclude": ["**/*.test.ts", "**/*.test-d.ts", "**/*.spec.ts"] +} diff --git a/packages/user-operation-controller/typedoc.json b/packages/user-operation-controller/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/packages/user-operation-controller/typedoc.json +++ b/packages/user-operation-controller/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" } diff --git a/scripts/create-package/package-template/typedoc.json b/scripts/create-package/package-template/typedoc.json index c9da015dbf8..aa0f6b6ff7b 100644 --- a/scripts/create-package/package-template/typedoc.json +++ b/scripts/create-package/package-template/typedoc.json @@ -1,7 +1,8 @@ { + "skipErrorChecking": true, "entryPoints": ["./src/index.ts"], "excludePrivate": true, "hideGenerator": true, "out": "docs", - "tsconfig": "./tsconfig.build.json" + "tsconfig": "./tsconfig.typedoc.json" }