@magic-ext/react-native-bare-oauth 27.0.0-canary.915.17279636506.0 → 27.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +4 -4
- package/dist/es/index.js +1 -1
- package/dist/es/index.js.map +4 -4
- package/dist/es/index.mjs +1 -1
- package/dist/es/index.mjs.map +4 -4
- package/dist/types/index.d.ts +0 -5
- package/dist/types/types.d.ts +8 -1
- package/package.json +5 -8
- package/dist/types/crypto.d.ts +0 -9
package/dist/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var A=Object.prototype.hasOwnProperty;var I=(n,e)=>{for(var o in e)p(n,o,{get:e[o],enumerable:!0})},O=(n,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of y(e))!A.call(n,t)&&t!==o&&p(n,t,{get:()=>e[t],enumerable:!(r=v(e,t))||r.enumerable});return n};var b=n=>O(p({},"__esModule",{value:!0}),n);var U={};I(U,{OAuthErrorCode:()=>g,OAuthExtension:()=>l,OAuthPayloadMethods:()=>d,getResult:()=>m});module.exports=b(U);var h=require("react-native-inappbrowser-reborn"),R=require("@magic-sdk/react-native-bare");var d=(r=>(r.Start="magic_oauth_login_with_redirect_start",r.Verify="magic_oauth_login_with_redirect_verify",r.Popup="magic_oauth_login_with_popup",r))(d||{}),g=(i=>(i.InvalidRequest="invalid_request",i.InvalidClient="invalid_client",i.InvalidScope="invalid_scope",i.InvalidGrant="invalid_grant",i.UnauthorizedClient="unauthorized_client",i.UnsupportedResponseType="unsupported_response_type",i.UnsupportedGrantType="unsupported_grant_type",i.UnsupportedTokenType="unsupported_token_type",i.AccessDenied="access_denied",i.ServerError="server_error",i.TemporarilyUnavailable="temporarily_unavailable",i))(g||{});var l=class extends R.Extension.Internal{name="oauth";config={};compat={"magic-sdk":!1,"@magic-sdk/react-native-bare":">=13.0.0","@magic-sdk/react-native-expo":!1,"@magic-sdk/react-native":!1};loginWithPopup(e){return this.utils.createPromiEvent(async(o,r)=>{try{let t=this.utils.createJsonRpcRequestPayload("magic_oauth_login_with_redirect_start",[{...e,apiKey:this.sdk.apiKey,platform:"rn"}]),c=await this.request(t),s=c,a=c;if(a.error){r(this.createError(a.error,a.error_description??"An error occurred.",{errorURI:a.error_uri,provider:a.provider}));return}if(!s?.oauthAuthoriationURI){r(this.createError("NO_AUTH_URI","No authorization URI was returned",{}));return}let f=s.oauthAuthoriationURI,u=await h.InAppBrowser.openAuth(f,e.redirectURI,{});if(u.type==="success"){let _=new URL(u.url).search;o(m.call(this,_.toString()))}else r(this.createError(u.type,"User has cancelled the authentication",{}))}catch(t){r(this.createError(t.message,"An error has occurred",{err:t}))}})}};function m(n){return this.utils.createPromiEvent(async(e,o)=>{let r=this.utils.createJsonRpcRequestPayload("magic_oauth_login_with_redirect_verify",[{authorizationResponseParams:n,magicApiKey:this.sdk.apiKey,platform:"rn"}]),t=await this.request(r),c=t,s=t;s.error&&o(this.createError(s.error,s.error_description??"An error occurred.",{errorURI:s.error_uri,provider:s.provider})),e(c)})}0&&(module.exports={OAuthErrorCode,OAuthExtension,OAuthPayloadMethods,getResult});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts", "../../src/
|
|
4
|
-
"sourcesContent": ["import { InAppBrowser } from 'react-native-inappbrowser-reborn';\nimport { Extension } from '@magic-sdk/react-native-bare';\nimport {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["index_exports", "__export", "OAuthErrorCode", "OAuthExtension", "OAuthPayloadMethods", "
|
|
3
|
+
"sources": ["../../src/index.ts", "../../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["import { InAppBrowser } from 'react-native-inappbrowser-reborn';\nimport { Extension } from '@magic-sdk/react-native-bare';\nimport {\n OAuthErrorData,\n OAuthPayloadMethods,\n OAuthRedirectConfiguration,\n OAuthRedirectError,\n OAuthRedirectResult,\n OAuthRedirectStartResult,\n} from './types';\n\nexport class OAuthExtension extends Extension.Internal<'oauth'> {\n name = 'oauth' as const;\n config = {};\n compat = {\n 'magic-sdk': false,\n '@magic-sdk/react-native-bare': '>=13.0.0',\n '@magic-sdk/react-native-expo': false,\n '@magic-sdk/react-native': false,\n };\n\n public loginWithPopup(configuration: OAuthRedirectConfiguration) {\n return this.utils.createPromiEvent<OAuthRedirectResult>(async (resolve, reject) => {\n try {\n const startPayload = this.utils.createJsonRpcRequestPayload(OAuthPayloadMethods.Start, [\n {\n ...configuration,\n apiKey: this.sdk.apiKey,\n platform: 'rn',\n },\n ]);\n\n const result = await this.request<OAuthRedirectStartResult | OAuthRedirectError>(startPayload);\n const successResult = result as OAuthRedirectStartResult;\n const errorResult = result as OAuthRedirectError;\n\n if (errorResult.error) {\n reject(\n this.createError<OAuthErrorData>(errorResult.error, errorResult.error_description ?? 'An error occurred.', {\n errorURI: errorResult.error_uri,\n provider: errorResult.provider,\n }),\n );\n return;\n }\n\n if (!successResult?.oauthAuthoriationURI) {\n reject(this.createError<object>('NO_AUTH_URI', 'No authorization URI was returned', {}));\n return;\n }\n\n const url = successResult.oauthAuthoriationURI;\n const res = await InAppBrowser.openAuth(url, configuration.redirectURI, {});\n\n if (res.type === 'success') {\n const queryString = new URL(res.url).search;\n resolve(getResult.call(this, queryString.toString()));\n } else {\n reject(this.createError<object>(res.type, 'User has cancelled the authentication', {}));\n }\n } catch (err: any) {\n reject(\n this.createError<object>(err.message, 'An error has occurred', {\n err,\n }),\n );\n }\n });\n }\n}\n\nexport function getResult(this: OAuthExtension, queryString: string) {\n return this.utils.createPromiEvent<OAuthRedirectResult>(async (resolve, reject) => {\n const parseRedirectResult = this.utils.createJsonRpcRequestPayload(OAuthPayloadMethods.Verify, [\n {\n authorizationResponseParams: queryString,\n magicApiKey: this.sdk.apiKey,\n platform: 'rn',\n },\n ]);\n\n // Parse the result, which may contain an OAuth-formatted error.\n const resultOrError = await this.request<OAuthRedirectResult | OAuthRedirectError>(parseRedirectResult);\n const maybeResult = resultOrError as OAuthRedirectResult;\n const maybeError = resultOrError as OAuthRedirectError;\n\n if (maybeError.error) {\n reject(\n this.createError<OAuthErrorData>(maybeError.error, maybeError.error_description ?? 'An error occurred.', {\n errorURI: maybeError.error_uri,\n provider: maybeError.provider,\n }),\n );\n }\n\n resolve(maybeResult);\n });\n}\n\nexport * from './types';\n", "import { MagicUserMetadata } from '@magic-sdk/types';\n\nexport enum OAuthPayloadMethods {\n Start = 'magic_oauth_login_with_redirect_start',\n Verify = 'magic_oauth_login_with_redirect_verify',\n Popup = 'magic_oauth_login_with_popup',\n}\n\nexport type OAuthProvider =\n | 'google'\n | 'facebook'\n | 'apple'\n | 'github'\n | 'bitbucket'\n | 'gitlab'\n | 'linkedin'\n | 'twitter'\n | 'discord'\n | 'twitch'\n | 'microsoft';\n\nexport interface OAuthErrorData {\n provider: OAuthProvider;\n errorURI?: string;\n}\n\nexport interface OpenIDConnectProfile {\n name?: string;\n familyName?: string;\n givenName?: string;\n middleName?: string;\n nickname?: string;\n preferredUsername?: string;\n profile?: string;\n picture?: string;\n website?: string;\n gender?: string;\n birthdate?: string;\n zoneinfo?: string;\n locale?: string;\n updatedAt?: number;\n}\n\nexport interface OpenIDConnectEmail {\n email?: string;\n emailVerified?: boolean;\n}\n\nexport interface OpenIDConnectPhone {\n phoneNumber?: string;\n phoneNumberVerified?: boolean;\n}\n\nexport interface OpenIDConnectAddress {\n address?: {\n formatted?: string;\n streetAddress?: string;\n locality?: string;\n region?: string;\n postalCode?: string;\n country?: string;\n };\n}\n\nexport type OpenIDConnectUserInfo = OpenIDConnectProfile &\n OpenIDConnectEmail &\n OpenIDConnectPhone &\n OpenIDConnectAddress & { sub?: string; sources?: Record<string, any> } & Record<string, any>;\n\nexport interface OAuthRedirectResult {\n oauth: {\n provider: OAuthProvider;\n scope: string[];\n accessToken: string;\n userHandle: string;\n userInfo: OpenIDConnectUserInfo;\n };\n\n magic: {\n idToken: string;\n userMetadata: MagicUserMetadata;\n };\n}\n\nexport interface OAuthRedirectError {\n provider: OAuthProvider;\n error: string;\n error_description?: string;\n error_uri?: string;\n}\n\nexport interface OAuthRedirectConfiguration {\n provider: OAuthProvider;\n redirectURI: string;\n scope?: string[];\n loginHint?: string;\n}\n\nexport enum OAuthErrorCode {\n InvalidRequest = 'invalid_request',\n InvalidClient = 'invalid_client',\n InvalidScope = 'invalid_scope',\n InvalidGrant = 'invalid_grant',\n UnauthorizedClient = 'unauthorized_client',\n UnsupportedResponseType = 'unsupported_response_type',\n UnsupportedGrantType = 'unsupported_grant_type',\n UnsupportedTokenType = 'unsupported_token_type',\n AccessDenied = 'access_denied',\n ServerError = 'server_error',\n TemporarilyUnavailable = 'temporarily_unavailable',\n}\n\nexport interface OAuthRedirectStartResult {\n oauthAuthoriationURI?: string;\n useMagicServerCallback?: boolean;\n shouldReturnURI?: boolean;\n}\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,mBAAAC,EAAA,wBAAAC,EAAA,cAAAC,IAAA,eAAAC,EAAAN,GAAA,IAAAO,EAA6B,4CAC7BC,EAA0B,wCCCnB,IAAKC,OACVA,EAAA,MAAQ,wCACRA,EAAA,OAAS,yCACTA,EAAA,MAAQ,+BAHEA,OAAA,IAgGAC,OACVA,EAAA,eAAiB,kBACjBA,EAAA,cAAgB,iBAChBA,EAAA,aAAe,gBACfA,EAAA,aAAe,gBACfA,EAAA,mBAAqB,sBACrBA,EAAA,wBAA0B,4BAC1BA,EAAA,qBAAuB,yBACvBA,EAAA,qBAAuB,yBACvBA,EAAA,aAAe,gBACfA,EAAA,YAAc,eACdA,EAAA,uBAAyB,0BAXfA,OAAA,IDvFL,IAAMC,EAAN,cAA6B,YAAU,QAAkB,CAC9D,KAAO,QACP,OAAS,CAAC,EACV,OAAS,CACP,YAAa,GACb,+BAAgC,WAChC,+BAAgC,GAChC,0BAA2B,EAC7B,EAEO,eAAeC,EAA2C,CAC/D,OAAO,KAAK,MAAM,iBAAsC,MAAOC,EAASC,IAAW,CACjF,GAAI,CACF,IAAMC,EAAe,KAAK,MAAM,oEAAuD,CACrF,CACE,GAAGH,EACH,OAAQ,KAAK,IAAI,OACjB,SAAU,IACZ,CACF,CAAC,EAEKI,EAAS,MAAM,KAAK,QAAuDD,CAAY,EACvFE,EAAgBD,EAChBE,EAAcF,EAEpB,GAAIE,EAAY,MAAO,CACrBJ,EACE,KAAK,YAA4BI,EAAY,MAAOA,EAAY,mBAAqB,qBAAsB,CACzG,SAAUA,EAAY,UACtB,SAAUA,EAAY,QACxB,CAAC,CACH,EACA,MACF,CAEA,GAAI,CAACD,GAAe,qBAAsB,CACxCH,EAAO,KAAK,YAAoB,cAAe,oCAAqC,CAAC,CAAC,CAAC,EACvF,MACF,CAEA,IAAMK,EAAMF,EAAc,qBACpBG,EAAM,MAAM,eAAa,SAASD,EAAKP,EAAc,YAAa,CAAC,CAAC,EAE1E,GAAIQ,EAAI,OAAS,UAAW,CAC1B,IAAMC,EAAc,IAAI,IAAID,EAAI,GAAG,EAAE,OACrCP,EAAQS,EAAU,KAAK,KAAMD,EAAY,SAAS,CAAC,CAAC,CACtD,MACEP,EAAO,KAAK,YAAoBM,EAAI,KAAM,wCAAyC,CAAC,CAAC,CAAC,CAE1F,OAASG,EAAU,CACjBT,EACE,KAAK,YAAoBS,EAAI,QAAS,wBAAyB,CAC7D,IAAAA,CACF,CAAC,CACH,CACF,CACF,CAAC,CACH,CACF,EAEO,SAASD,EAAgCD,EAAqB,CACnE,OAAO,KAAK,MAAM,iBAAsC,MAAOR,EAASC,IAAW,CACjF,IAAMU,EAAsB,KAAK,MAAM,qEAAwD,CAC7F,CACE,4BAA6BH,EAC7B,YAAa,KAAK,IAAI,OACtB,SAAU,IACZ,CACF,CAAC,EAGKI,EAAgB,MAAM,KAAK,QAAkDD,CAAmB,EAChGE,EAAcD,EACdE,EAAaF,EAEfE,EAAW,OACbb,EACE,KAAK,YAA4Ba,EAAW,MAAOA,EAAW,mBAAqB,qBAAsB,CACvG,SAAUA,EAAW,UACrB,SAAUA,EAAW,QACvB,CAAC,CACH,EAGFd,EAAQa,CAAW,CACrB,CAAC,CACH",
|
|
6
|
+
"names": ["index_exports", "__export", "OAuthErrorCode", "OAuthExtension", "OAuthPayloadMethods", "getResult", "__toCommonJS", "import_react_native_inappbrowser_reborn", "import_react_native_bare", "OAuthPayloadMethods", "OAuthErrorCode", "OAuthExtension", "configuration", "resolve", "reject", "startPayload", "result", "successResult", "errorResult", "url", "res", "queryString", "getResult", "err", "parseRedirectResult", "resultOrError", "maybeResult", "maybeError"]
|
|
7
7
|
}
|
package/dist/es/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{InAppBrowser as
|
|
1
|
+
import{InAppBrowser as R}from"react-native-inappbrowser-reborn";import{Extension as m}from"@magic-sdk/react-native-bare";var p=(r=>(r.Start="magic_oauth_login_with_redirect_start",r.Verify="magic_oauth_login_with_redirect_verify",r.Popup="magic_oauth_login_with_popup",r))(p||{}),h=(e=>(e.InvalidRequest="invalid_request",e.InvalidClient="invalid_client",e.InvalidScope="invalid_scope",e.InvalidGrant="invalid_grant",e.UnauthorizedClient="unauthorized_client",e.UnsupportedResponseType="unsupported_response_type",e.UnsupportedGrantType="unsupported_grant_type",e.UnsupportedTokenType="unsupported_token_type",e.AccessDenied="access_denied",e.ServerError="server_error",e.TemporarilyUnavailable="temporarily_unavailable",e))(h||{});var d=class extends m.Internal{name="oauth";config={};compat={"magic-sdk":!1,"@magic-sdk/react-native-bare":">=13.0.0","@magic-sdk/react-native-expo":!1,"@magic-sdk/react-native":!1};loginWithPopup(o){return this.utils.createPromiEvent(async(a,r)=>{try{let i=this.utils.createJsonRpcRequestPayload("magic_oauth_login_with_redirect_start",[{...o,apiKey:this.sdk.apiKey,platform:"rn"}]),s=await this.request(i),t=s,n=s;if(n.error){r(this.createError(n.error,n.error_description??"An error occurred.",{errorURI:n.error_uri,provider:n.provider}));return}if(!t?.oauthAuthoriationURI){r(this.createError("NO_AUTH_URI","No authorization URI was returned",{}));return}let l=t.oauthAuthoriationURI,c=await R.openAuth(l,o.redirectURI,{});if(c.type==="success"){let g=new URL(c.url).search;a(f.call(this,g.toString()))}else r(this.createError(c.type,"User has cancelled the authentication",{}))}catch(i){r(this.createError(i.message,"An error has occurred",{err:i}))}})}};function f(u){return this.utils.createPromiEvent(async(o,a)=>{let r=this.utils.createJsonRpcRequestPayload("magic_oauth_login_with_redirect_verify",[{authorizationResponseParams:u,magicApiKey:this.sdk.apiKey,platform:"rn"}]),i=await this.request(r),s=i,t=i;t.error&&a(this.createError(t.error,t.error_description??"An error occurred.",{errorURI:t.error_uri,provider:t.provider})),o(s)})}export{h as OAuthErrorCode,d as OAuthExtension,p as OAuthPayloadMethods,f as getResult};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/es/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts", "../../src/
|
|
4
|
-
"sourcesContent": ["import { InAppBrowser } from 'react-native-inappbrowser-reborn';\nimport { Extension } from '@magic-sdk/react-native-bare';\nimport {
|
|
5
|
-
"mappings": "AAAA,OAAS,gBAAAA,MAAoB,mCAC7B,OAAS,aAAAC,MAAiB,+
|
|
6
|
-
"names": ["InAppBrowser", "Extension", "
|
|
3
|
+
"sources": ["../../src/index.ts", "../../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["import { InAppBrowser } from 'react-native-inappbrowser-reborn';\nimport { Extension } from '@magic-sdk/react-native-bare';\nimport {\n OAuthErrorData,\n OAuthPayloadMethods,\n OAuthRedirectConfiguration,\n OAuthRedirectError,\n OAuthRedirectResult,\n OAuthRedirectStartResult,\n} from './types';\n\nexport class OAuthExtension extends Extension.Internal<'oauth'> {\n name = 'oauth' as const;\n config = {};\n compat = {\n 'magic-sdk': false,\n '@magic-sdk/react-native-bare': '>=13.0.0',\n '@magic-sdk/react-native-expo': false,\n '@magic-sdk/react-native': false,\n };\n\n public loginWithPopup(configuration: OAuthRedirectConfiguration) {\n return this.utils.createPromiEvent<OAuthRedirectResult>(async (resolve, reject) => {\n try {\n const startPayload = this.utils.createJsonRpcRequestPayload(OAuthPayloadMethods.Start, [\n {\n ...configuration,\n apiKey: this.sdk.apiKey,\n platform: 'rn',\n },\n ]);\n\n const result = await this.request<OAuthRedirectStartResult | OAuthRedirectError>(startPayload);\n const successResult = result as OAuthRedirectStartResult;\n const errorResult = result as OAuthRedirectError;\n\n if (errorResult.error) {\n reject(\n this.createError<OAuthErrorData>(errorResult.error, errorResult.error_description ?? 'An error occurred.', {\n errorURI: errorResult.error_uri,\n provider: errorResult.provider,\n }),\n );\n return;\n }\n\n if (!successResult?.oauthAuthoriationURI) {\n reject(this.createError<object>('NO_AUTH_URI', 'No authorization URI was returned', {}));\n return;\n }\n\n const url = successResult.oauthAuthoriationURI;\n const res = await InAppBrowser.openAuth(url, configuration.redirectURI, {});\n\n if (res.type === 'success') {\n const queryString = new URL(res.url).search;\n resolve(getResult.call(this, queryString.toString()));\n } else {\n reject(this.createError<object>(res.type, 'User has cancelled the authentication', {}));\n }\n } catch (err: any) {\n reject(\n this.createError<object>(err.message, 'An error has occurred', {\n err,\n }),\n );\n }\n });\n }\n}\n\nexport function getResult(this: OAuthExtension, queryString: string) {\n return this.utils.createPromiEvent<OAuthRedirectResult>(async (resolve, reject) => {\n const parseRedirectResult = this.utils.createJsonRpcRequestPayload(OAuthPayloadMethods.Verify, [\n {\n authorizationResponseParams: queryString,\n magicApiKey: this.sdk.apiKey,\n platform: 'rn',\n },\n ]);\n\n // Parse the result, which may contain an OAuth-formatted error.\n const resultOrError = await this.request<OAuthRedirectResult | OAuthRedirectError>(parseRedirectResult);\n const maybeResult = resultOrError as OAuthRedirectResult;\n const maybeError = resultOrError as OAuthRedirectError;\n\n if (maybeError.error) {\n reject(\n this.createError<OAuthErrorData>(maybeError.error, maybeError.error_description ?? 'An error occurred.', {\n errorURI: maybeError.error_uri,\n provider: maybeError.provider,\n }),\n );\n }\n\n resolve(maybeResult);\n });\n}\n\nexport * from './types';\n", "import { MagicUserMetadata } from '@magic-sdk/types';\n\nexport enum OAuthPayloadMethods {\n Start = 'magic_oauth_login_with_redirect_start',\n Verify = 'magic_oauth_login_with_redirect_verify',\n Popup = 'magic_oauth_login_with_popup',\n}\n\nexport type OAuthProvider =\n | 'google'\n | 'facebook'\n | 'apple'\n | 'github'\n | 'bitbucket'\n | 'gitlab'\n | 'linkedin'\n | 'twitter'\n | 'discord'\n | 'twitch'\n | 'microsoft';\n\nexport interface OAuthErrorData {\n provider: OAuthProvider;\n errorURI?: string;\n}\n\nexport interface OpenIDConnectProfile {\n name?: string;\n familyName?: string;\n givenName?: string;\n middleName?: string;\n nickname?: string;\n preferredUsername?: string;\n profile?: string;\n picture?: string;\n website?: string;\n gender?: string;\n birthdate?: string;\n zoneinfo?: string;\n locale?: string;\n updatedAt?: number;\n}\n\nexport interface OpenIDConnectEmail {\n email?: string;\n emailVerified?: boolean;\n}\n\nexport interface OpenIDConnectPhone {\n phoneNumber?: string;\n phoneNumberVerified?: boolean;\n}\n\nexport interface OpenIDConnectAddress {\n address?: {\n formatted?: string;\n streetAddress?: string;\n locality?: string;\n region?: string;\n postalCode?: string;\n country?: string;\n };\n}\n\nexport type OpenIDConnectUserInfo = OpenIDConnectProfile &\n OpenIDConnectEmail &\n OpenIDConnectPhone &\n OpenIDConnectAddress & { sub?: string; sources?: Record<string, any> } & Record<string, any>;\n\nexport interface OAuthRedirectResult {\n oauth: {\n provider: OAuthProvider;\n scope: string[];\n accessToken: string;\n userHandle: string;\n userInfo: OpenIDConnectUserInfo;\n };\n\n magic: {\n idToken: string;\n userMetadata: MagicUserMetadata;\n };\n}\n\nexport interface OAuthRedirectError {\n provider: OAuthProvider;\n error: string;\n error_description?: string;\n error_uri?: string;\n}\n\nexport interface OAuthRedirectConfiguration {\n provider: OAuthProvider;\n redirectURI: string;\n scope?: string[];\n loginHint?: string;\n}\n\nexport enum OAuthErrorCode {\n InvalidRequest = 'invalid_request',\n InvalidClient = 'invalid_client',\n InvalidScope = 'invalid_scope',\n InvalidGrant = 'invalid_grant',\n UnauthorizedClient = 'unauthorized_client',\n UnsupportedResponseType = 'unsupported_response_type',\n UnsupportedGrantType = 'unsupported_grant_type',\n UnsupportedTokenType = 'unsupported_token_type',\n AccessDenied = 'access_denied',\n ServerError = 'server_error',\n TemporarilyUnavailable = 'temporarily_unavailable',\n}\n\nexport interface OAuthRedirectStartResult {\n oauthAuthoriationURI?: string;\n useMagicServerCallback?: boolean;\n shouldReturnURI?: boolean;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,gBAAAA,MAAoB,mCAC7B,OAAS,aAAAC,MAAiB,+BCCnB,IAAKC,OACVA,EAAA,MAAQ,wCACRA,EAAA,OAAS,yCACTA,EAAA,MAAQ,+BAHEA,OAAA,IAgGAC,OACVA,EAAA,eAAiB,kBACjBA,EAAA,cAAgB,iBAChBA,EAAA,aAAe,gBACfA,EAAA,aAAe,gBACfA,EAAA,mBAAqB,sBACrBA,EAAA,wBAA0B,4BAC1BA,EAAA,qBAAuB,yBACvBA,EAAA,qBAAuB,yBACvBA,EAAA,aAAe,gBACfA,EAAA,YAAc,eACdA,EAAA,uBAAyB,0BAXfA,OAAA,IDvFL,IAAMC,EAAN,cAA6BC,EAAU,QAAkB,CAC9D,KAAO,QACP,OAAS,CAAC,EACV,OAAS,CACP,YAAa,GACb,+BAAgC,WAChC,+BAAgC,GAChC,0BAA2B,EAC7B,EAEO,eAAeC,EAA2C,CAC/D,OAAO,KAAK,MAAM,iBAAsC,MAAOC,EAASC,IAAW,CACjF,GAAI,CACF,IAAMC,EAAe,KAAK,MAAM,oEAAuD,CACrF,CACE,GAAGH,EACH,OAAQ,KAAK,IAAI,OACjB,SAAU,IACZ,CACF,CAAC,EAEKI,EAAS,MAAM,KAAK,QAAuDD,CAAY,EACvFE,EAAgBD,EAChBE,EAAcF,EAEpB,GAAIE,EAAY,MAAO,CACrBJ,EACE,KAAK,YAA4BI,EAAY,MAAOA,EAAY,mBAAqB,qBAAsB,CACzG,SAAUA,EAAY,UACtB,SAAUA,EAAY,QACxB,CAAC,CACH,EACA,MACF,CAEA,GAAI,CAACD,GAAe,qBAAsB,CACxCH,EAAO,KAAK,YAAoB,cAAe,oCAAqC,CAAC,CAAC,CAAC,EACvF,MACF,CAEA,IAAMK,EAAMF,EAAc,qBACpBG,EAAM,MAAMC,EAAa,SAASF,EAAKP,EAAc,YAAa,CAAC,CAAC,EAE1E,GAAIQ,EAAI,OAAS,UAAW,CAC1B,IAAME,EAAc,IAAI,IAAIF,EAAI,GAAG,EAAE,OACrCP,EAAQU,EAAU,KAAK,KAAMD,EAAY,SAAS,CAAC,CAAC,CACtD,MACER,EAAO,KAAK,YAAoBM,EAAI,KAAM,wCAAyC,CAAC,CAAC,CAAC,CAE1F,OAASI,EAAU,CACjBV,EACE,KAAK,YAAoBU,EAAI,QAAS,wBAAyB,CAC7D,IAAAA,CACF,CAAC,CACH,CACF,CACF,CAAC,CACH,CACF,EAEO,SAASD,EAAgCD,EAAqB,CACnE,OAAO,KAAK,MAAM,iBAAsC,MAAOT,EAASC,IAAW,CACjF,IAAMW,EAAsB,KAAK,MAAM,qEAAwD,CAC7F,CACE,4BAA6BH,EAC7B,YAAa,KAAK,IAAI,OACtB,SAAU,IACZ,CACF,CAAC,EAGKI,EAAgB,MAAM,KAAK,QAAkDD,CAAmB,EAChGE,EAAcD,EACdE,EAAaF,EAEfE,EAAW,OACbd,EACE,KAAK,YAA4Bc,EAAW,MAAOA,EAAW,mBAAqB,qBAAsB,CACvG,SAAUA,EAAW,UACrB,SAAUA,EAAW,QACvB,CAAC,CACH,EAGFf,EAAQc,CAAW,CACrB,CAAC,CACH",
|
|
6
|
+
"names": ["InAppBrowser", "Extension", "OAuthPayloadMethods", "OAuthErrorCode", "OAuthExtension", "Extension", "configuration", "resolve", "reject", "startPayload", "result", "successResult", "errorResult", "url", "res", "InAppBrowser", "queryString", "getResult", "err", "parseRedirectResult", "resultOrError", "maybeResult", "maybeError"]
|
|
7
7
|
}
|
package/dist/es/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{InAppBrowser as
|
|
1
|
+
import{InAppBrowser as R}from"react-native-inappbrowser-reborn";import{Extension as m}from"@magic-sdk/react-native-bare";var p=(r=>(r.Start="magic_oauth_login_with_redirect_start",r.Verify="magic_oauth_login_with_redirect_verify",r.Popup="magic_oauth_login_with_popup",r))(p||{}),h=(e=>(e.InvalidRequest="invalid_request",e.InvalidClient="invalid_client",e.InvalidScope="invalid_scope",e.InvalidGrant="invalid_grant",e.UnauthorizedClient="unauthorized_client",e.UnsupportedResponseType="unsupported_response_type",e.UnsupportedGrantType="unsupported_grant_type",e.UnsupportedTokenType="unsupported_token_type",e.AccessDenied="access_denied",e.ServerError="server_error",e.TemporarilyUnavailable="temporarily_unavailable",e))(h||{});var d=class extends m.Internal{name="oauth";config={};compat={"magic-sdk":!1,"@magic-sdk/react-native-bare":">=13.0.0","@magic-sdk/react-native-expo":!1,"@magic-sdk/react-native":!1};loginWithPopup(o){return this.utils.createPromiEvent(async(a,r)=>{try{let i=this.utils.createJsonRpcRequestPayload("magic_oauth_login_with_redirect_start",[{...o,apiKey:this.sdk.apiKey,platform:"rn"}]),s=await this.request(i),t=s,n=s;if(n.error){r(this.createError(n.error,n.error_description??"An error occurred.",{errorURI:n.error_uri,provider:n.provider}));return}if(!t?.oauthAuthoriationURI){r(this.createError("NO_AUTH_URI","No authorization URI was returned",{}));return}let l=t.oauthAuthoriationURI,c=await R.openAuth(l,o.redirectURI,{});if(c.type==="success"){let g=new URL(c.url).search;a(f.call(this,g.toString()))}else r(this.createError(c.type,"User has cancelled the authentication",{}))}catch(i){r(this.createError(i.message,"An error has occurred",{err:i}))}})}};function f(u){return this.utils.createPromiEvent(async(o,a)=>{let r=this.utils.createJsonRpcRequestPayload("magic_oauth_login_with_redirect_verify",[{authorizationResponseParams:u,magicApiKey:this.sdk.apiKey,platform:"rn"}]),i=await this.request(r),s=i,t=i;t.error&&a(this.createError(t.error,t.error_description??"An error occurred.",{errorURI:t.error_uri,provider:t.provider})),o(s)})}export{h as OAuthErrorCode,d as OAuthExtension,p as OAuthPayloadMethods,f as getResult};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/es/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts", "../../src/
|
|
4
|
-
"sourcesContent": ["import { InAppBrowser } from 'react-native-inappbrowser-reborn';\nimport { Extension } from '@magic-sdk/react-native-bare';\nimport {
|
|
5
|
-
"mappings": "AAAA,OAAS,gBAAAA,MAAoB,mCAC7B,OAAS,aAAAC,MAAiB,+
|
|
6
|
-
"names": ["InAppBrowser", "Extension", "
|
|
3
|
+
"sources": ["../../src/index.ts", "../../src/types.ts"],
|
|
4
|
+
"sourcesContent": ["import { InAppBrowser } from 'react-native-inappbrowser-reborn';\nimport { Extension } from '@magic-sdk/react-native-bare';\nimport {\n OAuthErrorData,\n OAuthPayloadMethods,\n OAuthRedirectConfiguration,\n OAuthRedirectError,\n OAuthRedirectResult,\n OAuthRedirectStartResult,\n} from './types';\n\nexport class OAuthExtension extends Extension.Internal<'oauth'> {\n name = 'oauth' as const;\n config = {};\n compat = {\n 'magic-sdk': false,\n '@magic-sdk/react-native-bare': '>=13.0.0',\n '@magic-sdk/react-native-expo': false,\n '@magic-sdk/react-native': false,\n };\n\n public loginWithPopup(configuration: OAuthRedirectConfiguration) {\n return this.utils.createPromiEvent<OAuthRedirectResult>(async (resolve, reject) => {\n try {\n const startPayload = this.utils.createJsonRpcRequestPayload(OAuthPayloadMethods.Start, [\n {\n ...configuration,\n apiKey: this.sdk.apiKey,\n platform: 'rn',\n },\n ]);\n\n const result = await this.request<OAuthRedirectStartResult | OAuthRedirectError>(startPayload);\n const successResult = result as OAuthRedirectStartResult;\n const errorResult = result as OAuthRedirectError;\n\n if (errorResult.error) {\n reject(\n this.createError<OAuthErrorData>(errorResult.error, errorResult.error_description ?? 'An error occurred.', {\n errorURI: errorResult.error_uri,\n provider: errorResult.provider,\n }),\n );\n return;\n }\n\n if (!successResult?.oauthAuthoriationURI) {\n reject(this.createError<object>('NO_AUTH_URI', 'No authorization URI was returned', {}));\n return;\n }\n\n const url = successResult.oauthAuthoriationURI;\n const res = await InAppBrowser.openAuth(url, configuration.redirectURI, {});\n\n if (res.type === 'success') {\n const queryString = new URL(res.url).search;\n resolve(getResult.call(this, queryString.toString()));\n } else {\n reject(this.createError<object>(res.type, 'User has cancelled the authentication', {}));\n }\n } catch (err: any) {\n reject(\n this.createError<object>(err.message, 'An error has occurred', {\n err,\n }),\n );\n }\n });\n }\n}\n\nexport function getResult(this: OAuthExtension, queryString: string) {\n return this.utils.createPromiEvent<OAuthRedirectResult>(async (resolve, reject) => {\n const parseRedirectResult = this.utils.createJsonRpcRequestPayload(OAuthPayloadMethods.Verify, [\n {\n authorizationResponseParams: queryString,\n magicApiKey: this.sdk.apiKey,\n platform: 'rn',\n },\n ]);\n\n // Parse the result, which may contain an OAuth-formatted error.\n const resultOrError = await this.request<OAuthRedirectResult | OAuthRedirectError>(parseRedirectResult);\n const maybeResult = resultOrError as OAuthRedirectResult;\n const maybeError = resultOrError as OAuthRedirectError;\n\n if (maybeError.error) {\n reject(\n this.createError<OAuthErrorData>(maybeError.error, maybeError.error_description ?? 'An error occurred.', {\n errorURI: maybeError.error_uri,\n provider: maybeError.provider,\n }),\n );\n }\n\n resolve(maybeResult);\n });\n}\n\nexport * from './types';\n", "import { MagicUserMetadata } from '@magic-sdk/types';\n\nexport enum OAuthPayloadMethods {\n Start = 'magic_oauth_login_with_redirect_start',\n Verify = 'magic_oauth_login_with_redirect_verify',\n Popup = 'magic_oauth_login_with_popup',\n}\n\nexport type OAuthProvider =\n | 'google'\n | 'facebook'\n | 'apple'\n | 'github'\n | 'bitbucket'\n | 'gitlab'\n | 'linkedin'\n | 'twitter'\n | 'discord'\n | 'twitch'\n | 'microsoft';\n\nexport interface OAuthErrorData {\n provider: OAuthProvider;\n errorURI?: string;\n}\n\nexport interface OpenIDConnectProfile {\n name?: string;\n familyName?: string;\n givenName?: string;\n middleName?: string;\n nickname?: string;\n preferredUsername?: string;\n profile?: string;\n picture?: string;\n website?: string;\n gender?: string;\n birthdate?: string;\n zoneinfo?: string;\n locale?: string;\n updatedAt?: number;\n}\n\nexport interface OpenIDConnectEmail {\n email?: string;\n emailVerified?: boolean;\n}\n\nexport interface OpenIDConnectPhone {\n phoneNumber?: string;\n phoneNumberVerified?: boolean;\n}\n\nexport interface OpenIDConnectAddress {\n address?: {\n formatted?: string;\n streetAddress?: string;\n locality?: string;\n region?: string;\n postalCode?: string;\n country?: string;\n };\n}\n\nexport type OpenIDConnectUserInfo = OpenIDConnectProfile &\n OpenIDConnectEmail &\n OpenIDConnectPhone &\n OpenIDConnectAddress & { sub?: string; sources?: Record<string, any> } & Record<string, any>;\n\nexport interface OAuthRedirectResult {\n oauth: {\n provider: OAuthProvider;\n scope: string[];\n accessToken: string;\n userHandle: string;\n userInfo: OpenIDConnectUserInfo;\n };\n\n magic: {\n idToken: string;\n userMetadata: MagicUserMetadata;\n };\n}\n\nexport interface OAuthRedirectError {\n provider: OAuthProvider;\n error: string;\n error_description?: string;\n error_uri?: string;\n}\n\nexport interface OAuthRedirectConfiguration {\n provider: OAuthProvider;\n redirectURI: string;\n scope?: string[];\n loginHint?: string;\n}\n\nexport enum OAuthErrorCode {\n InvalidRequest = 'invalid_request',\n InvalidClient = 'invalid_client',\n InvalidScope = 'invalid_scope',\n InvalidGrant = 'invalid_grant',\n UnauthorizedClient = 'unauthorized_client',\n UnsupportedResponseType = 'unsupported_response_type',\n UnsupportedGrantType = 'unsupported_grant_type',\n UnsupportedTokenType = 'unsupported_token_type',\n AccessDenied = 'access_denied',\n ServerError = 'server_error',\n TemporarilyUnavailable = 'temporarily_unavailable',\n}\n\nexport interface OAuthRedirectStartResult {\n oauthAuthoriationURI?: string;\n useMagicServerCallback?: boolean;\n shouldReturnURI?: boolean;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,OAAS,gBAAAA,MAAoB,mCAC7B,OAAS,aAAAC,MAAiB,+BCCnB,IAAKC,OACVA,EAAA,MAAQ,wCACRA,EAAA,OAAS,yCACTA,EAAA,MAAQ,+BAHEA,OAAA,IAgGAC,OACVA,EAAA,eAAiB,kBACjBA,EAAA,cAAgB,iBAChBA,EAAA,aAAe,gBACfA,EAAA,aAAe,gBACfA,EAAA,mBAAqB,sBACrBA,EAAA,wBAA0B,4BAC1BA,EAAA,qBAAuB,yBACvBA,EAAA,qBAAuB,yBACvBA,EAAA,aAAe,gBACfA,EAAA,YAAc,eACdA,EAAA,uBAAyB,0BAXfA,OAAA,IDvFL,IAAMC,EAAN,cAA6BC,EAAU,QAAkB,CAC9D,KAAO,QACP,OAAS,CAAC,EACV,OAAS,CACP,YAAa,GACb,+BAAgC,WAChC,+BAAgC,GAChC,0BAA2B,EAC7B,EAEO,eAAeC,EAA2C,CAC/D,OAAO,KAAK,MAAM,iBAAsC,MAAOC,EAASC,IAAW,CACjF,GAAI,CACF,IAAMC,EAAe,KAAK,MAAM,oEAAuD,CACrF,CACE,GAAGH,EACH,OAAQ,KAAK,IAAI,OACjB,SAAU,IACZ,CACF,CAAC,EAEKI,EAAS,MAAM,KAAK,QAAuDD,CAAY,EACvFE,EAAgBD,EAChBE,EAAcF,EAEpB,GAAIE,EAAY,MAAO,CACrBJ,EACE,KAAK,YAA4BI,EAAY,MAAOA,EAAY,mBAAqB,qBAAsB,CACzG,SAAUA,EAAY,UACtB,SAAUA,EAAY,QACxB,CAAC,CACH,EACA,MACF,CAEA,GAAI,CAACD,GAAe,qBAAsB,CACxCH,EAAO,KAAK,YAAoB,cAAe,oCAAqC,CAAC,CAAC,CAAC,EACvF,MACF,CAEA,IAAMK,EAAMF,EAAc,qBACpBG,EAAM,MAAMC,EAAa,SAASF,EAAKP,EAAc,YAAa,CAAC,CAAC,EAE1E,GAAIQ,EAAI,OAAS,UAAW,CAC1B,IAAME,EAAc,IAAI,IAAIF,EAAI,GAAG,EAAE,OACrCP,EAAQU,EAAU,KAAK,KAAMD,EAAY,SAAS,CAAC,CAAC,CACtD,MACER,EAAO,KAAK,YAAoBM,EAAI,KAAM,wCAAyC,CAAC,CAAC,CAAC,CAE1F,OAASI,EAAU,CACjBV,EACE,KAAK,YAAoBU,EAAI,QAAS,wBAAyB,CAC7D,IAAAA,CACF,CAAC,CACH,CACF,CACF,CAAC,CACH,CACF,EAEO,SAASD,EAAgCD,EAAqB,CACnE,OAAO,KAAK,MAAM,iBAAsC,MAAOT,EAASC,IAAW,CACjF,IAAMW,EAAsB,KAAK,MAAM,qEAAwD,CAC7F,CACE,4BAA6BH,EAC7B,YAAa,KAAK,IAAI,OACtB,SAAU,IACZ,CACF,CAAC,EAGKI,EAAgB,MAAM,KAAK,QAAkDD,CAAmB,EAChGE,EAAcD,EACdE,EAAaF,EAEfE,EAAW,OACbd,EACE,KAAK,YAA4Bc,EAAW,MAAOA,EAAW,mBAAqB,qBAAsB,CACvG,SAAUA,EAAW,UACrB,SAAUA,EAAW,QACvB,CAAC,CACH,EAGFf,EAAQc,CAAW,CACrB,CAAC,CACH",
|
|
6
|
+
"names": ["InAppBrowser", "Extension", "OAuthPayloadMethods", "OAuthErrorCode", "OAuthExtension", "Extension", "configuration", "resolve", "reject", "startPayload", "result", "successResult", "errorResult", "url", "res", "InAppBrowser", "queryString", "getResult", "err", "parseRedirectResult", "resultOrError", "maybeResult", "maybeError"]
|
|
7
7
|
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -16,11 +16,6 @@ export declare class OAuthExtension extends Extension.Internal<'oauth'> {
|
|
|
16
16
|
"closed-by-user": () => void;
|
|
17
17
|
}>;
|
|
18
18
|
}
|
|
19
|
-
export declare function createURI(this: OAuthExtension, configuration: OAuthRedirectConfiguration): Promise<{
|
|
20
|
-
query: string | undefined;
|
|
21
|
-
provider: import("./types").OAuthProvider;
|
|
22
|
-
redirectURI: string;
|
|
23
|
-
}>;
|
|
24
19
|
export declare function getResult(this: OAuthExtension, queryString: string): import("@magic-sdk/react-native-bare").PromiEvent<OAuthRedirectResult, {
|
|
25
20
|
done: (result: OAuthRedirectResult) => void;
|
|
26
21
|
error: (reason: any) => void;
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { MagicUserMetadata } from '@magic-sdk/types';
|
|
2
2
|
export declare enum OAuthPayloadMethods {
|
|
3
|
-
|
|
3
|
+
Start = "magic_oauth_login_with_redirect_start",
|
|
4
|
+
Verify = "magic_oauth_login_with_redirect_verify",
|
|
5
|
+
Popup = "magic_oauth_login_with_popup"
|
|
4
6
|
}
|
|
5
7
|
export type OAuthProvider = 'google' | 'facebook' | 'apple' | 'github' | 'bitbucket' | 'gitlab' | 'linkedin' | 'twitter' | 'discord' | 'twitch' | 'microsoft';
|
|
6
8
|
export interface OAuthErrorData {
|
|
@@ -83,3 +85,8 @@ export declare enum OAuthErrorCode {
|
|
|
83
85
|
ServerError = "server_error",
|
|
84
86
|
TemporarilyUnavailable = "temporarily_unavailable"
|
|
85
87
|
}
|
|
88
|
+
export interface OAuthRedirectStartResult {
|
|
89
|
+
oauthAuthoriationURI?: string;
|
|
90
|
+
useMagicServerCallback?: boolean;
|
|
91
|
+
shouldReturnURI?: boolean;
|
|
92
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magic-ext/react-native-bare-oauth",
|
|
3
|
-
"version": "27.0.0
|
|
3
|
+
"version": "27.0.0",
|
|
4
4
|
"description": "Magic SDK OAuth Extension for Bare React Native environments.",
|
|
5
5
|
"author": "Magic <team@magic.link> (https://magic.link/)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,18 +26,15 @@
|
|
|
26
26
|
]
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"
|
|
30
|
-
"react-native-device-info": "^10.3.0"
|
|
29
|
+
"react-native-inappbrowser-reborn": "^3.7.0"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
|
-
"@magic-sdk/react-native-bare": "^
|
|
34
|
-
"@magic-sdk/types": "25.0.0
|
|
35
|
-
"@types/crypto-js": "~4.2.0",
|
|
36
|
-
"react-native-inappbrowser-reborn": "^3.7.0"
|
|
32
|
+
"@magic-sdk/react-native-bare": "^31.0.0",
|
|
33
|
+
"@magic-sdk/types": "^25.0.0"
|
|
37
34
|
},
|
|
38
35
|
"peerDependencies": {
|
|
39
36
|
"@magic-sdk/react-native-bare": ">=13.0.0",
|
|
40
37
|
"react-native-inappbrowser-reborn": ">=3.7.0"
|
|
41
38
|
},
|
|
42
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "be1e437bcade3e4c5f5186509b7faab7c33d03a0"
|
|
43
40
|
}
|
package/dist/types/crypto.d.ts
DELETED