From b48121272113ebbe3bde1bbb4bdebaab55dadcf3 Mon Sep 17 00:00:00 2001 From: Vyacheslav Matyukhin Date: Sat, 26 Mar 2022 03:36:50 +0300 Subject: [PATCH] feat: more ts, fix tailwind - rename more files to .ts/.tsx - update tailwind config to use .tsx files from all dirs - merge css files into a single main.css to avoid import order dependencies - minor cleanups due to ts complaints --- src/backend/database/database-wrapper.js | 4 +- src/backend/database/mongo-wrapper.js | 2 +- src/backend/database/pg-wrapper.js | 6 +-- src/backend/flow/doEverything.js | 10 ++-- src/backend/flow/doEverythingForScheduler.js | 2 +- src/backend/flow/history/old/addToHistory.js | 3 +- .../flow/history/old/createHistoryForMonth.js | 5 +- .../old/createInitialHistoryWithMetaculus.js | 2 +- src/backend/flow/history/old/updateHistory.js | 4 +- src/backend/flow/history/updateHistory.js | 2 +- src/backend/flow/mergeEverything.js | 4 +- .../flow/rebuildNetliftySiteWithNewData.js | 2 +- src/backend/index.ts | 14 +++--- src/backend/manual/manualDownload.js | 2 +- src/backend/manual/manualInitialize.js | 2 +- src/backend/manual/manualSendToMongo.js | 2 +- .../manual/pullSuperforecastsManually.js | 2 +- src/backend/platforms/all-platforms.js | 4 +- src/backend/platforms/all/platformFetchers.js | 44 ++++++++--------- src/backend/platforms/betfair-fetch.js | 4 +- .../deprecated/astralcodexten-fetch.js | 4 +- .../platforms/deprecated/coupcast-fetch.js | 4 +- .../deprecated/csetforetell-fetch.js | 8 ++-- .../platforms/deprecated/elicit-fetch.js | 4 +- .../platforms/deprecated/estimize-fetch.js | 4 +- .../platforms/deprecated/hypermind-fetch.js | 8 ++-- .../platforms/deprecated/ladbrokes-fetch.js | 4 +- .../platforms/deprecated/omen-fetch.js | 4 +- .../platforms/deprecated/williamhill-fetch.js | 4 +- src/backend/platforms/example-fetch.js | 4 +- src/backend/platforms/fantasyscotus-fetch.js | 4 +- src/backend/platforms/foretold-fetch.js | 4 +- .../platforms/givewellopenphil-fetch.js | 4 +- src/backend/platforms/goodjudgment-fetch.js | 6 +-- .../platforms/goodjudmentopen-fetch.js | 8 ++-- src/backend/platforms/infer-fetch.js | 8 ++-- src/backend/platforms/kalshi-fetch.js | 4 +- .../platforms/manifoldmarkets-fetch.js | 4 +- src/backend/platforms/metaculus-fetch.js | 6 +-- src/backend/platforms/polymarket-fetch.js | 4 +- src/backend/platforms/predictit-fetch.js | 6 +-- src/backend/platforms/rootclaim-fetch.js | 6 +-- src/backend/platforms/smarkets-fetch.js | 4 +- src/backend/platforms/wildeford-fetch.js | 8 ++-- src/backend/utils/algolia.js | 4 +- .../pullForecastsToCSVForRating.js | 2 +- .../pullMetaculusForecastsToCSVForRating.js | 2 +- .../misc/process-forecasts-into-elicit.js | 2 +- src/pages/{_app.js => _app.tsx} | 3 +- src/pages/{about.js => about.tsx} | 21 ++++---- src/pages/{layout.js => layout.tsx} | 16 ++++--- src/pages/{recursion.js => recursion.tsx} | 2 +- src/pages/secretDashboard.js | 2 +- src/pages/secretEmbed.tsx | 2 +- src/pages/{tools.js => tools.tsx} | 48 +++++-------------- src/styles/{globals.css => main.css} | 8 ++++ src/styles/tailwind.css | 7 --- ...shboardCreator.js => dashboardCreator.tsx} | 6 +-- ...splayForecasts.js => displayForecasts.tsx} | 10 ++-- .../display/displayOneForecastForCapture.tsx | 2 +- src/web/display/{dropdown.js => dropdown.tsx} | 2 +- src/web/display/{form.js => form.tsx} | 3 +- ...tPlatforms.js => multiSelectPlatforms.tsx} | 9 ++-- src/web/display/{slider.js => slider.tsx} | 5 +- src/web/icons/{Favicon.js => Favicon.tsx} | 2 +- src/web/icons/{Logo.js => Logo.tsx} | 2 +- src/web/icons/{Logo2.js => Logo2.tsx} | 2 +- src/web/icons/{index.js => index.ts} | 0 src/web/worker/searchAccordingToQueryData.ts | 4 +- tailwind.config.js | 6 +-- 70 files changed, 193 insertions(+), 223 deletions(-) rename src/pages/{_app.js => _app.tsx} (62%) rename src/pages/{about.js => about.tsx} (90%) rename src/pages/{layout.js => layout.tsx} (94%) rename src/pages/{recursion.js => recursion.tsx} (88%) rename src/pages/{tools.js => tools.tsx} (75%) rename src/styles/{globals.css => main.css} (87%) delete mode 100644 src/styles/tailwind.css rename src/web/display/{dashboardCreator.js => dashboardCreator.tsx} (97%) rename src/web/display/{displayForecasts.js => displayForecasts.tsx} (98%) rename src/web/display/{dropdown.js => dropdown.tsx} (92%) rename src/web/display/{form.js => form.tsx} (91%) rename src/web/display/{multiSelectPlatforms.js => multiSelectPlatforms.tsx} (92%) rename src/web/display/{slider.js => slider.tsx} (96%) rename src/web/icons/{Favicon.js => Favicon.tsx} (96%) rename src/web/icons/{Logo.js => Logo.tsx} (99%) rename src/web/icons/{Logo2.js => Logo2.tsx} (99%) rename src/web/icons/{index.js => index.ts} (100%) diff --git a/src/backend/database/database-wrapper.js b/src/backend/database/database-wrapper.js index cdb5504..2a5714c 100644 --- a/src/backend/database/database-wrapper.js +++ b/src/backend/database/database-wrapper.js @@ -2,8 +2,8 @@ import { mongoRead, mongoReadWithReadCredentials, mongoUpsert, -} from "./mongo-wrapper.js"; -import { pgRead, pgReadWithReadCredentials, pgUpsert } from "./pg-wrapper.js"; +} from "./mongo-wrapper"; +import { pgRead, pgReadWithReadCredentials, pgUpsert } from "./pg-wrapper"; export async function databaseUpsert({ contents, group }) { // No, this should be more rational, ({contents, group, schema})? Or should this be managed by this layer? Unclear. diff --git a/src/backend/database/mongo-wrapper.js b/src/backend/database/mongo-wrapper.js index c622f38..02c38d8 100644 --- a/src/backend/database/mongo-wrapper.js +++ b/src/backend/database/mongo-wrapper.js @@ -1,5 +1,5 @@ import pkg from "mongodb"; -import { roughSizeOfObject } from "../utils/roughSize.js"; +import { roughSizeOfObject } from "../utils/roughSize"; const { MongoClient } = pkg; export async function mongoUpsert( diff --git a/src/backend/database/pg-wrapper.js b/src/backend/database/pg-wrapper.js index a6df7d3..af86e56 100644 --- a/src/backend/database/pg-wrapper.js +++ b/src/backend/database/pg-wrapper.js @@ -1,7 +1,7 @@ import pkg from "pg"; -import { platformNames } from "../platforms/all/platformNames.js"; -import { hash } from "../utils/hash.js"; -import { roughSizeOfObject } from "../utils/roughSize.js"; +import { platformNames } from "../platforms/all/platformNames"; +import { hash } from "../utils/hash"; +import { roughSizeOfObject } from "../utils/roughSize"; const { Pool } = pkg; // Definitions diff --git a/src/backend/flow/doEverything.js b/src/backend/flow/doEverything.js index c4fa741..81498c8 100644 --- a/src/backend/flow/doEverything.js +++ b/src/backend/flow/doEverything.js @@ -1,8 +1,8 @@ -import { mergeEverything } from "./mergeEverything.js"; -import { updateHistory } from "./history/updateHistory.js"; -import { rebuildAlgoliaDatabase } from "../utils/algolia.js"; -import { rebuildNetlifySiteWithNewData } from "./rebuildNetliftySiteWithNewData.js"; -import { platformFetchers } from "../platforms/all-platforms.js"; +import { platformFetchers } from "../platforms/all-platforms"; +import { rebuildAlgoliaDatabase } from "../utils/algolia"; +import { updateHistory } from "./history/updateHistory"; +import { mergeEverything } from "./mergeEverything"; +import { rebuildNetlifySiteWithNewData } from "./rebuildNetliftySiteWithNewData"; /* Do everything */ function sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)); diff --git a/src/backend/flow/doEverythingForScheduler.js b/src/backend/flow/doEverythingForScheduler.js index e49e38a..4b8e69f 100644 --- a/src/backend/flow/doEverythingForScheduler.js +++ b/src/backend/flow/doEverythingForScheduler.js @@ -1,3 +1,3 @@ -import { doEverything } from "./doEverything.js"; +import { doEverything } from "./doEverything"; doEverything(); diff --git a/src/backend/flow/history/old/addToHistory.js b/src/backend/flow/history/old/addToHistory.js index f7b314f..3f4f880 100644 --- a/src/backend/flow/history/old/addToHistory.js +++ b/src/backend/flow/history/old/addToHistory.js @@ -1,8 +1,7 @@ -import { writeFileSync } from "fs"; import { databaseReadWithReadCredentials, databaseUpsert, -} from "../../database/database-wrapper.js"; +} from "../../database/database-wrapper"; let isEmptyArray = (arr) => arr.length == 0; export async function addToHistory() { diff --git a/src/backend/flow/history/old/createHistoryForMonth.js b/src/backend/flow/history/old/createHistoryForMonth.js index fe33be1..ba55000 100644 --- a/src/backend/flow/history/old/createHistoryForMonth.js +++ b/src/backend/flow/history/old/createHistoryForMonth.js @@ -1,7 +1,4 @@ -import { - databaseRead, - databaseUpsert, -} from "../../database/database-wrapper.js"; +import { databaseRead, databaseUpsert } from "../../database/database-wrapper"; export async function createHistoryForMonth() { let currentDate = new Date(); diff --git a/src/backend/flow/history/old/createInitialHistoryWithMetaculus.js b/src/backend/flow/history/old/createInitialHistoryWithMetaculus.js index 596818d..9ed86aa 100644 --- a/src/backend/flow/history/old/createInitialHistoryWithMetaculus.js +++ b/src/backend/flow/history/old/createInitialHistoryWithMetaculus.js @@ -1,4 +1,4 @@ -import { databaseRead, databaseUpsert } from "../database-wrapper.js"; +import { databaseRead, databaseUpsert } from "../database-wrapper"; let createInitialHistory = async () => { let metaforecasts = await databaseRead({ group: "combined" }); diff --git a/src/backend/flow/history/old/updateHistory.js b/src/backend/flow/history/old/updateHistory.js index b7573c7..6f67ce0 100644 --- a/src/backend/flow/history/old/updateHistory.js +++ b/src/backend/flow/history/old/updateHistory.js @@ -1,5 +1,5 @@ -import { addToHistory } from "./addToHistory.js"; -import { createHistoryForMonth } from "./createHistoryForMonth.js"; +import { addToHistory } from "./addToHistory"; +import { createHistoryForMonth } from "./createHistoryForMonth"; export async function updateHistoryOld() { let currentDate = new Date(); diff --git a/src/backend/flow/history/updateHistory.js b/src/backend/flow/history/updateHistory.js index 1cbbd06..b4733dc 100644 --- a/src/backend/flow/history/updateHistory.js +++ b/src/backend/flow/history/updateHistory.js @@ -1,7 +1,7 @@ import { databaseReadWithReadCredentials, databaseUpsert, -} from "../../database/database-wrapper.js"; +} from "../../database/database-wrapper"; export async function updateHistory() { let latest = await databaseReadWithReadCredentials({ group: "combined" }); diff --git a/src/backend/flow/mergeEverything.js b/src/backend/flow/mergeEverything.js index 4c64732..300b5ac 100644 --- a/src/backend/flow/mergeEverything.js +++ b/src/backend/flow/mergeEverything.js @@ -1,5 +1,5 @@ -import { databaseRead, databaseUpsert } from "../database/database-wrapper.js"; -import { platformNames } from "../platforms/all-platforms.js"; +import { databaseRead, databaseUpsert } from "../database/database-wrapper"; +import { platformNames } from "../platforms/all-platforms"; /* Merge everything */ export async function mergeEverythingInner() { diff --git a/src/backend/flow/rebuildNetliftySiteWithNewData.js b/src/backend/flow/rebuildNetliftySiteWithNewData.js index c8ee81f..5204ead 100644 --- a/src/backend/flow/rebuildNetliftySiteWithNewData.js +++ b/src/backend/flow/rebuildNetliftySiteWithNewData.js @@ -1,5 +1,5 @@ import axios from "axios"; -import { applyIfSecretExists } from "../utils/getSecrets.js"; +import { applyIfSecretExists } from "../utils/getSecrets"; async function rebuildNetlifySiteWithNewData_inner(cookie) { let payload = {}; diff --git a/src/backend/index.ts b/src/backend/index.ts index 350c5bc..2034509 100644 --- a/src/backend/index.ts +++ b/src/backend/index.ts @@ -3,14 +3,14 @@ import 'dotenv/config'; import readline from 'readline'; -import { pgInitialize } from './database/pg-wrapper.js'; -import { doEverything, tryCatchTryAgain } from './flow/doEverything.js'; -import { updateHistory } from './flow/history/updateHistory.js'; -import { mergeEverything } from './flow/mergeEverything.js'; -import { rebuildNetlifySiteWithNewData } from './flow/rebuildNetliftySiteWithNewData.js'; +import { pgInitialize } from './database/pg-wrapper'; +import { doEverything, tryCatchTryAgain } from './flow/doEverything'; +import { updateHistory } from './flow/history/updateHistory'; +import { mergeEverything } from './flow/mergeEverything'; +import { rebuildNetlifySiteWithNewData } from './flow/rebuildNetliftySiteWithNewData'; import { rebuildFrontpage } from './frontpage'; -import { platformFetchers } from './platforms/all-platforms.js'; -import { rebuildAlgoliaDatabase } from './utils/algolia.js'; +import { platformFetchers } from './platforms/all-platforms'; +import { rebuildAlgoliaDatabase } from './utils/algolia'; /* Support functions */ let functions = [ diff --git a/src/backend/manual/manualDownload.js b/src/backend/manual/manualDownload.js index 3757fad..c5eb4ea 100644 --- a/src/backend/manual/manualDownload.js +++ b/src/backend/manual/manualDownload.js @@ -1,6 +1,6 @@ import "dotenv/config"; import fs from "fs"; -import { databaseReadWithReadCredentials } from "../database/database-wrapper.js"; +import { databaseReadWithReadCredentials } from "../database/database-wrapper"; let main = async () => { let json = await databaseReadWithReadCredentials({ group: "combined" }); diff --git a/src/backend/manual/manualInitialize.js b/src/backend/manual/manualInitialize.js index da7cc84..1427013 100644 --- a/src/backend/manual/manualInitialize.js +++ b/src/backend/manual/manualInitialize.js @@ -1,3 +1,3 @@ -import { pgInitialize } from "../database/pg-wrapper.js"; +import { pgInitialize } from "../database/pg-wrapper"; pgInitialize(); diff --git a/src/backend/manual/manualSendToMongo.js b/src/backend/manual/manualSendToMongo.js index 08e7478..2aea360 100644 --- a/src/backend/manual/manualSendToMongo.js +++ b/src/backend/manual/manualSendToMongo.js @@ -1,5 +1,5 @@ import fs from "fs"; -import { databaseUpsert } from "../database/database-wrapper.js"; +import { databaseUpsert } from "../database/database-wrapper"; /* This is necessary for estimize, the database of x-risk estimates, and for the OpenPhil/GiveWell predictions. Unlike the others, I'm not fetching them constantly, but only once. */ diff --git a/src/backend/manual/pullSuperforecastsManually.js b/src/backend/manual/pullSuperforecastsManually.js index c1ec623..1a4829a 100644 --- a/src/backend/manual/pullSuperforecastsManually.js +++ b/src/backend/manual/pullSuperforecastsManually.js @@ -1,5 +1,5 @@ /* Imports */ -import { goodjudgment } from "../platforms/goodjudgment-fetch.js"; +import { goodjudgment } from "../platforms/goodjudgment-fetch"; /* Definitions */ diff --git a/src/backend/platforms/all-platforms.js b/src/backend/platforms/all-platforms.js index 624a165..92258b3 100644 --- a/src/backend/platforms/all-platforms.js +++ b/src/backend/platforms/all-platforms.js @@ -1,2 +1,2 @@ -export { platformFetchers } from "./all/platformFetchers.js"; -export { platformNames } from "./all/platformNames.js"; +export { platformFetchers } from "./all/platformFetchers"; +export { platformNames } from "./all/platformNames"; diff --git a/src/backend/platforms/all/platformFetchers.js b/src/backend/platforms/all/platformFetchers.js index bb8c0a7..04c1ce5 100644 --- a/src/backend/platforms/all/platformFetchers.js +++ b/src/backend/platforms/all/platformFetchers.js @@ -1,27 +1,27 @@ -import { betfair } from "../betfair-fetch.js"; -import { fantasyscotus } from "../fantasyscotus-fetch.js"; -import { foretold } from "../foretold-fetch.js"; -import { goodjudgment } from "../goodjudgment-fetch.js"; -import { goodjudgmentopen } from "../goodjudmentopen-fetch.js"; -import { infer } from "../infer-fetch.js"; -import { kalshi } from "../kalshi-fetch.js"; -import { manifoldmarkets } from "../manifoldmarkets-fetch.js"; -import { metaculus } from "../metaculus-fetch.js"; -import { polymarket } from "../polymarket-fetch.js"; -import { predictit } from "../predictit-fetch.js"; -import { rootclaim } from "../rootclaim-fetch.js"; -import { smarkets } from "../smarkets-fetch.js"; -import { wildeford } from "../wildeford-fetch.js"; +import { betfair } from "../betfair-fetch"; +import { fantasyscotus } from "../fantasyscotus-fetch"; +import { foretold } from "../foretold-fetch"; +import { goodjudgment } from "../goodjudgment-fetch"; +import { goodjudgmentopen } from "../goodjudmentopen-fetch"; +import { infer } from "../infer-fetch"; +import { kalshi } from "../kalshi-fetch"; +import { manifoldmarkets } from "../manifoldmarkets-fetch"; +import { metaculus } from "../metaculus-fetch"; +import { polymarket } from "../polymarket-fetch"; +import { predictit } from "../predictit-fetch"; +import { rootclaim } from "../rootclaim-fetch"; +import { smarkets } from "../smarkets-fetch"; +import { wildeford } from "../wildeford-fetch"; /* Deprecated -import { astralcodexten } from "../platforms/astralcodexten-fetch.js" -import { coupcast } from "../platforms/coupcast-fetch.js" -import { csetforetell } from "../platforms/csetforetell-fetch.js" -import { elicit } from "../platforms/elicit-fetch.js" -import { estimize } from "../platforms/estimize-fetch.js" -import { hypermind } from "../platforms/hypermind-fetch.js" -import { ladbrokes } from "../platforms/ladbrokes-fetch.js"; -import { williamhill } from "../platforms/williamhill-fetch.js"; +import { astralcodexten } from "../platforms/astralcodexten-fetch" +import { coupcast } from "../platforms/coupcast-fetch" +import { csetforetell } from "../platforms/csetforetell-fetch" +import { elicit } from "../platforms/elicit-fetch" +import { estimize } from "../platforms/estimize-fetch" +import { hypermind } from "../platforms/hypermind-fetch" +import { ladbrokes } from "../platforms/ladbrokes-fetch"; +import { williamhill } from "../platforms/williamhill-fetch"; */ export const platformFetchers = [ diff --git a/src/backend/platforms/betfair-fetch.js b/src/backend/platforms/betfair-fetch.js index bf61237..ad8a130 100644 --- a/src/backend/platforms/betfair-fetch.js +++ b/src/backend/platforms/betfair-fetch.js @@ -1,8 +1,8 @@ /* Imports */ import axios from "axios"; import https from "https"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let endpoint = process.env.SECRET_BETFAIR_ENDPOINT; diff --git a/src/backend/platforms/deprecated/astralcodexten-fetch.js b/src/backend/platforms/deprecated/astralcodexten-fetch.js index 5ff5992..5615238 100644 --- a/src/backend/platforms/deprecated/astralcodexten-fetch.js +++ b/src/backend/platforms/deprecated/astralcodexten-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let graphQLendpoint = "https://api.foretold.io/graphql"; diff --git a/src/backend/platforms/deprecated/coupcast-fetch.js b/src/backend/platforms/deprecated/coupcast-fetch.js index 53cbe55..d3627df 100644 --- a/src/backend/platforms/deprecated/coupcast-fetch.js +++ b/src/backend/platforms/deprecated/coupcast-fetch.js @@ -1,8 +1,8 @@ /* Imports */ import axios from "axios"; import Papa from "papaparse"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let coupCastEndpoint = diff --git a/src/backend/platforms/deprecated/csetforetell-fetch.js b/src/backend/platforms/deprecated/csetforetell-fetch.js index f9276fc..065f66f 100644 --- a/src/backend/platforms/deprecated/csetforetell-fetch.js +++ b/src/backend/platforms/deprecated/csetforetell-fetch.js @@ -1,10 +1,10 @@ /* Imports */ import axios from "axios"; import { Tabletojson } from "tabletojson"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { applyIfSecretExists } from "../utils/getSecrets.js"; -import { calculateStars } from "../utils/stars.js"; -import toMarkdown from "../utils/toMarkdown.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { applyIfSecretExists } from "../utils/getSecrets"; +import { calculateStars } from "../utils/stars"; +import toMarkdown from "../utils/toMarkdown"; /* Definitions */ let htmlEndPoint = "https://www.cset-foretell.com/questions?page="; diff --git a/src/backend/platforms/deprecated/elicit-fetch.js b/src/backend/platforms/deprecated/elicit-fetch.js index 3423579..9515a71 100644 --- a/src/backend/platforms/deprecated/elicit-fetch.js +++ b/src/backend/platforms/deprecated/elicit-fetch.js @@ -2,8 +2,8 @@ import axios from "axios"; import Papa from "papaparse"; import readline from "readline"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let elicitEndpoint = diff --git a/src/backend/platforms/deprecated/estimize-fetch.js b/src/backend/platforms/deprecated/estimize-fetch.js index dc100bb..8f70cd5 100644 --- a/src/backend/platforms/deprecated/estimize-fetch.js +++ b/src/backend/platforms/deprecated/estimize-fetch.js @@ -1,6 +1,6 @@ import fs from "fs"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { calculateStars } from "../utils/stars"; export async function estimize() { let data = fs.readFileSync( diff --git a/src/backend/platforms/deprecated/hypermind-fetch.js b/src/backend/platforms/deprecated/hypermind-fetch.js index d3100e5..dba6bed 100644 --- a/src/backend/platforms/deprecated/hypermind-fetch.js +++ b/src/backend/platforms/deprecated/hypermind-fetch.js @@ -1,10 +1,10 @@ /* Imports */ import axios from "axios"; import https from "https"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { applyIfSecretExists } from "../utils/getSecrets.js"; -import { calculateStars } from "../utils/stars.js"; -import toMarkdown from "../utils/toMarkdown.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { applyIfSecretExists } from "../utils/getSecrets"; +import { calculateStars } from "../utils/stars"; +import toMarkdown from "../utils/toMarkdown"; /* Definitions */ let hypermindEnpoint1 = "https://predict.hypermind.com/dash/jsx.json"; diff --git a/src/backend/platforms/deprecated/ladbrokes-fetch.js b/src/backend/platforms/deprecated/ladbrokes-fetch.js index c84528f..be06be7 100644 --- a/src/backend/platforms/deprecated/ladbrokes-fetch.js +++ b/src/backend/platforms/deprecated/ladbrokes-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let endpointPolitics = `https://ss-aka-ori.ladbrokes.com/openbet-ssviewer/Drilldown/2.31/EventToOutcomeForClass/302,301,300?simpleFilter=event.siteChannels:contains:M&simpleFilter=event.eventSortCode:intersects:TNMT,TR01,TR02,TR03,TR04,TR05,TR06,TR07,TR08,TR09,TR10,TR11,TR12,TR13,TR14,TR15,TR16,TR17,TR18,TR19,TR20&simpleFilter=event.suspendAtTime:greaterThan:${new Date().toISOString()}.000Z&limitRecords=outcome:1&limitRecords=market:1&translationLang=en&responseFormat=json&prune=event&prune=market`; diff --git a/src/backend/platforms/deprecated/omen-fetch.js b/src/backend/platforms/deprecated/omen-fetch.js index d74bea0..67f00c6 100644 --- a/src/backend/platforms/deprecated/omen-fetch.js +++ b/src/backend/platforms/deprecated/omen-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../../utils/database-wrapper.js"; -import { calculateStars } from "../../utils/stars.js"; +import { databaseUpsert } from "../../utils/database-wrapper"; +import { calculateStars } from "../../utils/stars"; /* Definitions */ let graphQLendpoint = "https://api.thegraph.com/subgraphs/name/protofire/omen"; diff --git a/src/backend/platforms/deprecated/williamhill-fetch.js b/src/backend/platforms/deprecated/williamhill-fetch.js index 0687f43..cf7c783 100644 --- a/src/backend/platforms/deprecated/williamhill-fetch.js +++ b/src/backend/platforms/deprecated/williamhill-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../utils/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../utils/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let endpoint = "https://sports.williamhill.com/betting/en-gb/politics"; diff --git a/src/backend/platforms/example-fetch.js b/src/backend/platforms/example-fetch.js index 19bf4bc..f4e78e0 100644 --- a/src/backend/platforms/example-fetch.js +++ b/src/backend/platforms/example-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let endpoint = "https://example.com/"; diff --git a/src/backend/platforms/fantasyscotus-fetch.js b/src/backend/platforms/fantasyscotus-fetch.js index 6d6a70f..83d6c54 100644 --- a/src/backend/platforms/fantasyscotus-fetch.js +++ b/src/backend/platforms/fantasyscotus-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let unixtime = new Date().getTime(); diff --git a/src/backend/platforms/foretold-fetch.js b/src/backend/platforms/foretold-fetch.js index 556225a..c970952 100644 --- a/src/backend/platforms/foretold-fetch.js +++ b/src/backend/platforms/foretold-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let graphQLendpoint = "https://api.foretold.io/graphql"; diff --git a/src/backend/platforms/givewellopenphil-fetch.js b/src/backend/platforms/givewellopenphil-fetch.js index 301093b..baab7fb 100644 --- a/src/backend/platforms/givewellopenphil-fetch.js +++ b/src/backend/platforms/givewellopenphil-fetch.js @@ -1,8 +1,8 @@ /* Imports */ import axios from "axios"; import fs from "fs"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Support functions */ async function fetchPage(url) { diff --git a/src/backend/platforms/goodjudgment-fetch.js b/src/backend/platforms/goodjudgment-fetch.js index eaf208f..a46015d 100644 --- a/src/backend/platforms/goodjudgment-fetch.js +++ b/src/backend/platforms/goodjudgment-fetch.js @@ -2,9 +2,9 @@ import axios from "axios"; import { Tabletojson } from "tabletojson"; import tunnel from "tunnel"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { hash } from "../utils/hash.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { hash } from "../utils/hash"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let endpoint = "https://goodjudgment.io/superforecasts/"; diff --git a/src/backend/platforms/goodjudmentopen-fetch.js b/src/backend/platforms/goodjudmentopen-fetch.js index bb90226..0acaa0f 100644 --- a/src/backend/platforms/goodjudmentopen-fetch.js +++ b/src/backend/platforms/goodjudmentopen-fetch.js @@ -1,10 +1,10 @@ /* Imports */ import axios from "axios"; import { Tabletojson } from "tabletojson"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { applyIfSecretExists } from "../utils/getSecrets.js"; -import { calculateStars } from "../utils/stars.js"; -import toMarkdown from "../utils/toMarkdown.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { applyIfSecretExists } from "../utils/getSecrets"; +import { calculateStars } from "../utils/stars"; +import toMarkdown from "../utils/toMarkdown"; /* Definitions */ let htmlEndPoint = "https://www.gjopen.com/questions?page="; diff --git a/src/backend/platforms/infer-fetch.js b/src/backend/platforms/infer-fetch.js index 6039f71..cc13a65 100644 --- a/src/backend/platforms/infer-fetch.js +++ b/src/backend/platforms/infer-fetch.js @@ -1,10 +1,10 @@ /* Imports */ import axios from "axios"; import { Tabletojson } from "tabletojson"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { applyIfSecretExists } from "../utils/getSecrets.js"; -import { calculateStars } from "../utils/stars.js"; -import toMarkdown from "../utils/toMarkdown.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { applyIfSecretExists } from "../utils/getSecrets"; +import { calculateStars } from "../utils/stars"; +import toMarkdown from "../utils/toMarkdown"; /* Definitions */ let htmlEndPoint = "https://www.infer-pub.com/questions"; diff --git a/src/backend/platforms/kalshi-fetch.js b/src/backend/platforms/kalshi-fetch.js index d45205c..d1706c6 100644 --- a/src/backend/platforms/kalshi-fetch.js +++ b/src/backend/platforms/kalshi-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let jsonEndpoint = "https://trading-api.kalshi.com/v1/cached/markets/"; //"https://subgraph-matic.poly.market/subgraphs/name/TokenUnion/polymarket"//"https://subgraph-backup.poly.market/subgraphs/name/TokenUnion/polymarket"//'https://subgraph-matic.poly.market/subgraphs/name/TokenUnion/polymarket3' diff --git a/src/backend/platforms/manifoldmarkets-fetch.js b/src/backend/platforms/manifoldmarkets-fetch.js index 6a4869f..1a078db 100644 --- a/src/backend/platforms/manifoldmarkets-fetch.js +++ b/src/backend/platforms/manifoldmarkets-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let endpoint = "https://manifold.markets/api/v0/markets"; diff --git a/src/backend/platforms/metaculus-fetch.js b/src/backend/platforms/metaculus-fetch.js index 1c36b54..87f6d91 100644 --- a/src/backend/platforms/metaculus-fetch.js +++ b/src/backend/platforms/metaculus-fetch.js @@ -1,8 +1,8 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; -import toMarkdown from "../utils/toMarkdown.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; +import toMarkdown from "../utils/toMarkdown"; /* Definitions */ let jsonEndPoint = "https://www.metaculus.com/api2/questions/?page="; diff --git a/src/backend/platforms/polymarket-fetch.js b/src/backend/platforms/polymarket-fetch.js index 06a45fc..4a0ad91 100644 --- a/src/backend/platforms/polymarket-fetch.js +++ b/src/backend/platforms/polymarket-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let graphQLendpoint = diff --git a/src/backend/platforms/predictit-fetch.js b/src/backend/platforms/predictit-fetch.js index b0c9643..852f361 100644 --- a/src/backend/platforms/predictit-fetch.js +++ b/src/backend/platforms/predictit-fetch.js @@ -1,8 +1,8 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; -import toMarkdown from "../utils/toMarkdown.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; +import toMarkdown from "../utils/toMarkdown"; /* Support functions */ async function fetchmarkets() { diff --git a/src/backend/platforms/rootclaim-fetch.js b/src/backend/platforms/rootclaim-fetch.js index 145e69f..2a39b4d 100644 --- a/src/backend/platforms/rootclaim-fetch.js +++ b/src/backend/platforms/rootclaim-fetch.js @@ -1,8 +1,8 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; -import toMarkdown from "../utils/toMarkdown.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; +import toMarkdown from "../utils/toMarkdown"; /* Definitions */ let jsonEndpoint = diff --git a/src/backend/platforms/smarkets-fetch.js b/src/backend/platforms/smarkets-fetch.js index 229dc14..ca14366 100644 --- a/src/backend/platforms/smarkets-fetch.js +++ b/src/backend/platforms/smarkets-fetch.js @@ -1,7 +1,7 @@ /* Imports */ import axios from "axios"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { calculateStars } from "../utils/stars"; /* Definitions */ let htmlEndPointEntrance = "https://api.smarkets.com/v3/events/"; diff --git a/src/backend/platforms/wildeford-fetch.js b/src/backend/platforms/wildeford-fetch.js index 6a07d13..3e1bc34 100644 --- a/src/backend/platforms/wildeford-fetch.js +++ b/src/backend/platforms/wildeford-fetch.js @@ -1,10 +1,10 @@ /* Imports */ // import axios from "axios" import { GoogleSpreadsheet } from "google-spreadsheet"; -import { databaseUpsert } from "../database/database-wrapper.js"; -import { applyIfSecretExists } from "../utils/getSecrets.js"; -import { hash } from "../utils/hash.js"; -import { calculateStars } from "../utils/stars.js"; +import { databaseUpsert } from "../database/database-wrapper"; +import { applyIfSecretExists } from "../utils/getSecrets"; +import { hash } from "../utils/hash"; +import { calculateStars } from "../utils/stars"; /* Definitions */ const SHEET_ID = "1xcgYF7Q0D95TPHLLSgwhWBHFrWZUGJn7yTyAhDR4vi0"; // spreadsheet key is the long id in the sheets URL diff --git a/src/backend/utils/algolia.js b/src/backend/utils/algolia.js index df21bec..d5b6bc6 100644 --- a/src/backend/utils/algolia.js +++ b/src/backend/utils/algolia.js @@ -1,6 +1,6 @@ import algoliasearch from "algoliasearch"; -import { databaseReadWithReadCredentials } from "../database/database-wrapper.js"; -import { mergeEverythingInner } from "../flow/mergeEverything.js"; +import { databaseReadWithReadCredentials } from "../database/database-wrapper"; +import { mergeEverythingInner } from "../flow/mergeEverything"; let cookie = process.env.ALGOLIA_MASTER_API_KEY; const client = algoliasearch("96UD3NTQ7L", cookie); diff --git a/src/backend/utils/evaluations/pullForecastsToCSVForRating.js b/src/backend/utils/evaluations/pullForecastsToCSVForRating.js index 5618496..144a1bb 100644 --- a/src/backend/utils/evaluations/pullForecastsToCSVForRating.js +++ b/src/backend/utils/evaluations/pullForecastsToCSVForRating.js @@ -1,6 +1,6 @@ /* Imports */ import fs from "fs"; -import { databaseReadWithReadCredentials } from "../database-wrapper.js"; +import { databaseReadWithReadCredentials } from "../database-wrapper"; /* Definitions */ diff --git a/src/backend/utils/evaluations/pullMetaculusForecastsToCSVForRating.js b/src/backend/utils/evaluations/pullMetaculusForecastsToCSVForRating.js index a75a3f6..a06e6c9 100644 --- a/src/backend/utils/evaluations/pullMetaculusForecastsToCSVForRating.js +++ b/src/backend/utils/evaluations/pullMetaculusForecastsToCSVForRating.js @@ -1,6 +1,6 @@ /* Imports */ import fs from "fs"; -import { databaseReadWithReadCredentials } from "../database-wrapper.js"; +import { databaseReadWithReadCredentials } from "../database-wrapper"; /* Definitions */ diff --git a/src/backend/utils/misc/process-forecasts-into-elicit.js b/src/backend/utils/misc/process-forecasts-into-elicit.js index b894649..08b7bc9 100644 --- a/src/backend/utils/misc/process-forecasts-into-elicit.js +++ b/src/backend/utils/misc/process-forecasts-into-elicit.js @@ -1,6 +1,6 @@ /* Imports */ import fs from "fs"; -import { databaseReadWithReadCredentials } from "../database-wrapper.js"; +import { databaseReadWithReadCredentials } from "../database-wrapper"; /* Definitions */ let locationData = "./data/"; diff --git a/src/pages/_app.js b/src/pages/_app.tsx similarity index 62% rename from src/pages/_app.js rename to src/pages/_app.tsx index 1214158..a568e28 100644 --- a/src/pages/_app.js +++ b/src/pages/_app.tsx @@ -1,5 +1,4 @@ -import "../styles/tailwind.css"; -import "../styles/globals.css"; +import '../styles/main.css'; function MyApp({ Component, pageProps }) { return ; diff --git a/src/pages/about.js b/src/pages/about.tsx similarity index 90% rename from src/pages/about.js rename to src/pages/about.tsx index d6ad52a..fad8acb 100644 --- a/src/pages/about.js +++ b/src/pages/about.tsx @@ -1,7 +1,9 @@ -import React from "react"; -import ReactMarkdown from "react-markdown"; -import gfm from "remark-gfm"; -import Layout from "./layout.js"; +import React from 'react'; +import ReactMarkdown from 'react-markdown'; +import gfm from 'remark-gfm'; + +import Layout from './layout'; + let readmeMarkdownText = `# About This is a search engine for probabilities. Given a query, it searches for relevant questions in various prediction markets and forecasting platforms (namely Betfair, FantasySCOTUS, Foretold, Good Judgment, Good Judgment Open, Guesstimate, GiveWell & OpenPhilanthropy blogposts as of early 2021, Kalshi, Infer, Ladbrokes, Manifold Markets, Metaculus, Polymarket, PredictIt, Smarkets, William Hill, and Michael Aird's database of existential risk estimates). For example, try searching for "China", "North Korea", "Semiconductors", "COVID", "Trump", or "X-risk". @@ -26,18 +28,11 @@ Also note that, whatever other redeeming features they might have, prediction ma export default function About() { return ( - null} - > +
diff --git a/src/pages/layout.js b/src/pages/layout.tsx similarity index 94% rename from src/pages/layout.js rename to src/pages/layout.tsx index 7c9b879..474b3a5 100644 --- a/src/pages/layout.js +++ b/src/pages/layout.tsx @@ -1,8 +1,9 @@ -import Head from "next/head"; -import Link from "next/link"; -import React from "react"; +import Head from 'next/head'; +import Link from 'next/link'; +import React from 'react'; + // import { GiDiceEightFacesEight } from "react-icons/gi"; -import { Logo2 } from "../web/icons/index.js"; +import { Logo2 } from '../web/icons/index'; /* Utilities */ const classNameSelected = (isSelected) => @@ -25,7 +26,10 @@ let calculateLastUpdate = () => { }; // Error catcher -class ErrorBoundary extends React.Component { +class ErrorBoundary extends React.Component< + any, + { error: any; errorInfo: any } +> { // https://reactjs.org/docs/error-boundaries.html constructor(props) { super(props); @@ -78,7 +82,7 @@ export default function Layout({ page, children }) { // https://developer.mozilla.org/en-US/docs/Web/API/Location/assign // window.location.hostname if (typeof window !== "undefined") { - if (window.location != window.location.pathname) { + if ((window.location as any) != window.location.pathname) { window.location.assign(window.location.pathname); } } diff --git a/src/pages/recursion.js b/src/pages/recursion.tsx similarity index 88% rename from src/pages/recursion.js rename to src/pages/recursion.tsx index 91aac2a..6ab180a 100644 --- a/src/pages/recursion.js +++ b/src/pages/recursion.tsx @@ -1,4 +1,4 @@ -import React, { useEffect } from "react"; +import React, { useEffect } from 'react'; function Recursion() { useEffect(() => { diff --git a/src/pages/secretDashboard.js b/src/pages/secretDashboard.js index ad66403..be72d46 100644 --- a/src/pages/secretDashboard.js +++ b/src/pages/secretDashboard.js @@ -4,7 +4,7 @@ import { useRouter } from "next/router"; // https://nextjs.org/docs/api-reference/next/router import React, { useState } from "react"; // Data -import displayForecasts from "../web/display/displayForecasts.js"; +import displayForecasts from "../web/display/displayForecasts"; import { getDashboardForecastsByDashboardId } from "../web/worker/getDashboardForecasts"; /* get Props */ diff --git a/src/pages/secretEmbed.tsx b/src/pages/secretEmbed.tsx index 24b5bb9..2af2f01 100644 --- a/src/pages/secretEmbed.tsx +++ b/src/pages/secretEmbed.tsx @@ -2,7 +2,7 @@ import React from 'react'; -import { displayForecast } from '../web/display/displayForecasts.js'; +import { displayForecast } from '../web/display/displayForecasts'; import { platformsWithLabels } from '../web/platforms'; import searchAccordingToQueryData from '../web/worker/searchAccordingToQueryData'; diff --git a/src/pages/tools.js b/src/pages/tools.tsx similarity index 75% rename from src/pages/tools.js rename to src/pages/tools.tsx index 5fbe5d7..d9b39f4 100644 --- a/src/pages/tools.js +++ b/src/pages/tools.tsx @@ -1,34 +1,18 @@ -import React, { useState } from "react"; -import Link from "next/link"; -import Layout from "./layout.js"; +import Link from 'next/link'; +import React from 'react'; -/* Helper functions */ - -let calculateLastUpdate = () => { - let today = new Date().toISOString(); - let yesterdayObj = new Date(); - yesterdayObj.setDate(yesterdayObj.getDate() - 1); - let yesterday = yesterdayObj.toISOString(); - if (today.slice(11, 16) > "02:00") { - return today.slice(0, 10); - } else { - return yesterday.slice(0, 10); - } -}; - -/* get Props */ -export async function getStaticProps() { - //getServerSideProps - let lastUpdated = calculateLastUpdate(); // metaforecasts.find(forecast => forecast.platform == "Good Judgment Open").timestamp - return { - props: { - lastUpdated, - }, - }; -} +import Layout from './layout'; /* Display one tool */ -function displayTool({ sameWebpage, title, description, link, url, img, i }) { +function displayTool({ + sameWebpage, + title, + description, + link, + url, + img, + i, +}: any) { switch (sameWebpage) { case true: return ( @@ -50,7 +34,6 @@ function displayTool({ sameWebpage, title, description, link, url, img, i }) { return ( @@ -111,12 +94,7 @@ export default function Tools({ lastUpdated }) { }, ]; return ( - +
{tools.map((tool, i) => displayTool({ ...tool, i }))}
diff --git a/src/styles/globals.css b/src/styles/main.css similarity index 87% rename from src/styles/globals.css rename to src/styles/main.css index 69d3f3d..8974577 100644 --- a/src/styles/globals.css +++ b/src/styles/main.css @@ -1,3 +1,11 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +.text-orange-400 { + color: #ffac75; +} + html, body { padding: 0; diff --git a/src/styles/tailwind.css b/src/styles/tailwind.css deleted file mode 100644 index 75d7e09..0000000 --- a/src/styles/tailwind.css +++ /dev/null @@ -1,7 +0,0 @@ -@tailwind base; -@tailwind components; -@tailwind utilities; - -.text-orange-400 { - color: #ffac75; -} diff --git a/src/web/display/dashboardCreator.js b/src/web/display/dashboardCreator.tsx similarity index 97% rename from src/web/display/dashboardCreator.js rename to src/web/display/dashboardCreator.tsx index e8fe2ac..13922d1 100644 --- a/src/web/display/dashboardCreator.js +++ b/src/web/display/dashboardCreator.tsx @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useState } from 'react'; let exampleInput = `{ "title": "Random example", @@ -54,8 +54,8 @@ Your old input was: ${value}`;