coki-oa-web

COKI Open Access Dashboard Web Application

https://github.com/the-academic-observatory/coki-oa-web

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
Last synced: 6 months ago · JSON representation ·

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
Created over 4 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation Zenodo

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

License Next JS Cloudflare e2e Tests Workers API Unit Tests code style: prettier DOI

  1. Requirements
  2. Web App Development
  3. REST API Development
  4. Configuring GitHub Actions
  5. REST API Endpoints
  6. Contributors
  7. 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,

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&regions=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&regions=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

Apache 2.0 License

Owner

  • Name: The Academic Observatory
  • Login: The-Academic-Observatory
  • Kind: organization

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
bug (1) dependencies (1)
Pull Request Labels

Dependencies

package.json npm
  • @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
workers-api/package.json npm
  • @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
workers-api/yarn.lock npm
  • 425 dependencies
yarn.lock npm
  • 930 dependencies
.github/actions/setup-environment/action.yml actions
  • actions/setup-node v3 composite
  • google-github-actions/auth v0 composite
  • google-github-actions/setup-gcloud v0 composite
.github/workflows/build-on-data-update.yml actions
  • ./.github/actions/build-app * composite
  • ./.github/actions/setup-environment * composite
  • actions/checkout v3 composite
  • oprypin/find-latest-tag v1 composite
.github/workflows/build.yml actions
  • ./.github/actions/build-app * composite
  • ./.github/actions/setup-environment * composite
  • actions/checkout v3 composite
.github/workflows/e2e-tests.yml actions
  • ./.github/actions/setup-environment * composite
  • actions/checkout v3 composite
.github/workflows/unit-tests.yml actions
  • ./.github/actions/setup-environment * composite
  • actions/checkout v3 composite
.github/workflows/workers-api-unit-tests.yml actions
  • ./.github/actions/setup-environment * composite
  • actions/checkout v3 composite
social-cards/package.json npm
  • @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
social-cards/yarn.lock npm
  • @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
workers-images/package.json npm
  • @cloudflare/kv-asset-handler ^0.2.0