Commit 2a84f94d authored by Ben Hsieh's avatar Ben Hsieh
Browse files

anue-fe-sdk publish commit v0.9.3

parents
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("APIs",[],t):"object"==typeof exports?exports.APIs=t():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].APIs=t())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[2],{33:function(e,t,n){"use strict";n.r(t);var r,o=n(3),i=n(17),a=n(6),u=n(1),s=(r=function(e,t){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),c=function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function u(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}s((r=r.apply(e,t||[])).next())})},l=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}},f=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.getAllTOS=function(e){return void 0===e&&(e="ALL"),c(t,void 0,void 0,function(){var t,n;return l(this,function(r){switch(r.label){case 0:return t=o.a.api.v1.user.tos.all(),n=u.getDriver(),[4,n.send({method:a.a.RequestMethod.GET,headers:{"content-type":"application/json"},url:e?t.toString()+"?service="+e:t.toString()})];case 1:return[2,r.sent()]}})})},t.updateTOS=function(e,n){return void 0===e&&(e="DESKTOP"),void 0===n&&(n="ALL"),c(t,void 0,void 0,function(){var t,r;return l(this,function(i){switch(i.label){case 0:return t=o.a.api.v1.user.tos(),r=u.getDriver(),[4,r.send({method:a.a.RequestMethod.PUT,headers:{"content-type":"application/json"},url:t.toString(),body:JSON.stringify({platform:e,services:n})})];case 1:return[2,i.sent()]}})})},t.checkUserTOS=function(e){return void 0===e&&(e="ALL"),c(t,void 0,void 0,function(){var t,n;return l(this,function(r){switch(r.label){case 0:return t=o.a.api.v1.user.tos.user(),n=u.getDriver(),[4,n.send({method:a.a.RequestMethod.GET,headers:{"content-type":"application/json"},url:e?t.toString()+"?service="+e:t.toString()})];case 1:return[2,r.sent()]}})})},t}return s(t,e),t}(i.a),d=n(2),p=function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function u(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}s((r=r.apply(e,t||[])).next())})},h=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}},v={verifyActivationCode:function(e){return p(void 0,void 0,void 0,function(){var t;return h(this,function(n){switch(n.label){case 0:return[4,u.getDriver().send({method:a.a.RequestMethod.PUT,url:o.a.v1User.registration.email.verify(),body:{checkCode:e}})];case 1:return[4,(t=n.sent()).statusCode];case 2:if(200!==n.sent())throw{message:"failed to verify user",detail:t};return[2,Object(d.default)(t,["items","verify"])||!1]}})})},register:function(e,t,n,r){return p(void 0,void 0,void 0,function(){var i,s;return h(this,function(c){switch(c.label){case 0:return[4,u.getDriver().send({method:a.a.RequestMethod.POST,url:o.a.v1User.registration.email(),body:{name:e,email:t,password:n,channel:r}})];case 1:return[4,(i=c.sent()).statusCode];case 2:if(200!==(s=c.sent()))throw{message:"failed to register user",detail:i};return[2,s]}})})},resend:function(e){return p(void 0,void 0,void 0,function(){var t,n;return h(this,function(r){switch(r.label){case 0:return[4,u.getDriver().send({method:a.a.RequestMethod.POST,url:o.a.v1User.email.resend(),body:{email:e}})];case 1:return[4,(t=r.sent()).statusCode];case 2:if(200!==(n=r.sent()))throw{message:"failed to resend verify email",detail:t};return[2,n]}})})}},y=function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function u(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}s((r=r.apply(e,t||[])).next())})},w=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}},b=function(){function e(){var t=this;this.mHandles=[],this.mOptions=null,this.mTransform=e.BaseTransform,this.transform=function(e){return t.mTransform=e,t},this.handle=function(e,n){return"number"==typeof e?t.mHandles.push(function(t,r){return Object(d.default)(r,["statusCode"])===e?n(t,r):r}):t.mHandles.push(function(t,r){return e(t,r)?n(t,r):r}),t},this.options=function(e){return t.mOptions=e,t},this.send=function(){return y(t,void 0,void 0,function(){var e;return w(this,function(t){switch(t.label){case 0:if(!this.mOptions)throw{message:"An API call cannot be sent without any options, call .options(opts) first"};return this.mOptions.handles=this.mHandles,[4,u.getDriver().send(this.mOptions)];case 1:return e=t.sent(),console.log(e),[2,this.mTransform(e)]}})})}}return e.BaseTransform=function(e){return e?e.items:null},e}(),m=function(e,t,n,r){return new(n||(n=Promise))(function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function u(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){e.done?o(e.value):new n(function(t){t(e.value)}).then(a,u)}s((r=r.apply(e,t||[])).next())})},g=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}},P={updateProfileV1:function(e){return(new b).options({method:a.a.RequestMethod.PUT,url:o.a.v1User.profile(),body:e}).transform(function(e){return e.statusCode<300})},updatePassword:function(e,t){return m(void 0,void 0,void 0,function(){var n,r;return g(this,function(i){switch(i.label){case 0:return[4,u.getDriver().send({method:a.a.RequestMethod.PUT,url:o.a.v1User.profile.password(),body:{oldPassword:e,newPassword:t}})];case 1:return[4,(n=i.sent()).statusCode];case 2:if(200!==(r=i.sent()))throw{message:"failed to update password",detail:n};return[2,r]}})})},recoverPassword:function(e){return m(void 0,void 0,void 0,function(){var t,n;return g(this,function(r){switch(r.label){case 0:return[4,u.getDriver().send({method:a.a.RequestMethod.POST,url:o.a.v1User.profile.password.recovery(),body:{email:e}})];case 1:return[4,(t=r.sent()).statusCode];case 2:if(200!==(n=r.sent()))throw{message:"failed to send recovery email",detail:t};return[2,n]}})})},resetPassword:function(e,t){return m(void 0,void 0,void 0,function(){var n,r;return g(this,function(i){switch(i.label){case 0:return[4,u.getDriver().send({method:a.a.RequestMethod.PUT,url:o.a.v1User.profile.password.reset(),body:{recoverKey:e,password:t}})];case 1:return[4,(n=i.sent()).statusCode];case 2:if(200!==(r=i.sent()))throw{message:"failed to confirm password reset",detail:n};return[2,r]}})})},updateAvatar:function(e){return m(void 0,void 0,void 0,function(){var t,n;return g(this,function(r){switch(r.label){case 0:return[4,u.getDriver().send({method:a.a.RequestMethod.POST,url:o.a.v1User.profile.avatar(),body:e})];case 1:return[4,(t=r.sent()).statusCode];case 2:if(200!==(n=r.sent()))throw{message:"failed to update avatar",detail:t};return[2,n]}})})},getProfileV2:function(){return(new b).options({url:o.a.api.v2.user.new.profile()})}};n.d(t,"TOS",function(){return f}),n.d(t,"Email",function(){return v}),n.d(t,"Profile",function(){return P})}},[[33,0,1]]])});
//# sourceMappingURL=APIs.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/packages/APIs/TOS.ts","webpack://anue-fe-sdk.[name]/./src/packages/APIs/Email.ts","webpack://anue-fe-sdk.[name]/./src/packages/APIs/API.ts","webpack://anue-fe-sdk.[name]/./src/packages/APIs/Profile.ts","webpack://anue-fe-sdk.[name]/./src/packages/APIs/index.ts"],"names":["root","factory","exports","module","define","amd","window","global","APIs_TOS","_super","TOS","_this","apply","this","arguments","getAllTOS","service","endpoint","Endpoints","api","v1","user","tos","all","network","Network","send","method","Misc","RequestMethod","GET","headers","content-type","url","toString","_a","sent","updateTOS","platform","services","PUT","body","JSON","stringify","checkUserTOS","__extends","Debuggable","Email","verifyActivationCode","checkCode","Email_awaiter","undefined","v1User","registration","email","verify","resp","statusCode","message","detail","Object","getty","register","name","password","channel","POST","code","resend","APIs_API","API","mHandles","mOptions","mTransform","BaseTransform","transform","fn","handle","condition","push","req","res","options","API_awaiter","handles","response","console","log","items","Profile","updateProfileV1","profile","updatePassword","oldPassword","newPassword","Profile_awaiter","recoverPassword","recovery","resetPassword","recoverKey","reset","updateAvatar","avatar","getProfileV2","v2","new","__webpack_require__","d","__webpack_exports__"],"mappings":"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","file":"APIs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"APIs\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"APIs\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"APIs\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","import Endpoints from '@constants/Endpoints';\nimport Debuggable from '@libraries/Debuggable';\nimport Misc from '@constants/Misc';\nimport * as Network from '@libraries/Network';\n\nclass TOS extends Debuggable {\n /**\n * @doc\n * @public\n * @method getAllTOS\n * @promise\n * @returns APIResponse.v1.User.TOS.All\n * 單純顯示 ToS,無須登入\n */\n getAllTOS = async (\n service: string = 'ALL'\n ): Promise<APIResponse.v1.User.TOS.All> => {\n const endpoint = Endpoints.api.v1.user.tos.all();\n const network = Network.getDriver();\n const response = network.send({\n method: Misc.RequestMethod.GET,\n headers: {\n 'content-type': 'application/json'\n },\n url: service\n ? endpoint.toString() + `?service=${service}`\n : endpoint.toString()\n });\n\n return await response;\n };\n\n /**\n * @doc\n * @public\n * @method updateTOS\n * @promise\n * @returns APIResponse.v1.User.TOS\n * 使用則接受 ToS\n */\n updateTOS = async (\n platform: string = 'DESKTOP',\n services: string = 'ALL'\n ): Promise<APIResponse.v1.User.TOS> => {\n const endpoint = Endpoints.api.v1.user.tos();\n const network = Network.getDriver();\n const response = network.send({\n method: Misc.RequestMethod.PUT,\n headers: {\n 'content-type': 'application/json'\n },\n url: endpoint.toString(),\n body: JSON.stringify({\n platform,\n services\n })\n });\n\n return await response;\n };\n\n /**\n * @doc\n * @public\n * @method checkUserTOS\n * @promise\n * @returns APIResponse.v1.User.TOS.User\n * 使用者登入後,檢查 ToS 狀態\n */\n checkUserTOS = async (\n service: string = 'ALL'\n ): Promise<APIResponse.v1.User.TOS.User> => {\n const endpoint = Endpoints.api.v1.user.tos.user();\n const network = Network.getDriver();\n const response = network.send({\n method: Misc.RequestMethod.GET,\n headers: {\n 'content-type': 'application/json'\n },\n url: service\n ? endpoint.toString() + `?service=${service}`\n : endpoint.toString()\n });\n\n return await response;\n };\n}\n\nexport default TOS;\n","/**\n * @doc\n * @anue-package Anue.API.Email\n * 和電子郵件認證相關的API實作與集合,使用方式\n *\n * ```Javascript\n * import 'anue-fe-sdk'\n * import 'anue-fe-sdk/web-preset'\n * import Email from 'anue-fe-sdk/API/Email'\n *\n * // ...\n *\n * ```\n */\n\nimport * as Network from '@libraries/Network';\nimport Endpoints from '@constants/Endpoints';\nimport Misc from '@constants/Misc';\nimport getty from '@utils/getty';\n\ntype EmailVerify = APIResponse.Response<\n APIResponse.v1.User.Registration.Email.Verify\n>;\n\ntype EmailRegistration = APIResponse.Response<\n APIResponse.v1.User.Registration.Email\n>;\n\ntype EmailVerifyResend = APIResponse.Response<APIResponse.v1.User.Email.Resend>;\n\nexport default {\n verifyActivationCode: async (checkCode: string): Promise<boolean> => {\n const resp = await Network.getDriver().send<EmailVerify>({\n method: Misc.RequestMethod.PUT,\n url: Endpoints.v1User.registration.email.verify(),\n body: { checkCode }\n });\n const code = await resp.statusCode;\n if (code !== 200) {\n throw {\n message: 'failed to verify user',\n detail: resp\n };\n }\n\n return getty<boolean>(resp, ['items', 'verify']) || false;\n },\n\n register: async (\n name: string,\n email: string,\n password: string,\n channel: string\n ): Promise<number> => {\n const resp = await Network.getDriver().send<EmailRegistration>({\n method: Misc.RequestMethod.POST,\n url: Endpoints.v1User.registration.email(),\n body: { name, email, password, channel }\n });\n const code = await resp.statusCode;\n if (code !== 200) {\n throw {\n message: 'failed to register user',\n detail: resp\n };\n }\n return code;\n },\n\n resend: async (email: string): Promise<number> => {\n const resp = await Network.getDriver().send<EmailVerifyResend>({\n method: Misc.RequestMethod.POST,\n url: Endpoints.v1User.email.resend(),\n body: { email }\n });\n const code = await resp.statusCode;\n if (code !== 200) {\n throw {\n message: 'failed to resend verify email',\n detail: resp\n };\n }\n return code;\n }\n};\n","import getty from '@utils/getty';\nimport * as Network from '@libraries/Network';\n\nexport type IRequestOptions<T> = Anue.Network.RequestOptions<T>;\nexport type APITransform<T> = (resp: APIResponse.Response<T>) => any;\n\nexport default class API<T> {\n private mHandles: Array<(req: IRequestOptions<T>, res: APIResponse.Response<T>) => any> = [];\n private mOptions: Anue.Network.RequestOptions | null = null;\n private mTransform: APITransform<T> = API.BaseTransform;\n\n static BaseTransform = (resp: APIResponse.Response<any>) => {\n return resp\n ? resp.items\n : null\n };\n\n transform = (fn: APITransform<T>): API<T> => {\n this.mTransform = fn;\n return this\n };\n\n handle = (\n condition: number | ((req: IRequestOptions<T>, res: APIResponse.Response<T>) => boolean),\n handle: (req: IRequestOptions<T>, res: APIResponse.Response<T>) => any\n ): API<T> => {\n if (typeof condition === 'number') {\n this.mHandles.push((req, res) => {\n if (getty<number>(res, ['statusCode']) === condition) {\n return handle(req, res);\n }\n return res\n });\n } else {\n this.mHandles.push((req, res) => {\n if (condition(req, res)) {\n return handle(req, res);\n }\n return res\n });\n }\n\n return this;\n };\n\n options = (options: Anue.Network.RequestOptions) => {\n this.mOptions = options;\n return this;\n };\n\n send = async (): Promise<T> => {\n if (!this.mOptions) {\n throw {\n message:\n 'An API call cannot be sent without any options, call .options(opts) first'\n };\n }\n this.mOptions.handles = this.mHandles;\n const response = await Network.getDriver().send<APIResponse.Response<T>>(\n this.mOptions\n );\n console.log(response)\n return this.mTransform(response);\n };\n}\n","/**\n * @doc\n * @anue-package Anue.API.Profile\n * 使用者帳戶資訊相關的API實作與集合,使用方式\n *\n * ```Javascript\n * import 'anue-fe-sdk'\n * import 'anue-fe-sdk/web-preset'\n * import Profile from 'anue-fe-sdk/API/Profile'\n *\n * // ...\n *\n * ```\n */\n\nimport * as Network from '@libraries/Network';\nimport Endpoints from '@constants/Endpoints';\nimport Misc from '@constants/Misc';\nimport API from '@packages/APIs/API';\n\ntype UpdatePassword = APIResponse.Response<\n APIResponse.v1.User.Profile.Password\n>;\n\ntype RecoverPassword = APIResponse.Response<\n APIResponse.v1.User.Profile.Password.Recovery\n>;\n\ntype ResetPassword = APIResponse.Response<\n APIResponse.v1.User.Profile.Password.Reset\n>;\n\ntype UpdateAvatar = APIResponse.Response<APIResponse.v1.User.Profile.Avatar>;\n\nexport default {\n updateProfileV1: (profile: Anue.Auth.UserProfile) => {\n return new API()\n .options({\n method: Misc.RequestMethod.PUT,\n url: Endpoints.v1User.profile(),\n body: profile\n })\n .transform(res => res.statusCode < 300);\n },\n\n updatePassword: async (\n oldPassword: string,\n newPassword: string\n ): Promise<number> => {\n const resp = await Network.getDriver().send<UpdatePassword>({\n method: Misc.RequestMethod.PUT,\n url: Endpoints.v1User.profile.password(),\n body: {\n oldPassword,\n newPassword\n }\n });\n const code = await resp.statusCode;\n\n if (code !== 200) {\n throw {\n message: 'failed to update password',\n detail: resp\n };\n }\n return code;\n },\n\n recoverPassword: async (email: string): Promise<number> => {\n const resp = await Network.getDriver().send<RecoverPassword>({\n method: Misc.RequestMethod.POST,\n url: Endpoints.v1User.profile.password.recovery(),\n body: { email }\n });\n const code = await resp.statusCode;\n if (code !== 200) {\n throw {\n message: 'failed to send recovery email',\n detail: resp\n };\n }\n return code;\n },\n\n resetPassword: async (\n recoverKey: string,\n password: string\n ): Promise<number> => {\n const resp = await Network.getDriver().send<ResetPassword>({\n method: Misc.RequestMethod.PUT,\n url: Endpoints.v1User.profile.password.reset(),\n body: {\n recoverKey,\n password\n }\n });\n const code = await resp.statusCode;\n if (code !== 200) {\n throw {\n message: 'failed to confirm password reset',\n detail: resp\n };\n }\n return code;\n },\n\n updateAvatar: async (avatar: FormData): Promise<number> => {\n const resp = await Network.getDriver().send<UpdateAvatar>({\n method: Misc.RequestMethod.POST,\n url: Endpoints.v1User.profile.avatar(),\n body: avatar\n });\n\n const code = await resp.statusCode;\n if (code !== 200) {\n throw {\n message: 'failed to update avatar',\n detail: resp\n };\n }\n return code;\n },\n\n getProfileV2: (): API<Anue.Auth.UserProfile> => {\n return new API<Anue.Auth.UserProfile>().options({\n url: Endpoints.api.v2.user.new.profile()\n });\n }\n};\n","/**\n * @doc\n * @anue-package Anue.API\n * API函數集合\n */\nimport TOS from './TOS';\nimport Email from './Email';\nimport Profile from './Profile';\n\nexport { TOS, Email, Profile };\n"],"sourceRoot":""}
\ No newline at end of file
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("AnueMailProvider",[],t):"object"==typeof exports?exports.AnueMailProvider=t():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].AnueMailProvider=t())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[3],{31:function(e,t,n){"use strict";n.r(t);var o,r=n(8),i=n(5),s=n(6),a=n(3),u=n(1),c=n(2),l=n(12),f=n(7),d=n(10),p=(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),h=function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function s(e){try{u(o.next(e))}catch(e){i(e)}}function a(e){try{u(o.throw(e))}catch(e){i(e)}}function u(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(s,a)}u((o=o.apply(e,t||[])).next())})},m=function(e,t){var n,o,r,i,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(i){return function(a){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,o=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(r=(r=s.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){s=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){s.label=i[1];break}if(6===i[0]&&s.label<r[1]){s.label=r[1],r=i;break}if(r&&s.label<r[2]){s.label=r[2],s.ops.push(i);break}r[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,a])}}},w=function(e){function t(){var n=null!==e&&e.apply(this,arguments)||this;return n.mShouldStoreCredentials=!f.default.get("onetime"),n.getName=function(){return"email"},n.loginImpl=function(e){return h(n,void 0,void 0,function(){var t,n;return m(this,function(o){switch(o.label){case 0:if(o.trys.push([0,1,,3]),!e||!e.email||!e.password)throw{message:'AnueMailProvider can not login with improper arguments "'+JSON.stringify(e)+'"'};return this.mContext={accessToken:JSON.stringify(e),tokenType:""},[3,3];case 1:return t=o.sent(),console.warn(t),[4,null];case 2:return[2,o.sent()];case 3:return[4,this.renewer()];case 4:if(200!==(n=o.sent()).statusCode)throw n;return[4,this.mContext];case 5:return[2,o.sent()]}})})},n.logoutImpl=function(){return h(n,void 0,void 0,function(){return m(this,function(e){switch(e.label){case 0:return this.mContext=null,[4,!0];case 1:return[2,e.sent()]}})})},n.refresh=n.loginImpl,n.renewer=function(){return h(n,void 0,void 0,function(){var e,n;return m(this,function(o){switch(o.label){case 0:if(e=Object(c.default)(this.mContext,["accessToken"]),console.log("[AnueMailProvider] renew ..",e),!e)throw{message:"AnueMailProvider unable to renew token as its context is empty"};return[4,u.getDriver().send({method:s.a.RequestMethod.POST,url:a.a.v1User.email.renew(),body:JSON.parse(e)})];case 1:return 200===(n=o.sent()).statusCode&&this.mShouldStoreCredentials?[4,i.getDriver().setItem("anue-mail:"+t.mHost,Object(l.obfuscate)(e))]:[3,3];case 2:o.sent(),o.label=3;case 3:return[2,n]}})})},n.initImpl=function(){return h(n,void 0,void 0,function(){var e,t,n,o,r;return m(this,function(s){switch(s.label){case 0:return console.log("get stored token from %s","anue-mail:"+location.protocol+"//"+location.host),e=i.getDriver(),t=d.default.getSSOCookie(),[4,e.getItem("anue-mail:"+location.protocol+"//"+location.host)];case 1:if(n=s.sent(),o=f.default.get("mail_access_token")||null,r="",t&&"email"===t.provider&&t.accessToken&&(r=t.accessToken),console.log("[AnueMailProvider] cookieToken = %s storedToken = %o urlToken =%o",r,n,o),!r&&o)r=Object(l.defuscate)(o),console.log("%c[AnueMailProvider] consumed access token from url hash %o","color: #0077ff;",this.mContext);else if(!r&&n)try{console.log("[AnueMailProvider] defuscated stored token = %o ",r),r=Object(l.defuscate)(n)}catch(e){console.warn(e)}return r?(this.mContext={tokenType:"",accessToken:r},[4,this.renewer()]):[3,3];case 2:s.sent(),s.label=3;case 3:return this.emitStateChange(),[4,this];case 4:return[2,s.sent()]}})})},n}return p(t,e),t.prototype.handleStateChangeImpl=function(){this.emitStateChange()},t.prototype.getContext=function(){return this.mContext},t.mHost="undefined"==typeof location?"":location.protocol+"//"+location.host,t}(r.a);t.default=w}},[[31,0,1]]])});
//# sourceMappingURL=AnueMailProvider.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/packages/Provider/AnueMailProvider.ts"],"names":["root","factory","exports","module","define","amd","window","global","AnueMailProvider","_super","_this","apply","this","arguments","mShouldStoreCredentials","_utils_urld__WEBPACK_IMPORTED_MODULE_7__","get","getName","loginImpl","args","__awaiter","email","password","message","JSON","stringify","mContext","accessToken","tokenType","console","warn","err_1","_a","sent","renewer","resp","statusCode","logoutImpl","refresh","body","Object","_utils_getty__WEBPACK_IMPORTED_MODULE_5__","log","_libraries_Network__WEBPACK_IMPORTED_MODULE_4__","send","method","_constants_Misc__WEBPACK_IMPORTED_MODULE_2__","RequestMethod","POST","url","_constants_Endpoints__WEBPACK_IMPORTED_MODULE_3__","v1User","renew","parse","_libraries_Storage__WEBPACK_IMPORTED_MODULE_1__","setItem","mHost","_utils_obfuscator__WEBPACK_IMPORTED_MODULE_6__","initImpl","location","protocol","host","storage","ssoCookie","_utils_sso__WEBPACK_IMPORTED_MODULE_8__","getSSOCookie","getItem","storedToken","urlToken","provider","err","emitStateChange","__extends","prototype","handleStateChangeImpl","getContext","_packages_Provider_AbstractProvider_abstract__WEBPACK_IMPORTED_MODULE_0__","__webpack_exports__"],"mappings":"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","file":"AnueMailProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"AnueMailProvider\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AnueMailProvider\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"AnueMailProvider\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","import AbstractProvider from '@packages/Provider/AbstractProvider.abstract';\nimport * as Storage from '@libraries/Storage';\nimport Misc from '@constants/Misc';\nimport Endpoints from '@constants/Endpoints';\nimport * as Network from '@libraries/Network';\nimport getty from '@utils/getty';\nimport { obfuscate, defuscate } from '@utils/obfuscator';\nimport urld from '@utils/urld';\nimport sso from '@utils/sso'\n\nexport interface IMailAndPassword {\n email: string;\n password: string;\n}\n\nexport default class AnueMailProvider extends AbstractProvider {\n private static mHost =\n typeof location === 'undefined'\n ? ''\n : location.protocol + '//' + location.host;\n private mShouldStoreCredentials: boolean = urld.get<string>('onetime')\n ? false\n : true;\n\n getName = () => 'email';\n\n handleStateChangeImpl() {\n this.emitStateChange();\n }\n\n loginImpl = async (\n args?: IMailAndPassword\n ): Promise<Anue.Provider.NullableResponse> => {\n try {\n if (!args || !args.email || !args.password) {\n throw {\n message: `AnueMailProvider can not login with improper arguments \"${JSON.stringify(\n args\n )}\"`\n };\n }\n this.mContext = {\n accessToken: JSON.stringify(args),\n tokenType: ''\n };\n } catch (err) {\n console.warn(err);\n return await null;\n }\n const resp = await this.renewer();\n\n if (resp.statusCode !== 200) {\n throw resp;\n }\n\n return await this.mContext;\n };\n\n logoutImpl = async (): Promise<boolean> => {\n this.mContext = null;\n return await true;\n };\n\n refresh = this.loginImpl;\n\n renewer = async (): Promise<Anue.Auth.RefreshTokenResponse> => {\n const body = getty<string>(this.mContext, ['accessToken']);\n console.log('[AnueMailProvider] renew ..', body);\n if (!body) {\n throw {\n message:\n 'AnueMailProvider unable to renew token as its context is empty'\n };\n }\n\n const resp = await Network.getDriver().send<\n APIResponse.Response<APIResponse.v1.User.Email.Renew>\n >({\n method: Misc.RequestMethod.POST,\n url: Endpoints.v1User.email.renew(),\n body: JSON.parse(body)\n });\n\n // store obfuscated password and email if it's valid\n if (resp.statusCode === 200 && this.mShouldStoreCredentials) {\n await Storage.getDriver().setItem(\n `anue-mail:${AnueMailProvider.mHost}`,\n obfuscate(body)\n );\n }\n\n return resp;\n };\n\n initImpl = async (): Promise<AbstractProvider> => {\n console.log(\n 'get stored token from %s',\n `anue-mail:${location.protocol}//${location.host}`\n );\n const storage = Storage.getDriver();\n const ssoCookie = sso.getSSOCookie()\n const storedToken = await storage.getItem(\n `anue-mail:${location.protocol}//${location.host}`\n );\n const urlToken = urld.get<string>('mail_access_token') || null;\n let accessToken = ''\n\n if (ssoCookie && ssoCookie.provider === 'email' && ssoCookie.accessToken) {\n accessToken = ssoCookie.accessToken\n }\n\n console.log(\n '[AnueMailProvider] cookieToken = %s storedToken = %o urlToken =%o',\n accessToken,\n storedToken,\n urlToken\n );\n\n // hash token not found, try to find from storage\n if (!accessToken && urlToken) {\n accessToken = defuscate(urlToken)\n console.log(\n '%c[AnueMailProvider] consumed access token from url hash %o',\n 'color: #0077ff;',\n this.mContext\n );\n } else if (!accessToken && storedToken) {\n try {\n console.log('[AnueMailProvider] defuscated stored token = %o ', accessToken);\n accessToken = defuscate(storedToken);\n } catch (err) {\n console.warn(err);\n }\n }\n\n if (accessToken) {\n this.mContext = {\n tokenType: '',\n accessToken\n }\n await this.renewer()\n }\n\n this.emitStateChange();\n\n return await this;\n };\n\n getContext(): Anue.Provider.NullableResponse {\n return this.mContext;\n }\n}\n"],"sourceRoot":""}
\ No newline at end of file
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("AnueProxyProvider",[],n):"object"==typeof exports?exports.AnueProxyProvider=n():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].AnueProxyProvider=n())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[4],{32:function(e,n,t){"use strict";t.r(n);var o,r=t(8),i=t(13),u=(o=function(e,n){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)n.hasOwnProperty(t)&&(e[t]=n[t])})(e,n)},function(e,n){function t(){this.constructor=e}o(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}),c=function(e,n,t,o){return new(t||(t=Promise))(function(r,i){function u(e){try{f(o.next(e))}catch(e){i(e)}}function c(e){try{f(o.throw(e))}catch(e){i(e)}}function f(e){e.done?r(e.value):new t(function(n){n(e.value)}).then(u,c)}f((o=o.apply(e,n||[])).next())})},f=function(e,n){var t,o,r,i,u={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(t)throw new TypeError("Generator is already executing.");for(;u;)try{if(t=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,o=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(r=(r=u.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){u.label=i[1];break}if(6===i[0]&&u.label<r[1]){u.label=r[1],r=i;break}if(r&&u.label<r[2]){u.label=r[2],u.ops.push(i);break}r[2]&&u.ops.pop(),u.trys.pop();continue}i=n.call(e,u)}catch(e){i=[6,e],o=0}finally{t=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}},a=function(e){function n(){var n=null!==e&&e.apply(this,arguments)||this;return n.event=new i.default,n.loginImpl=function(e){return c(n,void 0,void 0,function(){return f(this,function(e){return[2,{idToken:"",accessToken:"proxy",tokenType:""}]})})},n.logoutImpl=function(){return c(n,void 0,void 0,function(){return f(this,function(e){return[2,!0]})})},n.renewer=function(){return c(n,void 0,void 0,function(){var e=this;return f(this,function(n){return window.postMessage(JSON.stringify({source:"proxy",action:"refreshToken"}),"*"),[2,new Promise(function(n){var t=e.event.on("refresh",function(e){n(e),t()})})]})})},n.initImpl=function(){return c(n,void 0,void 0,function(){var e=this;return f(this,function(n){return window.postMessage(JSON.stringify({source:"proxy",action:"refreshToken"}),"*"),this.mContext={idToken:"",accessToken:"proxy",tokenType:""},document.addEventListener("message",function(n){try{var t=JSON.parse(n.data);if("anue-proxy"!==t.type)return;t.data&&(e.event.emit("refresh",{statusCode:200,message:"",items:t.data}),e.emitStateChange())}catch(e){console.log(e)}}),[2,this]})})},n}return u(n,e),n.prototype.getName=function(){return"proxy"},n.prototype.refresh=function(){throw new Error("Method not implemented.")},n.prototype.getContext=function(){return this.mContext},n}(r.a);n.default=a}},[[32,0,1]]])});
//# sourceMappingURL=AnueProxyProvider.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/packages/Provider/AnueProxyProvider.ts"],"names":["root","factory","exports","module","define","amd","window","global","AnueProxyProvider","_super","_this","apply","this","arguments","event","_utils_eventy__WEBPACK_IMPORTED_MODULE_1__","loginImpl","args","__awaiter","idToken","accessToken","tokenType","logoutImpl","renewer","postMessage","JSON","stringify","source","action","Promise","resolve","remove","on","data","initImpl","mContext","document","addEventListener","e","payload","parse","type","emit","statusCode","message","items","emitStateChange","err","console","log","__extends","prototype","getName","refresh","Error","getContext","_packages_Provider_AbstractProvider_abstract__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,OAAA,uBAAAH,GACA,iBAAAC,QACAA,QAAA,kBAAAD,KAEAD,EAAA,eAAAA,EAAA,mBAAiDA,EAAA,iCAAAC,KARjD,CASC,oBAAAK,OAAAC,OAAAD,OAAA,WACD,myDCPAE,EAAA,SAAAC,GAAA,SAAAD,IAAA,IAAAE,EAAA,OAAAD,KAAAE,MAAAC,KAAAC,YAAAD,YAEUF,EAAAI,MAAQ,IAAIC,EAAA,QAEpBL,EAAAM,UAAY,SAAOC,GAAU,OAAAC,EAAAR,OAAA,8CAC3B,SAAO,CACLS,QAAS,GACTC,YAAa,QACbC,UAAW,UAIfX,EAAAY,WAAa,kBAAAJ,EAAAR,OAAA,8CACX,UAAO,QAOTA,EAAAa,QAAU,kBAAAL,EAAAR,OAAA,yDAOR,OALAJ,OAAOkB,YAAYC,KAAKC,UAAU,CAChCC,OAAQ,QACRC,OAAQ,iBACN,KAEJ,GAAO,IAAIC,QAAwC,SAAAC,GAEjD,IAAMC,EAASrB,EAAKI,MAAMkB,GAAG,UAAW,SAACC,GACvCH,EAAQG,GACRF,cAWNrB,EAAAwB,SAAW,kBAAAhB,EAAAR,OAAA,yDAiCT,OA/BAJ,OAAOkB,YAAYC,KAAKC,UAAU,CAChCC,OAAQ,QACRC,OAAQ,iBACN,KAEJhB,KAAKuB,SAAW,CACdhB,QAAS,GACTC,YAAa,QACbC,UAAW,IAGbe,SAASC,iBAAiB,UAAW,SAACC,GACpC,IACE,IAAMC,EAAUd,KAAKe,MAAMF,EAAEL,MAC7B,GAAqB,eAAjBM,EAAQE,KACV,OAEEF,EAAQN,OACVvB,EAAKI,MAAM4B,KAAK,UAAW,CACzBC,WAAY,IACZC,QAAS,GACTC,MAAON,EAAQN,OAEjBvB,EAAKoC,mBAGT,MAAOC,GACLC,QAAQC,IAAIF,MAIhB,GAAOnC,aAOX,OAlF+CsC,EAAA1C,EAAAC,GAgB7CD,EAAA2C,UAAAC,QAAA,WACE,MAAO,SAqBT5C,EAAA2C,UAAAE,QAAA,WACE,MAAM,IAAIC,MAAM,4BAuClB9C,EAAA2C,UAAAI,WAAA,WACE,OAAO3C,KAAKuB,UAGhB3B,EAlFA,CAA+CgD,EAAA","file":"AnueProxyProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"AnueProxyProvider\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AnueProxyProvider\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"AnueProxyProvider\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","import AbstractProvider from '@packages/Provider/AbstractProvider.abstract';\nimport Eventy from '@utils/eventy'\n\nexport default class AnueProxyProvider extends AbstractProvider {\n\n private event = new Eventy()\n\n loginImpl = async (args?: any): Promise<Anue.Provider.NullableResponse> => {\n return {\n idToken: '',\n accessToken: 'proxy',\n tokenType: ''\n }\n }\n\n logoutImpl = async (): Promise<boolean> => {\n return true\n }\n\n getName(): string {\n return 'proxy'\n }\n\n renewer = async (): Promise<Anue.Auth.RefreshTokenResponse> => {\n\n window.postMessage(JSON.stringify({\n source: 'proxy',\n action: 'refreshToken'\n }), '*')\n\n return new Promise<Anue.Auth.RefreshTokenResponse>(resolve => {\n\n const remove = this.event.on('refresh', (data: Anue.Auth.RefreshTokenResponse) => {\n resolve(data)\n remove()\n })\n\n })\n\n }\n\n refresh(): Promise<Anue.Provider.NullableResponse> {\n throw new Error('Method not implemented.');\n }\n\n initImpl = async (): Promise<AbstractProvider> => {\n\n window.postMessage(JSON.stringify({\n source: 'proxy',\n action: 'refreshToken'\n }), '*')\n\n this.mContext = {\n idToken: '',\n accessToken: 'proxy',\n tokenType: ''\n }\n\n document.addEventListener('message', (e: any) => {\n try {\n const payload = JSON.parse(e.data)\n if (payload.type !== 'anue-proxy') {\n return\n }\n if (payload.data) {\n this.event.emit('refresh', {\n statusCode: 200,\n message: '',\n items: payload.data\n })\n this.emitStateChange()\n }\n }\n catch (err) {\n console.log(err)\n }\n })\n\n return this\n }\n\n getContext(): Anue.Provider.NullableResponse {\n return this.mContext\n }\n\n}\n"],"sourceRoot":""}
\ No newline at end of file
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Auth",[],t):"object"==typeof exports?exports.Auth=t():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].Auth=t())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[5],{25:function(e,t,n){"use strict";n.r(t);var o=n(3),r=n(0),i=n(6),s=n(18),c=n(1),a=n(5),u=n(2),l=n(13),h=n(14),d=n(15),f=n(19),m=n(10),v=function(){return(v=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e}).apply(this,arguments)},p=function(e,t,n,o){var r,i=arguments.length,s=i<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,n):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,o);else for(var c=e.length-1;c>=0;c--)(r=e[c])&&(s=(i<3?r(s):i>3?r(t,n,s):r(t,n))||s);return i>3&&s&&Object.defineProperty(t,n,s),s},g=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},w=function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function s(e){try{a(o.next(e))}catch(e){i(e)}}function c(e){try{a(o.throw(e))}catch(e){i(e)}}function a(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(s,c)}a((o=o.apply(e,t||[])).next())})},b=function(e,t){var n,o,r,i,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,o=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(r=(r=s.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){s=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){s.label=i[1];break}if(6===i[0]&&s.label<r[1]){s.label=r[1],r=i;break}if(r&&s.label<r[2]){s.label=r[2],s.ops.push(i);break}r[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}},y=[o.a.v1User.email.renew(),o.a.v1User.cognitoOpenIdOrRegister()],P=-1,k=0,C=2,I=function(){function e(t){void 0===t&&(t={});var n=this;this.mHost=e.getInitialURL(),this.mChannel=r.a.Unknown,this.mIsNewComer=!1,this.removeRequestInspector=null,this.removeResponseInspector=null,this.mConnectedProviders={},this.mIsReady=!1,this.mPrimaryProvider=null,this.mProfile=null,this.mSSOProvider="",this.mPortalUrl="https://login.cnyes.com",this.mSyncLock={},this.mRenewRequestUrl=o.a.api.v2.user.cognitoOpenIdOrRegister(),this.event=new l.default,this.host=function(e){return n.mHost=e,n},this.channel=function(e){return n.mChannel=e,n},this.portal=function(e){return n.mPortalUrl=e,n},this.backoffBase=function(e){return C=e,n},this.renewUrl=function(e){return n.mRenewRequestUrl=e,n},this.launchPortal=function(){return w(n,void 0,void 0,function(){var e;return b(this,function(t){return e=Date.now().toString().replace(/\d/,function(e){return String.fromCharCode(+e+97)}),a.getDriver().setItem("anue.state",e),location.href=this.mPortalUrl+"?anue_auth_state="+e+"&ref="+this.mChannel,[2]})})},this.openPortal=function(e){window.open(n.mPortalUrl+"?"+e)},this.ready=function(){return w(n,void 0,void 0,function(){var e=this;return b(this,function(t){switch(t.label){case 0:return this.mIsReady?[4,this.getCredentialContext()]:[3,2];case 1:return[2,t.sent()];case 2:return[2,new Promise(function(t){var n=e.event.on(r.b.Auth.Events.Loaded,function(){t(e.getCredentialContext()),n()})})]}})})},this.getPrimaryProvider=function(){return n.mPrimaryProvider},this.onStateChange=function(e){return n.event.on(r.b.Auth.Events.StateChange,e),n},this.onError=function(e){return n.event.on(r.b.Auth.Events.Error,e),n},this.consumeState=function(){return w(n,void 0,void 0,function(){var e,t;return b(this,function(n){return e=Object(u.default)(m.default.getSSOCookie(),["provider"]),console.log("[Auth] consume state .. sso=%o",e),e&&(t=a.getDriver(),this.mSSOProvider=e,t.setItem("anue.state","")),[2]})})},this.setSSOProvider=function(e){return w(n,void 0,void 0,function(){return b(this,function(t){return this.mSSOProvider=e,[2,this]})})},this.requestNetworkInspector=function(e){return w(n,void 0,void 0,function(){return b(this,function(t){switch(t.label){case 0:return this.mAuthorization&&(e.headers=e.headers||{},e.headers.authorization=e.headers.authorization||this.mAuthorization),[4,e];case 1:return[2,t.sent()]}})})},this.responseNetworkInspector=function(e,t){return w(n,void 0,void 0,function(){var n,o,r,i,s;return b(this,function(a){switch(a.label){case 0:return n=e.url,o=t.statusCode,r=Object(u.default)(e,["extra","resent"]),i=401===o&&!1===y.reduce(function(e,t){return e||n.includes(t)},!1),!r&&i&&this.mPrimaryProvider?[3,2]:[4,t];case 1:return[2,a.sent()];case 2:console.log("got 401 request options = %o",e),console.log("%c[Auth] a 401 response captured, interceptor is trying to renew the credentials ..","color: red;"),a.label=3;case 3:return a.trys.push([3,5,,6]),[4,this.renew("Auth.Interceptor")];case 4:return s=a.sent(),[3,6];case 5:return a.sent(),console.warn("[Auth] interceptor failed to renew token"),[3,6];case 6:return s?(e.extra=v({},e.extra,{resent:!0}),[4,c.getDriver().send(e)]):[3,8];case 7:t=a.sent(),a.label=8;case 8:return[4,t];case 9:return[2,a.sent()]}})})},this.renew=function(t){return w(n,void 0,void 0,function(){var n,o,r,i,s,c,a;return b(this,function(u){switch(u.label){case 0:return P=Date.now()+1e3*Math.pow(C,k),Date.now()<P?(n=1e3*Math.pow(C,k++),console.log("performing exponential backoff .. %s ms",n),[4,Object(f.default)(n)]):[3,2];case 1:return u.sent(),[3,3];case 2:P=-1,k=1,u.label=3;case 3:return console.log("[Auth] renew called ref = %s",t),this.mPrimaryProvider?(o=m.default.getCachedUser(),console.log("%c sso cached user = %o","color: brown",o),r=o&&Date.now()-o.time<e.CacheTTL,[4,this.renewAndGetProfile(!1,r?o:null)]):(console.log("[Auth] renew failed as it does not have any provider"),[2,null]);case 4:return i=u.sent(),s=i.context,(c=i.profile)?[3,6]:[4,this.renewAndGetProfile(!0)];case 5:a=u.sent(),s=a.context,c=a.profile,u.label=6;case 6:return c&&s.token?(console.log("renew success profile=%o context=%o",c,s),this.mProfile=c,[2,this.setCredentials(s).getCredentialContext()]):[2,null]}})})},this.renewAndGetProfile=function(e,t){return void 0===e&&(e=!1),void 0===t&&(t=null),w(n,void 0,void 0,function(){var n,o;return b(this,function(r){switch(r.label){case 0:return n=null,o=null,console.log("renew token with refresh = %o cachedUser = %o",e,t),[4,this.renewRequest(e)];case 1:if(n=r.sent(),!Object(u.default)(n,["items","token"]))throw{message:"Failed to renew authorization token, invalid response.",detail:n};return console.log("[Auth] is trying to update user profile ... %o",n),t&&t.cognitoId===Object(u.default)(n,["items","identityId"])?(o=t.profile,[3,4]):[3,2];case 2:return[4,this.getProfile({token:n.items.token,identityId:n.items.identityId,channel:this.mChannel})];case 3:o=r.sent(),r.label=4;case 4:if(e&&!o)throw this.clearCredentials(),{status:404,message:"Failed to renew authorization token as the user profile does not exists"};return console.log("[Auth] latest profile is %o",o),[2,{context:n.items,profile:o}]}})})},this.renewRequest=function(e){return void 0===e&&(e=!1),w(n,void 0,void 0,function(){var t,n,o,r,a,l,h,d;return b(this,function(f){switch(f.label){case 0:if(!this.mAccessToken)throw"auth.renew cannot be called without `accessToken`";return o=c.getDriver(),(r=Object(u.default)(this.mPrimaryProvider,["renewer"]))?[4,r()]:[3,2];case 1:return a=f.sent(),[3,4];case 2:return l=this.mIdToken,n={type:l?"google":"facebook",accessToken:this.mAccessToken||"",idToken:this.mIdToken||"",channel:this.mChannel,refresh:e?"0":"1"},console.log("%c[Auth] consuming .. %o","color:#c19774;",n),t=this.mRenewRequestUrl,h=Object(s.default)(this.mHost,t),d={method:i.a.RequestMethod.POST,url:h.toString(),body:n},[4,o.send(d)];case 3:a=f.sent(),f.label=4;case 4:return[2,a]}})})},this.getProfile=function(e){return w(n,void 0,void 0,function(){return b(this,function(t){return this.mPrimaryProvider?[2,this.mPrimaryProvider.getProfile(e)]:(console.log("[Auth] getProfile failed",null),[2,null])})})},this.initializeProviders=function(e,t){return void 0===t&&(t=!1),w(n,void 0,void 0,function(){var n,o,i=this;return b(this,function(s){switch(s.label){case 0:return console.log("%c⚡️[Auth] connect providers %o lazy = %o","font-weight:bolder;",e,t),[4,this.consumeState()];case 1:s.sent(),s.label=2;case 2:return s.trys.push([2,4,,5]),n=e.map(function(e){var n=e.getName();return i.mConnectedProviders[n]=e,e.onLoginStateChange(function(t){i.syncProviderToken(e,t)}),t&&n!==i.mSSOProvider?(console.log("%c[Auth] drop provider [%s] as it is not sso provider","color:gray;",n),Promise.resolve({})):e.init()}),[4,Promise.all(n)];case 3:return s.sent(),this.mIsReady=!0,this.event.emit(r.b.Auth.Events.Loaded),[3,5];case 4:return o=s.sent(),this.event.emit(r.b.Auth.Events.Error,o),[3,5];case 5:return[2]}})})},this.lazyConnectProvider=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.initializeProviders(e,!0),n},this.connectProvider=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return n.initializeProviders(e),n},this.setCredentials=function(e){var t=e.token,o=e.identityId,i=e.newcomer;return t&&o&&n.mPrimaryProvider&&(n.mAuthorization=t,n.mCognitoId=o,n.mIsNewComer=1===i),n.removeRequestInspector||(n.removeRequestInspector=c.addRequestInspector(n.requestNetworkInspector)),n.removeResponseInspector||(n.removeRequestInspector=c.addResponseInspector(n.responseNetworkInspector)),console.log("%c[Auth] %cstate changed %conline","font-weight:bolder;background-color: #b3ef99;","background-color: #b3ef99;","font-weight:bolder;background-color: #b3ef99"),n.event.emit(r.b.Auth.Events.StateChange,{status:"online",source:n.mPrimaryProvider&&n.mPrimaryProvider.getName(),context:n.getCredentialContext()}),n},this.syncProviderToken=function(e,t){return w(n,void 0,void 0,function(){var n,o;return b(this,function(i){switch(i.label){case 0:return n=e.getName(),console.log("[Auth] login state change triggered by provider [%s] %o",n,t),this.mSSOProvider&&e.getName()!==this.mSSOProvider?(console.log("%c[Auth] renew aborted, as %s is not dedicated SSO provider.","color: gray;",n),[3,7]):[3,1];case 1:if(!t||!t.accessToken||this.mSyncLock[n])return[3,6];console.log("provider [%s] sync locked",n),this.mSyncLock[n]=!0,this.mAccessToken=t.accessToken,this.mIdToken=t.idToken||"",this.mPrimaryProvider=e,i.label=2;case 2:return i.trys.push([2,4,,5]),[4,this.renew("Provider."+n)];case 3:if(!i.sent())throw"failed to renew";return this.mSyncLock[n]=!1,[3,5];case 4:throw o=i.sent(),this.mSyncLock[n]=!1,this.event.emit(r.b.Auth.Events.Error,o),console.log("provider [%s] sync unlocked due to an error %o",o),o;case 5:return console.log("provider [%s] sync unlocked",n),[3,7];case 6:this.mSyncLock[n]?console.log("[%s] sync operation aborted due to synclock",n):this.event.emit(r.b.Auth.Events.StateChange,{status:"offline",source:n}),i.label=7;case 7:return[2]}})})},this.clearCredentials=function(){return w(n,void 0,void 0,function(){return b(this,function(e){return this.mAuthorization="",this.mIdToken="",this.mAccessToken="",this.mIdToken="",this.mIsNewComer=!1,this.mSSOProvider="",this.mCognitoId="",this.setSSOProvider(""),this.removeRequestInspector&&this.removeRequestInspector(),this.removeResponseInspector&&this.removeResponseInspector(),this.removeRequestInspector=null,this.removeResponseInspector=null,m.default.removeSSOCookie(),m.default.removeCachedUser(),console.log("%c[Auth] %cstate changed %coffline","font-weight:bolder;background-color: #fff693;","background-color: #fff693;","font-weight:bolder;background-color: #fff693;"),this.event.emit(r.b.Auth.Events.StateChange,{status:"offline",source:this.mPrimaryProvider&&this.mPrimaryProvider.getName()}),[2,this]})})},this.logout=this.clearCredentials,this.getCredentialContext=function(){return{authorization:n.mAuthorization,idToken:n.mIdToken,accessToken:n.mAccessToken,isNewComer:n.mIsNewComer,cognitoId:n.mCognitoId,profile:n.mProfile,ssoProvider:n.mSSOProvider}};var h=t.channel,d=t.host;h&&(this.mChannel=h),d&&(this.mHost=d)}return e.CacheTTL=6e5,e.getInitialURL=function(){return"undefined"==typeof location?"":location.protocol+"//"+location.host},p([Object(d.Web)(Promise.resolve(null)),g("design:type",Object)],e.prototype,"consumeState",void 0),p([h.default,g("design:type",Object)],e.prototype,"renew",void 0),p([h.default,g("design:type",Object)],e.prototype,"renewRequest",void 0),p([h.default,g("design:type",Object)],e.prototype,"getProfile",void 0),p([h.default,g("design:type",Object)],e.prototype,"syncProviderToken",void 0),e}();t.default=I}},[[25,0,1]]])});
//# sourceMappingURL=Auth.js.map
\ No newline at end of file
This diff is collapsed.
!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("Constants",[],n):"object"==typeof exports?exports.Constants=n():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].Constants=n())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[6],{26:function(e,n,o){"use strict";o.r(n);var t=o(0);n.default=t.b}},[[26,0,1]]])});
//# sourceMappingURL=Constants.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/constants/index.ts"],"names":["root","factory","exports","module","define","amd","window","global","__webpack_require__","r","__webpack_exports__","_Keys__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,OAAA,eAAAH,GACA,iBAAAC,QACAA,QAAA,UAAAD,KAEAD,EAAA,eAAAA,EAAA,mBAAiDA,EAAA,yBAAAC,KARjD,CASC,oBAAAK,OAAAC,OAAAD,OAAA,WACD,uKCVAE,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAEeE,EAAA,QAAAC,EAAI","file":"Constants.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Constants\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Constants\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"Constants\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","import Keys from './Keys';\n\nexport default Keys;\n"],"sourceRoot":""}
\ No newline at end of file
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("FacebookOAuth2Provider",[],e):"object"==typeof exports?exports.FacebookOAuth2Provider=e():(t["anue-fe-sdk"]=t["anue-fe-sdk"]||{},t["anue-fe-sdk"].FacebookOAuth2Provider=e())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[7],{29:function(t,e,n){"use strict";n.r(e);var o,i=n(8),r=n(2),c=n(0),u=n(16),a=n(7),s=n(10),f=(o=function(t,e){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)},function(t,e){function n(){this.constructor=t}o(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}),l=function(t,e,n,o){return new(n||(n=Promise))(function(i,r){function c(t){try{a(o.next(t))}catch(t){r(t)}}function u(t){try{a(o.throw(t))}catch(t){r(t)}}function a(t){t.done?i(t.value):new n(function(e){e(t.value)}).then(c,u)}a((o=o.apply(t,e||[])).next())})},p=function(t,e){var n,o,i,r,c={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return r={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function u(r){return function(u){return function(r){if(n)throw new TypeError("Generator is already executing.");for(;c;)try{if(n=1,o&&(i=2&r[0]?o.return:r[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,r[1])).done)return i;switch(o=0,i&&(r=[2&r[0],i.value]),r[0]){case 0:case 1:i=r;break;case 4:return c.label++,{value:r[1],done:!1};case 5:c.label++,o=r[1],r=[0];continue;case 7:r=c.ops.pop(),c.trys.pop();continue;default:if(!(i=(i=c.trys).length>0&&i[i.length-1])&&(6===r[0]||2===r[0])){c=0;continue}if(3===r[0]&&(!i||r[1]>i[0]&&r[1]<i[3])){c.label=r[1];break}if(6===r[0]&&c.label<i[1]){c.label=i[1],i=r;break}if(i&&c.label<i[2]){c.label=i[2],c.ops.push(r);break}i[2]&&c.ops.pop(),c.trys.pop();continue}r=e.call(t,c)}catch(t){r=[6,t],o=0}finally{n=i=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,u])}}},h=function(t){function e(e){var n=t.call(this)||this;if(n.mIsInitialized=!1,n.mRpc=null,n.getName=function(){return"facebook"},n.getType=function(){return c.b.SupportedProviderType.Social},n.getContext=function(){return n.mContext},n.consume=function(){return l(n,void 0,void 0,function(){var t,e,n,o;return p(this,function(i){return t=s.default.getSSOCookie(),e=a.default.get("provider")||Object(r.default)(t,["provider"]),console.log("fb => %s",e),e===this.getName()&&(n=a.default.get("access_token"),o=a.default.get("token_type"),this.mContext={accessToken:n,tokenType:o}),[2]})})},n.refresh=function(){return l(n,void 0,void 0,function(){var t,e;return p(this,function(n){switch(n.label){case 0:return this.mRpc||(this.mRpc=this.initializeRpc()),(t=Object(r.default)(this.mContext,["accessToken"]))?[3,2]:[4,this.mRpc.rpcCall("fbauth",encodeURIComponent(JSON.stringify(this.getRequestConfig())))];case 1:e=n.sent(),t=e.accessToken,n.label=2;case 2:if(!t)throw{message:"FacebookOAuth2Provider provider failed to refresh tokens",detail:this.mContext};return this.mContext={accessToken:t,tokenType:"Bearer"},console.log("%c[FacebookOAuth2Provider] refreshed token from rpc %o","background-color: blue; font-weight: bolder; color: white",this.mContext),this.emitStateChange(),[2,this.mContext]}})})},n.initializeRpc=function(){var t=n.mClientConfig.rpcUri;if(!t)throw{message:"FacebookOAuth2Provider cannot create rpc proxy without specifying `rpcUri` in the constructor"};return console.log("[FacebookOAuth2Provider] starting dpi on %s",t),new u.default("fbauth",t)},n.getRequestConfig=function(){return{client_id:n.mClientConfig.appId,redirect_uri:n.mClientConfig.rpcUri+"?dpi=fbauth",response_type:"token",scope:(n.mClientConfig.scopes||["email"]).join(" ")}},n.initImpl=function(){return l(n,void 0,void 0,function(){return p(this,function(t){switch(t.label){case 0:return this.mIsInitialized?[2,this]:(this.mIsInitialized=!0,[4,this.consume()]);case 1:return t.sent(),this.mClientConfig.rpcUri?(this.mRpc=this.initializeRpc(),[4,this.refresh()]):[3,3];case 2:t.sent(),t.label=3;case 3:return this.emitStateChange(),[2,this]}})})},n.logoutImpl=function(){return l(n,void 0,void 0,function(){return p(this,function(t){return this.mContext=null,[2,!0]})})},n.loginImpl=function(t){return l(n,void 0,void 0,function(){var e;return p(this,function(n){return e="https://www.facebook.com/v3.2/dialog/oauth?client_id="+this.mClientConfig.appId+"&redirect_uri="+this.mClientConfig.redirectUri+"&response_type=token&scope=email",t&&t.state&&(e+="&state="+t.state),location.href=e,[2,null]})})},!e.appId)throw{message:"Failed to initialize FacebookOAuth2Provider without config.appId"};return n.mClientConfig=e,n}return f(e,t),e.transform=function(t){var e={};for(var n in t){var o=n.match(/[A-Z]?[a-z]+/g);if(o)e[o.join("_").toLowerCase()]=t[n]}return e},e}(i.a);e.default=h}},[[29,0,1]]])});
//# sourceMappingURL=FacebookOAuth2Provider.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/packages/Provider/FacebookOAuth2Provider.ts"],"names":["root","factory","exports","module","define","amd","window","global","FacebookOAuth2Provider","_super","config","_this","call","this","mIsInitialized","mRpc","getName","getType","_constants_Keys__WEBPACK_IMPORTED_MODULE_2__","SupportedProviderType","Social","getContext","mContext","consume","__awaiter","SSOCookie","_utils_sso__WEBPACK_IMPORTED_MODULE_5__","getSSOCookie","ssoProvider","_utils_urld__WEBPACK_IMPORTED_MODULE_4__","get","Object","_utils_getty__WEBPACK_IMPORTED_MODULE_1__","console","log","accessToken","tokenType","refresh","initializeRpc","rpcCall","encodeURIComponent","JSON","stringify","getRequestConfig","response","_a","sent","message","detail","emitStateChange","rpcUri","mClientConfig","_utils_rpc__WEBPACK_IMPORTED_MODULE_3__","client_id","appId","redirect_uri","response_type","scope","scopes","join","initImpl","logoutImpl","loginImpl","args","url","redirectUri","state","location","href","__extends","transform","obj","result","prop","match","toLowerCase","_packages_Provider_AbstractProvider_abstract__WEBPACK_IMPORTED_MODULE_0__","__webpack_exports__"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,OAAA,4BAAAH,GACA,iBAAAC,QACAA,QAAA,uBAAAD,KAEAD,EAAA,eAAAA,EAAA,mBAAiDA,EAAA,sCAAAC,KARjD,CASC,oBAAAK,OAAAC,OAAAD,OAAA,WACD,g0DCHAE,EAAA,SAAAC,GAiBE,SAAAD,EAAYE,GAAZ,IAAAC,EACEF,EAAAG,KAAAC,OAAOA,KACP,GAlBMF,EAAAG,gBAAiB,EAEjBH,EAAAI,KAAmB,KAyB3BJ,EAAAK,QAAU,WAAM,kBAEhBL,EAAAM,QAAU,WAAM,OAAAC,EAAA,EAAKC,sBAAsBC,QAE3CT,EAAAU,WAAa,WACX,OAAOV,EAAKW,UAYNX,EAAAY,QAAU,kBAAAC,EAAAb,OAAA,iEACVc,EAAYC,EAAA,QAAIC,eAChBC,EAAcC,EAAA,QAAKC,IAAI,aAAeC,OAAAC,EAAA,QAAAD,CAAMN,EAAW,CAAC,aAC9DQ,QAAQC,IAAI,WAAYN,GAEpBA,IAAgBf,KAAKG,YACjBmB,EAAcN,EAAA,QAAKC,IAAY,gBAC/BM,EAAYP,EAAA,QAAKC,IAAY,cAEnCjB,KAAKS,SAAW,CAAEa,YAAWA,EAAEC,UAASA,aAK5CzB,EAAA0B,QAAU,kBAAAb,EAAAb,OAAA,oFAEHE,KAAKE,OACRF,KAAKE,KAAOF,KAAKyB,kBAEfH,EAAcJ,OAAAC,EAAA,QAAAD,CAAMlB,KAAKS,SAAU,CAAC,iBAGpC,MACS,GAAMT,KAAKE,KAAKwB,QACzB,SACAC,mBAAmBC,KAAKC,UAAU7B,KAAK8B,8BAFzCC,EAAWC,EAAAC,OAIXX,EAAcS,EAAST,6BAGzB,IAAIA,EAQF,KAAM,CACJY,QAAS,2DACTC,OAAQnC,KAAKS,UAMjB,OAfET,KAAKS,SAAW,CAAEa,YAAWA,EAAEC,UAAW,UAC1CH,QAAQC,IACN,yDACA,4DACArB,KAAKS,UASTT,KAAKoC,kBAEL,GAAOpC,KAAKS,gBAGNX,EAAA2B,cAAgB,WACtB,IAAMY,EAASvC,EAAKwC,cAAcD,OAElC,IAAKA,EACH,KAAM,CACJH,QACE,iGAKN,OAFAd,QAAQC,IAAI,8CAA+CgB,GAEpD,IAAIE,EAAA,QAAI,SAAUF,IAG3BvC,EAAAgC,iBAAmB,WAQjB,MAPqB,CACnBU,UAAW1C,EAAKwC,cAAcG,MAC9BC,aAAc5C,EAAKwC,cAAcD,OAAS,cAC1CM,cAAe,QACfC,OAAQ9C,EAAKwC,cAAcO,QAAU,CAAC,UAAUC,KAAK,OAMzDhD,EAAAiD,SAAW,kBAAApC,EAAAb,OAAA,qEACT,OAAIE,KAAKC,eACP,GAAOD,OAETA,KAAKC,gBAAiB,EAGtB,GAAMD,KAAKU,0BAAXsB,EAAAC,OAEIjC,KAAKsC,cAAcD,QACrBrC,KAAKE,KAAOF,KAAKyB,gBACjB,GAAMzB,KAAKwB,YAFT,aAEFQ,EAAAC,wBAKF,OAFAjC,KAAKoC,kBAEL,GAAOpC,YAGTF,EAAAkD,WAAa,kBAAArC,EAAAb,OAAA,8CAEX,OADAE,KAAKS,SAAW,KAChB,IAAO,QAGTX,EAAAmD,UAAY,SAAOC,GAAuB,OAAAvC,EAAAb,OAAA,oDAaxC,OAXIqD,EAAM,wDACMnD,KAAKsC,cAAcG,MACjC,iBAAiBzC,KAAKsC,cAAcc,YACpC,mCAGEF,GAAQA,EAAKG,QACfF,GAAO,UAAUD,EAAKG,OAExBC,SAASC,KAAOJ,EAEhB,GAAO,YAzIFtD,EAAO4C,MACV,KAAM,CACJP,QACE,2EAGNpC,EAAKwC,cAAgBzC,IAqIzB,OA9JoD2D,EAAA7D,EAAAC,GAK3CD,EAAA8D,UAAY,SAAUC,GAC3B,IAAMC,EAAS,GACf,IAAK,IAAMC,KAAQF,EAAK,CACtB,IAAMG,EAAQD,EAAKC,MAAM,iBACzB,GAAIA,EAEFF,EADYE,EAAMf,KAAK,KAAKgB,eACdJ,EAAIE,GAGtB,OAAOD,GAgJXhE,EA9JA,CAAoDoE,EAAA,GAA/BC,EAAA","file":"FacebookOAuth2Provider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"FacebookOAuth2Provider\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FacebookOAuth2Provider\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"FacebookOAuth2Provider\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","import AbstractProvider from '@packages/Provider/AbstractProvider.abstract';\nimport getty from '@utils/getty';\nimport Keys from '@constants/Keys';\nimport Rpc from '@utils/rpc';\nimport urld from '@utils/urld';\nimport SSO from '@utils/sso'\n\nexport default class FacebookOAuth2Provider extends AbstractProvider {\n private mIsInitialized = false;\n private mClientConfig: Anue.Provider.FacebookProviderConfig;\n private mRpc: Rpc | null = null;\n\n static transform = <T = any>(obj): T => {\n const result = {};\n for (const prop in obj) {\n const match = prop.match(/[A-Z]?[a-z]+/g);\n if (match) {\n const key = match.join('_').toLowerCase();\n result[key] = obj[prop];\n }\n }\n return result as T;\n };\n\n constructor(config: Anue.Provider.FacebookProviderConfig) {\n super();\n if (!config.appId) {\n throw {\n message:\n 'Failed to initialize FacebookOAuth2Provider without config.appId'\n };\n }\n this.mClientConfig = config;\n }\n\n getName = () => 'facebook';\n\n getType = () => Keys.SupportedProviderType.Social;\n\n getContext = (): Anue.Provider.Response | null => {\n return this.mContext;\n };\n\n /**\n * @doc\n * @method consume\n * @private\n * @async\n *\n * 這個方法通常會在登入導向的目標網站上進行作用,用來處理`location.hash`上帶的認證資訊,包含了`access_token`、\n * `token_type`、`authuser`等資訊。\n */\n private consume = async () => {\n const SSOCookie = SSO.getSSOCookie()\n const ssoProvider = urld.get('provider') || getty(SSOCookie, ['provider']);\n console.log('fb => %s', ssoProvider)\n\n if (ssoProvider === this.getName()) {\n const accessToken = urld.get<string>('access_token');\n const tokenType = urld.get<string>('token_type');\n\n this.mContext = { accessToken, tokenType };\n\n }\n };\n\n refresh = async (): Promise<Anue.Provider.Response> => {\n\n if (!this.mRpc) {\n this.mRpc = this.initializeRpc();\n }\n let accessToken = getty(this.mContext, ['accessToken']);\n let response;\n\n if (!accessToken) {\n response = await this.mRpc.rpcCall(\n 'fbauth',\n encodeURIComponent(JSON.stringify(this.getRequestConfig()))\n );\n accessToken = response.accessToken;\n }\n\n if (accessToken) {\n this.mContext = { accessToken, tokenType: 'Bearer' };\n console.log(\n '%c[FacebookOAuth2Provider] refreshed token from rpc %o',\n 'background-color: blue; font-weight: bolder; color: white',\n this.mContext\n );\n } else {\n throw {\n message: 'FacebookOAuth2Provider provider failed to refresh tokens',\n detail: this.mContext\n };\n }\n\n this.emitStateChange();\n\n return this.mContext;\n };\n\n private initializeRpc = (): Rpc => {\n const rpcUri = this.mClientConfig.rpcUri;\n\n if (!rpcUri) {\n throw {\n message:\n 'FacebookOAuth2Provider cannot create rpc proxy without specifying `rpcUri` in the constructor'\n };\n }\n console.log('[FacebookOAuth2Provider] starting dpi on %s', rpcUri);\n\n return new Rpc('fbauth', rpcUri);\n };\n\n getRequestConfig = () => {\n const configs: any = {\n client_id: this.mClientConfig.appId,\n redirect_uri: this.mClientConfig.rpcUri + '?dpi=fbauth',\n response_type: 'token',\n scope: (this.mClientConfig.scopes || ['email']).join(' ')\n };\n\n return configs;\n };\n\n initImpl = async (): Promise<AbstractProvider> => {\n if (this.mIsInitialized) {\n return this;\n }\n this.mIsInitialized = true;\n\n // consume tokens in url and `authuser` in storage\n await this.consume();\n\n if (this.mClientConfig.rpcUri) {\n this.mRpc = this.initializeRpc();\n await this.refresh();\n }\n\n this.emitStateChange();\n\n return this;\n };\n\n logoutImpl = async (): Promise<boolean> => {\n this.mContext = null\n return true;\n };\n\n loginImpl = async (args: { state: string }): Promise<Anue.Provider.NullableResponse> => {\n\n let url = 'https://www.facebook.com/v3.2/dialog/oauth' +\n `?client_id=${this.mClientConfig.appId}` +\n `&redirect_uri=${this.mClientConfig.redirectUri}` +\n '&response_type=token' +\n '&scope=email'\n\n if (args && args.state) {\n url += `&state=${args.state}`\n }\n location.href = url\n\n return null;\n };\n}\n"],"sourceRoot":""}
\ No newline at end of file
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("FacebookWebProvider",[],t):"object"==typeof exports?exports.FacebookWebProvider=t():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].FacebookWebProvider=t())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[8],{27:function(e,t,n){"use strict";n.r(t);var o,r=n(8),i=n(0),u=n(2),c=(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function u(e){try{a(o.next(e))}catch(e){i(e)}}function c(e){try{a(o.throw(e))}catch(e){i(e)}}function a(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(u,c)}a((o=o.apply(e,t||[])).next())})},s=function(e,t){var n,o,r,i,u={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;u;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,o=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(r=(r=u.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){u.label=i[1];break}if(6===i[0]&&u.label<r[1]){u.label=r[1],r=i;break}if(r&&u.label<r[2]){u.label=r[2],u.ops.push(i);break}r[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}},f=function(e){function t(t){var n=e.call(this)||this;return n.scriptImported=!1,n.transform=function(e){var t=Object(u.default)(e,["authResponse","accessToken"]);return t?{accessToken:t,tokenType:""}:null},n.handleStateChange=function(e){console.log("[FBProvider] status changed",e),n.mContext=n.transform(e),n.emitStateChange()},n.loginImpl=function(){return new Promise(function(e,t){n.mAuth.getLoginStatus(function(o){"connected"!==o.status&&n.mAuth.login(function(o){console.log("[FB] login response %o",o),"connected"===o.status?e(n.transform(o)):t(o)},{scope:"email"})})})},n.logoutImpl=function(){return new Promise(function(e){FB.logout(function(t){console.log("[FB] logout response %o",t),e()})})},n.getName=function(){return"facebook"},n.getType=function(){return i.b.SupportedProviderType.Social},n.initImpl=function(){return"undefined"==typeof document||n.mAuth||n.scriptImported?Promise.resolve(n):(n.scriptImported=!0,new Promise(function(e){return a(n,void 0,void 0,function(){var t=this;return s(this,function(n){var o,r,i,u,c;return o=document,r="script",i="facebook-jssdk",c=o.getElementsByTagName(r)[0],o.getElementById(i)||((u=o.createElement(r)).id=i,u.src="https://connect.facebook.net/en_US/sdk.js",c.parentNode.insertBefore(u,c)),window.fbAsyncInit=function(){t.mAuth=FB,t.mAuth.Event.subscribe("auth.authResponseChange",t.handleStateChange),FB.init({appId:t.mAppId,autoLogAppEvents:!0,xfbml:!0,version:"v3.2"}),t.mAuth.getLoginStatus(),e(t)},[2]})})}))},n.mAppId=t.appId,n}return c(t,e),t.prototype.refresh=function(){throw new Error("Method not implemented.")},t.prototype.getContext=function(){return this.mContext},t}(r.a);t.default=f}},[[27,0,1]]])});
//# sourceMappingURL=FacebookWebProvider.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/packages/Provider/FacebookWebProvider.ts"],"names":["root","factory","exports","module","define","amd","window","global","FacebookWebProvider","_super","config","_this","call","this","scriptImported","transform","data","accessToken","Object","_utils_getty__WEBPACK_IMPORTED_MODULE_2__","tokenType","handleStateChange","response","console","log","mContext","emitStateChange","loginImpl","Promise","resolve","reject","mAuth","getLoginStatus","res","status","login","scope","logoutImpl","FB","logout","getName","getType","_constants_Keys__WEBPACK_IMPORTED_MODULE_1__","SupportedProviderType","Social","initImpl","document","__awaiter","d","s","id","js","fjs","getElementsByTagName","getElementById","createElement","src","parentNode","insertBefore","fbAsyncInit","Event","subscribe","init","appId","mAppId","autoLogAppEvents","xfbml","version","__extends","prototype","refresh","Error","getContext","_AbstractProvider_abstract__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,OAAA,yBAAAH,GACA,iBAAAC,QACAA,QAAA,oBAAAD,KAEAD,EAAA,eAAAA,EAAA,mBAAiDA,EAAA,mCAAAC,KARjD,CASC,oBAAAK,OAAAC,OAAAD,OAAA,WACD,yyDCNAE,EAAA,SAAAC,GAKE,SAAAD,EAAYE,GAAZ,IAAAC,EACEF,EAAAG,KAAAC,OAAOA,YAJDF,EAAAG,gBAAiB,EAQjBH,EAAAI,UAAY,SAACC,GACnB,IAAMC,EAAcC,OAAAC,EAAA,QAAAD,CAAMF,EAAM,CAAC,eAAgB,gBACjD,OAAIC,EACK,CAAEA,YAAWA,EAAEG,UAAW,IAE5B,MAGDT,EAAAU,kBAAoB,SAAAC,GAC1BC,QAAQC,IAAI,8BAA+BF,GAC3CX,EAAKc,SAAWd,EAAKI,UAAUO,GAC/BX,EAAKe,mBAGPf,EAAAgB,UAAY,WACV,WAAIC,QAAQ,SAACC,EAASC,GACpBnB,EAAKoB,MAAMC,eAAe,SAAAC,GAEL,cAAfA,EAAIC,QACNvB,EAAKoB,MAAMI,MACT,SAAAb,GACEC,QAAQC,IAAI,yBAA0BF,GACd,cAApBA,EAASY,OACXL,EAAQlB,EAAKI,UAAUO,IAEvBQ,EAAOR,IAGX,CAAEc,MAAO,eAMnBzB,EAAA0B,WAAa,WACX,WAAIT,QAAQ,SAAAC,GAEVS,GAAGC,OAAO,SAAAjB,GACRC,QAAQC,IAAI,0BAA2BF,GACvCO,SAINlB,EAAA6B,QAAU,WAAM,kBAEhB7B,EAAA8B,QAAU,WAAM,OAAAC,EAAA,EAAKC,sBAAsBC,QAM3CjC,EAAAkC,SAAW,WAET,MAAwB,oBAAbC,UAA4BnC,EAAKoB,OAASpB,EAAKG,eACjDc,QAAQC,QAAQlB,IAEzBA,EAAKG,gBAAiB,EAEf,IAAIc,QAAQ,SAAMC,GAAO,OAAAkB,EAAApC,OAAA,yDAE9B,IAAUqC,EAAGC,EAAGC,EACVC,EACFC,SAFMJ,EAWPF,SAXUG,EAWA,SAXGC,EAWO,iBATnBE,EAAMJ,EAAEK,qBAAqBJ,GAAG,GAC9BD,EAAEM,eAAeJ,MAGrBC,EAAKH,EAAEO,cAAcN,IAClBC,GAAKA,EACRC,EAAGK,IAAM,4CAETJ,EAAIK,WAAWC,aAAaP,EAAIC,IAGlC9C,OAAOqD,YAAc,WAEnBhD,EAAKoB,MAAQO,GACb3B,EAAKoB,MAAM6B,MAAMC,UACf,0BACAlD,EAAKU,mBAGPiB,GAAGwB,KAAK,CACNC,MAAOpD,EAAKqD,OACZC,kBAAkB,EAClBC,OAAO,EACPC,QAAS,SAEXxD,EAAKoB,MAAMC,iBACXH,EAAQlB,gBA3FZA,EAAKqD,OAAStD,EAAOqD,QAoGzB,OA3GiDK,EAAA5D,EAAAC,GAyD/CD,EAAA6D,UAAAC,QAAA,WACE,MAAM,IAAIC,MAAM,4BA8ClB/D,EAAA6D,UAAAG,WAAA,WACE,OAAO3D,KAAKY,UAEhBjB,EA3GA,CAAiDiE,EAAA","file":"FacebookWebProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"FacebookWebProvider\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"FacebookWebProvider\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"FacebookWebProvider\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","import AbstractProvider from './AbstractProvider.abstract';\nimport Keys from '@constants/Keys';\nimport getty from '@utils/getty';\n\nexport default class FacebookWebProvider extends AbstractProvider {\n private mAuth;\n private scriptImported = false;\n private mAppId;\n\n constructor(config: { appId: string }) {\n super();\n this.mAppId = config.appId;\n }\n\n private transform = (data): Anue.Provider.NullableResponse => {\n const accessToken = getty(data, ['authResponse', 'accessToken']);\n if (accessToken) {\n return { accessToken, tokenType: '' };\n }\n return null;\n };\n\n private handleStateChange = response => {\n console.log('[FBProvider] status changed', response);\n this.mContext = this.transform(response);\n this.emitStateChange();\n };\n\n loginImpl = (): Promise<Anue.Provider.NullableResponse> =>\n new Promise((resolve, reject) => {\n this.mAuth.getLoginStatus(res => {\n // do not show popup if already logged-in\n if (res.status !== 'connected') {\n this.mAuth.login(\n response => {\n console.log('[FB] login response %o', response);\n if (response.status === 'connected') {\n resolve(this.transform(response));\n } else {\n reject(response);\n }\n },\n { scope: 'email' }\n );\n }\n });\n });\n\n logoutImpl = (): Promise<boolean> =>\n new Promise(resolve => {\n // @ts-ignore\n FB.logout(response => {\n console.log('[FB] logout response %o', response);\n resolve();\n });\n });\n\n getName = () => 'facebook';\n\n getType = () => Keys.SupportedProviderType.Social;\n\n refresh(): Promise<Anue.Provider.NullableResponse> {\n throw new Error('Method not implemented.');\n }\n\n initImpl = (): Promise<AbstractProvider> => {\n // @ts-ignore\n if (typeof document === 'undefined' || this.mAuth || this.scriptImported) {\n return Promise.resolve(this);\n }\n this.scriptImported = true;\n\n return new Promise(async resolve => {\n // tslint:disable\n (function(d, s, id) {\n var js,\n fjs = d.getElementsByTagName(s)[0];\n if (d.getElementById(id)) {\n return;\n }\n js = d.createElement(s);\n js.id = id;\n js.src = 'https://connect.facebook.net/en_US/sdk.js';\n // @ts-ignore\n fjs.parentNode.insertBefore(js, fjs);\n })(document, 'script', 'facebook-jssdk');\n // @ts-ignore\n window.fbAsyncInit = () => {\n // @ts-ignore\n this.mAuth = FB;\n this.mAuth.Event.subscribe(\n 'auth.authResponseChange',\n this.handleStateChange\n );\n // @ts-ignore\n FB.init({\n appId: this.mAppId,\n autoLogAppEvents: true,\n xfbml: true,\n version: 'v3.2'\n });\n this.mAuth.getLoginStatus();\n resolve(this);\n // tslint:enable\n };\n });\n };\n\n getContext(): Anue.Provider.NullableResponse {\n return this.mContext;\n }\n}\n"],"sourceRoot":""}
\ No newline at end of file
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("GoogleOAuth2Provider",[],t):"object"==typeof exports?exports.GoogleOAuth2Provider=t():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].GoogleOAuth2Provider=t())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[9],{30:function(e,t,n){"use strict";n.r(t);var o,r=n(8),i=n(1),s=n(2),u=n(0),c=n(16),a=n(7),l=n(5),f=n(10),p=(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),h=function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function s(e){try{c(o.next(e))}catch(e){i(e)}}function u(e){try{c(o.throw(e))}catch(e){i(e)}}function c(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(s,u)}c((o=o.apply(e,t||[])).next())})},d=function(e,t){var n,o,r,i,s={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;s;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return s.label++,{value:i[1],done:!1};case 5:s.label++,o=i[1],i=[0];continue;case 7:i=s.ops.pop(),s.trys.pop();continue;default:if(!(r=(r=s.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){s=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){s.label=i[1];break}if(6===i[0]&&s.label<r[1]){s.label=r[1],r=i;break}if(r&&s.label<r[2]){s.label=r[2],s.ops.push(i);break}r[2]&&s.ops.pop(),s.trys.pop();continue}i=t.call(e,s)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}},g=function(e){function t(t){var n=e.call(this)||this;if(n.mIsInitialized=!1,n.mRpc=null,n.mAuthUser="",n.getName=function(){return"google"},n.getType=function(){return u.b.SupportedProviderType.Social},n.getContext=function(){return n.mContext},n.consume=function(){return h(n,void 0,void 0,function(){var e,t,n,o,r;return d(this,function(i){switch(i.label){case 0:return e=f.default.getSSOCookie(),(a.default.get("provider")||Object(s.default)(e,["provider"]))!==this.getName()?[3,2]:(t=a.default.get("access_token"),n=a.default.get("token_type"),o=a.default.get("authuser")||Object(s.default)(e,["authuser"])||"0",r=l.getDriver(),this.mContext={accessToken:t,tokenType:n},[4,r.setItem("anue:google-user",o)]);case 1:i.sent(),i.label=2;case 2:return[2]}})})},n.recovery=function(){return h(n,void 0,void 0,function(){var e,t;return d(this,function(n){switch(n.label){case 0:return e=l.getDriver(),t=this,[4,e.getItem("anue:google-user")];case 1:return t.mAuthUser=n.sent()||"0",[2]}})})},n.refresh=function(){return h(n,void 0,void 0,function(){var e,t,n;return d(this,function(o){switch(o.label){case 0:return this.mRpc||(this.mRpc=this.initializeRpc()),e=Object(s.default)(this.mContext,["accessToken"]),t=Object(s.default)(this.mContext,["idToken"]),e?[3,2]:[4,this.mRpc.rpcCall("gauth",encodeURIComponent(JSON.stringify(this.getRequestConfig())))];case 1:n=o.sent(),e=n.accessToken,o.label=2;case 2:return t?[3,4]:[4,this.mRpc.rpcCall("gauth",encodeURIComponent(JSON.stringify(this.getRequestConfig(!0))))];case 3:n=o.sent(),t=n.idToken,o.label=4;case 4:if(!t||!e)throw{message:"google provider failed to refresh tokens",detail:this.mContext};return this.mContext={accessToken:e,idToken:t,tokenType:"Bearer"},console.log("%c[GoogleProvider] refreshed token from rpc %o","background-color: blue; font-weight: bolder; color: white",this.mContext),this.emitStateChange(),[2,this.mContext]}})})},n.initializeRpc=function(){var e=n.mClientConfig.rpcUri;if(!e)throw{message:"GoogleOAuth2Provider cannot create rpc proxy without specifying `rpcUri` in the constructor"};return console.log("[GoogleProvider] starting dpi on %s",e),new c.default("gauth",e)},n.getRequestConfig=function(e){var t={client_id:n.mClientConfig.clientId,api_key:n.mClientConfig.apiKey,response_type:e?"id_token":"token",redirect_uri:n.mClientConfig.rpcUri+"?dpi=gauth",scope:["openid","email","profile","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/plus.me"].join(" ")};return e&&(t.nonce=Date.now(),t.prompt="none"),t.authuser=n.mAuthUser,t},n.initImpl=function(){return h(n,void 0,void 0,function(){var e;return d(this,function(t){switch(t.label){case 0:return this.mIsInitialized?[2,this]:(this.mIsInitialized=!0,[4,this.consume()]);case 1:return t.sent(),[4,this.recovery()];case 2:t.sent(),t.label=3;case 3:return t.trys.push([3,6,,7]),this.mClientConfig.rpcUri?(this.mRpc=this.initializeRpc(),[4,this.refresh()]):[3,5];case 4:t.sent(),t.label=5;case 5:return[3,7];case 6:return e=t.sent(),console.warn("[GoogleProvider] failed to grant credentials",e),this.mContext=null,[3,7];case 7:return this.emitStateChange(),[2,this]}})})},n.logoutImpl=function(){return h(n,void 0,void 0,function(){var e;return d(this,function(t){switch(t.label){case 0:return(e=Object(s.default)(this.mContext,["accessToken"]))?[4,i.getDriver().send({url:"https://accounts.google.com/o/oauth2/revoke?token="+e})]:[3,2];case 1:t.sent(),console.log("[GoogleProvider] revoked access token"),this.mContext=null,t.label=2;case 2:return[2,!0]}})})},n.loginImpl=function(e){return h(n,void 0,void 0,function(){var t,n,o;return d(this,function(r){for(o in t=[],(n=this.getRequestConfig()).prompt="select_account",n.response_type="token",n.redirect_uri=this.mClientConfig.redirectUri,n.state=e.state,delete n.authuser,n)t.push(o+"="+decodeURIComponent(n[o]));return location.href="https://accounts.google.com/o/oauth2/v2/auth?"+t.join("&"),[2,null]})})},!t.clientId||!t.apiKey)throw{message:"Failed to initialize GoogleProvider without config.appId and config.apiKey"};return n.mClientConfig=t,n}return p(t,e),t.transform=function(e){var t={};for(var n in e){var o=n.match(/[A-Z]?[a-z]+/g);if(o)t[o.join("_").toLowerCase()]=e[n]}return t},t}(r.a);t.default=g}},[[30,0,1]]])});
//# sourceMappingURL=GoogleOAuth2Provider.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/packages/Provider/GoogleOAuth2Provider.ts"],"names":["root","factory","exports","module","define","amd","window","global","__webpack_require__","r","__webpack_exports__","_packages_Provider_AbstractProvider_abstract__WEBPACK_IMPORTED_MODULE_0__","_libraries_Network__WEBPACK_IMPORTED_MODULE_1__","_utils_getty__WEBPACK_IMPORTED_MODULE_2__","_constants_Keys__WEBPACK_IMPORTED_MODULE_3__","_utils_rpc__WEBPACK_IMPORTED_MODULE_4__","_utils_urld__WEBPACK_IMPORTED_MODULE_5__","_libraries_Storage__WEBPACK_IMPORTED_MODULE_6__","_utils_sso__WEBPACK_IMPORTED_MODULE_7__","GoogleOAuth2Provider","_super","config","_this","call","this","mIsInitialized","mRpc","mAuthUser","getName","getType","SupportedProviderType","Social","getContext","mContext","consume","__awaiter","sso","getSSOCookie","get","Object","accessToken","tokenType","authUser","storage","setItem","_a","sent","recovery","getItem","_b","refresh","initializeRpc","idToken","rpcCall","encodeURIComponent","JSON","stringify","getRequestConfig","response","message","detail","console","log","emitStateChange","rpcUri","mClientConfig","isIdToken","configs","client_id","clientId","api_key","apiKey","response_type","redirect_uri","scope","join","nonce","Date","now","prompt","authuser","initImpl","warn","err_1","logoutImpl","send","url","loginImpl","args","c","params","redirectUri","state","push","decodeURIComponent","location","href","__extends","transform","obj","result","prop","match","toLowerCase"],"mappings":"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","file":"GoogleOAuth2Provider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"GoogleOAuth2Provider\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GoogleOAuth2Provider\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"GoogleOAuth2Provider\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","/**\n * @doc\n * @anue-provider anue.Providers.GoogleOAuth2Provider\n *\n * 有別於[GoogleWebProvider](anue.Providers.GoogleWebProvider),這個類別是一個不使用Google JS SDK的實作\n * 驗證過程透過dpi frame和Google OAuth 2.0 REST API的流程將使用者導向不同的頁面進行使用者登入。\n *\n * > 使用GoogleOAuth2Provider必須注意的是,你必須在一個與當前應用網站相同的Origin嵌入fe-portal中的dpi.js以確保這個機制能正常運作\n */\n\nimport AbstractProvider from '@packages/Provider/AbstractProvider.abstract';\nimport * as Network from '@libraries/Network';\nimport getty from '@utils/getty';\nimport Keys from '@constants/Keys';\nimport Rpc from '@utils/rpc';\nimport urld from '@utils/urld';\nimport * as Storage from '@libraries/Storage';\nimport SSO from '@utils/sso'\n\nexport default class GoogleOAuth2Provider extends AbstractProvider {\n private mIsInitialized = false;\n private mClientConfig: Anue.Provider.GoogleProviderConfig;\n private mRpc: Rpc | null = null;\n\n /**\n * @doc\n * @property mAuthUser\n * 這是一個相當重要的屬性,在Google Auth進行使用者登入時,需要知道要當入目前app的使用者是瀏覽器中的第幾號使用者\n * 如果這個欄位的資訊錯誤將會導致dpi frame在背景刷新時遭遇 `interaction_required` 的錯誤\n */\n private mAuthUser: string = '';\n\n static transform = <T = any>(obj): T => {\n const result = {};\n for (const prop in obj) {\n const match = prop.match(/[A-Z]?[a-z]+/g);\n if (match) {\n const key = match.join('_').toLowerCase();\n result[key] = obj[prop];\n }\n }\n return result as T;\n };\n\n constructor(config: Anue.Provider.GoogleProviderConfig) {\n super();\n if (!config.clientId || !config.apiKey) {\n throw {\n message:\n 'Failed to initialize GoogleProvider without config.appId and config.apiKey'\n };\n }\n this.mClientConfig = config;\n }\n\n getName = () => 'google';\n\n getType = () => Keys.SupportedProviderType.Social;\n\n getContext = (): Anue.Provider.Response | null => {\n return this.mContext;\n };\n\n /**\n * @doc\n * @method consume\n * @private\n * @async\n *\n * 這個方法通常會在登入導向的目標網站上進行作用,用來處理`location.hash`上帶的認證資訊,包含了`access_token`、\n * `token_type`、`authuser`等資訊。\n */\n private consume = async () => {\n const sso = SSO.getSSOCookie()\n const ssoProvider = urld.get('provider') || getty(sso, ['provider']);\n\n if (ssoProvider === this.getName()) {\n const accessToken = urld.get<string>('access_token');\n const tokenType = urld.get<string>('token_type');\n const authUser = urld.get<string>('authuser') || getty(sso, ['authuser']) || '0';\n const storage = Storage.getDriver();\n\n this.mContext = { accessToken, tokenType };\n\n await storage.setItem('anue:google-user', authUser);\n }\n };\n\n private recovery = async () => {\n const storage = Storage.getDriver();\n this.mAuthUser = (await storage.getItem('anue:google-user')) || '0';\n };\n\n refresh = async (): Promise<Anue.Provider.Response> => {\n if (!this.mRpc) {\n this.mRpc = this.initializeRpc();\n }\n\n let accessToken = getty(this.mContext, ['accessToken']);\n let idToken = getty(this.mContext, ['idToken']);\n let response;\n\n if (!accessToken) {\n response = await this.mRpc.rpcCall(\n 'gauth',\n encodeURIComponent(JSON.stringify(this.getRequestConfig()))\n );\n accessToken = response.accessToken;\n }\n if (!idToken) {\n response = await this.mRpc.rpcCall(\n 'gauth',\n encodeURIComponent(JSON.stringify(this.getRequestConfig(true)))\n );\n idToken = response.idToken;\n }\n\n if (idToken && accessToken) {\n this.mContext = { accessToken, idToken, tokenType: 'Bearer' };\n console.log(\n '%c[GoogleProvider] refreshed token from rpc %o',\n 'background-color: blue; font-weight: bolder; color: white',\n this.mContext\n );\n } else {\n throw {\n message: 'google provider failed to refresh tokens',\n detail: this.mContext\n };\n }\n\n this.emitStateChange();\n\n return this.mContext;\n };\n\n private initializeRpc = (): Rpc => {\n const rpcUri = this.mClientConfig.rpcUri;\n\n if (!rpcUri) {\n throw {\n message:\n 'GoogleOAuth2Provider cannot create rpc proxy without specifying `rpcUri` in the constructor'\n };\n }\n console.log('[GoogleProvider] starting dpi on %s', rpcUri);\n\n return new Rpc('gauth', rpcUri);\n };\n\n getRequestConfig = (isIdToken?: boolean) => {\n const configs: any = {\n client_id: this.mClientConfig.clientId,\n api_key: this.mClientConfig.apiKey,\n response_type: isIdToken ? 'id_token' : 'token',\n redirect_uri: this.mClientConfig.rpcUri + '?dpi=gauth',\n scope: [\n 'openid',\n 'email',\n 'profile',\n 'https://www.googleapis.com/auth/userinfo.profile',\n 'https://www.googleapis.com/auth/userinfo.email',\n 'https://www.googleapis.com/auth/plus.me'\n ].join(' ')\n };\n if (isIdToken) {\n configs.nonce = Date.now();\n configs.prompt = 'none';\n }\n configs.authuser = this.mAuthUser;\n\n return configs;\n };\n\n initImpl = async (): Promise<AbstractProvider> => {\n if (this.mIsInitialized) {\n return this;\n }\n this.mIsInitialized = true;\n\n // consume tokens in url and `authuser` in storage\n await this.consume();\n await this.recovery();\n\n try {\n if (this.mClientConfig.rpcUri) {\n this.mRpc = this.initializeRpc();\n await this.refresh();\n }\n } catch (err) {\n console.warn('[GoogleProvider] failed to grant credentials', err);\n this.mContext = null;\n }\n this.emitStateChange();\n\n return this;\n };\n\n logoutImpl = async (): Promise<boolean> => {\n const accessToken = getty<string>(this.mContext, ['accessToken']);\n\n if (accessToken) {\n await Network.getDriver().send({\n url: `https://accounts.google.com/o/oauth2/revoke?token=${accessToken}`\n });\n console.log('[GoogleProvider] revoked access token');\n this.mContext = null;\n }\n\n return true;\n };\n\n loginImpl = async (args: { state: string }): Promise<Anue.Provider.NullableResponse> => {\n const params: string[] = [];\n const configs = this.getRequestConfig();\n\n configs.prompt = 'select_account';\n configs.response_type = 'token';\n configs.redirect_uri = this.mClientConfig.redirectUri;\n configs.state = args.state\n delete configs.authuser;\n\n for (const c in configs) {\n params.push(`${c}=${decodeURIComponent(configs[c])}`);\n }\n\n location.href = `https://accounts.google.com/o/oauth2/v2/auth?${params.join(\n '&'\n )}`;\n\n return null;\n };\n}\n"],"sourceRoot":""}
\ No newline at end of file
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("GoogleWebProvider",[],t):"object"==typeof exports?exports.GoogleWebProvider=t():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].GoogleWebProvider=t())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[10],{28:function(e,t,n){"use strict";n.r(t);var o,r=n(8),i=n(2),u=n(0),c=(o=function(e,t){return(o=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)},function(e,t){function n(){this.constructor=e}o(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}),a=function(e,t,n,o){return new(n||(n=Promise))(function(r,i){function u(e){try{a(o.next(e))}catch(e){i(e)}}function c(e){try{a(o.throw(e))}catch(e){i(e)}}function a(e){e.done?r(e.value):new n(function(t){t(e.value)}).then(u,c)}a((o=o.apply(e,t||[])).next())})},s=function(e,t){var n,o,r,i,u={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return i={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function c(i){return function(c){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;u;)try{if(n=1,o&&(r=2&i[0]?o.return:i[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,i[1])).done)return r;switch(o=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return u.label++,{value:i[1],done:!1};case 5:u.label++,o=i[1],i=[0];continue;case 7:i=u.ops.pop(),u.trys.pop();continue;default:if(!(r=(r=u.trys).length>0&&r[r.length-1])&&(6===i[0]||2===i[0])){u=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]<r[3])){u.label=i[1];break}if(6===i[0]&&u.label<r[1]){u.label=r[1],r=i;break}if(r&&u.label<r[2]){u.label=r[2],u.ops.push(i);break}r[2]&&u.ops.pop(),u.trys.pop();continue}i=t.call(e,u)}catch(e){i=[6,e],o=0}finally{n=r=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,c])}}},l=function(e){function t(n){var o=e.call(this)||this;if(o.mIsScriptLoaded=!1,o.loginPromises=[],o.logoutPromises=[],o.redirectUrl=null,o.getCurrentUser=function(){var e=Object(i.default)(o,["mAuth","currentUser"]);return e?e.get():null},o.getName=function(){return"google"},o.getType=function(){return u.b.SupportedProviderType.Social},o.getContext=function(){var e=o.getCurrentUser();if(e.isSignedIn()){var t=e.getAuthResponse(!0);return{idToken:t.id_token,tokenType:t.token_type,accessToken:t.access_token}}return null},o.refresh=function(){return a(o,void 0,void 0,function(){var e;return s(this,function(t){switch(t.label){case 0:if(!this.getCurrentUser())throw"cannot refresh Google tokens because the account is not logged in";return[4,this.mAuth.currentUser.get().reloadAuthResponse()];case 1:return e=t.sent(),console.log("GoogleWebProvider refreshed",e),[2,{idToken:e.id_token,accessToken:e.access_token,tokenType:e.token_type}]}})})},o.populatePromises=function(e,t){for(;e.length>0;){var n=e.pop();n&&n(t)}},o.handleLoginState=function(e){var t;o.mContext=o.getContext(),console.log("GoogleProvider sign state in event =>",e),t=e?o.loginPromises:o.logoutPromises,o.emitStateChange(),o.populatePromises(t,o.mContext)},o.initImpl=function(){return o.mIsScriptLoaded?Promise.resolve(o):new Promise(function(e,n){o.mIsScriptLoaded=!0;var r=document.createElement("script");r.src="https://apis.google.com/js/api:client.js",r.onload=function(){var n=window.gapi;n.load("auth2",function(){var r=t.transform(o.mClientConfig);console.log("[GoogleWebProvider] initialize with config %o",r),o.redirectUrl&&(r.ux_mode="redirect",r.redirect_uri=encodeURI(o.redirectUrl)),o.mAuth=n.auth2.init(r),console.log("gauth",window.gauth),o.mAuth.currentUser.listen(o.handleLoginState),o.mAuth.isSignedIn.get()&&(o.mContext=o.mAuth.currentUser.get().getAuthResponse(),o.handleLoginState(!0)),e(o)})},r.onerror=n,document.head.appendChild(r)})},o.logoutImpl=function(){return a(o,void 0,void 0,function(){var e;return s(this,function(t){switch(t.label){case 0:return[4,this.mAuth.disconnect()];case 1:return t.sent(),window.opener||((e=document.querySelector("#anue-dpi"))||((e=document.createElement("iframe")).setAttribute("id","anue-dpi"),e.style.border="none",e.style.position="fixed",e.style.left="-9999px",e.style.top="-9999px",e.height="1px",e.width="1px",document.body.appendChild(e)),e.addEventListener("load",function(){e&&e.contentWindow&&(console.log("post logout event to dpi"),e.contentWindow.postMessage("handshake","*"))}),e.src="https://www.google.com/accounts/Logout"),[2,!0]}})})},o.loginImpl=function(e){return o.mAuth.signIn(e)},!n.clientId||!n.apiKey)throw{message:"Failed to initialize GoogleProvider without config.appId and config.apiKey"};return o.mClientConfig=n,o}return c(t,e),t.transform=function(e){var t={};for(var n in e){var o=n.match(/[A-Z]?[a-z]+/g);if(o)t[o.join("_").toLowerCase()]=e[n]}return t},t}(r.a);t.default=l}},[[28,0,1]]])});
//# sourceMappingURL=GoogleWebProvider.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition","webpack://anue-fe-sdk.[name]/./src/packages/Provider/GoogleWebProvider.ts"],"names":["root","factory","exports","module","define","amd","window","global","GoogleProvider","_super","config","_this","call","this","mIsScriptLoaded","loginPromises","logoutPromises","redirectUrl","getCurrentUser","user","Object","_utils_getty__WEBPACK_IMPORTED_MODULE_1__","get","getName","getType","_constants_Keys__WEBPACK_IMPORTED_MODULE_2__","SupportedProviderType","Social","getContext","currentUser","isSignedIn","ctx","getAuthResponse","idToken","id_token","tokenType","token_type","accessToken","access_token","refresh","__awaiter","mAuth","reloadAuthResponse","result","_a","sent","console","log","populatePromises","queue","length","f","pop","handleLoginState","loggedIn","mContext","emitStateChange","initImpl","Promise","resolve","reject","script","document","createElement","src","onload","gapi","load","transform","mClientConfig","ux_mode","redirect_uri","encodeURI","auth2","init","gauth","listen","onerror","head","appendChild","logoutImpl","disconnect","opener","dpi_1","querySelector","setAttribute","style","border","position","left","top","height","width","body","addEventListener","contentWindow","postMessage","loginImpl","signIn","clientId","apiKey","message","__extends","obj","prop","match","join","toLowerCase","_AbstractProvider_abstract__WEBPACK_IMPORTED_MODULE_0__","__webpack_exports__"],"mappings":"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","file":"GoogleWebProvider.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"GoogleWebProvider\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GoogleWebProvider\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"GoogleWebProvider\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn ","import AbstractProvider from './AbstractProvider.abstract';\nimport getty from '@utils/getty';\nimport Keys from '@constants/Keys';\n\ninterface GAuthConfig {\n redirect_uri?: string;\n ux_mode?: 'popup' | 'redirect';\n client_id: string;\n hosted_domain?: string;\n api_key?: string;\n cookie_policy?: string;\n prompt?: string;\n}\n\nexport default class GoogleProvider extends AbstractProvider {\n private mIsScriptLoaded = false;\n private loginPromises: Array<() => void> = [];\n private logoutPromises: Array<() => void> = [];\n private mAuth;\n private redirectUrl: string | null = null;\n private mClientConfig;\n\n static transform = <T = any>(obj): T => {\n const result = {};\n for (const prop in obj) {\n const match = prop.match(/[A-Z]?[a-z]+/g);\n if (match) {\n const key = match.join('_').toLowerCase();\n result[key] = obj[prop];\n }\n }\n return result as T;\n };\n\n constructor(config: Anue.Provider.GoogleProviderConfig) {\n super();\n if (!config.clientId || !config.apiKey) {\n throw {\n message:\n 'Failed to initialize GoogleProvider without config.appId and config.apiKey'\n };\n }\n this.mClientConfig = config;\n }\n\n private getCurrentUser = () => {\n const user = getty(this, ['mAuth', 'currentUser']);\n if (user) {\n return user.get();\n }\n return null;\n };\n\n getName = () => 'google';\n\n getType = () => Keys.SupportedProviderType.Social;\n\n getContext = (): Anue.Provider.Response | null => {\n const currentUser = this.getCurrentUser();\n if (currentUser.isSignedIn()) {\n const ctx = currentUser.getAuthResponse(true);\n return {\n idToken: ctx.id_token,\n tokenType: ctx.token_type,\n accessToken: ctx.access_token\n };\n }\n return null;\n };\n\n refresh = async (): Promise<Anue.Provider.Response> => {\n if (!this.getCurrentUser()) {\n throw `cannot refresh Google tokens because the account is not logged in`;\n }\n const result = await this.mAuth.currentUser.get().reloadAuthResponse();\n console.log('GoogleWebProvider refreshed', result);\n return {\n idToken: result.id_token,\n accessToken: result.access_token,\n tokenType: result.token_type\n };\n };\n\n private populatePromises = (queue, ctx) => {\n while (queue.length > 0) {\n const f = queue.pop();\n if (f) {\n f(ctx);\n }\n }\n };\n\n handleLoginState = (loggedIn: boolean) => {\n this.mContext = this.getContext();\n let queue;\n console.log('GoogleProvider sign state in event =>', loggedIn);\n if (loggedIn) {\n queue = this.loginPromises;\n } else {\n queue = this.logoutPromises;\n }\n this.emitStateChange();\n this.populatePromises(queue, this.mContext);\n };\n\n initImpl = (): Promise<AbstractProvider> => {\n if (this.mIsScriptLoaded) {\n return Promise.resolve(this);\n }\n return new Promise((resolve, reject) => {\n this.mIsScriptLoaded = true;\n const script: HTMLScriptElement = document.createElement('script');\n script.src = 'https://apis.google.com/js/api:client.js';\n script.onload = () => {\n // @ts-ignore\n const gapi = window.gapi;\n gapi.load('auth2', () => {\n const config: GAuthConfig = GoogleProvider.transform<GAuthConfig>(\n this.mClientConfig\n );\n console.log('[GoogleWebProvider] initialize with config %o', config);\n if (this.redirectUrl) {\n config.ux_mode = 'redirect';\n config.redirect_uri = encodeURI(this.redirectUrl);\n }\n this.mAuth = gapi.auth2.init(config);\n // @ts-ignore\n console.log('gauth', window.gauth);\n this.mAuth.currentUser.listen(this.handleLoginState);\n if (this.mAuth.isSignedIn.get()) {\n this.mContext = this.mAuth.currentUser.get().getAuthResponse();\n this.handleLoginState(true);\n }\n\n resolve(this);\n });\n };\n script.onerror = reject;\n document.head.appendChild(script);\n });\n };\n\n logoutImpl = async (): Promise<boolean> => {\n // await this.mAuth.signOut();\n await this.mAuth.disconnect();\n if (!window.opener) {\n let dpi: HTMLIFrameElement | null = document.querySelector('#anue-dpi');\n if (!dpi) {\n dpi = document.createElement('iframe');\n dpi.setAttribute('id', 'anue-dpi');\n dpi.style.border = 'none';\n dpi.style.position = 'fixed';\n dpi.style.left = '-9999px';\n dpi.style.top = '-9999px';\n dpi.height = '1px';\n dpi.width = '1px';\n document.body.appendChild(dpi);\n }\n\n dpi.addEventListener('load', () => {\n if (dpi && dpi.contentWindow) {\n console.log('post logout event to dpi');\n dpi.contentWindow.postMessage('handshake', '*');\n }\n });\n dpi.src = 'https://www.google.com/accounts/Logout';\n }\n\n return true;\n };\n\n loginImpl = (config: GAuthConfig): Promise<Anue.Provider.Response | null> => {\n return this.mAuth.signIn(config);\n };\n}\n"],"sourceRoot":""}
\ No newline at end of file
!function(e,o){"object"==typeof exports&&"object"==typeof module?module.exports=o():"function"==typeof define&&define.amd?define("Network",[],o):"object"==typeof exports?exports.Network=o():(e["anue-fe-sdk"]=e["anue-fe-sdk"]||{},e["anue-fe-sdk"].Network=o())}("undefined"==typeof window?global:window,function(){return(("undefined"==typeof window?global:window).webpackJsonp=("undefined"==typeof window?global:window).webpackJsonp||[]).push([[11],[],[[1,0,1]]])});
//# sourceMappingURL=Network.js.map
\ No newline at end of file
{"version":3,"sources":["webpack://anue-fe-sdk.[name]/webpack/universalModuleDefinition"],"names":["root","factory","exports","module","define","amd","window","global"],"mappings":"CAAA,SAAAA,EAAAC,GACA,iBAAAC,SAAA,iBAAAC,OACAA,OAAAD,QAAAD,IACA,mBAAAG,eAAAC,IACAD,OAAA,aAAAH,GACA,iBAAAC,QACAA,QAAA,QAAAD,KAEAD,EAAA,eAAAA,EAAA,mBAAiDA,EAAA,uBAAAC,KARjD,CASC,oBAAAK,OAAAC,OAAAD,OAAA,WACD","file":"Network.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Network\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Network\"] = factory();\n\telse\n\t\troot[\"anue-fe-sdk\"] = root[\"anue-fe-sdk\"] || {}, root[\"anue-fe-sdk\"][\"Network\"] = factory();\n})((typeof window === 'undefined' ? global : window), function() {\nreturn "],"sourceRoot":""}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment