From f5308301f79beb85a8d53e0f5ffc466603b8d87a Mon Sep 17 00:00:00 2001
From: Nemo | DFR
Date: Thu, 5 Oct 2023 17:13:35 +0900
Subject: [PATCH 1/7] doc(sdk) add TSDoc comments to public API
---
src/index.ts | 159 ++++++++++++++++++++++++++++++++++++++-
src/typings.ts | 200 ++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 354 insertions(+), 5 deletions(-)
diff --git a/src/index.ts b/src/index.ts
index 6c9d27a..2b048b3 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -51,6 +51,30 @@ export class MtLinkSdk {
mode: 'production'
};
+ /**
+ * Call `init` to initialize the SDK and set default options for API calls.
+ *
+ * Some LINK APIs can be used without calling `init`.
+ * Calls related to OAuth require a client id which can only be set via the `init` function.
+ * These APIs include:
+ * - {@link authorize}
+ * - {@link onboard}
+ * - {@link exchangeToken}
+ * - {@link tokenInfo}
+ *
+ * @example
+ * ```js
+ * mtLinkSdk.init(client_id, options);
+ * ```
+ * @param clientId - OAuth `clientId` of the app (please request this from your Moneytree representative if you need one).
+ * ⚠️ This function will throw an error if this parameter isn't provided.
+ * @param options - Optional parameters for the SDK.
+ * These options include all of the values below and also all `options` parameters of the other APIs.
+ * Options values passed here during initialization will be used by default if no options are
+ * passed when calling a specific API.
+ * Available options are documented under {@link AuthorizeOptions} and {@link ConfigsOptions}
+ * refer to each individual link for more details.
+ */
public init(clientId: string, options: InitOptions = {}): void {
if (!clientId) {
throw new Error('[mt-link-sdk] Missing parameter `client_id` in `init`.');
@@ -66,37 +90,129 @@ export class MtLinkSdk {
mode: validModes.indexOf(mode) === -1 ? 'production' : mode
};
}
-
+ /**
+ * Use this method to send a guest identifier to Moneytree so that Moneytree can forward it as `saml_subject_id` parameter
+ * to the Identity Provider (IdP) via the SAMLRequest during SAML SSO flows. See the [SAML SSO documentation for details](https://docs.link.getmoneytree.com/docs/saml-introduction#saml-subject-identifier).
+ *
+ * This parameter can be set during {@link init} or changed on a request-by-request basis with this method.
+ * The `saml_subject_id` parameter will be forwarded to the `authorize`, `logout` and `open-service` methods when defined.
+ */
public setSamlSubjectId(value: string): void {
this.storedOptions.samlSubjectId = value;
}
+ /**
+ * OAuth authorization method to request guest consent to access data via the [Link API](https://getmoneytree.com/jp/link/about).
+ *
+ * The only supported flow is authorization code grant with PKCE [PKCE](https://auth0.com/docs/flows/concepts/auth-code-pkce)
+ * If the user is not logged in yet this will show the login screen and redirect the guest to the consent screen after they log in.
+ * After the guest consents, they will be redirected to the redirect URI with an authorization code.
+ * If the user is already logged and has granted consent in the redirection happens immediately.
+ *
+ * You can pass the {@link AuthorizeOptions.forceLogout} option to force the guest to log in, even if they have an active session.
+ *
+ * You can also choose to display the sign up form when the user is not logged in yet by setting the {@link AuthorizeOptions.authAction} option.
+ *
+ * @remark
+ * You must initialize the SDK via the {@link init} before calling this API.
+ *
+ * @example
+ * ```javascript
+ * mtLinkSdk.authorize(options);
+ * ```
+ */
public authorize(options?: AuthorizeOptions): void {
authorize(this.storedOptions, options);
}
+ /**
+ * This method generates an URL for OAuth authorization that requires guest consent to access data via [Link API](https://getmoneytree.com/jp/link/about).
+ *
+ * See {@link authorize} API for authorization details. This API has exactly the same parameters as {@link authorize},
+ * the only difference is that it returns an URL instead of opening immediately with `window.open`.
+ */
public authorizeUrl(options?: AuthorizeUrlOptions): string {
return authorizeUrl(this.storedOptions, options);
}
+ /**
+ * The onboard API allows a new guest to get onboard faster without having to go through the registration process.
+ * All you have to do is provide an emai address and pass the same options parameter as the {@link authorize} function.
+ * We will display a consent screen explaining the access requests and applicable scopes.
+ * Once the guest consents, a new Moneytree account will be created on their behalf and authorization is completed.
+ * Resulting behavior will be the same as the {@link authorize} redirection flow.
+ *
+ * Onboard will force any current guest session to logout, hence you do not have to call {@link logout} manually to
+ * ensure a clean state.
+ *
+ * If an account with this email address already exists we will redirect the guest to the login screen.
+ *
+ * @remark
+ * ⚠️ You must initialize the SDK via the {@link init} before calling this API.
+ *
+ * ⚠️ For legal reasons, you have to set up your app's terms and conditions URL to use the onboard API.
+ * Please ask your Moneytree representative for more details.
+ *
+ * @throws If the `email` property is not set (via {@link init} or in the `options` parameter of this function).
+ */
public onboard(options?: OnboardOptions): void {
onboard(this.storedOptions, options);
}
+ /**
+ * This method generates a URL for guest onboarding.
+ *
+ * This API has exactly the same parameters as {@link onboard}, the only difference being that it returns an URL
+ * instead of opening immediately with `window.open`.
+ */
public onboardUrl(options?: OnboardUrlOptions): string {
return onboardUrl(this.storedOptions, options);
}
+ /**
+ * Logout current user from Moneytree.
+ */
public logout(options?: LogoutOptions): void {
logout(this.storedOptions, options);
}
+ /**
+ * This method generates a URL to log out the guest.
+ *
+ * This API has exactly the same parameters as {@link logout}, the only difference being that it returns an URL
+ * instead of opening immediately with `window.open`.
+ */
public logoutUrl(options?: LogoutUrlOptions): string {
return logoutUrl(this.storedOptions, options);
}
+ /**
+ * This is a method to open various services provided by Moneytree such as Moneytree account settings, Vault etc.
+ *
+ * Pass `serviceId: 'link-kit'` to open the LINK Kit service.
+ *
+ * @remark ⚠️ calling this API before calling {@link init} will open the services view without branding (company logo etc.)
+ */
public openService(serviceId: 'link-kit', options?: LinkKitOpenServiceOptions): void;
+ /**
+ * Pass `serviceId: 'myaccount'` to open the MyAccount service.
+ *
+ * Open different MyAccount sub-pages by passing the {@link MyAccountServiceTypes} for all possible options.
+ *
+ * @remark ⚠️ calling this API before calling {@link init} will open the services view without branding (company logo etc.)
+ */
public openService(serviceId: 'myaccount', options?: MyAccountOpenServiceOptions): void;
+ /**
+ * Pass `serviceId: 'vault'` to open the Vault service.
+ *
+ * Depending on the Vault sub-page you want to open, you can pass the following options:
+ * - `serviceList`: opens the vault service list page, pass {@link VaultOpenServiceViewServiceList} as options.
+ * - `serviceConnection`: opens the vault service connection page, pass {@link VaultOpenServiceViewServiceConnection} as options.
+ * - `connectionSetting`: opens the vault connection setting page, pass {@link VaultOpenServiceViewConnectionSetting} as options.
+ * - `customerSupport`: opens the vault customer support page, pass {@link VaultOpenServiceViewCustomerSupport} as options.
+ *
+ * @remark ⚠️ calling this API before calling {@link init} will open the services view without branding (company logo etc.)
+ */
public openService(serviceId: 'vault', options?: ConfigsOptions): void;
public openService(serviceId: 'vault', options?: VaultOpenServiceViewServiceList): void;
public openService(serviceId: 'vault', options?: VaultOpenServiceViewServiceConnection): void;
@@ -118,6 +234,12 @@ export class MtLinkSdk {
}
}
+ /**
+ * This method can generate URLs for various services provided by Moneytree, such as Moneytree Account Settings and Vault.
+ *
+ * This API has exactly the same parameters as {@link openService}, the only difference being that it returns an URL
+ * instead of opening immediately with `window.open`.
+ */
public openServiceUrl(serviceId: 'link-kit', options?: LinkKitOpenServiceUrlOptions): string;
public openServiceUrl(serviceId: 'myaccount', options?: MyAccountOpenServiceUrlOptions): string;
public openServiceUrl(serviceId: 'vault', options?: ConfigsOptionsWithoutIsNewTab): string;
@@ -138,14 +260,49 @@ export class MtLinkSdk {
}
}
+ /**
+ * Request for a password-less login link to be sent to the guest's email address.
+ *
+ * Clicking on the link in the email will log a guest in directly to the screen specified by the
+ * {@link RequestLoginLinkOptions.loginLinkTo} parameter.
+ */
public requestLoginLink(options?: RequestLoginLinkOptions): Promise {
return requestLoginLink(this.storedOptions, options);
}
+ /**
+ * Use this function to exchange an authorization `code` for a token.
+ *
+ * You can optionally pass `code` via options parameter, otherwise it will automatically extract the `code` URL
+ * parameter of the current URL.
+ *
+ * The `code` can be used only once. The SDK does not store it internally, you have to store it in your application.
+ *
+ * One way to use this API is by calling it on your redirection page. For example, if `authorize` redirects to
+ * `https://yourapp.com/callback?code=somecode`, you can call this function in the script loaded on that redirection
+ * page and the client library will automatically extract the code to exchange for a token.
+ *
+ * Alternatively, you can extract the `code` manually from the redirect URL and pass it to this function via the
+ * options object yourself.
+ *
+ * If you passed a {@link AuthorizeOptions.codeChallenge} option during the {@link authorize} or {@link onboard}
+ * call and wish to exchange the token on the client side application, make sure to set the code verifier used to
+ * generate the said `codeChallenge` here.
+ *
+ * @see [here](https://www.oauth.com/oauth2-servers/pkce/authorization-code-exchange/) for more details.
+ *
+ * @throws If the {@link ExchangeTokenOptions.code} is not set and the SDK fails to extract it from browser URL.
+ * @throws If the {@link ExchangeTokenOptions.redirectUri} is not set and it is not set via {@link init}.
+ */
public exchangeToken(options?: ExchangeTokenOptions): Promise {
return exchangeToken(this.storedOptions, options);
}
+ /**
+ * Validate a token and get information about the user or resource server.
+
+ * @throws if the token is expired.
+ */
public tokenInfo(token: string): Promise {
return tokenInfo(this.storedOptions, token);
}
diff --git a/src/typings.ts b/src/typings.ts
index 3cda954..839482c 100644
--- a/src/typings.ts
+++ b/src/typings.ts
@@ -1,11 +1,21 @@
export const supportedAuthAction = ['login', 'signup'] as const;
export type AuthAction = typeof supportedAuthAction[number];
+/** @hidden */
export interface PrivateParams {
+ /**
+ * Brand Moneytree apps with client's branding. E.g: logo or theme.
+ * @remarks
+ * This is an internal attribute. Please do not use it unless instructed by your integration representative.
+ */
cobrandClientId?: string;
+ /**
+ * Sets subject Id for saml session version.
+ */
samlSubjectId?: string;
}
+/** @hidden */
export interface PrivateConfigsOptions {
sdkPlatform?: 'ios' | 'android' | 'js';
sdkVersion?: string; // semver
@@ -15,19 +25,71 @@ export const supportedAuthnMethod = ['passwordless', 'sso', 'credentials'] as co
export type AuthnMethod = typeof supportedAuthnMethod[number];
export interface ConfigsOptions extends PrivateConfigsOptions {
+ /**
+ * Email used to pre-fill the email field in login or sign up or form.
+ *
+ * Set the default value via {@link MtLinkSdk.init}
+ */
email?: string;
+ /**
+ * A redirection URL for redirecting a guest back to in the following condition:
+ * - Guest clicks on `Back to [App Name]`` button in any Moneytree screen.
+ * - Guest refuses to give consent to access permission in the consent screen.
+ * - Guest logs out from Moneytree via an app with this client id
+ * - Revoke an app's consent from settings screen opened via an app with this client id
+ *
+ * ⚠️ No `Back to [App Name]` button will be shown if this value is not set, and any of the actions mentioned above will redirect the guest back to login screen by default.
+ *
+ * Set the default value via {@link MtLinkSdk.init}
+ */
backTo?: string;
+ /**
+ * Show login or sign up screen when a session does not exist during an {@link MtLinkSdk.authorize} call.
+ *
+ * Set default value via {@link MtLinkSdk.init}
+ *
+ * @defaultValue 'login'
+ */
authAction?: AuthAction;
+ /**
+ * If you wish to disable the login to sign up form toggle button and vice-versa in the auth screen, set this to `false`.
+ *
+ * Set default value via {@link MtLinkSdk.init}
+ *
+ * @defaultValue true
+ */
showAuthToggle?: boolean;
+ /**
+ * If you wish to disable the `Stay logged in for 30 days` checkbox in the login screen, set this to `false`.
+ *
+ * Set default value via {@link MtLinkSdk.init}
+ *
+ * @defaultValue true
+ */
showRememberMe?: boolean;
+ /**
+ * Call method and open/render in a new browser tab, by default all views open in the same tab.
+ *
+ * Set default value via {@link MtLinkSdk.init}
+ *
+ * @defaultValue false
+ */
isNewTab?: boolean;
+ /**
+ * Force existing guest session to logout and call authorize with a clean state.
+ * @defaultValue false
+ */
forceLogout?: boolean;
+ /**
+ * Use different authentication methods.
+ */
authnMethod?: AuthnMethod;
}
export type ConfigsOptionsWithoutIsNewTab = Omit;
export type VaultViewServiceList = {
view: 'services-list';
+ /** Filter the services by group */
group?:
| 'grouping_bank'
| 'grouping_bank_credit_card'
@@ -45,11 +107,34 @@ export type VaultViewServiceList = {
| 'grouping_regional_bank'
| 'grouping_stock'
| 'grouping_testing';
+ /**
+ * Filter the services by type.
+ * - `bank` - personal bank
+ * - `credit_card` - personal credit card
+ * - `stored_value` - electronic money
+ * - `point` - loyalty point
+ * - `corporate` - corporate bank or credit card
+ */
type?: 'bank' | 'credit_card' | 'stored_value' | 'point' | 'corporate';
+ /** Filter the services by the search term */
search?: string;
};
-export type VaultViewServiceConnection = { view: 'service-connection'; entityKey: string };
-export type VaultViewConnectionSetting = { view: 'connection-setting'; credentialId: string };
+export type VaultViewServiceConnection = {
+ view: 'service-connection';
+ /**
+ * Service entity key.
+ * @remark ⚠️ If entityKey is invalid the Vault top page will be shown.
+ */
+ entityKey: string;
+};
+export type VaultViewConnectionSetting = {
+ view: 'connection-setting';
+ /**
+ * Credential ID.
+ * @remark ⚠️ If credentialId is invalid the Vault top page will be shown.
+ */
+ credentialId: string;
+};
export type VaultViewCustomerSupport = { view: 'customer-support' };
export type VaultServiceTypes =
| VaultViewServiceList
@@ -57,7 +142,15 @@ export type VaultServiceTypes =
| VaultViewConnectionSetting
| VaultViewCustomerSupport;
-export type MyAccountServiceTypes = { view: LoginLinkTo };
+export type MyAccountServiceTypes = {
+ /**
+ * Directly go to the chosen page. Currently supported locations include:
+ *
+ * @defaultValue 'settings' // on mobile
+ * @defaultValue 'settings/update-email' // on desktop
+ */
+ view: LoginLinkTo;
+};
export type MyAccountOpenServiceOptions = ConfigsOptions | (ConfigsOptions & MyAccountServiceTypes);
export type MyAccountOpenServiceUrlOptions =
@@ -97,14 +190,59 @@ interface AuthorizeConfigsOptions {
forceLogout?: boolean;
}
-interface OAuthSharedParams {
+export interface OAuthSharedParams {
+ /**
+ * The state parameter for OAuth flows, see [here](https://auth0.com/docs/protocols/oauth2/oauth-state) for more details.
+ *
+ * If you generates an identifier for the OAuth authorization on your server make sure to set this value explicitly so
+ * that you can use to acquire the access token after the OAuth redirect occurs.
+ *
+ * The default value is a randomly generated [uuid](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)), or set via {@link MtLinkSdk.init}
+ */
state?: string;
+ /**
+ * OAuth redirection URI, see [here](https://www.oauth.com/oauth2-servers/redirect-uris/) for more details.
+ *
+ * Set the default value via {@link MtLinkSdk.init}
+ */
redirectUri?: string;
}
export interface AuthorizeOptions extends OAuthSharedParams, ConfigsOptions, AuthorizeConfigsOptions {
+ /**
+ * Access scopes you're requesting. This can be a single scope, or an array of scopes.
+ *
+ * Currently supported scopes are:
+ * - guest_read
+ * - accounts_read
+ * - points_read
+ * - point_transactions_read
+ * - transactions_read
+ * - transactions_write
+ * - expense_claims_read
+ * - categories_read
+ * - investment_accounts_read
+ * - investment_transactions_read
+ * - notifications_read
+ * - request_refresh
+ * - life_insurance_read
+ *
+ * See the [LINK Platform documenation](https://docs.link.getmoneytree.com/docs/api-scopes) for more details
+ *
+ * @defaultValue `'guest_read'`, or set via {@link MtLinkSdk.init}
+ */
scopes?: Scopes;
+ /**
+ * The code challenge for [PKCE flow](https://auth0.com/docs/api-auth/tutorials/authorization-code-grant-pkce).
+ *
+ * ⚠️ **Only set this if you are exchanging the code on your backend.** If you are exchanging the code on the frontend,
+ * the SDK handles this for you.
+ *
+ * We only support SHA256 as code challenge method, therefore please ensure the code_challenge was generated using the
+ * SHA256 hash algorithm.
+ */
codeChallenge?: string;
+ /** @hidden */
pkce?: boolean;
}
@@ -113,7 +251,19 @@ export type AuthorizeUrlOptions = Omit;
export type Mode = 'production' | 'staging' | 'develop' | 'local';
export type InitOptions = Omit, 'codeChallenge'>, 'pkce'> &
PrivateParams & {
+ /**
+ * Environment for the SDK to connect to, the SDK will connect to the Moneytree production server by default.
+ * - Moneytree clients should use `staging` for development as `develop` may contain unstable features.
+ * - `local` is only for SDK development as it has local dependencies.
+ */
mode?: Mode;
+ /**
+ * Force Moneytree to load content in this specific locale. A default value will be auto detected based on guest
+ * langauges configurations and location if available.
+ * Check this [spec](https://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.1) for more information.
+ *
+ * Currently supported values are:`'en'`, `'en-AU'`, `'ja'`.
+ */
locale?: string;
};
@@ -122,13 +272,35 @@ export interface StoredOptions extends InitOptions {
mode: Mode;
}
export interface ExchangeTokenOptions extends OAuthSharedParams {
+ /**
+ * Authorization code from OAuth redirection used to exchange for a token.
+ */
code?: string;
+ /**
+ * PKCE Code verifier used to exchange for a token.
+ */
codeVerifier?: string;
}
export type LogoutOptions = ConfigsOptions;
export type LogoutUrlOptions = Omit;
+/**
+ * Options for Onboarding.
+ *
+ * Most options are the same as the {@link AuthorizeOptions} with a few exceptions.
+ *
+ * Unsupported options are:
+ * - `showAuthToggle`.
+ * - `forceLogout`.
+ * - `showRememberMe`
+ * - `authAction`
+ *
+ * @remark
+ * ⚠️ SDK will throw an error if both values here and from the init options are undefined.
+ *
+ * @see {@link AuthorizeOptions}
+ */
export type OnboardOptions = Omit<
Omit, 'forceLogout'>, 'showRememberMe'>,
'authAction'
@@ -138,6 +310,15 @@ export type OnboardUrlOptions = Omit;
export type ServiceId = 'vault' | 'myaccount' | 'link-kit';
+/**
+ * - `settings` - Main Moneytree account settings screen.
+ * - `settings/authorized-applications` - List of apps currently connected to Moneytree.
+ * - `settings/change-language` - Change Moneytree account language screen.
+ * - `settings/email-preferences` - Change Moneytree email preferences screen
+ * - `settings/delete-account` - Delete Moneytree account screen.
+ * - `settings/update-email` - Change Moneytree account email screen.
+ * - `settings/update-password` - Change Moneytree account password screen.
+ */
export type LoginLinkTo =
| 'settings'
| 'settings/authorized-applications'
@@ -152,17 +333,26 @@ export interface RequestLoginLinkOptions extends ConfigsOptions {
}
export interface TokenInfo {
+ /** token issuer */
iss: string;
+ /** token cretaion time */
iat: number;
+ /** token expiry */
exp: number;
+ /** token audience(s) */
aud: string[];
+ /** token subject - the moneytree ide fo the user */
sub: null | string;
scope: string;
client_id: null | string;
+ /** application related information */
app: null | {
+ /** Application name */
name: string;
+ /** @hidden */
is_mt: boolean;
};
+ /** User related informatino */
guest: null | {
email: string;
country: string;
@@ -175,7 +365,9 @@ export interface Token {
access_token: string;
refresh_token: string;
token_type: string;
+ /** created at in seconds */
created_at: number;
+ /** expiry in seconds */
expires_in: number;
scope: string;
resource_server: string;
From baac479815aea4c2104ce31466e95534f0b6a003 Mon Sep 17 00:00:00 2001
From: Nemo | DFR
Date: Thu, 5 Oct 2023 17:16:22 +0900
Subject: [PATCH 2/7] chore(docs) run yarn build:docs
---
docs/types/assets/highlight.css | 42 ++++
docs/types/assets/navigation.js | 2 +-
docs/types/assets/search.js | 2 +-
docs/types/classes/MtLinkSdk.html | 234 ++++++++++++++----
docs/types/index.html | 4 +-
docs/types/interfaces/AuthorizeOptions.html | 162 +++++++++---
docs/types/interfaces/ConfigsOptions.html | 100 ++++++--
.../interfaces/ExchangeTokenOptions.html | 44 ++--
...igsOptions.html => OAuthSharedParams.html} | 51 ++--
docs/types/interfaces/PrivateParams.html | 94 -------
.../interfaces/RequestLoginLinkOptions.html | 96 +++++--
docs/types/interfaces/StoredOptions.html | 158 +++++++++---
docs/types/interfaces/Token.html | 30 ++-
docs/types/interfaces/TokenInfo.html | 66 +++--
docs/types/modules.html | 7 +-
docs/types/types/AuthAction.html | 6 +-
docs/types/types/AuthnMethod.html | 6 +-
docs/types/types/AuthorizeUrlOptions.html | 6 +-
.../types/ConfigsOptionsWithoutIsNewTab.html | 6 +-
docs/types/types/InitOptions.html | 25 +-
.../types/LinkKitOpenServiceOptions.html | 6 +-
.../types/LinkKitOpenServiceUrlOptions.html | 6 +-
docs/types/types/LoginLinkTo.html | 19 +-
docs/types/types/LogoutOptions.html | 6 +-
docs/types/types/LogoutUrlOptions.html | 6 +-
docs/types/types/Mode.html | 6 +-
.../types/MyAccountOpenServiceOptions.html | 6 +-
.../types/MyAccountOpenServiceUrlOptions.html | 6 +-
docs/types/types/MyAccountServiceTypes.html | 17 +-
docs/types/types/OnboardOptions.html | 23 +-
docs/types/types/OnboardUrlOptions.html | 6 +-
docs/types/types/OpenServiceOptions.html | 6 +-
docs/types/types/OpenServiceUrlOptions.html | 6 +-
docs/types/types/Scopes.html | 6 +-
docs/types/types/ServiceId.html | 6 +-
...ltOpenServiceUrlViewConnectionSetting.html | 6 +-
...aultOpenServiceUrlViewCustomerSupport.html | 6 +-
...ltOpenServiceUrlViewServiceConnection.html | 6 +-
.../VaultOpenServiceUrlViewServiceList.html | 6 +-
...VaultOpenServiceViewConnectionSetting.html | 6 +-
.../VaultOpenServiceViewCustomerSupport.html | 6 +-
...VaultOpenServiceViewServiceConnection.html | 6 +-
.../VaultOpenServiceViewServiceList.html | 6 +-
docs/types/types/VaultServiceTypes.html | 6 +-
.../types/VaultViewConnectionSetting.html | 13 +-
.../types/types/VaultViewCustomerSupport.html | 6 +-
.../types/VaultViewServiceConnection.html | 13 +-
docs/types/types/VaultViewServiceList.html | 28 ++-
docs/types/variables/default.html | 6 +-
docs/types/variables/supportedAuthAction.html | 6 +-
.../types/variables/supportedAuthnMethod.html | 6 +-
51 files changed, 950 insertions(+), 454 deletions(-)
rename docs/types/interfaces/{PrivateConfigsOptions.html => OAuthSharedParams.html} (83%)
delete mode 100644 docs/types/interfaces/PrivateParams.html
diff --git a/docs/types/assets/highlight.css b/docs/types/assets/highlight.css
index 5674cf3..4e6cbf4 100644
--- a/docs/types/assets/highlight.css
+++ b/docs/types/assets/highlight.css
@@ -1,22 +1,64 @@
:root {
+ --light-hl-0: #001080;
+ --dark-hl-0: #9CDCFE;
+ --light-hl-1: #000000;
+ --dark-hl-1: #D4D4D4;
+ --light-hl-2: #795E26;
+ --dark-hl-2: #DCDCAA;
+ --light-hl-3: #A31515;
+ --dark-hl-3: #CE9178;
+ --light-hl-4: #0000FF;
+ --dark-hl-4: #569CD6;
+ --light-hl-5: #008000;
+ --dark-hl-5: #6A9955;
--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);
--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);
--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);
--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);
--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); }
pre, code { background: var(--code-background); }
diff --git a/docs/types/assets/navigation.js b/docs/types/assets/navigation.js
index 7597fe7..dab9f42 100644
--- a/docs/types/assets/navigation.js
+++ b/docs/types/assets/navigation.js
@@ -1 +1 @@
-window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE62XT3PTMBDFv4vPHWjDlEJvGYZDhoR26lAODAfF3iSaOJIryWkLw3dHik38V9Ja5Bjv29+T9NbK+MfvSMGLim6jhZpTtovTXXQR5URt9aMkI1KCfHsqvdmqfabrO8rS6PZq8uHPxal/WqgtF/QX3OWKciZrDGUKxJokmtQVtYGT6/cN4CfO1nQjXbi2xAX7/JJsCdvAku+AuZBDQhf4XtADUYBY7KASgb4nguydyFLhQj3AUwFSzfmGMpOla50WrQsfKy4gdUFbChfqeO6DiGPF2zpja25vN1UXwsznNDGLrBnqNa8mt6x0+i8/3lxdTzoMtgA96OkQpCphKMc35ZvIegdb0zoSH7U9fN+pBhRqJr/C85Ksunyn2Oc0Y1RZ1t0o+Shm/r4YNbAYxIEm/dulZFqF4x3sB+7Sen3+vU5L3sPWJQRFZ2BbXrOIIzn22qn7eAueQpdhnnn7XqdJwguGyNghDXGx792tRntVnUvDtFo0RT7yHVtxIvr3bIlsV5Es+yH0BF6iN8DxuaHiCkopTvhALOVTb29pNuvd76eCj/BIiqwzXY8UnvWNy+D4JxODUpRtugbYvlD/Qiq+BxEXec6Fwrq3uwK9q1/1VpDuvb7/859Tid13o2OsZ1DYZ0k6IOYzZBwU8FnSHRltSK6ue74nQBHx4xE+E9hBCE0fH3l4zphwRyaawtp01agDEZSsMo2rSm3Cu2azLM8H0qHviBo0IMNCex8WFurgV4bG/vwL9mCOovEPAAA="
\ No newline at end of file
+window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE62XS4/TMBSF/0vWI2CKhsfsKsSioqWIlGGBZuEmt43V1A62Mw8Q/x27CU1ix4+YLpt77ndsnxtX+fE7EfAkkttkJZaYHNL8kFwlFRKFfJSViHPgL8+lF4U4lrJ+wCRPbq9n7/5cnfvntSgow79gXQlMCe8wmAhgO5RJki4aAmc3b3rAD5Ts8J67cEOJC/bxKSsQ2cOGHoC4kGNCF3ittpQWiEH+BTF0HKcaKhfyK/ysgYsl3WOiDt61XIvWhU8FlctwQQcKF+p0SKOIU8XbuiA7am9XVRdCnek8U4vsGOK5asesqWj9r96/vb6ZaQyyAjmV+RikLYVQTmP9jZXGwXY0TeKjDqf7O5aAWiz4Z3jcoK3Od4p9TguChWXdvZKPoubvk1IDSYE94My8ChqmVTjdwX7gLq3X59/rtKEGtisFUGQGtuX1i2Ekx161uo+3ojnoDPXM2/c8zzJak4CMHdIYF/ve3epgr7Zzo5hWi77IR16TLUXMvGcb5LAayLIfgiHwEr0BTs8tKK6olNKMjsTSPPX2NmYL434/F3yEO1SX2nTdYXiUNy6B059MCkJgstcNQvti/Wsu6BFYWlcVZSLUfdgV6d3+6rYS6G70/Z//EvPQffc6pnpGhX2RpCNivkDGUQFfJN2J0cbk6rrnDUEQMXw84mcidBBi0w+PPD7nkHAnJprDTnV1qAfEMNqWEteWhoTX/WbenA/kY98RHWhEFgo1Piws1NGvDIm9/wuljIB7ng8AAA=="
\ No newline at end of file
diff --git a/docs/types/assets/search.js b/docs/types/assets/search.js
index 1dd6617..3f4dbf8 100644
--- a/docs/types/assets/search.js
+++ b/docs/types/assets/search.js
@@ -1 +1 @@
-window.searchData = "data:application/octet-stream;base64,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";
\ No newline at end of file
+window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAE61dS3PbOBL+L/LV4xFIgo/cUlN7SE2ymRpnsgdXykVLtM21JHpFKplsKv99CBAUu6FuEKR0SinsF/rrbjSaD/9Y7Ktv9eLN3Y/FS7lbL96IIL1e7PJtsXiz+NC8L3cvt+uXxfXisN+0/7Pa5HVd1L8er9w8N9tNe9lcaEkWP697WVIER1mralc3+8OqqfYj0q4wKZB8vXjN98WuQaYN6sQyiI766pa7WH98bcpW2phGm9hfZ7CMBn+Vu7IZU2VoZmqoi+Y2325uDw//LVbNu/Xowk7pZ2rOD81ztS//X4yphITn6vprv/FW19HO1FjtHqp8P+rOgew8PR7rQpQztW2qp+owGpFHqrO0eCwJEs7132uxuy32X8vVaBxi0vP1+WBmU8/Uui/+dyjq5n31VO4U6Zhegn6m5uLv1XO+eyo+VS/FbkytTTxTZ6PY3+0eqzF9kNBfVzjsQeviMT9shoT4mu/L/GHTajJXnLsZEFQfXl+rfVOs37bV5+1KbRuEUILKqSBYZomQgxZCePP9tRXsKY8zePehaGvmesxiQzbZZFv8YLOXRBkfpf1W7R7Lp9rexMtdU+wf81UrFVM4BaPuoNjm5cZT4FVPTMecZSSj8CFfvXyqfDUeqc9RmZ+Gz4haxHGO6vq5+qYA/1Q9PW0KX/UnXOea8GexLbYPxf7DJBMQ1zkmlPW/i2+f8gdf5YD+HLWP1X5VvMdb/4hmzHJu0NkFwCPqBpazMF+//LHJm3Y1W2/AEcugvKnXv5T1L+XuudiXbUGcZcznYl9PSD/EcaYpdmHGhP8pW28fmnd2gHal2kk7aTv4rDbVz2XxzXRF78u6sZRRJE4dsZThsEXc3ysxvjKvjuR0mJH2Mvh+bckm6r0xPP7Kb4zBjA1P++rwOtWInuliVsxA4GYyDCM21EW+Xz1PteLIdY4dY0HfptOuoNo4nvDSCWBJnpoGYAXzk4G2YVpKABnucGjZy+b778X3eUZB9vMtYwNkYLotmqbcPXHWnhBeLEBoyd4BcrqCGQHitMEzQE5luANktS/WCuV8884+qXjaZUk43z4+TA51U22L/W13OmPNxWSXCxFCrn+AWLbPCQ9ev29wWBL8XG8y+5OyhrINXp/UFX34/na1qg47lwaS5lxIeaFjeNIm+4M5qtmNJM0+CuOR7eMwmLOHCZZ9p5TzoP2IRoH+Sgfi6Y02EOPRc/PUl9LsbnzGeM62wmt3HeM534rx4u3mOMuCNpymhcIpwwX1ewcEx3YJW6aGBcd2EVsmBQfNNMkONR7/vRyvhyzdmdrYWuginaRzdGlnrslnMeev4nZVnfYE3X96T88/qlnq7XO7h67/yPf5lhygnxD5z9DrJm/IwSot86qnp7f4U2sZtS1BuW8z8a99OUE55ppuAnTs2/6Ws+PGhE0zwa0Y+jGZV0d6elEnxnIHompd/PacbzbF7olEldZus51nBBtSzNJPIso1K/U1YiTAaFO4+LqEQezNKtqU09tVlzCCv4FFW0HcwrqEGe6bWrQpzG2tS5gzfqOLiVz+VtelzHLf/OLNYm5/XcIs1w0x2iDyltglTBm5SUZbw90mu1RgO26c8ZFN3Tq7SAy5b6YxATTjdtoEgxw31Fh7pt5Sc5hDPe3QP3tGd4IExbR5Qru92lOD9r8myXi3U301ZR244t1V3pLPVQIgEIF/27PalK3/35HBfyryCpDTLQe2k1G6he51KzSkZyhjmxtC27TOxks920UQ6qe1EF7q+f6B0D+xefAywN05EEbMaBv84mC0Z6ACYl7D4G2Qu1tgDJrRKngZ5OoTCFMmNwne8eLYkJmAmbob+wHk3oopdGbsw76mODZh2pKpO7CfIewxmTLi9Ix8tgEjx0TCijlnRC9TVtXDPt+tf5u4hZ5wXRIe8i2FEZTYNxXONmdTrXLvWnskPs8A2DX9Cz4q7WieKLoJPRTTzrBSr1auroY02qG6zfPysSz2000AnOebwvZZvA3T2q0pxoxUCd6kOcVixLCT8bw+yTLzeHht2tC/f8vDJXjucL97KYaZuqOLc+TyA337+rRhfncr4ORBk+P/T/Vv95YH6KaPru2veB/n/rReHXHUJobUvzxtCMs95V9hXrpIcGuZeiByGjLtaDTRJP6Q5LRp4nFpolHug5PTsBlHqInGjR+mnAbOPFbNMNJ9wBo1csZRa6KRrkOX07zJx6+Jho2Map22zZnYzkgPxzlxND+mnhinxp777OgOvBmnyOnmOc6TY9ZNPVmOGwf3xk8nLyYC044X/fe/sib3VSzpqqOid7jBIk5FTuaIrSLnX/MZVVH8/eqhoqOaqSI/kKlkqeioZqqoD2Shs1R0VHNVqKGDjxJDN1NNNwm/L31cBmnnYvPqA39HNVPFk8pRDyU9nb+ak+xmtfhndb5qmer7ZlzclUXqsJs/Tj7ui/rZS5tNO0OdZsVPEtO6EOEMRat90Z7A1/eO8mUiGBLOUNTWpfZYXd+XY95DhDMUubPfO/P5QKirQ9vb3NftIZIeuaBQsKmdKr9ct3LWxd+LNz8WX80W+2YR3IQ3WUv9WBabdct519nSyqq2W8X/xVz7XKhPtyiKjuTX5eL6bnkdxTdLGXz5cn3Xc+gL+j80mWh/CYpMILKg/RVcR8ubLAoRWYDIwvZXSEkLEVnU/ooosgiRyfaXpMgkIovbXzFFFiOypP2VUGQJIkvbXylFliKyFpS7jCLLsHuVtwWJg7CA0EjQUGAshPK5CEhKDIdQbhckIAIjIpTnBYmJwKAI5XwhqVgQGBeh/C9IZASGRigIBAmOwOgIhYJIr8OwpcwwJQZIKCAECZHAGAUKiGBJyQwwRoECIiAxCqx80QkTXIfyZhnHmBJjFCgggpCkxBgFEbv2AGMUKCDawkXJxBgFCohAkpQYo0ABEcQkJcYoUEAEyXWY3MjEshNjFGS85zFGocYopbSHGKNQY5SRlBijUAERkrkZWmVN1zUS9xBjFCogwoBaUYgxChUQYUhSYoxCBURI5maIMQoVECFZMkOMUaiACMncDDFGoQIiJHMzxBhFS3btEcYoEuzaI4xRpDEi63GEMYo0RmS+R9buw2MUYYwiHqMIYxQpICIyliKMUaSAiMhYijBGUcrbiTGKMt5OjJFUQETk3iExRlIBEZF7h8QYyYC1U2KMZMjaKTFGUrcIZMxLq0lQQER0m4AxkhojMuYlxkhqjMiYlxgjqYCIyPiUGCOpgIjI+JQYo1gBIclYijFGsQJCkrEUY4xiBYQkcY8xRrECQpK4xxijWAEhSYxijFGsOzkSo9jq5RQQku7mMEaxAkKSGMUYo1gBIVNqP4oxRrECQpIYxRijRAERL6ldJsEYJQqIWJCUGKNEARGTGCUYoyRkV5RgjBIFREyimWCMEsmvCGOUxPyKrJY7YbugBGOUpGwXlGCMkoztghKMUbpku6AUY5QKtgtKMUZpwHZBKcYoDdkuKMUYpRHbBaUYo1SyXVCKMUpjtgtKMUapAiImszi1TkYKiJjs/FOMUaqAiMksTjFGmcaIEplhiDKdRmS6ZxiiLGDNzDBEWciGfIYhyiI2kDMMUSbZQM4wRFnMBnKGIcoSNpAzDFGWsoGcWefXjA3kzD7C8uej7hqkFWyEdtcgbcDGaHcN0vIVr7sGaSO2PnXXIK2ueuT+3V2DtLru0SfKpXWgXeppA3Put460S4VMQp/8l9ahdqmwSeiz/9LCTQ8YEvr0fzJ8EGwqCHv8oIcMjH/tAYQeMyT0XMEeQehBQ0J2CcIeQuhRQ0LPFuwxhB42JPR0wR5E6HFDQseDPYrQA4ckIych9jBCjxxSOh6scYTQQwdGrjWQEN1EgixMIrDHRgFbmoQ1lBB69MDMWayxhNDDB7o8CWswIbrJBFmghDWaEN1sgixRwhpOiG46Qe62whpPiG4+Qdcza0AhugkFXc+sEYXoZhR0PbOGFEKPIpgpmjWmEHoYkdL1IbQHfgqblK4P1qhC6IFEykwHLdz0SCKl89gaVwg9lEjpPLYGFkKPJdKY9oOFmx5MpHQeW0MLoUcTKZ3H1thC6OFEStd1a3Ah9Hgio/PYGl0IPaDIaNys4YXQI4qMxi2yR7UKm4zGzRpgCD2myJi5roWbHlRkNG7WEENEDtysMYbQw4qMrtVmkKFvfnwt1Fdw33U3Qe7ujp/T+bG4N3dGho/r/li0Efrmx8/rRYtQ92//O+3+lYH69+dwp0T9UrrxDcFBeIvUUbjCh+FWN1kHpjQFTG1gMUzqrjlgiiCTZJma59w8xzXwCqjQLDUwS0+y7t+2fdT/qkrNy95tzTMwg/C2KB6FB8avgRGaGiWq5TPSU4d08zX6QbYcRLtWrPmq/oHIgT0G0CcsOL0AdV8OMg+8sQcrpR5A1h6LaBnqkcCmQg4NgUNDg5JBLZO9H7nlgCcHQPAkMHg4CDpWzBkDzvbMxDB2LyiQ/DD0lhyI3dPtA1cSQC4uQxTXavikAVAKPJhEDu6vx8fZgW7ArFpejlt/epVAPQAlIeA9Btm/dV9uLetd8a1Rz+eB6gWyK2Qxr8Df4QBpDxbCcYK79KCqwVoTsaAdv6uHIY+AyRGXOscvvANzQcYJjs881QvcDUKlS4o2WxKTLX35YXEo9PcjX9T3I4HPQcyyNb3/pv7JliCQ83y4iSBKIHZLLmH1s1sgy2Hkhrzq4XkJALmEVnPe109p9n+GAmAAikRgKlUa9r7nKp/5vC3wO/BcyJlgniUCq86g5Vy+ljjCU1hgQm7H6/4EDDAQ2OdgobYCENspV8+o/A8AY2DCOjVhnmW9izln6UcUwaphVLHVZFPuXl7UKopd3b34QCxIAqxiLtROJdEbpQTBF3Plpn/ZCyTJEiYJF2b6hQRlCd5lExg2fVMkAi5+ToMe8HOAdkxUesMaIbhY6tittkSgRY9xUrphprMFamvtyDHgSvtmhIugbaP8Xas/RzVIAHZzZm+/5913Ft2xFwHvSXYBhCzaIRHsMrnoO4ozopruU6BACigOkttuKtUx1vrDVa/mS18gC0BExVxIHf+wEQAUNDtuLioa4KYruNUbfisUwTbJ7VADI6UbdqXsjg/wQ3kAaxnrb3cNgy2+h3o7E+EewqXCeO0DTog5/Pp3DA/qHUOQlMAHiTC9T3+OW/bND2ub9dwpKG1wZRFXnswfMzrWV+Qb1Ip4CiC8k8JqJ7ikOHlqEiwFxnfEhal6obnuXmi2ji9wl1hyMWIeDwVmQ62h2bbVjMPBj6MC5FZsym3Sd1RLzqFtxX09vgYCegggLDQH8bQ/SC5Fv/Vx3m2l9s+WQqHAM6GRkR5jz3QoIuRKff9Bf9BcAZ+xR1STShikBJ4xBevkomFhBhsKt5+od7tU9W7MC2jAE4A7MG5NjZuzHvvAJXdv3hnbYrlgXwqMZ1Pj6ezYsHAl27wpDUIZpFJizEuMuVkfWmwl7f7wInXcBUYaYSzmB9TaprARYfv941+6YkZbcA9hoYcyiBGWgFnOpcFplYS1KeIcBx+4B7ywPkZcbGjeUr/XBIyFbuuzOGTV29NQwB1y/vqqjuZ451Jf/V4dv6xb9x/kBRULBELM7TicYPOh3Lr/ui4QCxwVc3WPEWt+rcDHjIFgsHfGnPfcgjclPolKEBAxlwS2yFHHRqC6Sa4uklJ5r0Yg4CUX8JRMp0sjkIvSN7Yc/ozAjiC5+qDlsU05CErpRGQUhhC4jG2JBlEO34PAYzuCoyCnw0PgcPY+gi3K9nII7GEnId1H/wETHIWYIhSZvSnqf5vxhCSFfrlevJavrTW7Vsjdl58//wEpV+ET4XgAAA==";
\ No newline at end of file
diff --git a/docs/types/classes/MtLinkSdk.html b/docs/types/classes/MtLinkSdk.html
index e3536cf..c232de8 100644
--- a/docs/types/classes/MtLinkSdk.html
+++ b/docs/types/classes/MtLinkSdk.html
@@ -20,7 +20,7 @@
OAuth authorization method to request guest consent to access data via the Link API.
+
The only supported flow is authorization code grant with PKCE PKCE
+If the user is not logged in yet this will show the login screen and redirect the guest to the consent screen after they log in.
+After the guest consents, they will be redirected to the redirect URI with an authorization code.
+If the user is already logged and has granted consent in the redirection happens immediately.
+
You can pass the AuthorizeOptions.forceLogout option to force the guest to log in, even if they have an active session.
+
You can also choose to display the sign up form when the user is not logged in yet by setting the AuthorizeOptions.authAction option.
This method generates an URL for OAuth authorization that requires guest consent to access data via Link API.
+
See authorize API for authorization details. This API has exactly the same parameters as authorize,
+the only difference is that it returns an URL instead of opening immediately with window.open.
Use this function to exchange an authorization code for a token.
+
You can optionally pass code via options parameter, otherwise it will automatically extract the code URL
+parameter of the current URL.
+
The code can be used only once. The SDK does not store it internally, you have to store it in your application.
+
One way to use this API is by calling it on your redirection page. For example, if authorize redirects to
+https://yourapp.com/callback?code=somecode, you can call this function in the script loaded on that redirection
+page and the client library will automatically extract the code to exchange for a token.
+
Alternatively, you can extract the code manually from the redirect URL and pass it to this function via the
+options object yourself.
+
If you passed a AuthorizeOptions.codeChallenge option during the authorize or onboard
+call and wish to exchange the token on the client side application, make sure to set the code verifier used to
+generate the said codeChallenge here.
Call init to initialize the SDK and set default options for API calls.
+
Some LINK APIs can be used without calling init.
+Calls related to OAuth require a client id which can only be set via the init function.
+These APIs include:
Optional parameters for the SDK.
+ These options include all of the values below and also all options parameters of the other APIs.
+ Options values passed here during initialization will be used by default if no options are
+ passed when calling a specific API.
+ Available options are documented under AuthorizeOptions and ConfigsOptions
+ refer to each individual link for more details.
The onboard API allows a new guest to get onboard faster without having to go through the registration process.
+All you have to do is provide an emai address and pass the same options parameter as the authorize function.
+We will display a consent screen explaining the access requests and applicable scopes.
+Once the guest consents, a new Moneytree account will be created on their behalf and authorization is completed.
+Resulting behavior will be the same as the authorize redirection flow.
+
Onboard will force any current guest session to logout, hence you do not have to call logout manually to
+ensure a clean state.
+
If an account with this email address already exists we will redirect the guest to the login screen.
This API has exactly the same parameters as onboard, the only difference being that it returns an URL
+instead of opening immediately with window.open.
This method can generate URLs for various services provided by Moneytree, such as Moneytree Account Settings and Vault.
+
This API has exactly the same parameters as openService, the only difference being that it returns an URL
+instead of opening immediately with window.open.
Use this method to send a guest identifier to Moneytree so that Moneytree can forward it as saml_subject_id parameter
+to the Identity Provider (IdP) via the SAMLRequest during SAML SSO flows. See the SAML SSO documentation for details.
+
This parameter can be set during init or changed on a request-by-request basis with this method.
+The saml_subject_id parameter will be forwarded to the authorize, logout and open-service methods when defined.
|
-| options.locale | string | false | Auto detect. | Force Moneytree to load content in this specific locale. A default value will be auto detected based on guest langauges configurations and location if available. Check this [spec](https://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.1) for more information.
Currently supported values are: `en`, `en-AU`, `ja`. |
-| options.cobrandClientId (private) | string | false | | NOTE: This is an internal attribute. Please do not use it unless instructed by your integration representative.
Brand Moneytree apps with client's branding. E.g: logo or theme. |
-| options.samlSubjectId | string | false | | Sets subject Id for saml session version. |
-
-### setSamlSubjectId
-
-The `setSamlSubjectId` method is used to set the value of the `saml_subject_id` parameter. This parameter can be set during `init` or changed by this method. It can not be overriden.
-The `setSamlSubjectId` parameter allows the client to pass a guest identifier to Moneytree so that Moneytree can forward it to the Identity Provider (IdP) via the SAMLRequest.
-The `saml_subject_id` parameter will be forwarded to the `authorize`, `logout` and `open-service` methods when defined.
-
-
|
-
-### authorize
-
-OAuth authorization method to request guest consent to access data via the [Link API](https://getmoneytree.com/jp/link/about).
-For [security reasons](https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce#why-you-should-never-use-the-implicit-flow-again) we removed support for implicit flow. We have opted for the [PKCE](https://auth0.com/docs/flows/concepts/auth-code-pkce)/[code grant](https://www.oauth.com/oauth2-servers/access-tokens/authorization-code-request/) flow.
-Guest login is required for this SDK to work, by default we will show the login screen and redirect the guest to the consent screen after they log in (Redirection happens immediately if they are currently logged in; you may pass the [forceLogout option](#authorize_option_force_logout) to force the guest to log in, even if they have an active session.)
-You may also choose to display the sign up form by default by passing the [authAction option](#authorize_option_auth_action).
-
-NOTE: You must initialize the SDK (via the `init` method) before calling this API.
-
-
Usage:
-
-```javascript
-mtLinkSdk.authorize(options);
-```
-
-| Parameter | Type | Required | Default Value | Description |
-| ------------------------------------------------------------------- | ------------------------------------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| options | object | false | Value set during `init`. | Optional parameters as described in [common options](#common-api-options). |
-| options.scopes | string
OR
string[] | false | Value set during `init`.
OR
`guest_read` | Access scopes you're requesting. This can be a single scope, or an array of scopes.
Currently supported scopes are: `guest_read`, `accounts_read`, `points_read`, `point_transactions_read`, `transactions_read`, `transactions_write`, `expense_claims_read`, `categories_read`, `investment_accounts_read`, `investment_transactions_read`, `notifications_read`, `request_refresh`, `life_insurance_read`. |
-| options.redirectUri | string | false | Value set during `init`. | OAuth redirection URI, refer [here](https://www.oauth.com/oauth2-servers/redirect-uris/) for more details.
NOTE: This function will throw an error if this value is undefined and no default value was provided in the [init options](?id=api-init_options). |
-| options.state | string | false | Value set during `init`.
OR
Randomly generated [uuid](). | Refer [here](https://auth0.com/docs/protocols/oauth2/oauth-state) for more details.
NOTE: Make sure to set this value explicitly if your server generates an identifier for the OAuth authorization request so that you can use to acquire the access token after the OAuth redirect occurs. |
-| options.codeChallenge | string | false | | We only support SHA256 as code challenge method, therefore please ensure the `code_challenge` was generated using the SHA256 hash algorithm. [Click here](https://auth0.com/docs/api-auth/tutorials/authorization-code-grant-pkce) for more details.NOTE: Set this value only if your server wish to use PKCE flow. |
-| options.pkce | boolean | false | false | Set to `true` if you wish to use PKCE flow on the client side, SDK will automatically generate the code challenge from a locally generated code verifier and use the code verifier in [exchangeToken](#exchangetoken). |
-| options.forceLogout | boolean | false | `false` | Force existing guest session to logout and call authorize with a clean state. |
-
-### authorizeUrl
-
-This method generates an URL for OAuth authorization that requires guest consent to access data via [Link API](https://getmoneytree.com/jp/link/about). See `authorize` API for authorization details.
-
-
Usage:
-
-```javascript
-mtLinkSdk.authorizeUrl(options);
-```
-
-This API has exactly the same parameters as `authorize`, the only difference being that it returns an URL instead of opening immediately with `window.open`.
-
-### onboard
-
-The onboard API allows a new guest to get onboard faster without having to go through the registration process. All you have to do is provide an emai address and pass the same options parameter as the [authorize](#authorize) function. We will display a consent screen explaining the access requests and applicable scopes. Once the guest consents, a new Moneytree account will be created on their behalf and authorization is completed. Resulting behavior will be the same as the [authorize](#authorize) redirection flow.
-
-Onboard will force any current guest session to logout, hence you do not have to call [logout](#logout) manually to ensure a clean state.
-
-If an account with this email address already exists we will redirect the guest to the login screen.
-
-NOTE:
-
-
You must call `init` before using this API.
-
For legal reasons, you will have to set up your app's terms and conditions link to use the onboard API. Please ask your Moneytree representative for more details.
-
-
Usage:
-
-```javascript
-mtLinkSdk.onboard(options);
-```
-
-| Parameter | Type | Required | Default Value | Description |
-| ------------- | ------ | -------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| options | object | false | Value set during `init`. | Optional parameters.
Most options are the same as the [authorize method](#authorize) options and [common options](#common-api-options) with a few exceptions.
Unsupported options from [authorize](#authorize) and [common options](#common-api-options) are:
forceLogout
authAction
showAuthToggle
showRememberMe
|
-| options.email | string | true | Value set during `init`. | A new Moneytree account will be created with this email address. If an existing account with this email exists, the guest will be redirected to the login screen.
NOTE: SDK will throw an error if both values here and from the [init options](?id=api-init_options) are undefined. |
-
-### onboardUrl
-
-This method generates a URL for guest onboarding. See the `onboard` API for more information on onboarding.
-
-
Usage:
-
-```javascript
-mtLinkSdk.onboardUrl(options);
-```
-
-This API has exactly the same parameters as `onboard`, the only difference being that it returns an URL instead of opening immediately with `window.open`.
-
-### exchangeToken
-
-Use this function to exchange an authorization `code` for a token. You can optionally pass `code` via options parameter, otherwise it will automatically extract the `code` URL parameter of the current URL.
-
-The `code` can be used only once. The SDK does not store it internally, you have to store it in your application.
+The complete list of SDK functions is:
-Refer [here](https://www.oauth.com/oauth2-servers/pkce/authorization-code-exchange/) for more details.
+* [`init`](/types/classes/MtLinkSdk.html#init ':ignore')
+* [`setSamlSubjectId`](/types/classes/MtLinkSdk.html#setSamlSubjectId ':ignore')
+* [`authorize`](/types/classes/MtLinkSdk.html#authorize ':ignore')
+* [`authorizeUrl`](/types/classes/MtLinkSdk.html#authorizeUrl ':ignore')
+* [`onboard`](/types/classes/MtLinkSdk.html#onboard ':ignore')
+* [`onboardUrl`](/types/classes/MtLinkSdk.html#onboardUrl ':ignore')
+* [`exchangeToken`](/types/classes/MtLinkSdk.html#exchangeToken ':ignore')
+* [`tokenInfo`](/types/classes/MtLinkSdk.html#tokenInfo ':ignore')
+* [`logout`](/types/classes/MtLinkSdk.html#logout ':ignore')
+* [`logoutUrl`](/types/classes/MtLinkSdk.html#logoutUrl ':ignore')
+* [`openService`](/types/classes/MtLinkSdk.html#openService ':ignore')
+* [`openServiceUrl`](/types/classes/MtLinkSdk.html#openServiceUrl ':ignore')
+* [`requestLoginLink`](/types/classes/MtLinkSdk.html#requestLoginLink ':ignore') |
-
Usage:
+Below are examples of common use cases.
-One way to use this API is by calling it on your redirection page. For example, if `authorize` redirects to `https://yourapp.com/callback?code=somecode`, you can call this function in the script loaded on that redirection page and the client library will automatically extract the code to exchange for a token.
-
-Alternatively, you can extract the `code` manually from the redirect URL and pass it to this function via the options object yourself.
+### Authorize user & get access token
```javascript
-const token = await mtLinkSdk.exchangeToken(options);
-token.access_token; // access token
-token.refresh_token; // refresh token
-token.token_type; // token type
-token.created_at: // created at in seconds
-token.expires_in; // expiry in seconds
-token.scope; // scope of the token
-```
-
-| Parameter | Type | Required | Default Value | Description |
-| -------------------- | ------ | -------- | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| options | object | false | Value set during `init`. | Optional parameters. |
-| options.code | string | false | Value from browser URL | Code from OAuth redirection used to exchange for a token, SDK will try to extract it from the browser URL if none is provided.
NOTE: SDK will throw an error if no value is provided here and the client library failed to extract it from browser URL. |
-| options.codeVerifier | string | false | | If you pass a `codeChallenge` option during the `authorize` or `onboard` call and wish to exchange the token on the client side application, make sure to set the code verifier used to generate the said `codeChallenge` here. |
-| options.redirectUri | string | false | Value set during `init`. | Make sure the value of `redirectUri` here is the same redirectUri value used during the `authorize` or `onboard` call.
NOTE: The SDK will throw an error if both this parameter and the default value from the [init options](?id=api-init_options) are undefined. |
-
-### tokenInfo
-
-You can validate a token or get guest or resource server information related to the token by calling this API.
-
-NOTE: This function will throw an error if the token has expired.
-
-
Usage:
+import mtLinkSdk from '@moneytree/mt-link-javascript-sdk';
-```javascript
-const tokenInfo = await mtLinkSdk.tokenInfo(token);
-tokenInfo.iat; // token creation timestamp,
-tokenInfo.exp; // token expiration timestamp,
-tokenInfo.sub; // guest uid or null,
-tokenInfo.scope; // string with space separated scopes
-tokenInfo.client_id; // application client id or null
-tokenInfo.app; // application related information or null
-tokenInfo.app.name; // application name
-tokenInfo.app.is_mt; // is moneytree client (internal usage)
-tokenInfo.guest; // guest related information or null
-tokenInfo.guest.email; // guest email if available
-tokenInfo.guest.country; // guest country
-tokenInfo.guest.currency; // guest currency,
-tokenInfo.guest.lang; // guest language
+// initialize SDK with application information
+mtLinkSdk.init('my-client-id', {
+ redirectUri: 'https://localhost:9000',
+ scopes: ['guest_read', 'accounts_read', 'transactions_read']
+});
+// start authorization flow
+// If the user is not logged in yet this will prompt them to login
+// If the user has not granted consent yet this will prompt them to grant consent
+// if the user is logged in and has already granted consent this redirects immediately with an authorization code
+mtLinkSdk.authorize();
+// after redirect from moneytree back to your app's redirectUri
+const token = mtLinkSdk.exchangeToken();
+const tokenInfo = mtLinkSdk.tokenInfo(token.access_token)
```
-| Parameter | Type | Required | Default Value | Description |
-| --------- | ------ | -------- | ------------- | ------------------------------- |
-| token | string | true | | Token you wish to get info for. |
-
-### logout
+You can also use the [authorizeUrl](/types/classes/MtLinkSdk.html#authorizeUrl ':ignore') method to generate the authorization url without opening it immetiately.
-Logout current guest from Moneytree.
-
-
Usage:
+### Passwordless Onboarding
```javascript
-mtLinkSdk.logout(options);
-```
-
-| Parameter | Type | Required | Default Value | Description |
-| --------- | ------ | -------- | ------------------------ | ----------------------------------------------------------------------------------- |
-| options | object | false | Value set during `init`. | Optional parameters. Includes all options in [common options](#common-api-options). |
-
-### openService
-
-This is a method to open various services provided by Moneytree such as Moneytree account settings, Vault etc.
+import mtLinkSdk from '@moneytree/mt-link-javascript-sdk';
-NOTE: calling this API before calling `init` will open the services view without branding (company logo etc.)
-
-
Usage:
-
-```javascript
-mtLinkSdk.openService(serviceId, options);
+// initialize SDK with application information
+mtLinkSdk.init('my-client-id', {
+ redirectUri: 'https://localhost:9000',
+ scopes: ['guest_read', 'accounts_read', 'transactions_read']
+});
+// Start onboarding flow for a new user
+// After the user completes onboarding this redirects with an authorization code
+// If a Monetyree user with this email already exists this prompts the user to login & grant consent (similar to authorize)
+mtLinkSdk.onboard({ email: 'user@test.com'});
+// after redirect from moneytree back to your app's redirectUri
+const token = mtLinkSdk.exchangeToken();
```
-| Parameter | Type | Required | Default Value | Description |
-| -------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| serviceId | `vault`, `myaccount`, `link-kit` | true | | Open a service by Id, current supported services are:
`vault` - Manage your financial institution credentials.
`myaccount` - Manage your Moneytree account settings.
`link-kit` - View all your financial data.
NOTE: This function will throw an error if you do not specify a valid service ID. |
-| options | object | false | Value set during `init`. | Optional parameters. Includes all options in [common options](#common-api-options). |
-| options.view for Vault | `services-list`, `service-connection`, `connection-setting`, `customer-support` | false | | We provide options for opening a specific page on Vault and MyAccount. Please check the following sessions:
[Open Vault Service Connection Page](#open-vault-service-connection-page)
[Open Vault Service Setting Page](#open-vault-service-setting-page)
[Open Vault Customer Support Page](#open-vault-customer-support-page)
NOTE: The serviceId must be `vault` to enable this option. |
-| options.view for MyAccount | `authorized-applications`, `change-language`, `email-preferences`, `delete-account`, `update-email`, `update-password` | false | | We provide options for opening a specific page on MyAccount. Please check the following sessions:
[Open MyAccount Page](#open-myaccount-page)
NOTE: The serviceId must be `myaccount` to enable this option. |
-
-### logoutUrl
+You can also use the [onboardUrl](/types/classes/MtLinkSdk.html#onboardUrl ':ignore') method to generate the onboard url without opening it immetiately.
-This method generates a URL to log out the guest. See the `logout` API for details on logout.
-
-
Usage:
+### Logout
```javascript
-mtLinkSdk.logoutUrl(options);
-```
-
-This API has exactly the same parameters as `logout`, the only difference being that it returns an URL instead of opening immediately with `window.open`.
+import mtLinkSdk from '@moneytree/mt-link-javascript-sdk';
-#### Open Vault Services Page
+// initialize SDK with application information
+mtLinkSdk.init('my-client-id', {
+ redirectUri: 'https://localhost:9000',
+ scopes: ['guest_read', 'accounts_read', 'transactions_read']
+});
-It has to include these properties of `options` below when calling [openService](#openservice) API.
-
-NOTE: This scenario only works when serviceId is `vault`.
-
-
Usage:
-
-```javascript
-mtLinkSdk.openService('vault', { view: 'services-list', type: 'bank', group: 'grouping_bank', search: 'japan' });
+// logout the user
+mtLinkSdk.logout();
```
-| Parameter | Type | Required | Default Value | Description |
-| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------- | --------------------------------------- |
-| serviceId | `vault` | true | | Open a Vault service. |
-| options.view | `services-list` | true | | Assign to open services page. |
-| options.type | `bank` (personal bank), `credit_card` (personal credit card), `stored_value` (electronic money), `point` (loyalty point), `corporate` (corporate bank or card) | false | | Filter the services by type. |
-| options.group | `grouping_bank`, `grouping_bank_credit_card`, `grouping_bank_dc_card`, `grouping_corporate_credit_card`, `grouping_credit_card`, `grouping_credit_coop`, `grouping_credit_union`, `grouping_dc_pension_plan`, `grouping_debit_card`, `grouping_digital_money`, `grouping_ja_bank`, `grouping_life_insurance`, `grouping_point`, `grouping_regional_bank`, `grouping_stock`, `grouping_testing` | false | | Filter the services by group. |
-| options.search | string | false | | Filter the services by the search term. |
-
-#### Open Vault Service Connection Page
+You can also use the [logoutUrl](/types/classes/MtLinkSdk.html#logoutUrl ':ignore') method to generate the logout url without redirecting the user.
-It has to include these properties of `options` below when calling [openService](#openservice) API.
+### Open Services
-NOTE: This scenario only works when serviceId is `vault`.
+With the [openService](/types/classes/MtLinkSdk.html#openService ':ignore') function you can open Moneytree services directly from your app.
+Alternatively, you can also use [openServiceUrl](/types/classes/MtLinkSdk.html#openServiceUrl ':ignore') to generate the url without opening it immetiately.
-
Usage:
+#### Open Vault
```javascript
-mtLinkSdk.openService('vault', { view: 'service-connection', entityKey: 'yucho_bank' });
-```
+import mtLinkSdk from '@moneytree/mt-link-javascript-sdk';
-| Parameter | Type | Required | Default Value | Description |
-| ----------------- | -------------------- | -------- | ------------- | --------------------------------------------------------------------------------------------------------------------- |
-| serviceId | `vault` | true | | Open a Vault service |
-| options.view | `service-connection` | true | | Assign to open service connection page |
-| options.entityKey | string | true | | Service entity key
NOTE: Top page of the Vault would be shown if `entityKey` is invalid. |
-
-#### Open Vault Service Setting Page
-
-It has to include these properties of `options` below when calling [openService](#openservice) API.
-
-NOTE: This scenario only works when serviceId is `vault`.
-
-
Usage:
-
-```javascript
-mtLinkSdk.openService('vault', { view: 'connection-setting', credentialId: '123456' });
-```
-
-| Parameter | Type | Required | Default Value | Description |
-| -------------------- | -------------------- | -------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------- |
-| serviceId | `vault` | true | | Open a Vault service |
-| options.view | `connection-setting` | true | | Assign to open connection setting page |
-| options.credentialId | string | true | | Service credential Id
NOTE: Top page of the Vault would be shown if the `credentialId` is invalid. |
-
-#### Open Vault Customer Support Page
-
-It has to include these properties of `options` below when calling [openService](#openservice) API.
-
-NOTE: This scenario only works when serviceId is `vault`.
-
-
Usage:
-
-```javascript
-mtLinkSdk.openService('vault', { view: 'customer-support' });
+// initialize SDK with application information
+mtLinkSdk.init('my-client-id', {
+ redirectUri: 'https://localhost:9000',
+ scopes: ['guest_read', 'accounts_read', 'transactions_read']
+});
+// Open Vault on the services list page
+// If the user is not logged in yet this will prompt them to login
+// If the user has not granted consent yet this will prompt them to grant consent
+mtLinkSdk.openService('vault', {view: 'services-list'});
```
-| Parameter | Type | Required | Default Value | Description |
-| ------------ | ------------------ | -------- | ------------- | ------------------------------------ |
-| serviceId | `vault` | true | | Open a Vault service |
-| options.view | `customer-support` | true | | Assign to open customer support page |
-
-#### Open MyAccount Page
-
-It has to include these properties of `options` below when calling [openService](#openservice) API.
-
-NOTE: This scenario only works when serviceId is `myaccount`.
+Vault has serveral different views with different options for each, view the full documentation [here](/types/classes/MtLinkSdk.html#openService.openService-3 ':ignore').
-
If no value is provided, it goes to the top page of MyAccount. |
-
-### openServiceUrl
+import mtLinkSdk from '@moneytree/mt-link-javascript-sdk';
-This method can generate URLs for various services provided by Moneytree, such as Moneytree Account Settings and Vault. See the `openService` API for details on combining the various options.
-
-
Usage:
-
-```javascript
-mtLinkSdk.openServiceUrl(serviceId, options);
+// initialize SDK with application information
+mtLinkSdk.init('my-client-id', {
+ redirectUri: 'https://localhost:9000',
+ scopes: ['guest_read', 'accounts_read', 'transactions_read']
+});
+// Open MyAccount on the settings page
+// If the user is not logged in yet this will prompt them to login
+mtLinkSdk.openService('myaccount', {view: 'settings'});
```
-This API has exactly the same parameters as `openService`, the only difference being that it returns an URL instead of opening immediately with `window.open`.
+MyAccount has serveral different views with different options for each, view the full documentation [here](/types/classes/MtLinkSdk.html#openService.openService-2 ':ignore').
-### requestLoginLink
-
-Request for a password-less login link to be sent to the guest's email address. Clicking on the link in the email will log a guest in directly to the screen specified by the `loginLinkTo` parameter.
-
-
Usage:
+### Set identifier for SSO login flow
```javascript
-mtLinkSdk.requestLoginLink(options);
+// initialize SDK with application information
+mtLinkSdk.init('my-client-id', {
+ redirectUri: 'https://localhost:9000',
+ scopes: ['guest_read', 'accounts_read', 'transactions_read'],
+ authMethod: 'sso' // configure SDK to use SSO for login
+});
+// set application specific identifier for SSO login flow
+// this identifier will be passed back to your SAML Identity Provider in the SAML AuthnRequest
+mtLinkSdk.setSamlSubjectId('my-saml-subject-id');
+// Opens Vault, if the user is not logged in it will trigger the SAML SSO login flow and pass the SAML subject ID to the IdP
+mtLinkSdk.openService('vault', {view: 'services-list'});
```
-| Parameter | Type | Required | Default Value | Description |
-| ------------------- | ------ | -------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| options | object | false | Value set during `init`. | Optional parameters. Includes all options in [common options](#common-api-options). |
-| options.loginLinkTo | string | true | `settings` (for mobile view)
OR
`settings/update-email` (for desktop view) | Redirection to location after login, currently supported locations include:
`settings` - Main Moneytree account settings screen.
`settings/authorized-applications` - List of apps currently connected to Moneytree.
`settings/change-language` - Change Moneytree account language screen.
|
-| options.email | string | true | Value set during `init`. | Login Link will be sent to this email.
NOTE: This function will throw an error if both values here and from the [init options](?id=api-init_options) are undefined. |
-
-## Common API options
-
-These common options are used in multiple APIs. Instead of repeating the same options in every definition, they are documented here.
-
-NOTE: Since `options` are optional for each function call in the SDK, they will be read from the [init options](?id=api-init_options) by default if none are provided.
-
-| Parameter | Type | Required | Default Value | Description |
-| ----------------------------------------------------------------- | ----------------- | -------- | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| options.email | string | false | Value set during `init`. | Email used to pre-fill the email field in login or sign up or form. |
-| options.backTo | string | false | Value set during `init`. | A redirection URL for redirecting a guest back to in the following condition:
Guest clicks on `Back to [App Name]` button in any Moneytree screen.
Guest refuses to give consent to access permission in the consent screen.
Guest logs out from Moneytree via an app with this client id
Revoke an app's consent from settings screen opened via an app with this client id
NOTE: No `Back to [App Name]` button will be shown if this value is not set, and any of the actions mentioned above will redirect the guest back to login screen by default. |
-| options.authAction | `login`, `signup` | false | Value set during `init`.
OR
`login` | Show login or sign up screen when a session does not exist during an `authorize` call. |
-| options.showAuthToggle | boolean | false | Value set during `init`.
OR
`true` | If you wish to disable the login to sign up form toggle button and vice-versa in the auth screen, set this to `false`. |
-| options.showRememberMe | boolean | false | Value set during `init`.
OR
`true` | If you wish to disable the `Stay logged in for 30 days` checkbox in the login screen, set this to `false`. |
-| options.isNewTab | boolean | false | Value set during `init`.
OR
`false` | Call method and open/render in a new browser tab, by default all views open in the same tab. |
-| options.authnMethod | string | | Value set during `init`. | Use different authentication methods. This can be a string with the following values:
`sso`, `passwordless`, `credentials`. |
-| options.sdkPlatform (private) | string | false | Generated by the SDK. | NOTE: this is for Moneytree internal use, please do not use it to avoid unintended behavior!
Indicating sdk platform. |
-| options.sdkVersion (private) | semver | false | Generated by the SDK. | NOTE: this is for Moneytree internal use, please do not use it to avoid unintended behavior!
Indicating sdk version. |
-
## Theming
We support gray labelling some of the services offered by Moneytree, please contact your Moneytree representative for more information.
From 7fd3f27318fdae3708a958ab0f6b7a535d9f1da0 Mon Sep 17 00:00:00 2001
From: Nemo | DFR
Date: Thu, 5 Oct 2023 17:24:22 +0900
Subject: [PATCH 4/7] doc(sdk) update readme with badge maintainer instructions
---
README.md | 35 ++++++++++++++++++++++++++++++++++-
1 file changed, 34 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 96eb2e4..73f90dd 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,38 @@
# Moneytree Link JavaScript SDK
+[](https://www.npmjs.com/package/@moneytree/mt-link-javascript-sdk)
+
This is a library for browser client to help you integrate Moneytree tools such as My Account and the Vault without having to do worry about the complex configurations.
-Read the [documentation](docs/README.md) for more information.
+## For SDK Users
+
+Read the [documentation](https://moneytree.github.io/mt-link-javascript-sdk/) for more information.
+
+## For SDK Maintainers
+
+```bash
+yarn install
+yarn lint # runs eslint
+yarn test # runs all the tests
+yarn build # bundles the library
+```
+
+There is a minimal sample application in the `sample` directory.
+
+### Documentation
+
+```bash
+yarn build:docs # bundles the documentation
+yarn start:docs # Serves the documentation
+```
+
+We use [docsify](https://docsify.js.org/) to serve the documentation landing page (`docs/README.md`) and [typedoc](https://typedoc.org/) to generate the API documentation (`docs/types`).
+
+### Publishing
+
+```bash
+npm version
+# after merging the new version to master
+npm login
+npm publish
+```
From 89f69cd5c5e4a105b4bf01982a31b6c950f90223 Mon Sep 17 00:00:00 2001
From: Nemo <100679222+mt-dfrey@users.noreply.github.com>
Date: Fri, 6 Oct 2023 10:08:34 +0900
Subject: [PATCH 5/7] fix typos
Co-authored-by: Rory Kelly <90672264+mt-rorykelly@users.noreply.github.com>
---
src/typings.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/typings.ts b/src/typings.ts
index 839482c..06a2731 100644
--- a/src/typings.ts
+++ b/src/typings.ts
@@ -33,7 +33,7 @@ export interface ConfigsOptions extends PrivateConfigsOptions {
email?: string;
/**
* A redirection URL for redirecting a guest back to in the following condition:
- * - Guest clicks on `Back to [App Name]`` button in any Moneytree screen.
+ * - Guest clicks on `Back to [App Name]` button in any Moneytree screen.
* - Guest refuses to give consent to access permission in the consent screen.
* - Guest logs out from Moneytree via an app with this client id
* - Revoke an app's consent from settings screen opened via an app with this client id
@@ -259,7 +259,7 @@ export type InitOptions = Omit, 'code
mode?: Mode;
/**
* Force Moneytree to load content in this specific locale. A default value will be auto detected based on guest
- * langauges configurations and location if available.
+ * languages configurations and location if available.
* Check this [spec](https://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.1) for more information.
*
* Currently supported values are:`'en'`, `'en-AU'`, `'ja'`.
@@ -352,7 +352,7 @@ export interface TokenInfo {
/** @hidden */
is_mt: boolean;
};
- /** User related informatino */
+ /** User related information */
guest: null | {
email: string;
country: string;
From a3660a83ace6fee4154b6dd589580ad8a2bb2537 Mon Sep 17 00:00:00 2001
From: Nemo | DFR
Date: Fri, 6 Oct 2023 11:28:49 +0900
Subject: [PATCH 6/7] build(all) add cspell
---
package.json | 2 +
yarn.lock | 729 ++++++++++++++++++++++++++++++++++++++++++++++++++-
2 files changed, 723 insertions(+), 8 deletions(-)
diff --git a/package.json b/package.json
index 2962f77..ea75ff9 100644
--- a/package.json
+++ b/package.json
@@ -20,12 +20,14 @@
"lint:ts": "eslint -c './.eslintrc-ts.js' '**/*.ts'",
"lint": "yarn lint:js; yarn lint:ts",
"format": "prettier scripts src sample/src --write",
+ "spellcheck": "cspell src script sample/src",
"lint:fix": "yarn lint:js --fix; yarn lint:ts --fix",
"start:docs": "docsify serve docs",
"prepare": "husky install"
},
"dependencies": {
"crypto-browserify": "^3.12.0",
+ "cspell": "^7.3.7",
"node-fetch": "^2.6.1",
"qs": "^6.10.1",
"snake-case": "^3.0.4",
diff --git a/yarn.lock b/yarn.lock
index db4c86c..5491287 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -442,6 +442,342 @@
dependencies:
chalk "^4.0.0"
+"@cspell/cspell-bundled-dicts@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-7.3.7.tgz#32a67ba983ee0bd247834006ed9cc99be9334649"
+ integrity sha512-Mw7J0RAWGpEup/+eIePw3wi+OlMGNicrD1r9OhdgIgO6sHEi01ibS/RzNNbC7UziLaYEHi8+WfLyGzmp1ZISrQ==
+ dependencies:
+ "@cspell/dict-ada" "^4.0.2"
+ "@cspell/dict-aws" "^4.0.0"
+ "@cspell/dict-bash" "^4.1.2"
+ "@cspell/dict-companies" "^3.0.24"
+ "@cspell/dict-cpp" "^5.0.5"
+ "@cspell/dict-cryptocurrencies" "^4.0.0"
+ "@cspell/dict-csharp" "^4.0.2"
+ "@cspell/dict-css" "^4.0.10"
+ "@cspell/dict-dart" "^2.0.3"
+ "@cspell/dict-django" "^4.1.0"
+ "@cspell/dict-docker" "^1.1.7"
+ "@cspell/dict-dotnet" "^5.0.0"
+ "@cspell/dict-elixir" "^4.0.3"
+ "@cspell/dict-en-common-misspellings" "^1.0.2"
+ "@cspell/dict-en-gb" "1.1.33"
+ "@cspell/dict-en_us" "^4.3.8"
+ "@cspell/dict-filetypes" "^3.0.1"
+ "@cspell/dict-fonts" "^4.0.0"
+ "@cspell/dict-fsharp" "^1.0.0"
+ "@cspell/dict-fullstack" "^3.1.5"
+ "@cspell/dict-gaming-terms" "^1.0.4"
+ "@cspell/dict-git" "^2.0.0"
+ "@cspell/dict-golang" "^6.0.3"
+ "@cspell/dict-haskell" "^4.0.1"
+ "@cspell/dict-html" "^4.0.5"
+ "@cspell/dict-html-symbol-entities" "^4.0.0"
+ "@cspell/dict-java" "^5.0.6"
+ "@cspell/dict-k8s" "^1.0.1"
+ "@cspell/dict-latex" "^4.0.0"
+ "@cspell/dict-lorem-ipsum" "^4.0.0"
+ "@cspell/dict-lua" "^4.0.1"
+ "@cspell/dict-node" "^4.0.3"
+ "@cspell/dict-npm" "^5.0.10"
+ "@cspell/dict-php" "^4.0.3"
+ "@cspell/dict-powershell" "^5.0.2"
+ "@cspell/dict-public-licenses" "^2.0.4"
+ "@cspell/dict-python" "^4.1.9"
+ "@cspell/dict-r" "^2.0.1"
+ "@cspell/dict-ruby" "^5.0.0"
+ "@cspell/dict-rust" "^4.0.1"
+ "@cspell/dict-scala" "^5.0.0"
+ "@cspell/dict-software-terms" "^3.3.2"
+ "@cspell/dict-sql" "^2.1.1"
+ "@cspell/dict-svelte" "^1.0.2"
+ "@cspell/dict-swift" "^2.0.1"
+ "@cspell/dict-typescript" "^3.1.2"
+ "@cspell/dict-vue" "^3.0.0"
+
+"@cspell/cspell-json-reporter@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/cspell-json-reporter/-/cspell-json-reporter-7.3.7.tgz#ef7a7b316717041873d73c2dde8fdb926670aff8"
+ integrity sha512-bogUQKKZWLttZtxFKjpzHuliIha/ByV2km18gm8dA2uB3IrzD1UJy4sCE8lnaodm6n3VtjnViSkQ5XIVU3gAKQ==
+ dependencies:
+ "@cspell/cspell-types" "7.3.7"
+
+"@cspell/cspell-pipe@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/cspell-pipe/-/cspell-pipe-7.3.7.tgz#aaad8b3deb864afa6c40a2279c4220d3d16fdb82"
+ integrity sha512-ZO8v3EwGhjUvhPo1S48+CKv7EPXMoYF7LGERB34K8EXFByb9+J74ojMYj9UgLRV68lFTrDFde3bHoZPPVS1FsA==
+
+"@cspell/cspell-resolver@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/cspell-resolver/-/cspell-resolver-7.3.7.tgz#2eb64b2fedbb10ae5034ed7968d13e82f5748884"
+ integrity sha512-WWZcTI5f2cCjr1yRDTMkcVg7Meil3s+0aaKcLCDTGQf9J2UWWjpqDJ6M6keYei3paAjxW2Pk03IRNNwdA3+igQ==
+ dependencies:
+ global-dirs "^3.0.1"
+
+"@cspell/cspell-service-bus@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/cspell-service-bus/-/cspell-service-bus-7.3.7.tgz#571dcb1de0ffa2ba5d03facafe3d1feeb6639580"
+ integrity sha512-pnDOFpjht7dZYydMygcf0brCSk5BGRvbeWRH6MaMhd+3CdyzyEvtZG3IbBQVNyVvDTA2c/K3rljOAo8y3/lpnw==
+
+"@cspell/cspell-types@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/cspell-types/-/cspell-types-7.3.7.tgz#d27afdf1654e7a23b04ecbae1797ae7245fa5a1c"
+ integrity sha512-zM2BuZJ3UUgPwF78bssggi8X20nmW3a95EmbNJKfbO6Zf2ui7UMzeP3BwpCZk30A/EixGlFhLf6Xd+eBT/DQqw==
+
+"@cspell/dict-ada@^4.0.2":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-ada/-/dict-ada-4.0.2.tgz#8da2216660aeb831a0d9055399a364a01db5805a"
+ integrity sha512-0kENOWQeHjUlfyId/aCM/mKXtkEgV0Zu2RhUXCBr4hHo9F9vph+Uu8Ww2b0i5a4ZixoIkudGA+eJvyxrG1jUpA==
+
+"@cspell/dict-aws@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-aws/-/dict-aws-4.0.0.tgz#ab71fe0c05d9ad662d27495e74361bdcb5b470eb"
+ integrity sha512-1YkCMWuna/EGIDN/zKkW+j98/55mxigftrSFgsehXhPld+ZMJM5J9UuBA88YfL7+/ETvBdd7mwW6IwWsC+/ltQ==
+
+"@cspell/dict-bash@^4.1.2":
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-bash/-/dict-bash-4.1.2.tgz#47696a13f6294c310801b811e75fc62e6151d28c"
+ integrity sha512-AEBWjbaMaJEyAjOHW0F15P2izBjli2cNerG3NjuVH7xX/HUUeNoTj8FF1nwpMufKwGQCvuyO2hCmkVxhJ0y55Q==
+
+"@cspell/dict-companies@^3.0.24":
+ version "3.0.26"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-companies/-/dict-companies-3.0.26.tgz#bb6ac17fb6fee0e1d3f5614175a1db40660c444b"
+ integrity sha512-BGRZ/Uykx+IgQoTGqvRqbBMQy7QSuY0pbTHgtmKtc1scgzZMJQKMDwyuE6LJzlhdlrV7TsVY0lyXREybnDpQPQ==
+
+"@cspell/dict-cpp@^5.0.5":
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-cpp/-/dict-cpp-5.0.6.tgz#1604ee516b57e2017e20790f2f807ecb436d43bc"
+ integrity sha512-2z9JqWgsRYROnqeMj1k1L1taSQQHMhqfU6EqDNApsEQT3naznKntV8KKyybr2YSz0bIG9fMbzVv0GoQBbLgD9A==
+
+"@cspell/dict-cryptocurrencies@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-cryptocurrencies/-/dict-cryptocurrencies-4.0.0.tgz#6517a7e1b0ed184cf3fc18f03230c82508369dec"
+ integrity sha512-EiZp91ATyRxTmauIQfOX9adLYCunKjHEh092rrM7o2eMXP9n7zpXAL9BK7LviL+LbB8VDOm21q+s83cKrrRrsg==
+
+"@cspell/dict-csharp@^4.0.2":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-csharp/-/dict-csharp-4.0.2.tgz#e55659dbe594e744d86b1baf0f3397fe57b1e283"
+ integrity sha512-1JMofhLK+4p4KairF75D3A924m5ERMgd1GvzhwK2geuYgd2ZKuGW72gvXpIV7aGf52E3Uu1kDXxxGAiZ5uVG7g==
+
+"@cspell/dict-css@^4.0.10":
+ version "4.0.12"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-css/-/dict-css-4.0.12.tgz#59abf3512ae729835c933c38f64a3d8a5f09ce3d"
+ integrity sha512-vGBgPM92MkHQF5/2jsWcnaahOZ+C6OE/fPvd5ScBP72oFY9tn5GLuomcyO0z8vWCr2e0nUSX1OGimPtcQAlvSw==
+
+"@cspell/dict-dart@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-dart/-/dict-dart-2.0.3.tgz#75e7ffe47d5889c2c831af35acdd92ebdbd4cf12"
+ integrity sha512-cLkwo1KT5CJY5N5RJVHks2genFkNCl/WLfj+0fFjqNR+tk3tBI1LY7ldr9piCtSFSm4x9pO1x6IV3kRUY1lLiw==
+
+"@cspell/dict-data-science@^1.0.11":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-data-science/-/dict-data-science-1.0.11.tgz#4eabba75c21d27253c1114b4fbbade0ead739ffc"
+ integrity sha512-TaHAZRVe0Zlcc3C23StZqqbzC0NrodRwoSAc8dis+5qLeLLnOCtagYQeROQvDlcDg3X/VVEO9Whh4W/z4PAmYQ==
+
+"@cspell/dict-django@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-django/-/dict-django-4.1.0.tgz#2d4b765daf3c83e733ef3e06887ea34403a4de7a"
+ integrity sha512-bKJ4gPyrf+1c78Z0Oc4trEB9MuhcB+Yg+uTTWsvhY6O2ncFYbB/LbEZfqhfmmuK/XJJixXfI1laF2zicyf+l0w==
+
+"@cspell/dict-docker@^1.1.7":
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-docker/-/dict-docker-1.1.7.tgz#bcf933283fbdfef19c71a642e7e8c38baf9014f2"
+ integrity sha512-XlXHAr822euV36GGsl2J1CkBIVg3fZ6879ZOg5dxTIssuhUOCiV2BuzKZmt6aIFmcdPmR14+9i9Xq+3zuxeX0A==
+
+"@cspell/dict-dotnet@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-dotnet/-/dict-dotnet-5.0.0.tgz#13690aafe14b240ad17a30225ac1ec29a5a6a510"
+ integrity sha512-EOwGd533v47aP5QYV8GlSSKkmM9Eq8P3G/eBzSpH3Nl2+IneDOYOBLEUraHuiCtnOkNsz0xtZHArYhAB2bHWAw==
+
+"@cspell/dict-elixir@^4.0.3":
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-elixir/-/dict-elixir-4.0.3.tgz#57c25843e46cf3463f97da72d9ef8e37c818296f"
+ integrity sha512-g+uKLWvOp9IEZvrIvBPTr/oaO6619uH/wyqypqvwpmnmpjcfi8+/hqZH8YNKt15oviK8k4CkINIqNhyndG9d9Q==
+
+"@cspell/dict-en-common-misspellings@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-en-common-misspellings/-/dict-en-common-misspellings-1.0.2.tgz#3c4ebab8e9e906d66d60f53c8f8c2e77b7f108e7"
+ integrity sha512-jg7ZQZpZH7+aAxNBlcAG4tGhYF6Ksy+QS5Df73Oo+XyckBjC9QS+PrRwLTeYoFIgXy5j3ICParK5r3MSSoL4gw==
+
+"@cspell/dict-en-gb@1.1.33":
+ version "1.1.33"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-en-gb/-/dict-en-gb-1.1.33.tgz#7f1fd90fc364a5cb77111b5438fc9fcf9cc6da0e"
+ integrity sha512-tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==
+
+"@cspell/dict-en_us@^4.3.8":
+ version "4.3.8"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-en_us/-/dict-en_us-4.3.8.tgz#79f0d93827c6bc8f6d9c5b9dcbf5fd7b8aec42ee"
+ integrity sha512-rCPsbDHuRnFUbzWAY6O1H9+cLZt5FNQwjPVw2TdQZfipdb0lim984aLGY+nupi1iKC3lfjyd5SVUgmSZEG1QNA==
+
+"@cspell/dict-filetypes@^3.0.1":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-filetypes/-/dict-filetypes-3.0.1.tgz#61642b14af90894e6acf4c00f20ab2d097c1ed12"
+ integrity sha512-8z8mY1IbrTyTRumx2vvD9yzRhNMk9SajM/GtI5hdMM2pPpNSp25bnuauzjRf300eqlqPY2MNb5MmhBFO014DJw==
+
+"@cspell/dict-fonts@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-fonts/-/dict-fonts-4.0.0.tgz#9bc8beb2a7b068b4fdb45cb994b36fd184316327"
+ integrity sha512-t9V4GeN/m517UZn63kZPUYP3OQg5f0OBLSd3Md5CU3eH1IFogSvTzHHnz4Wqqbv8NNRiBZ3HfdY/pqREZ6br3Q==
+
+"@cspell/dict-fsharp@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-fsharp/-/dict-fsharp-1.0.0.tgz#420df73069f7bb8efe82bf823eef620647a571bc"
+ integrity sha512-dHPkMHwW4dWv3Lv9VWxHuVm4IylqvcfRBSnZ7usJTRThraetSVrOPIJwr6UJh7F5un/lGJx2lxWVApf2WQaB/A==
+
+"@cspell/dict-fullstack@^3.1.5":
+ version "3.1.5"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-fullstack/-/dict-fullstack-3.1.5.tgz#35d18678161f214575cc613dd95564e05422a19c"
+ integrity sha512-6ppvo1dkXUZ3fbYn/wwzERxCa76RtDDl5Afzv2lijLoijGGUw5yYdLBKJnx8PJBGNLh829X352ftE7BElG4leA==
+
+"@cspell/dict-gaming-terms@^1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-gaming-terms/-/dict-gaming-terms-1.0.4.tgz#b67d89d014d865da6cb40de4269d4c162a00658e"
+ integrity sha512-hbDduNXlk4AOY0wFxcDMWBPpm34rpqJBeqaySeoUH70eKxpxm+dvjpoRLJgyu0TmymEICCQSl6lAHTHSDiWKZg==
+
+"@cspell/dict-git@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-git/-/dict-git-2.0.0.tgz#fa5cb298845da9c69efc01c6af07a99097718dc9"
+ integrity sha512-n1AxyX5Kgxij/sZFkxFJlzn3K9y/sCcgVPg/vz4WNJ4K9YeTsUmyGLA2OQI7d10GJeiuAo2AP1iZf2A8j9aj2w==
+
+"@cspell/dict-golang@^6.0.3":
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-golang/-/dict-golang-6.0.3.tgz#e24fecf139db4dc9f771efc754dcd7948994f31e"
+ integrity sha512-KiNnjAeqDBq6zH4s46hzBrKgqIrkSZ9bbHzQ54PbHfe+jurZkSZ4lXz6E+315RNh2TkRLcNppFvaZqJvKZXomA==
+
+"@cspell/dict-haskell@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-haskell/-/dict-haskell-4.0.1.tgz#e9fca7c452411ff11926e23ffed2b50bb9b95e47"
+ integrity sha512-uRrl65mGrOmwT7NxspB4xKXFUenNC7IikmpRZW8Uzqbqcu7ZRCUfstuVH7T1rmjRgRkjcIjE4PC11luDou4wEQ==
+
+"@cspell/dict-html-symbol-entities@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-html-symbol-entities/-/dict-html-symbol-entities-4.0.0.tgz#4d86ac18a4a11fdb61dfb6f5929acd768a52564f"
+ integrity sha512-HGRu+48ErJjoweR5IbcixxETRewrBb0uxQBd6xFGcxbEYCX8CnQFTAmKI5xNaIt2PKaZiJH3ijodGSqbKdsxhw==
+
+"@cspell/dict-html@^4.0.5":
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-html/-/dict-html-4.0.5.tgz#03a5182148d80e6c25f71339dbb2b7c5b9894ef8"
+ integrity sha512-p0brEnRybzSSWi8sGbuVEf7jSTDmXPx7XhQUb5bgG6b54uj+Z0Qf0V2n8b/LWwIPJNd1GygaO9l8k3HTCy1h4w==
+
+"@cspell/dict-java@^5.0.6":
+ version "5.0.6"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-java/-/dict-java-5.0.6.tgz#2462d6fc15f79ec15eb88ecf875b6ad2a7bf7a6a"
+ integrity sha512-kdE4AHHHrixyZ5p6zyms1SLoYpaJarPxrz8Tveo6gddszBVVwIUZ+JkQE1bWNLK740GWzIXdkznpUfw1hP9nXw==
+
+"@cspell/dict-k8s@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-k8s/-/dict-k8s-1.0.1.tgz#6c0cc521dd42fee2c807368ebfef77137686f3a1"
+ integrity sha512-gc5y4Nm3hVdMZNBZfU2M1AsAmObZsRWjCUk01NFPfGhFBXyVne41T7E62rpnzu5330FV/6b/TnFcPgRmak9lLw==
+
+"@cspell/dict-latex@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-latex/-/dict-latex-4.0.0.tgz#85054903db834ea867174795d162e2a8f0e9c51e"
+ integrity sha512-LPY4y6D5oI7D3d+5JMJHK/wxYTQa2lJMSNxps2JtuF8hbAnBQb3igoWEjEbIbRRH1XBM0X8dQqemnjQNCiAtxQ==
+
+"@cspell/dict-lorem-ipsum@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-lorem-ipsum/-/dict-lorem-ipsum-4.0.0.tgz#2793a5dbfde474a546b0caecc40c38fdf076306e"
+ integrity sha512-1l3yjfNvMzZPibW8A7mQU4kTozwVZVw0AvFEdy+NcqtbxH+TvbSkNMqROOFWrkD2PjnKG0+Ea0tHI2Pi6Gchnw==
+
+"@cspell/dict-lua@^4.0.1":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-lua/-/dict-lua-4.0.2.tgz#74f080296f94eda4e65f79d14be00cb0f8fdcb22"
+ integrity sha512-eeC20Q+UnHcTVBK6pgwhSjGIVugO2XqU7hv4ZfXp2F9DxGx1RME0+1sKX4qAGhdFGwOBsEzb2fwUsAEP6Mibpg==
+
+"@cspell/dict-node@^4.0.3":
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-node/-/dict-node-4.0.3.tgz#5ae0222d72871e82978049f8e11ea627ca42fca3"
+ integrity sha512-sFlUNI5kOogy49KtPg8SMQYirDGIAoKBO3+cDLIwD4MLdsWy1q0upc7pzGht3mrjuyMiPRUV14Bb0rkVLrxOhg==
+
+"@cspell/dict-npm@^5.0.10":
+ version "5.0.12"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-npm/-/dict-npm-5.0.12.tgz#dc752a4a22875c3835910266398d70c732648610"
+ integrity sha512-T/+WeQmtbxo7ad6hrdI8URptYstKJP+kXyWJZfuVJJGWJQ7yubxrI5Z5AfM+Dh/ff4xHmdzapxD9adaEQ727uw==
+
+"@cspell/dict-php@^4.0.3":
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-php/-/dict-php-4.0.3.tgz#07d6288472f2fe433c9aaf6cd47aa5ef7404aade"
+ integrity sha512-PxtSmWJCDEB4M8R9ER9ijxBum/tvUqYT26QeuV58q2IFs5IrPZ6hocQKvnFGXItjCWH4oYXyAEAAzINlBC4Opg==
+
+"@cspell/dict-powershell@^5.0.2":
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-powershell/-/dict-powershell-5.0.2.tgz#2b1d7d514354b6d7de405d5faaef30f8eca0ef09"
+ integrity sha512-IHfWLme3FXE7vnOmMncSBxOsMTdNWd1Vcyhag03WS8oANSgX8IZ+4lMI00mF0ptlgchf16/OU8WsV4pZfikEFw==
+
+"@cspell/dict-public-licenses@^2.0.4":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-public-licenses/-/dict-public-licenses-2.0.4.tgz#70468e37ca5b0096e5f31db32b0e07e46de48bcb"
+ integrity sha512-KjsfuGwMWvPkp6s0nR+s4mZc9SQhh1tHDOyQZfEVRwi+2ev7f8l7R6ts9sP2Mplb8UcxwO6YmKwxHjN+XHoMoA==
+
+"@cspell/dict-python@^4.1.9":
+ version "4.1.9"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-python/-/dict-python-4.1.9.tgz#d576ee258e4f42e6eafd28da1f041709cbde3ebd"
+ integrity sha512-JMA4v/ZPJWuDt3PPFz+23VIY3iDIB+xOTQ6nw+WkcJU5yr6FUl5zMU9ModKrgujg3jGRuuJqofErZVPqHNHYAA==
+ dependencies:
+ "@cspell/dict-data-science" "^1.0.11"
+
+"@cspell/dict-r@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-r/-/dict-r-2.0.1.tgz#73474fb7cce45deb9094ebf61083fbf5913f440a"
+ integrity sha512-KCmKaeYMLm2Ip79mlYPc8p+B2uzwBp4KMkzeLd5E6jUlCL93Y5Nvq68wV5fRLDRTf7N1LvofkVFWfDcednFOgA==
+
+"@cspell/dict-ruby@^5.0.0":
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-ruby/-/dict-ruby-5.0.1.tgz#a59df952d66781d811e7aac9208c145680e8cdf9"
+ integrity sha512-rruTm7Emhty/BSYavSm8ZxRuVw0OBqzJkwIFXcV0cX7To8D1qbmS9HFHRuRg8IL11+/nJvtdDz+lMFBSmPUagQ==
+
+"@cspell/dict-rust@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-rust/-/dict-rust-4.0.1.tgz#ef0b88cb3a45265824e2c9ce31b0baa4e1050351"
+ integrity sha512-xJSSzHDK2z6lSVaOmMxl3PTOtfoffaxMo7fTcbZUF+SCJzfKbO6vnN9TCGX2sx1RHFDz66Js6goz6SAZQdOwaw==
+
+"@cspell/dict-scala@^5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-scala/-/dict-scala-5.0.0.tgz#b64365ad559110a36d44ccd90edf7151ea648022"
+ integrity sha512-ph0twaRoV+ylui022clEO1dZ35QbeEQaKTaV2sPOsdwIokABPIiK09oWwGK9qg7jRGQwVaRPEq0Vp+IG1GpqSQ==
+
+"@cspell/dict-software-terms@^3.3.2":
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-software-terms/-/dict-software-terms-3.3.4.tgz#40f2e452b10a5d85f31c1a7cc36b5e20c7ad724c"
+ integrity sha512-+WpBcJmhPl+jZEEGqgeiyDeJuCJ/M2TuVPaHJJI83LQLvLf1z4/5dkHXU7fUkimpxXFJWWR1DlWLA3+PKBeTfg==
+
+"@cspell/dict-sql@^2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-sql/-/dict-sql-2.1.1.tgz#eb16c8bece4ff3154a193fe854a600ed0f75c64c"
+ integrity sha512-v1mswi9NF40+UDUMuI148YQPEQvWjac72P6ZsjlRdLjEiQEEMEsTQ+zlkIdnzC9QCNyJaqD5Liq9Mn78/8Zxtw==
+
+"@cspell/dict-svelte@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-svelte/-/dict-svelte-1.0.2.tgz#0c866b08a7a6b33bbc1a3bdbe6a1b484ca15cdaa"
+ integrity sha512-rPJmnn/GsDs0btNvrRBciOhngKV98yZ9SHmg8qI6HLS8hZKvcXc0LMsf9LLuMK1TmS2+WQFAan6qeqg6bBxL2Q==
+
+"@cspell/dict-swift@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-swift/-/dict-swift-2.0.1.tgz#06ec86e52e9630c441d3c19605657457e33d7bb6"
+ integrity sha512-gxrCMUOndOk7xZFmXNtkCEeroZRnS2VbeaIPiymGRHj5H+qfTAzAKxtv7jJbVA3YYvEzWcVE2oKDP4wcbhIERw==
+
+"@cspell/dict-typescript@^3.1.2":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-typescript/-/dict-typescript-3.1.2.tgz#14d05f54db2984feaa24ea133b583d19c04cc104"
+ integrity sha512-lcNOYWjLUvDZdLa0UMNd/LwfVdxhE9rKA+agZBGjL3lTA3uNvH7IUqSJM/IXhJoBpLLMVEOk8v1N9xi+vDuCdA==
+
+"@cspell/dict-vue@^3.0.0":
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/@cspell/dict-vue/-/dict-vue-3.0.0.tgz#68ccb432ad93fcb0fd665352d075ae9a64ea9250"
+ integrity sha512-niiEMPWPV9IeRBRzZ0TBZmNnkK3olkOPYxC1Ny2AX4TGlYRajcW0WUtoSHmvvjZNfWLSg2L6ruiBeuPSbjnG6A==
+
+"@cspell/dynamic-import@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/dynamic-import/-/dynamic-import-7.3.7.tgz#84c2e02e74bd8669a3256d416772da25128c41cc"
+ integrity sha512-ac52OLDMYBHkRQ8XzihOWnyfqri3M84ELTZdqBhR5YGcHW/mxKhsmXqudA980SdRRKaicD39yhX4idAFb4AsDg==
+ dependencies:
+ import-meta-resolve "^3.0.0"
+
+"@cspell/strong-weak-map@7.3.7":
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/@cspell/strong-weak-map/-/strong-weak-map-7.3.7.tgz#4ad2aba20af2bc2d63434b1cfe24017e9050765b"
+ integrity sha512-n+jRgwH0wU+HsfqgCGVzPmWnZl4SyhtvPxusKwXj6L/STGdt8IP2rYl1PFOtyvgjPjh8xXe/jRrq7zH07btiKA==
+
"@discoveryjs/json-ext@^0.5.0":
version "0.5.3"
resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.3.tgz#90420f9f9c6d3987f176a19a7d8e764271a2f55d"
@@ -1287,6 +1623,11 @@ ansi-regex@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+ansi-regex@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+
ansi-sequence-parser@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz#e0aa1cdcbc8f8bb0b5bca625aac41f5f056973cf"
@@ -1355,6 +1696,11 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
aria-query@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-4.2.2.tgz#0d2ca6c9aceb56b8977e9fed6aed7e15bbd2f83b"
@@ -1388,6 +1734,11 @@ array-ify@^1.0.0:
resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece"
integrity sha1-nlKHYrSpBmrRY6aWKjZEGOlibs4=
+array-timsort@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926"
+ integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
@@ -1805,7 +2156,7 @@ call-bind@^1.0.0:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
-callsites@^3.0.0:
+callsites@^3.0.0, callsites@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
@@ -1849,6 +2200,13 @@ capture-exit@^2.0.0:
dependencies:
rsvp "^4.8.4"
+chalk-template@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/chalk-template/-/chalk-template-1.1.0.tgz#ffc55db6dd745e9394b85327c8ac8466edb7a7b1"
+ integrity sha512-T2VJbcDuZQ0Tb2EWwSotMPJjgpy1/tGee1BTpUNsGZ/qgNjV2t7Mvu+d4600U564nbLesN1x2dPL+xii174Ekg==
+ dependencies:
+ chalk "^5.2.0"
+
chalk@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
@@ -1893,6 +2251,11 @@ chalk@^4.1.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
+chalk@^5.2.0, chalk@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385"
+ integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==
+
char-regex@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
@@ -1985,6 +2348,14 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
+clear-module@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/clear-module/-/clear-module-4.1.2.tgz#5a58a5c9f8dccf363545ad7284cad3c887352a80"
+ integrity sha512-LWAxzHqdHsAZlPlEyJ2Poz6AIs384mPeqLVCru2p0BrP9G/kVGuhNyZYClLO6cXlnuJjzC8xtsJIuMjKqLXoAw==
+ dependencies:
+ parent-module "^2.0.0"
+ resolve-from "^5.0.0"
+
cli-boxes@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d"
@@ -2087,6 +2458,11 @@ combined-stream@^1.0.8:
dependencies:
delayed-stream "~1.0.0"
+commander@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67"
+ integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==
+
commander@^2.20.0:
version "2.20.3"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
@@ -2097,6 +2473,17 @@ commander@^7.0.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+comment-json@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-4.2.3.tgz#50b487ebbf43abe44431f575ebda07d30d015365"
+ integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==
+ dependencies:
+ array-timsort "^1.0.3"
+ core-util-is "^1.0.3"
+ esprima "^4.0.1"
+ has-own-prop "^2.0.0"
+ repeat-string "^1.6.1"
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -2142,6 +2529,17 @@ configstore@^5.0.1:
write-file-atomic "^3.0.0"
xdg-basedir "^4.0.0"
+configstore@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/configstore/-/configstore-6.0.0.tgz#49eca2ebc80983f77e09394a1a56e0aca8235566"
+ integrity sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==
+ dependencies:
+ dot-prop "^6.0.1"
+ graceful-fs "^4.2.6"
+ unique-string "^3.0.0"
+ write-file-atomic "^3.0.3"
+ xdg-basedir "^5.0.1"
+
connect-livereload@^0.6.0:
version "0.6.1"
resolved "https://registry.yarnpkg.com/connect-livereload/-/connect-livereload-0.6.1.tgz#1ac0c8bb9d9cfd5b28b629987a56a9239db9baaa"
@@ -2384,11 +2782,21 @@ core-js-pure@^3.0.0:
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
-core-util-is@~1.0.0:
+core-util-is@^1.0.3, core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+cosmiconfig@8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97"
+ integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==
+ dependencies:
+ import-fresh "^3.2.1"
+ js-yaml "^4.1.0"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+
cosmiconfig@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3"
@@ -2490,6 +2898,116 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+crypto-random-string@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2"
+ integrity sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==
+ dependencies:
+ type-fest "^1.0.1"
+
+cspell-dictionary@7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell-dictionary/-/cspell-dictionary-7.3.7.tgz#cce1f04290822368ec27b878e46e6f1419ae09a2"
+ integrity sha512-mJ0h2BGxYEqb/1FxKD50WuufKhDaCaIk8pwZQryqazXQCvoTpla0yud3KO61Cke92za8z37Rfb+5xATlywEfaw==
+ dependencies:
+ "@cspell/cspell-pipe" "7.3.7"
+ "@cspell/cspell-types" "7.3.7"
+ cspell-trie-lib "7.3.7"
+ fast-equals "^4.0.3"
+ gensequence "^6.0.0"
+
+cspell-gitignore@7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell-gitignore/-/cspell-gitignore-7.3.7.tgz#8907a36b96e57d80a9b447b25bf8c8c20fd798f9"
+ integrity sha512-nP4Gg+zq5y0njzhiNYTLvaJIMAponBhJoTMzkXCOOKYEHJmiRQocfa3gO4t2s8iZ4YVhscbrB2h+dYvo3MLQqg==
+ dependencies:
+ cspell-glob "7.3.7"
+ find-up "^5.0.0"
+
+cspell-glob@7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-7.3.7.tgz#2c6559386c9760ed90330ac23b8371912d8219aa"
+ integrity sha512-DJX5wJ5dhcNzyycukZst+WtbIdpCLTL7DaKS0EKW/57QjzMwwMBgpsF89ufnreGHB8dHrPF85epF9qyOI1SRNg==
+ dependencies:
+ micromatch "^4.0.5"
+
+cspell-grammar@7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell-grammar/-/cspell-grammar-7.3.7.tgz#85a34e1f21381c54e8d86904533f2d7f908fa710"
+ integrity sha512-4cyJ4Alq/wBGTctH7fNTbY9EZCihm11fbrGSYVe8w+msRNx6W8rugsMX009aHiw9zlvGrMAeTD08YFPnBVdfpA==
+ dependencies:
+ "@cspell/cspell-pipe" "7.3.7"
+ "@cspell/cspell-types" "7.3.7"
+
+cspell-io@7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-7.3.7.tgz#0e97d33b90da473efe8196b8af6a1f3a5c42af24"
+ integrity sha512-zqGGllG/OM3Of7zaOELdrSoBpCyG9nJuSRCzLfKgnCG4g2zpoMfDZknJaY9VjZODHP99PvYWooF8E6kVxT34Fw==
+ dependencies:
+ "@cspell/cspell-service-bus" "7.3.7"
+ node-fetch "^2.7.0"
+
+cspell-lib@7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-7.3.7.tgz#d31f09c852b51ac0ac7e59ceb358138dc3ee7e78"
+ integrity sha512-KuFn0WTwmK50Ij1KVaXVuheleSOfv3oFIO3PfMuFg7llkfPfaRawF0b61da/EFGckU/hUc8uHRbBuGELlDo3tA==
+ dependencies:
+ "@cspell/cspell-bundled-dicts" "7.3.7"
+ "@cspell/cspell-pipe" "7.3.7"
+ "@cspell/cspell-resolver" "7.3.7"
+ "@cspell/cspell-types" "7.3.7"
+ "@cspell/dynamic-import" "7.3.7"
+ "@cspell/strong-weak-map" "7.3.7"
+ clear-module "^4.1.2"
+ comment-json "^4.2.3"
+ configstore "^6.0.0"
+ cosmiconfig "8.0.0"
+ cspell-dictionary "7.3.7"
+ cspell-glob "7.3.7"
+ cspell-grammar "7.3.7"
+ cspell-io "7.3.7"
+ cspell-trie-lib "7.3.7"
+ fast-equals "^5.0.1"
+ find-up "^6.3.0"
+ gensequence "^6.0.0"
+ import-fresh "^3.3.0"
+ resolve-from "^5.0.0"
+ vscode-languageserver-textdocument "^1.0.11"
+ vscode-uri "^3.0.7"
+
+cspell-trie-lib@7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-7.3.7.tgz#7aabf3c4a34a2e2784dc3173d7d3c4ef88d70538"
+ integrity sha512-Vv8TdTMZD3DE79SorTwn5NoWj8JD7DnYMeUK+5S6JDNLy4Ck+kTEPN6Ic9hvLAxuDmQjmoZI3TizrWvuCG66aA==
+ dependencies:
+ "@cspell/cspell-pipe" "7.3.7"
+ "@cspell/cspell-types" "7.3.7"
+ gensequence "^6.0.0"
+
+cspell@^7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/cspell/-/cspell-7.3.7.tgz#f07eaf2c635036133214c65e8280a375d1be5d0a"
+ integrity sha512-p23EuTu+7b2qioRxC7sV1TVfxIPm7928BtT4jYBHGeONiYP0EOOWNP8ynaksMYLTifQBzH1Q0LO4L5ogHiQsfw==
+ dependencies:
+ "@cspell/cspell-json-reporter" "7.3.7"
+ "@cspell/cspell-pipe" "7.3.7"
+ "@cspell/cspell-types" "7.3.7"
+ "@cspell/dynamic-import" "7.3.7"
+ chalk "^5.3.0"
+ chalk-template "^1.1.0"
+ commander "^11.0.0"
+ cspell-gitignore "7.3.7"
+ cspell-glob "7.3.7"
+ cspell-io "7.3.7"
+ cspell-lib "7.3.7"
+ fast-glob "^3.3.1"
+ fast-json-stable-stringify "^2.1.0"
+ file-entry-cache "^7.0.0"
+ get-stdin "^9.0.0"
+ semver "^7.5.4"
+ strip-ansi "^7.1.0"
+ vscode-uri "^3.0.7"
+
css.escape@^1.5.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
@@ -2802,6 +3320,13 @@ dot-prop@^5.1.0, dot-prop@^5.2.0:
dependencies:
is-obj "^2.0.0"
+dot-prop@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-6.0.1.tgz#fc26b3cf142b9e59b74dbd39ed66ce620c681083"
+ integrity sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==
+ dependencies:
+ is-obj "^2.0.0"
+
duplexer3@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2"
@@ -3227,6 +3752,16 @@ fast-diff@^1.1.2:
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
+fast-equals@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-4.0.3.tgz#72884cc805ec3c6679b99875f6b7654f39f0e8c7"
+ integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==
+
+fast-equals@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-5.0.1.tgz#a4eefe3c5d1c0d021aeed0bc10ba5e0c12ee405d"
+ integrity sha512-WF1Wi8PwwSY7/6Kx0vKXtw8RwuSGoM1bvDaJbu7MxDlR1vovZjIAKrnzyrThgAjm6JDTu0fVgWXDlMGspodfoQ==
+
fast-glob@^3.1.1:
version "3.2.4"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz#d20aefbf99579383e7f3cc66529158c9b98554d3"
@@ -3239,7 +3774,18 @@ fast-glob@^3.1.1:
micromatch "^4.0.2"
picomatch "^2.2.1"
-fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0:
+fast-glob@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
+ integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
+fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -3285,6 +3831,13 @@ file-entry-cache@^6.0.1:
dependencies:
flat-cache "^3.0.4"
+file-entry-cache@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-7.0.0.tgz#5bb4aef4f0a7dd2ff95966c6d97256b61504bd0a"
+ integrity sha512-OWhoO9dvvwspdI7YjGrs5wD7bPggVHc5b1NFAdyd1fEPIeno3Fj70fjBhklAqzUefgX7KCNDBnvrT8rZhS8Shw==
+ dependencies:
+ flat-cache "^3.1.0"
+
file-uri-to-path@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
@@ -3367,6 +3920,14 @@ find-up@^5.0.0:
locate-path "^6.0.0"
path-exists "^4.0.0"
+find-up@^6.3.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790"
+ integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==
+ dependencies:
+ locate-path "^7.1.0"
+ path-exists "^5.0.0"
+
flat-cache@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
@@ -3375,11 +3936,25 @@ flat-cache@^3.0.4:
flatted "^3.1.0"
rimraf "^3.0.2"
+flat-cache@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.0.tgz#0e54ab4a1a60fe87e2946b6b00657f1c99e1af3f"
+ integrity sha512-OHx4Qwrrt0E4jEIcI5/Xb+f+QmJYNj2rrK8wiIdQOIrB9WrrJL8cjZvXdXuBTkkEwEqLycb5BeZDV1o2i9bTew==
+ dependencies:
+ flatted "^3.2.7"
+ keyv "^4.5.3"
+ rimraf "^3.0.2"
+
flatted@^3.1.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
+flatted@^3.2.7:
+ version "3.2.9"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf"
+ integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==
+
flush-write-stream@^1.0.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
@@ -3484,6 +4059,11 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
+gensequence@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-6.0.0.tgz#ae46a0f89ebd7cc334e45cfb8f1c99a65248694e"
+ integrity sha512-8WwuywE9pokJRAcg2QFR/plk3cVPebSUqRPzpGQh3WQ0wIiHAw+HyOQj5IuHyUTQBHpBKFoB2JUMu9zT3vJ16Q==
+
gensync@^1.0.0-beta.1:
version "1.0.0-beta.1"
resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
@@ -3529,6 +4109,11 @@ get-stdin@^4.0.1:
resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe"
integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=
+get-stdin@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-9.0.0.tgz#3983ff82e03d56f1b2ea0d3e60325f39d703a575"
+ integrity sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==
+
get-stream@^4.0.0, get-stream@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -3613,7 +4198,7 @@ glob-parent@^5.0.0, glob-parent@^5.1.0:
dependencies:
is-glob "^4.0.1"
-glob-parent@~5.1.0:
+glob-parent@^5.1.2, glob-parent@~5.1.0:
version "5.1.2"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
@@ -3646,6 +4231,13 @@ global-dirs@^2.0.1:
dependencies:
ini "1.3.7"
+global-dirs@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485"
+ integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==
+ dependencies:
+ ini "2.0.0"
+
globals@^11.1.0:
version "11.12.0"
resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
@@ -3699,7 +4291,7 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.15:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
-graceful-fs@^4.1.2:
+graceful-fs@^4.1.2, graceful-fs@^4.2.6:
version "4.2.11"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
@@ -3748,6 +4340,11 @@ has-flag@^4.0.0:
resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
+has-own-prop@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af"
+ integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==
+
has-symbols@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423"
@@ -3934,6 +4531,14 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
parent-module "^1.0.0"
resolve-from "^4.0.0"
+import-fresh@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
import-lazy@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43"
@@ -3947,6 +4552,11 @@ import-local@^3.0.2:
pkg-dir "^4.2.0"
resolve-cwd "^3.0.0"
+import-meta-resolve@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/import-meta-resolve/-/import-meta-resolve-3.0.0.tgz#94a6aabc623874fbc2f3525ec1300db71c6cbc11"
+ integrity sha512-4IwhLhNNA8yy445rPjD/lWh++7hMDOml2eHtd58eG7h+qK3EryMuuRbsHGPikCoAgIkkDnckKfWSk2iDla/ejg==
+
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
@@ -3997,6 +4607,11 @@ ini@1.3.7, ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84"
integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==
+ini@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5"
+ integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
+
interpret@^1.0.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
@@ -4756,6 +5371,13 @@ js-yaml@^3.13.1:
argparse "^1.0.7"
esprima "^4.0.0"
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
jsdom@^16.4.0:
version "16.7.0"
resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710"
@@ -4799,6 +5421,11 @@ json-buffer@3.0.0:
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
+json-buffer@3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+ integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
@@ -4876,6 +5503,13 @@ keyv@^3.0.0:
dependencies:
json-buffer "3.0.0"
+keyv@^4.5.3:
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.3.tgz#00873d2b046df737963157bd04f294ca818c9c25"
+ integrity sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==
+ dependencies:
+ json-buffer "3.0.1"
+
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -5027,6 +5661,13 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
+locate-path@^7.1.0:
+ version "7.2.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a"
+ integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==
+ dependencies:
+ p-locate "^6.0.0"
+
lodash._reinterpolate@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
@@ -5281,7 +5922,7 @@ micromatch@^3.1.10, micromatch@^3.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.2"
-micromatch@^4.0.0:
+micromatch@^4.0.0, micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
@@ -5512,6 +6153,13 @@ node-fetch@^2.6.12:
dependencies:
whatwg-url "^5.0.0"
+node-fetch@^2.7.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
+ integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
+ dependencies:
+ whatwg-url "^5.0.0"
+
node-int64@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@@ -5769,6 +6417,13 @@ p-limit@^3.0.2:
dependencies:
p-try "^2.0.0"
+p-limit@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644"
+ integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==
+ dependencies:
+ yocto-queue "^1.0.0"
+
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
@@ -5797,6 +6452,13 @@ p-locate@^5.0.0:
dependencies:
p-limit "^3.0.2"
+p-locate@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f"
+ integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==
+ dependencies:
+ p-limit "^4.0.0"
+
p-timeout@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe"
@@ -5845,6 +6507,13 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
+parent-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-2.0.0.tgz#fa71f88ff1a50c27e15d8ff74e0e3a9523bf8708"
+ integrity sha512-uo0Z9JJeWzv8BG+tRcapBKNJ0dro9cLyczGzulS6EfeyAdeC9sbojtW6XwvYxJkEne9En+J2XEl4zyglVeIwFg==
+ dependencies:
+ callsites "^3.1.0"
+
parent-require@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977"
@@ -5933,6 +6602,11 @@ path-exists@^4.0.0:
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+path-exists@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7"
+ integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==
+
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -6693,7 +7367,7 @@ semver@7.3.5:
dependencies:
lru-cache "^6.0.0"
-semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4:
+semver@7.x, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.5.4:
version "7.5.4"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
@@ -7140,6 +7814,13 @@ strip-ansi@^6.0.0:
dependencies:
ansi-regex "^5.0.0"
+strip-ansi@^7.1.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ dependencies:
+ ansi-regex "^6.0.1"
+
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
@@ -7563,6 +8244,11 @@ type-fest@^0.8.1:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
+type-fest@^1.0.1:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1"
+ integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
+
typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
@@ -7626,6 +8312,13 @@ unique-string@^2.0.0:
dependencies:
crypto-random-string "^2.0.0"
+unique-string@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-3.0.0.tgz#84a1c377aff5fd7a8bc6b55d8244b2bd90d75b9a"
+ integrity sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==
+ dependencies:
+ crypto-random-string "^4.0.0"
+
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
@@ -7789,6 +8482,11 @@ vm-browserify@^1.0.1:
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
+vscode-languageserver-textdocument@^1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz#0822a000e7d4dc083312580d7575fe9e3ba2e2bf"
+ integrity sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==
+
vscode-oniguruma@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b"
@@ -7799,6 +8497,11 @@ vscode-textmate@^8.0.0:
resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-8.0.0.tgz#2c7a3b1163ef0441097e0b5d6389cd5504b59e5d"
integrity sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==
+vscode-uri@^3.0.7:
+ version "3.0.8"
+ resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f"
+ integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==
+
w3c-hr-time@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
@@ -8026,7 +8729,7 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@^3.0.0:
+write-file-atomic@^3.0.0, write-file-atomic@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
@@ -8053,6 +8756,11 @@ xdg-basedir@^4.0.0:
resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+xdg-basedir@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9"
+ integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==
+
xml-name-validator@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
@@ -8174,3 +8882,8 @@ yargs@^16.2.0:
string-width "^4.2.0"
y18n "^5.0.5"
yargs-parser "^20.2.2"
+
+yocto-queue@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
+ integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==
From a926047b850933374cef6e4dd3d8a68869a29ce9 Mon Sep 17 00:00:00 2001
From: Nemo | DFR
Date: Fri, 6 Oct 2023 12:04:20 +0900
Subject: [PATCH 7/7] doc(sdk) fix typos and inconsistencies
---
src/index.ts | 54 +++++++++++++++++++++++++-------------------------
src/typings.ts | 53 +++++++++++++++++++++++++++----------------------
2 files changed, 56 insertions(+), 51 deletions(-)
diff --git a/src/index.ts b/src/index.ts
index 2b048b3..494c9d6 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -55,7 +55,7 @@ export class MtLinkSdk {
* Call `init` to initialize the SDK and set default options for API calls.
*
* Some LINK APIs can be used without calling `init`.
- * Calls related to OAuth require a client id which can only be set via the `init` function.
+ * Calls related to OAuth require a client ID which can only be set via the `init` function.
* These APIs include:
* - {@link authorize}
* - {@link onboard}
@@ -91,7 +91,7 @@ export class MtLinkSdk {
};
}
/**
- * Use this method to send a guest identifier to Moneytree so that Moneytree can forward it as `saml_subject_id` parameter
+ * Use this method to send a user identifier to Moneytree so that Moneytree can forward it as `saml_subject_id` parameter
* to the Identity Provider (IdP) via the SAMLRequest during SAML SSO flows. See the [SAML SSO documentation for details](https://docs.link.getmoneytree.com/docs/saml-introduction#saml-subject-identifier).
*
* This parameter can be set during {@link init} or changed on a request-by-request basis with this method.
@@ -102,19 +102,19 @@ export class MtLinkSdk {
}
/**
- * OAuth authorization method to request guest consent to access data via the [Link API](https://getmoneytree.com/jp/link/about).
+ * OAuth authorization method to request user consent to access data via the [Link API](https://getmoneytree.com/jp/link/about).
*
* The only supported flow is authorization code grant with PKCE [PKCE](https://auth0.com/docs/flows/concepts/auth-code-pkce)
- * If the user is not logged in yet this will show the login screen and redirect the guest to the consent screen after they log in.
- * After the guest consents, they will be redirected to the redirect URI with an authorization code.
- * If the user is already logged and has granted consent in the redirection happens immediately.
+ * If the user is not logged in yet this will show the login screen and redirect the user to the consent screen after they log in.
+ * After the user consents, they will be redirected to the redirect URI with an authorization code.
+ * If the user is already logged in and has granted consent in the redirection happens immediately.
*
- * You can pass the {@link AuthorizeOptions.forceLogout} option to force the guest to log in, even if they have an active session.
+ * You can pass the {@link AuthorizeOptions.forceLogout} option to force the user to log in, even if they have an active session.
*
* You can also choose to display the sign up form when the user is not logged in yet by setting the {@link AuthorizeOptions.authAction} option.
*
* @remark
- * You must initialize the SDK via the {@link init} before calling this API.
+ * You must initialize the SDK via {@link init} before calling this API.
*
* @example
* ```javascript
@@ -126,26 +126,26 @@ export class MtLinkSdk {
}
/**
- * This method generates an URL for OAuth authorization that requires guest consent to access data via [Link API](https://getmoneytree.com/jp/link/about).
+ * This method generates a URL for OAuth authorization that requires user consent to access data via [Link API](https://getmoneytree.com/jp/link/about).
*
* See {@link authorize} API for authorization details. This API has exactly the same parameters as {@link authorize},
- * the only difference is that it returns an URL instead of opening immediately with `window.open`.
+ * the only difference is that it returns a URL instead of opening immediately with `window.open`.
*/
public authorizeUrl(options?: AuthorizeUrlOptions): string {
return authorizeUrl(this.storedOptions, options);
}
/**
- * The onboard API allows a new guest to get onboard faster without having to go through the registration process.
- * All you have to do is provide an emai address and pass the same options parameter as the {@link authorize} function.
- * We will display a consent screen explaining the access requests and applicable scopes.
- * Once the guest consents, a new Moneytree account will be created on their behalf and authorization is completed.
+ * The onboard API allows a new user to get onboard faster without having to go through the registration process.
+ * All you have to do is provide an email address and pass the same options parameter as the {@link authorize} function.
+ * Moneytree LINK will display a consent screen explaining the access requests and applicable scopes.
+ * Once the user consents, a new Moneytree account will be created on their behalf and authorization is completed.
* Resulting behavior will be the same as the {@link authorize} redirection flow.
*
- * Onboard will force any current guest session to logout, hence you do not have to call {@link logout} manually to
+ * Onboard will force any current user session to logout, hence you do not have to call {@link logout} manually to
* ensure a clean state.
*
- * If an account with this email address already exists we will redirect the guest to the login screen.
+ * If an account with this email address already exists we will redirect the user to the login screen.
*
* @remark
* ⚠️ You must initialize the SDK via the {@link init} before calling this API.
@@ -160,9 +160,9 @@ export class MtLinkSdk {
}
/**
- * This method generates a URL for guest onboarding.
+ * This method generates a URL for user onboarding.
*
- * This API has exactly the same parameters as {@link onboard}, the only difference being that it returns an URL
+ * This API has exactly the same parameters as {@link onboard}, the only difference being that it returns a URL
* instead of opening immediately with `window.open`.
*/
public onboardUrl(options?: OnboardUrlOptions): string {
@@ -177,9 +177,9 @@ export class MtLinkSdk {
}
/**
- * This method generates a URL to log out the guest.
+ * This method generates a URL to log out the user.
*
- * This API has exactly the same parameters as {@link logout}, the only difference being that it returns an URL
+ * This API has exactly the same parameters as {@link logout}, the only difference being that it returns a URL
* instead of opening immediately with `window.open`.
*/
public logoutUrl(options?: LogoutUrlOptions): string {
@@ -206,10 +206,10 @@ export class MtLinkSdk {
* Pass `serviceId: 'vault'` to open the Vault service.
*
* Depending on the Vault sub-page you want to open, you can pass the following options:
- * - `serviceList`: opens the vault service list page, pass {@link VaultOpenServiceViewServiceList} as options.
- * - `serviceConnection`: opens the vault service connection page, pass {@link VaultOpenServiceViewServiceConnection} as options.
- * - `connectionSetting`: opens the vault connection setting page, pass {@link VaultOpenServiceViewConnectionSetting} as options.
- * - `customerSupport`: opens the vault customer support page, pass {@link VaultOpenServiceViewCustomerSupport} as options.
+ * - `serviceList`: opens the Vault service list page, pass {@link VaultOpenServiceViewServiceList} as options.
+ * - `serviceConnection`: opens the Vault service connection page, pass {@link VaultOpenServiceViewServiceConnection} as options.
+ * - `connectionSetting`: opens the Vault connection setting page, pass {@link VaultOpenServiceViewConnectionSetting} as options.
+ * - `customerSupport`: opens the Vault customer support page, pass {@link VaultOpenServiceViewCustomerSupport} as options.
*
* @remark ⚠️ calling this API before calling {@link init} will open the services view without branding (company logo etc.)
*/
@@ -237,7 +237,7 @@ export class MtLinkSdk {
/**
* This method can generate URLs for various services provided by Moneytree, such as Moneytree Account Settings and Vault.
*
- * This API has exactly the same parameters as {@link openService}, the only difference being that it returns an URL
+ * This API has exactly the same parameters as {@link openService}, the only difference being that it returns a URL
* instead of opening immediately with `window.open`.
*/
public openServiceUrl(serviceId: 'link-kit', options?: LinkKitOpenServiceUrlOptions): string;
@@ -261,9 +261,9 @@ export class MtLinkSdk {
}
/**
- * Request for a password-less login link to be sent to the guest's email address.
+ * Request for a password-less login link to be sent to the user's email address.
*
- * Clicking on the link in the email will log a guest in directly to the screen specified by the
+ * Clicking on the link in the email will log a user in directly to the screen specified by the
* {@link RequestLoginLinkOptions.loginLinkTo} parameter.
*/
public requestLoginLink(options?: RequestLoginLinkOptions): Promise {
diff --git a/src/typings.ts b/src/typings.ts
index 06a2731..179e1da 100644
--- a/src/typings.ts
+++ b/src/typings.ts
@@ -10,7 +10,7 @@ export interface PrivateParams {
*/
cobrandClientId?: string;
/**
- * Sets subject Id for saml session version.
+ * Sets the subject ID for SAML AuthnRequest.
*/
samlSubjectId?: string;
}
@@ -26,25 +26,25 @@ export type AuthnMethod = typeof supportedAuthnMethod[number];
export interface ConfigsOptions extends PrivateConfigsOptions {
/**
- * Email used to pre-fill the email field in login or sign up or form.
+ * Email address to pre-fill the email field in login or sign up or form.
*
* Set the default value via {@link MtLinkSdk.init}
*/
email?: string;
/**
- * A redirection URL for redirecting a guest back to in the following condition:
- * - Guest clicks on `Back to [App Name]` button in any Moneytree screen.
- * - Guest refuses to give consent to access permission in the consent screen.
- * - Guest logs out from Moneytree via an app with this client id
- * - Revoke an app's consent from settings screen opened via an app with this client id
+ * A redirection URL for redirecting a user back to in one of the following conditions:
+ * - User clicks on `Back to [App Name]` button in any Moneytree screen.
+ * - User refuses to give consent to access permission in the consent screen.
+ * - User logs out from Moneytree via an app with this client ID
+ * - User revokes consent from settings screen opened via an app with this client ID
*
- * ⚠️ No `Back to [App Name]` button will be shown if this value is not set, and any of the actions mentioned above will redirect the guest back to login screen by default.
+ * ⚠️ No `Back to [App Name]` button will be shown if this value is not set, and any of the actions mentioned above will redirect the user back to the login screen by default.
*
* Set the default value via {@link MtLinkSdk.init}
*/
backTo?: string;
/**
- * Show login or sign up screen when a session does not exist during an {@link MtLinkSdk.authorize} call.
+ * Show the login or sign up screen when a session does not exist during an {@link MtLinkSdk.authorize} call.
*
* Set default value via {@link MtLinkSdk.init}
*
@@ -52,7 +52,7 @@ export interface ConfigsOptions extends PrivateConfigsOptions {
*/
authAction?: AuthAction;
/**
- * If you wish to disable the login to sign up form toggle button and vice-versa in the auth screen, set this to `false`.
+ * If you wish to disable the `Login to Sign up` form toggle button and vice-versa in the auth screen, set this to `false`.
*
* Set default value via {@link MtLinkSdk.init}
*
@@ -68,7 +68,7 @@ export interface ConfigsOptions extends PrivateConfigsOptions {
*/
showRememberMe?: boolean;
/**
- * Call method and open/render in a new browser tab, by default all views open in the same tab.
+ * Call method and open/render in a new browser tab. By default all views open in the same tab.
*
* Set default value via {@link MtLinkSdk.init}
*
@@ -76,7 +76,7 @@ export interface ConfigsOptions extends PrivateConfigsOptions {
*/
isNewTab?: boolean;
/**
- * Force existing guest session to logout and call authorize with a clean state.
+ * Force existing user session to logout and call authorize with a clean state.
* @defaultValue false
*/
forceLogout?: boolean;
@@ -194,8 +194,8 @@ export interface OAuthSharedParams {
/**
* The state parameter for OAuth flows, see [here](https://auth0.com/docs/protocols/oauth2/oauth-state) for more details.
*
- * If you generates an identifier for the OAuth authorization on your server make sure to set this value explicitly so
- * that you can use to acquire the access token after the OAuth redirect occurs.
+ * If you generate an identifier for the OAuth authorization on your server make sure to set this value explicitly so
+ * that you can use it to acquire the access token after the OAuth redirect occurs.
*
* The default value is a randomly generated [uuid](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)), or set via {@link MtLinkSdk.init}
*/
@@ -227,7 +227,7 @@ export interface AuthorizeOptions extends OAuthSharedParams, ConfigsOptions, Aut
* - request_refresh
* - life_insurance_read
*
- * See the [LINK Platform documenation](https://docs.link.getmoneytree.com/docs/api-scopes) for more details
+ * See the [LINK Platform documentation](https://docs.link.getmoneytree.com/docs/api-scopes) for more details
*
* @defaultValue `'guest_read'`, or set via {@link MtLinkSdk.init}
*/
@@ -254,12 +254,13 @@ export type InitOptions = Omit, 'code
/**
* Environment for the SDK to connect to, the SDK will connect to the Moneytree production server by default.
* - Moneytree clients should use `staging` for development as `develop` may contain unstable features.
- * - `local` is only for SDK development as it has local dependencies.
+ * - `local` is only for SDK development by Moneytree engineers.
*/
mode?: Mode;
/**
- * Force Moneytree to load content in this specific locale. A default value will be auto detected based on guest
- * languages configurations and location if available.
+ * Force Moneytree to load content in this specific locale.
+ *
+ * A default value will be auto detected based on the user's language configuration and location if available.
* Check this [spec](https://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.1) for more information.
*
* Currently supported values are:`'en'`, `'en-AU'`, `'ja'`.
@@ -312,9 +313,9 @@ export type ServiceId = 'vault' | 'myaccount' | 'link-kit';
/**
* - `settings` - Main Moneytree account settings screen.
- * - `settings/authorized-applications` - List of apps currently connected to Moneytree.
+ * - `settings/authorized-applications` - List of apps currently connected to the Moneytree account.
* - `settings/change-language` - Change Moneytree account language screen.
- * - `settings/email-preferences` - Change Moneytree email preferences screen
+ * - `settings/email-preferences` - Change Moneytree account email preferences screen.
* - `settings/delete-account` - Delete Moneytree account screen.
* - `settings/update-email` - Change Moneytree account email screen.
* - `settings/update-password` - Change Moneytree account password screen.
@@ -335,13 +336,13 @@ export interface RequestLoginLinkOptions extends ConfigsOptions {
export interface TokenInfo {
/** token issuer */
iss: string;
- /** token cretaion time */
+ /** token creation time */
iat: number;
/** token expiry */
exp: number;
/** token audience(s) */
aud: string[];
- /** token subject - the moneytree ide fo the user */
+ /** token subject - the Moneytree ID of the user */
sub: null | string;
scope: string;
client_id: null | string;
@@ -361,13 +362,17 @@ export interface TokenInfo {
};
}
+/** OAuth Access Token Response described in [RFC 6749 section 5.1](https://datatracker.ietf.org/doc/html/rfc6749#section-5.1) */
export interface Token {
access_token: string;
refresh_token: string;
token_type: string;
- /** created at in seconds */
+ /** Creation time of the token, unix timpstamp in seconds */
created_at: number;
- /** expiry in seconds */
+ /**
+ * The lifetime in seconds of the access token.
+ * For example, the value "3600" denotes that the access token will expire in one hour from the time the response was generated.
+ */
expires_in: number;
scope: string;
resource_server: string;
OAuth authorization method to request guest consent to access data via the Link API.
+The only supported flow is authorization code grant with PKCE PKCE +If the user is not logged in yet this will show the login screen and redirect the guest to the consent screen after they log in. +After the guest consents, they will be redirected to the redirect URI with an authorization code. +If the user is already logged and has granted consent in the redirection happens immediately.
+You can pass the AuthorizeOptions.forceLogout option to force the guest to log in, even if they have an active session.
+You can also choose to display the sign up form when the user is not logged in yet by setting the AuthorizeOptions.authAction option.
+