Skip to content

Commit 3e7824f

Browse files
committed
feat: migrate to authorizer-js v3.x, bump to v1.0.0
1 parent 0dfbbd3 commit 3e7824f

11 files changed

Lines changed: 109 additions & 78 deletions

.github/workflows/ci.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: CI
2+
on: [push, pull_request]
3+
jobs:
4+
build:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/checkout@v4
8+
- uses: actions/setup-node@v4
9+
with:
10+
node-version: '20'
11+
- run: npm install
12+
- run: npm run build
13+
- run: npm run check

package-lock.json

Lines changed: 28 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@authorizerdev/authorizer-svelte",
3-
"version": "0.1.9",
3+
"version": "1.0.0",
44
"license": "MIT",
55
"author": "Lakhan Samani",
66
"scripts": {
@@ -33,6 +33,6 @@
3333
},
3434
"type": "module",
3535
"dependencies": {
36-
"@authorizerdev/authorizer-js": "^1.2.6"
36+
"@authorizerdev/authorizer-js": "^3.2.1"
3737
}
3838
}

src/lib/components/AuthorizerBasicAuthLogin.svelte

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { ButtonAppearance, MessageType, Views } from '../constants';
77
import { isValidEmail } from '../utils/common';
88
import type { AuthorizerState } from '../types';
9-
import type { LoginInput } from '@authorizerdev/authorizer-js';
9+
import type { LoginRequest } from '@authorizerdev/authorizer-js';
1010
1111
export let setView: Function | undefined = undefined;
1212
export let onLogin: Function | undefined = undefined;
@@ -59,7 +59,7 @@
5959
const onSubmit = async () => {
6060
componentState.loading = true;
6161
try {
62-
const data: LoginInput = {
62+
const data: LoginRequest = {
6363
email: formData?.email || '',
6464
password: formData?.password || ''
6565
};
@@ -72,24 +72,24 @@
7272
if (roles && roles.length) {
7373
data.roles = roles;
7474
}
75-
const res = await state.authorizerRef.login(data);
76-
if (res && res?.should_show_email_otp_screen) {
75+
const { data: res, errors } = await state.authorizerRef.login(data);
76+
if (errors && errors.length) {
77+
componentState.loading = false;
78+
componentState.error = errors[0]?.message || 'Internal error!';
79+
return;
80+
}
81+
if (res?.should_show_email_otp_screen) {
7782
otpData = {
7883
isScreenVisible: true,
79-
email: data?.email
84+
email: data.email || null
8085
};
8186
return;
8287
}
8388
if (res) {
8489
componentState.error = null;
8590
state.setAuthData({
8691
user: res.user || null,
87-
token: {
88-
access_token: res.access_token,
89-
expires_in: res.expires_in,
90-
refresh_token: res.refresh_token,
91-
id_token: res.id_token
92-
},
92+
token: res,
9393
config: state.config,
9494
loading: false
9595
});

src/lib/components/AuthorizerForgotPassword.svelte

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,17 @@
4040
const onSubmit = async () => {
4141
try {
4242
componentState.loading = true;
43-
const res = await state.authorizerRef.forgotPassword({
43+
const { data: res, errors } = await state.authorizerRef.forgotPassword({
4444
email: componentState.email || '',
4545
state: urlProps.state || '',
4646
redirect_uri: urlProps.redirect_uri || state.config.redirectURL || window.location.origin
4747
});
4848
componentState.loading = false;
49-
if (res && res.message) {
49+
if (errors && errors.length) {
50+
componentState.error = errors[0]?.message || '';
51+
return;
52+
}
53+
if (res?.message) {
5054
componentState.error = null;
5155
componentState.successMessage = res.message;
5256
}

src/lib/components/AuthorizerMagicLinkLogin.svelte

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import { isValidEmail } from '../utils/common';
66
import Message from './Message.svelte';
77
import type { AuthorizerState } from '../types';
8-
import type { MagicLinkLoginInput } from '@authorizerdev/authorizer-js';
8+
import type { MagicLinkLoginRequest } from '@authorizerdev/authorizer-js';
99
1010
export let onMagicLinkLogin: Function | undefined = undefined;
1111
export let urlProps: {
@@ -45,7 +45,7 @@
4545
try {
4646
componentState.loading = true;
4747
48-
const data: MagicLinkLoginInput = {
48+
const data: MagicLinkLoginRequest = {
4949
email: componentState.email || '',
5050
state: urlProps.state || '',
5151
redirect_uri: urlProps.redirect_uri || ''
@@ -55,11 +55,15 @@
5555
data.roles = roles;
5656
}
5757
58-
const res = await state.authorizerRef.magicLinkLogin(data);
58+
const { data: res, errors } = await state.authorizerRef.magicLinkLogin(data);
5959
componentState.loading = false;
60+
if (errors && errors.length) {
61+
componentState.error = errors[0]?.message || '';
62+
return;
63+
}
6064
if (res) {
6165
componentState.error = null;
62-
componentState.successMessage = res.message || ``;
66+
componentState.successMessage = res?.message || ``;
6367
if (onMagicLinkLogin) {
6468
onMagicLinkLogin(res);
6569
}

src/lib/components/AuthorizerProvider.svelte

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,20 +72,14 @@
7272
let intervalRef: any;
7373
7474
const getToken = async () => {
75-
const metaRes = await state.authorizerRef.getMetaData();
75+
const { data: metaRes } = await state.authorizerRef.getMetaData();
7676
try {
77-
const res = await state.authorizerRef.getSession();
78-
if (res.access_token && res.user) {
79-
const token = {
80-
access_token: res.access_token,
81-
expires_in: res.expires_in,
82-
id_token: res.id_token,
83-
refresh_token: res.refresh_token || ''
84-
};
77+
const { data: res } = await state.authorizerRef.getSession();
78+
if (res?.access_token && res?.user) {
8579
dispatch({
8680
type: AuthorizerProviderActionType.SET_AUTH_DATA,
8781
payload: {
88-
token,
82+
token: res,
8983
user: res.user,
9084
config: metaRes,
9185
loading: false
@@ -94,7 +88,7 @@
9488
if (intervalRef) clearInterval(intervalRef);
9589
intervalRef = setInterval(() => {
9690
getToken();
97-
}, res.expires_in * 1000);
91+
}, (res.expires_in ?? 0) * 1000);
9892
} else {
9993
dispatch({
10094
type: AuthorizerProviderActionType.SET_AUTH_DATA,
@@ -144,7 +138,7 @@
144138
if (intervalRef) clearInterval(intervalRef);
145139
intervalRef = setInterval(() => {
146140
getToken();
147-
}, token.expires_in * 1000);
141+
}, (token.expires_in ?? 0) * 1000);
148142
}
149143
},
150144
setAuthData: (data: AuthorizerInputState) => {
@@ -156,7 +150,7 @@
156150
if (intervalRef) clearInterval(intervalRef);
157151
intervalRef = setInterval(() => {
158152
getToken();
159-
}, data.token.expires_in * 1000);
153+
}, (data.token.expires_in ?? 0) * 1000);
160154
}
161155
},
162156
setUser: (user: User) => {

src/lib/components/AuthorizerSignup.svelte

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<script lang="ts">
2-
import type { SignupInput } from '@authorizerdev/authorizer-js';
2+
import type { SignupRequest } from '@authorizerdev/authorizer-js';
33
import { StyledButton, StyledFormGroup, StyledFooter, StyledLink } from '../styledComponents';
44
import { store } from '../store';
55
import { Views, MessageType, ButtonAppearance } from '../constants';
@@ -71,7 +71,7 @@
7171
const onSubmit = async () => {
7272
try {
7373
componentState.loading = true;
74-
const data: SignupInput = {
74+
const data: SignupRequest = {
7575
email: formData.email || '',
7676
password: formData.password || '',
7777
confirm_password: formData.confirmPassword || ''
@@ -88,19 +88,19 @@
8888
if (roles && roles.length) {
8989
data.roles = roles;
9090
}
91-
const res = await state.authorizerRef.signup(data);
91+
const { data: res, errors } = await state.authorizerRef.signup(data);
92+
if (errors && errors.length) {
93+
componentState.loading = false;
94+
componentState.error = errors[0]?.message || '';
95+
return;
96+
}
9297
if (res) {
9398
componentState.error = null;
9499
if (res.access_token) {
95100
componentState.error = null;
96101
state.setAuthData({
97102
user: res.user || null,
98-
token: {
99-
access_token: res.access_token,
100-
expires_in: res.expires_in,
101-
refresh_token: res.refresh_token,
102-
id_token: res.id_token
103-
},
103+
token: res,
104104
config: state.config,
105105
loading: false
106106
});

src/lib/components/AuthorizerVerifyOtp.svelte

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import { ButtonAppearance, Views, MessageType } from '../constants';
66
import Message from './Message.svelte';
77
import type { AuthorizerState } from '../types';
8-
import type { VerifyOtpInput } from '@authorizerdev/authorizer-js';
8+
import type { VerifyOtpRequest } from '@authorizerdev/authorizer-js';
99
1010
export let setView: Function | undefined = undefined;
1111
export let onLogin: Function | undefined = undefined;
@@ -45,7 +45,7 @@
4545
4646
const onSubmit = async () => {
4747
componentState.successMessage = null;
48-
const data: VerifyOtpInput = {
48+
const data: VerifyOtpRequest = {
4949
email,
5050
otp: componentState.otp || ''
5151
};
@@ -54,18 +54,17 @@
5454
}
5555
try {
5656
componentState.loading = true;
57-
const res = await state.authorizerRef.verifyOtp(data);
57+
const { data: res, errors } = await state.authorizerRef.verifyOtp(data);
5858
componentState.loading = false;
59+
if (errors && errors.length) {
60+
componentState.error = errors[0]?.message || '';
61+
return;
62+
}
5963
if (res) {
6064
componentState.error = null;
6165
state.setAuthData({
6266
user: res.user || null,
63-
token: {
64-
access_token: res.access_token,
65-
expires_in: res.expires_in,
66-
refresh_token: res.refresh_token,
67-
id_token: res.id_token
68-
},
67+
token: res,
6968
config: state.config,
7069
loading: false
7170
});
@@ -88,11 +87,15 @@
8887
componentState.successMessage = null;
8988
try {
9089
componentState.sendingOtp = true;
91-
const res = await state.authorizerRef.resendOtp({
90+
const { data: res, errors } = await state.authorizerRef.resendOtp({
9291
email
9392
});
9493
componentState.sendingOtp = false;
95-
if (res && res?.message) {
94+
if (errors && errors.length) {
95+
componentState.error = errors[0]?.message || '';
96+
return;
97+
}
98+
if (res?.message) {
9699
componentState.error = null;
97100
componentState.successMessage = res.message;
98101
}

0 commit comments

Comments
 (0)