@capgo/capacitor-social-login 0.0.64 → 0.0.67

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 Capgo
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -357,11 +357,11 @@ Refresh the access token
357
357
 
358
358
  #### FacebookLoginResponse
359
359
 
360
- | Prop | Type |
361
- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
362
- | **`accessToken`** | <code><a href="#accesstoken">AccessToken</a> \| null</code> |
363
- | **`profile`** | <code>{ userID: string; email: string \| null; friendIDs: string[]; birthday: string \| null; ageRange: { min?: number; max?: number; } \| null; gender: string \| null; location: { id: string; name: string; } \| null; hometown: { id: string; name: string; } \| null; profileURL: string \| null; name: string \| null; imageURL: string \| null; }</code> |
364
- | **`authenticationToken`** | <code>string \| null</code> |
360
+ | Prop | Type |
361
+ | ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
362
+ | **`accessToken`** | <code><a href="#accesstoken">AccessToken</a> \| null</code> |
363
+ | **`idToken`** | <code>string \| null</code> |
364
+ | **`profile`** | <code>{ userID: string; email: string \| null; friendIDs: string[]; birthday: string \| null; ageRange: { min?: number; max?: number; } \| null; gender: string \| null; location: { id: string; name: string; } \| null; hometown: { id: string; name: string; } \| null; profileURL: string \| null; name: string \| null; imageURL: string \| null; }</code> |
365
365
 
366
366
 
367
367
  #### AccessToken
@@ -390,12 +390,11 @@ Refresh the access token
390
390
 
391
391
  #### AppleProviderResponse
392
392
 
393
- | Prop | Type |
394
- | ----------------------- | ------------------------------------------------------------------------------------------------------------ |
395
- | **`accessToken`** | <code><a href="#accesstoken">AccessToken</a> \| null</code> |
396
- | **`profile`** | <code>{ user: string; email: string \| null; givenName: string \| null; familyName: string \| null; }</code> |
397
- | **`idToken`** | <code>string \| null</code> |
398
- | **`authorizationCode`** | <code>string \| null</code> |
393
+ | Prop | Type |
394
+ | ----------------- | ------------------------------------------------------------------------------------------------------------ |
395
+ | **`accessToken`** | <code><a href="#accesstoken">AccessToken</a> \| null</code> |
396
+ | **`idToken`** | <code>string \| null</code> |
397
+ | **`profile`** | <code>{ user: string; email: string \| null; givenName: string \| null; familyName: string \| null; }</code> |
399
398
 
400
399
 
401
400
  #### LoginOptions
@@ -264,7 +264,6 @@ public class AppleProvider implements SocialProvider {
264
264
  result.put("accessToken", createAccessTokenObject(accessToken));
265
265
  result.put("profile", createProfileObject(idToken));
266
266
  result.put("idToken", idToken);
267
- result.put("authorizationCode", ""); // Apple doesn't provide this in the response
268
267
 
269
268
  JSObject response = new JSObject();
270
269
  response.put("provider", "apple");
@@ -99,7 +99,7 @@ public class FacebookProvider implements SocialProvider {
99
99
  result.put("accessToken", createAccessTokenObject(accessToken));
100
100
  result.put("profile", createProfileObject(accessToken));
101
101
  result.put(
102
- "authenticationToken",
102
+ "idToken",
103
103
  loginResult.getAuthenticationToken() != null
104
104
  ? loginResult.getAuthenticationToken().getToken()
105
105
  : null
package/dist/docs.json CHANGED
@@ -231,18 +231,18 @@
231
231
  "type": "AccessToken | null"
232
232
  },
233
233
  {
234
- "name": "profile",
234
+ "name": "idToken",
235
235
  "tags": [],
236
236
  "docs": "",
237
237
  "complexTypes": [],
238
- "type": "{ userID: string; email: string | null; friendIDs: string[]; birthday: string | null; ageRange: { min?: number | undefined; max?: number | undefined; } | null; gender: string | null; location: { id: string; name: string; } | null; hometown: { id: string; name: string; } | null; profileURL: string | null; name: string | null; imageURL: string | null; }"
238
+ "type": "string | null"
239
239
  },
240
240
  {
241
- "name": "authenticationToken",
241
+ "name": "profile",
242
242
  "tags": [],
243
243
  "docs": "",
244
244
  "complexTypes": [],
245
- "type": "string | null"
245
+ "type": "{ userID: string; email: string | null; friendIDs: string[]; birthday: string | null; ageRange: { min?: number | undefined; max?: number | undefined; } | null; gender: string | null; location: { id: string; name: string; } | null; hometown: { id: string; name: string; } | null; profileURL: string | null; name: string | null; imageURL: string | null; }"
246
246
  }
247
247
  ]
248
248
  },
@@ -366,13 +366,6 @@
366
366
  ],
367
367
  "type": "AccessToken | null"
368
368
  },
369
- {
370
- "name": "profile",
371
- "tags": [],
372
- "docs": "",
373
- "complexTypes": [],
374
- "type": "{ user: string; email: string | null; givenName: string | null; familyName: string | null; }"
375
- },
376
369
  {
377
370
  "name": "idToken",
378
371
  "tags": [],
@@ -381,11 +374,11 @@
381
374
  "type": "string | null"
382
375
  },
383
376
  {
384
- "name": "authorizationCode",
377
+ "name": "profile",
385
378
  "tags": [],
386
379
  "docs": "",
387
380
  "complexTypes": [],
388
- "type": "string | null"
381
+ "type": "{ user: string; email: string | null; givenName: string | null; familyName: string | null; }"
389
382
  }
390
383
  ]
391
384
  },
@@ -116,14 +116,13 @@ export interface AppleProviderOptions {
116
116
  }
117
117
  export interface AppleProviderResponse {
118
118
  accessToken: AccessToken | null;
119
+ idToken: string | null;
119
120
  profile: {
120
121
  user: string;
121
122
  email: string | null;
122
123
  givenName: string | null;
123
124
  familyName: string | null;
124
125
  };
125
- idToken: string | null;
126
- authorizationCode: string | null;
127
126
  }
128
127
  export interface LoginOptions {
129
128
  /**
@@ -162,6 +161,7 @@ export interface AccessToken {
162
161
  }
163
162
  export interface FacebookLoginResponse {
164
163
  accessToken: AccessToken | null;
164
+ idToken: string | null;
165
165
  profile: {
166
166
  userID: string;
167
167
  email: string | null;
@@ -184,7 +184,6 @@ export interface FacebookLoginResponse {
184
184
  name: string | null;
185
185
  imageURL: string | null;
186
186
  };
187
- authenticationToken: string | null;
188
187
  }
189
188
  export interface AuthorizationCode {
190
189
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface InitializeOptions {\n facebook?: {\n /**\n * Facebook App ID, provided by Facebook for web, in mobile it's set in the native files\n */\n appId: string;\n /**\n * Facebook Client Token, provided by Facebook for web, in mobile it's set in the native files\n */\n clientToken: string;\n };\n\n google?: {\n /**\n * The app's client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSClientId?: string;\n /**\n * The app's server client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSServerClientId?: string;\n /**\n * The app's web client ID, found and created in the Google Developers Console.\n * For Android (and web in the future).\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n webClientId?: string;\n };\n apple?: {\n /**\n * Apple Client ID, provided by Apple for web and Android\n */\n clientId?: string;\n /**\n * Apple Redirect URL, should be your backend url that is configured in your apple app, only for android\n */\n redirectUrl?: string;\n };\n}\n\nexport interface FacebookLoginOptions {\n /**\n * Permissions\n * @description select permissions to login with\n */\n permissions: string[];\n /**\n * Is Limited Login\n * @description use limited login for Facebook IOS\n * @default false\n */\n limitedLogin?: boolean;\n /**\n * Nonce\n * @description A custom nonce to use for the login request\n */\n nonce?: string;\n}\n\nexport interface GoogleLoginOptions {\n /**\n * Specifies the scopes required for accessing Google APIs\n * The default is defined in the configuration.\n * @example [\"profile\", \"email\"]\n * @see [Google OAuth2 Scopes](https://developers.google.com/identity/protocols/oauth2/scopes)\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * Set if your application needs to refresh access tokens when the user is not present at the browser.\n * In response use `serverAuthCode` key\n *\n * @default false\n * @since 3.1.0\n * */\n grantOfflineAccess?: boolean;\n}\n\nexport interface GoogleLoginResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n email: string | null;\n familyName: string | null;\n givenName: string | null;\n id: string | null;\n name: string | null;\n imageUrl: string | null;\n };\n}\n\nexport interface AppleProviderOptions {\n /**\n * Scopes\n * @description An array of scopes to request during login\n * @example [\"name\", \"email\"]\n * default: [\"name\", \"email\"]\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * State\n * @description state\n */\n state?: string;\n}\n\nexport interface AppleProviderResponse {\n accessToken: AccessToken | null;\n profile: {\n user: string;\n email: string | null;\n givenName: string | null;\n familyName: string | null;\n };\n idToken: string | null;\n authorizationCode: string | null;\n}\n\nexport interface LoginOptions {\n /**\n * Provider\n * @description select provider to login with\n */\n provider: \"facebook\" | \"google\" | \"apple\" | \"twitter\";\n /**\n * Options\n * @description payload to login with\n */\n options: FacebookLoginOptions | GoogleLoginOptions | AppleProviderOptions;\n}\n\nexport interface LoginResult {\n /**\n * Provider\n * @description select provider to login with\n */\n provider: \"facebook\" | \"google\" | \"apple\" | \"twitter\";\n /**\n * Payload\n * @description payload to login with\n */\n result: FacebookLoginResponse | GoogleLoginResponse | AppleProviderResponse;\n}\n\nexport interface AccessToken {\n applicationId?: string;\n declinedPermissions?: string[];\n expires?: string;\n isExpired?: boolean;\n lastRefresh?: string;\n permissions?: string[];\n token: string;\n refreshToken?: string;\n userId?: string;\n}\n\nexport interface FacebookLoginResponse {\n accessToken: AccessToken | null;\n profile: {\n userID: string;\n email: string | null;\n friendIDs: string[];\n birthday: string | null;\n ageRange: { min?: number; max?: number } | null;\n gender: string | null;\n location: { id: string; name: string } | null;\n hometown: { id: string; name: string } | null;\n profileURL: string | null;\n name: string | null;\n imageURL: string | null;\n };\n authenticationToken: string | null;\n}\n\nexport interface AuthorizationCode {\n /**\n * Jwt\n * @description A JSON web token\n */\n jwt: string;\n}\n\nexport interface AuthorizationCodeOptions {\n /**\n * Provider\n * @description Provider for the authorization code\n */\n provider: \"apple\" | \"google\" | \"facebook\";\n}\n\nexport interface isLoggedInOptions {\n /**\n * Provider\n * @description Provider for the isLoggedIn\n */\n provider: \"apple\" | \"google\" | \"facebook\";\n}\n\nexport interface SocialLoginPlugin {\n /**\n * Initialize the plugin\n * @description initialize the plugin with the required options\n */\n initialize(options: InitializeOptions): Promise<void>;\n /**\n * Login with the selected provider\n * @description login with the selected provider\n */\n login(options: LoginOptions): Promise<LoginResult>;\n /**\n * Logout\n * @description logout the user\n */\n logout(options: { provider: \"apple\" | \"google\" | \"facebook\" }): Promise<void>;\n /**\n * IsLoggedIn\n * @description logout the user\n */\n isLoggedIn(options: isLoggedInOptions): Promise<{ isLoggedIn: boolean }>;\n\n /**\n * Get the current access token\n * @description get the current access token\n */\n getAuthorizationCode(\n options: AuthorizationCodeOptions,\n ): Promise<AuthorizationCode>;\n /**\n * Refresh the access token\n * @description refresh the access token\n */\n refresh(options: LoginOptions): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["export interface InitializeOptions {\n facebook?: {\n /**\n * Facebook App ID, provided by Facebook for web, in mobile it's set in the native files\n */\n appId: string;\n /**\n * Facebook Client Token, provided by Facebook for web, in mobile it's set in the native files\n */\n clientToken: string;\n };\n\n google?: {\n /**\n * The app's client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSClientId?: string;\n /**\n * The app's server client ID, found and created in the Google Developers Console.\n * For iOS.\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n iOSServerClientId?: string;\n /**\n * The app's web client ID, found and created in the Google Developers Console.\n * For Android (and web in the future).\n * @example xxxxxx-xxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n * @since 3.1.0\n */\n webClientId?: string;\n };\n apple?: {\n /**\n * Apple Client ID, provided by Apple for web and Android\n */\n clientId?: string;\n /**\n * Apple Redirect URL, should be your backend url that is configured in your apple app, only for android\n */\n redirectUrl?: string;\n };\n}\n\nexport interface FacebookLoginOptions {\n /**\n * Permissions\n * @description select permissions to login with\n */\n permissions: string[];\n /**\n * Is Limited Login\n * @description use limited login for Facebook IOS\n * @default false\n */\n limitedLogin?: boolean;\n /**\n * Nonce\n * @description A custom nonce to use for the login request\n */\n nonce?: string;\n}\n\nexport interface GoogleLoginOptions {\n /**\n * Specifies the scopes required for accessing Google APIs\n * The default is defined in the configuration.\n * @example [\"profile\", \"email\"]\n * @see [Google OAuth2 Scopes](https://developers.google.com/identity/protocols/oauth2/scopes)\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * Set if your application needs to refresh access tokens when the user is not present at the browser.\n * In response use `serverAuthCode` key\n *\n * @default false\n * @since 3.1.0\n * */\n grantOfflineAccess?: boolean;\n}\n\nexport interface GoogleLoginResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n email: string | null;\n familyName: string | null;\n givenName: string | null;\n id: string | null;\n name: string | null;\n imageUrl: string | null;\n };\n}\n\nexport interface AppleProviderOptions {\n /**\n * Scopes\n * @description An array of scopes to request during login\n * @example [\"name\", \"email\"]\n * default: [\"name\", \"email\"]\n */\n scopes?: string[];\n /**\n * Nonce\n * @description nonce\n */\n nonce?: string;\n /**\n * State\n * @description state\n */\n state?: string;\n}\n\nexport interface AppleProviderResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n user: string;\n email: string | null;\n givenName: string | null;\n familyName: string | null;\n };\n}\n\nexport interface LoginOptions {\n /**\n * Provider\n * @description select provider to login with\n */\n provider: \"facebook\" | \"google\" | \"apple\" | \"twitter\";\n /**\n * Options\n * @description payload to login with\n */\n options: FacebookLoginOptions | GoogleLoginOptions | AppleProviderOptions;\n}\n\nexport interface LoginResult {\n /**\n * Provider\n * @description select provider to login with\n */\n provider: \"facebook\" | \"google\" | \"apple\" | \"twitter\";\n /**\n * Payload\n * @description payload to login with\n */\n result: FacebookLoginResponse | GoogleLoginResponse | AppleProviderResponse;\n}\n\nexport interface AccessToken {\n applicationId?: string;\n declinedPermissions?: string[];\n expires?: string;\n isExpired?: boolean;\n lastRefresh?: string;\n permissions?: string[];\n token: string;\n refreshToken?: string;\n userId?: string;\n}\n\nexport interface FacebookLoginResponse {\n accessToken: AccessToken | null;\n idToken: string | null;\n profile: {\n userID: string;\n email: string | null;\n friendIDs: string[];\n birthday: string | null;\n ageRange: { min?: number; max?: number } | null;\n gender: string | null;\n location: { id: string; name: string } | null;\n hometown: { id: string; name: string } | null;\n profileURL: string | null;\n name: string | null;\n imageURL: string | null;\n };\n}\n\nexport interface AuthorizationCode {\n /**\n * Jwt\n * @description A JSON web token\n */\n jwt: string;\n}\n\nexport interface AuthorizationCodeOptions {\n /**\n * Provider\n * @description Provider for the authorization code\n */\n provider: \"apple\" | \"google\" | \"facebook\";\n}\n\nexport interface isLoggedInOptions {\n /**\n * Provider\n * @description Provider for the isLoggedIn\n */\n provider: \"apple\" | \"google\" | \"facebook\";\n}\n\nexport interface SocialLoginPlugin {\n /**\n * Initialize the plugin\n * @description initialize the plugin with the required options\n */\n initialize(options: InitializeOptions): Promise<void>;\n /**\n * Login with the selected provider\n * @description login with the selected provider\n */\n login(options: LoginOptions): Promise<LoginResult>;\n /**\n * Logout\n * @description logout the user\n */\n logout(options: { provider: \"apple\" | \"google\" | \"facebook\" }): Promise<void>;\n /**\n * IsLoggedIn\n * @description logout the user\n */\n isLoggedIn(options: isLoggedInOptions): Promise<{ isLoggedIn: boolean }>;\n\n /**\n * Get the current access token\n * @description get the current access token\n */\n getAuthorizationCode(\n options: AuthorizationCodeOptions,\n ): Promise<AuthorizationCode>;\n /**\n * Refresh the access token\n * @description refresh the access token\n */\n refresh(options: LoginOptions): Promise<void>;\n}\n"]}
package/dist/esm/web.js CHANGED
@@ -235,10 +235,9 @@ export class SocialLoginWeb extends WebPlugin {
235
235
  familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,
236
236
  },
237
237
  accessToken: {
238
- token: "", // TODO: to fix and find the correct token
238
+ token: res.authorization.code, // TODO: to fix and find the correct token
239
239
  },
240
240
  idToken: res.authorization.id_token || null,
241
- authorizationCode: res.authorization.code || null,
242
241
  };
243
242
  resolve({ provider: "apple", result });
244
243
  })
@@ -320,7 +319,7 @@ export class SocialLoginWeb extends WebPlugin {
320
319
  hometown: null,
321
320
  profileURL: null,
322
321
  },
323
- authenticationToken: null,
322
+ idToken: null,
324
323
  };
325
324
  resolve({ provider: "facebook", result });
326
325
  });
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from \"@capacitor/core\";\n\nimport type {\n SocialLoginPlugin,\n InitializeOptions,\n LoginOptions,\n LoginResult,\n AuthorizationCode,\n GoogleLoginResponse,\n AppleProviderResponse,\n isLoggedInOptions,\n AuthorizationCodeOptions,\n FacebookLoginOptions,\n FacebookLoginResponse,\n} from \"./definitions\";\n\n// Add this declaration at the top of the file\ndeclare const google: {\n accounts: {\n id: {\n initialize(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n }): void;\n prompt(callback: (notification: any) => void): void;\n };\n oauth2: {\n initTokenClient(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n scope: string\n }): {\n requestAccessToken(): void;\n };\n }\n };\n};\n\ndeclare const AppleID: any;\n\ndeclare const FB: {\n init(options: any): void;\n login(\n callback: (response: {\n status: string;\n authResponse: { accessToken: string; userID: string };\n }) => void,\n options?: { scope: string },\n ): void;\n logout(callback: () => void): void;\n api(\n path: string,\n params: { fields: string },\n callback: (response: any) => void,\n ): void;\n getLoginStatus(\n callback: (response: {\n status: string;\n authResponse?: { accessToken: string };\n }) => void,\n ): void;\n};\n\nexport class SocialLoginWeb extends WebPlugin implements SocialLoginPlugin {\n private googleClientId: string | null = null;\n private appleClientId: string | null = null;\n private googleScriptLoaded = false;\n private appleScriptLoaded = false;\n private appleScriptUrl =\n \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n private facebookAppId: string | null = null;\n private facebookScriptLoaded = false;\n\n async initialize(options: InitializeOptions): Promise<void> {\n if (options.google?.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if (options.apple?.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if (options.facebook?.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n\n async login(options: LoginOptions): Promise<LoginResult> {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n } else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n } else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options as FacebookLoginOptions);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n\n async logout(options: {\n provider: \"apple\" | \"google\" | \"facebook\";\n }): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\n \"Google logout: Token should be revoked on the client side if stored\",\n );\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\n \"Apple logout: Session should be managed on the client side\",\n );\n break;\n case \"facebook\":\n return new Promise<void>((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n\n async isLoggedIn(\n options: isLoggedInOptions,\n ): Promise<{ isLoggedIn: boolean }> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(\n `isLoggedIn for ${options.provider} is not implemented`,\n );\n }\n }\n\n async getAuthorizationCode(\n options: AuthorizationCodeOptions,\n ): Promise<AuthorizationCode> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n if (response.status === \"connected\") {\n resolve({ jwt: response.authResponse?.accessToken || \"\" });\n } else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(\n `getAuthorizationCode for ${options.provider} is not implemented`,\n );\n }\n }\n\n async refresh(options: LoginOptions): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options as FacebookLoginOptions);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n\n private async loginWithGoogle(options: any): Promise<LoginResult> {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n\n const scopes = options.scopes || [\"email\", \"profile\"];\n\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n } else {\n const payload = this.parseJwt(response.credential);\n const result: GoogleLoginResponse = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n } else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n\n private parseJwt(token: string) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"),\n );\n return JSON.parse(jsonPayload);\n }\n\n private async loadGoogleScript(): Promise<void> {\n if (this.googleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithApple(options: any): Promise<LoginResult> {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n\n return new Promise((resolve, reject) => {\n AppleID.auth.init({\n clientId: this.appleClientId!,\n scope: options.scopes?.join(\" \") || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n\n AppleID.auth\n .signIn()\n .then((res: any) => {\n const result: AppleProviderResponse = {\n profile: {\n user: res.user?.name?.firstName\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: res.user?.email || null,\n givenName: res.user?.name?.firstName || null,\n familyName: res.user?.name?.lastName || null,\n },\n accessToken: {\n token: \"\", // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n authorizationCode: res.authorization.code || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error: any) => {\n reject(error);\n });\n });\n }\n\n private async loadAppleScript(): Promise<void> {\n if (this.appleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async getGoogleUser(): Promise<any> {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n\n private async loadFacebookScript(): Promise<void> {\n if (this.facebookScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithFacebook(\n options: FacebookLoginOptions,\n ): Promise<LoginResult> {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n\n return new Promise((resolve, reject) => {\n FB.login(\n (response) => {\n if (response.status === \"connected\") {\n FB.api(\n \"/me\",\n { fields: \"id,name,email,picture\" },\n (userInfo: any) => {\n const result: FacebookLoginResponse = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: userInfo.picture?.data?.url || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n authenticationToken: null,\n };\n resolve({ provider: \"facebook\", result });\n },\n );\n } else {\n reject(new Error(\"Facebook login failed\"));\n }\n },\n { scope: options.permissions.join(\",\") },\n );\n });\n }\n\n private async fallbackToTraditionalOAuth(scopes: string[]): Promise<LoginResult> {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId!,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n } else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result: GoogleLoginResponse = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n"]}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebPlugin } from \"@capacitor/core\";\n\nimport type {\n SocialLoginPlugin,\n InitializeOptions,\n LoginOptions,\n LoginResult,\n AuthorizationCode,\n GoogleLoginResponse,\n AppleProviderResponse,\n isLoggedInOptions,\n AuthorizationCodeOptions,\n FacebookLoginOptions,\n FacebookLoginResponse,\n} from \"./definitions\";\n\n// Add this declaration at the top of the file\ndeclare const google: {\n accounts: {\n id: {\n initialize(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n }): void;\n prompt(callback: (notification: any) => void): void;\n };\n oauth2: {\n initTokenClient(config: {\n client_id: string;\n callback: (response: any) => void;\n auto_select?: boolean;\n scope: string\n }): {\n requestAccessToken(): void;\n };\n }\n };\n};\n\ndeclare const AppleID: any;\n\ndeclare const FB: {\n init(options: any): void;\n login(\n callback: (response: {\n status: string;\n authResponse: { accessToken: string; userID: string };\n }) => void,\n options?: { scope: string },\n ): void;\n logout(callback: () => void): void;\n api(\n path: string,\n params: { fields: string },\n callback: (response: any) => void,\n ): void;\n getLoginStatus(\n callback: (response: {\n status: string;\n authResponse?: { accessToken: string };\n }) => void,\n ): void;\n};\n\nexport class SocialLoginWeb extends WebPlugin implements SocialLoginPlugin {\n private googleClientId: string | null = null;\n private appleClientId: string | null = null;\n private googleScriptLoaded = false;\n private appleScriptLoaded = false;\n private appleScriptUrl =\n \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n private facebookAppId: string | null = null;\n private facebookScriptLoaded = false;\n\n async initialize(options: InitializeOptions): Promise<void> {\n if (options.google?.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if (options.apple?.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if (options.facebook?.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n\n async login(options: LoginOptions): Promise<LoginResult> {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n } else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n } else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options as FacebookLoginOptions);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n\n async logout(options: {\n provider: \"apple\" | \"google\" | \"facebook\";\n }): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\n \"Google logout: Token should be revoked on the client side if stored\",\n );\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\n \"Apple logout: Session should be managed on the client side\",\n );\n break;\n case \"facebook\":\n return new Promise<void>((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n\n async isLoggedIn(\n options: isLoggedInOptions,\n ): Promise<{ isLoggedIn: boolean }> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(\n `isLoggedIn for ${options.provider} is not implemented`,\n );\n }\n }\n\n async getAuthorizationCode(\n options: AuthorizationCodeOptions,\n ): Promise<AuthorizationCode> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n if (response.status === \"connected\") {\n resolve({ jwt: response.authResponse?.accessToken || \"\" });\n } else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(\n `getAuthorizationCode for ${options.provider} is not implemented`,\n );\n }\n }\n\n async refresh(options: LoginOptions): Promise<void> {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options as FacebookLoginOptions);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n\n private async loginWithGoogle(options: any): Promise<LoginResult> {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n\n const scopes = options.scopes || [\"email\", \"profile\"];\n\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n } else {\n const payload = this.parseJwt(response.credential);\n const result: GoogleLoginResponse = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n } else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n\n private parseJwt(token: string) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(\n atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"),\n );\n return JSON.parse(jsonPayload);\n }\n\n private async loadGoogleScript(): Promise<void> {\n if (this.googleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithApple(options: any): Promise<LoginResult> {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n\n return new Promise((resolve, reject) => {\n AppleID.auth.init({\n clientId: this.appleClientId!,\n scope: options.scopes?.join(\" \") || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n\n AppleID.auth\n .signIn()\n .then((res: any) => {\n const result: AppleProviderResponse = {\n profile: {\n user: res.user?.name?.firstName\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: res.user?.email || null,\n givenName: res.user?.name?.firstName || null,\n familyName: res.user?.name?.lastName || null,\n },\n accessToken: {\n token: res.authorization.code , // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error: any) => {\n reject(error);\n });\n });\n }\n\n private async loadAppleScript(): Promise<void> {\n if (this.appleScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async getGoogleUser(): Promise<any> {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId!,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n\n private async loadFacebookScript(): Promise<void> {\n if (this.facebookScriptLoaded) return;\n\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n\n private async loginWithFacebook(\n options: FacebookLoginOptions,\n ): Promise<LoginResult> {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n\n return new Promise((resolve, reject) => {\n FB.login(\n (response) => {\n if (response.status === \"connected\") {\n FB.api(\n \"/me\",\n { fields: \"id,name,email,picture\" },\n (userInfo: any) => {\n const result: FacebookLoginResponse = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: userInfo.picture?.data?.url || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n idToken: null,\n };\n resolve({ provider: \"facebook\", result });\n },\n );\n } else {\n reject(new Error(\"Facebook login failed\"));\n }\n },\n { scope: options.permissions.join(\",\") },\n );\n });\n }\n\n private async fallbackToTraditionalOAuth(scopes: string[]): Promise<LoginResult> {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId!,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n } else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result: GoogleLoginResponse = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n"]}
@@ -242,10 +242,9 @@ class SocialLoginWeb extends core.WebPlugin {
242
242
  familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,
243
243
  },
244
244
  accessToken: {
245
- token: "", // TODO: to fix and find the correct token
245
+ token: res.authorization.code, // TODO: to fix and find the correct token
246
246
  },
247
247
  idToken: res.authorization.id_token || null,
248
- authorizationCode: res.authorization.code || null,
249
248
  };
250
249
  resolve({ provider: "apple", result });
251
250
  })
@@ -327,7 +326,7 @@ class SocialLoginWeb extends core.WebPlugin {
327
326
  hometown: null,
328
327
  profileURL: null,
329
328
  },
330
- authenticationToken: null,
329
+ idToken: null,
331
330
  };
332
331
  resolve({ provider: "facebook", result });
333
332
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: \"\", // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n authorizationCode: res.authorization.code || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n authenticationToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: res.authorization.code, // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n idToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
package/dist/plugin.js CHANGED
@@ -241,10 +241,9 @@ var capacitorCapacitorUpdater = (function (exports, core) {
241
241
  familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,
242
242
  },
243
243
  accessToken: {
244
- token: "", // TODO: to fix and find the correct token
244
+ token: res.authorization.code, // TODO: to fix and find the correct token
245
245
  },
246
246
  idToken: res.authorization.id_token || null,
247
- authorizationCode: res.authorization.code || null,
248
247
  };
249
248
  resolve({ provider: "apple", result });
250
249
  })
@@ -326,7 +325,7 @@ var capacitorCapacitorUpdater = (function (exports, core) {
326
325
  hometown: null,
327
326
  profileURL: null,
328
327
  },
329
- authenticationToken: null,
328
+ idToken: null,
330
329
  };
331
330
  resolve({ provider: "facebook", result });
332
331
  });
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: \"\", // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n authorizationCode: res.authorization.code || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n authenticationToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["esm/index.js","esm/web.js"],"sourcesContent":["import { registerPlugin } from \"@capacitor/core\";\nconst SocialLogin = registerPlugin(\"SocialLogin\", {\n web: () => import(\"./web\").then((m) => new m.SocialLoginWeb()),\n});\nexport * from \"./definitions\";\nexport { SocialLogin };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from \"@capacitor/core\";\nexport class SocialLoginWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.googleClientId = null;\n this.appleClientId = null;\n this.googleScriptLoaded = false;\n this.appleScriptLoaded = false;\n this.appleScriptUrl = \"https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/en_US/appleid.auth.js\";\n this.facebookAppId = null;\n this.facebookScriptLoaded = false;\n }\n async initialize(options) {\n var _a, _b, _c;\n if ((_a = options.google) === null || _a === void 0 ? void 0 : _a.webClientId) {\n this.googleClientId = options.google.webClientId;\n await this.loadGoogleScript();\n }\n if ((_b = options.apple) === null || _b === void 0 ? void 0 : _b.clientId) {\n this.appleClientId = options.apple.clientId;\n await this.loadAppleScript();\n }\n if ((_c = options.facebook) === null || _c === void 0 ? void 0 : _c.appId) {\n this.facebookAppId = options.facebook.appId;\n await this.loadFacebookScript();\n FB.init({\n appId: this.facebookAppId,\n version: \"v17.0\",\n xfbml: true,\n cookie: true,\n });\n }\n // Implement initialization for other providers if needed\n }\n async login(options) {\n if (options.provider === \"google\") {\n return this.loginWithGoogle(options.options);\n }\n else if (options.provider === \"apple\") {\n return this.loginWithApple(options.options);\n }\n else if (options.provider === \"facebook\") {\n return this.loginWithFacebook(options.options);\n }\n // Implement login for other providers\n throw new Error(`Login for ${options.provider} is not implemented on web`);\n }\n async logout(options) {\n switch (options.provider) {\n case \"google\":\n // Google doesn't have a specific logout method for web\n // We can revoke the token if we have it stored\n console.log(\"Google logout: Token should be revoked on the client side if stored\");\n break;\n case \"apple\":\n // Apple doesn't provide a logout method for web\n console.log(\"Apple logout: Session should be managed on the client side\");\n break;\n case \"facebook\":\n return new Promise((resolve) => {\n FB.logout(() => resolve());\n });\n default:\n throw new Error(`Logout for ${options.provider} is not implemented`);\n }\n }\n async isLoggedIn(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can check if there's a valid token\n const googleUser = await this.getGoogleUser();\n return { isLoggedIn: !!googleUser };\n case \"apple\":\n // Apple doesn't provide a method to check login status on web\n console.log(\"Apple login status should be managed on the client side\");\n return { isLoggedIn: false };\n case \"facebook\":\n return new Promise((resolve) => {\n FB.getLoginStatus((response) => {\n resolve({ isLoggedIn: response.status === \"connected\" });\n });\n });\n default:\n throw new Error(`isLoggedIn for ${options.provider} is not implemented`);\n }\n }\n async getAuthorizationCode(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can use the id_token as the authorization code\n const googleUser = await this.getGoogleUser();\n if (googleUser && googleUser.credential) {\n return { jwt: googleUser.credential };\n }\n throw new Error(\"No Google authorization code available\");\n case \"apple\":\n // Apple authorization code should be obtained during login\n console.log(\"Apple authorization code should be stored during login\");\n throw new Error(\"Apple authorization code not available\");\n case \"facebook\":\n return new Promise((resolve, reject) => {\n FB.getLoginStatus((response) => {\n var _a;\n if (response.status === \"connected\") {\n resolve({ jwt: ((_a = response.authResponse) === null || _a === void 0 ? void 0 : _a.accessToken) || \"\" });\n }\n else {\n reject(new Error(\"No Facebook authorization code available\"));\n }\n });\n });\n default:\n throw new Error(`getAuthorizationCode for ${options.provider} is not implemented`);\n }\n }\n async refresh(options) {\n switch (options.provider) {\n case \"google\":\n // For Google, we can prompt for re-authentication\n await this.loginWithGoogle(options.options);\n break;\n case \"apple\":\n // Apple doesn't provide a refresh method for web\n console.log(\"Apple refresh not available on web\");\n break;\n case \"facebook\":\n await this.loginWithFacebook(options.options);\n break;\n default:\n throw new Error(`Refresh for ${options.provider} is not implemented`);\n }\n }\n async loginWithGoogle(options) {\n if (!this.googleClientId) {\n throw new Error(\"Google Client ID not set. Call initialize() first.\");\n }\n const scopes = options.scopes || [\"email\", \"profile\"];\n if (scopes.length > 0) {\n // If scopes are provided, directly use the traditional OAuth flow\n return this.fallbackToTraditionalOAuth(scopes);\n }\n return new Promise((resolve, reject) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n console.log(\"google.accounts.id.initialize callback\", response);\n if (response.error) {\n reject(response.error);\n }\n else {\n const payload = this.parseJwt(response.credential);\n const result = {\n accessToken: null,\n idToken: response.credential,\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n auto_select: true\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n console.log(\"OneTap is not displayed or skipped\");\n // Fallback to traditional OAuth if One Tap is not available\n this.fallbackToTraditionalOAuth(scopes).then(resolve).catch(reject);\n }\n else {\n console.log(\"OneTap is displayed\");\n }\n });\n });\n }\n parseJwt(token) {\n const base64Url = token.split(\".\")[1];\n const base64 = base64Url.replace(/-/g, \"+\").replace(/_/g, \"/\");\n const jsonPayload = decodeURIComponent(atob(base64)\n .split(\"\")\n .map((c) => {\n return \"%\" + (\"00\" + c.charCodeAt(0).toString(16)).slice(-2);\n })\n .join(\"\"));\n return JSON.parse(jsonPayload);\n }\n async loadGoogleScript() {\n if (this.googleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://accounts.google.com/gsi/client\";\n script.async = true;\n script.onload = () => {\n this.googleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithApple(options) {\n if (!this.appleClientId) {\n throw new Error(\"Apple Client ID not set. Call initialize() first.\");\n }\n if (!this.appleScriptLoaded) {\n throw new Error(\"Apple Sign-In script not loaded.\");\n }\n return new Promise((resolve, reject) => {\n var _a;\n AppleID.auth.init({\n clientId: this.appleClientId,\n scope: ((_a = options.scopes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || \"name email\",\n redirectURI: options.redirectUrl || window.location.href,\n state: options.state,\n nonce: options.nonce,\n usePopup: true,\n });\n AppleID.auth\n .signIn()\n .then((res) => {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = {\n profile: {\n user: ((_b = (_a = res.user) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.firstName)\n ? `${res.user.name.firstName} ${res.user.name.lastName}`\n : \"\",\n email: ((_c = res.user) === null || _c === void 0 ? void 0 : _c.email) || null,\n givenName: ((_e = (_d = res.user) === null || _d === void 0 ? void 0 : _d.name) === null || _e === void 0 ? void 0 : _e.firstName) || null,\n familyName: ((_g = (_f = res.user) === null || _f === void 0 ? void 0 : _f.name) === null || _g === void 0 ? void 0 : _g.lastName) || null,\n },\n accessToken: {\n token: res.authorization.code, // TODO: to fix and find the correct token\n },\n idToken: res.authorization.id_token || null,\n };\n resolve({ provider: \"apple\", result });\n })\n .catch((error) => {\n reject(error);\n });\n });\n }\n async loadAppleScript() {\n if (this.appleScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = this.appleScriptUrl;\n script.async = true;\n script.onload = () => {\n this.appleScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async getGoogleUser() {\n return new Promise((resolve) => {\n google.accounts.id.initialize({\n client_id: this.googleClientId,\n callback: (response) => {\n resolve(response);\n },\n });\n google.accounts.id.prompt((notification) => {\n if (notification.isNotDisplayed() || notification.isSkippedMoment()) {\n resolve(null);\n }\n });\n });\n }\n async loadFacebookScript() {\n if (this.facebookScriptLoaded)\n return;\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = \"https://connect.facebook.net/en_US/sdk.js\";\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.facebookScriptLoaded = true;\n resolve();\n };\n script.onerror = reject;\n document.body.appendChild(script);\n });\n }\n async loginWithFacebook(options) {\n if (!this.facebookAppId) {\n throw new Error(\"Facebook App ID not set. Call initialize() first.\");\n }\n return new Promise((resolve, reject) => {\n FB.login((response) => {\n if (response.status === \"connected\") {\n FB.api(\"/me\", { fields: \"id,name,email,picture\" }, (userInfo) => {\n var _a, _b;\n const result = {\n accessToken: {\n token: response.authResponse.accessToken,\n userId: response.authResponse.userID,\n },\n profile: {\n userID: userInfo.id,\n name: userInfo.name,\n email: userInfo.email || null,\n imageURL: ((_b = (_a = userInfo.picture) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.url) || null,\n friendIDs: [],\n birthday: null,\n ageRange: null,\n gender: null,\n location: null,\n hometown: null,\n profileURL: null,\n },\n idToken: null,\n };\n resolve({ provider: \"facebook\", result });\n });\n }\n else {\n reject(new Error(\"Facebook login failed\"));\n }\n }, { scope: options.permissions.join(\",\") });\n });\n }\n async fallbackToTraditionalOAuth(scopes) {\n return new Promise((resolve, reject) => {\n const auth2 = google.accounts.oauth2.initTokenClient({\n client_id: this.googleClientId,\n scope: scopes.join(' '),\n callback: (response) => {\n if (response.error) {\n reject(response.error);\n }\n else {\n // Process the response similar to One Tap\n const payload = this.parseJwt(response.access_token);\n const result = {\n accessToken: {\n token: response.access_token\n },\n idToken: null, // Traditional OAuth doesn't provide id_token by default\n profile: {\n email: payload.email || null,\n familyName: payload.family_name || null,\n givenName: payload.given_name || null,\n id: payload.sub || null,\n name: payload.name || null,\n imageUrl: payload.picture || null,\n },\n };\n resolve({ provider: \"google\", result });\n }\n },\n });\n auth2.requestAccessToken();\n });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import Foundation
2
2
  import AuthenticationServices
3
3
  import Alamofire
4
+ import UIKit
4
5
 
5
6
  struct AppleProviderResponse: Codable {
6
7
  let accessToken: AccessTokenApple?
7
8
  let profile: AppleProfile
8
9
  let idToken: String?
9
- let authorizationCode: String?
10
10
  }
11
11
 
12
12
  struct AppleProfile: Codable {
@@ -18,7 +18,14 @@ struct AppleProfile: Codable {
18
18
 
19
19
  struct AccessTokenApple: Codable {
20
20
  let token: String
21
- // Add other fields if needed
21
+ let expiresIn: Int?
22
+ let refreshToken: String?
23
+
24
+ init(token: String, expiresIn: Int? = nil, refreshToken: String? = nil) {
25
+ self.token = token
26
+ self.expiresIn = expiresIn
27
+ self.refreshToken = refreshToken
28
+ }
22
29
  }
23
30
 
24
31
  // Define the Decodable structs for the response
@@ -226,17 +233,23 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
226
233
  let fullName = appleIDCredential.fullName
227
234
  let email = appleIDCredential.email
228
235
 
236
+ // Create proper access token
237
+ let accessToken = AccessTokenApple(
238
+ token: String(data: appleIDCredential.identityToken ?? Data(), encoding: .utf8) ?? "",
239
+ expiresIn: 3600, // Default 1 hour
240
+ refreshToken: nil // Apple doesn't provide refresh token directly
241
+ )
242
+
229
243
  retrieveUserInfo { savedUserInfo in
230
244
  let response = AppleProviderResponse(
231
- accessToken: AccessTokenApple(token: ""), // You might need to implement this
245
+ accessToken: accessToken,
232
246
  profile: AppleProfile(
233
247
  user: userIdentifier,
234
248
  email: email ?? savedUserInfo?.profile.email,
235
249
  givenName: fullName?.givenName ?? savedUserInfo?.profile.givenName,
236
250
  familyName: fullName?.familyName ?? savedUserInfo?.profile.familyName
237
251
  ),
238
- idToken: String(data: appleIDCredential.identityToken ?? Data(), encoding: .utf8),
239
- authorizationCode: String(data: appleIDCredential.authorizationCode ?? Data(), encoding: .utf8)
252
+ idToken: String(data: appleIDCredential.authorizationCode ?? Data(), encoding: .utf8) ?? ""
240
253
  )
241
254
 
242
255
  // Persist user info
@@ -246,7 +259,7 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
246
259
  let firstName = fullName?.givenName ?? ""
247
260
  let lastName = fullName?.familyName ?? ""
248
261
 
249
- self.sendRequest(code: response.authorizationCode ?? "", identityToken: response.idToken ?? "", email: email ?? "", firstName: firstName, lastName: lastName, completion: { result in
262
+ self.sendRequest(code: response.accessToken?.token ?? "", identityToken: response.idToken ?? "", email: email ?? "", firstName: firstName, lastName: lastName, completion: { result in
250
263
  switch result {
251
264
  case .success(let appleResponse):
252
265
  self.completion?(.success(appleResponse))
@@ -356,15 +369,18 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
356
369
  do {
357
370
  try self.persistState(idToken: idToken, refreshToken: refreshToken, accessToken: accessToken)
358
371
  let appleResponse = AppleProviderResponse(
359
- accessToken: AccessTokenApple(token: ""), // You might need to implement this
372
+ accessToken: AccessTokenApple(
373
+ token: accessToken,
374
+ expiresIn: 3600, // Default 1 hour
375
+ refreshToken: refreshToken
376
+ ),
360
377
  profile: AppleProfile(
361
- user: "", // We don't have this information at this point
362
- email: nil, // We don't have this information at this point
363
- givenName: nil, // We don't have this information at this point
364
- familyName: nil // We don't have this information at this point
378
+ user: "",
379
+ email: nil,
380
+ givenName: nil,
381
+ familyName: nil
365
382
  ),
366
- idToken: idToken,
367
- authorizationCode: "" // We don't have this information at this point
383
+ idToken: idToken
368
384
  )
369
385
  completion(.success(appleResponse))
370
386
  return
@@ -376,15 +392,18 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
376
392
 
377
393
  if (pathComponents.filter { $0.name == "ios_no_code" }).first != nil {
378
394
  let appleResponse = AppleProviderResponse(
379
- accessToken: AccessTokenApple(token: ""), // You might need to implement this
395
+ accessToken: AccessTokenApple(
396
+ token: "",
397
+ expiresIn: 3600, // Default 1 hour
398
+ refreshToken: nil
399
+ ),
380
400
  profile: AppleProfile(
381
- user: "", // You might want to extract this from the identityToken
401
+ user: "",
382
402
  email: email,
383
403
  givenName: firstName,
384
404
  familyName: lastName
385
405
  ),
386
- idToken: identityToken,
387
- authorizationCode: code
406
+ idToken: identityToken
388
407
  )
389
408
 
390
409
  do {
@@ -480,15 +499,14 @@ class AppleProvider: NSObject, ASAuthorizationControllerDelegate, ASAuthorizatio
480
499
  let userId = userData["sub"] as? String {
481
500
  // Create the response object
482
501
  let appleResponse = AppleProviderResponse(
483
- accessToken: AccessTokenApple(token: accessToken),
502
+ accessToken: AccessTokenApple(token: accessToken, expiresIn: expiresIn, refreshToken: refreshToken),
484
503
  profile: AppleProfile(
485
504
  user: userId,
486
505
  email: nil, // You might want to extract this from the idToken if available
487
506
  givenName: nil,
488
507
  familyName: nil
489
508
  ),
490
- idToken: idToken,
491
- authorizationCode: code
509
+ idToken: idToken
492
510
  )
493
511
 
494
512
  // Log the tokens (replace with your logging mechanism)
@@ -9,7 +9,7 @@ import FacebookLogin
9
9
  struct FacebookLoginResponse {
10
10
  let accessToken: [String: Any]
11
11
  let profile: [String: Any]
12
- let authenticationToken: String?
12
+ let idToken: String?
13
13
  }
14
14
 
15
15
  class FacebookProvider {
@@ -88,7 +88,7 @@ class FacebookProvider {
88
88
  "isExpired": AccessToken.current?.isExpired ?? false,
89
89
  "refreshDate": AccessToken.current?.refreshDate ?? Date(),
90
90
  "permissions": AccessToken.current?.permissions.map { $0.name } ?? [],
91
- "accessToken": AccessToken.current?.tokenString ?? "",
91
+ "token": AccessToken.current?.tokenString ?? "",
92
92
  "userID": AccessToken.current?.userID ?? ""
93
93
  ]
94
94
 
@@ -109,7 +109,7 @@ class FacebookProvider {
109
109
  return FacebookLoginResponse(
110
110
  accessToken: accessToken,
111
111
  profile: profileData,
112
- authenticationToken: authToken?.tokenString
112
+ idToken: authToken?.tokenString
113
113
  )
114
114
  }
115
115
 
@@ -270,7 +270,6 @@ public class SocialLoginPlugin: CAPPlugin, CAPBridgedPlugin {
270
270
  "accessToken": accessTokenObject ?? NSNull(),
271
271
  "profile": profileObject,
272
272
  "idToken": appleResponse.idToken ?? "",
273
- "authorizationCode": appleResponse.authorizationCode ?? ""
274
273
  ]
275
274
 
276
275
  call.resolve([
@@ -304,7 +303,7 @@ public class SocialLoginPlugin: CAPPlugin, CAPBridgedPlugin {
304
303
  let facebookResult: [String: Any] = [
305
304
  "accessToken": facebookResponse.accessToken,
306
305
  "profile": facebookResponse.profile,
307
- "authenticationToken": facebookResponse.authenticationToken ?? ""
306
+ "idToken": facebookResponse.idToken ?? ""
308
307
  ]
309
308
  call.resolve([
310
309
  "provider": "facebook",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/capacitor-social-login",
3
- "version": "0.0.64",
3
+ "version": "0.0.67",
4
4
  "description": "All social logins in one plugin",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",