{
  "version": 3,
  "sources": ["../../../src/seznam/SeznamAccount.js", "../../../src/seznam/SeznamGrant.js", "../../../src/seznam/index.js"],
  "sourcesContent": ["import { google } from \"googleapis\";\r\nimport { solids } from \"@randajan/props\";\r\n\r\nimport { OAuth2Account } from \"../class/OAuth2Account\";\r\nimport { vault } from \"../consts\";\r\n\r\n\r\n\r\nexport class SeznamAccount extends OAuth2Account {\r\n\r\n    async profile() {\r\n        const grant = vault.get(this.client);\r\n        const { access_token } = this.credentials;\r\n\r\n        return grant.fetchApiGet(\"/user\", {\r\n            Authorization: `bearer ${access_token}`, \"Accept\": \"application/json\"\r\n        });\r\n    }\r\n\r\n    async tokens() {\r\n        return this.credentials;\r\n    }\r\n\r\n    async scopes() {\r\n        if (this.credentials?.scopes) {\r\n            return super.scopes(this.credentials.scopes);\r\n        }\r\n        return [];\r\n    }\r\n\r\n}", "// SeznamGrant.js\r\nimport fetch from \"node-fetch\";\r\nimport { OAuth2Grant } from \"../class/OAuth2Grant\";\r\nimport { extendURL } from \"../tools\";\r\nimport { RedirectError } from \"../errors\";\r\nimport { SeznamAccount } from \"./SeznamAccount\";\r\n\r\nexport class SeznamGrant extends OAuth2Grant {\r\n\r\n    static name = \"seznam\";\r\n    static uidKey = \"email\";\r\n    static scopePrefix = \"\";                 // Seznam prefix nepou\u017E\u00EDv\u00E1\r\n    static scopesCommon = [\"identity\"];      // povinn\u00FD scope\r\n    static scopesNoPrefix = [];              // nic zvl\u00E1\u0161tn\u00EDho\r\n    static Account = SeznamAccount;\r\n\r\n    createApiUrl(path, query = {}) {\r\n        return extendURL(\r\n            `https://login.szn.cz/api/v1${path}`,\r\n            query\r\n        );\r\n    }\r\n\r\n    async fetchApiGet(path, headers, errorCode = 2) {\r\n        const url = this.createApiUrl(path);\r\n        const res = await fetch(url, { headers });\r\n        if (!res.ok) { throw new RedirectError(errorCode, await res.text()); }\r\n        return res.json();\r\n    }\r\n\r\n    async fetchApiPost(path, body, errorCode = 2) {\r\n        const url = this.createApiUrl(path);\r\n        const res = await fetch(url, {\r\n            method: \"POST\",\r\n            headers: { \"Content-Type\": \"application/json\", \"Accept\": \"application/json\" },\r\n            body: JSON.stringify(body)\r\n        });\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, isOffline } = this;\r\n\r\n        const access_type = isOffline ? \"offline\" : \"\";\r\n\r\n        return this.createApiUrl(\"/oauth/auth\", {\r\n            ...extra,\r\n            access_type,\r\n            response_type: \"code\",\r\n            client_id: clientId,\r\n            redirect_uri: redirectUri,\r\n            scope: scope.join(\",\"),          // Seznam 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.fetchApiPost(\"/oauth/token\", {\r\n            grant_type: \"authorization_code\",\r\n            code,\r\n            client_id: clientId,\r\n            client_secret: clientSecret,\r\n            redirect_uri: redirectUri\r\n        }, 2);\r\n\r\n    }\r\n}\r\n", "import { OAuth2Client } from \"../class/OAuth2Client\";\r\nimport { SeznamAccount } from \"./SeznamAccount\";\r\nimport { SeznamGrant } from \"./SeznamGrant\";\r\n\r\n\r\nexport const createSeznamOAuth2 = (options={})=>new OAuth2Client(SeznamGrant, options);\r\nexport default createSeznamOAuth2;\r\n\r\nexport {\r\n    SeznamAccount,\r\n    SeznamGrant\r\n}"],
  "mappings": ";;;;;;;;;;;;AAAA,SAAS,cAAc;AACvB,SAAS,cAAc;AAOhB,IAAM,gBAAN,cAA4B,cAAc;AAAA,EAE7C,MAAM,UAAU;AACZ,UAAM,QAAQ,MAAM,IAAI,KAAK,MAAM;AACnC,UAAM,EAAE,aAAa,IAAI,KAAK;AAE9B,WAAO,MAAM,YAAY,SAAS;AAAA,MAC9B,eAAe,UAAU,YAAY;AAAA,MAAI,UAAU;AAAA,IACvD,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,SAAS;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,SAAS;AACX,QAAI,KAAK,aAAa,QAAQ;AAC1B,aAAO,MAAM,OAAO,KAAK,YAAY,MAAM;AAAA,IAC/C;AACA,WAAO,CAAC;AAAA,EACZ;AAEJ;;;AC7BA,OAAO,WAAW;AAMX,IAAM,cAAN,cAA0B,YAAY;AAAA,EAEzC,OAAO,OAAO;AAAA,EACd,OAAO,SAAS;AAAA,EAChB,OAAO,cAAc;AAAA;AAAA,EACrB,OAAO,eAAe,CAAC,UAAU;AAAA;AAAA,EACjC,OAAO,iBAAiB,CAAC;AAAA;AAAA,EACzB,OAAO,UAAU;AAAA,EAEjB,aAAa,MAAM,QAAQ,CAAC,GAAG;AAC3B,WAAO;AAAA,MACH,8BAA8B,IAAI;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,YAAY,MAAM,SAAS,YAAY,GAAG;AAC5C,UAAM,MAAM,KAAK,aAAa,IAAI;AAClC,UAAM,MAAM,MAAM,MAAM,KAAK,EAAE,QAAQ,CAAC;AACxC,QAAI,CAAC,IAAI,IAAI;AAAE,YAAM,IAAI,cAAc,WAAW,MAAM,IAAI,KAAK,CAAC;AAAA,IAAG;AACrE,WAAO,IAAI,KAAK;AAAA,EACpB;AAAA,EAEA,MAAM,aAAa,MAAM,MAAM,YAAY,GAAG;AAC1C,UAAM,MAAM,KAAK,aAAa,IAAI;AAClC,UAAM,MAAM,MAAM,MAAM,KAAK;AAAA,MACzB,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,oBAAoB,UAAU,mBAAmB;AAAA,MAC5E,MAAM,KAAK,UAAU,IAAI;AAAA,IAC7B,CAAC;AACD,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,aAAa,UAAU,IAAI;AAE7C,UAAM,cAAc,YAAY,YAAY;AAE5C,WAAO,KAAK,aAAa,eAAe;AAAA,MACpC,GAAG;AAAA,MACH;AAAA,MACA,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,aAAa,gBAAgB;AAAA,MACrC,YAAY;AAAA,MACZ;AAAA,MACA,WAAW;AAAA,MACX,eAAe;AAAA,MACf,cAAc;AAAA,IAClB,GAAG,CAAC;AAAA,EAER;AACJ;;;AChEO,IAAM,qBAAqB,CAAC,UAAQ,CAAC,MAAI,IAAI,aAAa,aAAa,OAAO;AACrF,IAAO,iBAAQ;",
  "names": []
}
