diff options
author | Determinant <ted.sybil@gmail.com> | 2019-02-06 23:36:34 -0500 |
---|---|---|
committer | Determinant <ted.sybil@gmail.com> | 2019-02-06 23:36:34 -0500 |
commit | 13a2bd4f4aee6b4dec0ce799e9ba212693cbedf1 (patch) | |
tree | de455efa781bdb07101eaa3283971b057e8081a7 | |
parent | 96b08d7651a7ecddc15bc77ce5c453fbe4e12b12 (diff) |
eject from create-react-app
-rw-r--r-- | build/asset-manifest.json | 2 | ||||
-rw-r--r-- | build/background.js | 1458 | ||||
-rw-r--r-- | build/precache-manifest.1337e078e6eec70d12e2336861e54d3e.js (renamed from build/precache-manifest.4cc5346ce1c6ce2767dbf132ce3dea89.js) | 28 | ||||
-rw-r--r-- | build/service-worker.js | 2 | ||||
-rw-r--r-- | config/env.js | 93 | ||||
-rw-r--r-- | config/jest/cssTransform.js | 14 | ||||
-rw-r--r-- | config/jest/fileTransform.js | 30 | ||||
-rw-r--r-- | config/paths.js | 89 | ||||
-rw-r--r-- | config/webpack.config.js | 610 | ||||
-rw-r--r-- | config/webpackDevServer.config.js | 104 | ||||
-rw-r--r-- | package-lock.json | 96 | ||||
-rw-r--r-- | package.json | 103 | ||||
-rw-r--r-- | scripts/build-bg.js (renamed from s/build.js) | 0 | ||||
-rw-r--r-- | scripts/build.js | 192 | ||||
-rw-r--r-- | scripts/start.js | 117 | ||||
-rw-r--r-- | scripts/test.js | 53 |
16 files changed, 1426 insertions, 1565 deletions
diff --git a/build/asset-manifest.json b/build/asset-manifest.json index 9a2b762..cf887a4 100644 --- a/build/asset-manifest.json +++ b/build/asset-manifest.json @@ -9,6 +9,6 @@ "static/media/index.css": "/static/media/roboto-latin-700.cf6613d1.woff", "static/css/1.802cfb51.chunk.css.map": "/static/css/1.802cfb51.chunk.css.map", "index.html": "/index.html", - "precache-manifest.4cc5346ce1c6ce2767dbf132ce3dea89.js": "/precache-manifest.4cc5346ce1c6ce2767dbf132ce3dea89.js", + "precache-manifest.1337e078e6eec70d12e2336861e54d3e.js": "/precache-manifest.1337e078e6eec70d12e2336861e54d3e.js", "service-worker.js": "/service-worker.js" }
\ No newline at end of file diff --git a/build/background.js b/build/background.js deleted file mode 100644 index 8519660..0000000 --- a/build/background.js +++ /dev/null @@ -1,1458 +0,0 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){ -'use strict' - -// A linked list to keep track of recently-used-ness -const Yallist = require('yallist') - -const MAX = Symbol('max') -const LENGTH = Symbol('length') -const LENGTH_CALCULATOR = Symbol('lengthCalculator') -const ALLOW_STALE = Symbol('allowStale') -const MAX_AGE = Symbol('maxAge') -const DISPOSE = Symbol('dispose') -const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet') -const LRU_LIST = Symbol('lruList') -const CACHE = Symbol('cache') -const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet') - -const naiveLength = () => 1 - -// lruList is a yallist where the head is the youngest -// item, and the tail is the oldest. the list contains the Hit -// objects as the entries. -// Each Hit object has a reference to its Yallist.Node. This -// never changes. -// -// cache is a Map (or PseudoMap) that matches the keys to -// the Yallist.Node object. -class LRUCache { - constructor (options) { - if (typeof options === 'number') - options = { max: options } - - if (!options) - options = {} - - if (options.max && (typeof options.max !== 'number' || options.max < 0)) - throw new TypeError('max must be a non-negative number') - // Kind of weird to have a default max of Infinity, but oh well. - const max = this[MAX] = options.max || Infinity - - const lc = options.length || naiveLength - this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc - this[ALLOW_STALE] = options.stale || false - if (options.maxAge && typeof options.maxAge !== 'number') - throw new TypeError('maxAge must be a number') - this[MAX_AGE] = options.maxAge || 0 - this[DISPOSE] = options.dispose - this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false - this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false - this.reset() - } - - // resize the cache when the max changes. - set max (mL) { - if (typeof mL !== 'number' || mL < 0) - throw new TypeError('max must be a non-negative number') - - this[MAX] = mL || Infinity - trim(this) - } - get max () { - return this[MAX] - } - - set allowStale (allowStale) { - this[ALLOW_STALE] = !!allowStale - } - get allowStale () { - return this[ALLOW_STALE] - } - - set maxAge (mA) { - if (typeof mA !== 'number') - throw new TypeError('maxAge must be a non-negative number') - - this[MAX_AGE] = mA - trim(this) - } - get maxAge () { - return this[MAX_AGE] - } - - // resize the cache when the lengthCalculator changes. - set lengthCalculator (lC) { - if (typeof lC !== 'function') - lC = naiveLength - - if (lC !== this[LENGTH_CALCULATOR]) { - this[LENGTH_CALCULATOR] = lC - this[LENGTH] = 0 - this[LRU_LIST].forEach(hit => { - hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key) - this[LENGTH] += hit.length - }) - } - trim(this) - } - get lengthCalculator () { return this[LENGTH_CALCULATOR] } - - get length () { return this[LENGTH] } - get itemCount () { return this[LRU_LIST].length } - - rforEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].tail; walker !== null;) { - const prev = walker.prev - forEachStep(this, fn, walker, thisp) - walker = prev - } - } - - forEach (fn, thisp) { - thisp = thisp || this - for (let walker = this[LRU_LIST].head; walker !== null;) { - const next = walker.next - forEachStep(this, fn, walker, thisp) - walker = next - } - } - - keys () { - return this[LRU_LIST].toArray().map(k => k.key) - } - - values () { - return this[LRU_LIST].toArray().map(k => k.value) - } - - reset () { - if (this[DISPOSE] && - this[LRU_LIST] && - this[LRU_LIST].length) { - this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)) - } - - this[CACHE] = new Map() // hash of items by key - this[LRU_LIST] = new Yallist() // list of items in order of use recency - this[LENGTH] = 0 // length of items in the list - } - - dump () { - return this[LRU_LIST].map(hit => - isStale(this, hit) ? false : { - k: hit.key, - v: hit.value, - e: hit.now + (hit.maxAge || 0) - }).toArray().filter(h => h) - } - - dumpLru () { - return this[LRU_LIST] - } - - set (key, value, maxAge) { - maxAge = maxAge || this[MAX_AGE] - - if (maxAge && typeof maxAge !== 'number') - throw new TypeError('maxAge must be a number') - - const now = maxAge ? Date.now() : 0 - const len = this[LENGTH_CALCULATOR](value, key) - - if (this[CACHE].has(key)) { - if (len > this[MAX]) { - del(this, this[CACHE].get(key)) - return false - } - - const node = this[CACHE].get(key) - const item = node.value - - // dispose of the old one before overwriting - // split out into 2 ifs for better coverage tracking - if (this[DISPOSE]) { - if (!this[NO_DISPOSE_ON_SET]) - this[DISPOSE](key, item.value) - } - - item.now = now - item.maxAge = maxAge - item.value = value - this[LENGTH] += len - item.length - item.length = len - this.get(key) - trim(this) - return true - } - - const hit = new Entry(key, value, len, now, maxAge) - - // oversized objects fall out of cache automatically. - if (hit.length > this[MAX]) { - if (this[DISPOSE]) - this[DISPOSE](key, value) - - return false - } - - this[LENGTH] += hit.length - this[LRU_LIST].unshift(hit) - this[CACHE].set(key, this[LRU_LIST].head) - trim(this) - return true - } - - has (key) { - if (!this[CACHE].has(key)) return false - const hit = this[CACHE].get(key).value - return !isStale(this, hit) - } - - get (key) { - return get(this, key, true) - } - - peek (key) { - return get(this, key, false) - } - - pop () { - const node = this[LRU_LIST].tail - if (!node) - return null - - del(this, node) - return node.value - } - - del (key) { - del(this, this[CACHE].get(key)) - } - - load (arr) { - // reset the cache - this.reset() - - const now = Date.now() - // A previous serialized cache has the most recent items first - for (let l = arr.length - 1; l >= 0; l--) { - const hit = arr[l] - const expiresAt = hit.e || 0 - if (expiresAt === 0) - // the item was created without expiration in a non aged cache - this.set(hit.k, hit.v) - else { - const maxAge = expiresAt - now - // dont add already expired items - if (maxAge > 0) { - this.set(hit.k, hit.v, maxAge) - } - } - } - } - - prune () { - this[CACHE].forEach((value, key) => get(this, key, false)) - } -} - -const get = (self, key, doUse) => { - const node = self[CACHE].get(key) - if (node) { - const hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - return undefined - } else { - if (doUse) { - if (self[UPDATE_AGE_ON_GET]) - node.value.now = Date.now() - self[LRU_LIST].unshiftNode(node) - } - } - return hit.value - } -} - -const isStale = (self, hit) => { - if (!hit || (!hit.maxAge && !self[MAX_AGE])) - return false - - const diff = Date.now() - hit.now - return hit.maxAge ? diff > hit.maxAge - : self[MAX_AGE] && (diff > self[MAX_AGE]) -} - -const trim = self => { - if (self[LENGTH] > self[MAX]) { - for (let walker = self[LRU_LIST].tail; - self[LENGTH] > self[MAX] && walker !== null;) { - // We know that we're about to delete this one, and also - // what the next least recently used key will be, so just - // go ahead and set it now. - const prev = walker.prev - del(self, walker) - walker = prev - } - } -} - -const del = (self, node) => { - if (node) { - const hit = node.value - if (self[DISPOSE]) - self[DISPOSE](hit.key, hit.value) - - self[LENGTH] -= hit.length - self[CACHE].delete(hit.key) - self[LRU_LIST].removeNode(node) - } -} - -class Entry { - constructor (key, value, length, now, maxAge) { - this.key = key - this.value = value - this.length = length - this.now = now - this.maxAge = maxAge || 0 - } -} - -const forEachStep = (self, fn, node, thisp) => { - let hit = node.value - if (isStale(self, hit)) { - del(self, node) - if (!self[ALLOW_STALE]) - hit = undefined - } - if (hit) - fn.call(thisp, hit.value, hit.key, self) -} - -module.exports = LRUCache - -},{"yallist":3}],2:[function(require,module,exports){ -'use strict' -module.exports = function (Yallist) { - Yallist.prototype[Symbol.iterator] = function* () { - for (let walker = this.head; walker; walker = walker.next) { - yield walker.value - } - } -} - -},{}],3:[function(require,module,exports){ -'use strict' -module.exports = Yallist - -Yallist.Node = Node -Yallist.create = Yallist - -function Yallist (list) { - var self = this - if (!(self instanceof Yallist)) { - self = new Yallist() - } - - self.tail = null - self.head = null - self.length = 0 - - if (list && typeof list.forEach === 'function') { - list.forEach(function (item) { - self.push(item) - }) - } else if (arguments.length > 0) { - for (var i = 0, l = arguments.length; i < l; i++) { - self.push(arguments[i]) - } - } - - return self -} - -Yallist.prototype.removeNode = function (node) { - if (node.list !== this) { - throw new Error('removing node which does not belong to this list') - } - - var next = node.next - var prev = node.prev - - if (next) { - next.prev = prev - } - - if (prev) { - prev.next = next - } - - if (node === this.head) { - this.head = next - } - if (node === this.tail) { - this.tail = prev - } - - node.list.length-- - node.next = null - node.prev = null - node.list = null -} - -Yallist.prototype.unshiftNode = function (node) { - if (node === this.head) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var head = this.head - node.list = this - node.next = head - if (head) { - head.prev = node - } - - this.head = node - if (!this.tail) { - this.tail = node - } - this.length++ -} - -Yallist.prototype.pushNode = function (node) { - if (node === this.tail) { - return - } - - if (node.list) { - node.list.removeNode(node) - } - - var tail = this.tail - node.list = this - node.prev = tail - if (tail) { - tail.next = node - } - - this.tail = node - if (!this.head) { - this.head = node - } - this.length++ -} - -Yallist.prototype.push = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - push(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.unshift = function () { - for (var i = 0, l = arguments.length; i < l; i++) { - unshift(this, arguments[i]) - } - return this.length -} - -Yallist.prototype.pop = function () { - if (!this.tail) { - return undefined - } - - var res = this.tail.value - this.tail = this.tail.prev - if (this.tail) { - this.tail.next = null - } else { - this.head = null - } - this.length-- - return res -} - -Yallist.prototype.shift = function () { - if (!this.head) { - return undefined - } - - var res = this.head.value - this.head = this.head.next - if (this.head) { - this.head.prev = null - } else { - this.tail = null - } - this.length-- - return res -} - -Yallist.prototype.forEach = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.head, i = 0; walker !== null; i++) { - fn.call(thisp, walker.value, i, this) - walker = walker.next - } -} - -Yallist.prototype.forEachReverse = function (fn, thisp) { - thisp = thisp || this - for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { - fn.call(thisp, walker.value, i, this) - walker = walker.prev - } -} - -Yallist.prototype.get = function (n) { - for (var i = 0, walker = this.head; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.next - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.getReverse = function (n) { - for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { - // abort out of the list early if we hit a cycle - walker = walker.prev - } - if (i === n && walker !== null) { - return walker.value - } -} - -Yallist.prototype.map = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.head; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.next - } - return res -} - -Yallist.prototype.mapReverse = function (fn, thisp) { - thisp = thisp || this - var res = new Yallist() - for (var walker = this.tail; walker !== null;) { - res.push(fn.call(thisp, walker.value, this)) - walker = walker.prev - } - return res -} - -Yallist.prototype.reduce = function (fn, initial) { - var acc - var walker = this.head - if (arguments.length > 1) { - acc = initial - } else if (this.head) { - walker = this.head.next - acc = this.head.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = 0; walker !== null; i++) { - acc = fn(acc, walker.value, i) - walker = walker.next - } - - return acc -} - -Yallist.prototype.reduceReverse = function (fn, initial) { - var acc - var walker = this.tail - if (arguments.length > 1) { - acc = initial - } else if (this.tail) { - walker = this.tail.prev - acc = this.tail.value - } else { - throw new TypeError('Reduce of empty list with no initial value') - } - - for (var i = this.length - 1; walker !== null; i--) { - acc = fn(acc, walker.value, i) - walker = walker.prev - } - - return acc -} - -Yallist.prototype.toArray = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.head; walker !== null; i++) { - arr[i] = walker.value - walker = walker.next - } - return arr -} - -Yallist.prototype.toArrayReverse = function () { - var arr = new Array(this.length) - for (var i = 0, walker = this.tail; walker !== null; i++) { - arr[i] = walker.value - walker = walker.prev - } - return arr -} - -Yallist.prototype.slice = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = 0, walker = this.head; walker !== null && i < from; i++) { - walker = walker.next - } - for (; walker !== null && i < to; i++, walker = walker.next) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.sliceReverse = function (from, to) { - to = to || this.length - if (to < 0) { - to += this.length - } - from = from || 0 - if (from < 0) { - from += this.length - } - var ret = new Yallist() - if (to < from || to < 0) { - return ret - } - if (from < 0) { - from = 0 - } - if (to > this.length) { - to = this.length - } - for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { - walker = walker.prev - } - for (; walker !== null && i > from; i--, walker = walker.prev) { - ret.push(walker.value) - } - return ret -} - -Yallist.prototype.reverse = function () { - var head = this.head - var tail = this.tail - for (var walker = head; walker !== null; walker = walker.prev) { - var p = walker.prev - walker.prev = walker.next - walker.next = p - } - this.head = tail - this.tail = head - return this -} - -function push (self, item) { - self.tail = new Node(item, self.tail, null, self) - if (!self.head) { - self.head = self.tail - } - self.length++ -} - -function unshift (self, item) { - self.head = new Node(item, null, self.head, self) - if (!self.tail) { - self.tail = self.head - } - self.length++ -} - -function Node (value, prev, next, list) { - if (!(this instanceof Node)) { - return new Node(value, prev, next, list) - } - - this.list = list - this.value = value - - if (prev) { - prev.next = this - this.prev = prev - } else { - this.prev = null - } - - if (next) { - next.prev = this - this.next = next - } else { - this.next = null - } -} - -try { - // add if support for Symbol.iterator is present - require('./iterator.js')(Yallist) -} catch (er) {} - -},{"./iterator.js":2}],4:[function(require,module,exports){ -"use strict"; - -var gapi = _interopRequireWildcard(require("./gapi")); - -var _msg2 = require("./msg"); - -function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } - -var mainPatterns = []; -var analyzePatterns = []; -var calendars = {}; -var calData = {}; -chrome.runtime.onConnect.addListener(function (port) { - console.assert(port.name == 'main'); - port.onMessage.addListener(function (_msg) { - var msg = _msg2.Msg.inflate(_msg); - - console.log(msg); - - if (msg.type == _msg2.msgType.updatePatterns) { - if (msg.data.id == 'analyze') analyzePatterns = msg.data.patterns;else mainPatterns = msg.data.patterns; - port.postMessage(msg.genResp(null)); - } else if (msg.type == _msg2.msgType.getPatterns) { - var patterns; - if (msg.data.id == 'analyze') patterns = analyzePatterns;else patterns = mainPatterns; - port.postMessage(msg.genResp(patterns)); - } else if (msg.type == _msg2.msgType.updateCalendars) { - calendars = msg.data; - - for (var id in calendars) { - if (!calData.hasOwnProperty(id)) calData[id] = new gapi.GCalendar(id, calendars[id].summary); - } - - port.postMessage(msg.genResp(null)); - } else if (msg.type == _msg2.msgType.getCalendars) { - var cals = calendars; - - if (msg.data.enabledOnly) { - cals = Object.keys(calendars).filter(function (id) { - return calendars[id].enabled; - }).reduce(function (res, id) { - return res[id] = calendars[id], res; - }, {}); - } - - port.postMessage(msg.genResp(cals)); - } else if (msg.type == _msg2.msgType.getCalEvents) { - calData[msg.data.id].getEvents(new Date(msg.data.start), new Date(msg.data.end)).catch(function (e) { - console.log("cannot load calendar ".concat(msg.data.id), e); - return []; - }).then(function (data) { - console.log(data); - var resp = msg.genResp(data.map(function (e) { - return { - id: e.id, - start: e.start.getTime(), - end: e.end.getTime() - }; - })); - console.log(resp); - port.postMessage(resp); - }); - } else { - console.error("unknown msg type"); - } - }); -}); -chrome.browserAction.onClicked.addListener(function () { - chrome.tabs.create({ - url: 'index.html' - }); -}); - -},{"./gapi":5,"./msg":6}],5:[function(require,module,exports){ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getLoggedIn = getLoggedIn; -exports.getAuthToken = getAuthToken; -exports.login = login; -exports.logout = logout; -exports.getCalendars = getCalendars; -exports.getColors = getColors; -exports.GCalendar = void 0; - -var _lruCache = _interopRequireDefault(require("lru-cache")); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -var gapi_base = 'https://www.googleapis.com/calendar/v3'; -var GApiError = Object.freeze({ - invalidSyncToken: Symbol("invalidSyncToken"), - notLoggedIn: Symbol("notLoggedIn"), - notLoggedOut: Symbol("notLoggedOut"), - otherError: Symbol("otherError") -}); - -function to_params(dict) { - return Object.entries(dict).filter(function (_ref) { - var _ref2 = _slicedToArray(_ref, 2), - k = _ref2[0], - v = _ref2[1]; - - return v; - }).map(function (_ref3) { - var _ref4 = _slicedToArray(_ref3, 2), - k = _ref4[0], - v = _ref4[1]; - - return "".concat(encodeURIComponent(k), "=").concat(encodeURIComponent(v)); - }).join('&'); -} - -var loggedIn = null; - -function _getAuthToken() { - var interactive = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - return new Promise(function (resolver) { - return chrome.identity.getAuthToken({ - interactive: interactive - }, function (token) { - return resolver([token, !chrome.runtime.lastError]); - }); - }).then(function (_ref5) { - var _ref6 = _slicedToArray(_ref5, 2), - token = _ref6[0], - ok = _ref6[1]; - - if (ok) return token;else throw GApiError.notLoggedIn; - }); -} - -function _removeCachedAuthToken(token) { - return new Promise(function (resolver) { - return chrome.identity.removeCachedAuthToken({ - token: token - }, function () { - return resolver(); - }); - }); -} - -function getLoggedIn() { - if (loggedIn === null) { - return _getAuthToken(false).then(function () { - return loggedIn = true; - }).catch(function () { - return loggedIn = false; - }).then(function () { - return loggedIn; - }); - } else return Promise.resolve(loggedIn); -} - -function getAuthToken() { - return getLoggedIn().then(function (b) { - if (b) return _getAuthToken(false);else throw GApiError.notLoggedIn; - }); -} - -function login() { - return getLoggedIn().then(function (b) { - if (!b) return _getAuthToken(true).then(function () { - return loggedIn = true; - });else throw GApiError.notLoggedOut; - }); -} - -function logout() { - return getAuthToken().then(function (token) { - return fetch("https://accounts.google.com/o/oauth2/revoke?".concat(to_params({ - token: token - })), { - method: 'GET', - async: true - }).then(function (response) { - if (response.status === 200) return _removeCachedAuthToken(token);else throw GApiError.otherError; - }); - }).then(function () { - return loggedIn = false; - }); -} - -function getCalendars(token) { - return fetch("".concat(gapi_base, "/users/me/calendarList?").concat(to_params({ - access_token: token - })), { - method: 'GET', - async: true - }).then(function (response) { - return response.json(); - }).then(function (data) { - return data.items; - }); -} - -function getColors(token) { - return fetch("".concat(gapi_base, "/colors?").concat(to_params({ - access_token: token - })), { - method: 'GET', - async: true - }).then(function (response) { - return response.json(); - }); -} - -function getEvent(calId, eventId, token) { - return fetch("".concat(gapi_base, "/calendars/").concat(calId, "/events/").concat(eventId, "?").concat(to_params({ - access_token: token - })), { - method: 'GET', - async: true - }).then(function (response) { - return response.json(); - }); -} - -function _getEvents(calId, token) { - var syncToken = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var timeMin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - var timeMax = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null; - var resultsPerRequest = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 100; - var results = []; - - var singleFetch = function singleFetch(pageToken, syncToken) { - return fetch("".concat(gapi_base, "/calendars/").concat(calId, "/events?").concat(to_params({ - access_token: token, - pageToken: pageToken, - syncToken: syncToken, - timeMin: timeMin, - timeMax: timeMax, - maxResults: resultsPerRequest - })), { - method: 'GET', - async: true - }).then(function (response) { - if (response.status === 200) return response.json();else if (response.status === 410) throw GApiError.invalidSyncToken;else throw GApiError.otherError; - }).then(function (data) { - results.push.apply(results, _toConsumableArray(data.items)); - - if (data.nextPageToken) { - return singleFetch(data.nextPageToken, ''); - } else { - return { - nextSyncToken: data.nextSyncToken, - results: results - }; - } - }); - }; - - return singleFetch('', syncToken); -} - -var GCalendar = -/*#__PURE__*/ -function () { - function GCalendar(calId, name) { - var _this = this; - - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { - maxCachedItems: 100, - nDaysPerSlot: 10, - largeQue |