@randajan/oauth2-client
Version:
Lightweight Node.js helper that streamlines OAuth 2.0 and service-account authentication for all Google APIs, giving downstream packages hassle-free token acquisition and refresh
8 lines (7 loc) • 5.35 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../../src/facebook/FacebookAccount.js", "../../../src/facebook/FacebookGrant.js", "../../../src/facebook/index.js"],
"sourcesContent": ["import { OAuth2Account } from \"../class/OAuth2Account\";\r\nimport { vault } from \"../consts\";\r\n\r\n\r\nexport class FacebookAccount extends OAuth2Account {\r\n\r\n async profile(fields = [\"id\", \"name\", \"email\", \"picture\"]) {\r\n const grant = vault.get(this.client);\r\n const { access_token } = this.credentials;\r\n\r\n return grant.fetchApi(`/me`, {\r\n access_token,\r\n fields: fields.join(\",\")\r\n }, 3);\r\n }\r\n\r\n async tokens() {\r\n return this.credentials;\r\n }\r\n\r\n async scopes() {\r\n const grant = vault.get(this.client);\r\n const { access_token } = this.credentials;\r\n\r\n const { data } = await grant.fetchApi(\"/me/permisssions\", {\r\n access_token\r\n }, 3);\r\n\r\n // /me/permissions vrac\u00ED [{permission, status}, \u2026]\r\n return super.scopes(data.filter(p => p.status === \"granted\").map(p => p.permission));\r\n }\r\n\r\n}", "import fetch from \"node-fetch\";\r\nimport { OAuth2Grant } from \"../class/OAuth2Grant\";\r\nimport { extendURL, validateStr } from \"../tools\";\r\nimport { RedirectError } from \"../errors\";\r\nimport { FacebookAccount } from \"./FacebookAccount\";\r\n\r\n\r\n\r\nexport class FacebookGrant extends OAuth2Grant {\r\n\r\n static name = \"facebook\";\r\n static uidKey = \"id\";\r\n static scopePrefix = \"\";\r\n static scopesCommon = [];\r\n static scopesNoPrefix = [];\r\n static Account = FacebookAccount;\r\n\r\n constructor(client, opt = {}) {\r\n super(client, opt);\r\n\r\n this.apiVersion = validateStr(true, opt.apiVersion, \"options.apiVersion\");\r\n }\r\n\r\n createApiUrl(subdomain, path, query={}) {\r\n const { apiVersion } = this;\r\n return extendURL(\r\n `https://${subdomain}.facebook.com/${apiVersion}${path}`,\r\n query\r\n );\r\n }\r\n\r\n async fetchApi(path, query, errorCode = 2) {\r\n const url = this.createApiUrl(\"graph\", path, query);\r\n const res = await fetch(url);\r\n if (!res.ok) { throw new RedirectError(errorCode, await res.text()); }\r\n return res.json();\r\n }\r\n\r\n generateAuthUrl(scope, state, extra) {\r\n const { clientId, redirectUri } = this;\r\n\r\n return this.createApiUrl(\"www\", `/dialog/oauth`, {\r\n ...extra,\r\n response_type: \"code\",\r\n client_id: clientId,\r\n redirect_uri: redirectUri,\r\n scope: scope.join(\",\"), // FB odd\u011Bluje \u010D\u00E1rkou\r\n state\r\n });\r\n }\r\n\r\n async swapCodeForTokens(code) {\r\n const { clientId, clientSecret, redirectUri } = this;\r\n\r\n return this.fetchApi(`/oauth/access_token`, {\r\n client_id: clientId,\r\n client_secret: clientSecret,\r\n redirect_uri: redirectUri,\r\n code\r\n });\r\n\r\n }\r\n\r\n}", "import { OAuth2Client } from \"../class/OAuth2Client\";\r\nimport { FacebookAccount } from \"./FacebookAccount\";\r\nimport { FacebookGrant } from \"./FacebookGrant\";\r\n\r\n\r\nexport const createFacebookOAuth2 = (options={})=>new OAuth2Client(FacebookGrant, options);\r\nexport default createFacebookOAuth2;\r\n\r\nexport {\r\n FacebookAccount,\r\n FacebookGrant\r\n}"],
"mappings": ";;;;;;;;;;;;;AAIO,IAAM,kBAAN,cAA8B,cAAc;AAAA,EAE/C,MAAM,QAAQ,SAAS,CAAC,MAAM,QAAQ,SAAS,SAAS,GAAG;AACvD,UAAM,QAAQ,MAAM,IAAI,KAAK,MAAM;AACnC,UAAM,EAAE,aAAa,IAAI,KAAK;AAE9B,WAAO,MAAM,SAAS,OAAO;AAAA,MACzB;AAAA,MACA,QAAQ,OAAO,KAAK,GAAG;AAAA,IAC3B,GAAG,CAAC;AAAA,EACR;AAAA,EAEA,MAAM,SAAS;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,SAAS;AACX,UAAM,QAAQ,MAAM,IAAI,KAAK,MAAM;AACnC,UAAM,EAAE,aAAa,IAAI,KAAK;AAE9B,UAAM,EAAE,KAAK,IAAI,MAAM,MAAM,SAAS,oBAAoB;AAAA,MACtD;AAAA,IACJ,GAAG,CAAC;AAGJ,WAAO,MAAM,OAAO,KAAK,OAAO,OAAK,EAAE,WAAW,SAAS,EAAE,IAAI,OAAK,EAAE,UAAU,CAAC;AAAA,EACvF;AAEJ;;;AChCA,OAAO,WAAW;AAQX,IAAM,gBAAN,cAA4B,YAAY;AAAA,EAE3C,OAAO,OAAO;AAAA,EACd,OAAO,SAAS;AAAA,EAChB,OAAO,cAAc;AAAA,EACrB,OAAO,eAAe,CAAC;AAAA,EACvB,OAAO,iBAAiB,CAAC;AAAA,EACzB,OAAO,UAAU;AAAA,EAEjB,YAAY,QAAQ,MAAM,CAAC,GAAG;AAC1B,UAAM,QAAQ,GAAG;AAEjB,SAAK,aAAa,YAAY,MAAM,IAAI,YAAY,oBAAoB;AAAA,EAC5E;AAAA,EAEA,aAAa,WAAW,MAAM,QAAM,CAAC,GAAG;AACpC,UAAM,EAAE,WAAW,IAAI;AACvB,WAAO;AAAA,MACH,WAAW,SAAS,iBAAiB,UAAU,GAAG,IAAI;AAAA,MACtD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,SAAS,MAAM,OAAO,YAAY,GAAG;AACvC,UAAM,MAAM,KAAK,aAAa,SAAS,MAAM,KAAK;AAClD,UAAM,MAAM,MAAM,MAAM,GAAG;AAC3B,QAAI,CAAC,IAAI,IAAI;AAAE,YAAM,IAAI,cAAc,WAAW,MAAM,IAAI,KAAK,CAAC;AAAA,IAAG;AACrE,WAAO,IAAI,KAAK;AAAA,EACpB;AAAA,EAEA,gBAAgB,OAAO,OAAO,OAAO;AACjC,UAAM,EAAE,UAAU,YAAY,IAAI;AAElC,WAAO,KAAK,aAAa,OAAO,iBAAiB;AAAA,MAC7C,GAAG;AAAA,MACH,eAAe;AAAA,MACf,WAAW;AAAA,MACX,cAAc;AAAA,MACd,OAAO,MAAM,KAAK,GAAG;AAAA;AAAA,MACrB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,kBAAkB,MAAM;AAC1B,UAAM,EAAE,UAAU,cAAc,YAAY,IAAI;AAEhD,WAAO,KAAK,SAAS,uBAAuB;AAAA,MACxC,WAAW;AAAA,MACX,eAAe;AAAA,MACf,cAAc;AAAA,MACd;AAAA,IACJ,CAAC;AAAA,EAEL;AAEJ;;;AC1DO,IAAM,uBAAuB,CAAC,UAAQ,CAAC,MAAI,IAAI,aAAa,eAAe,OAAO;AACzF,IAAO,mBAAQ;",
"names": []
}