SYMBOL INDEX (387 symbols across 67 files) FILE: app.js constant CACHE_CONTROL_SHORT_EXPIRES (line 36) | const CACHE_CONTROL_SHORT_EXPIRES = 60 * 10; constant CACHE_CONTROL_EXPIRES (line 37) | const CACHE_CONTROL_EXPIRES = 60 * 60 * 24; constant CACHE_CONTROL_NEVER_EXPIRE (line 38) | const CACHE_CONTROL_NEVER_EXPIRE = 31536000; constant ENVIRONMENT_PRODUCTION (line 39) | const ENVIRONMENT_PRODUCTION = 'production'; FILE: config/config.js function checkConfig (line 54) | function checkConfig(setting) { FILE: controllers/api/lighthouse.js constant CACHE_CONTROL_EXPIRES (line 21) | const CACHE_CONTROL_EXPIRES = 60 * 60 * 24; FILE: controllers/api/pwa.js constant CACHE_CONTROL_EXPIRES (line 27) | const CACHE_CONTROL_EXPIRES = 60 * 60 * 1; constant RSS (line 28) | const RSS = require('rss'); function getDate (line 31) | function getDate(date) { class CsvWriter (line 35) | class CsvWriter { method write (line 36) | write(result, pwas) { class JsonWriter (line 57) | class JsonWriter { method write (line 58) | write(result, pwas) { function render (line 79) | function render(res, view, options) { function renderOnePwaRss (line 91) | function renderOnePwaRss(pwa, req, res) { function asyncForEach (line 104) | async function asyncForEach(array, callback) { class RssWriter (line 110) | class RssWriter { method write (line 111) | write(req, res, pwas) { FILE: controllers/cache.js constant CACHE_LIFETIME (line 22) | const CACHE_LIFETIME = 60 * 60; FILE: controllers/pwa.js constant LIST_PAGE_SIZE (line 28) | const LIST_PAGE_SIZE = 32; constant DEFAULT_PAGE_NUMBER (line 29) | const DEFAULT_PAGE_NUMBER = 1; constant DEFAULT_SORT_ORDER (line 30) | const DEFAULT_SORT_ORDER = 'newest'; constant DEFAULT_TAB (line 31) | const DEFAULT_TAB = 'installable'; constant DEFAULT_FILTER (line 32) | const DEFAULT_FILTER = { function setupListViewState (line 39) | function setupListViewState(req) { function setupListViewArguments (line 63) | function setupListViewArguments(req, viewState, result) { function listPwas (line 84) | function listPwas(req, res, next, sortOrder, filters) { function renderOnePwa (line 277) | function renderOnePwa(req, res) { function render (line 306) | function render(res, view, options) { FILE: controllers/sw.js constant ASSETS (line 22) | const ASSETS = JSON.stringify([ constant ASSETS_JS (line 27) | const ASSETS_JS = `const ASSETS = ${ASSETS};`; FILE: controllers/tasks.js constant APP_ENGINE_CRON (line 24) | const APP_ENGINE_CRON = 'X-Appengine-Cron'; function checkAppEngineCron (line 30) | function checkAppEngineCron(req, res, next) { function createOrUpdatePwaTasks (line 40) | function createOrUpdatePwaTasks(pwaList) { FILE: lib/asset-hashing.js constant CHECKSUM_LENGTH (line 22) | const CHECKSUM_LENGTH = 10; constant CHECKSUM_PATTERN (line 23) | const CHECKSUM_PATTERN = /^[0-9a-z]{10}$/; class ChecksumProvider (line 25) | class ChecksumProvider { method constructor (line 27) | constructor(root) { method get (line 31) | get(assetPath) { class AssetChecksum (line 38) | class AssetChecksum { method constructor (line 40) | constructor(checksumProvider) { method encode (line 45) | encode(assetPath) { method decode (line 66) | decode(assetPath) { FILE: lib/color.js function bestContrastRatio (line 20) | function bestContrastRatio(color1, color2, background) { function contrastRatio (line 31) | function contrastRatio(foreground, background = '#FFFFFF') { function relativeLuminance (line 56) | function relativeLuminance(color) { function componentRelativeLuminance_ (line 78) | function componentRelativeLuminance_(component) { FILE: lib/data-cache.js constant PAGELIST_URLS (line 25) | const PAGELIST_URLS = 'PAGELIST_URLS'; constant CACHE_LIFETIME (line 26) | const CACHE_LIFETIME = 60 * 60 * 6; function get (line 34) | function get(key) { function del (line 56) | function del(key) { function set (line 80) | function set(key, value, lifetime) { function replace (line 99) | function replace(key, value, lifetime) { function getMulti (line 111) | function getMulti(keys) { function flush (line 126) | function flush() { function storeCachedUrls (line 133) | function storeCachedUrls(url) { function flushCacheUrls (line 153) | function flushCacheUrls() { FILE: lib/data-fetcher.js constant URL (line 18) | const URL = require('url'); constant FIREBASE_AUTH (line 24) | const FIREBASE_AUTH = config.get('FIREBASE_AUTH'); constant USER_AGENT (line 25) | const USER_AGENT = ['Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA5... function fetchMetadataDescription (line 34) | function fetchMetadataDescription(url) { function fetchLinkRelManifestUrl (line 49) | function fetchLinkRelManifestUrl(pageUrl) { function fetchWithUA (line 70) | function fetchWithUA(url) { function fetchJsonWithUA (line 87) | function fetchJsonWithUA(url) { function readFile (line 98) | function readFile(filename) { function _firebaseOptions (line 110) | function _firebaseOptions(payload) { function _handleFirebaseResponse (line 130) | function _handleFirebaseResponse(response) { function firebaseFetch (line 144) | function firebaseFetch(url, payload) { function postJson (line 165) | function postJson(url, body) { FILE: lib/favorite-pwa.js constant ENTITY_NAME (line 21) | const ENTITY_NAME = 'FavoritePwa'; FILE: lib/images.js constant CLOUD_BUCKET (line 27) | const CLOUD_BUCKET = config.get('CLOUD_BUCKET'); constant CACHE_CONTROL_EXPIRES (line 33) | const CACHE_CONTROL_EXPIRES = 60 * 60 * 24; function fetchAndSave (line 42) | function fetchAndSave(imageUrl, destFile) { function dataUriAndSave (line 79) | function dataUriAndSave(url, destFile) { function saveImages (line 96) | function saveImages(readStream, destFile, contentType) { function saveImage (line 117) | function saveImage(readStream, destFile, contentType, size) { function getPublicUrl (line 158) | function getPublicUrl(filename) { FILE: lib/lighthouse.js constant ENTITY_NAME (line 29) | const ENTITY_NAME = 'Lighthouse'; constant E_PWA_NOT_FOUND (line 30) | const E_PWA_NOT_FOUND = exports.E_PWA_NOT_FOUND = 1; constant E_FETCHING_STORING_LIGHTHOUSE (line 31) | const E_FETCHING_STORING_LIGHTHOUSE = exports.E_FETCHING_STORING_LIGHTHO... constant LIGTHOUSE_DATE_CHANGES (line 32) | const LIGTHOUSE_DATE_CHANGES = ['2016-12-01', '2017-03-01', '2017-05-05', FILE: lib/manifest.js function fetchManifest (line 27) | function fetchManifest(manifestUrl) { function validateManifest (line 40) | function validateManifest(manifest, manifestUrl, documentUrl) { FILE: lib/model-datastore.js constant ENTITY_COUNT_KIND (line 25) | const ENTITY_COUNT_KIND = 'counts'; function fromDatastore (line 48) | function fromDatastore(obj) { function toDatastore (line 82) | function toDatastore(obj, nonIndexed) { function deepCopy (line 111) | function deepCopy(object) { function list (line 140) | function list(kind, offset, limit, sort, filters) { function createQuery (line 153) | function createQuery(kind, offset, limit, sort, filters) { function runQuery (line 174) | function runQuery(query) { function parseKey (line 195) | function parseKey(key) { function startTransaction (line 199) | function startTransaction(transaction) { function commitTransaction (line 210) | function commitTransaction(transaction) { function rollbackTransaction (line 221) | function rollbackTransaction(transaction) { function transactionGet (line 232) | function transactionGet(transaction, key) { function updateCount (line 243) | function updateCount(transaction, kind, inc) { function update (line 278) | function update(kind, id, data) { function updateWithCounts (line 317) | function updateWithCounts(kind, id, data) { function count (line 356) | function count(kind) { function read (line 376) | function read(kind, id) { function _deleteWithCounts (line 401) | function _deleteWithCounts(kind, id) { function _delete (line 433) | function _delete(kind, id) { FILE: lib/pwa-index.js constant ENTITY_NAME (line 22) | const ENTITY_NAME = 'PWA'; FILE: lib/pwa.js constant DEFAULT_SORT_TYPE_KEY (line 40) | const DEFAULT_SORT_TYPE_KEY = 'score'; constant ENTITY_NAME (line 41) | const ENTITY_NAME = 'PWA'; constant E_MANIFEST_INVALID_URL (line 42) | const E_MANIFEST_INVALID_URL = exports.E_MANIFEST_INVALID_URL = 2; constant E_MANIFEST_URL_MISSING (line 43) | const E_MANIFEST_URL_MISSING = exports.E_MANIFEST_URL_MISSING = 3; constant E_MISSING_USER_INFORMATION (line 44) | const E_MISSING_USER_INFORMATION = exports.E_MISSING_USER_INFORMATION = 4; constant E_NOT_A_PWA (line 45) | const E_NOT_A_PWA = exports.E_NOT_A_PWA = 5; constant WAIT_TIME_NEW_PWAS (line 47) | const WAIT_TIME_NEW_PWAS = 10 * 60 * 1000; constant SORT_TYPE_MAP (line 49) | const SORT_TYPE_MAP = new Map([ FILE: lib/search.js constant URL (line 18) | const URL = require('url'); constant CACHE_LIFETIME (line 23) | const CACHE_LIFETIME = 60 * 60 * 24 * 7; constant SEARCH_INDEX_CHANGE (line 24) | const SEARCH_INDEX_CHANGE = 'SearchIndexChange'; class Search (line 31) | class Search { method constructor (line 33) | constructor() { method _initIndex (line 37) | _initIndex() { method _docFromPwa (line 52) | _docFromPwa(pwa) { method addPwa (line 68) | addPwa(pwa) { method addPwas (line 80) | addPwas(pwas) { method _addPwa (line 86) | _addPwa(pwa) { method updatePwa (line 98) | updatePwa(pwa) { method removePwa (line 111) | removePwa(pwa) { method search (line 133) | search(string) { method sarchIndexChange (line 146) | sarchIndexChange(date = new Date()) { method checkForSearchIndexChange (line 156) | checkForSearchIndexChange() { FILE: lib/tasks.js constant ENTITY_NAME (line 23) | const ENTITY_NAME = 'Task'; constant E_SAVING_TASK (line 24) | const E_SAVING_TASK = exports.E_SAVING_TASK = 1; constant E_GET_TASK_POP (line 25) | const E_GET_TASK_POP = exports.E_GET_TASK_POP = 2; constant E_DELETE_TASK_POP (line 26) | const E_DELETE_TASK_POP = exports.E_DELETE_TASK_POP = 3; FILE: lib/verify-id-token.js constant CLIENT_ID (line 19) | const CLIENT_ID = config.get('CLIENT_ID'); constant CLIENT_SECRET (line 20) | const CLIENT_SECRET = config.get('CLIENT_SECRET'); FILE: lib/web-performance.js constant WEBPERFORMANCE_SERVER_URL (line 21) | const WEBPERFORMANCE_SERVER_URL = config.get('WEBPERFORMANCE_SERVER'); constant WEBPERFORMANCE_SERVER_API_KEY (line 22) | const WEBPERFORMANCE_SERVER_API_KEY = config.get('WEBPERFORMANCE_SERVER_... constant WEBPERFORMANCE_SERVER_WEBPAGEURL (line 23) | const WEBPERFORMANCE_SERVER_WEBPAGEURL = WEBPERFORMANCE_SERVER_URL + 'we... constant WEBPERFORMANCE_SERVER_PAGESPEED_REPORT (line 24) | const WEBPERFORMANCE_SERVER_PAGESPEED_REPORT = WEBPERFORMANCE_SERVER_URL... constant WEBPERFORMANCE_SERVER_WEBPAGETEST_REPORT (line 25) | const WEBPERFORMANCE_SERVER_WEBPAGETEST_REPORT = WEBPERFORMANCE_SERVER_U... constant WEBPERFORMANCE_SERVER_LIGHTHOUSE_REPORT (line 26) | const WEBPERFORMANCE_SERVER_LIGHTHOUSE_REPORT = WEBPERFORMANCE_SERVER_UR... function submitToWebPerformanceService (line 28) | function submitToWebPerformanceService(pwa) { function getReport (line 64) | function getReport(url) { FILE: lighthouse_machine/cpu_monitor.js function cpuAverage (line 21) | function cpuAverage() { FILE: lighthouse_machine/server.js constant HTTP_PORT (line 50) | const HTTP_PORT = 8080; constant HTTPS_PORT (line 51) | const HTTPS_PORT = 8443; FILE: middlewares/index.js constant CSSPATH (line 19) | const CSSPATH = asset.encode('/css/style.css'); constant JSPATH (line 20) | const JSPATH = asset.encode('/js/gulliver.js'); FILE: models/favorite-pwa.js class FavoritePwa (line 21) | class FavoritePwa { method constructor (line 22) | constructor(pwaId, userId) { FILE: models/lighthouse.js class Lighthouse (line 26) | class Lighthouse { method constructor (line 27) | constructor(pwaId, absoluteStartUrl, lighthouseJson) { method lighthouseJson (line 38) | get lighthouseJson() { method lighthouseJson (line 42) | set lighthouseJson(value) { function parseToJson (line 48) | function parseToJson(value) { FILE: models/manifest.js class Manifest (line 22) | class Manifest { method constructor (line 23) | constructor(manifestUrl, jsonManifest) { method getBestIcon (line 35) | getBestIcon() { method getBestIconUrl (line 71) | getBestIconUrl() { FILE: models/pwa.js constant URL (line 19) | const URL = require('url'); class Pwa (line 23) | class Pwa { method constructor (line 24) | constructor(manifestUrl, manifestModel) { method shortName (line 33) | get shortName() { method name (line 40) | get name() { method displayName (line 47) | get displayName() { method description (line 53) | get description() { method startUrl (line 61) | get startUrl() { method absoluteStartUrl (line 68) | get absoluteStartUrl() { method backgroundColor (line 77) | get backgroundColor() { method manifest (line 85) | get manifest() { method manifest (line 92) | set manifest(value) { method manifestAsString (line 100) | get manifestAsString() { method setUser (line 104) | setUser(user) { method generateEncodedStartUrl (line 108) | generateEncodedStartUrl() { method isNew (line 114) | isNew() { method _cleanUrl (line 118) | _cleanUrl(input) { function trimManifestFile (line 129) | function trimManifestFile(url) { function stringifyManifestIfNeeded (line 143) | function stringifyManifestIfNeeded(manifest) { function removeHash (line 150) | function removeHash(urlString) { FILE: models/task.js class Task (line 18) | class Task { method constructor (line 19) | constructor(pwaId, modulePath, functionName, retries) { FILE: models/user.js class User (line 23) | class User { method constructor (line 24) | constructor(googleLogin) { FILE: public/js/analytics.js class Analytics (line 18) | class Analytics { method constructor (line 19) | constructor(window, config) { method _init (line 27) | _init() { method _setupA2HTracking (line 42) | _setupA2HTracking() { method trackOutboundClick (line 50) | trackOutboundClick(url) { method trackPageView (line 54) | trackPageView(url) { FILE: public/js/chart.js class Chart (line 23) | class Chart { method constructor (line 25) | constructor(config) { method _loadChartsApi (line 31) | _loadChartsApi() { method load (line 52) | load() { method drawChart (line 60) | drawChart() { FILE: public/js/event-target.js class EventTarget (line 16) | class EventTarget { method constructor (line 17) | constructor() { method addEventListener (line 21) | addEventListener(type, callback) { method removeEventListener (line 30) | removeEventListener(type, callback) { method getEventListeners (line 38) | getEventListeners(type) { method dispatchEvent (line 42) | dispatchEvent(event) { FILE: public/js/gapi.es6.js function gapi (line 26) | function gapi(context = window, doc = document) { function gapiLoad (line 44) | function gapiLoad(name) { function clientLoad (line 60) | function clientLoad(name, version) { function authInit (line 75) | function authInit(params) { FILE: public/js/gulliver-config.js class Config (line 18) | class Config { method constructor (line 19) | constructor(element) { method from (line 28) | static from(element) { FILE: public/js/gulliver.es6.js constant CHART_BASE_URLS (line 46) | const CHART_BASE_URLS = { class Gulliver (line 52) | class Gulliver { method constructor (line 53) | constructor() { method _addRoute (line 90) | _addRoute(regexp, transitionStrategy, onRouteAttached, shellState) { method _setupRoutes (line 96) | _setupRoutes() { method setupServiceWorker (line 177) | setupServiceWorker() { method setupMessaging (line 190) | setupMessaging() { method setupBacklink (line 206) | setupBacklink() { FILE: public/js/loader.js constant FADE_OUT_ANIMATION_LENGTH (line 20) | const FADE_OUT_ANIMATION_LENGTH = 500; class Loader (line 25) | class Loader { method constructor (line 33) | constructor(container, style) { method show (line 43) | show() { method hide (line 65) | hide() { FILE: public/js/messaging.js constant SUBSCRIBE_ENDPOINT (line 22) | const SUBSCRIBE_ENDPOINT = '/api/notifications/subscribe'; constant UNSUBSCRIBE_ENDPOINT (line 23) | const UNSUBSCRIBE_ENDPOINT = '/api/notifications/unsubscribe'; constant TOPICS_ENDPOINT (line 24) | const TOPICS_ENDPOINT = '/api/notifications/topics'; constant ERROR_PERMISSION_BLOCKED (line 26) | const ERROR_PERMISSION_BLOCKED = 'messaging/permission-blocked'; constant ERROR_NOTIFICATIONS_BLOCKED (line 27) | const ERROR_NOTIFICATIONS_BLOCKED = 'messaging/notifications-blocked'; class Messaging (line 30) | class Messaging { method constructor (line 31) | constructor(messagingSenderId) { method _postWithToken (line 45) | _postWithToken(url, token) { method _checkBlockedNotification (line 56) | _checkBlockedNotification(err) { method subscribe (line 68) | subscribe(topic) { method unsubscribe (line 94) | unsubscribe(topic) { method getSubscriptions (line 114) | getSubscriptions() { method isSubscribed (line 144) | isSubscribed(topic) { method isNotificationBlocked (line 151) | isNotificationBlocked() { FILE: public/js/offline-support.js class OfflineSupport (line 18) | class OfflineSupport { method constructor (line 20) | constructor(window, router) { method _setupEventhandlers (line 31) | _setupEventhandlers() { method isAvailable (line 53) | isAvailable(href) { method markAsCached (line 68) | markAsCached(anchors) { FILE: public/js/pwa-form.js constant SVG (line 21) | const SVG = '