UNPKG

@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) 4.19 kB
{ "version": 3, "sources": ["../../src/index.js", "../../src/tools.js"], "sourcesContent": ["export * from \"./tools\";", "\r\nexport const sliceMap = (arr, size, callback) => {\r\n size = Math.max(1, size) || 1;\r\n const r = [];\r\n if (!Array.isArray(arr)) { return r; }\r\n for (let k = 0; k < arr.length; k += size) {\r\n r.push(callback(arr.slice(k, k + size), r.length, size, arr.length));\r\n }\r\n return r;\r\n}\r\n\r\nexport const extendURL = (url, query = {}) => {\r\n const u = new URL(url);\r\n for (let i in query) {\r\n if (query[i] != null) { u.searchParams.append(i, query[i]); }\r\n }\r\n return u.toString();\r\n}\r\n\r\n\r\nexport const isValidURL = str => {\r\n try { new URL(str); } catch (e) { return false; }\r\n return true;\r\n}\r\n\r\nexport const validateURL = (required, url, errProp) => {\r\n if (!url && !required) { return; }\r\n if (isValidURL(url)) { return url; }\r\n throw new Error(`${errProp} is not a valid URL`);\r\n}\r\n\r\nexport const validateFn = (required, fn, errProp) => {\r\n if (!fn && !required) { return; }\r\n if (typeof fn === \"function\") { return fn; }\r\n throw new Error(`${errProp} is not a valid function`);\r\n}\r\n\r\nexport const validateStr = (required, str, errProp) => {\r\n if (!str && !required) { return; }\r\n if (typeof str === \"string\") { return str; }\r\n throw new Error(`${errProp} is not a valid string`);\r\n}\r\n\r\n\r\nexport const formatCredentials = (credentials={}) => {\r\n const c = {...credentials};\r\n\r\n if (c.expires_in && !c.expiry_date) {\r\n c.expiry_date = Date.now() + c.expires_in * 1000;\r\n }\r\n\r\n if (c.refresh_token && !c.expiry_date) {\r\n throw new Error(`OAuth2 credentials 'refresh_token' must be provided with 'expiry_date'`);\r\n }\r\n\r\n if (!c.access_token && !c.refresh_token) {\r\n throw new Error(`OAuth2 credentials 'access_token' of 'refresh_token' must be provided`);\r\n }\r\n\r\n return c;\r\n}\r\n\r\n\r\nexport const strToBase64 = str => Buffer.from(str, 'utf8').toString('base64');\r\nexport const strFromBase64 = strEncoded => Buffer.from(strEncoded, 'base64').toString('utf8');\r\n\r\nexport const objToBase64 = obj => strToBase64(JSON.stringify(obj));\r\nexport const objFromBase64 = objEncoded => JSON.parse(strFromBase64(objEncoded));"], "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCO,IAAM,WAAW,CAAC,KAAK,MAAM,aAAa;AAC7C,SAAO,KAAK,IAAI,GAAG,IAAI,KAAK;AAC5B,QAAM,IAAI,CAAC;AACX,MAAI,CAAC,MAAM,QAAQ,GAAG,GAAG;AAAE,WAAO;AAAA,EAAG;AACrC,WAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK,MAAM;AACvC,MAAE,KAAK,SAAS,IAAI,MAAM,GAAG,IAAI,IAAI,GAAG,EAAE,QAAQ,MAAM,IAAI,MAAM,CAAC;AAAA,EACvE;AACA,SAAO;AACX;AAEO,IAAM,YAAY,CAAC,KAAK,QAAQ,CAAC,MAAM;AAC1C,QAAM,IAAI,IAAI,IAAI,GAAG;AACrB,WAAS,KAAK,OAAO;AACjB,QAAI,MAAM,CAAC,KAAK,MAAM;AAAE,QAAE,aAAa,OAAO,GAAG,MAAM,CAAC,CAAC;AAAA,IAAG;AAAA,EAChE;AACA,SAAO,EAAE,SAAS;AACtB;AAGO,IAAM,aAAa,SAAO;AAC7B,MAAI;AAAE,QAAI,IAAI,GAAG;AAAA,EAAG,SAAS,GAAG;AAAE,WAAO;AAAA,EAAO;AAChD,SAAO;AACX;AAEO,IAAM,cAAc,CAAC,UAAU,KAAK,YAAY;AACnD,MAAI,CAAC,OAAO,CAAC,UAAU;AAAE;AAAA,EAAQ;AACjC,MAAI,WAAW,GAAG,GAAG;AAAE,WAAO;AAAA,EAAK;AACnC,QAAM,IAAI,MAAM,GAAG,OAAO,qBAAqB;AACnD;AAEO,IAAM,aAAa,CAAC,UAAU,IAAI,YAAY;AACjD,MAAI,CAAC,MAAM,CAAC,UAAU;AAAE;AAAA,EAAQ;AAChC,MAAI,OAAO,OAAO,YAAY;AAAE,WAAO;AAAA,EAAI;AAC3C,QAAM,IAAI,MAAM,GAAG,OAAO,0BAA0B;AACxD;AAEO,IAAM,cAAc,CAAC,UAAU,KAAK,YAAY;AACnD,MAAI,CAAC,OAAO,CAAC,UAAU;AAAE;AAAA,EAAQ;AACjC,MAAI,OAAO,QAAQ,UAAU;AAAE,WAAO;AAAA,EAAK;AAC3C,QAAM,IAAI,MAAM,GAAG,OAAO,wBAAwB;AACtD;AAGO,IAAM,oBAAoB,CAAC,cAAY,CAAC,MAAM;AACjD,QAAM,IAAI,EAAC,GAAG,YAAW;AAEzB,MAAI,EAAE,cAAc,CAAC,EAAE,aAAa;AAChC,MAAE,cAAc,KAAK,IAAI,IAAI,EAAE,aAAa;AAAA,EAChD;AAEA,MAAI,EAAE,iBAAiB,CAAC,EAAE,aAAa;AACnC,UAAM,IAAI,MAAM,wEAAwE;AAAA,EAC5F;AAEA,MAAI,CAAC,EAAE,gBAAgB,CAAC,EAAE,eAAe;AACrC,UAAM,IAAI,MAAM,uEAAuE;AAAA,EAC3F;AAEA,SAAO;AACX;AAGO,IAAM,cAAc,SAAO,OAAO,KAAK,KAAK,MAAM,EAAE,SAAS,QAAQ;AACrE,IAAM,gBAAgB,gBAAc,OAAO,KAAK,YAAY,QAAQ,EAAE,SAAS,MAAM;AAErF,IAAM,cAAc,SAAO,YAAY,KAAK,UAAU,GAAG,CAAC;AAC1D,IAAM,gBAAgB,gBAAc,KAAK,MAAM,cAAc,UAAU,CAAC;", "names": [] }