coki-oa-web
COKI Open Access Dashboard Web Application
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.2%) to scientific vocabulary
Repository
COKI Open Access Dashboard Web Application
Basic Info
- Host: GitHub
- Owner: The-Academic-Observatory
- License: apache-2.0
- Language: TypeScript
- Default Branch: develop
- Homepage: https://open.coki.ac/
- Size: 2.99 MB
Statistics
- Stars: 9
- Watchers: 5
- Forks: 2
- Open Issues: 6
- Releases: 37
Metadata Files
README.md
COKI Open Access Website
COKI Open Access Website is the Next.js based front end and Cloudflare Workers backend for the Curtin Open Knowledge Initiative's Open Access Dashboard: open.coki.ac
- Requirements
- Web App Development
- REST API Development
- Configuring GitHub Actions
- REST API Endpoints
- Contributors
- License
1. Requirements
OS Requirements
- Linux, Windows or MacOS.
- NodeJS 20: https://nodejs.org/en/
- yarn 4: https://yarnpkg.com/getting-started/install
- Install system dependencies:
sudo apt-get -y install libc++1 unzip(libc++1 may be required for Wrangler 3) - Vercel CLI:
npm install --global vercel
Preparing Data Files
The data for the COKI OA Website is generated by the oawebworkflow. Apache Airflow workflow. This workflow needs to be run first to produce the data files that will be visualised by the website. Normally the following steps are performed automatically by the workflow when the website is built and deployed, however, during development this needs to be done manually.
From the Google Cloud Storage bucket, download the v10/data.zip file, saving it in the ./data folder of the project.
Run the ./bin/data.sh . script, which will extract the data files and copy them to the right places
(this will also run on Windows).
2. Web App Development
See below for instructions specific to running the web application.
Install dependencies
Install dependencies:
bash
yarn install
Running Development Server
To load the local database:
bash
cd workers-api
yarn build # Creates ../data/data/db.sql
wrangler d1 execute DB --file ../data/data/db.sql --local --config wrangler.local.toml
Run the development server:
bash
cd ../dashboard
yarn dev
Then, open http://localhost:3000 with your browser to see the result.
Running tests
Run Jest unit tests:
bash
yarn test:jest
Install playwright for end-to-end tests:
bash
npx playwright install-deps
npx playwright install
npx playwright install msedge
Runs playwright end-to-end tests:
bash
yarn test:e2e
Build & Deploy
Export environment variables:
bash
export COKI_ENVIRONMENT=develop
export COKI_SITE_URL=https://develop.open.coki.ac
export COKI_API_URL=https://develop.api.coki.ac
Make sure that COKI_API_URL is pointing to a running version of the API, as it will be used during the build process.
Deploy Preview
Make sure that you are in the dashboard directory.
Pull preview project config:
bash
vercel pull --environment=preview
Build project:
bash
vercel build
Deploy preview:
bash
vercel deploy --prebuilt
Deploy Production
Pull production project config:
bash
vercel pull --environment=production
Build production project:
bash
vercel build --prod
Deploy to production:
bash
vercel deploy --prebuilt --prod
3. REST API Development
See below for instructions specific to running the workers-api REST API.
Enter the workers-api folder:
bash
cd ./workers-api
Running Development Server
Run the development server. This uses Miniflare to simulate Cloudflare Workers functionality.
bash
yarn dev
Then, open http://127.0.0.1:8787/search/curtin with your browser or CURL to see the result of an API call.
Running tests
Runs Jest unit tests:
bash
yarn test:e2e
Build & Deploy
Customise your wrangler.toml file, see wrangler.example.toml: ```toml name = "coki-oa-web-api" accountid = "my-cloudflare-account-id" compatibilitydate = "2022-02-03"
[build] command = "yarn run build"
[site] bucket = "./public"
[env.develop] route = "my-develop-domain/*"
[env.staging] route = "my-staging-domain/*"
[env.production] route = "my-production-domain/*" ```
Make sure you are in the workers-api directory.
Build & deploy to develop:
bash
yarn run wrangler deploy -e develop
Build & deploy to staging:
bash
yarn run wrangler deploy -e staging
Build & deploy to production:
bash
yarn run wrangler deploy -e production
Rendering Social Cards
This will be removed when card generation is performed by the workflow or the API.
To render the cards:
bash
sudo apt-get install libgtk-3-dev libasound2
cd ./social-cards
npx puppeteer browsers install firefox
PUPPETEER_PRODUCT=firefox
yarn render
The social cards are saved in workers-images/public/social-cards.
* Make a zip file of the social-cards folder.
* Upload it to the coki-oa-web-data Google Cloud Storage Bucket. The cards will then be
built into the latest.zip file by the Airflow workflow.
To manually view the social cards, start the local webserver and navigate to the following routes: * /cards/country/[COUNTRY ID] * /cards/institution/[ROR ID]
Making Icons
Download the Adobe Illustrator icons-final.ai file. * Add your icon as a new artboard, it should be 64x64px in size. * File > Export for Screens > Format SVG, Export Artboard. * Open the IcoMoon App: https://icomoon.io/app/#/select. * Click "Import Icons" and choose components/common/selection.json. * Update or add your new icon. * Select the icons you want to export. * Click the "Generate Font" tab. * Click Download. * Get the selections.json file out of the downloaded file and replace the old selections.json file.
4. Configuring GitHub Actions
The following GitHub Secrets need to be created:
- GCP_CREDENTIALS: credentials for gsutil.
- BUCKET_NAME: the name of the Google Cloud Storage bucket that contains the data files.
- WRANGLER_CONFIG: the Cloudflare Wrangler configuration file.
- WRANGLERCONFIGAPI: the Cloudflare Wrangler configuration file for the workers-api Cloudflare Worker.
- CLOUDFLAREAPITOKEN: the Cloudflare API Token.
See below for instructions on how to set these up.
wrangler.toml
Two wrangler.toml files need to be created, one for the Web App Cloudflare Worker and one for the API Cloudflare Worker.
For the web app, see the wrangler.example.toml file for an example of how to create the wrangler.toml file. Add the file to the WRANGLER_CONFIG GitHub Secret.
For the API, see workers-api/wrangler.example.toml file for an example of how to create the wrangler.toml file. Add the file to the WRANGLERCONFIGAPI GitHub Secret.
Cloudflare API Token
This connection contains Cloudflare API token that enables Wrangler to publish the Open Access Website to Cloudflare. See Cloudflare Creating API tokens for instructions on how to create a Cloudflare API token. The Cloudflare API token is already URL encoded. The required settings for the token are listed below.
Permissions: * Account, Workers KV Storage:Edit * Account, Workers Scripts:Edit * Account, Account Settings:Read * User, User Details:Read * Zone, Workers Routes: Edit
Account Resources: * Include,
Zone Resources: * Include, Specific zone:
yaml
cloudflare_api_token: http://:<cloudflare_api_token>@
External references
5. REST API Endpoints
The COKI Open Access REST API offers a full text search endpoint for identifying countries and institutions based on their names. Additionally, the API provides filtering capabilities that allow users to find a range of countries and institutions that match specified parameters such as region, subregion, open access percentage, and number of outputs. Detailed information about individual countries and institutions can be retrieved using dedicated endpoints.
The data available through the REST API is copyrighted by Curtin University and licensed under the
Creative Commons Attribution 4.0 International License,
except the data in the description.text fields. These are licensed under the
Creative Commons Attribution-ShareAlike 3.0 Unported License, as they are derived from Wikipedia.
Search
Search for countries and institutions by name.
GET /search/:text
| Parameter | Description |
|:----------------|---------------------------------------------------------------------------------|
| :text | The url encoded name or partial name of a country or institution to search for. |
| Query Parameter | Description |
|:-----------------|----------------------------------------------------|
| page[number] | The page number starting at 0. Default value of 0. |
| limit[number] | The number of items per page. |
Sample Request
bash
curl https://api.coki.ac/search/curtin%20university
Sample Response
json
{
"items": [
{
"id": "02n415q13",
"name": "Curtin University",
"logo_sm": "logos/institution/sm/02n415q13.jpg",
"entity_type": "institution",
"country_name": "Australia",
"country_code": "AUS",
"subregion": "Australia and New Zealand",
"region": "Oceania",
"institution_type": "Education",
"stats": {
"n_outputs": 42938,
"n_outputs_open": 18388,
"p_outputs_open": 42.824537705528904,
"p_outputs_publisher_open_only": 8,
"p_outputs_both": 16,
"p_outputs_other_platform_open_only": 19,
"p_outputs_closed": 57
}
}
],
"nItems": 1,
"page": 0,
"limit": 18
}
Country
Get the full details for a country.
GET /country/:id
| Parameter | Description |
|:----------|----------------------------------|
| :id | A three letter country ISO code. |
Sample Request
bash
curl https://api.coki.ac/country/NZL
Sample Response
json
{
"id": "NZL",
"name": "New Zealand",
"description": {
"text": "New Zealand is an island country in the southwestern Pacific Ocean. It consists of two main landmasses\u2014the North Island and the South Island\u2014and over 700 smaller islands. It is the sixth-largest island country by area, covering 268,021 square kilometres.",
"license": "https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License",
"url": "https://en.wikipedia.org/wiki/New_Zealand"
},
"entity_type": "country",
"logo_sm": "logos/country/sm/NZL.svg",
"logo_md": "logos/country/md/NZL.svg",
"logo_lg": "logos/country/md/NZL.svg",
"wikipedia_url": "https://en.wikipedia.org/wiki/New_Zealand",
"region": "Oceania",
"subregion": "Australia and New Zealand",
"start_year": 2000,
"end_year": 2021,
"stats": {
"n_citations": 5634926,
"n_outputs": 214124,
"n_outputs_open": 75448,
...
},
"years": [
{
"year": 2000,
"date": "2000-12-31",
"stats": {
"n_citations": 176810,
"n_outputs": 3463,
"n_outputs_open": 668,
...
}
},
...
],
"repositories": [
{
"id": "PubMed Central",
"total_outputs": 24570,
"category": "Domain",
"home_repo": false
},
{
"id": "Europe PMC",
"total_outputs": 19203,
"category": "Domain",
"home_repo": false
},
{
"id": "Semantic Scholar",
"total_outputs": 5851,
"category": "Public",
"home_repo": false
},
...
]
}
Institution
Get the full details for an institution.
GET /institution/:id
| Parameter | Description |
|:----------|--------------------------------|
| :id | The ROR ID of the institution. |
Sample Request
bash
curl https://api.coki.ac/institution/030cszc07
Sample Response
json
{
"id": "030cszc07",
"name": "Australian Astronomical Observatory",
"description": {
"text": "The Australian Astronomical Observatory, formerly the Anglo-Australian Observatory, was an optical and near-infrared astronomy observatory with its headquarters in North Ryde in suburban Sydney, Australia.",
"license": "https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License",
"url": "https://en.wikipedia.org/wiki/Australian_Astronomical_Observatory"
},
"entity_type": "institution",
"logo_sm": "logos/institution/sm/030cszc07.jpg",
"logo_md": "logos/institution/md/030cszc07.jpg",
"logo_lg": "logos/institution/lg/030cszc07.png",
"url": "http://www.aao.gov.au/",
"wikipedia_url": "https://en.wikipedia.org/wiki/Australian_Astronomical_Observatory",
"region": "Oceania",
"subregion": "Australia and New Zealand",
"country_name": "Australia",
"country_code": "AUS",
"institution_type": "Facility",
"start_year": 2000,
"end_year": 2021,
"stats": {
"n_citations": 72555,
"n_outputs": 1243,
"n_outputs_open": 1115,
...
},
"years": [
{
"year": 2000,
"date": "2000-12-31",
"stats": {
"n_citations": 171,
"n_outputs": 3,
"n_outputs_open": 2,
...
}
},
...
],
"acronyms": [
"AAO"
],
"repositories": [
{
"id": "arXiv",
"total_outputs": 1101,
"category": "Preprint",
"home_repo": false
},
{
"id": "Australian National University - ANU Open Research",
"total_outputs": 247,
"category": "Institution",
"home_repo": false
},
{
"id": "University College London - UCL Discovery",
"total_outputs": 194,
"category": "Institution",
"home_repo": false
},
...
]
}
Countries
Return a paginated list of countries and optionally filter them.
GET /countries
The countries endpoint uses optional query parameters rather than path parameters.
| Query Parameter | Description |
|:--------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| page[number] | The page number starting at 0. Default value of 0. |
| limit[number] | The number of items per page. Default value of 18. |
| orderBy[string] | What field to order the results by, nested fields are supported. Default value of stats.p_outputs_open. |
| orderDir[string] | What direction to sort results, either ascending asc or descending dsc. Default value of dsc. |
| ids[string] | A list of 3 letter ISO country codes to return specific countries, separated by commas, e.g. ?ids=AUS,NZL. This parameter overrides all other parameters. |
| regions[string] | A list of regions to filter by. These must be URL encoded region names separated by commas, e.g. ?regions=Oceania,Americas. |
| subregions[string] | A list of subregions to filter by. These must be URL encoded subregion names separated by commas, e.g. ?subregions=Southern%20Asia,Latin%20America%20and%20the%20Caribbean |
| minNOutputs[number] | The minimum inclusive number of outputs a country must have to be returned. Default value of 1000. |
| maxNOutputs[number] | The maximum inclusive number of outputs a country must have to be returned. Default value of Number.MAX_VALUE. |
| minPOutputsOpen[number] | The minimum inclusive open access percentage a country must have to be returned. Default value of 0. |
| maxPOutputsOpen[number] | The maximum inclusive open access percentage a country must have to be returned. Default value of 100. |
Query Parameter enumerations:
| Query Parameter | Enumerations |
|:----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| orderDir | asc, dsc. |
| ids | 3 letter ISO country codes. |
| regions | Africa, Americas, Asia, Europe and Oceania. |
| subregions | Australia and New Zealand, Central Asia, Eastern Asia, Eastern Europe, Latin America and the Caribbean, Melanesia, Micronesia, Northern Africa, Northern America, Northern Europe, Polynesia, South-eastern Asia, Southern Asia, Southern Europe, Sub-Saharan Africa, Western Asia, Western Europe. |
Sample Request
bash
curl "https://api.coki.ac/countries?page=0®ions=Oceania"
Sample Response
json
{
"items": [
{
"id": "PNG",
"name": "Papua New Guinea",
"logo_sm": "logos/country/sm/PNG.svg",
"entity_type": "country",
"subregion": "Melanesia",
"region": "Oceania",
"stats": {
"n_outputs": 1964,
"n_outputs_open": 1022,
"p_outputs_open": 52.0366598778004,
"p_outputs_publisher_open_only": 12,
"p_outputs_both": 29,
"p_outputs_other_platform_open_only": 11,
"p_outputs_closed": 48
}
},
{
"id": "AUS",
"name": "Australia",
"logo_sm": "logos/country/sm/AUS.svg",
"entity_type": "country",
"subregion": "Australia and New Zealand",
"region": "Oceania",
"stats": {
"n_outputs": 1397124,
"n_outputs_open": 556603,
"p_outputs_open": 39.839198238667436,
"p_outputs_publisher_open_only": 10,
"p_outputs_both": 17,
"p_outputs_other_platform_open_only": 13,
"p_outputs_closed": 60
}
},
{
"id": "NZL",
"name": "New Zealand",
"logo_sm": "logos/country/sm/NZL.svg",
"entity_type": "country",
"subregion": "Australia and New Zealand",
"region": "Oceania",
"stats": {
"n_outputs": 214072,
"n_outputs_open": 75871,
"p_outputs_open": 35.44181396913188,
"p_outputs_publisher_open_only": 11,
"p_outputs_both": 15,
"p_outputs_other_platform_open_only": 10,
"p_outputs_closed": 64
}
},
...
],
"nItems": 4,
"page": 0,
"limit": 18,
"orderBy": "stats.p_outputs_open",
"orderDir": "dsc"
}
Institutions
Return a paginated list of institutions and optionally filter them.
GET /institutions
The institutions endpoint uses optional query parameters rather than path parameters.
| Query Parameter | Description |
|:---------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| page[number] | The page number starting at 0. Default value of 0. |
| limit[number] | The number of items per page. Default value of 18. |
| orderBy[string] | What field to order the results by, nested fields are supported. Default value of stats.p_outputs_open. |
| orderDir[string] | What direction to sort results, either ascending asc or descending dsc. Default value of dsc. |
| ids[string] | A list of ROR IDs to return specific institutions, separated by commas, e.g. ?ids=02n415q13,03b94tp07. ROR IDs should have the https://ror.org/ stripped. This parameter overrides all other parameters. |
| regions[string] | A list of regions to filter by. These must be URL encoded region names separated by commas, e.g. ?regions=Oceania,Americas. |
| subregions[string] | A list of subregions to filter by. These must be URL encoded subregion names separated by commas, e.g. ?subregions=Southern%20Asia,Latin%20America%20and%20the%20Caribbean |
| institutionTypes[string] | A list of institution types to filter by. These must be institution types separated by commas, e.g. ?institutionTypes=Education,Facility |
| countries[string] | A list of countries that institutions must belong to. These must 3 letter ISO country codes separated by commas, e.g. ?countries=NZL,AUS |
| minNOutputs[number] | The minimum inclusive number of outputs an institution must have to be returned. Default value of 1000. |
| maxNOutputs[number] | The maximum inclusive number of outputs an institution must have to be returned. Default value of Number.MAX_VALUE. |
| minPOutputsOpen[number] | The minimum inclusive open access percentage an institution must have to be returned. Default value of 0. |
| maxPOutputsOpen[number] | The maximum inclusive open access percentage an institution must have to be returned. Default value of 100. |
Query Parameter enumerations:
| Query Parameter | Enumerations |
|:-------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| orderDir | asc, dsc. |
| ids | Any ROR id from: https://ror.org/ with "https://ror.org/" removed from the ID. |
| institutionTypes | Education, Healthcare, Company, Archive, Nonprofit, Government, Facility, Other. |
| regions | Africa, Americas, Asia, Europe and Oceania. |
| subregions | Australia and New Zealand, Central Asia, Eastern Asia, Eastern Europe, Latin America and the Caribbean, Melanesia, Micronesia, Northern Africa, Northern America, Northern Europe, Polynesia, South-eastern Asia, Southern Asia, Southern Europe, Sub-Saharan Africa, Western Asia, Western Europe. |
| countries | 3 letter ISO country codes. |
Sample Request
bash
curl "https://api.coki.ac/institutions?page=0®ions=Oceania&institutionTypes=Facility"
Sample Response
json
{
"items": [
{
"id": "030cszc07",
"name": "Australian Astronomical Observatory",
"logo_sm": "logos/institution/sm/030cszc07.jpg",
"entity_type": "institution",
"country_name": "Australia",
"country_code": "AUS",
"subregion": "Australia and New Zealand",
"region": "Oceania",
"institution_type": "Facility",
"stats": {
"n_outputs": 1243,
"n_outputs_open": 1113,
"p_outputs_open": 89.54143201930812,
"p_outputs_publisher_open_only": 3,
"p_outputs_both": 48,
"p_outputs_other_platform_open_only": 39,
"p_outputs_closed": 10
}
},
{
"id": "05qajvd42",
"name": "Australia Telescope National Facility",
"logo_sm": "logos/institution/sm/05qajvd42.jpg",
"entity_type": "institution",
"country_name": "Australia",
"country_code": "AUS",
"subregion": "Australia and New Zealand",
"region": "Oceania",
"institution_type": "Facility",
"stats": {
"n_outputs": 1742,
"n_outputs_open": 1493,
"p_outputs_open": 85.7060849598163,
"p_outputs_publisher_open_only": 9,
"p_outputs_both": 42,
"p_outputs_other_platform_open_only": 35,
"p_outputs_closed": 14
}
},
{
"id": "03dsbfb14",
"name": "Australian Institute of Tropical Health and Medicine",
"logo_sm": "logos/institution/sm/03dsbfb14.jpg",
"entity_type": "institution",
"country_name": "Australia",
"country_code": "AUS",
"subregion": "Australia and New Zealand",
"region": "Oceania",
"institution_type": "Facility",
"stats": {
"n_outputs": 1011,
"n_outputs_open": 741,
"p_outputs_open": 73.29376854599407,
"p_outputs_publisher_open_only": 7,
"p_outputs_both": 55,
"p_outputs_other_platform_open_only": 11,
"p_outputs_closed": 27
}
},
...
],
"nItems": 21,
"page": 0,
"limit": 18,
"orderBy": "stats.p_outputs_open",
"orderDir": "dsc"
}
6. Contributors
Conceptualization: James P. Diprose, Lucy Montgomery, Cameron Neylon, and Richard Hosking.
Graphic design: Richard Rigoni.
Data curation: James P. Diprose and Richard Hosking.
Formal analysis: James P. Diprose, Cameron Neylon, and Richard Hosking.
Funding acquisition: Lucy Montgomery and Cameron Neylon.
Investigation: James P. Diprose.
Methodology: James P. Diprose.
Project administration: Lucy Montgomery, Cameron Neylon, and Kathryn R. Napier.
Resources: James P. Diprose.
Software: James P. Diprose and Aniek Roelofs.
Supervision: James P. Diprose, Lucy Montgomery, Cameron Neylon, and Kathryn R. Napier.
Visualization: James P. Diprose, Cameron Neylon and Richard Regoni.
Writing - original draft: James P. Diprose, Lucy Montgomery, Cameron Neylon, and Richard Hosking.
Writing - review & editing: Cameron Neylon, Kathryn R. Napier, Richard Hosking, Katie S. Wilson, and Tuan-Yow Chien.
7. License
Owner
- Name: The Academic Observatory
- Login: The-Academic-Observatory
- Kind: organization
- Repositories: 14
- Profile: https://github.com/The-Academic-Observatory
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Diprose" given-names: "James P" - family-names: "Hosking" given-names: "Richard" - family-names: "Rigoni" given-names: "Richard" - family-names: "Roelofs" given-names: "Aniek" - family-names: "Massen-Hane" given-names: "Alex" - family-names: "Napier" given-names: "Kathryn R" - family-names: "Chien" given-names: "Tuan-Yow" - family-names: "Wilson" given-names: "Katie S" - family-names: "Montgomery" given-names: "Lucy" - family-names: "Neylon" given-names: "Cameron" title: "COKI Open Access Website" doi: 10.5281/zenodo.6374486 url: "https://github.com/The-Academic-Observatory/coki-oa-web"
GitHub Events
Total
- Release event: 2
- Watch event: 2
- Delete event: 2
- Push event: 12
- Pull request event: 4
- Fork event: 1
- Create event: 10
Last Year
- Release event: 2
- Watch event: 2
- Delete event: 2
- Push event: 12
- Pull request event: 4
- Fork event: 1
- Create event: 10
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 0
- Total pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: about 12 hours
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 2
- Average time to close issues: N/A
- Average time to close pull requests: about 12 hours
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- jdddog (5)
Pull Request Authors
- jdddog (8)
- alexmassen-hane (1)
- kathrynnapier (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- @playwright/test ^1.19.0 development
- @svgr/webpack ^6.2.1 development
- @testing-library/jest-dom ^5.16.4 development
- @testing-library/react ^12.1.5 development
- @types/jest ^28.1.2 development
- @types/lodash.get ^4.4.7 development
- @types/lodash.set ^4.3.7 development
- @types/node 16.11.9 development
- @types/react 17.0.36 development
- @types/react-test-renderer ^18.0.0 development
- cross-env ^7.0.3 development
- eslint 7 development
- eslint-config-next 12.0.4 development
- jest ^28.1.1 development
- jest-environment-jsdom ^28.1.1 development
- nanoid ^3.3.2 development
- next-sitemap ^2.1.13 development
- prettier ^2.6.2 development
- react-test-renderer ^18.2.0 development
- typescript 4.5.2 development
- @chakra-ui/icons ^1.1.1
- @chakra-ui/react ^1.7.2
- @emotion/react ^11
- @emotion/styled ^11
- @nivo/bar ^0.79.1
- @nivo/core ^0.79.0
- @nivo/pie ^0.79.1
- @nivo/stream ^0.79.1
- @types/react-table ^7.7.8
- framer-motion ^4
- lodash.get ^4.4.2
- lodash.set ^4.3.2
- next ^12.1.0
- react 17.0.2
- react-dom 17.0.2
- react-icomoon ^2.4.2
- react-table ^7.7.0
- @cloudflare/workers-types ^3.1.1 development
- @glenstack/cf-workers-function-memoizer ^1.0.1 development
- @types/flexsearch ^0.7.2 development
- @types/jest ^27.4.1 development
- @types/lodash.get ^4.4.7 development
- @types/lodash.set ^4.3.7 development
- @types/node ^17.0.23 development
- deepcopy ^2.1.0 development
- esbuild ^0.14.23 development
- jest ^27.5.1 development
- jest-environment-miniflare ^2.3.0 development
- jest-sorted ^1.0.14 development
- miniflare ^2.3.0 development
- performance-now ^2.1.0 development
- prettier ^1.18.2 development
- ts-jest ^27.0.7 development
- ts-node ^10.7.0 development
- typescript ^4.4.4 development
- flexsearch ^0.7.21
- itty-router ^2.5.1
- lodash.get ^4.4.2
- lodash.set ^4.3.2
- 425 dependencies
- 930 dependencies
- actions/setup-node v3 composite
- google-github-actions/auth v0 composite
- google-github-actions/setup-gcloud v0 composite
- ./.github/actions/build-app * composite
- ./.github/actions/setup-environment * composite
- actions/checkout v3 composite
- oprypin/find-latest-tag v1 composite
- ./.github/actions/build-app * composite
- ./.github/actions/setup-environment * composite
- actions/checkout v3 composite
- ./.github/actions/setup-environment * composite
- actions/checkout v3 composite
- ./.github/actions/setup-environment * composite
- actions/checkout v3 composite
- ./.github/actions/setup-environment * composite
- actions/checkout v3 composite
- @types/node 16.11.9 development
- puppeteer ^13.7.0 development
- puppeteer-cluster ^0.23.0 development
- ts-node ^10.7.0 development
- typescript 4.5.2 development
- @cspotcode/source-map-consumer 0.8.0
- @cspotcode/source-map-support 0.7.0
- @tsconfig/node10 1.0.8
- @tsconfig/node12 1.0.9
- @tsconfig/node14 1.0.1
- @tsconfig/node16 1.0.2
- @types/node 17.0.31
- @types/node 16.11.9
- @types/yauzl 2.10.0
- acorn 8.7.1
- acorn-walk 8.2.0
- agent-base 6.0.2
- arg 4.1.3
- balanced-match 1.0.2
- base64-js 1.5.1
- bl 4.1.0
- brace-expansion 1.1.11
- buffer 5.7.1
- buffer-crc32 0.2.13
- chownr 1.1.4
- concat-map 0.0.1
- create-require 1.1.1
- cross-fetch 3.1.5
- debug 4.3.4
- devtools-protocol 0.0.981744
- diff 4.0.2
- end-of-stream 1.4.4
- extract-zip 2.0.1
- fd-slicer 1.1.0
- find-up 4.1.0
- fs-constants 1.0.0
- fs.realpath 1.0.0
- get-stream 5.2.0
- glob 7.2.0
- https-proxy-agent 5.0.1
- ieee754 1.2.1
- inflight 1.0.6
- inherits 2.0.4
- locate-path 5.0.0
- make-error 1.3.6
- minimatch 3.1.2
- mkdirp-classic 0.5.3
- ms 2.1.2
- node-fetch 2.6.7
- once 1.4.0
- p-limit 2.3.0
- p-locate 4.1.0
- p-try 2.2.0
- path-exists 4.0.0
- path-is-absolute 1.0.1
- pend 1.2.0
- pkg-dir 4.2.0
- progress 2.0.3
- proxy-from-env 1.1.0
- pump 3.0.0
- puppeteer 13.7.0
- puppeteer-cluster 0.23.0
- readable-stream 3.6.0
- rimraf 3.0.2
- safe-buffer 5.2.1
- string_decoder 1.3.0
- tar-fs 2.1.1
- tar-stream 2.2.0
- through 2.3.8
- tr46 0.0.3
- ts-node 10.7.0
- typescript 4.5.2
- unbzip2-stream 1.4.3
- util-deprecate 1.0.2
- v8-compile-cache-lib 3.0.1
- webidl-conversions 3.0.1
- whatwg-url 5.0.0
- wrappy 1.0.2
- ws 8.5.0
- yauzl 2.10.0
- yn 3.1.1
- @cloudflare/kv-asset-handler ^0.2.0