all the things
This commit is contained in:
parent
6382759e27
commit
7db3497bbe
|
@ -1,11 +1,24 @@
|
||||||
import { GROUP_CHAT_SLUG } from 'common/group'
|
import { GROUP_CHAT_SLUG } from 'common/group'
|
||||||
|
|
||||||
export const CONTEST_DATA = {
|
type Contest = {
|
||||||
'cause-exploration-prize': {
|
link: string
|
||||||
link: 'https://www.causeexplorationprizes.com/',
|
description: string
|
||||||
description:
|
submissionLink: string
|
||||||
'Open Philanthropy’s contest to find ideas for the best ways to use their resources, with focus on new areas to support, health development, and worldview investigations.',
|
fileName: string
|
||||||
},
|
closeTime: string
|
||||||
}
|
}
|
||||||
|
|
||||||
export const CONTEST_SLUGS = Object.keys(CONTEST_DATA)
|
export let contest_data: { [name: string]: Contest } = {}
|
||||||
|
|
||||||
|
contest_data['cause-exploration-prize'] = {
|
||||||
|
link: 'https://www.causeexplorationprizes.com/',
|
||||||
|
description:
|
||||||
|
'Open Philanthropy’s contest to find ideas for the best ways to use their resources, with focus on new areas to support, health development, and worldview investigations.',
|
||||||
|
submissionLink:
|
||||||
|
'https://forum.effectivealtruism.org/topics/cause-exploration-prizes',
|
||||||
|
//name of file that stores json of submissions under lib/util/contests
|
||||||
|
fileName: 'causeExploration',
|
||||||
|
closeTime: '2022-09-01',
|
||||||
|
}
|
||||||
|
|
||||||
|
export const CONTEST_SLUGS = Object.keys(contest_data)
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
"lodash": "4.17.21",
|
"lodash": "4.17.21",
|
||||||
"mailgun-js": "0.22.0",
|
"mailgun-js": "0.22.0",
|
||||||
"module-alias": "2.2.2",
|
"module-alias": "2.2.2",
|
||||||
|
"puppeteer": "16.0.0",
|
||||||
"stripe": "8.194.0",
|
"stripe": "8.194.0",
|
||||||
"zod": "3.17.2"
|
"zod": "3.17.2"
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,125 +0,0 @@
|
||||||
// Run with `npx ts-node src/scripts/scrape-ea.ts`
|
|
||||||
|
|
||||||
import * as cheerio from 'cheerio'
|
|
||||||
import * as fs from 'fs'
|
|
||||||
|
|
||||||
type Submission = {
|
|
||||||
title: string
|
|
||||||
author: string
|
|
||||||
// minuteRead: number
|
|
||||||
// postedAt: string
|
|
||||||
// amount: string
|
|
||||||
link?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
function elToSubmission($: cheerio.Root, el: cheerio.Element): Submission {
|
|
||||||
const $el = $(el)
|
|
||||||
const title = $el.find('a>span>span').text().trim()
|
|
||||||
const author = $el.find('.PostsUserAndCoauthors-lengthLimited').text().trim()
|
|
||||||
const link = $el.find('a').attr('href')?.trim()
|
|
||||||
// const postedAt = $el.find('PostsItemDate-postedAt').text().trim()
|
|
||||||
// const date = $el.find('.grant-card__date').text().trim()
|
|
||||||
// const amount = $el.find('.grant-card__amount').text().trim()
|
|
||||||
// const areasOfInterest = $el
|
|
||||||
// .find('.area-of-interest__title')
|
|
||||||
// // Remove all leading and trailing whitespace
|
|
||||||
// .map((_, el) => $(el).text().trim())
|
|
||||||
// .get()
|
|
||||||
// .join('|')
|
|
||||||
// const link = $el.find('a.grant-card__link').attr('href')?.trim()
|
|
||||||
|
|
||||||
return {
|
|
||||||
title,
|
|
||||||
author,
|
|
||||||
link,
|
|
||||||
} as Submission
|
|
||||||
}
|
|
||||||
|
|
||||||
async function scrapeFtx() {
|
|
||||||
const resp = await fetch(
|
|
||||||
'https://forum.effectivealtruism.org/topics/cause-exploration-prizes'
|
|
||||||
)
|
|
||||||
const text = await resp.text()
|
|
||||||
const $ = cheerio.load(text)
|
|
||||||
const strip = (text: string) => text.replace(/'/g, '')
|
|
||||||
const toNum = (text: string) => Number(text.replace(/[^0-9.-]+/g, ''))
|
|
||||||
|
|
||||||
// Parse Grant objects from each <div class="grant-card"> using cheerio
|
|
||||||
const csvLines = [
|
|
||||||
// Add a header row
|
|
||||||
// 'title\tdescription\tdate\tamount\tareasOfInterest\tlink',
|
|
||||||
...$('div.PostsItem2-root')
|
|
||||||
.map((_, el) => elToSubmission($, el))
|
|
||||||
.get()
|
|
||||||
.map(
|
|
||||||
(submission) =>
|
|
||||||
// Join all attributes with tabs
|
|
||||||
`{ title: '${submission.title}',
|
|
||||||
author: '${submission.author}',
|
|
||||||
link: '${submission.link}',
|
|
||||||
}
|
|
||||||
`
|
|
||||||
),
|
|
||||||
]
|
|
||||||
console.log(csvLines.join('\n'))
|
|
||||||
fs.writeFileSync(
|
|
||||||
'../web/lib/util/ftx-grants.ts',
|
|
||||||
'export const grants = [\n' + csvLines.join('\n') + '\n]'
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (require.main === module) {
|
|
||||||
scrapeFtx().then(() => process.exit())
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
Example html grant card, for reference:
|
|
||||||
<div class="grant-card" style="order: -1">
|
|
||||||
<div class="grant-card__date">
|
|
||||||
March 2022
|
|
||||||
</div>
|
|
||||||
<h2 class="grant-card__title">
|
|
||||||
Manifold Markets
|
|
||||||
</h2>
|
|
||||||
<div class="grant-card__description">
|
|
||||||
<p>This regrant will support Manifold Markets in building a play-money prediction market platform. The platform is also experimenting with impact certificates and charity prediction markets.</p>
|
|
||||||
</div>
|
|
||||||
<div class="grant-card__amount">
|
|
||||||
$1,000,000
|
|
||||||
</div>
|
|
||||||
<a href="https://manifold.markets/" class="grant-card__link">
|
|
||||||
manifold.markets </a>
|
|
||||||
<div class="grant-card__areas-of-interest">
|
|
||||||
<a href="https://ftx.tghp.co.uk/area-of-interest/#institution-epistemic-institutions" class="area-of-interest">
|
|
||||||
<div class="area-of-interest__icon">
|
|
||||||
<!--?xml version="1.0" encoding="utf-8"?-->
|
|
||||||
<!-- Generator: Adobe Illustrator 25.3.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
|
||||||
<style type="text/css">
|
|
||||||
.st0{fill:#EF3C27;}
|
|
||||||
</style>
|
|
||||||
<g>
|
|
||||||
<path class="st0" d="M491.8,307.6c5.9-6.6,9.6-15.4,9.6-24.9c0-16.9-11.3-31.2-26.7-35.8V85.4h5.2c5.9,0,10.7-4.8,10.8-10.7v-64
|
|
||||||
C490.7,4.8,485.9,0,480,0H32.1c-5.9,0-10.7,4.8-10.7,10.7v64c0,5.9,4.8,10.7,10.7,10.7h64v30.6c-0.1,0.5-0.1,0.9-0.1,1.4
|
|
||||||
c0,0.5,0,1,0.1,1.4v94.5c0,5,3.5,9.4,8.4,10.5l149.2,32c0.8,0.1,1.5,0.2,2.3,0.2s1.5-0.1,2.4-0.2l149.3-32
|
|
||||||
c4.9-1.1,8.4-5.4,8.4-10.5V85.4h37.2v161.5c-15.4,4.6-26.7,18.9-26.7,35.8c0,9.6,3.6,18.3,9.6,24.9c-12.2,8.7-20.2,23-20.2,39.1
|
|
||||||
v90.6c0,5.9,4.8,10.7,10.7,10.7h74.6c5.9,0,10.7-4.8,10.8-10.7v-90.6C512,330.6,504,316.3,491.8,307.6z M42.8,21.3h426.5V64h-63.9
|
|
||||||
H106.8h-64V21.3z M256,234.4l-138.6-29.7v-76.7h277.2v76.7L256,234.4z M394.6,106.7H117.4V85.4h277.2V106.7z M448,282.7
|
|
||||||
c0-8.8,7.2-16,16-16c8.8,0,15.9,7.2,16,16c0,8.8-7.2,16-16,16C455.2,298.7,448,291.5,448,282.7z M490.7,426.6h-53.4v-79.9
|
|
||||||
c0-14.7,12-26.7,26.7-26.7c14.7,0,26.7,12,26.7,26.7V426.6z"></path>
|
|
||||||
<path class="st0" d="M351.9,447.9h-21.3c-5.9,0-10.7,4.8-10.7,10.7s4.8,10.7,10.7,10.7h21.3c5.9,0,10.7,4.8,10.7,10.7
|
|
||||||
c0,5.9-4.8,10.7-10.7,10.7h-74.6l-13-52.3c-0.5-1.9-1.4-3.5-2.8-4.9L72.9,244.9c-16.7-16.7-43.7-16.7-60.3,0
|
|
||||||
C4.6,253,0.1,263.6,0.1,275.1s4.5,22.1,12.5,30.2L201,493.7c1.4,1.4,3.2,2.4,5,2.8l59.6,14.8c1,0.3,2.1,0.5,3.3,0.5h83.1
|
|
||||||
c17.6,0,32-14.4,32-32C383.9,462.2,369.6,447.9,351.9,447.9z M65.4,327.8l30.1-30.1l15.1,15.1l-30.1,30.1L65.4,327.8z M21.4,275
|
|
||||||
c0-5.7,2.2-11,6.2-15c8.3-8.3,21.9-8.3,30.2,0l22.7,22.7l-30.1,30.1L27.6,290C23.6,285.9,21.4,280.6,21.4,275z M214.1,476.5
|
|
||||||
L95.6,357.9l30.1-30.1l118.5,118.5l10,40.2L214.1,476.5z"></path>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
</div>
|
|
||||||
<div class="area-of-interest__title">
|
|
||||||
Epistemic Institutions
|
|
||||||
</div>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
*/
|
|
|
@ -7,7 +7,8 @@
|
||||||
"outDir": "lib",
|
"outDir": "lib",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"target": "es2017"
|
"target": "es2017",
|
||||||
|
"resolveJsonModule": true
|
||||||
},
|
},
|
||||||
"references": [
|
"references": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,6 +23,17 @@ import { DEFAULT_CATEGORY_GROUPS } from 'common/categories'
|
||||||
import { Col } from './layout/col'
|
import { Col } from './layout/col'
|
||||||
import SubmissionSearchFirestore from 'web/pages/submission-search-firestore'
|
import SubmissionSearchFirestore from 'web/pages/submission-search-firestore'
|
||||||
import { SubmissionsGrid } from './submission/submission-list'
|
import { SubmissionsGrid } from './submission/submission-list'
|
||||||
|
import { contest_data } from 'common/contest'
|
||||||
|
|
||||||
|
// All contest scraping data imports
|
||||||
|
import { default as causeExploration } from 'web/lib/util/contests/causeExploration.json'
|
||||||
|
import { getGroupBySlug } from 'web/lib/firebase/groups'
|
||||||
|
import { getContractFromId } from 'web/lib/firebase/contracts'
|
||||||
|
import { contractTextDetails } from './contract/contract-details'
|
||||||
|
import { createMarket } from 'web/lib/firebase/api'
|
||||||
|
import { removeUndefinedProps } from 'common/util/object'
|
||||||
|
import dayjs from 'dayjs'
|
||||||
|
import { useRouter } from 'next/router'
|
||||||
|
|
||||||
const searchClient = algoliasearch(
|
const searchClient = algoliasearch(
|
||||||
'GJQPAYENIF',
|
'GJQPAYENIF',
|
||||||
|
@ -52,11 +63,11 @@ export function SubmissionSearch(props: {
|
||||||
defaultFilter?: filter
|
defaultFilter?: filter
|
||||||
shouldLoadFromStorage?: boolean
|
shouldLoadFromStorage?: boolean
|
||||||
}
|
}
|
||||||
additionalFilter?: {
|
additionalFilter: {
|
||||||
creatorId?: string
|
creatorId?: string
|
||||||
tag?: string
|
tag?: string
|
||||||
excludeContractIds?: string[]
|
excludeContractIds?: string[]
|
||||||
groupSlug?: string
|
contestSlug: string
|
||||||
}
|
}
|
||||||
highlightOptions?: ContractHighlightOptions
|
highlightOptions?: ContractHighlightOptions
|
||||||
onContractClick?: (contract: Contract) => void
|
onContractClick?: (contract: Contract) => void
|
||||||
|
@ -80,25 +91,7 @@ export function SubmissionSearch(props: {
|
||||||
} = props
|
} = props
|
||||||
|
|
||||||
const user = useUser()
|
const user = useUser()
|
||||||
const memberGroups = (useMemberGroups(user?.id) ?? []).filter(
|
const router = useRouter()
|
||||||
(group) => !NEW_USER_GROUP_SLUGS.includes(group.slug)
|
|
||||||
)
|
|
||||||
const memberGroupSlugs =
|
|
||||||
memberGroups.length > 0
|
|
||||||
? memberGroups.map((g) => g.slug)
|
|
||||||
: DEFAULT_CATEGORY_GROUPS.map((g) => g.slug)
|
|
||||||
|
|
||||||
const memberPillGroups = sortBy(
|
|
||||||
memberGroups.filter((group) => group.contractIds.length > 0),
|
|
||||||
(group) => group.contractIds.length
|
|
||||||
).reverse()
|
|
||||||
|
|
||||||
const defaultPillGroups = DEFAULT_CATEGORY_GROUPS as Group[]
|
|
||||||
|
|
||||||
const pillGroups =
|
|
||||||
memberPillGroups.length > 0 ? memberPillGroups : defaultPillGroups
|
|
||||||
|
|
||||||
const follows = useFollows(user?.id)
|
|
||||||
|
|
||||||
const { shouldLoadFromStorage, defaultSort } = querySortOptions ?? {}
|
const { shouldLoadFromStorage, defaultSort } = querySortOptions ?? {}
|
||||||
const { query, setQuery, sort, setSort } = useQueryAndSortParams({
|
const { query, setQuery, sort, setSort } = useQueryAndSortParams({
|
||||||
|
@ -109,25 +102,13 @@ export function SubmissionSearch(props: {
|
||||||
const [filter, setFilter] = useState<filter>(
|
const [filter, setFilter] = useState<filter>(
|
||||||
querySortOptions?.defaultFilter ?? 'open'
|
querySortOptions?.defaultFilter ?? 'open'
|
||||||
)
|
)
|
||||||
const pillsEnabled = !additionalFilter
|
|
||||||
|
|
||||||
const [pillFilter, setPillFilter] = useState<string | undefined>(undefined)
|
|
||||||
|
|
||||||
const selectPill = (pill: string | undefined) => () => {
|
|
||||||
setPillFilter(pill)
|
|
||||||
setPage(0)
|
|
||||||
track('select search category', { category: pill ?? 'all' })
|
|
||||||
}
|
|
||||||
|
|
||||||
const additionalFilters = [
|
const additionalFilters = [
|
||||||
additionalFilter?.creatorId
|
additionalFilter?.contestSlug
|
||||||
? `creatorId:${additionalFilter.creatorId}`
|
? `groupLinks.slug:${additionalFilter.contestSlug}`
|
||||||
: '',
|
|
||||||
additionalFilter?.tag ? `lowercaseTags:${additionalFilter.tag}` : '',
|
|
||||||
additionalFilter?.groupSlug
|
|
||||||
? `groupLinks.slug:${additionalFilter.groupSlug}`
|
|
||||||
: '',
|
: '',
|
||||||
]
|
]
|
||||||
|
|
||||||
let facetFilters = query
|
let facetFilters = query
|
||||||
? additionalFilters
|
? additionalFilters
|
||||||
: [
|
: [
|
||||||
|
@ -135,26 +116,6 @@ export function SubmissionSearch(props: {
|
||||||
filter === 'open' ? 'isResolved:false' : '',
|
filter === 'open' ? 'isResolved:false' : '',
|
||||||
filter === 'closed' ? 'isResolved:false' : '',
|
filter === 'closed' ? 'isResolved:false' : '',
|
||||||
filter === 'resolved' ? 'isResolved:true' : '',
|
filter === 'resolved' ? 'isResolved:true' : '',
|
||||||
pillFilter && pillFilter !== 'personal' && pillFilter !== 'your-bets'
|
|
||||||
? `groupLinks.slug:${pillFilter}`
|
|
||||||
: '',
|
|
||||||
pillFilter === 'personal'
|
|
||||||
? // Show contracts in groups that the user is a member of
|
|
||||||
memberGroupSlugs
|
|
||||||
.map((slug) => `groupLinks.slug:${slug}`)
|
|
||||||
// Show contracts created by users the user follows
|
|
||||||
.concat(follows?.map((followId) => `creatorId:${followId}`) ?? [])
|
|
||||||
// Show contracts bet on by users the user follows
|
|
||||||
.concat(
|
|
||||||
follows?.map((followId) => `uniqueBettorIds:${followId}`) ?? []
|
|
||||||
)
|
|
||||||
: '',
|
|
||||||
// Subtract contracts you bet on from For you.
|
|
||||||
pillFilter === 'personal' && user ? `uniqueBettorIds:-${user.id}` : '',
|
|
||||||
pillFilter === 'your-bets' && user
|
|
||||||
? // Show contracts bet on by the user
|
|
||||||
`uniqueBettorIds:${user.id}`
|
|
||||||
: '',
|
|
||||||
].filter((f) => f)
|
].filter((f) => f)
|
||||||
// Hack to make Algolia work.
|
// Hack to make Algolia work.
|
||||||
facetFilters = ['', ...facetFilters]
|
facetFilters = ['', ...facetFilters]
|
||||||
|
@ -250,6 +211,45 @@ export function SubmissionSearch(props: {
|
||||||
track('select sort', { sort: newSort })
|
track('select sort', { sort: newSort })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const contestSlug = additionalFilter?.contestSlug
|
||||||
|
|
||||||
|
// Getting all submissions in a group and seeing if there's any new ones from the last scraping
|
||||||
|
// if so, creates new submission
|
||||||
|
|
||||||
|
async function syncSubmissions() {
|
||||||
|
let scrapedTitles = causeExploration.map((entry) => entry.title)
|
||||||
|
if (contestSlug) {
|
||||||
|
let group = await getGroupBySlug(contestSlug).catch((err) => {
|
||||||
|
return err
|
||||||
|
})
|
||||||
|
|
||||||
|
let questions: string[] = await Promise.all(
|
||||||
|
group.contractIds.map(async (contractId: string) => {
|
||||||
|
return (await getContractFromId(contractId))?.question
|
||||||
|
})
|
||||||
|
)
|
||||||
|
|
||||||
|
scrapedTitles.map(async (title) => {
|
||||||
|
if (!questions.includes(title)) {
|
||||||
|
// INGA/TODO: I don't know how to create a market, we should also be creating these markets under some like manifold account so that users aren't creating markets on their own when the backend updates. Pls help
|
||||||
|
// await createMarket(
|
||||||
|
// removeUndefinedProps({
|
||||||
|
// title,
|
||||||
|
// outcomeType: 'BINARY',
|
||||||
|
// initialProb: 50,
|
||||||
|
// groupId: group.id,
|
||||||
|
// closeTime: dayjs(
|
||||||
|
// contest_data[contestSlug].closeTime
|
||||||
|
// ).valueOf(),
|
||||||
|
// })
|
||||||
|
// )
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
syncSubmissions()
|
||||||
|
|
||||||
if (IS_PRIVATE_MANIFOLD || process.env.NEXT_PUBLIC_FIREBASE_EMULATE) {
|
if (IS_PRIVATE_MANIFOLD || process.env.NEXT_PUBLIC_FIREBASE_EMULATE) {
|
||||||
return (
|
return (
|
||||||
<SubmissionSearchFirestore
|
<SubmissionSearchFirestore
|
||||||
|
@ -296,67 +296,18 @@ export function SubmissionSearch(props: {
|
||||||
)}
|
)}
|
||||||
</Row>
|
</Row>
|
||||||
|
|
||||||
<Spacer h={3} />
|
<Spacer h={4} />
|
||||||
|
<SubmissionsGrid
|
||||||
{pillsEnabled && (
|
contracts={contracts}
|
||||||
<Row className="scrollbar-hide items-start gap-2 overflow-x-auto">
|
loadMore={loadMore}
|
||||||
<PillButton
|
hasMore={true}
|
||||||
key={'all'}
|
showTime={showTime}
|
||||||
selected={pillFilter === undefined}
|
onContractClick={onContractClick}
|
||||||
onSelect={selectPill(undefined)}
|
overrideGridClassName={overrideGridClassName}
|
||||||
>
|
highlightOptions={highlightOptions}
|
||||||
All
|
cardHideOptions={cardHideOptions}
|
||||||
</PillButton>
|
contestSlug={contestSlug}
|
||||||
<PillButton
|
/>
|
||||||
key={'personal'}
|
|
||||||
selected={pillFilter === 'personal'}
|
|
||||||
onSelect={selectPill('personal')}
|
|
||||||
>
|
|
||||||
{user ? 'For you' : 'Featured'}
|
|
||||||
</PillButton>
|
|
||||||
|
|
||||||
{user && (
|
|
||||||
<PillButton
|
|
||||||
key={'your-bets'}
|
|
||||||
selected={pillFilter === 'your-bets'}
|
|
||||||
onSelect={selectPill('your-bets')}
|
|
||||||
>
|
|
||||||
Your bets
|
|
||||||
</PillButton>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{pillGroups.map(({ name, slug }) => {
|
|
||||||
return (
|
|
||||||
<PillButton
|
|
||||||
key={slug}
|
|
||||||
selected={pillFilter === slug}
|
|
||||||
onSelect={selectPill(slug)}
|
|
||||||
>
|
|
||||||
{name}
|
|
||||||
</PillButton>
|
|
||||||
)
|
|
||||||
})}
|
|
||||||
</Row>
|
|
||||||
)}
|
|
||||||
|
|
||||||
<Spacer h={3} />
|
|
||||||
|
|
||||||
{filter === 'personal' &&
|
|
||||||
(follows ?? []).length === 0 &&
|
|
||||||
memberGroupSlugs.length === 0 ? (
|
|
||||||
<>You're not following anyone, nor in any of your own groups yet.</>
|
|
||||||
) : (
|
|
||||||
<SubmissionsGrid
|
|
||||||
contracts={contracts}
|
|
||||||
loadMore={loadMore}
|
|
||||||
hasMore={true}
|
|
||||||
showTime={showTime}
|
|
||||||
onContractClick={onContractClick}
|
|
||||||
overrideGridClassName={overrideGridClassName}
|
|
||||||
highlightOptions={highlightOptions}
|
|
||||||
cardHideOptions={cardHideOptions}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</Col>
|
</Col>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,11 @@ import clsx from 'clsx'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import { Row } from '../layout/row'
|
import { Row } from '../layout/row'
|
||||||
import { formatLargeNumber, formatPercent } from 'common/util/format'
|
import { formatLargeNumber, formatPercent } from 'common/util/format'
|
||||||
import { contractPath, getBinaryProbPercent } from 'web/lib/firebase/contracts'
|
import {
|
||||||
|
contractPath,
|
||||||
|
getBinaryProbPercent,
|
||||||
|
submissionPath,
|
||||||
|
} from 'web/lib/firebase/contracts'
|
||||||
import { Col } from '../layout/col'
|
import { Col } from '../layout/col'
|
||||||
import {
|
import {
|
||||||
BinaryContract,
|
BinaryContract,
|
||||||
|
@ -36,6 +40,15 @@ import { track } from '@amplitude/analytics-browser'
|
||||||
import { trackCallback } from 'web/lib/service/analytics'
|
import { trackCallback } from 'web/lib/service/analytics'
|
||||||
import { formatNumericProbability } from 'common/pseudo-numeric'
|
import { formatNumericProbability } from 'common/pseudo-numeric'
|
||||||
import { Title } from '../title'
|
import { Title } from '../title'
|
||||||
|
import { contest_data } from 'common/contest'
|
||||||
|
import { default as causeExploration } from 'web/lib/util/contests/causeExploration.json'
|
||||||
|
|
||||||
|
//this is super gross, need to figure out how to not hardcode this
|
||||||
|
function getSubmissionData(contestSlug: string) {
|
||||||
|
if (contestSlug === 'cause-exploration-prize') {
|
||||||
|
return causeExploration
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
export function SubmissionCard(props: {
|
export function SubmissionCard(props: {
|
||||||
contract: Contract
|
contract: Contract
|
||||||
|
@ -45,6 +58,7 @@ export function SubmissionCard(props: {
|
||||||
onClick?: () => void
|
onClick?: () => void
|
||||||
hideQuickBet?: boolean
|
hideQuickBet?: boolean
|
||||||
hideGroupLink?: boolean
|
hideGroupLink?: boolean
|
||||||
|
contestSlug: string
|
||||||
}) {
|
}) {
|
||||||
const {
|
const {
|
||||||
showHotVolume,
|
showHotVolume,
|
||||||
|
@ -53,6 +67,7 @@ export function SubmissionCard(props: {
|
||||||
onClick,
|
onClick,
|
||||||
hideQuickBet,
|
hideQuickBet,
|
||||||
hideGroupLink,
|
hideGroupLink,
|
||||||
|
contestSlug,
|
||||||
} = props
|
} = props
|
||||||
const contract = useContractWithPreload(props.contract) ?? props.contract
|
const contract = useContractWithPreload(props.contract) ?? props.contract
|
||||||
const { question, outcomeType } = contract
|
const { question, outcomeType } = contract
|
||||||
|
@ -69,115 +84,70 @@ export function SubmissionCard(props: {
|
||||||
(outcomeType === 'BINARY' || outcomeType === 'PSEUDO_NUMERIC') &&
|
(outcomeType === 'BINARY' || outcomeType === 'PSEUDO_NUMERIC') &&
|
||||||
!hideQuickBet
|
!hideQuickBet
|
||||||
|
|
||||||
|
const submissionData = getSubmissionData(contract.slug)
|
||||||
|
console.log(submissionData)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<Col className="rounded-lg shadow-md hover:shadow-xl">
|
||||||
<Col
|
{/* <Col
|
||||||
className={clsx(
|
className={clsx(
|
||||||
'relative gap-3 rounded-lg bg-white py-4 pl-6 pr-5 shadow-md hover:cursor-pointer hover:bg-gray-100',
|
'relative gap-3 py-4 pl-6 pr-5 shadow-md hover:cursor-pointer',
|
||||||
className
|
className
|
||||||
)}
|
)}
|
||||||
>
|
> */}
|
||||||
<Row>
|
<Col className="relative flex-1 gap-3 bg-white py-4 pl-6 pr-5">
|
||||||
<Col className="relative flex-1 gap-3 pr-1">
|
<div
|
||||||
<div
|
className={clsx(
|
||||||
className={clsx(
|
'peer absolute -left-6 -top-4 -bottom-4 right-0 z-10'
|
||||||
'peer absolute -left-6 -top-4 -bottom-4 right-0 z-10'
|
|
||||||
)}
|
|
||||||
>
|
|
||||||
{onClick ? (
|
|
||||||
<a
|
|
||||||
className="absolute top-0 left-0 right-0 bottom-0"
|
|
||||||
href={contractPath(contract)}
|
|
||||||
onClick={(e) => {
|
|
||||||
// Let the browser handle the link click (opens in new tab).
|
|
||||||
if (e.ctrlKey || e.metaKey) return
|
|
||||||
|
|
||||||
e.preventDefault()
|
|
||||||
track('click market card', {
|
|
||||||
slug: contract.slug,
|
|
||||||
contractId: contract.id,
|
|
||||||
})
|
|
||||||
onClick()
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<Link href={contractPath(contract)}>
|
|
||||||
<a
|
|
||||||
onClick={trackCallback('click market card', {
|
|
||||||
slug: contract.slug,
|
|
||||||
contractId: contract.id,
|
|
||||||
})}
|
|
||||||
className="absolute top-0 left-0 right-0 bottom-0"
|
|
||||||
/>
|
|
||||||
</Link>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
{/* <AvatarDetails contract={contract} /> */}
|
|
||||||
<p
|
|
||||||
className="break-words font-semibold text-indigo-700 peer-hover:underline peer-hover:decoration-indigo-400 peer-hover:decoration-2"
|
|
||||||
style={{ /* For iOS safari */ wordBreak: 'break-word' }}
|
|
||||||
>
|
|
||||||
{question}
|
|
||||||
</p>
|
|
||||||
|
|
||||||
{(outcomeType === 'FREE_RESPONSE' ||
|
|
||||||
outcomeType === 'MULTIPLE_CHOICE') &&
|
|
||||||
(resolution ? (
|
|
||||||
<FreeResponseOutcomeLabel
|
|
||||||
contract={contract}
|
|
||||||
resolution={resolution}
|
|
||||||
truncate={'long'}
|
|
||||||
/>
|
|
||||||
) : (
|
|
||||||
<FreeResponseTopAnswer contract={contract} truncate="long" />
|
|
||||||
))}
|
|
||||||
|
|
||||||
<MiscDetails
|
|
||||||
contract={contract}
|
|
||||||
showHotVolume={showHotVolume}
|
|
||||||
showTime={showTime}
|
|
||||||
hideGroupLink={hideGroupLink}
|
|
||||||
/>
|
|
||||||
</Col>
|
|
||||||
{showQuickBet ? (
|
|
||||||
<QuickBet contract={contract} user={user} />
|
|
||||||
) : (
|
|
||||||
<Col className="m-auto pl-2">
|
|
||||||
{outcomeType === 'BINARY' && (
|
|
||||||
<BinaryResolutionOrChance
|
|
||||||
className="items-center"
|
|
||||||
contract={contract}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{outcomeType === 'PSEUDO_NUMERIC' && (
|
|
||||||
<PseudoNumericResolutionOrExpectation
|
|
||||||
className="items-center"
|
|
||||||
contract={contract}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{outcomeType === 'NUMERIC' && (
|
|
||||||
<NumericResolutionOrExpectation
|
|
||||||
className="items-center"
|
|
||||||
contract={contract}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{(outcomeType === 'FREE_RESPONSE' ||
|
|
||||||
outcomeType === 'MULTIPLE_CHOICE') && (
|
|
||||||
<FreeResponseResolutionOrChance
|
|
||||||
className="self-end text-gray-600"
|
|
||||||
contract={contract}
|
|
||||||
truncate="long"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
<ProbBar contract={contract} />
|
|
||||||
</Col>
|
|
||||||
)}
|
)}
|
||||||
|
>
|
||||||
|
{onClick ? (
|
||||||
|
<a
|
||||||
|
className="absolute top-0 left-0 right-0 bottom-0"
|
||||||
|
href={submissionPath(contract, contestSlug)}
|
||||||
|
onClick={(e) => {
|
||||||
|
// Let the browser handle the link click (opens in new tab).
|
||||||
|
if (e.ctrlKey || e.metaKey) return
|
||||||
|
|
||||||
|
e.preventDefault()
|
||||||
|
track('click market card', {
|
||||||
|
contestSlug: contestSlug,
|
||||||
|
submissionSlug: contract.slug,
|
||||||
|
})
|
||||||
|
onClick()
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
) : (
|
||||||
|
<Link href={submissionPath(contract, contestSlug)}>
|
||||||
|
<a
|
||||||
|
onClick={trackCallback('click market card', {
|
||||||
|
contestSlug: contestSlug,
|
||||||
|
submissionSlug: contract.slug,
|
||||||
|
})}
|
||||||
|
className="absolute top-0 left-0 right-0 bottom-0"
|
||||||
|
/>
|
||||||
|
</Link>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
<p
|
||||||
|
className="break-words font-semibold text-indigo-700 peer-hover:underline peer-hover:decoration-indigo-400 peer-hover:decoration-2"
|
||||||
|
style={{ /* For iOS safari */ wordBreak: 'break-word' }}
|
||||||
|
>
|
||||||
|
{question}
|
||||||
|
</p>
|
||||||
|
<Row className="text-greyscale-5 text-sm">
|
||||||
|
{submissionData?.filter((entry) => entry.title === contract.question)}
|
||||||
</Row>
|
</Row>
|
||||||
</Col>
|
</Col>
|
||||||
</div>
|
<Row className="bg-greyscale-1 text-greyscale-5 rounded-b-lg py-4 pl-6 pr-5 text-xs">
|
||||||
|
<Col>
|
||||||
|
chance of winning a prize
|
||||||
|
<div className="text-greyscale-7 text-lg font-semibold">
|
||||||
|
{getBinaryProbPercent(contract)}
|
||||||
|
</div>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</Col>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -252,14 +222,6 @@ export function FreeResponseResolutionOrChance(props: {
|
||||||
<div className={clsx('text-base text-gray-500 sm:hidden')}>
|
<div className={clsx('text-base text-gray-500 sm:hidden')}>
|
||||||
Resolved
|
Resolved
|
||||||
</div>
|
</div>
|
||||||
{(resolution === 'CANCEL' || resolution === 'MKT') && (
|
|
||||||
<FreeResponseOutcomeLabel
|
|
||||||
contract={contract}
|
|
||||||
resolution={resolution}
|
|
||||||
truncate={truncate}
|
|
||||||
answerClassName="text-3xl uppercase text-blue-500"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</>
|
</>
|
||||||
) : (
|
) : (
|
||||||
topAnswer && (
|
topAnswer && (
|
||||||
|
|
|
@ -28,6 +28,7 @@ export function SubmissionsGrid(props: {
|
||||||
hideGroupLink?: boolean
|
hideGroupLink?: boolean
|
||||||
}
|
}
|
||||||
highlightOptions?: ContractHighlightOptions
|
highlightOptions?: ContractHighlightOptions
|
||||||
|
contestSlug: string
|
||||||
}) {
|
}) {
|
||||||
const {
|
const {
|
||||||
contracts,
|
contracts,
|
||||||
|
@ -38,7 +39,9 @@ export function SubmissionsGrid(props: {
|
||||||
overrideGridClassName,
|
overrideGridClassName,
|
||||||
cardHideOptions,
|
cardHideOptions,
|
||||||
highlightOptions,
|
highlightOptions,
|
||||||
|
contestSlug,
|
||||||
} = props
|
} = props
|
||||||
|
|
||||||
const { hideQuickBet, hideGroupLink } = cardHideOptions || {}
|
const { hideQuickBet, hideGroupLink } = cardHideOptions || {}
|
||||||
|
|
||||||
const { contractIds, highlightClassName } = highlightOptions || {}
|
const { contractIds, highlightClassName } = highlightOptions || {}
|
||||||
|
@ -86,6 +89,7 @@ export function SubmissionsGrid(props: {
|
||||||
? highlightClassName
|
? highlightClassName
|
||||||
: undefined
|
: undefined
|
||||||
}
|
}
|
||||||
|
contestSlug={contestSlug}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -93,20 +97,3 @@ export function SubmissionsGrid(props: {
|
||||||
</Col>
|
</Col>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export function CreatorContractsList(props: { creator: User }) {
|
|
||||||
const { creator } = props
|
|
||||||
|
|
||||||
return (
|
|
||||||
<SubmissionSearch
|
|
||||||
querySortOptions={{
|
|
||||||
defaultSort: 'newest',
|
|
||||||
defaultFilter: 'all',
|
|
||||||
shouldLoadFromStorage: false,
|
|
||||||
}}
|
|
||||||
additionalFilter={{
|
|
||||||
creatorId: creator.id,
|
|
||||||
}}
|
|
||||||
/>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
|
@ -31,6 +31,10 @@ export const contracts = coll<Contract>('contracts')
|
||||||
|
|
||||||
export type { Contract }
|
export type { Contract }
|
||||||
|
|
||||||
|
export function submissionPath(submission: Contract, contestSlug: string) {
|
||||||
|
return `/contest/${contestSlug}/${submission.slug}`
|
||||||
|
}
|
||||||
|
|
||||||
export function contractPath(contract: Contract) {
|
export function contractPath(contract: Contract) {
|
||||||
return `/${contract.creatorUsername}/${contract.slug}`
|
return `/${contract.creatorUsername}/${contract.slug}`
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
export const grants = [
|
|
||||||
{ title: 'New cause area: Violence against women and girls',
|
|
||||||
author: 'Akhil',
|
|
||||||
link: '/posts/majcwf7i8pW8eMJ3v/new-cause-area-violence-against-women-and-girls',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Open Philanthropy's Cause Exploration Prizes: $120k for written work on global health and wellbeing',
|
|
||||||
author: 'ChrisSmith, Aaron Gertler',
|
|
||||||
link: '/posts/iqcph4DbcP4PZGyDB/open-philanthropy-s-cause-exploration-prizes-usd120k-for',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'The Case for Making Professional Degrees Undergraduate Degrees',
|
|
||||||
author: 'ColdButtonIssues',
|
|
||||||
link: '/posts/fEMpAcNycbXpp6Ext/the-case-for-making-professional-degrees-undergraduate',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'New cause area: training health workers to prevent newborn deaths',
|
|
||||||
author: 'Marshall',
|
|
||||||
link: '/posts/B7wohgDDdwPoQAatt/new-cause-area-training-health-workers-to-prevent-newborn',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Global Health & Development - Beyond the Streetlight',
|
|
||||||
author: 'Richard Sedlmayr',
|
|
||||||
link: '/posts/DXKWHAkihdb6nkKyG/global-health-and-development-beyond-the-streetlight-1',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Cause Exploration Prizes submission: bivalve aquaculture',
|
|
||||||
author: 'Brian Lui',
|
|
||||||
link: '/posts/7keuWWMoYY6dMnqys/cause-exploration-prizes-submission-bivalve-aquaculture',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Potential new cause area: Obesity',
|
|
||||||
author: 'Akhil',
|
|
||||||
link: '/posts/jhsXxPnKbwzLwrKFq/potential-new-cause-area-obesity',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Energy Access in Sub-Saharan Africa: Open Philanthropy Cause Exploration Prize Submission',
|
|
||||||
author: 'Tomer_Goloboy',
|
|
||||||
link: '/posts/ZPjMemurtzeumwcdw/energy-access-in-sub-saharan-africa-open-philanthropy-cause',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Sleep: Open Philanthropy Cause Exploration Prize',
|
|
||||||
author: 'SuhanKacholia',
|
|
||||||
link: '/posts/qnDBN3nAXgwyTnrAC/sleep-open-philanthropy-cause-exploration-prize',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Cause Exploration Prizes: Could New Technology Help Solve the Glasses Problem?',
|
|
||||||
author: 'Open Philanthropy',
|
|
||||||
link: '/posts/a3vbQCgxTeYNvQBfc/cause-exploration-prizes-could-new-technology-help-solve-the',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Cause Exploration Prizes: Expanding access to infertility services in Low- and Middle-Income Countries (LMICs)',
|
|
||||||
author: 'Soleine Scotney',
|
|
||||||
link: '/posts/WAnJw5bhuQwhJiLTm/cause-exploration-prizes-expanding-access-to-infertility',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'New Cause Area: Demographic Collapse',
|
|
||||||
author: 'Malcolm Collins, hath, Simone H Collins',
|
|
||||||
link: '/posts/vFfoqL74kmZbydKjp/new-cause-area-demographic-collapse',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Cause area: climate adaptation in low-income countries',
|
|
||||||
author: 'karthik-t',
|
|
||||||
link: '/posts/nE827LwrRk5ep3Xao/cause-area-climate-adaptation-in-low-income-countries',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'Open Climate Data as a possible cause area, Open Philanthropy',
|
|
||||||
author: 'Ben Yeoh',
|
|
||||||
link: '/posts/s9HPpvMHgS5QYEM4C/open-climate-data-as-a-possible-cause-area-open-philanthropy',
|
|
||||||
}
|
|
||||||
|
|
||||||
{ title: 'One Million Missing Children',
|
|
||||||
author: 'ColdButtonIssues',
|
|
||||||
link: '/posts/H5LDwwmdBYBDNXTq4/one-million-missing-children',
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
|
@ -217,15 +217,6 @@ export function ContractPageContent(
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{(outcomeType === 'FREE_RESPONSE' ||
|
|
||||||
outcomeType === 'MULTIPLE_CHOICE') && (
|
|
||||||
<>
|
|
||||||
<Spacer h={4} />
|
|
||||||
<AnswersPanel contract={contract} />
|
|
||||||
<Spacer h={4} />
|
|
||||||
</>
|
|
||||||
)}
|
|
||||||
|
|
||||||
{isNumeric && allowTrade && (
|
{isNumeric && allowTrade && (
|
||||||
<NumericBetPanel className="xl:hidden" contract={contract} />
|
<NumericBetPanel className="xl:hidden" contract={contract} />
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -207,14 +207,14 @@ export default function ContestPage(props: {
|
||||||
</Col>
|
</Col>
|
||||||
)
|
)
|
||||||
|
|
||||||
const questionsTab = (
|
const submissionsTab = (
|
||||||
<SubmissionSearch
|
<SubmissionSearch
|
||||||
querySortOptions={{
|
querySortOptions={{
|
||||||
shouldLoadFromStorage: true,
|
shouldLoadFromStorage: true,
|
||||||
defaultSort: getSavedSort() ?? 'newest',
|
defaultSort: getSavedSort() ?? 'newest',
|
||||||
defaultFilter: 'open',
|
defaultFilter: 'open',
|
||||||
}}
|
}}
|
||||||
additionalFilter={{ groupSlug: contest.slug }}
|
additionalFilter={{ contestSlug: contest.slug }}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ export default function ContestPage(props: {
|
||||||
]),
|
]),
|
||||||
{
|
{
|
||||||
title: 'Submissions',
|
title: 'Submissions',
|
||||||
content: questionsTab,
|
content: submissionsTab,
|
||||||
href: contestPath(contest.slug, 'submissions'),
|
href: contestPath(contest.slug, 'submissions'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,7 +19,7 @@ import { JoinOrLeaveGroupButton } from 'web/components/groups/groups-button'
|
||||||
import { UserLink } from 'web/components/user-page'
|
import { UserLink } from 'web/components/user-page'
|
||||||
import { searchInAny } from 'common/util/parse'
|
import { searchInAny } from 'common/util/parse'
|
||||||
import { SEO } from 'web/components/SEO'
|
import { SEO } from 'web/components/SEO'
|
||||||
import { CONTEST_SLUGS, CONTEST_DATA } from 'common/contest'
|
import { CONTEST_SLUGS, contest_data } from 'common/contest'
|
||||||
import { contestPath } from 'web/lib/firebase/contests'
|
import { contestPath } from 'web/lib/firebase/contests'
|
||||||
|
|
||||||
export async function getStaticProps() {
|
export async function getStaticProps() {
|
||||||
|
|
197
yarn.lock
197
yarn.lock
|
@ -3156,6 +3156,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/cheerio@^0.22.31":
|
||||||
|
version "0.22.31"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.31.tgz#b8538100653d6bb1b08a1e46dec75b4f2a5d5eb6"
|
||||||
|
integrity sha512-Kt7Cdjjdi2XWSfrZ53v4Of0wG3ZcmaegFXjMmz9tfNrZSkzzo36G0AL1YqSdcIA78Etjt6E609pt5h1xnQkPUw==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
"@types/connect-history-api-fallback@^1.3.5":
|
"@types/connect-history-api-fallback@^1.3.5":
|
||||||
version "1.3.5"
|
version "1.3.5"
|
||||||
resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
|
resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae"
|
||||||
|
@ -3450,6 +3457,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/yauzl@^2.9.1":
|
||||||
|
version "2.10.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.0.tgz#b3248295276cf8c6f153ebe6a9aba0c988cb2599"
|
||||||
|
integrity sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@5.25.0":
|
"@typescript-eslint/eslint-plugin@5.25.0":
|
||||||
version "5.25.0"
|
version "5.25.0"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz#e8ce050990e4d36cc200f2de71ca0d3eb5e77a31"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz#e8ce050990e4d36cc200f2de71ca0d3eb5e77a31"
|
||||||
|
@ -4145,7 +4159,7 @@ base16@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70"
|
resolved "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz#e297f60d7ec1014a7a971a39ebc8a98c0b681e70"
|
||||||
integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==
|
integrity sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==
|
||||||
|
|
||||||
base64-js@^1.3.0:
|
base64-js@^1.3.0, base64-js@^1.3.1:
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
||||||
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
||||||
|
@ -4175,6 +4189,15 @@ binary-extensions@^2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||||
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||||
|
|
||||||
|
bl@^4.0.3:
|
||||||
|
version "4.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
|
||||||
|
integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==
|
||||||
|
dependencies:
|
||||||
|
buffer "^5.5.0"
|
||||||
|
inherits "^2.0.4"
|
||||||
|
readable-stream "^3.4.0"
|
||||||
|
|
||||||
bluebird@^3.7.1:
|
bluebird@^3.7.1:
|
||||||
version "3.7.2"
|
version "3.7.2"
|
||||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
|
||||||
|
@ -4288,6 +4311,11 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4
|
||||||
node-releases "^2.0.3"
|
node-releases "^2.0.3"
|
||||||
picocolors "^1.0.0"
|
picocolors "^1.0.0"
|
||||||
|
|
||||||
|
buffer-crc32@~0.2.3:
|
||||||
|
version "0.2.13"
|
||||||
|
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||||
|
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
|
||||||
|
|
||||||
buffer-equal-constant-time@1.0.1:
|
buffer-equal-constant-time@1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
||||||
|
@ -4298,6 +4326,14 @@ buffer-from@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
|
||||||
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
|
||||||
|
|
||||||
|
buffer@^5.2.1, buffer@^5.5.0:
|
||||||
|
version "5.7.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
|
||||||
|
integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
|
||||||
|
dependencies:
|
||||||
|
base64-js "^1.3.1"
|
||||||
|
ieee754 "^1.1.13"
|
||||||
|
|
||||||
bytes@3.0.0:
|
bytes@3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
||||||
|
@ -4421,6 +4457,19 @@ cheerio-select@^2.1.0:
|
||||||
domhandler "^5.0.3"
|
domhandler "^5.0.3"
|
||||||
domutils "^3.0.1"
|
domutils "^3.0.1"
|
||||||
|
|
||||||
|
cheerio@1.0.0-rc.12:
|
||||||
|
version "1.0.0-rc.12"
|
||||||
|
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683"
|
||||||
|
integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==
|
||||||
|
dependencies:
|
||||||
|
cheerio-select "^2.1.0"
|
||||||
|
dom-serializer "^2.0.0"
|
||||||
|
domhandler "^5.0.3"
|
||||||
|
domutils "^3.0.1"
|
||||||
|
htmlparser2 "^8.0.1"
|
||||||
|
parse5 "^7.0.0"
|
||||||
|
parse5-htmlparser2-tree-adapter "^7.0.0"
|
||||||
|
|
||||||
cheerio@^0.22.0:
|
cheerio@^0.22.0:
|
||||||
version "0.22.0"
|
version "0.22.0"
|
||||||
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
|
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
|
||||||
|
@ -4472,6 +4521,11 @@ chokidar@^3.4.2, chokidar@^3.5.2, chokidar@^3.5.3:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
fsevents "~2.3.2"
|
fsevents "~2.3.2"
|
||||||
|
|
||||||
|
chownr@^1.1.1:
|
||||||
|
version "1.1.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
|
||||||
|
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
|
||||||
|
|
||||||
chrome-trace-event@^1.0.2:
|
chrome-trace-event@^1.0.2:
|
||||||
version "1.0.3"
|
version "1.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
|
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
|
||||||
|
@ -4843,7 +4897,7 @@ cross-env@^7.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
cross-spawn "^7.0.1"
|
cross-spawn "^7.0.1"
|
||||||
|
|
||||||
cross-fetch@^3.1.5:
|
cross-fetch@3.1.5, cross-fetch@^3.1.5:
|
||||||
version "3.1.5"
|
version "3.1.5"
|
||||||
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
|
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f"
|
||||||
integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
|
integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==
|
||||||
|
@ -5158,7 +5212,7 @@ debug@3.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
|
debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
|
||||||
version "4.3.4"
|
version "4.3.4"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||||
|
@ -5314,6 +5368,11 @@ detective@^5.2.1:
|
||||||
defined "^1.0.0"
|
defined "^1.0.0"
|
||||||
minimist "^1.2.6"
|
minimist "^1.2.6"
|
||||||
|
|
||||||
|
devtools-protocol@0.0.1019158:
|
||||||
|
version "0.0.1019158"
|
||||||
|
resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1019158.tgz#4b08d06108a784a2134313149626ba55f030a86f"
|
||||||
|
integrity sha512-wvq+KscQ7/6spEV7czhnZc9RM/woz1AY+/Vpd8/h2HFMwJSdTliu7f/yr1A6vDdJfKICZsShqsYpEQbdhg8AFQ==
|
||||||
|
|
||||||
dicer@^0.3.0:
|
dicer@^0.3.0:
|
||||||
version "0.3.1"
|
version "0.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.1.tgz#abf28921e3475bc5e801e74e0159fd94f927ba97"
|
resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.1.tgz#abf28921e3475bc5e801e74e0159fd94f927ba97"
|
||||||
|
@ -6033,6 +6092,17 @@ extend@^3.0.0, extend@^3.0.2, extend@~3.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
|
||||||
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
|
||||||
|
|
||||||
|
extract-zip@2.0.1:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a"
|
||||||
|
integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==
|
||||||
|
dependencies:
|
||||||
|
debug "^4.1.1"
|
||||||
|
get-stream "^5.1.0"
|
||||||
|
yauzl "^2.10.0"
|
||||||
|
optionalDependencies:
|
||||||
|
"@types/yauzl" "^2.9.1"
|
||||||
|
|
||||||
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
||||||
version "3.1.3"
|
version "3.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
|
||||||
|
@ -6115,6 +6185,13 @@ fbjs@^3.0.0, fbjs@^3.0.1:
|
||||||
setimmediate "^1.0.5"
|
setimmediate "^1.0.5"
|
||||||
ua-parser-js "^0.7.30"
|
ua-parser-js "^0.7.30"
|
||||||
|
|
||||||
|
fd-slicer@~1.1.0:
|
||||||
|
version "1.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
|
||||||
|
integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==
|
||||||
|
dependencies:
|
||||||
|
pend "~1.2.0"
|
||||||
|
|
||||||
feed@^4.2.2:
|
feed@^4.2.2:
|
||||||
version "4.2.2"
|
version "4.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e"
|
resolved "https://registry.yarnpkg.com/feed/-/feed-4.2.2.tgz#865783ef6ed12579e2c44bbef3c9113bc4956a7e"
|
||||||
|
@ -6365,6 +6442,11 @@ fresh@0.5.2:
|
||||||
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
||||||
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
|
integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
|
||||||
|
|
||||||
|
fs-constants@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad"
|
||||||
|
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
|
||||||
|
|
||||||
fs-extra@^10.0.1:
|
fs-extra@^10.0.1:
|
||||||
version "10.1.0"
|
version "10.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
|
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf"
|
||||||
|
@ -7078,6 +7160,14 @@ http-proxy@^1.18.1:
|
||||||
follow-redirects "^1.0.0"
|
follow-redirects "^1.0.0"
|
||||||
requires-port "^1.0.0"
|
requires-port "^1.0.0"
|
||||||
|
|
||||||
|
https-proxy-agent@5.0.1, https-proxy-agent@^5.0.0:
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
|
||||||
|
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
|
||||||
|
dependencies:
|
||||||
|
agent-base "6"
|
||||||
|
debug "4"
|
||||||
|
|
||||||
https-proxy-agent@^3.0.0:
|
https-proxy-agent@^3.0.0:
|
||||||
version "3.0.1"
|
version "3.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81"
|
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz#b8c286433e87602311b01c8ea34413d856a4af81"
|
||||||
|
@ -7086,14 +7176,6 @@ https-proxy-agent@^3.0.0:
|
||||||
agent-base "^4.3.0"
|
agent-base "^4.3.0"
|
||||||
debug "^3.1.0"
|
debug "^3.1.0"
|
||||||
|
|
||||||
https-proxy-agent@^5.0.0:
|
|
||||||
version "5.0.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
|
|
||||||
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
|
|
||||||
dependencies:
|
|
||||||
agent-base "6"
|
|
||||||
debug "4"
|
|
||||||
|
|
||||||
human-signals@^2.1.0:
|
human-signals@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
||||||
|
@ -7116,6 +7198,11 @@ idb@3.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/idb/-/idb-3.0.2.tgz#c8e9122d5ddd40f13b60ae665e4862f8b13fa384"
|
resolved "https://registry.yarnpkg.com/idb/-/idb-3.0.2.tgz#c8e9122d5ddd40f13b60ae665e4862f8b13fa384"
|
||||||
integrity sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==
|
integrity sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==
|
||||||
|
|
||||||
|
ieee754@^1.1.13:
|
||||||
|
version "1.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||||
|
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||||
|
|
||||||
ignore-by-default@^1.0.1:
|
ignore-by-default@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
|
resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09"
|
||||||
|
@ -7189,7 +7276,7 @@ inflight@^1.0.4:
|
||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
|
inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||||
|
@ -8339,6 +8426,11 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
|
||||||
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
|
||||||
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
|
||||||
|
|
||||||
|
mkdirp-classic@^0.5.2:
|
||||||
|
version "0.5.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113"
|
||||||
|
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
|
||||||
|
|
||||||
mkdirp@0.3.0:
|
mkdirp@0.3.0:
|
||||||
version "0.3.0"
|
version "0.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
|
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
|
||||||
|
@ -8989,6 +9081,11 @@ path-type@^4.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||||
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||||
|
|
||||||
|
pend@~1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
||||||
|
integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
|
||||||
|
|
||||||
performance-now@^0.2.0:
|
performance-now@^0.2.0:
|
||||||
version "0.2.0"
|
version "0.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
|
||||||
|
@ -9014,7 +9111,7 @@ pify@^2.3.0:
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||||
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
|
integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
|
||||||
|
|
||||||
pkg-dir@^4.1.0:
|
pkg-dir@4.2.0, pkg-dir@^4.1.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
|
||||||
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
|
||||||
|
@ -9430,6 +9527,11 @@ process-nextick-args@~2.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
|
||||||
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
|
||||||
|
|
||||||
|
progress@2.0.3:
|
||||||
|
version "2.0.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||||
|
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||||
|
|
||||||
promise-polyfill@8.1.3:
|
promise-polyfill@8.1.3:
|
||||||
version "8.1.3"
|
version "8.1.3"
|
||||||
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116"
|
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116"
|
||||||
|
@ -9625,7 +9727,7 @@ proxy-agent@^3.0.3:
|
||||||
proxy-from-env "^1.0.0"
|
proxy-from-env "^1.0.0"
|
||||||
socks-proxy-agent "^4.0.1"
|
socks-proxy-agent "^4.0.1"
|
||||||
|
|
||||||
proxy-from-env@^1.0.0:
|
proxy-from-env@1.1.0, proxy-from-env@^1.0.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
|
||||||
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
|
||||||
|
@ -9674,6 +9776,24 @@ pupa@^2.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
escape-goat "^2.0.0"
|
escape-goat "^2.0.0"
|
||||||
|
|
||||||
|
puppeteer@16.0.0:
|
||||||
|
version "16.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-16.0.0.tgz#9efb6cdb57e3e51cf060a33f6289e88200dd4672"
|
||||||
|
integrity sha512-FgSe21IHNHkqv1SiJiob4ANsxVujcINa4p3MaDEMyoZsocbgSgwYE0c9lnF8eoinw4id3vx4DOXwhFdOOwVlDg==
|
||||||
|
dependencies:
|
||||||
|
cross-fetch "3.1.5"
|
||||||
|
debug "4.3.4"
|
||||||
|
devtools-protocol "0.0.1019158"
|
||||||
|
extract-zip "2.0.1"
|
||||||
|
https-proxy-agent "5.0.1"
|
||||||
|
pkg-dir "4.2.0"
|
||||||
|
progress "2.0.3"
|
||||||
|
proxy-from-env "1.1.0"
|
||||||
|
rimraf "3.0.2"
|
||||||
|
tar-fs "2.1.1"
|
||||||
|
unbzip2-stream "1.4.3"
|
||||||
|
ws "8.8.1"
|
||||||
|
|
||||||
pure-color@^1.2.0:
|
pure-color@^1.2.0:
|
||||||
version "1.3.0"
|
version "1.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e"
|
resolved "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz#1fe064fb0ac851f0de61320a8bf796836422f33e"
|
||||||
|
@ -10023,7 +10143,7 @@ readable-stream@2, readable-stream@^2.0.1, readable-stream@~2.3.6:
|
||||||
string_decoder "~1.1.1"
|
string_decoder "~1.1.1"
|
||||||
util-deprecate "~1.0.1"
|
util-deprecate "~1.0.1"
|
||||||
|
|
||||||
readable-stream@^3.0.6, readable-stream@^3.1.1:
|
readable-stream@^3.0.6, readable-stream@^3.1.1, readable-stream@^3.4.0:
|
||||||
version "3.6.0"
|
version "3.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
|
||||||
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
|
||||||
|
@ -11114,6 +11234,27 @@ tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
|
||||||
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
|
||||||
|
|
||||||
|
tar-fs@2.1.1:
|
||||||
|
version "2.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784"
|
||||||
|
integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==
|
||||||
|
dependencies:
|
||||||
|
chownr "^1.1.1"
|
||||||
|
mkdirp-classic "^0.5.2"
|
||||||
|
pump "^3.0.0"
|
||||||
|
tar-stream "^2.1.4"
|
||||||
|
|
||||||
|
tar-stream@^2.1.4:
|
||||||
|
version "2.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287"
|
||||||
|
integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==
|
||||||
|
dependencies:
|
||||||
|
bl "^4.0.3"
|
||||||
|
end-of-stream "^1.4.1"
|
||||||
|
fs-constants "^1.0.0"
|
||||||
|
inherits "^2.0.3"
|
||||||
|
readable-stream "^3.1.1"
|
||||||
|
|
||||||
teeny-request@^7.1.3:
|
teeny-request@^7.1.3:
|
||||||
version "7.2.0"
|
version "7.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.2.0.tgz#41347ece068f08d741e7b86df38a4498208b2633"
|
resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-7.2.0.tgz#41347ece068f08d741e7b86df38a4498208b2633"
|
||||||
|
@ -11151,6 +11292,11 @@ text-table@^0.2.0:
|
||||||
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
|
||||||
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
|
||||||
|
|
||||||
|
through@^2.3.8:
|
||||||
|
version "2.3.8"
|
||||||
|
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||||
|
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
|
||||||
|
|
||||||
thunkify@^2.1.2:
|
thunkify@^2.1.2:
|
||||||
version "2.1.2"
|
version "2.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
|
resolved "https://registry.yarnpkg.com/thunkify/-/thunkify-2.1.2.tgz#faa0e9d230c51acc95ca13a361ac05ca7e04553d"
|
||||||
|
@ -11374,6 +11520,14 @@ unbox-primitive@^1.0.2:
|
||||||
has-symbols "^1.0.3"
|
has-symbols "^1.0.3"
|
||||||
which-boxed-primitive "^1.0.2"
|
which-boxed-primitive "^1.0.2"
|
||||||
|
|
||||||
|
unbzip2-stream@1.4.3:
|
||||||
|
version "1.4.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7"
|
||||||
|
integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==
|
||||||
|
dependencies:
|
||||||
|
buffer "^5.2.1"
|
||||||
|
through "^2.3.8"
|
||||||
|
|
||||||
undefsafe@^2.0.5:
|
undefsafe@^2.0.5:
|
||||||
version "2.0.5"
|
version "2.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
|
resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c"
|
||||||
|
@ -11986,6 +12140,11 @@ write-file-atomic@^3.0.0:
|
||||||
signal-exit "^3.0.2"
|
signal-exit "^3.0.2"
|
||||||
typedarray-to-buffer "^3.1.5"
|
typedarray-to-buffer "^3.1.5"
|
||||||
|
|
||||||
|
ws@8.8.1:
|
||||||
|
version "8.8.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0"
|
||||||
|
integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==
|
||||||
|
|
||||||
ws@>=7.4.6:
|
ws@>=7.4.6:
|
||||||
version "8.6.0"
|
version "8.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.6.0.tgz#e5e9f1d9e7ff88083d0c0dd8281ea662a42c9c23"
|
resolved "https://registry.yarnpkg.com/ws/-/ws-8.6.0.tgz#e5e9f1d9e7ff88083d0c0dd8281ea662a42c9c23"
|
||||||
|
@ -12066,6 +12225,14 @@ yargs@^16.2.0:
|
||||||
y18n "^5.0.5"
|
y18n "^5.0.5"
|
||||||
yargs-parser "^20.2.2"
|
yargs-parser "^20.2.2"
|
||||||
|
|
||||||
|
yauzl@^2.10.0:
|
||||||
|
version "2.10.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
|
||||||
|
integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==
|
||||||
|
dependencies:
|
||||||
|
buffer-crc32 "~0.2.3"
|
||||||
|
fd-slicer "~1.1.0"
|
||||||
|
|
||||||
yn@3.1.1:
|
yn@3.1.1:
|
||||||
version "3.1.1"
|
version "3.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user