new design

This commit is contained in:
Belle 2023-04-27 15:23:39 -04:00
parent f8d166e647
commit 71378ff940
8 changed files with 1421 additions and 252 deletions

View file

@ -57,9 +57,13 @@ const Base = styled('a')`
${scrolled};
`
const Flag = props => (
const Flag = ({props}) => (
<Link href="/" passHref>
<Base href="https://hackclub.com/" title="Homepage" {...props} />
<Base
href="https://hackclub.com/"
title="Homepage"
{...props}
/>
</Link>
)

View file

@ -1,8 +1,5 @@
# Hackers Wanted
Some people are allergic to unthinking rules and outdated systems. They want the world to be better, more magical, more free. Some also have the creative energy to do something about it—without the need for instructions, and without needing to be asked. These people are hackers. This is our love letter to them, on behalf of a society thats long failed them.
Some of us have always been overlooked, misunderstood, underappreciated; looked at with wariness instead of wonder; set aside instead of embraced.
Throughout most of history, this has been the fate of the hacker. Though no society has ever suffered from having too many—and indeed many have failed their potential by nurturing too few—weve been slow to free hackers to do great things.
@ -15,10 +12,8 @@ But for all their qualities—their drive, their ingenuity, their stubborn persi
Hollywood and headlines have long been unkind to hackers. The popular image is of shadowy misfits who break into sensitive networks to steal things or hold them hostage—or just to prove that they can.
Its not that hackers dont do those things, or that those who do should have a different name. But when we distinguish between good and bad hackers as “white hats” or “black hats” were missing the more basic point: the bad ones are just young people we failed, mostly by never asking them to do something great.
Hackers need challenges equal to their gifts, and opportunities equal to their ambitions. Else theyll grow frustrated and find themselves throwing their talents at whatever or whomever offers the most money or status—which can lead them to dark and tragic places.
But this is our problem as much as theirs. More, really. Hackers are a precious natural resource, the lifeblood of our best futures. While we cant create or micromanage them, we can—and must—support them in healthy directions.
@ -92,11 +87,11 @@ You can be a lone wolf sometimes. But youll go further in a pack.
Hackers cant be taught really. They take ownership over their own education. When they find an interesting problem, they figure out what they need to learn and they pursue it with an enthusiasm that we mostly know now only from long memory. We can ensure that the available curriculum is good; we cant make them read it, nor determine how theyll read it.
But this isnt to say they arent teachable, at least in the sense of taking direction and feedback. They just see the world differently. As we should hope they do.
The great challenges of our times were shaped in part by our past responses to them. If we truly want to solve them, we need to be willing to turn them over to those who perceive them differently, who can approach them from new angles, with more energy and less baggage.
Put another way, we need to let hackers hack.
Put another way, we need to let hackers hack.
So consider this a giant sign in the window: Hackers Wanted. We see you, whether youre in a Bay Area garage or a rural village that the rest of the world cant find on the map. We value you. We want to stand alongside you as you build things—crazy, useful, beautiful things; things we may not even understand until you teach us.
The door is open.
The door is open.

View file

@ -166,7 +166,7 @@ const ToggleContainer = styled(Flex)`
}
`
function Header({ unfixed, color, bgColor, dark, fixed, ...props }) {
function Header({ unfixed, color, bgColor, dark, fixed, flag, ...props }) {
const [scrolled, setScrolled] = useState(false)
const [toggled, setToggled] = useState(false)
const [mobile, setMobile] = useState(false)

View file

@ -36,6 +36,7 @@
"geopattern": "^1.2.3",
"globby": "^11.0.4",
"graphql": "^16.6.0",
"gsap": "^3.11.5",
"js-confetti": "^0.11.0",
"lodash": "^4.17.21",
"next": "^12.3.1",

File diff suppressed because one or more lines are too long

330
pages/hackers.js Normal file
View file

@ -0,0 +1,330 @@
import { Box, Image, Button, Flex, Text } from 'theme-ui'
// import styles from '@sakun/system.css'
import ForceTheme from '../components/force-theme'
import Meta from '@hackclub/meta'
import Head from 'next/head'
import styles from '../styles/Home.module.css'
import Hackers from '../components/hackers-wanted/letter.mdx'
import React, { useEffect, useState } from 'react'
import { useSession, getSession, signIn, signOut } from 'next-auth/react'
import Github from 'next-auth/providers/github'
import useSWR from 'swr'
import fetcher from '../lib/fetcher'
import { Fade } from 'react-reveal'
import HButton from '../components/hackers-wanted/button'
/** @jsxImportSource theme-ui */
const styled = `
::-webkit-scrollbar {
background-color: #fff;
width: 22px;
}
::-webkit-scrollbar-track {
background: linear-gradient(
45deg,
#000 25%,
transparent 0,
transparent 75%,
#000 0,
#000
),
linear-gradient(
45deg,
#000 25%,
transparent 0,
transparent 75%,
#000 0,
#000
);
background-color: #fff;
background-position: 0 0, 2px 2px;
background-size: 4px 4px;
border-left: 3px solid #000;
width: 10px;
}
::-webkit-scrollbar-thumb {
background-color: #fff;
border: 2px solid #000;
border-right: none;
box-sizing: content-box;
width: 20px;
}
::-webkit-scrollbar-button:horizontal:end:increment,
::-webkit-scrollbar-button:horizontal:start:decrement,
::-webkit-scrollbar-button:vertical:end:increment,
::-webkit-scrollbar-button:vertical:start:decrement {
display: block;
}
::-webkit-scrollbar-button:vertical:start {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M.5.5h21v22.375H.5z'/%3E%3Cpath fill='%23000' d='M1 23h20v-2H1zM1.375 12.375h5.5V11h-5.5zM6.875 17.875h6.875V16.5H6.875zM6.875 17.875v-5.5H5.5v5.5zM9.625 5.5V4.125H8.25V5.5zM11 4.125V2.75H9.625v1.375zM19.25 12.375V11h-1.375v1.375zM17.875 11V9.625H16.5V11zM16.5 9.625V8.25h-1.375v1.375zM15.125 8.25V6.875H13.75V8.25zM13.75 6.875V5.5h-1.375v1.375zM12.375 5.5V4.125H11V5.5zM8.25 6.875V5.5H6.875v1.375zM6.875 8.25V6.875H5.5V8.25zM5.5 9.625V8.25H4.125v1.375zM4.125 11V9.625H2.75V11z'/%3E%3Cpath fill='%23000' d='M2.75 12.375V11H1.375v1.375zM15.125 17.875v-5.5H13.75v5.5zM13.75 12.375h5.5V11h-5.5z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
height: 23.38px;
}
::-webkit-scrollbar-button:vertical:start:active {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M.5.5h21v22.38H.5z'/%3E%3Cpath fill='%23000' d='M1 23.005h20v-2H1zM1.375 12.378h5.5v-1.375h-5.5zM6.875 17.879h6.875V6.877H6.875zM6.875 17.879v-5.501H5.5v5.5zM9.625 5.501V4.126H8.25v1.375zM11 4.126V2.75H9.625v1.375zM19.25 12.378v-1.375h-1.375v1.375zM17.875 11.002V9.627H13.75v1.375zM16.5 9.627V8.252h-2.75v1.375zM15.125 8.252V6.877H13.75v1.375zM13.75 6.876V5.501h-1.375v1.375zM12.375 5.501V4.126h-2.75v1.375zM12.375 6.876V5.501h-5.5v1.375zM6.875 8.252V6.877H5.5v1.375zM6.875 9.627V8.252h-2.75v1.375zM6.875 11.002V9.627H2.75v1.375z'/%3E%3Cpath fill='%23000' d='M2.75 12.378v-1.375H1.375v1.375zM15.125 17.879v-5.501H13.75v5.5zM13.75 12.378h5.5v-1.375h-5.5z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
height: 23.38px;
}
::-webkit-scrollbar-button:vertical:end {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M.5 22.875h21V.5H.5z'/%3E%3Cpath fill='%23000' d='M1 .375h20v2H1zM1.375 11h5.5v1.375h-5.5zM6.875 5.5h6.875v1.375H6.875zM6.875 5.5V11H5.5V5.5zM9.625 17.875v1.375H8.25v-1.375zM11 19.25v1.375H9.625V19.25zM19.25 11v1.375h-1.375V11zM17.875 12.375v1.375H16.5v-1.375zM16.5 13.75v1.375h-1.375V13.75zM15.125 15.125V16.5H13.75v-1.375zM13.75 16.5v1.375h-1.375V16.5zM12.375 17.875v1.375H11v-1.375zM8.25 16.5v1.375H6.875V16.5zM6.875 15.125V16.5H5.5v-1.375zM5.5 13.75v1.375H4.125V13.75zM4.125 12.375v1.375H2.75v-1.375z'/%3E%3Cpath fill='%23000' d='M2.75 11v1.375H1.375V11zM15.125 5.5V11H13.75V5.5zM13.75 11h5.5v1.375h-5.5z'/%3E%3C/svg%3E");
height: 23.38px;
}
::-webkit-scrollbar-button:vertical:end:active {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='22' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M.5 22.88h21V.5H.5z'/%3E%3Cpath fill='%23000' d='M1 .375h20v2H1zM1.375 11.002h5.5v1.375h-5.5zM6.875 5.501h6.875v11.002H6.875zM6.875 5.501v5.501H5.5v-5.5zM9.625 17.879v1.375H8.25v-1.375zM11 19.254v1.375H9.625v-1.375zM19.25 11.002v1.375h-1.375v-1.375zM17.875 12.378v1.375H13.75v-1.375zM16.5 13.753v1.375h-2.75v-1.375zM15.125 15.128v1.375H13.75v-1.375zM13.75 16.503v1.375h-1.375v-1.375zM12.375 17.879v1.375h-2.75v-1.375zM12.375 16.503v1.375h-5.5v-1.375zM6.875 15.128v1.375H5.5v-1.375zM6.875 13.753v1.375h-2.75v-1.375zM6.875 12.378v1.375H2.75v-1.375z'/%3E%3Cpath fill='%23000' d='M2.75 11.002v1.375H1.375v-1.375zM15.125 5.501v5.501H13.75v-5.5zM13.75 11.002h5.5v1.375h-5.5z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
height: 23.38px;
}
::-webkit-scrollbar-button:horizontal:start {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M.813 22.187v-21h22.375v21z'/%3E%3Cpath fill='%23000' d='M23.313 21.688v-20h-2v20zM12.688 21.313v-5.5h-1.376v5.5zM18.188 15.813V8.936h-1.375v6.876z'/%3E%3Cpath fill='%23000' d='M18.188 15.813h-5.5v1.374h5.5zM5.813 13.063H4.438v1.374h1.375zM4.438 11.688H3.063v1.374h1.374zM12.688 3.438h-1.376v1.374h1.376zM11.313 4.813H9.937v1.375h1.376zM9.938 6.188H8.562v1.375h1.376zM8.563 7.563H7.187v1.375h1.375zM7.188 8.938H5.813v1.374h1.375zM5.813 10.313H4.438v1.374h1.375zM7.188 14.438H5.813v1.374h1.375zM8.563 15.813H7.187v1.374h1.375zM9.938 17.188H8.562v1.375h1.376zM11.313 18.563H9.937v1.375h1.376zM12.688 19.938h-1.376v1.375h1.376zM18.188 7.563h-5.5v1.375h5.5z'/%3E%3Cpath fill='%23000' d='M12.688 8.938v-5.5h-1.376v5.5z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
height: 23.38px;
}
::-webkit-scrollbar-button:horizontal:start:active {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M.81 22.19v-21h22.38v21z'/%3E%3Cpath fill='%23000' d='M23.315 21.69v-20h-2v20zM12.688 21.315v-5.5h-1.375v5.5zM18.189 15.815V8.94H7.187v6.875z'/%3E%3Cpath fill='%23000' d='M18.189 15.815h-5.501v1.375h5.5zM5.811 13.065H4.436v1.375h1.375zM4.436 11.69H3.06v1.375h1.375zM12.688 3.44h-1.375v1.375h1.375zM11.312 4.815H9.937V8.94h1.375zM9.937 6.19H8.562v2.75h1.375z'/%3E%3Cpath fill='%23000' d='M8.562 7.565H7.187V8.94h1.375zM7.186 8.94H5.811v1.375h1.375zM5.811 10.315H4.436v2.75h1.375zM7.186 10.315H5.811v5.5h1.375zM8.562 15.815H7.187v1.375h1.375z'/%3E%3Cpath fill='%23000' d='M9.937 15.815H8.562v2.75h1.375zM11.312 15.815H9.937v4.125h1.375zM12.688 19.94h-1.375v1.375h1.375zM18.189 7.565h-5.501V8.94h5.5z'/%3E%3Cpath fill='%23000' d='M12.688 8.94v-5.5h-1.375v5.5z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
height: 23.38px;
}
::-webkit-scrollbar-button:horizontal:end {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M23.188 22.188v-21H.813v21z'/%3E%3Cpath fill='%23000' d='M.688 21.687v-20h2v20zM11.313 21.312v-5.5h1.375v5.5zM5.813 15.812V8.937h1.375v6.875zM5.813 15.813h5.5v1.375h-5.5zM18.188 13.063h1.375v1.375h-1.375zM19.563 11.688h1.375v1.375h-1.375zM11.313 3.438h1.375v1.375h-1.375zM12.688 4.813h1.375v1.375h-1.375zM14.063 6.188h1.375v1.375h-1.375zM15.438 7.563h1.375v1.375h-1.375zM16.813 8.938h1.375v1.375h-1.375zM18.188 10.313h1.375v1.375h-1.375zM16.813 14.438h1.375v1.375h-1.375zM15.438 15.813h1.375v1.375h-1.375zM14.063 17.188h1.375v1.375h-1.375zM12.688 18.563h1.375v1.375h-1.375z'/%3E%3Cpath fill='%23000' d='M11.313 19.938h1.375v1.375h-1.375zM5.813 7.563h5.5v1.375h-5.5zM11.313 8.937v-5.5h1.375v5.5z'/%3E%3C/svg%3E");
height: 23.38px;
}
::-webkit-scrollbar-button:horizontal:end:active {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='23' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='%23fff' stroke='%23000' d='M23.19 22.19v-21H.81v21z'/%3E%3Cpath fill='%23000' d='M.685 21.69v-20h2v20zM11.312 21.315v-5.5h1.375v5.5zM5.811 15.815V8.94h11.002v6.875z'/%3E%3Cpath fill='%23000' d='M5.811 15.815h5.501v1.375H5.811zM18.189 13.065h1.375v1.375h-1.375zM19.564 11.69h1.375v1.375h-1.375zM11.312 3.44h1.375v1.375h-1.375zM12.688 4.815h1.375V8.94h-1.375zM14.063 6.19h1.375v2.75h-1.375zM15.438 7.565h1.375V8.94h-1.375zM16.814 8.94h1.375v1.375h-1.375zM18.189 10.315h1.375v2.75h-1.375zM16.814 10.315h1.375v5.5h-1.375zM15.438 15.815h1.375v1.375h-1.375zM14.063 15.815h1.375v2.75h-1.375zM12.688 15.815h1.375v4.125h-1.375zM11.312 19.94h1.375v1.375h-1.375zM5.811 7.565h5.501V8.94H5.811z'/%3E%3Cpath fill='%23000' d='M11.312 8.94v-5.5h1.375v5.5z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
height: 23.38px;
}
body {
background: linear-gradient(90deg, #fff 21px, transparent 1%) 50%,
linear-gradient(#fff 21px, transparent 1%) 50%, #000;
background-attachment: fixed;
background-size: 22px 22px;
min-height: 100vh;
min-width: 100vw;
margin: 0;
padding: 0;
overflow-x: hidden;
}
a {
color: #000;
text-decoration: underline;
}
hr {
border-top: 0.15em solid #000;
}
.heading,
h1 {
font-size: 1em;
}
.heading,
h1,
h2 {
font-family: Chicago;
}
h2 {
font-size: 2em;
}
p, ol {
font-family: Geneva;
}
di h1 {
color: #0000 !important;
background:
linear-gradient(-90deg,#000 5px,#0000 0) 10px 0,
linear-gradient(#000 0 0) 0 0;
background-size:calc(20*1ch) 200%;
-webkit-background-clip: text;
background-clip: text;
background-repeat:no-repeat;
animation:
t 3s steps(14) forwards;
}
di p, ol {
color: #0000 !important;
background:
linear-gradient(-90deg,#000 5px,#0000 0) 5px 0,
linear-gradient(#000 0 0) 0 0;
background-size:calc(300*1ch) 200%;
-webkit-background-clip: text;
background-clip: text;
background-repeat:no-repeat;
animation:
t calc(300*.04s) steps(300) forwards;
}
@keyframes t{
0% {background-size:0 200%;}
12% {background-size:0 200%;}
}
`
const Hack = ({ children, ...props }) => {
return (
<Fade>
<Box
as="a"
href={`https://github.com/${children}`}
sx={{ padding: '0px 8px', margin: 0, textDecoration: 'none' }}
>
@{children}
</Box>
</Fade>
)
}
const Page = () => {
const { data: hackers } = useSWR(
'https://airbridge.hackclub.com/v0.1/Hackers%20Wanted/hackers',
fetcher,
{ refreshInterval: 1000 }
)
console.log(hackers)
const { data: session, status } = useSession()
async function sign() {
if (status == 'authenticated') {
await fetch('/api/hackers-wanted', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
Username: session.user.name,
Email: session.user.email
})
})
}
}
return (
<>
<ForceTheme theme="light" />
<Meta
as={Head}
title="Hackers Wanted"
description="The Hack Club community regularly gathers on Slack Huddles and Zoom calls to show off what were working on & hang out."
image="https://cloud-r4rrjh2z8-hack-club-bot.vercel.app/52020-07-25_52g0nw40p2b00dh39mt93xq5ubku6yaj.jpeg"
/>
<Box
sx={{ display: 'flex', justifyContent: 'space-between', gap: '32px' }}
>
<Box
sx={{
position: 'sticky',
top: '18px',
left: '18px',
height: '100vh',
minWidth: '200px',
maxWidth: '250px'
}}
>
<Box
className={styles.window}
sx={{
position: 'relative',
height: 'calc(100vh - 64px - 230px)',
display: 'flex',
width: '100%',
boxShadow: '4px 4px #434343'
// overflow: 'scroll'
}}
>
<Text className={styles.titlebar}>
<Text className={styles.title} as="h1">
<Image
src="https://cloud-prhr6mr92-hack-club-bot.vercel.app/0dither_it_flag-standalone-bw__5___1_.png"
layout="responsive"
width={50}
sx={{ textAlign: 'center' }}
/>
</Text>
</Text>
<Box>
<Box className={styles.separator}>
<Box className={styles.windowpane} sx={{ minWidth: '200px' }}>
<Text as="p" className={styles.hackers}>
{status == 'authenticated' ? (
<></>
) : (
<button
className={styles.btn}
onClick={() => {
signIn('github')
sign()
}}
sx={{
my: 2
}}
>
Sign
</button>
)}
<Text
sx={{
fontSize: '1.1em',
fontFamily: 'Chicago',
display: 'block'
}}
>
With love,
</Text>
<Flex sx={{ flexWrap: 'wrap' }}>
{hackers &&
hackers.map(e => <Hack>{e.fields.username}</Hack>)}
</Flex>
</Text>
</Box>
</Box>
</Box>
</Box>
<Box
sx={{
display: 'flex',
flexWrap: 'wrap',
width: '100%',
height: '240px',
mt: '24px'
}}
>
<HButton link="a" sx={{ width: '50%', height: '50%', mt: 0, background: '#000', color: '#fff' }} className={styles.loadOne}>
Sign
</HButton>
<HButton link="a" sx={{ width: '50%', height: '50%', mt: 0 }} className={styles.loadTwo}>
Mail me this manifesto
</HButton>
<HButton link="a" sx={{ width: '50%', height: '50%', mt: 0 }} className={styles.loadThree}>
Join the chatroom
</HButton>
<HButton link="a" sx={{ width: '50%', height: '50%', mt: 0 }} className={styles.loadFour}>
Hi
</HButton>
</Box>
</Box>
<Box
className={styles.standarddialog}
sx={{
marginTop: '18px',
marginBottom: '26px',
marginRight: '20px',
p: 3,
flex: 1,
'& p, ol': {
width: '80%'
}
}}
>
<Box as="di">
<Hackers />
</Box>
</Box>
</Box>
<style>{styled}</style>
</>
)
}
export default Page

View file

@ -15,3 +15,18 @@
font-family: Geneva_9;
src: url(https://cloud-mfs6bhw8p-hack-club-bot.vercel.app/1finderskeepers.woff) format('woff');
}
@font-face {
font-family: Redaction;
src: url(https://cloud-a1btd0ouf-hack-club-bot.vercel.app/0redaction-regular.woff2) format(woff2);
}
@font-face {
font-family: Space_Grotesk;
src: url(https://cloud-lrrf7ozlc-hack-club-bot.vercel.app/0spacegrotesk_wght_.woff2) format('woff2');
}
@font-face {
font-family: Terminal_Grotesk;
src: url("https://type.cargo.site/files/TerminalGrotesque.woff") format("woff");
}

View file

@ -385,7 +385,7 @@
"@emotion/is-prop-valid@^0.8.1":
version "0.8.8"
resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz"
resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a"
integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==
dependencies:
"@emotion/memoize" "0.7.4"
@ -2641,6 +2641,11 @@ graphql@^16.6.0:
resolved "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz"
integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==
gsap@^3.11.5:
version "3.11.5"
resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.11.5.tgz#97ef65091f43868be387803f9db277e8cd5bd041"
integrity sha512-Q89nKCLgoX5xUjznh9LcaIUkz54k1voNucT1Rpf9SJNFIQznBwFqt5qUUQbeVInFyN/n18OUJkpeI6CNEDt74w==
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"