Skip to content

Commit bff80c0

Browse files
committed
adding dev-v0.11.11 tag to this commit to ensure building
1 parent daece26 commit bff80c0

File tree

6 files changed

+217
-9
lines changed

6 files changed

+217
-9
lines changed

html/supertokens_python/constants.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ <h1 class="title">Module <code>supertokens_python.constants</code></h1>
4040
# License for the specific language governing permissions and limitations
4141
# under the License.
4242
SUPPORTED_CDI_VERSIONS = [&#34;2.9&#34;, &#34;2.10&#34;, &#34;2.11&#34;, &#34;2.12&#34;, &#34;2.13&#34;, &#34;2.14&#34;, &#34;2.15&#34;]
43-
VERSION = &#34;0.11.10&#34;
43+
VERSION = &#34;0.11.11&#34;
4444
TELEMETRY = &#34;/telemetry&#34;
4545
USER_COUNT = &#34;/users/count&#34;
4646
USER_DELETE = &#34;/user/remove&#34;
@@ -53,7 +53,7 @@ <h1 class="title">Module <code>supertokens_python.constants</code></h1>
5353
FDI_KEY_HEADER = &#34;fdi-version&#34;
5454
API_VERSION = &#34;/apiversion&#34;
5555
API_VERSION_HEADER = &#34;cdi-version&#34;
56-
DASHBOARD_VERSION = &#34;0.2&#34;</code></pre>
56+
DASHBOARD_VERSION = &#34;0.3&#34;</code></pre>
5757
</details>
5858
</section>
5959
<section>

html/supertokens_python/recipe/dashboard/api/index.html

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ <h2 class="section-title" id="header-functions">Functions</h2>
427427
</details>
428428
</dd>
429429
<dt id="supertokens_python.recipe.dashboard.api.handle_user_get"><code class="name flex">
430-
<span>async def <span class="ident">handle_user_get</span></span>(<span>_api_interface: <a title="supertokens_python.recipe.dashboard.interfaces.APIInterface" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIInterface">APIInterface</a>, api_options: <a title="supertokens_python.recipe.dashboard.interfaces.APIOptions" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIOptions">APIOptions</a>) ‑> Union[<a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError">UserGetAPINoUserFoundError</a><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse">UserGetAPIOkResponse</a>]</span>
430+
<span>async def <span class="ident">handle_user_get</span></span>(<span>_api_interface: <a title="supertokens_python.recipe.dashboard.interfaces.APIInterface" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIInterface">APIInterface</a>, api_options: <a title="supertokens_python.recipe.dashboard.interfaces.APIOptions" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIOptions">APIOptions</a>) ‑> Union[<a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError">UserGetAPINoUserFoundError</a><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse">UserGetAPIOkResponse</a><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError" href="../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError">UserGetAPIRecipeNotInitialisedError</a>]</span>
431431
</code></dt>
432432
<dd>
433433
<div class="desc"></div>
@@ -437,7 +437,11 @@ <h2 class="section-title" id="header-functions">Functions</h2>
437437
</summary>
438438
<pre><code class="python">async def handle_user_get(
439439
_api_interface: APIInterface, api_options: APIOptions
440-
) -&gt; Union[UserGetAPINoUserFoundError, UserGetAPIOkResponse]:
440+
) -&gt; Union[
441+
UserGetAPINoUserFoundError,
442+
UserGetAPIOkResponse,
443+
UserGetAPIRecipeNotInitialisedError,
444+
]:
441445
user_id = api_options.request.get_query_param(&#34;userId&#34;)
442446
recipe_id = api_options.request.get_query_param(&#34;recipeId&#34;)
443447

@@ -450,6 +454,9 @@ <h2 class="section-title" id="header-functions">Functions</h2>
450454
if not is_valid_recipe_id(recipe_id):
451455
raise_bad_input_exception(&#34;Invalid recipe id&#34;)
452456

457+
if not is_recipe_initialised(recipe_id):
458+
return UserGetAPIRecipeNotInitialisedError()
459+
453460
user_response = await get_user_for_recipe_id(user_id, recipe_id)
454461
if user_response is None:
455462
return UserGetAPINoUserFoundError()

html/supertokens_python/recipe/dashboard/api/userdetails/user_get.html

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,18 @@ <h1 class="title">Module <code>supertokens_python.recipe.dashboard.api.userdetai
3838
APIOptions,
3939
UserGetAPINoUserFoundError,
4040
UserGetAPIOkResponse,
41+
UserGetAPIRecipeNotInitialisedError,
4142
)
42-
from ...utils import is_valid_recipe_id
43+
from ...utils import is_recipe_initialised, is_valid_recipe_id
4344

4445

4546
async def handle_user_get(
4647
_api_interface: APIInterface, api_options: APIOptions
47-
) -&gt; Union[UserGetAPINoUserFoundError, UserGetAPIOkResponse]:
48+
) -&gt; Union[
49+
UserGetAPINoUserFoundError,
50+
UserGetAPIOkResponse,
51+
UserGetAPIRecipeNotInitialisedError,
52+
]:
4853
user_id = api_options.request.get_query_param(&#34;userId&#34;)
4954
recipe_id = api_options.request.get_query_param(&#34;recipeId&#34;)
5055

@@ -57,6 +62,9 @@ <h1 class="title">Module <code>supertokens_python.recipe.dashboard.api.userdetai
5762
if not is_valid_recipe_id(recipe_id):
5863
raise_bad_input_exception(&#34;Invalid recipe id&#34;)
5964

65+
if not is_recipe_initialised(recipe_id):
66+
return UserGetAPIRecipeNotInitialisedError()
67+
6068
user_response = await get_user_for_recipe_id(user_id, recipe_id)
6169
if user_response is None:
6270
return UserGetAPINoUserFoundError()
@@ -89,7 +97,7 @@ <h1 class="title">Module <code>supertokens_python.recipe.dashboard.api.userdetai
8997
<h2 class="section-title" id="header-functions">Functions</h2>
9098
<dl>
9199
<dt id="supertokens_python.recipe.dashboard.api.userdetails.user_get.handle_user_get"><code class="name flex">
92-
<span>async def <span class="ident">handle_user_get</span></span>(<span>_api_interface: <a title="supertokens_python.recipe.dashboard.interfaces.APIInterface" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIInterface">APIInterface</a>, api_options: <a title="supertokens_python.recipe.dashboard.interfaces.APIOptions" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIOptions">APIOptions</a>) ‑> Union[<a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError">UserGetAPINoUserFoundError</a><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse">UserGetAPIOkResponse</a>]</span>
100+
<span>async def <span class="ident">handle_user_get</span></span>(<span>_api_interface: <a title="supertokens_python.recipe.dashboard.interfaces.APIInterface" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIInterface">APIInterface</a>, api_options: <a title="supertokens_python.recipe.dashboard.interfaces.APIOptions" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.APIOptions">APIOptions</a>) ‑> Union[<a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError">UserGetAPINoUserFoundError</a><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse">UserGetAPIOkResponse</a><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError" href="../../interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError">UserGetAPIRecipeNotInitialisedError</a>]</span>
93101
</code></dt>
94102
<dd>
95103
<div class="desc"></div>
@@ -99,7 +107,11 @@ <h2 class="section-title" id="header-functions">Functions</h2>
99107
</summary>
100108
<pre><code class="python">async def handle_user_get(
101109
_api_interface: APIInterface, api_options: APIOptions
102-
) -&gt; Union[UserGetAPINoUserFoundError, UserGetAPIOkResponse]:
110+
) -&gt; Union[
111+
UserGetAPINoUserFoundError,
112+
UserGetAPIOkResponse,
113+
UserGetAPIRecipeNotInitialisedError,
114+
]:
103115
user_id = api_options.request.get_query_param(&#34;userId&#34;)
104116
recipe_id = api_options.request.get_query_param(&#34;recipeId&#34;)
105117

@@ -112,6 +124,9 @@ <h2 class="section-title" id="header-functions">Functions</h2>
112124
if not is_valid_recipe_id(recipe_id):
113125
raise_bad_input_exception(&#34;Invalid recipe id&#34;)
114126

127+
if not is_recipe_initialised(recipe_id):
128+
return UserGetAPIRecipeNotInitialisedError()
129+
115130
user_response = await get_user_for_recipe_id(user_id, recipe_id)
116131
if user_response is None:
117132
return UserGetAPINoUserFoundError()

html/supertokens_python/recipe/dashboard/interfaces.html

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,13 @@ <h1 class="title">Module <code>supertokens_python.recipe.dashboard.interfaces</c
160160
return {&#34;status&#34;: self.status}
161161

162162

163+
class UserGetAPIRecipeNotInitialisedError(APIResponse):
164+
status: str = &#34;RECIPE_NOT_INITIALISED&#34;
165+
166+
def to_json(self) -&gt; Dict[str, Any]:
167+
return {&#34;status&#34;: self.status}
168+
169+
163170
class FeatureNotEnabledError(APIResponse):
164171
status: str = &#34;FEATURE_NOT_ENABLED_ERROR&#34;
165172

@@ -946,6 +953,51 @@ <h3>Methods</h3>
946953
</dd>
947954
</dl>
948955
</dd>
956+
<dt id="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError"><code class="flex name class">
957+
<span>class <span class="ident">UserGetAPIRecipeNotInitialisedError</span></span>
958+
</code></dt>
959+
<dd>
960+
<div class="desc"><p>Helper class that provides a standard way to create an ABC using
961+
inheritance.</p></div>
962+
<details class="source">
963+
<summary>
964+
<span>Expand source code</span>
965+
</summary>
966+
<pre><code class="python">class UserGetAPIRecipeNotInitialisedError(APIResponse):
967+
status: str = &#34;RECIPE_NOT_INITIALISED&#34;
968+
969+
def to_json(self) -&gt; Dict[str, Any]:
970+
return {&#34;status&#34;: self.status}</code></pre>
971+
</details>
972+
<h3>Ancestors</h3>
973+
<ul class="hlist">
974+
<li><a title="supertokens_python.types.APIResponse" href="../../types.html#supertokens_python.types.APIResponse">APIResponse</a></li>
975+
<li>abc.ABC</li>
976+
</ul>
977+
<h3>Class variables</h3>
978+
<dl>
979+
<dt id="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError.status"><code class="name">var <span class="ident">status</span> : str</code></dt>
980+
<dd>
981+
<div class="desc"></div>
982+
</dd>
983+
</dl>
984+
<h3>Methods</h3>
985+
<dl>
986+
<dt id="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError.to_json"><code class="name flex">
987+
<span>def <span class="ident">to_json</span></span>(<span>self) ‑> Dict[str, Any]</span>
988+
</code></dt>
989+
<dd>
990+
<div class="desc"></div>
991+
<details class="source">
992+
<summary>
993+
<span>Expand source code</span>
994+
</summary>
995+
<pre><code class="python">def to_json(self) -&gt; Dict[str, Any]:
996+
return {&#34;status&#34;: self.status}</code></pre>
997+
</details>
998+
</dd>
999+
</dl>
1000+
</dd>
9491001
<dt id="supertokens_python.recipe.dashboard.interfaces.UserMetadataGetAPIOkResponse"><code class="flex name class">
9501002
<span>class <span class="ident">UserMetadataGetAPIOkResponse</span></span>
9511003
<span>(</span><span>data: Dict[str, Any])</span>
@@ -1575,6 +1627,13 @@ <h4><code><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkR
15751627
</ul>
15761628
</li>
15771629
<li>
1630+
<h4><code><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError" href="#supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError">UserGetAPIRecipeNotInitialisedError</a></code></h4>
1631+
<ul class="">
1632+
<li><code><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError.status" href="#supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError.status">status</a></code></li>
1633+
<li><code><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError.to_json" href="#supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError.to_json">to_json</a></code></li>
1634+
</ul>
1635+
</li>
1636+
<li>
15781637
<h4><code><a title="supertokens_python.recipe.dashboard.interfaces.UserMetadataGetAPIOkResponse" href="#supertokens_python.recipe.dashboard.interfaces.UserMetadataGetAPIOkResponse">UserMetadataGetAPIOkResponse</a></code></h4>
15791638
<ul class="">
15801639
<li><code><a title="supertokens_python.recipe.dashboard.interfaces.UserMetadataGetAPIOkResponse.status" href="#supertokens_python.recipe.dashboard.interfaces.UserMetadataGetAPIOkResponse.status">status</a></code></li>

html/supertokens_python/recipe/dashboard/utils.html

Lines changed: 127 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,15 @@ <h1 class="title">Module <code>supertokens_python.recipe.dashboard.utils</code><
5555
from supertokens_python.recipe.thirdparty.asyncio import (
5656
get_user_by_id as tp_get_user_by_idx,
5757
)
58+
from supertokens_python.recipe.thirdpartyemailpassword import (
59+
ThirdPartyEmailPasswordRecipe,
60+
)
5861
from supertokens_python.recipe.thirdpartyemailpassword.asyncio import (
5962
get_user_by_id as tpep_get_user_by_id,
6063
)
64+
from supertokens_python.recipe.thirdpartypasswordless import (
65+
ThirdPartyPasswordlessRecipe,
66+
)
6167
from supertokens_python.recipe.thirdpartypasswordless.asyncio import (
6268
get_user_by_id as tppless_get_user_by_id,
6369
)
@@ -351,7 +357,62 @@ <h1 class="title">Module <code>supertokens_python.recipe.dashboard.utils</code><
351357
if user is not None and recipe is not None:
352358
return GetUserForRecipeIdResult(user, recipe)
353359

354-
return None</code></pre>
360+
return None
361+
362+
363+
def is_recipe_initialised(recipeId: str) -&gt; bool:
364+
isRecipeInitialised: bool = False
365+
366+
if recipeId == EmailPasswordRecipe.recipe_id:
367+
try:
368+
EmailPasswordRecipe.get_instance()
369+
isRecipeInitialised = True
370+
except Exception:
371+
pass
372+
373+
if not isRecipeInitialised:
374+
try:
375+
ThirdPartyEmailPasswordRecipe.get_instance()
376+
isRecipeInitialised = True
377+
except Exception:
378+
pass
379+
380+
elif recipeId == PasswordlessRecipe.recipe_id:
381+
try:
382+
PasswordlessRecipe.get_instance()
383+
isRecipeInitialised = True
384+
except Exception:
385+
pass
386+
387+
if not isRecipeInitialised:
388+
try:
389+
ThirdPartyPasswordlessRecipe.get_instance()
390+
isRecipeInitialised = True
391+
except Exception:
392+
pass
393+
394+
elif recipeId == ThirdPartyRecipe.recipe_id:
395+
try:
396+
ThirdPartyRecipe.get_instance()
397+
isRecipeInitialised = True
398+
except Exception:
399+
pass
400+
401+
if not isRecipeInitialised:
402+
try:
403+
ThirdPartyEmailPasswordRecipe.get_instance()
404+
isRecipeInitialised = True
405+
except Exception:
406+
pass
407+
408+
if not isRecipeInitialised:
409+
try:
410+
ThirdPartyPasswordlessRecipe.get_instance()
411+
isRecipeInitialised = True
412+
except Exception:
413+
pass
414+
415+
return isRecipeInitialised</code></pre>
355416
</details>
356417
</section>
357418
<section>
@@ -499,6 +560,70 @@ <h2 class="section-title" id="header-functions">Functions</h2>
499560
return False</code></pre>
500561
</details>
501562
</dd>
563+
<dt id="supertokens_python.recipe.dashboard.utils.is_recipe_initialised"><code class="name flex">
564+
<span>def <span class="ident">is_recipe_initialised</span></span>(<span>recipeId: str) ‑> bool</span>
565+
</code></dt>
566+
<dd>
567+
<div class="desc"></div>
568+
<details class="source">
569+
<summary>
570+
<span>Expand source code</span>
571+
</summary>
572+
<pre><code class="python">def is_recipe_initialised(recipeId: str) -&gt; bool:
573+
isRecipeInitialised: bool = False
574+
575+
if recipeId == EmailPasswordRecipe.recipe_id:
576+
try:
577+
EmailPasswordRecipe.get_instance()
578+
isRecipeInitialised = True
579+
except Exception:
580+
pass
581+
582+
if not isRecipeInitialised:
583+
try:
584+
ThirdPartyEmailPasswordRecipe.get_instance()
585+
isRecipeInitialised = True
586+
except Exception:
587+
pass
588+
589+
elif recipeId == PasswordlessRecipe.recipe_id:
590+
try:
591+
PasswordlessRecipe.get_instance()
592+
isRecipeInitialised = True
593+
except Exception:
594+
pass
595+
596+
if not isRecipeInitialised:
597+
try:
598+
ThirdPartyPasswordlessRecipe.get_instance()
599+
isRecipeInitialised = True
600+
except Exception:
601+
pass
602+
603+
elif recipeId == ThirdPartyRecipe.recipe_id:
604+
try:
605+
ThirdPartyRecipe.get_instance()
606+
isRecipeInitialised = True
607+
except Exception:
608+
pass
609+
610+
if not isRecipeInitialised:
611+
try:
612+
ThirdPartyEmailPasswordRecipe.get_instance()
613+
isRecipeInitialised = True
614+
except Exception:
615+
pass
616+
617+
if not isRecipeInitialised:
618+
try:
619+
ThirdPartyPasswordlessRecipe.get_instance()
620+
isRecipeInitialised = True
621+
except Exception:
622+
pass
623+
624+
return isRecipeInitialised</code></pre>
625+
</details>
626+
</dd>
502627
<dt id="supertokens_python.recipe.dashboard.utils.is_valid_recipe_id"><code class="name flex">
503628
<span>def <span class="ident">is_valid_recipe_id</span></span>(<span>recipe_id: str) ‑> bool</span>
504629
</code></dt>
@@ -865,6 +990,7 @@ <h2>Index</h2>
865990
<li><code><a title="supertokens_python.recipe.dashboard.utils.get_api_if_matched" href="#supertokens_python.recipe.dashboard.utils.get_api_if_matched">get_api_if_matched</a></code></li>
866991
<li><code><a title="supertokens_python.recipe.dashboard.utils.get_user_for_recipe_id" href="#supertokens_python.recipe.dashboard.utils.get_user_for_recipe_id">get_user_for_recipe_id</a></code></li>
867992
<li><code><a title="supertokens_python.recipe.dashboard.utils.is_api_path" href="#supertokens_python.recipe.dashboard.utils.is_api_path">is_api_path</a></code></li>
993+
<li><code><a title="supertokens_python.recipe.dashboard.utils.is_recipe_initialised" href="#supertokens_python.recipe.dashboard.utils.is_recipe_initialised">is_recipe_initialised</a></code></li>
868994
<li><code><a title="supertokens_python.recipe.dashboard.utils.is_valid_recipe_id" href="#supertokens_python.recipe.dashboard.utils.is_valid_recipe_id">is_valid_recipe_id</a></code></li>
869995
<li><code><a title="supertokens_python.recipe.dashboard.utils.validate_and_normalise_user_input" href="#supertokens_python.recipe.dashboard.utils.validate_and_normalise_user_input">validate_and_normalise_user_input</a></code></li>
870996
</ul>

html/supertokens_python/types.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ <h3>Subclasses</h3>
147147
<li><a title="supertokens_python.recipe.dashboard.interfaces.UserEmailVerifyTokenPostAPIOkResponse" href="recipe/dashboard/interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserEmailVerifyTokenPostAPIOkResponse">UserEmailVerifyTokenPostAPIOkResponse</a></li>
148148
<li><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError" href="recipe/dashboard/interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPINoUserFoundError">UserGetAPINoUserFoundError</a></li>
149149
<li><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse" href="recipe/dashboard/interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIOkResponse">UserGetAPIOkResponse</a></li>
150+
<li><a title="supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError" href="recipe/dashboard/interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserGetAPIRecipeNotInitialisedError">UserGetAPIRecipeNotInitialisedError</a></li>
150151
<li><a title="supertokens_python.recipe.dashboard.interfaces.UserMetadataGetAPIOkResponse" href="recipe/dashboard/interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserMetadataGetAPIOkResponse">UserMetadataGetAPIOkResponse</a></li>
151152
<li><a title="supertokens_python.recipe.dashboard.interfaces.UserMetadataPutAPIResponse" href="recipe/dashboard/interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserMetadataPutAPIResponse">UserMetadataPutAPIResponse</a></li>
152153
<li><a title="supertokens_python.recipe.dashboard.interfaces.UserPasswordPutAPIInvalidPasswordErrorResponse" href="recipe/dashboard/interfaces.html#supertokens_python.recipe.dashboard.interfaces.UserPasswordPutAPIInvalidPasswordErrorResponse">UserPasswordPutAPIInvalidPasswordErrorResponse</a></li>

0 commit comments

Comments
 (0)