SYMBOL INDEX (349 symbols across 77 files) FILE: bin/getResults.js function getFirebaseStoreFromDisk (line 14) | function getFirebaseStoreFromDisk() { function getFirebaseStoreFromNetwork (line 23) | async function getFirebaseStoreFromNetwork() { function getResults (line 79) | async function getResults() { function getPackages (line 89) | async function getPackages() { FILE: bin/updateHistoricalData.js function getPackageFromRepo (line 35) | async function getPackageFromRepo(author, name) { function getGithubTrendingPackages (line 50) | async function getGithubTrendingPackages() { function getTrendingSearches (line 58) | async function getTrendingSearches() { function updateHistoricalData (line 75) | async function updateHistoricalData() { function getVersionsToBuild (line 91) | async function getVersionsToBuild(name) { function getVersionsToBuild (line 107) | async function getVersionsToBuild(name) { function buildPackage (line 123) | async function buildPackage(name, version) { function buildPackageFromGithub (line 132) | async function buildPackageFromGithub(name, author) { function mostPopuplarGithubRepos (line 147) | async function mostPopuplarGithubRepos() { FILE: cache-service/cache.utils.js function encodeFirebaseKey (line 1) | function encodeFirebaseKey(key) { FILE: cache-service/middlewares/exports-size.middleware.js constant LRU (line 2) | const LRU = require('lru-cache') constant FIREBASE_READ_KEY_EXPORTS (line 10) | const FIREBASE_READ_KEY_EXPORTS = constant FIREBASE_WRITE_KEY_EXPORTS (line 12) | const FIREBASE_WRITE_KEY_EXPORTS = function getPackageResultFromKey (line 22) | async function getPackageResultFromKey(key, { name, version }) { function getPackageResult (line 34) | async function getPackageResult({ name, version, readKey }) { function setPackageResult (line 63) | async function setPackageResult({ name, version, result }) { function getExportsSizeMiddlware (line 71) | async function getExportsSizeMiddlware(req, res) { function postExportsSizeMiddleware (line 102) | async function postExportsSizeMiddleware(req, res) { FILE: cache-service/middlewares/package-size.middleware.js constant LRU (line 3) | const LRU = require('lru-cache') constant FIREBASE_READ_KEY (line 12) | const FIREBASE_READ_KEY = process.env.FIREBASE_READ_KEY || 'modules-v3' constant FIREBASE_WRITE_KEY (line 13) | const FIREBASE_WRITE_KEY = process.env.FIREBASE_WRITE_KEY || 'modules-v3' function getPackageResultFromKey (line 22) | async function getPackageResultFromKey(key, { name, version }) { function getPackageResult (line 34) | async function getPackageResult({ name, version, readKey }) { function setPackageResult (line 63) | async function setPackageResult({ name, version, result }) { function getPackageSizeMiddlware (line 71) | async function getPackageSizeMiddlware(req, res) { function postPackageSizeMiddlware (line 102) | async function postPackageSizeMiddlware(req, res) { FILE: client/analytics.ts type HasPackageName (line 1) | type HasPackageName = { type HasTimeTaken (line 5) | type HasTimeTaken = { type HasIsDisabled (line 9) | type HasIsDisabled = { type HasSuccessRatio (line 13) | type HasSuccessRatio = { type HasPackageNameAndTimeTaken (line 17) | type HasPackageNameAndTimeTaken = HasPackageName & HasTimeTaken class Analytics (line 19) | class Analytics { method pageView (line 20) | static pageView(pageType: string) { method performedSearch (line 26) | static performedSearch(packageName: string) { method searchSuccess (line 32) | static searchSuccess({ packageName, timeTaken }: HasPackageNameAndTime... method searchFailure (line 39) | static searchFailure({ packageName, timeTaken }: HasPackageNameAndTime... method graphBarClicked (line 46) | static graphBarClicked({ method scanPackageJsonDropped (line 56) | static scanPackageJsonDropped(itemCount: number) { method performedScan (line 62) | static performedScan() { method scanParseError (line 66) | static scanParseError() { method scanCompleted (line 70) | static scanCompleted({ method performedExportsAnalysis (line 80) | static performedExportsAnalysis(packageName: string) { method exportsAnalysisSuccess (line 86) | static exportsAnalysisSuccess({ method exportsAnalysisFailure (line 96) | static exportsAnalysisFailure({ method exportsSizesSuccess (line 106) | static exportsSizesSuccess({ method exportsSizesFailure (line 116) | static exportsSizesFailure({ FILE: client/api.ts type PackageSuggestion (line 3) | type PackageSuggestion = { type RecentSearch (line 8) | type RecentSearch = { class API (line 17) | class API { method get (line 18) | static get(url: string, isInternal = true): Promise { method getInfo (line 54) | static getInfo(packageString: string) { method getExports (line 58) | static getExports(packageString: string) { method getExportsSizes (line 62) | static getExportsSizes(packageString: string) { method getHistory (line 66) | static getHistory(packageString: string, limit: number) { method getRecentSearches (line 72) | static getRecentSearches(limit: number) { method getSimilar (line 76) | static getSimilar(packageName: string) { method getSuggestions (line 80) | static getSuggestions(query: string) { FILE: client/components/AnnouncementBanner/AnnouncementBanner.tsx constant STORAGE_KEY (line 3) | const STORAGE_KEY = 'bundlephobia_rspack_banner_dismissed' constant EXPIRY_DATE (line 4) | const EXPIRY_DATE = new Date('2026-07-18T00:00:00Z') // 6 months from Ja... FILE: client/components/AutocompleteInput/AutocompleteInput.tsx type AutocompleteInputProps (line 11) | type AutocompleteInputProps = { type PackageNameElementProps (line 122) | type PackageNameElementProps = React.HTMLAttributes & { function PackageNameElement (line 126) | function PackageNameElement({ FILE: client/components/AutocompleteInput/components/SuggestionItem.tsx type SuggestionItemProps (line 3) | interface SuggestionItemProps { function SuggestionItem (line 14) | function SuggestionItem({ item, isHighlighted }: SuggestionItemProps) { FILE: client/components/AutocompleteInput/hooks/useAutocompleteInput.ts type UseAutocompleteInputArgs (line 7) | interface UseAutocompleteInputArgs { function useAutocompleteInput (line 12) | function useAutocompleteInput({ FILE: client/components/AutocompleteInput/hooks/useFontSize.ts function useFontSize (line 3) | function useFontSize({ value }: { value: string }) { FILE: client/components/AutocompleteInputBox/AutocompleteInputBox.tsx type AutocompleteInputBoxProps (line 6) | type AutocompleteInputBoxProps = React.PropsWithChildren & class AutocompleteInputBox (line 11) | class AutocompleteInputBox extends Component { method render (line 12) | render() { FILE: client/components/BarGraph/BarGraph.tsx type Reading (line 8) | type Reading = { type BarGraphProps (line 19) | type BarGraphProps = { class BarGraph (line 24) | class BarGraph extends PureComponent { method render (line 144) | render() { FILE: client/components/BarVersion/BarVersion.tsx type Props (line 3) | interface Props { function BarVersion (line 7) | function BarVersion({ version }: Props) { FILE: client/components/BlogLayout/BlogLayout.tsx type BlogLayoutProps (line 6) | type BlogLayoutProps = React.PropsWithChildren & WithClassName FILE: client/components/BuildProgressIndicator/BuildProgressIndicator.tsx type BuildProgressIndicatorProps (line 7) | type BuildProgressIndicatorProps = { type BuildProgressIndicatorState (line 12) | type BuildProgressIndicatorState = { class BuildProgressIndicator (line 19) | class BuildProgressIndicator extends Component< method constructor (line 26) | constructor(props: BuildProgressIndicatorProps) { method componentDidMount (line 34) | componentDidMount() { method componentWillReceiveProps (line 43) | componentWillReceiveProps(nextProps: BuildProgressIndicatorProps) { method shouldComponentUpdate (line 50) | shouldComponentUpdate( method componentWillUnmount (line 57) | componentWillUnmount() { method render (line 97) | render() { FILE: client/components/Header/Header.tsx type HeaderProps (line 8) | type HeaderProps = WithClassName type HeaderState (line 10) | type HeaderState = { class Header (line 15) | class Header extends Component { method constructor (line 18) | constructor(props: HeaderProps) { method componentDidMount (line 26) | componentDidMount() { method componentWillUnmount (line 32) | componentWillUnmount() { method onSetSidebarOpen (line 36) | onSetSidebarOpen(open: boolean) { method mediaQueryChanged (line 40) | mediaQueryChanged() { method render (line 44) | render() { FILE: client/components/Icons/SearchIcon.tsx function SearchIcon (line 5) | function SearchIcon({ className }: WithClassName) { FILE: client/components/Icons/SideEffectIcon.tsx function TreeShakeIcon (line 7) | function TreeShakeIcon({ className }: WithClassName) { FILE: client/components/Icons/TreeShakeIcon.tsx function TreeShakeIcon (line 7) | function TreeShakeIcon({ className }: WithClassName) { FILE: client/components/JumpingDots/JumpingDots.tsx function JumpingDots (line 3) | function JumpingDots() { FILE: client/components/Layout/Layout.tsx type LayoutProps (line 10) | type LayoutProps = React.PropsWithChildren & WithClassName type LayoutState (line 12) | type LayoutState = { class Layout (line 16) | class Layout extends Component { method componentDidMount (line 21) | componentDidMount() { method render (line 29) | render() { FILE: client/components/MetaTags.tsx constant DEFAULT_DESCRIPTION_START (line 4) | const DEFAULT_DESCRIPTION_START = type MetaTagsProps (line 7) | type MetaTagsProps = { function MetaTags (line 16) | function MetaTags({ FILE: client/components/PageNav/PageNav.tsx type PageNavProps (line 5) | type PageNavProps = { FILE: client/components/ProgressHex/ProgressHex.tsx type ProgressHexProps (line 4) | type ProgressHexProps = { class ProgressHex (line 8) | class ProgressHex extends Component { method constructor (line 13) | constructor(props: ProgressHexProps) { method componentDidMount (line 18) | componentDidMount() { method componentWillUnmount (line 24) | componentWillUnmount() { method render (line 28) | render() { FILE: client/components/ProgressHex/progress-hex-timeline.ts constant DURATION (line 6) | const DURATION = 1000 type Circle (line 8) | type Circle = { cx: number; cy: number; ringNumber: number } type CirclesMap (line 10) | type CirclesMap = Map type ProgressHexAnimatorProps (line 12) | type ProgressHexAnimatorProps = { class ProgressHexAnimator (line 16) | class ProgressHexAnimator { method constructor (line 24) | constructor({ svg }: ProgressHexAnimatorProps) { method getTranslation (line 50) | getTranslation(circle: SVGCircleElement, distance: number) { method pointAtDistance (line 63) | pointAtDistance(x1: number, y1: number, x2: number, y2: number, d: num... method createTimeline (line 73) | createTimeline() { type TrailblazeProps (line 127) | type TrailblazeProps = { class Trailblaze (line 134) | class Trailblaze { method constructor (line 139) | constructor({ linesCount, svg, circlesMap, ringsCount }: TrailblazePro... method createTrail (line 150) | createTrail() { method setLineCoords (line 157) | setLineCoords(line: SVGLineElement, x1 = 0, x2 = 0, y1 = 0, y2 = 0) { method getCirclesInRing (line 164) | getCirclesInRing(ringNumber: number) { method distanceBetweenCircles (line 174) | distanceBetweenCircles(c1: Circle, c2: Circle) { method getRandomConnection (line 178) | getRandomConnection() { method start (line 224) | start() { FILE: client/components/QuickStatsBar/QuickStatsBar.tsx type QuickStatsBarProps (line 12) | type QuickStatsBarProps = Pick< class QuickStatsBar (line 22) | class QuickStatsBar extends Component { method render (line 47) | render() { FILE: client/components/ResultLayout/ResultLayout.tsx class ResultLayout (line 8) | class ResultLayout extends Component< method render (line 11) | render() { FILE: client/components/Separator.tsx type SeparatorProps (line 3) | type SeparatorProps = { function Separator (line 10) | function Separator({ FILE: client/components/SimilarPackageCard/SimilarPackageCard.tsx type SimilarPackageCardProps (line 13) | type SimilarPackageCardProps = { category?: string } & ( class SimilarPackageCard (line 18) | class SimilarPackageCard extends Component { method render (line 29) | render() { FILE: client/components/Stat/Stat.tsx type StatProps (line 12) | type StatProps = WithClassName & { function Stat (line 20) | function Stat({ FILE: client/components/Treemap/Treemap.tsx type TreeMapProps (line 5) | type TreeMapProps = { class TreeMap (line 11) | class TreeMap extends Component { method render (line 12) | render() { FILE: client/components/Treemap/TreemapSquare.tsx type TreemapSquareProps (line 3) | type TreemapSquareProps = { function TreemapSquare (line 12) | function TreemapSquare({ FILE: client/components/Treemap/squarify.js function Container (line 29) | function Container(xoffset, yoffset, width, height) { function normalize (line 105) | function normalize(data, area) { function treemapSingledimensional (line 118) | function treemapSingledimensional( function flattenTreemap (line 140) | function flattenTreemap(rawtreemap) { function squarify (line 155) | function squarify(data, currentrow, container, stack) { function improvesRatio (line 181) | function improvesRatio(currentrow, nextnode, length) { function calculateRatio (line 201) | function calculateRatio(row, length) { function isArray (line 212) | function isArray(arr) { function sumArray (line 217) | function sumArray(arr) { FILE: client/components/Warning/Warning.tsx class Warning (line 3) | class Warning extends Component { method render (line 4) | render() { FILE: index.ts function getEnv (line 39) | function getEnv(env: Record) { type Key (line 119) | type Key = { FILE: next.config.js method webpack (line 11) | webpack(config) { FILE: pages/_app.page.tsx function App (line 6) | function App({ Component, pageProps }: AppProps) { FILE: pages/_document.page.tsx class MyDocument (line 43) | class MyDocument extends Document { method getInitialProps (line 44) | static async getInitialProps(ctx: DocumentContext) { method render (line 49) | render() { FILE: pages/blog/components/Post.tsx type PostProps (line 42) | type PostProps = { FILE: pages/compare/ComparePage.js class ResultPage (line 18) | class ResultPage extends PureComponent { method render (line 114) | render() { FILE: pages/package/[...packageString]/ResultPage.js class ResultPage (line 36) | class ResultPage extends PureComponent { method getPackageString (line 48) | getPackageString(router) { method componentDidMount (line 52) | componentDidMount() { method componentDidUpdate (line 61) | componentDidUpdate(prevProps) { method render (line 286) | render() { FILE: pages/package/[...packageString]/components/ExportAnalysisSection/ExportAnalysisSection.js function getBGClass (line 17) | function getBGClass(ratio) { class ExportPill (line 35) | class ExportPill extends React.Component { method render (line 36) | render() { function ExportList (line 66) | function ExportList({ exports, totalSize, isLoading }) { function InputExportFilter (line 120) | function InputExportFilter({ onChange }) { class ExportAnalysisSection (line 134) | class ExportAnalysisSection extends Component { method componentDidMount (line 143) | componentDidMount() { method renderProgress (line 222) | renderProgress() { method getIncompatibleMessage (line 232) | getIncompatibleMessage() { method renderIncompatible (line 245) | renderIncompatible() { method renderSuccess (line 255) | renderSuccess() { method renderFailure (line 291) | renderFailure() { method render (line 304) | render() { FILE: pages/package/[...packageString]/components/InterLinksSection/InterLinksSection.js function usePackagesFromSameScope (line 9) | function usePackagesFromSameScope(packageName) { FILE: pages/package/[...packageString]/components/InterLinksSection/InterLinksSectionCard/InterLinksSectionCard.js function InterLinksSectionCard (line 6) | function InterLinksSectionCard(props) { FILE: pages/package/[...packageString]/components/SimilarPackagesSection/SimilarPackagesSection.js class SimilarPackagesSection (line 4) | class SimilarPackagesSection extends Component { method render (line 5) | render() { FILE: pages/package/[...packageString]/components/TreemapSection.js class TreemapSection (line 6) | class TreemapSection extends Component { method componentDidMount (line 12) | componentDidMount() { method render (line 38) | render() { FILE: pages/scan-results/ScanResults.js class ResultCard (line 17) | class ResultCard extends Component { method render (line 18) | render() { class ScanResults (line 103) | class ScanResults extends Component { method constructor (line 104) | constructor(props) { method getInitialProps (line 125) | static async getInitialProps() { method componentDidMount (line 129) | componentDidMount() { method updatePackageState (line 182) | updatePackageState(pack, state) { method render (line 233) | render() { FILE: pages/scan/Scan.js class Scan (line 11) | class Scan extends Component { method componentDidMount (line 17) | componentDidMount() { method showInvalidFileError (line 96) | showInvalidFileError() { method render (line 102) | render() { FILE: scripts/cleanup-old-keys.ts type SearchesV2 (line 25) | interface SearchesV2 { function formatETA (line 35) | function formatETA(seconds: number): string { function processBackupFile (line 43) | async function processBackupFile( function uploadPrunedDataToFirebase (line 242) | async function uploadPrunedDataToFirebase(filePath: string) { FILE: scripts/generate-top-packages.js constant SIX_MONTHS_MS (line 48) | const SIX_MONTHS_MS = 6 * 30 * 24 * 60 * 60 * 1000 constant MIN_SEARCH_COUNT (line 49) | const MIN_SEARCH_COUNT = 2 // At least searched twice constant MAX_VERSIONS_PER_PACKAGE (line 50) | const MAX_VERSIONS_PER_PACKAGE = 20 constant TOP_PACKAGES_LIMIT (line 51) | const TOP_PACKAGES_LIMIT = 1000 // Top N packages by search count constant CONCURRENCY (line 52) | const CONCURRENCY = 20 // Number of concurrent Firebase requests constant OUTPUT_PATH (line 53) | const OUTPUT_PATH = path.join(__dirname, '../top-packages.json') constant PROGRESS_PATH (line 54) | const PROGRESS_PATH = path.join(__dirname, '../top-packages-progress.json') function isValidStableVersion (line 59) | function isValidStableVersion(version) { function loadProgress (line 76) | function loadProgress() { function saveProgress (line 92) | function saveProgress(processedNames, results) { function processBatch (line 102) | async function processBatch(packages, processedNames, results, topPackag... function main (line 158) | async function main() { FILE: scripts/populate-v3.js constant API_BASE (line 22) | const API_BASE = process.env.API_BASE || 'http://localhost:5000' constant CONCURRENCY (line 23) | const CONCURRENCY = parseInt(process.env.CONCURRENCY || '3', 10) constant TIMEOUT_MS (line 24) | const TIMEOUT_MS = 120000 // 120 seconds per request constant TOP_PACKAGES_PATH (line 25) | const TOP_PACKAGES_PATH = path.join(__dirname, '../top-packages.json') constant PROGRESS_PATH (line 26) | const PROGRESS_PATH = path.join(__dirname, '../populate-v3-progress.json') constant STATS_PATH (line 27) | const STATS_PATH = path.join(__dirname, '../populate-v3-stats.json') constant COMPARISON_PATH (line 28) | const COMPARISON_PATH = path.join(__dirname, '../populate-v3-comparison.... constant EXPORTS_STATS_PATH (line 30) | const EXPORTS_STATS_PATH = path.join( constant EXPORTS_COMPARISON_PATH (line 34) | const EXPORTS_COMPARISON_PATH = path.join( constant CACHE_SERVICE_BASE (line 39) | const CACHE_SERVICE_BASE = function loadProgress (line 84) | function loadProgress() { function saveProgress (line 143) | function saveProgress(progress) { function saveStats (line 155) | function saveStats(stats) { function saveComparisons (line 160) | function saveComparisons(comparisons) { function saveExportsStats (line 165) | function saveExportsStats(stats) { function saveExportsComparisons (line 170) | function saveExportsComparisons(comparisons) { function withAbortableTimeout (line 178) | function withAbortableTimeout(promiseFactory, timeoutMs, timeoutValue) { function buildPackage (line 207) | async function buildPackage(packageName, version, signal = null) { function buildExports (line 256) | async function buildExports(packageName, version, signal = null) { function processBatch (line 305) | async function processBatch( function formatTime (line 454) | function formatTime(seconds) { function main (line 461) | async function main() { FILE: server/Logger.js class Logger (line 31) | class Logger { method constructor (line 32) | constructor() { method info (line 44) | info(tag, json, message) { method error (line 54) | error(tag, json, message) { method increment (line 65) | increment(label) { method decrement (line 69) | decrement(label) { method histogram (line 73) | histogram(label, value) { method set (line 77) | set(label, value) { method timing (line 81) | timing(label, value) { FILE: server/Queue.js class Queue (line 21) | class Queue { method constructor (line 22) | constructor(options) { method addExecutor (line 40) | addExecutor(jobType, handler) { method hasJob (line 44) | hasJob(id, type) { method getRunningJobs (line 48) | getRunningJobs() { method getReadyJobs (line 52) | getReadyJobs() { method pruneQueue (line 61) | pruneQueue() { method getNextJobToRun (line 85) | getNextJobToRun() { method ageJobs (line 103) | ageJobs() { method removeJob (line 115) | removeJob(id, type) { method clear (line 124) | clear() { method setJobToProcessing (line 139) | setJobToProcessing(id, type) { method executeNextJobIfPossible (line 152) | executeNextJobIfPossible() { method executeNextJob (line 169) | executeNextJob() { method addListenersToJob (line 201) | addListenersToJob(id, type, { resolve, reject }) { method process (line 218) | process(id, type, jobParams, options = {}) { FILE: server/api/BuildService.js constant CONFIG (line 3) | const CONFIG = require('../config') class BuildService (line 14) | class BuildService { method constructor (line 15) | constructor() { method _handleError (line 56) | _handleError(error, operationType) { method getPackageBuildStats (line 84) | async getPackageBuildStats(packageString, priority) { method getPackageExports (line 93) | async getPackageExports(packageString, priority) { method getPackageExportSizes (line 102) | async getPackageExportSizes(packageString, priority) { FILE: server/init.js constant LRU (line 2) | const LRU = require('lru-cache') FILE: server/middlewares/exports.middleware.js constant CONFIG (line 2) | const CONFIG = require('../config') function exportsMiddleware (line 11) | async function exportsMiddleware(ctx) { FILE: server/middlewares/exportsSizes.middleware.js constant CONFIG (line 2) | const CONFIG = require('../config') function exportSizesMiddleware (line 13) | async function exportSizesMiddleware(ctx) { FILE: server/middlewares/generateImg.middleware.js function generateImgMiddleware (line 11) | async function generateImgMiddleware(ctx, next) { FILE: server/middlewares/jsonCache.middleware.js function jsonCacheMiddleware (line 3) | function jsonCacheMiddleware({ get, set, hash: hashFn }) { FILE: server/middlewares/requestLogger.middleware.js function requestLoggerMiddleware (line 4) | async function requestLoggerMiddleware(ctx, next) { FILE: server/middlewares/results/blockBlacklist.middleware.js constant CONFIG (line 3) | const CONFIG = require('../../config') function blockBlacklistMiddleware (line 5) | async function blockBlacklistMiddleware(ctx, next) { FILE: server/middlewares/results/build.middleware.js constant CONFIG (line 2) | const CONFIG = require('../../config') function buildMiddleware (line 14) | async function buildMiddleware(ctx, next) { FILE: server/middlewares/results/cachedResponse.middleware.js constant CONFIG (line 2) | const CONFIG = require('../../config') function cachedResponse (line 6) | async function cachedResponse(ctx, next) { FILE: server/middlewares/results/error.middleware.js constant CONFIG (line 4) | const CONFIG = require('../../config') function errorHandler (line 8) | async function errorHandler(ctx, next) { FILE: server/middlewares/results/resolvePackage.middleware.js function resolvePackageMiddleware (line 7) | async function resolvePackageMiddleware(ctx, next) { FILE: server/middlewares/similar-packages/similarPackages.middleware.js constant CONFIG (line 11) | const CONFIG = require('../../config') constant MIN_CUTOFF_SCORE (line 13) | const MIN_CUTOFF_SCORE = 12 function getPackageDetails (line 27) | async function getPackageDetails(packageName) { function getReadme (line 50) | async function getReadme(repository) { function stripMarkdown (line 111) | async function stripMarkdown(readme) { function getScore (line 127) | function getScore(categoryTokens, packageTokens) { function getInCategoryMap (line 138) | function getInCategoryMap(packageName) { function getCategory (line 146) | async function getCategory(packageName) { function test (line 193) | async function test() { function similarPackagesMiddleware (line 214) | async function similarPackagesMiddleware(ctx) { FILE: types/index.ts type PackageInfo (line 3) | type PackageInfo = { type WithClassName (line 12) | type WithClassName = Pick, 'className'> FILE: types/react-contentful.d.ts type Item (line 5) | interface Item { type Data (line 17) | interface Data { type TypedHookResponse (line 21) | interface TypedHookResponse { FILE: utils/cache.utils.js constant API (line 6) | const API = axios.create({ class Cache (line 11) | class Cache { method getPackageSize (line 12) | async getPackageSize({ name, version }) { method setPackageSize (line 23) | async setPackageSize({ name, version }, result) { method getExportsSize (line 41) | async getExportsSize({ name, version }) { method setExportsSize (line 52) | async setExportsSize({ name, version }, result) { FILE: utils/common.utils.js function parsePackageString (line 6) | function parsePackageString(packageString) { function daysFromToday (line 38) | function daysFromToday(date) { function sanitizeHTML (line 46) | function sanitizeHTML(html) { FILE: utils/draw.utils.js function drawStatsImg (line 4) | function drawStatsImg({ FILE: utils/firebase.utils.js constant FIREBASE_READ_KEY (line 9) | const FIREBASE_READ_KEY = process.env.FIREBASE_READ_KEY || 'modules-v2' class FirebaseUtils (line 21) | class FirebaseUtils { method constructor (line 22) | constructor(firebaseInstance, enable = true) { method setRecentSearch (line 28) | setRecentSearch(name, packageInfo) { method getPackageHistory (line 62) | async getPackageHistory(name, limit = 15) { method getRecentSearches (line 170) | getRecentSearches(limit = 10) { method getDailySearches (line 195) | async getDailySearches() { FILE: utils/index.js function encodeFirebaseKey (line 3) | function encodeFirebaseKey(key) { function decodeFirebaseKey (line 7) | function decodeFirebaseKey(key) { function randomFromArray (line 57) | function randomFromArray(arr) { function zeroToN (line 61) | function zeroToN(n) { function resolveBuildError (line 65) | function resolveBuildError(resultsError) { FILE: utils/rebuild.utils.js function commit (line 22) | function commit() { function encodeFirebaseKey (line 55) | function encodeFirebaseKey(key) { function decodeFirebaseKey (line 59) | function decodeFirebaseKey(key) { function getFirebaseStore (line 63) | async function getFirebaseStore() { function getPackageResult (line 73) | async function getPackageResult({ name, version }) { function filterBlacklistedPackages (line 85) | function filterBlacklistedPackages() { function trim (line 89) | async function trim(packages) { function run (line 112) | async function run() { function installPackage (line 254) | async function installPackage(packageName, installPath) { function exec (line 291) | function exec(command, options) { function getExports (line 303) | async function getExports(name, version) { function rebuildTopLevelExports (line 327) | async function rebuildTopLevelExports() { FILE: utils/server.utils.js function resolvePackage (line 13) | async function resolvePackage(packageString) { function getRequestPriority (line 27) | function getRequestPriority(ctx) {