{"version":3,"sources":["webpack://@edf-prj/landing-page/./src/components/book-a-demo-button/index.js","webpack://@edf-prj/landing-page/./src/components/feature-item/styles.js","webpack://@edf-prj/landing-page/./src/components/feature-item/index.js","webpack://@edf-prj/landing-page/./src/components/highlighted-span/styles.js","webpack://@edf-prj/landing-page/./src/components/highlighted-span/index.js","webpack://@edf-prj/landing-page/./src/site-pages/home-index-page/statistics-card/styles.js","webpack://@edf-prj/landing-page/./src/site-pages/home-index-page/statistics-card/index.js","webpack://@edf-prj/landing-page/./src/site-pages/home-index-page/styles.js","webpack://@edf-prj/landing-page/./src/site-pages/home-index-page/index.js","webpack://@edf-prj/landing-page/./src/pages/index.js","webpack://@edf-prj/landing-page/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/camelcase-keys/index.js","webpack://@edf-prj/landing-page/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/camelcase/index.js","webpack://@edf-prj/landing-page/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/map-obj/index.js","webpack://@edf-prj/landing-page/../node_modules/gatsby/node_modules/babel-loader/lib/node_modules/quick-lru/index.js"],"names":["BookADemoButton","props","React","Button","Object","assign","component","Link","to","defaultProps","variant","makeStyles","theme","root","marginTop","spacing","marginBottom","rootHeaderItem","subtitle","breakpoints","down","textAlign","title","color","palette","logo","blue","main","description","imageWrapper","position","headerImageWrapper","up","image","FeatureItem","direction","alignItems","absolutePositionedImage","actionButtons","headerItem","classes","useStyles","useTheme","isScreenSizeMd","useMediaQuery","Grid","container","className","justify","item","md","xs","Boolean","trim","Typography","dangerouslySetInnerHTML","__html","clsx","GatsbyImage","alt","style","undefined","fontSize","display","underlined","borderBottom","HighlightedSpan","restProps","background","borderRadius","common","white","width","minWidth","maxWidth","padding","boxShadow","iconWrapper","margin","transform","icon","maxHeight","height","typography","pxToRem","value","FontAwesomeIcon","fixedWidth","align","Number","isNaN","toLocaleString","sectionOneWrapper","paddingTop","paddingBottom","sectionOneContent","sectionOneImage","bottom","trustedByGrid","trustedByLogo","extraInfoWrapper","extraInfoTitle","statisticsWrapper","badgesGrid","location","queryData","useStaticQuery","participationCount","setParticipationCount","useState","publicationsCount","setPublicationsCount","studiesCount","setStudiesCount","institutionsCount","setInstitutionsCount","trustedByLogos","query","logoACTG","imageAlt","logoJHU","logoOR","logoTU","logoUCL","logoUA","logoWSU","logoMGU","useEffect","isUnmounted","client","then","response","data","camelcaseKeys","totalParticipation","totalStudies","totalPublications","totalOrganizations","catch","error","console","PageWrapper","pageMetaData","pathname","PageHeader","homePage","PageSection","StartNowButton","dashboardsPreview","childImageSharp","gatsbyImageData","map","index","sm","key","imageFeatureExperienceSampling","imageFeatureAvailableEverywhere","imageFeatureSensorData","StatisticsCard","badgeHIPAACompliance","badgeGDPRCompliant","mapObj","camelCase","QuickLru","cache","maxSize","isObject","RegExp","Error","Date","camelCaseConvert","input","options","deep","pascalCase","exclude","stopPaths","stopPathsSet","Set","makeMapper","parentPath","path","concat","has","array","some","x","lastIndex","test","cacheKey","get","returnValue","length","set","module","exports","Array","isArray","keys","UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","source","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","TypeError","preserveConsecutiveUppercase","filter","join","toLowerCase","locale","string","toLocaleLowerCase","toUpperCase","toLocaleUpperCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","i","character","slice","preserveCamelCase","replace","m1","charAt","_","identifier","m","postProcess","default","mapObjectSkip","Symbol","isObjectCustom","mapObject","object","mapper","isSeen","arguments","WeakMap","target","mapArray","element","entries","mapResult","newKey","newValue","shouldRecurse","QuickLRU","constructor","this","onEviction","Map","oldCache","_size","_set","delete","peek","deleted","clear","values","iterator","size","oldCacheSize","Math","min"],"mappings":"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","file":"component---src-pages-index-js-da5df40273ae0366f9c5.js","sourcesContent":["import React from 'react';\nimport { Link } from 'gatsby';\nimport * as PropTypes from 'prop-types';\n\nimport Button from '../button';\n\nconst BookADemoButton = (props) => {\n return (\n \n );\n};\n\nBookADemoButton.defaultProps = {\n variant: 'text',\n};\n\nBookADemoButton.propTypes = {\n variant: PropTypes.string,\n};\n\nexport default BookADemoButton;\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(10),\n marginBottom: theme.spacing(10),\n },\n rootHeaderItem: {\n marginTop: theme.spacing(2),\n marginBottom: 0,\n },\n subtitle: {\n marginBottom: theme.spacing(0.75),\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center',\n },\n },\n title: {\n marginBottom: theme.spacing(1.25),\n color: theme.palette.logo.blue.main,\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center',\n },\n },\n description: {\n marginBottom: theme.spacing(3),\n [theme.breakpoints.down('sm')]: {\n textAlign: 'center',\n },\n },\n imageWrapper: {\n position: 'relative',\n },\n headerImageWrapper: {\n [theme.breakpoints.up('xl')]: {\n textAlign: 'center',\n },\n },\n image: {},\n}));\n","import React from 'react';\nimport clsx from 'clsx';\nimport { GatsbyImage } from 'gatsby-plugin-image';\nimport * as PropTypes from 'prop-types';\nimport { Grid, Typography, useMediaQuery } from '@material-ui/core';\nimport { useTheme } from '@material-ui/styles';\n\nimport useStyles from './styles';\n\nconst FeatureItem = (props) => {\n const { title, description, subtitle, direction, image, alignItems, absolutePositionedImage, actionButtons, headerItem } =\n props;\n\n const classes = useStyles(props);\n const theme = useTheme();\n const isScreenSizeMd = useMediaQuery(theme.breakpoints.up('md'));\n\n return (\n \n \n {Boolean(subtitle && subtitle.trim()) && (\n \n {subtitle}\n \n )}\n \n {title}\n \n \n {actionButtons}\n \n \n \n \n \n );\n};\n\nFeatureItem.defaultProps = {\n subtitle: '',\n direction: 'row',\n alignItems: 'center',\n absolutePositionedImage: false,\n actionButtons: null,\n headerItem: false,\n};\n\nFeatureItem.propTypes = {\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n subtitle: PropTypes.string,\n direction: PropTypes.oneOf(['row', 'row-reverse']),\n image: PropTypes.oneOfType([PropTypes.any]).isRequired,\n alignItems: PropTypes.string,\n absolutePositionedImage: PropTypes.bool,\n headerItem: PropTypes.bool,\n actionButtons: PropTypes.node,\n};\n\nexport default FeatureItem;\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n root: {\n color: theme.palette.logo.blue.main,\n fontSize: 'inherit',\n display: 'inline-block',\n },\n underlined: {\n borderBottom: `2px solid ${theme.palette.logo.blue.main}`,\n },\n}));\n","import React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\n\nimport useStyles from './styles';\n\nconst HighlightedSpan = (props) => {\n const { underlined, ...restProps } = props;\n\n const classes = useStyles();\n\n return (\n \n );\n};\n\nHighlightedSpan.defaultProps = {\n underlined: false,\n};\n\nHighlightedSpan.propTypes = {\n underlined: PropTypes.bool,\n};\n\nexport default HighlightedSpan;\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n root: {\n background: theme.palette.logo.blue.main,\n borderRadius: 10,\n color: theme.palette.common.white,\n width: 200,\n minWidth: 200,\n maxWidth: 200,\n padding: theme.spacing(4, 0, 2, 0),\n boxShadow: '0 3px 6px 0 rgba(0, 0, 0, 0.16)',\n },\n iconWrapper: {\n background: theme.palette.common.white,\n padding: theme.spacing(2),\n borderRadius: 10,\n display: 'inline-block',\n margin: theme.spacing(0, 'auto', 3, 'auto'),\n transform: 'rotate(-15deg)',\n boxShadow: '5px 6px 11px 0 rgba(0, 0, 0, 0.16)',\n },\n icon: {\n width: 45,\n maxWidth: 45,\n maxHeight: 45,\n height: 45,\n fontSize: theme.typography.pxToRem(45),\n color: theme.palette.logo.blue.main,\n },\n}));\n","import React from 'react';\nimport * as PropTypes from 'prop-types';\nimport { Grid, Typography } from '@material-ui/core';\n\nimport useStyles from './styles';\n\nimport { FontAwesomeIcon } from '$common/fontawesome-pro/react-fontawesome';\n\nconst StatisticsCard = (props) => {\n const { icon, value, title } = props;\n\n const classes = useStyles();\n\n return (\n \n \n \n
\n \n {Number.isNaN(Number(value)) ? value : Number(value).toLocaleString('en-US')}\n \n \n {title}\n \n \n );\n};\n\nStatisticsCard.propTypes = {\n icon: PropTypes.string.isRequired,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\n title: PropTypes.string.isRequired,\n};\n\nexport default StatisticsCard;\n","import { makeStyles } from '@material-ui/styles';\n\nexport default makeStyles((theme) => ({\n sectionOneWrapper: {\n paddingTop: theme.spacing(5),\n background: '#f8faff',\n borderRadius: '0 0 50px 50px',\n boxShadow: '0 3px 6px 0 rgba(0, 0, 0, 0.16)',\n marginBottom: theme.spacing(30),\n [theme.breakpoints.down('sm')]: {\n paddingBottom: theme.spacing(9),\n },\n },\n sectionOneContent: {\n margin: theme.spacing(2, 0, 2.5, 0),\n },\n sectionOneImage: {\n display: 'block',\n margin: theme.spacing(-22.5, 'auto', 0, 'auto'),\n maxWidth: 800,\n width: '100%',\n position: 'relative',\n bottom: -210,\n },\n trustedByGrid: {\n maxWidth: 800,\n margin: theme.spacing(2, 'auto', 5, 'auto'),\n paddingTop: theme.spacing(2),\n },\n trustedByLogo: {\n display: 'block !important',\n margin: theme.spacing(1, 'auto'),\n },\n extraInfoWrapper: {\n background: '#f8faff',\n paddingTop: theme.spacing(10),\n paddingBottom: theme.spacing(10),\n boxShadow: '0 3px 22px 0 rgba(46, 46, 46, 0.12)',\n },\n extraInfoTitle: {\n margin: theme.spacing(10, 0, 4, 0),\n '&:first-child': {\n marginTop: 0,\n },\n },\n statisticsWrapper: {\n [theme.breakpoints.down('sm')]: {\n maxWidth: 500,\n margin: 'auto',\n },\n },\n badgesGrid: {\n marginTop: theme.spacing(3),\n },\n}));\n","import React, { useEffect, useState } from 'react';\nimport camelcaseKeys from 'camelcase-keys';\nimport { graphql, Link, useStaticQuery } from 'gatsby';\nimport { GatsbyImage } from 'gatsby-plugin-image';\nimport * as PropTypes from 'prop-types';\nimport { Grid, Typography } from '@material-ui/core';\n\nimport client from '$landing-page/client';\nimport BookADemoButton from '$landing-page/components/book-a-demo-button';\nimport Button from '$landing-page/components/button';\nimport FeatureItem from '$landing-page/components/feature-item';\nimport HighlightedSpan from '$landing-page/components/highlighted-span';\nimport PageHeader from '$landing-page/components/page-header';\nimport PageSection from '$landing-page/components/page-section';\nimport PageWrapper from '$landing-page/components/page-wrapper';\nimport StartNowButton from '$landing-page/components/start-now-button';\n\nimport StatisticsCard from './statistics-card';\nimport useStyles from './styles';\n\nconst imagesQuery = graphql`\n query homeIndexPage {\n dashboardsPreview: file(relativePath: { eq: \"page-home-dashboards-preview.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: CONSTRAINED, width: 1200, quality: 100, placeholder: NONE)\n }\n }\n logoACTG: file(relativePath: { eq: \"logo-act-government.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 28, quality: 100, placeholder: NONE)\n }\n }\n logoJHU: file(relativePath: { eq: \"logo-johns-hopkins-university.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 23, quality: 100, placeholder: NONE)\n }\n }\n logoMGU: file(relativePath: { eq: \"logo-mcgill-university.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 24, quality: 100, placeholder: NONE)\n }\n }\n logoOR: file(relativePath: { eq: \"logo-open-research.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 25, quality: 100, placeholder: NONE)\n }\n }\n logoTU: file(relativePath: { eq: \"logo-tilburg-university.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 39, quality: 100, placeholder: NONE)\n }\n }\n logoUCL: file(relativePath: { eq: \"logo-university-college-london.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 22, quality: 100, placeholder: NONE)\n }\n }\n logoUA: file(relativePath: { eq: \"logo-university-of-amsterdam.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 26, quality: 100, placeholder: NONE)\n }\n }\n logoWSU: file(relativePath: { eq: \"logo-western-sydney-university.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 25, quality: 100, placeholder: NONE)\n }\n }\n imageFeatureExperienceSampling: file(relativePath: { eq: \"feature-experience-sampling.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: CONSTRAINED, width: 900, quality: 100, placeholder: NONE)\n }\n }\n imageFeatureAvailableEverywhere: file(relativePath: { eq: \"available-everywhere.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: CONSTRAINED, width: 900, quality: 100, placeholder: NONE)\n }\n }\n imageFeatureSensorData: file(relativePath: { eq: \"feature-sensor-data.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: CONSTRAINED, width: 900, quality: 100, placeholder: NONE)\n }\n }\n badgeGDPRCompliant: file(relativePath: { eq: \"badge-gdpr-compliant.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 57, quality: 100, placeholder: NONE)\n }\n }\n badgeHIPAACompliance: file(relativePath: { eq: \"badge-hipaa-compliance.png\" }) {\n childImageSharp {\n gatsbyImageData(layout: FIXED, height: 71, quality: 100, placeholder: NONE)\n }\n }\n }\n`;\n\nconst HomeIndexPage = (props) => {\n const { location } = props;\n\n const classes = useStyles();\n const queryData = useStaticQuery(imagesQuery);\n\n const [participationCount, setParticipationCount] = useState('26607');\n const [publicationsCount, setPublicationsCount] = useState('174');\n const [studiesCount, setStudiesCount] = useState('198');\n const [institutionsCount, setInstitutionsCount] = useState('95');\n\n const trustedByLogos = [\n { query: queryData.logoACTG, imageAlt: 'ACT Government' },\n { query: queryData.logoJHU, imageAlt: 'Johns Hopkins University' },\n { query: queryData.logoOR, imageAlt: 'Open Research' },\n { query: queryData.logoTU, imageAlt: 'Tilburg University' },\n { query: queryData.logoUCL, imageAlt: 'University College London' },\n { query: queryData.logoUA, imageAlt: 'University of Amsterdam' },\n { query: queryData.logoWSU, imageAlt: 'Western Sydney University' },\n { query: queryData.logoMGU, imageAlt: 'McGill University' },\n ];\n\n useEffect(() => {\n let isUnmounted = false;\n client.api\n .get('/study/statistics/total/')\n .then((response) => {\n if (!isUnmounted) {\n const data = camelcaseKeys(response.data);\n if (data.totalParticipation > 0) {\n setParticipationCount(data.totalParticipation);\n }\n if (data.totalStudies > 0) {\n setStudiesCount(data.totalStudies);\n }\n if (data.totalPublications > 0) {\n setPublicationsCount(data.totalPublications);\n }\n if (data.totalOrganizations > 0) {\n setInstitutionsCount(data.totalOrganizations);\n }\n }\n })\n .catch((error) => {\n // eslint-disable-next-line no-console\n console.error(error);\n });\n return () => {\n isUnmounted = true;\n };\n }, []);\n\n return (\n \n \n \n \n \n \n Patient-centric \n Clinical Trial and\n
\n Health Research Software Platform\n \n \n Set up a website and app for your participants within minutes,\n
\n and automate the field deployment, data collection, and remote monitoring of your patients.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {trustedByLogos.map((logo, index) => (\n // eslint-disable-next-line react/no-array-index-key\n \n \n \n ))}\n \n \n Trusted by more than \n 1000 researchers\n from \n {institutionsCount} distinguished institutions\n \n \n \n \n Learn More\n \n }\n />\n \n Learn More\n \n }\n />\n \n Learn More\n \n }\n />\n \n \n \n Avicenna Research in Numbers\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n A \n Security-First\n Research Platform\n \n \n In Avicenna Research, we understand the sensitivity of your research data. So protecting the privacy of the\n participants,\n
\n the security and integrity of the data, and the reliability of our service is our highest priority.\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nHomeIndexPage.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default HomeIndexPage;\n","import HomeIndexPage from '$landing-page/site-pages/home-index-page';\n\nexport default HomeIndexPage;\n","'use strict';\n\nconst mapObj = require('map-obj');\nconst camelCase = require('camelcase');\nconst QuickLru = require('quick-lru');\nconst has = (array, key) => array.some(x => {\n if (typeof x === 'string') {\n return x === key;\n }\n x.lastIndex = 0;\n return x.test(key);\n});\nconst cache = new QuickLru({\n maxSize: 100000\n});\n\n// Reproduces behavior from `map-obj`\nconst isObject = value => typeof value === 'object' && value !== null && !(value instanceof RegExp) && !(value instanceof Error) && !(value instanceof Date);\nconst camelCaseConvert = (input, options) => {\n if (!isObject(input)) {\n return input;\n }\n options = {\n deep: false,\n pascalCase: false,\n ...options\n };\n const {\n exclude,\n pascalCase,\n stopPaths,\n deep\n } = options;\n const stopPathsSet = new Set(stopPaths);\n const makeMapper = parentPath => (key, value) => {\n if (deep && isObject(value)) {\n const path = parentPath === undefined ? key : \"\".concat(parentPath, \".\").concat(key);\n if (!stopPathsSet.has(path)) {\n value = mapObj(value, makeMapper(path));\n }\n }\n if (!(exclude && has(exclude, key))) {\n const cacheKey = pascalCase ? \"\".concat(key, \"_\") : key;\n if (cache.has(cacheKey)) {\n key = cache.get(cacheKey);\n } else {\n const returnValue = camelCase(key, {\n pascalCase\n });\n if (key.length < 100) {\n // Prevent abuse\n cache.set(cacheKey, returnValue);\n }\n key = returnValue;\n }\n }\n return [key, value];\n };\n return mapObj(input, makeMapper(undefined));\n};\nmodule.exports = (input, options) => {\n if (Array.isArray(input)) {\n return Object.keys(input).map(key => camelCaseConvert(input[key], options));\n }\n return camelCaseConvert(input, options);\n};","'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n for (let i = 0; i < string.length; i++) {\n const character = string[i];\n if (isLastCharLower && UPPERCASE.test(character)) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n }\n }\n return string;\n};\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n LEADING_CAPITAL.lastIndex = 0;\n return input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\nconst postProcess = (input, toUpperCase) => {\n SEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n NUMBERS_AND_IDENTIFIER.lastIndex = 0;\n return input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier)).replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\nconst camelCase = (input, options) => {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n options = {\n pascalCase: false,\n preserveConsecutiveUppercase: false,\n ...options\n };\n if (Array.isArray(input)) {\n input = input.map(x => x.trim()).filter(x => x.length).join('-');\n } else {\n input = input.trim();\n }\n if (input.length === 0) {\n return '';\n }\n const toLowerCase = options.locale === false ? string => string.toLowerCase() : string => string.toLocaleLowerCase(options.locale);\n const toUpperCase = options.locale === false ? string => string.toUpperCase() : string => string.toLocaleUpperCase(options.locale);\n if (input.length === 1) {\n return options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n }\n const hasUpperCase = input !== toLowerCase(input);\n if (hasUpperCase) {\n input = preserveCamelCase(input, toLowerCase, toUpperCase);\n }\n input = input.replace(LEADING_SEPARATORS, '');\n if (options.preserveConsecutiveUppercase) {\n input = preserveConsecutiveUppercase(input, toLowerCase);\n } else {\n input = toLowerCase(input);\n }\n if (options.pascalCase) {\n input = toUpperCase(input.charAt(0)) + input.slice(1);\n }\n return postProcess(input, toUpperCase);\n};\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;","'use strict';\n\nconst isObject = value => typeof value === 'object' && value !== null;\nconst mapObjectSkip = Symbol('skip');\n\n// Customized for this use-case\nconst isObjectCustom = value => isObject(value) && !(value instanceof RegExp) && !(value instanceof Error) && !(value instanceof Date);\nconst mapObject = function (object, mapper, options) {\n let isSeen = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : new WeakMap();\n options = {\n deep: false,\n target: {},\n ...options\n };\n if (isSeen.has(object)) {\n return isSeen.get(object);\n }\n isSeen.set(object, options.target);\n const {\n target\n } = options;\n delete options.target;\n const mapArray = array => array.map(element => isObjectCustom(element) ? mapObject(element, mapper, options, isSeen) : element);\n if (Array.isArray(object)) {\n return mapArray(object);\n }\n for (const [key, value] of Object.entries(object)) {\n const mapResult = mapper(key, value, object);\n if (mapResult === mapObjectSkip) {\n continue;\n }\n let [newKey, newValue, {\n shouldRecurse = true\n } = {}] = mapResult;\n\n // Drop `__proto__` keys.\n if (newKey === '__proto__') {\n continue;\n }\n if (options.deep && shouldRecurse && isObjectCustom(newValue)) {\n newValue = Array.isArray(newValue) ? mapArray(newValue) : mapObject(newValue, mapper, options, isSeen);\n }\n target[newKey] = newValue;\n }\n return target;\n};\nmodule.exports = (object, mapper, options) => {\n if (!isObject(object)) {\n throw new TypeError(\"Expected an object, got `\".concat(object, \"` (\").concat(typeof object, \")\"));\n }\n return mapObject(object, mapper, options);\n};\nmodule.exports.mapObjectSkip = mapObjectSkip;","'use strict';\n\nclass QuickLRU {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!(options.maxSize && options.maxSize > 0)) {\n throw new TypeError('`maxSize` must be a number greater than 0');\n }\n this.maxSize = options.maxSize;\n this.onEviction = options.onEviction;\n this.cache = new Map();\n this.oldCache = new Map();\n this._size = 0;\n }\n _set(key, value) {\n this.cache.set(key, value);\n this._size++;\n if (this._size >= this.maxSize) {\n this._size = 0;\n if (typeof this.onEviction === 'function') {\n for (const [key, value] of this.oldCache.entries()) {\n this.onEviction(key, value);\n }\n }\n this.oldCache = this.cache;\n this.cache = new Map();\n }\n }\n get(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n if (this.oldCache.has(key)) {\n const value = this.oldCache.get(key);\n this.oldCache.delete(key);\n this._set(key, value);\n return value;\n }\n }\n set(key, value) {\n if (this.cache.has(key)) {\n this.cache.set(key, value);\n } else {\n this._set(key, value);\n }\n return this;\n }\n has(key) {\n return this.cache.has(key) || this.oldCache.has(key);\n }\n peek(key) {\n if (this.cache.has(key)) {\n return this.cache.get(key);\n }\n if (this.oldCache.has(key)) {\n return this.oldCache.get(key);\n }\n }\n delete(key) {\n const deleted = this.cache.delete(key);\n if (deleted) {\n this._size--;\n }\n return this.oldCache.delete(key) || deleted;\n }\n clear() {\n this.cache.clear();\n this.oldCache.clear();\n this._size = 0;\n }\n *keys() {\n for (const [key] of this) {\n yield key;\n }\n }\n *values() {\n for (const [, value] of this) {\n yield value;\n }\n }\n *[Symbol.iterator]() {\n for (const item of this.cache) {\n yield item;\n }\n for (const item of this.oldCache) {\n const [key] = item;\n if (!this.cache.has(key)) {\n yield item;\n }\n }\n }\n get size() {\n let oldCacheSize = 0;\n for (const key of this.oldCache.keys()) {\n if (!this.cache.has(key)) {\n oldCacheSize++;\n }\n }\n return Math.min(this._size + oldCacheSize, this.maxSize);\n }\n}\nmodule.exports = QuickLRU;"],"sourceRoot":""}