Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/0.9' into feat/mfa
Browse files Browse the repository at this point in the history
  • Loading branch information
porcellus committed Feb 29, 2024
2 parents 1bf1959 + 13d4362 commit ee721d6
Show file tree
Hide file tree
Showing 102 changed files with 2,477 additions and 292 deletions.
3 changes: 3 additions & 0 deletions .circleci/config_continue.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ jobs:
- checkout
- attach_workspace:
at: /
- run:
name: Do Unit Tests
command: npm run test-unit
- run:
name: Do Test
no_output_timeout: 30m
Expand Down
25 changes: 23 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [unreleased]

## [0.9.0] - 2023-11-21
## [0.10.0] - 2024-03-03

### Overview

Expand All @@ -31,9 +31,30 @@ To use this you'll need compatible versions:
### Changes

- Added support for FDI 1.19 (Node SDK>= 17.0.0), but keeping support FDI version 1.17 and 1.18 (node >= 15.0.0, golang>=0.13, python>=0.15.0)
- Added `firstFactors` into the return type of `getLoginMethods`
- Added `firstFactors` into the return type of `getLoginMethods` and removed the enabled flags of different login methods.
- For older FDI versions, the firstFactors array will be calculated based on those enabled flags.
- Added recipes `TOTP` and `MultiFactorAuth`

## [0.9.1] - 2024-02-07

### Changes

- Added `dateprovider.js` bundle file to enable importing `DateProvider` via a script tag

## [0.9.0] - 2024-01-18

## Breaking Changes

- The default `DateProvider` implementation relies on `localStorage`. If your environment lacks support for `localStorage`, you must provide custom implementations for either the `DateProvider` or `localStorage`.

### Changes

- `EmailVerificationClaim` now uses `DateProvider` to account for clock skew.
- Exporting the `DateProvider` from supertokens-website, that both built-in and custom validators can use instead of `Date.now` to get an estimate of the server clock.
- Added the `dateProvider` prop to the configuration that can be used to customize the built-in `DateProvider`.
- Added `calculateClockSkewInMillis` as an overrideable function to the Session recipe that estimates the time difference between the backend and the client.
- Fix "MultiTenancy not initialized" error being thrown instead of "SuperTokens not initialized" when calling recipe methods directly without initializing SuperTokens first.

## [0.8.0] - 2023-09-25

### Overview
Expand Down
1 change: 1 addition & 0 deletions bundle/dateprovider.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bundle/emailpassword.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/emailverification.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/multifactorauth.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/multitenancy.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/passwordless.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/session.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/supertokens.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/thirdparty.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/thirdpartyemailpassword.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/thirdpartypasswordless.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/totp.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bundle/userroles.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/assets/search.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/classes/cookieHandler.CookieHandlerReference.html

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions docs/classes/dateProvider.DateProviderReference.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DateProviderReference | supertokens-web-js</title><meta name="description" content="Documentation for supertokens-web-js"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">supertokens-web-js</a></div><div class="table-cell" id="tsd-widgets"><div id="tsd-filter"><a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a><div class="tsd-filter-group"><div class="tsd-select" id="tsd-filter-visibility"><span class="tsd-select-label">All</span><ul class="tsd-select-list"><li data-value="public">Public</li><li data-value="protected">Public/Protected</li><li data-value="private" class="selected">All</li></ul></div> <input type="checkbox" id="tsd-filter-inherited" checked/><label class="tsd-widget" for="tsd-filter-inherited">Inherited</label><input type="checkbox" id="tsd-filter-externals" checked/><label class="tsd-widget" for="tsd-filter-externals">Externals</label></div></div><a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a></div></div></div></div><div class="tsd-page-title"><div class="container"><ul class="tsd-breadcrumb"><li><a href="../modules.html">supertokens-web-js</a></li><li><a href="../modules/dateProvider.html">dateProvider</a></li><li><a href="dateProvider.DateProviderReference.html">DateProviderReference</a></li></ul><h1>Class DateProviderReference </h1></div></div></header><div class="container container-main"><div class="row"><div class="col-8 col-content"><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><div class="lead">
<p>A utility class for managing a reference to a DateProviderInterface, allowing customization of time-related operations.
This class is designed to address clock skew issues between the server and client by providing a consistent mechanism
for obtaining current time adjusted for clock skew.</p>
</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><span class="target">DateProviderReference</span></li></ul></section><section class="tsd-panel-group tsd-index-group"><h2>Index</h2><section class="tsd-panel tsd-index-panel"><div class="tsd-index-content"><section class="tsd-index-section tsd-is-external"><h3>Constructors</h3><ul class="tsd-index-list"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-external"><a href="dateProvider.DateProviderReference.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-external"><h3>Properties</h3><ul class="tsd-index-list"><li class="tsd-kind-property tsd-parent-kind-class tsd-is-external"><a href="dateProvider.DateProviderReference.html#dateProvider" class="tsd-kind-icon">date<wbr/>Provider</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private tsd-is-static tsd-is-external"><a href="dateProvider.DateProviderReference.html#instance" class="tsd-kind-icon">instance</a></li></ul></section><section class="tsd-index-section tsd-is-external"><h3>Methods</h3><ul class="tsd-index-list"><li class="tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><a href="dateProvider.DateProviderReference.html#getReferenceOrThrow" class="tsd-kind-icon">get<wbr/>Reference<wbr/>Or<wbr/>Throw</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><a href="dateProvider.DateProviderReference.html#init" class="tsd-kind-icon">init</a></li></ul></section></div></section></section><section class="tsd-panel-group tsd-member-group tsd-is-external"><h2>Constructors</h2><section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-external"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link">constructor<a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-external"><li class="tsd-signature tsd-kind-icon">new <wbr/>Date<wbr/>Provider<wbr/>Reference<span class="tsd-signature-symbol">(</span>dateProviderInput<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">DateProviderInput</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="dateProvider.DateProviderReference.html" class="tsd-signature-type" data-tsd-kind="Class">DateProviderReference</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in node_modules/supertokens-website/lib/build/utils/dateProvider/index.d.ts:12</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> dateProviderInput: <span class="tsd-signature-type">DateProviderInput</span></h5></li></ul><h4 class="tsd-returns-title">Returns <a href="dateProvider.DateProviderReference.html" class="tsd-signature-type" data-tsd-kind="Class">DateProviderReference</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-external"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-external"><a id="dateProvider" class="tsd-anchor"></a><h3 class="tsd-anchor-link">date<wbr/>Provider<a href="#dateProvider" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">date<wbr/>Provider<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">DateProviderInterface</span></div><aside class="tsd-sources"><ul><li>Defined in node_modules/supertokens-website/lib/build/utils/dateProvider/index.d.ts:11</li></ul></aside></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private tsd-is-static tsd-is-external"><a id="instance" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagStatic">Static</span> <span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagOptional">Optional</span> instance<a href="#instance" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">instance<span class="tsd-signature-symbol">?:</span> <span class="tsd-signature-type">any</span></div><aside class="tsd-sources"><ul><li>Defined in node_modules/supertokens-website/lib/build/utils/dateProvider/index.d.ts:10</li></ul></aside></section></section><section class="tsd-panel-group tsd-member-group tsd-is-external"><h2>Methods</h2><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><a id="getReferenceOrThrow" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagStatic">Static</span> get<wbr/>Reference<wbr/>Or<wbr/>Throw<a href="#getReferenceOrThrow" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><li class="tsd-signature tsd-kind-icon">get<wbr/>Reference<wbr/>Or<wbr/>Throw<span class="tsd-signature-symbol">(</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="dateProvider.DateProviderReference.html" class="tsd-signature-type" data-tsd-kind="Class">DateProviderReference</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in node_modules/supertokens-website/lib/build/utils/dateProvider/index.d.ts:14</li></ul></aside><h4 class="tsd-returns-title">Returns <a href="dateProvider.DateProviderReference.html" class="tsd-signature-type" data-tsd-kind="Class">DateProviderReference</a></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><a id="init" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagStatic">Static</span> init<a href="#init" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><li class="tsd-signature tsd-kind-icon">init<span class="tsd-signature-symbol">(</span>dateProviderInput<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">DateProviderInput</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in node_modules/supertokens-website/lib/build/utils/dateProvider/index.d.ts:13</li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5><span class="tsd-flag ts-flagOptional">Optional</span> dateProviderInput: <span class="tsd-signature-type">DateProviderInput</span></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section></section></div><div class="col-4 col-menu menu-sticky-wrap menu-highlight"><nav class="tsd-navigation primary"><ul><li class=""><a href="../modules.html">Modules</a></li><li class=" tsd-kind-module"><a href="../modules/cookieHandler.html">cookie<wbr/>Handler</a></li><li class="current tsd-kind-module"><a href="../modules/dateProvider.html">date<wbr/>Provider</a></li><li class=" tsd-kind-module"><a href="../modules/index.html">index</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_authRecipe.html">recipe/auth<wbr/>Recipe</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_emailpassword.html">recipe/emailpassword</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_emailverification.html">recipe/emailverification</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_multitenancy.html">recipe/multitenancy</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_passwordless.html">recipe/passwordless</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_recipeModule.html">recipe/recipe<wbr/>Module</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_session.html">recipe/session</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_thirdparty.html">recipe/thirdparty</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_thirdpartyemailpassword.html">recipe/thirdpartyemailpassword</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_thirdpartypasswordless.html">recipe/thirdpartypasswordless</a></li><li class=" tsd-kind-module"><a href="../modules/recipe_userroles.html">recipe/userroles</a></li><li class=" tsd-kind-module"><a href="../modules/windowHandler.html">window<wbr/>Handler</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class tsd-parent-kind-module tsd-is-external"><a href="dateProvider.DateProviderReference.html" class="tsd-kind-icon">Date<wbr/>Provider<wbr/>Reference</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-external"><a href="dateProvider.DateProviderReference.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-external"><a href="dateProvider.DateProviderReference.html#dateProvider" class="tsd-kind-icon">date<wbr/>Provider</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private tsd-is-static tsd-is-external"><a href="dateProvider.DateProviderReference.html#instance" class="tsd-kind-icon">instance</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><a href="dateProvider.DateProviderReference.html#getReferenceOrThrow" class="tsd-kind-icon">get<wbr/>Reference<wbr/>Or<wbr/>Throw</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-static tsd-is-external"><a href="dateProvider.DateProviderReference.html#init" class="tsd-kind-icon">init</a></li></ul></li></ul></nav></div></div></div><footer class="with-border-bottom"><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li><li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li><li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li><li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li><li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="container tsd-generator"><p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></div><div class="overlay"></div><script src="../assets/main.js"></script></body></html>
Loading

0 comments on commit ee721d6

Please sign in to comment.