diff --git a/backend/__tests__/__testData__/auth.ts b/backend/__tests__/__testData__/auth.ts index 844bf9bbd..dbe21a4b5 100644 --- a/backend/__tests__/__testData__/auth.ts +++ b/backend/__tests__/__testData__/auth.ts @@ -1,4 +1,4 @@ -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { randomBytes } from "crypto"; import { hash } from "bcrypt"; import { ObjectId } from "mongodb"; diff --git a/backend/__tests__/api/controllers/configuration.spec.ts b/backend/__tests__/api/controllers/configuration.spec.ts index ce3852019..f7069d489 100644 --- a/backend/__tests__/api/controllers/configuration.spec.ts +++ b/backend/__tests__/api/controllers/configuration.spec.ts @@ -5,7 +5,7 @@ import { CONFIGURATION_FORM_SCHEMA, } from "../../../src/constants/base-configuration"; import * as Configuration from "../../../src/init/configuration"; -import type { Configuration as ConfigurationType } from "@monkeytype/contracts/schemas/configuration"; +import type { Configuration as ConfigurationType } from "@monkeytype/schemas/configuration"; import { ObjectId } from "mongodb"; import * as Misc from "../../../src/utils/misc"; import * as AdminUuids from "../../../src/dal/admin-uids"; diff --git a/backend/__tests__/api/controllers/leaderboard.spec.ts b/backend/__tests__/api/controllers/leaderboard.spec.ts index 5cae0e151..a7de03ada 100644 --- a/backend/__tests__/api/controllers/leaderboard.spec.ts +++ b/backend/__tests__/api/controllers/leaderboard.spec.ts @@ -10,7 +10,7 @@ import { mockAuthenticateWithApeKey, mockBearerAuthentication, } from "../../__testData__/auth"; -import { XpLeaderboardEntry } from "@monkeytype/contracts/schemas/leaderboards"; +import { XpLeaderboardEntry } from "@monkeytype/schemas/leaderboards"; const mockApp = request(app); const configuration = Configuration.getCachedConfiguration(); diff --git a/backend/__tests__/api/controllers/quotes.spec.ts b/backend/__tests__/api/controllers/quotes.spec.ts index 4aeafa62b..244391f84 100644 --- a/backend/__tests__/api/controllers/quotes.spec.ts +++ b/backend/__tests__/api/controllers/quotes.spec.ts @@ -9,7 +9,7 @@ import * as ReportDal from "../../../src/dal/report"; import * as Captcha from "../../../src/utils/captcha"; import { ObjectId } from "mongodb"; import _ from "lodash"; -import { ApproveQuote } from "@monkeytype/contracts/schemas/quotes"; +import { ApproveQuote } from "@monkeytype/schemas/quotes"; import { mockBearerAuthentication } from "../../__testData__/auth"; const mockApp = request(app); diff --git a/backend/__tests__/api/controllers/user.spec.ts b/backend/__tests__/api/controllers/user.spec.ts index bcc26e5b1..f32d40dbe 100644 --- a/backend/__tests__/api/controllers/user.spec.ts +++ b/backend/__tests__/api/controllers/user.spec.ts @@ -19,7 +19,7 @@ import { FirebaseError } from "firebase-admin"; import * as ApeKeysDal from "../../../src/dal/ape-keys"; import * as LogDal from "../../../src/dal/logs"; import { ObjectId } from "mongodb"; -import { PersonalBest } from "@monkeytype/contracts/schemas/shared"; +import { PersonalBest } from "@monkeytype/schemas/shared"; import { pb } from "../../dal/leaderboards.spec"; import { mockAuthenticateWithApeKey, @@ -27,9 +27,9 @@ import { } from "../../__testData__/auth"; import { randomUUID } from "node:crypto"; import _ from "lodash"; -import { MonkeyMail, UserStreak } from "@monkeytype/contracts/schemas/users"; +import { MonkeyMail, UserStreak } from "@monkeytype/schemas/users"; import MonkeyError, { isFirebaseError } from "../../../src/utils/error"; -import { LeaderboardEntry } from "@monkeytype/contracts/schemas/leaderboards"; +import { LeaderboardEntry } from "@monkeytype/schemas/leaderboards"; import * as WeeklyXpLeaderboard from "../../../src/services/weekly-xp-leaderboard"; const mockApp = request(app); diff --git a/backend/__tests__/dal/leaderboards.spec.ts b/backend/__tests__/dal/leaderboards.spec.ts index b02f83e66..418185267 100644 --- a/backend/__tests__/dal/leaderboards.spec.ts +++ b/backend/__tests__/dal/leaderboards.spec.ts @@ -5,7 +5,7 @@ import * as LeaderboardsDal from "../../src/dal/leaderboards"; import * as PublicDal from "../../src/dal/public"; import * as Configuration from "../../src/init/configuration"; import type { DBLeaderboardEntry } from "../../src/dal/leaderboards"; -import type { PersonalBest } from "@monkeytype/contracts/schemas/shared"; +import type { PersonalBest } from "@monkeytype/schemas/shared"; const configuration = Configuration.getCachedConfiguration(); import * as DB from "../../src/init/db"; diff --git a/backend/__tests__/dal/user.spec.ts b/backend/__tests__/dal/user.spec.ts index 8f6d57305..d763a06ef 100644 --- a/backend/__tests__/dal/user.spec.ts +++ b/backend/__tests__/dal/user.spec.ts @@ -2,12 +2,9 @@ import _ from "lodash"; import * as UserDAL from "../../src/dal/user"; import * as UserTestData from "../__testData__/users"; import { ObjectId } from "mongodb"; -import { MonkeyMail, ResultFilters } from "@monkeytype/contracts/schemas/users"; -import { - PersonalBest, - PersonalBests, -} from "@monkeytype/contracts/schemas/shared"; -import { CustomThemeColors } from "@monkeytype/contracts/schemas/configs"; +import { MonkeyMail, ResultFilters } from "@monkeytype/schemas/users"; +import { PersonalBest, PersonalBests } from "@monkeytype/schemas/shared"; +import { CustomThemeColors } from "@monkeytype/schemas/configs"; const mockPersonalBest = { acc: 1, diff --git a/backend/__tests__/middlewares/auth.spec.ts b/backend/__tests__/middlewares/auth.spec.ts index 0ee92b90a..378714ae0 100644 --- a/backend/__tests__/middlewares/auth.spec.ts +++ b/backend/__tests__/middlewares/auth.spec.ts @@ -12,7 +12,7 @@ import crypto from "crypto"; import { EndpointMetadata, RequestAuthenticationOptions, -} from "@monkeytype/contracts/schemas/api"; +} from "@monkeytype/schemas/api"; import * as Prometheus from "../../src/utils/prometheus"; import { TsRestRequestWithContext } from "../../src/api/types"; diff --git a/backend/__tests__/middlewares/configuration.spec.ts b/backend/__tests__/middlewares/configuration.spec.ts index 8a63c601b..a2312933c 100644 --- a/backend/__tests__/middlewares/configuration.spec.ts +++ b/backend/__tests__/middlewares/configuration.spec.ts @@ -1,6 +1,6 @@ import { RequireConfiguration } from "@monkeytype/contracts/require-configuration/index"; import { verifyRequiredConfiguration } from "../../src/middlewares/configuration"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { Response } from "express"; import MonkeyError from "../../src/utils/error"; import { TsRestRequest } from "../../src/api/types"; diff --git a/backend/__tests__/middlewares/permission.spec.ts b/backend/__tests__/middlewares/permission.spec.ts index b87c14f13..1448119ea 100644 --- a/backend/__tests__/middlewares/permission.spec.ts +++ b/backend/__tests__/middlewares/permission.spec.ts @@ -1,6 +1,6 @@ import { Response } from "express"; import { verifyPermissions } from "../../src/middlewares/permission"; -import { EndpointMetadata } from "@monkeytype/contracts/schemas/api"; +import { EndpointMetadata } from "@monkeytype/schemas/api"; import * as Misc from "../../src/utils/misc"; import * as AdminUids from "../../src/dal/admin-uids"; import * as UserDal from "../../src/dal/user"; diff --git a/backend/__tests__/utils/daily-leaderboards.spec.ts b/backend/__tests__/utils/daily-leaderboards.spec.ts index 041ef06af..9d765eb1a 100644 --- a/backend/__tests__/utils/daily-leaderboards.spec.ts +++ b/backend/__tests__/utils/daily-leaderboards.spec.ts @@ -1,4 +1,4 @@ -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { Mode } from "@monkeytype/schemas/shared"; import { getDailyLeaderboard } from "../../src/utils/daily-leaderboards"; const dailyLeaderboardsConfig = { diff --git a/backend/__tests__/utils/pb.spec.ts b/backend/__tests__/utils/pb.spec.ts index cedd37487..182da3c63 100644 --- a/backend/__tests__/utils/pb.spec.ts +++ b/backend/__tests__/utils/pb.spec.ts @@ -1,8 +1,8 @@ import _ from "lodash"; import * as pb from "../../src/utils/pb"; -import { Mode, PersonalBests } from "@monkeytype/contracts/schemas/shared"; -import { Result } from "@monkeytype/contracts/schemas/results"; -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { Mode, PersonalBests } from "@monkeytype/schemas/shared"; +import { Result } from "@monkeytype/schemas/results"; +import { FunboxName } from "@monkeytype/schemas/configs"; describe("Pb Utils", () => { it("funboxCatGetPb", () => { diff --git a/backend/package.json b/backend/package.json index 228d227d9..7ebd4153d 100644 --- a/backend/package.json +++ b/backend/package.json @@ -67,6 +67,7 @@ "devDependencies": { "@monkeytype/eslint-config": "workspace:*", "@monkeytype/oxlint-config": "workspace:*", + "@monkeytype/schemas": "workspace:*", "@monkeytype/typescript-config": "workspace:*", "@redocly/cli": "1.28.5", "@types/bcrypt": "5.0.2", diff --git a/backend/scripts/openapi.ts b/backend/scripts/openapi.ts index 80b6aaf35..d42e06d05 100644 --- a/backend/scripts/openapi.ts +++ b/backend/scripts/openapi.ts @@ -1,10 +1,7 @@ import { generateOpenApi } from "@ts-rest/open-api"; import { contract } from "@monkeytype/contracts/index"; import { writeFileSync, mkdirSync } from "fs"; -import { - EndpointMetadata, - PermissionId, -} from "@monkeytype/contracts/schemas/api"; +import { EndpointMetadata, PermissionId } from "@monkeytype/contracts/util/api"; import type { OpenAPIObject, OperationObject } from "openapi3-ts"; import { RateLimitIds, @@ -277,7 +274,7 @@ function addRequiredConfiguration( if (metadata === undefined || metadata.requireConfiguration === undefined) return; - //@ts-expect-error + //@ts-expect-error somehow path doesnt exist operation.description += `**Required configuration:** This operation can only be called if the [configuration](#tag/configuration/operation/configuration.get) for \`${metadata.requireConfiguration.path}\` is \`true\`.\n\n`; } diff --git a/backend/src/anticheat/index.ts b/backend/src/anticheat/index.ts index 715b799e5..5249ebaa9 100644 --- a/backend/src/anticheat/index.ts +++ b/backend/src/anticheat/index.ts @@ -1,9 +1,6 @@ const hasAnticheatImplemented = process.env["BYPASS_ANTICHEAT"] === "true"; -import { - CompletedEvent, - KeyStats, -} from "@monkeytype/contracts/schemas/results"; +import { CompletedEvent, KeyStats } from "@monkeytype/schemas/results"; import Logger from "../utils/logger"; export function implemented(): boolean { diff --git a/backend/src/api/controllers/admin.ts b/backend/src/api/controllers/admin.ts index 8adbbd013..02df86c98 100644 --- a/backend/src/api/controllers/admin.ts +++ b/backend/src/api/controllers/admin.ts @@ -13,7 +13,7 @@ import { ToggleBanResponse, } from "@monkeytype/contracts/admin"; import MonkeyError, { getErrorMessage } from "../../utils/error"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { addImportantLog } from "../../dal/logs"; import { MonkeyRequest } from "../types"; diff --git a/backend/src/api/controllers/ape-key.ts b/backend/src/api/controllers/ape-key.ts index 5ff616f34..828d7c3a0 100644 --- a/backend/src/api/controllers/ape-key.ts +++ b/backend/src/api/controllers/ape-key.ts @@ -14,7 +14,7 @@ import { EditApeKeyRequest, GetApeKeyResponse, } from "@monkeytype/contracts/ape-keys"; -import { ApeKey } from "@monkeytype/contracts/schemas/ape-keys"; +import { ApeKey } from "@monkeytype/schemas/ape-keys"; import { MonkeyRequest } from "../types"; function cleanApeKey(apeKey: ApeKeysDAL.DBApeKey): ApeKey { diff --git a/backend/src/api/controllers/config.ts b/backend/src/api/controllers/config.ts index afd68c875..36f6695d4 100644 --- a/backend/src/api/controllers/config.ts +++ b/backend/src/api/controllers/config.ts @@ -1,4 +1,4 @@ -import { PartialConfig } from "@monkeytype/contracts/schemas/configs"; +import { PartialConfig } from "@monkeytype/schemas/configs"; import * as ConfigDAL from "../../dal/config"; import { MonkeyResponse } from "../../utils/monkey-response"; import { GetConfigResponse } from "@monkeytype/contracts/configs"; diff --git a/backend/src/api/controllers/dev.ts b/backend/src/api/controllers/dev.ts index 512625c25..add8db0c0 100644 --- a/backend/src/api/controllers/dev.ts +++ b/backend/src/api/controllers/dev.ts @@ -9,11 +9,7 @@ import { ObjectId } from "mongodb"; import * as LeaderboardDal from "../../dal/leaderboards"; import MonkeyError from "../../utils/error"; -import { - Mode, - PersonalBest, - PersonalBests, -} from "@monkeytype/contracts/schemas/shared"; +import { Mode, PersonalBest, PersonalBests } from "@monkeytype/schemas/shared"; import { GenerateDataRequest, GenerateDataResponse, @@ -22,7 +18,7 @@ import { roundTo2 } from "@monkeytype/util/numbers"; import { MonkeyRequest } from "../types"; import { DBResult } from "../../utils/result"; import { LbPersonalBests } from "../../utils/pb"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; const CREATE_RESULT_DEFAULT_OPTIONS = { firstTestTimestamp: DateUtils.startOfDay(new UTCDate(Date.now())).valueOf(), diff --git a/backend/src/api/controllers/leaderboard.ts b/backend/src/api/controllers/leaderboard.ts index ffa9b3746..2e27c5509 100644 --- a/backend/src/api/controllers/leaderboard.ts +++ b/backend/src/api/controllers/leaderboard.ts @@ -19,7 +19,7 @@ import { GetWeeklyXpLeaderboardRankResponse, GetWeeklyXpLeaderboardResponse, } from "@monkeytype/contracts/leaderboards"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { getCurrentDayTimestamp, getCurrentWeekTimestamp, diff --git a/backend/src/api/controllers/preset.ts b/backend/src/api/controllers/preset.ts index 361acdd7c..a811d2f87 100644 --- a/backend/src/api/controllers/preset.ts +++ b/backend/src/api/controllers/preset.ts @@ -7,7 +7,7 @@ import { import * as PresetDAL from "../../dal/preset"; import { MonkeyResponse } from "../../utils/monkey-response"; import { replaceObjectId } from "../../utils/misc"; -import { EditPresetRequest } from "@monkeytype/contracts/schemas/presets"; +import { EditPresetRequest } from "@monkeytype/schemas/presets"; import { MonkeyRequest } from "../types"; export async function getPresets( diff --git a/backend/src/api/controllers/quote.ts b/backend/src/api/controllers/quote.ts index 9b583452c..6862c811d 100644 --- a/backend/src/api/controllers/quote.ts +++ b/backend/src/api/controllers/quote.ts @@ -23,7 +23,7 @@ import { } from "@monkeytype/contracts/quotes"; import { replaceObjectId, replaceObjectIds } from "../../utils/misc"; import { MonkeyRequest } from "../types"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; async function verifyCaptcha(captcha: string): Promise { if (!(await verify(captcha))) { diff --git a/backend/src/api/controllers/result.ts b/backend/src/api/controllers/result.ts index 5656d4e64..96c085482 100644 --- a/backend/src/api/controllers/result.ts +++ b/backend/src/api/controllers/result.ts @@ -31,7 +31,7 @@ import { DBResult, replaceLegacyValues, } from "../../utils/result"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { addImportantLog, addLog } from "../../dal/logs"; import { AddResultRequest, @@ -50,8 +50,8 @@ import { Result, PostResultResponse, XpBreakdown, -} from "@monkeytype/contracts/schemas/results"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +} from "@monkeytype/schemas/results"; +import { Mode } from "@monkeytype/schemas/shared"; import { isSafeNumber, mapRange, diff --git a/backend/src/api/controllers/user.ts b/backend/src/api/controllers/user.ts index d1a40d1af..348b66724 100644 --- a/backend/src/api/controllers/user.ts +++ b/backend/src/api/controllers/user.ts @@ -39,7 +39,7 @@ import { CountByYearAndDay, TestActivity, UserProfileDetails, -} from "@monkeytype/contracts/schemas/users"; +} from "@monkeytype/schemas/users"; import { addImportantLog, addLog, deleteUserLogs } from "../../dal/logs"; import { sendForgotPasswordEmail as authSendForgotPasswordEmail } from "../../utils/auth"; import { diff --git a/backend/src/api/routes/index.ts b/backend/src/api/routes/index.ts index 91d061fd8..d416c9f3b 100644 --- a/backend/src/api/routes/index.ts +++ b/backend/src/api/routes/index.ts @@ -31,7 +31,7 @@ import { getLiveConfiguration } from "../../init/configuration"; import Logger from "../../utils/logger"; import { createExpressEndpoints, initServer } from "@ts-rest/express"; import { ZodIssue } from "zod"; -import { MonkeyValidationError } from "@monkeytype/contracts/schemas/api"; +import { MonkeyValidationError } from "@monkeytype/contracts/util/api"; import { authenticateTsRestRequest } from "../../middlewares/auth"; import { rateLimitRequest } from "../../middlewares/rate-limit"; import { verifyPermissions } from "../../middlewares/permission"; diff --git a/backend/src/constants/base-configuration.ts b/backend/src/constants/base-configuration.ts index c4c77a770..d69f74e46 100644 --- a/backend/src/constants/base-configuration.ts +++ b/backend/src/constants/base-configuration.ts @@ -1,4 +1,4 @@ -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; /** * This is the base schema for the configuration of the API backend. diff --git a/backend/src/dal/ape-keys.ts b/backend/src/dal/ape-keys.ts index 2cf9ce8a3..78a1153a1 100644 --- a/backend/src/dal/ape-keys.ts +++ b/backend/src/dal/ape-keys.ts @@ -8,7 +8,7 @@ import { Collection, } from "mongodb"; import MonkeyError from "../utils/error"; -import { ApeKey } from "@monkeytype/contracts/schemas/ape-keys"; +import { ApeKey } from "@monkeytype/schemas/ape-keys"; export type DBApeKey = ApeKey & { _id: ObjectId; diff --git a/backend/src/dal/blocklist.ts b/backend/src/dal/blocklist.ts index 5c0cf9c0d..63827f5ad 100644 --- a/backend/src/dal/blocklist.ts +++ b/backend/src/dal/blocklist.ts @@ -1,7 +1,7 @@ import { Collection } from "mongodb"; import * as db from "../init/db"; import { createHash } from "crypto"; -import { User } from "@monkeytype/contracts/schemas/users"; +import { User } from "@monkeytype/schemas/users"; import { WithObjectId } from "../utils/misc"; type BlocklistEntryProperties = Pick; diff --git a/backend/src/dal/config.ts b/backend/src/dal/config.ts index a11b32fe5..e94ef0216 100644 --- a/backend/src/dal/config.ts +++ b/backend/src/dal/config.ts @@ -1,7 +1,7 @@ import { Collection, ObjectId, UpdateResult } from "mongodb"; import * as db from "../init/db"; import _ from "lodash"; -import { Config, PartialConfig } from "@monkeytype/contracts/schemas/configs"; +import { Config, PartialConfig } from "@monkeytype/schemas/configs"; const configLegacyProperties = [ "swapEscAndTab", diff --git a/backend/src/dal/leaderboards.ts b/backend/src/dal/leaderboards.ts index a724c4de1..86269fb84 100644 --- a/backend/src/dal/leaderboards.ts +++ b/backend/src/dal/leaderboards.ts @@ -10,7 +10,7 @@ import { import { addLog } from "./logs"; import { Collection, ObjectId } from "mongodb"; -import { LeaderboardEntry } from "@monkeytype/contracts/schemas/leaderboards"; +import { LeaderboardEntry } from "@monkeytype/schemas/leaderboards"; import { omit } from "lodash"; import { DBUser, getUsersCollection } from "./user"; import MonkeyError from "../utils/error"; diff --git a/backend/src/dal/new-quotes.ts b/backend/src/dal/new-quotes.ts index 0f17d7aab..c562e47bc 100644 --- a/backend/src/dal/new-quotes.ts +++ b/backend/src/dal/new-quotes.ts @@ -6,12 +6,12 @@ import { readFile } from "node:fs/promises"; import * as db from "../init/db"; import MonkeyError from "../utils/error"; import { compareTwoStrings } from "string-similarity"; -import { ApproveQuote, Quote } from "@monkeytype/contracts/schemas/quotes"; +import { ApproveQuote, Quote } from "@monkeytype/schemas/quotes"; import { WithObjectId } from "../utils/misc"; import { parseWithSchema as parseJsonWithSchema } from "@monkeytype/util/json"; import { z } from "zod"; import { tryCatchSync } from "@monkeytype/util/trycatch"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; const JsonQuoteSchema = z.object({ text: z.string(), diff --git a/backend/src/dal/preset.ts b/backend/src/dal/preset.ts index 0ffb3075e..aae2d3c42 100644 --- a/backend/src/dal/preset.ts +++ b/backend/src/dal/preset.ts @@ -1,10 +1,7 @@ import MonkeyError from "../utils/error"; import * as db from "../init/db"; import { ObjectId, type Filter, Collection, type WithId } from "mongodb"; -import { - EditPresetRequest, - Preset, -} from "@monkeytype/contracts/schemas/presets"; +import { EditPresetRequest, Preset } from "@monkeytype/schemas/presets"; import { omit } from "lodash"; import { WithObjectId } from "../utils/misc"; diff --git a/backend/src/dal/psa.ts b/backend/src/dal/psa.ts index 2f57bb2b0..817e341f7 100644 --- a/backend/src/dal/psa.ts +++ b/backend/src/dal/psa.ts @@ -1,4 +1,4 @@ -import { PSA } from "@monkeytype/contracts/schemas/psas"; +import { PSA } from "@monkeytype/schemas/psas"; import * as db from "../init/db"; import { WithObjectId } from "../utils/misc"; diff --git a/backend/src/dal/public.ts b/backend/src/dal/public.ts index 7791935fd..edef96102 100644 --- a/backend/src/dal/public.ts +++ b/backend/src/dal/public.ts @@ -1,10 +1,7 @@ import { roundTo2 } from "@monkeytype/util/numbers"; import * as db from "../init/db"; import MonkeyError from "../utils/error"; -import { - TypingStats, - SpeedHistogram, -} from "@monkeytype/contracts/schemas/public"; +import { TypingStats, SpeedHistogram } from "@monkeytype/schemas/public"; export type PublicTypingStatsDB = TypingStats & { _id: "stats" }; export type PublicSpeedStatsDB = { diff --git a/backend/src/dal/quote-ratings.ts b/backend/src/dal/quote-ratings.ts index c7b1f3cf3..075094d39 100644 --- a/backend/src/dal/quote-ratings.ts +++ b/backend/src/dal/quote-ratings.ts @@ -1,8 +1,8 @@ -import { QuoteRating } from "@monkeytype/contracts/schemas/quotes"; +import { QuoteRating } from "@monkeytype/schemas/quotes"; import * as db from "../init/db"; import { Collection } from "mongodb"; import { WithObjectId } from "../utils/misc"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; type DBQuoteRating = WithObjectId; diff --git a/backend/src/dal/result.ts b/backend/src/dal/result.ts index f5708f60b..499734086 100644 --- a/backend/src/dal/result.ts +++ b/backend/src/dal/result.ts @@ -10,7 +10,7 @@ import * as db from "../init/db"; import { getUser, getTags } from "./user"; import { DBResult } from "../utils/result"; -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; import { tryCatch } from "@monkeytype/util/trycatch"; export const getResultCollection = (): Collection => diff --git a/backend/src/dal/user.ts b/backend/src/dal/user.ts index 9bc4f3896..17b0615ad 100644 --- a/backend/src/dal/user.ts +++ b/backend/src/dal/user.ts @@ -26,15 +26,11 @@ import { UserTag, User, CountByYearAndDay, -} from "@monkeytype/contracts/schemas/users"; -import { - Mode, - Mode2, - PersonalBest, -} from "@monkeytype/contracts/schemas/shared"; +} from "@monkeytype/schemas/users"; +import { Mode, Mode2, PersonalBest } from "@monkeytype/schemas/shared"; import { addImportantLog } from "./logs"; -import { Result as ResultType } from "@monkeytype/contracts/schemas/results"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Result as ResultType } from "@monkeytype/schemas/results"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { isToday, isYesterday } from "@monkeytype/util/date-and-time"; import GeorgeQueue from "../queues/george-queue"; diff --git a/backend/src/init/configuration.ts b/backend/src/init/configuration.ts index 99d316d52..6fc5e218c 100644 --- a/backend/src/init/configuration.ts +++ b/backend/src/init/configuration.ts @@ -4,7 +4,7 @@ import { ObjectId } from "mongodb"; import Logger from "../utils/logger"; import { identity } from "../utils/misc"; import { BASE_CONFIGURATION } from "../constants/base-configuration"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { addLog } from "../dal/logs"; import { PartialConfiguration, diff --git a/backend/src/middlewares/auth.ts b/backend/src/middlewares/auth.ts index b8ac87be3..3c04c981c 100644 --- a/backend/src/middlewares/auth.ts +++ b/backend/src/middlewares/auth.ts @@ -17,8 +17,8 @@ import { AppRoute, AppRouter } from "@ts-rest/core"; import { EndpointMetadata, RequestAuthenticationOptions, -} from "@monkeytype/contracts/schemas/api"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +} from "@monkeytype/contracts/util/api"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { getMetadata } from "./utility"; import { TsRestRequestWithContext } from "../api/types"; diff --git a/backend/src/middlewares/configuration.ts b/backend/src/middlewares/configuration.ts index 02b04ecf5..cda2f4147 100644 --- a/backend/src/middlewares/configuration.ts +++ b/backend/src/middlewares/configuration.ts @@ -1,8 +1,8 @@ import type { Response, NextFunction } from "express"; import { TsRestRequestHandler } from "@ts-rest/express"; -import { EndpointMetadata } from "@monkeytype/contracts/schemas/api"; +import { EndpointMetadata } from "@monkeytype/contracts/util/api"; import MonkeyError from "../utils/error"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { ConfigurationPath, RequireConfiguration, diff --git a/backend/src/middlewares/context.ts b/backend/src/middlewares/context.ts index ae76941a1..e8c6d4ed5 100644 --- a/backend/src/middlewares/context.ts +++ b/backend/src/middlewares/context.ts @@ -5,7 +5,7 @@ import type { Request as ExpressRequest, } from "express"; import { DecodedToken } from "./auth"; -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import { ExpressRequestWithContext } from "../api/types"; export type Context = { diff --git a/backend/src/middlewares/permission.ts b/backend/src/middlewares/permission.ts index 7c40b0385..4fdcdaddc 100644 --- a/backend/src/middlewares/permission.ts +++ b/backend/src/middlewares/permission.ts @@ -8,7 +8,7 @@ import { EndpointMetadata, RequestAuthenticationOptions, PermissionId, -} from "@monkeytype/contracts/schemas/api"; +} from "@monkeytype/contracts/util/api"; import { isDevEnvironment } from "../utils/misc"; import { getMetadata } from "./utility"; import { TsRestRequestWithContext } from "../api/types"; diff --git a/backend/src/middlewares/utility.ts b/backend/src/middlewares/utility.ts index 28d210bf5..8964f9de5 100644 --- a/backend/src/middlewares/utility.ts +++ b/backend/src/middlewares/utility.ts @@ -3,7 +3,7 @@ import type { Request, Response, NextFunction, RequestHandler } from "express"; import { recordClientVersion as prometheusRecordClientVersion } from "../utils/prometheus"; import { isDevEnvironment } from "../utils/misc"; import MonkeyError from "../utils/error"; -import { EndpointMetadata } from "@monkeytype/contracts/schemas/api"; +import { EndpointMetadata } from "@monkeytype/contracts/util/api"; import { TsRestRequestWithContext } from "../api/types"; /** diff --git a/backend/src/queues/george-queue.ts b/backend/src/queues/george-queue.ts index 4e8d59942..6d2b31380 100644 --- a/backend/src/queues/george-queue.ts +++ b/backend/src/queues/george-queue.ts @@ -1,4 +1,4 @@ -import { LeaderboardEntry } from "@monkeytype/contracts/schemas/leaderboards"; +import { LeaderboardEntry } from "@monkeytype/schemas/leaderboards"; import { MonkeyQueue } from "./monkey-queue"; const QUEUE_NAME = "george-tasks"; diff --git a/backend/src/queues/later-queue.ts b/backend/src/queues/later-queue.ts index 7108cf60c..71d3db22b 100644 --- a/backend/src/queues/later-queue.ts +++ b/backend/src/queues/later-queue.ts @@ -1,7 +1,7 @@ import LRUCache from "lru-cache"; import Logger from "../utils/logger"; import { MonkeyQueue } from "./monkey-queue"; -import { ValidModeRule } from "@monkeytype/contracts/schemas/configuration"; +import { ValidModeRule } from "@monkeytype/schemas/configuration"; import { getCurrentDayTimestamp, getCurrentWeekTimestamp, diff --git a/backend/src/services/weekly-xp-leaderboard.ts b/backend/src/services/weekly-xp-leaderboard.ts index 7f79256ff..310ae6627 100644 --- a/backend/src/services/weekly-xp-leaderboard.ts +++ b/backend/src/services/weekly-xp-leaderboard.ts @@ -1,4 +1,4 @@ -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import * as RedisClient from "../init/redis"; import LaterQueue from "../queues/later-queue"; import { @@ -6,7 +6,7 @@ import { RedisXpLeaderboardEntrySchema, RedisXpLeaderboardScore, XpLeaderboardEntry, -} from "@monkeytype/contracts/schemas/leaderboards"; +} from "@monkeytype/schemas/leaderboards"; import { getCurrentWeekTimestamp } from "@monkeytype/util/date-and-time"; import MonkeyError from "../utils/error"; import { omit } from "lodash"; diff --git a/backend/src/utils/daily-leaderboards.ts b/backend/src/utils/daily-leaderboards.ts index b0f160046..f8661186d 100644 --- a/backend/src/utils/daily-leaderboards.ts +++ b/backend/src/utils/daily-leaderboards.ts @@ -6,14 +6,14 @@ import { parseWithSchema as parseJsonWithSchema } from "@monkeytype/util/json"; import { Configuration, ValidModeRule, -} from "@monkeytype/contracts/schemas/configuration"; +} from "@monkeytype/schemas/configuration"; import { LeaderboardEntry, RedisDailyLeaderboardEntry, RedisDailyLeaderboardEntrySchema, -} from "@monkeytype/contracts/schemas/leaderboards"; +} from "@monkeytype/schemas/leaderboards"; import MonkeyError from "./error"; -import { Mode, Mode2 } from "@monkeytype/contracts/schemas/shared"; +import { Mode, Mode2 } from "@monkeytype/schemas/shared"; import { getCurrentDayTimestamp } from "@monkeytype/util/date-and-time"; const dailyLeaderboardNamespace = "monkeytype:dailyleaderboard"; diff --git a/backend/src/utils/error.ts b/backend/src/utils/error.ts index 2646c55c1..8b04b2d5c 100644 --- a/backend/src/utils/error.ts +++ b/backend/src/utils/error.ts @@ -1,6 +1,6 @@ import { v4 as uuidv4 } from "uuid"; import { isDevEnvironment } from "./misc"; -import { MonkeyServerErrorType } from "@monkeytype/contracts/schemas/api"; +import { MonkeyServerErrorType } from "@monkeytype/contracts/util/api"; import { FirebaseError } from "firebase-admin"; type FirebaseErrorParent = { diff --git a/backend/src/utils/monkey-mail.ts b/backend/src/utils/monkey-mail.ts index d97bb8665..26be81876 100644 --- a/backend/src/utils/monkey-mail.ts +++ b/backend/src/utils/monkey-mail.ts @@ -1,4 +1,4 @@ -import { MonkeyMail } from "@monkeytype/contracts/schemas/users"; +import { MonkeyMail } from "@monkeytype/schemas/users"; import { v4 } from "uuid"; type MonkeyMailOptions = Partial>; diff --git a/backend/src/utils/monkey-response.ts b/backend/src/utils/monkey-response.ts index 794575991..39b4c5b5d 100644 --- a/backend/src/utils/monkey-response.ts +++ b/backend/src/utils/monkey-response.ts @@ -1,4 +1,4 @@ -import { MonkeyResponseType } from "@monkeytype/contracts/schemas/api"; +import { MonkeyResponseType } from "@monkeytype/contracts/util/api"; export type MonkeyDataAware = { data: T | null; diff --git a/backend/src/utils/pb.ts b/backend/src/utils/pb.ts index 2ddd5b2b0..80897febb 100644 --- a/backend/src/utils/pb.ts +++ b/backend/src/utils/pb.ts @@ -1,10 +1,6 @@ import _ from "lodash"; -import { - Mode, - PersonalBest, - PersonalBests, -} from "@monkeytype/contracts/schemas/shared"; -import { Result as ResultType } from "@monkeytype/contracts/schemas/results"; +import { Mode, PersonalBest, PersonalBests } from "@monkeytype/schemas/shared"; +import { Result as ResultType } from "@monkeytype/schemas/results"; import { getFunbox } from "@monkeytype/funbox"; export type LbPersonalBests = { diff --git a/backend/src/utils/prometheus.ts b/backend/src/utils/prometheus.ts index 3f0af8cc5..9761e5d2f 100644 --- a/backend/src/utils/prometheus.ts +++ b/backend/src/utils/prometheus.ts @@ -1,6 +1,6 @@ import "dotenv/config"; import { Counter, Histogram, Gauge } from "prom-client"; -import { CompletedEvent } from "@monkeytype/contracts/schemas/results"; +import { CompletedEvent } from "@monkeytype/schemas/results"; import { Request } from "express"; const auth = new Counter({ diff --git a/backend/src/utils/result.ts b/backend/src/utils/result.ts index 51f4f3cde..c59b92777 100644 --- a/backend/src/utils/result.ts +++ b/backend/src/utils/result.ts @@ -1,5 +1,5 @@ -import { CompletedEvent, Result } from "@monkeytype/contracts/schemas/results"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { CompletedEvent, Result } from "@monkeytype/schemas/results"; +import { Mode } from "@monkeytype/schemas/shared"; import { ObjectId } from "mongodb"; import { WithObjectId } from "./misc"; diff --git a/backend/src/utils/validation.ts b/backend/src/utils/validation.ts index 12a958a3c..66bc2b4a5 100644 --- a/backend/src/utils/validation.ts +++ b/backend/src/utils/validation.ts @@ -1,5 +1,5 @@ import _ from "lodash"; -import { CompletedEvent } from "@monkeytype/contracts/schemas/results"; +import { CompletedEvent } from "@monkeytype/schemas/results"; export function isTestTooShort(result: CompletedEvent): boolean { const { mode, mode2, customText, testDuration, bailedOut } = result; diff --git a/backend/src/workers/later-worker.ts b/backend/src/workers/later-worker.ts index 39d9e6a0d..2ca2ea8f3 100644 --- a/backend/src/workers/later-worker.ts +++ b/backend/src/workers/later-worker.ts @@ -15,7 +15,7 @@ import LaterQueue, { } from "../queues/later-queue"; import { recordTimeToCompleteJob } from "../utils/prometheus"; import { WeeklyXpLeaderboard } from "../services/weekly-xp-leaderboard"; -import { MonkeyMail } from "@monkeytype/contracts/schemas/users"; +import { MonkeyMail } from "@monkeytype/schemas/users"; import { isSafeNumber, mapRange } from "@monkeytype/util/numbers"; async function handleDailyLeaderboardResults( diff --git a/frontend/__tests__/constants/languages.spec.ts b/frontend/__tests__/constants/languages.spec.ts index 873da2891..c406e8429 100644 --- a/frontend/__tests__/constants/languages.spec.ts +++ b/frontend/__tests__/constants/languages.spec.ts @@ -1,6 +1,6 @@ import { readdirSync } from "fs"; import { LanguageGroups, LanguageList } from "../../src/ts/constants/languages"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; describe("languages", () => { describe("LanguageList", () => { diff --git a/frontend/__tests__/constants/layouts.spec.ts b/frontend/__tests__/constants/layouts.spec.ts index 13881b15e..c3349fbf7 100644 --- a/frontend/__tests__/constants/layouts.spec.ts +++ b/frontend/__tests__/constants/layouts.spec.ts @@ -1,6 +1,6 @@ import { readdirSync } from "fs"; import { LayoutsList } from "../../src/ts/constants/layouts"; -import { LayoutName } from "@monkeytype/contracts/schemas/layouts"; +import { LayoutName } from "@monkeytype/schemas/layouts"; describe("layouts", () => { it("should not have duplicates", () => { diff --git a/frontend/__tests__/root/config.spec.ts b/frontend/__tests__/root/config.spec.ts index c3f4c2427..2fd5860a2 100644 --- a/frontend/__tests__/root/config.spec.ts +++ b/frontend/__tests__/root/config.spec.ts @@ -5,7 +5,7 @@ import { FunboxName, ConfigKey, Config as ConfigType, -} from "@monkeytype/contracts/schemas/configs"; +} from "@monkeytype/schemas/configs"; import { randomBytes } from "crypto"; import { vi } from "vitest"; import * as FunboxValidation from "../../src/ts/test/funbox/funbox-validation"; diff --git a/frontend/__tests__/test/funbox/funbox-validation.spec.ts b/frontend/__tests__/test/funbox/funbox-validation.spec.ts index 03dd7404f..48d9e484c 100644 --- a/frontend/__tests__/test/funbox/funbox-validation.spec.ts +++ b/frontend/__tests__/test/funbox/funbox-validation.spec.ts @@ -1,7 +1,7 @@ import { canSetConfigWithCurrentFunboxes } from "../../../src/ts/test/funbox/funbox-validation"; import * as Notifications from "../../../src/ts/elements/notifications"; -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; describe("funbox-validation", () => { describe("canSetConfigWithCurrentFunboxes", () => { const addNotificationMock = vi.spyOn(Notifications, "add"); diff --git a/frontend/__tests__/utils/config.spec.ts b/frontend/__tests__/utils/config.spec.ts index 09ed2f718..1f7049f5a 100644 --- a/frontend/__tests__/utils/config.spec.ts +++ b/frontend/__tests__/utils/config.spec.ts @@ -1,6 +1,6 @@ import { getDefaultConfig } from "../../src/ts/constants/default-config"; import { migrateConfig } from "../../src/ts/utils/config"; -import { PartialConfig } from "@monkeytype/contracts/schemas/configs"; +import { PartialConfig } from "@monkeytype/schemas/configs"; const defaultConfig = getDefaultConfig(); diff --git a/frontend/__tests__/utils/format.spec.ts b/frontend/__tests__/utils/format.spec.ts index 7b348f735..b9718fd96 100644 --- a/frontend/__tests__/utils/format.spec.ts +++ b/frontend/__tests__/utils/format.spec.ts @@ -1,6 +1,6 @@ import { getDefaultConfig } from "../../src/ts/constants/default-config"; import { Formatting } from "../../src/ts/utils/format"; -import { Config } from "@monkeytype/contracts/schemas/configs"; +import { Config } from "@monkeytype/schemas/configs"; describe("format.ts", () => { describe("typingsSpeed", () => { diff --git a/frontend/__tests__/utils/url-handler.spec.ts b/frontend/__tests__/utils/url-handler.spec.ts index 18504b90c..f26013b0c 100644 --- a/frontend/__tests__/utils/url-handler.spec.ts +++ b/frontend/__tests__/utils/url-handler.spec.ts @@ -1,5 +1,5 @@ // eslint-disable no-useless-escape -import { Difficulty, Mode, Mode2 } from "@monkeytype/contracts/schemas/shared"; +import { Difficulty, Mode, Mode2 } from "@monkeytype/schemas/shared"; import { compressToURI } from "lz-ts"; import * as UpdateConfig from "../../src/ts/config"; import * as Notifications from "../../src/ts/elements/notifications"; @@ -8,7 +8,7 @@ import * as TestLogic from "../../src/ts/test/test-logic"; import * as TestState from "../../src/ts/test/test-state"; import * as Misc from "../../src/ts/utils/misc"; import { loadTestSettingsFromUrl } from "../../src/ts/utils/url-handler"; -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; //mock modules to avoid dependencies vi.mock("../../src/ts/test/test-logic", () => ({ diff --git a/frontend/package.json b/frontend/package.json index 9d492ab7d..22d037d0b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -36,6 +36,7 @@ "@fortawesome/fontawesome-free": "5.15.4", "@monkeytype/eslint-config": "workspace:*", "@monkeytype/oxlint-config": "workspace:*", + "@monkeytype/schemas": "workspace:*", "@monkeytype/typescript-config": "workspace:*", "@types/canvas-confetti": "1.4.3", "@types/chartjs-plugin-trendline": "1.0.1", diff --git a/frontend/src/ts/ape/server-configuration.ts b/frontend/src/ts/ape/server-configuration.ts index b7a08d498..96ca23f2e 100644 --- a/frontend/src/ts/ape/server-configuration.ts +++ b/frontend/src/ts/ape/server-configuration.ts @@ -1,4 +1,4 @@ -import { Configuration } from "@monkeytype/contracts/schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; import Ape from "."; import { promiseWithResolvers } from "../utils/misc"; diff --git a/frontend/src/ts/commandline/lists.ts b/frontend/src/ts/commandline/lists.ts index cb5bd9ff7..a05e1b584 100644 --- a/frontend/src/ts/commandline/lists.ts +++ b/frontend/src/ts/commandline/lists.ts @@ -104,7 +104,7 @@ import { CustomLayoutFluidSchema, CustomPolyglot, CustomPolyglotSchema, -} from "@monkeytype/contracts/schemas/configs"; +} from "@monkeytype/schemas/configs"; import { Command, CommandsSubgroup, withValidation } from "./types"; import * as TestLogic from "../test/test-logic"; import * as ActivePage from "../states/active-page"; diff --git a/frontend/src/ts/commandline/lists/add-or-remove-theme-to-favorites.ts b/frontend/src/ts/commandline/lists/add-or-remove-theme-to-favorites.ts index d1554824b..0ddd9462d 100644 --- a/frontend/src/ts/commandline/lists/add-or-remove-theme-to-favorites.ts +++ b/frontend/src/ts/commandline/lists/add-or-remove-theme-to-favorites.ts @@ -1,4 +1,4 @@ -import { ThemeName } from "@monkeytype/contracts/schemas/configs"; +import { ThemeName } from "@monkeytype/schemas/configs"; import Config, * as UpdateConfig from "../../config"; import { randomTheme } from "../../controllers/theme-controller"; import { Command } from "../types"; diff --git a/frontend/src/ts/commandline/lists/font-size.ts b/frontend/src/ts/commandline/lists/font-size.ts index 7960d60b0..63245fc12 100644 --- a/frontend/src/ts/commandline/lists/font-size.ts +++ b/frontend/src/ts/commandline/lists/font-size.ts @@ -1,4 +1,4 @@ -import { FontSizeSchema } from "@monkeytype/contracts/schemas/configs"; +import { FontSizeSchema } from "@monkeytype/schemas/configs"; import Config, * as UpdateConfig from "../../config"; import { Command, withValidation } from "../types"; diff --git a/frontend/src/ts/commandline/lists/keymap-layouts.ts b/frontend/src/ts/commandline/lists/keymap-layouts.ts index b61db3861..54e082369 100644 --- a/frontend/src/ts/commandline/lists/keymap-layouts.ts +++ b/frontend/src/ts/commandline/lists/keymap-layouts.ts @@ -1,4 +1,4 @@ -import { KeymapLayout } from "@monkeytype/contracts/schemas/configs"; +import { KeymapLayout } from "@monkeytype/schemas/configs"; import * as UpdateConfig from "../../config"; import { LayoutsList } from "../../constants/layouts"; import * as TestLogic from "../../test/test-logic"; diff --git a/frontend/src/ts/commandline/types.ts b/frontend/src/ts/commandline/types.ts index fe3483b47..ad1c7ecbf 100644 --- a/frontend/src/ts/commandline/types.ts +++ b/frontend/src/ts/commandline/types.ts @@ -1,4 +1,4 @@ -import { Config } from "@monkeytype/contracts/schemas/configs"; +import { Config } from "@monkeytype/schemas/configs"; import AnimatedModal from "../utils/animated-modal"; import { z } from "zod"; diff --git a/frontend/src/ts/config.ts b/frontend/src/ts/config.ts index 345a2a040..5738b650f 100644 --- a/frontend/src/ts/config.ts +++ b/frontend/src/ts/config.ts @@ -17,10 +17,10 @@ import { reloadAfter, typedKeys, } from "./utils/misc"; -import * as ConfigSchemas from "@monkeytype/contracts/schemas/configs"; -import { Config, FunboxName } from "@monkeytype/contracts/schemas/configs"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import * as ConfigSchemas from "@monkeytype/schemas/configs"; +import { Config, FunboxName } from "@monkeytype/schemas/configs"; +import { Mode } from "@monkeytype/schemas/shared"; +import { Language } from "@monkeytype/schemas/languages"; import { LocalStorageWithSchema } from "./utils/local-storage-with-schema"; import { migrateConfig } from "./utils/config"; import { roundTo1 } from "@monkeytype/util/numbers"; diff --git a/frontend/src/ts/constants/default-config.ts b/frontend/src/ts/constants/default-config.ts index 7d49be1eb..7ae2db109 100644 --- a/frontend/src/ts/constants/default-config.ts +++ b/frontend/src/ts/constants/default-config.ts @@ -1,7 +1,4 @@ -import { - Config, - CustomThemeColors, -} from "@monkeytype/contracts/schemas/configs"; +import { Config, CustomThemeColors } from "@monkeytype/schemas/configs"; import { deepClone } from "../utils/misc"; const obj = { diff --git a/frontend/src/ts/constants/default-result-filters.ts b/frontend/src/ts/constants/default-result-filters.ts index b18f66b36..298fef6d1 100644 --- a/frontend/src/ts/constants/default-result-filters.ts +++ b/frontend/src/ts/constants/default-result-filters.ts @@ -1,4 +1,4 @@ -import { ResultFilters } from "@monkeytype/contracts/schemas/users"; +import { ResultFilters } from "@monkeytype/schemas/users"; import { deepClone } from "../utils/misc"; import { LanguageList } from "./languages"; import { getFunboxNames } from "@monkeytype/funbox"; diff --git a/frontend/src/ts/constants/default-snapshot.ts b/frontend/src/ts/constants/default-snapshot.ts index 8b5a63a4f..fc03037eb 100644 --- a/frontend/src/ts/constants/default-snapshot.ts +++ b/frontend/src/ts/constants/default-snapshot.ts @@ -3,18 +3,18 @@ import { User, UserProfileDetails, UserTag, -} from "@monkeytype/contracts/schemas/users"; +} from "@monkeytype/schemas/users"; import { deepClone } from "../utils/misc"; import { getDefaultConfig } from "./default-config"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; -import { Result } from "@monkeytype/contracts/schemas/results"; -import { Config, FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { Mode } from "@monkeytype/schemas/shared"; +import { Result } from "@monkeytype/schemas/results"; +import { Config, FunboxName } from "@monkeytype/schemas/configs"; import { ModifiableTestActivityCalendar, TestActivityCalendar, } from "../elements/test-activity-calendar"; -import { Preset } from "@monkeytype/contracts/schemas/presets"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Preset } from "@monkeytype/schemas/presets"; +import { Language } from "@monkeytype/schemas/languages"; export type SnapshotUserTag = UserTag & { active?: boolean; diff --git a/frontend/src/ts/constants/languages.ts b/frontend/src/ts/constants/languages.ts index dfffbe96b..2c47dd738 100644 --- a/frontend/src/ts/constants/languages.ts +++ b/frontend/src/ts/constants/languages.ts @@ -1,7 +1,4 @@ -import { - Language, - LanguageSchema, -} from "@monkeytype/contracts/schemas/languages"; +import { Language, LanguageSchema } from "@monkeytype/schemas/languages"; export const LanguageList: Language[] = LanguageSchema._def.values; diff --git a/frontend/src/ts/constants/layouts.ts b/frontend/src/ts/constants/layouts.ts index 2b0ec1c25..ff8f5a9ec 100644 --- a/frontend/src/ts/constants/layouts.ts +++ b/frontend/src/ts/constants/layouts.ts @@ -1,3 +1,3 @@ -import { LayoutName, LayoutNameSchema } from "@monkeytype/contracts/schemas/layouts"; +import { LayoutName, LayoutNameSchema } from "@monkeytype/schemas/layouts"; export const LayoutsList:LayoutName[] = LayoutNameSchema._def.values; \ No newline at end of file diff --git a/frontend/src/ts/constants/themes.ts b/frontend/src/ts/constants/themes.ts index b43fc0830..65ff67be0 100644 --- a/frontend/src/ts/constants/themes.ts +++ b/frontend/src/ts/constants/themes.ts @@ -1,4 +1,4 @@ -import { ThemeName } from "@monkeytype/contracts/schemas/configs"; +import { ThemeName } from "@monkeytype/schemas/configs"; import { hexToHSL } from "../utils/colors"; export type Theme = { diff --git a/frontend/src/ts/controllers/challenge-controller.ts b/frontend/src/ts/controllers/challenge-controller.ts index 15a4137a5..7d438b441 100644 --- a/frontend/src/ts/controllers/challenge-controller.ts +++ b/frontend/src/ts/controllers/challenge-controller.ts @@ -9,18 +9,15 @@ import * as TestUI from "../test/test-ui"; import * as ConfigEvent from "../observables/config-event"; import * as TestState from "../test/test-state"; import * as Loader from "../elements/loader"; -import { - CustomTextLimitMode, - CustomTextMode, -} from "@monkeytype/contracts/schemas/util"; +import { CustomTextLimitMode, CustomTextMode } from "@monkeytype/schemas/util"; import { Config as ConfigType, Difficulty, ThemeName, FunboxName, -} from "@monkeytype/contracts/schemas/configs"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; -import { CompletedEvent } from "@monkeytype/contracts/schemas/results"; +} from "@monkeytype/schemas/configs"; +import { Mode } from "@monkeytype/schemas/shared"; +import { CompletedEvent } from "@monkeytype/schemas/results"; import { areUnsortedArraysEqual } from "../utils/arrays"; import { tryCatch } from "@monkeytype/util/trycatch"; diff --git a/frontend/src/ts/controllers/preset-controller.ts b/frontend/src/ts/controllers/preset-controller.ts index ed56984a0..450d21664 100644 --- a/frontend/src/ts/controllers/preset-controller.ts +++ b/frontend/src/ts/controllers/preset-controller.ts @@ -1,4 +1,4 @@ -import { Preset } from "@monkeytype/contracts/schemas/presets"; +import { Preset } from "@monkeytype/schemas/presets"; import * as UpdateConfig from "../config"; import * as DB from "../db"; import * as Notifications from "../elements/notifications"; diff --git a/frontend/src/ts/controllers/quotes-controller.ts b/frontend/src/ts/controllers/quotes-controller.ts index 19c5836a8..ac43b7903 100644 --- a/frontend/src/ts/controllers/quotes-controller.ts +++ b/frontend/src/ts/controllers/quotes-controller.ts @@ -5,7 +5,7 @@ import { subscribe } from "../observables/config-event"; import * as DB from "../db"; import Ape from "../ape"; import { tryCatch } from "@monkeytype/util/trycatch"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; export type Quote = { text: string; diff --git a/frontend/src/ts/controllers/sound-controller.ts b/frontend/src/ts/controllers/sound-controller.ts index cb7fb5fa2..aa2a01275 100644 --- a/frontend/src/ts/controllers/sound-controller.ts +++ b/frontend/src/ts/controllers/sound-controller.ts @@ -8,7 +8,7 @@ import { capsState } from "../test/caps-warning"; import * as Notifications from "../elements/notifications"; import type { Howl } from "howler"; -import { PlaySoundOnClick } from "@monkeytype/contracts/schemas/configs"; +import { PlaySoundOnClick } from "@monkeytype/schemas/configs"; async function gethowler(): Promise { return await import("howler"); diff --git a/frontend/src/ts/controllers/tag-controller.ts b/frontend/src/ts/controllers/tag-controller.ts index a6d3fbbbf..7e9bd4308 100644 --- a/frontend/src/ts/controllers/tag-controller.ts +++ b/frontend/src/ts/controllers/tag-controller.ts @@ -2,7 +2,7 @@ import { z } from "zod"; import * as DB from "../db"; import * as ModesNotice from "../elements/modes-notice"; import { LocalStorageWithSchema } from "../utils/local-storage-with-schema"; -import { IdSchema } from "@monkeytype/contracts/schemas/util"; +import { IdSchema } from "@monkeytype/schemas/util"; const activeTagsLS = new LocalStorageWithSchema({ key: "activeTags", diff --git a/frontend/src/ts/controllers/theme-controller.ts b/frontend/src/ts/controllers/theme-controller.ts index 4ae10593d..4a3ae641d 100644 --- a/frontend/src/ts/controllers/theme-controller.ts +++ b/frontend/src/ts/controllers/theme-controller.ts @@ -10,7 +10,7 @@ import * as DB from "../db"; import * as Notifications from "../elements/notifications"; import * as Loader from "../elements/loader"; import { debounce } from "throttle-debounce"; -import { ThemeName } from "@monkeytype/contracts/schemas/configs"; +import { ThemeName } from "@monkeytype/schemas/configs"; import { ThemesList } from "../constants/themes"; export let randomTheme: ThemeName | string | null = null; diff --git a/frontend/src/ts/db.ts b/frontend/src/ts/db.ts index c6174292b..a5050be52 100644 --- a/frontend/src/ts/db.ts +++ b/frontend/src/ts/db.ts @@ -12,14 +12,14 @@ import { } from "./elements/test-activity-calendar"; import * as Loader from "./elements/loader"; -import { Badge, CustomTheme } from "@monkeytype/contracts/schemas/users"; -import { Config, Difficulty } from "@monkeytype/contracts/schemas/configs"; +import { Badge, CustomTheme } from "@monkeytype/schemas/users"; +import { Config, Difficulty } from "@monkeytype/schemas/configs"; import { Mode, Mode2, PersonalBest, PersonalBests, -} from "@monkeytype/contracts/schemas/shared"; +} from "@monkeytype/schemas/shared"; import { getDefaultSnapshot, Snapshot, @@ -30,7 +30,7 @@ import { import { getDefaultConfig } from "./constants/default-config"; import { FunboxMetadata } from "../../../packages/funbox/src/types"; import { getFirstDayOfTheWeek } from "./utils/date-and-time"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; let dbSnapshot: Snapshot | undefined; const firstDayOfTheWeek = getFirstDayOfTheWeek(); diff --git a/frontend/src/ts/elements/account-settings/ape-key-table.ts b/frontend/src/ts/elements/account-settings/ape-key-table.ts index deecddd4d..d68d3f981 100644 --- a/frontend/src/ts/elements/account-settings/ape-key-table.ts +++ b/frontend/src/ts/elements/account-settings/ape-key-table.ts @@ -1,7 +1,7 @@ import * as Loader from "../../elements/loader"; import * as Notifications from "../../elements/notifications"; import Ape from "../../ape"; -import { ApeKey, ApeKeys } from "@monkeytype/contracts/schemas/ape-keys"; +import { ApeKey, ApeKeys } from "@monkeytype/schemas/ape-keys"; import { format } from "date-fns/format"; import { SimpleModal, TextArea } from "../../utils/simple-modal"; diff --git a/frontend/src/ts/elements/account/pb-tables.ts b/frontend/src/ts/elements/account/pb-tables.ts index dd6dfc77b..fa724d0a6 100644 --- a/frontend/src/ts/elements/account/pb-tables.ts +++ b/frontend/src/ts/elements/account/pb-tables.ts @@ -1,8 +1,8 @@ import Config from "../../config"; import { format as dateFormat } from "date-fns/format"; import Format from "../../utils/format"; -import { Mode2, PersonalBests } from "@monkeytype/contracts/schemas/shared"; -import { StringNumber } from "@monkeytype/contracts/schemas/util"; +import { Mode2, PersonalBests } from "@monkeytype/schemas/shared"; +import { StringNumber } from "@monkeytype/schemas/util"; function clearTables(isProfile: boolean): void { const source = isProfile ? "Profile" : "Account"; diff --git a/frontend/src/ts/elements/account/result-filters.ts b/frontend/src/ts/elements/account/result-filters.ts index a8e62f933..b1357beda 100644 --- a/frontend/src/ts/elements/account/result-filters.ts +++ b/frontend/src/ts/elements/account/result-filters.ts @@ -6,13 +6,13 @@ import * as Notifications from "../notifications"; import Ape from "../../ape/index"; import * as Loader from "../loader"; import SlimSelect from "slim-select"; -import { QuoteLength } from "@monkeytype/contracts/schemas/configs"; +import { QuoteLength } from "@monkeytype/schemas/configs"; import { ResultFilters, ResultFiltersSchema, ResultFiltersGroup, ResultFiltersGroupItem, -} from "@monkeytype/contracts/schemas/users"; +} from "@monkeytype/schemas/users"; import { LocalStorageWithSchema } from "../../utils/local-storage-with-schema"; import defaultResultFilters from "../../constants/default-result-filters"; import { getAllFunboxes } from "@monkeytype/funbox"; diff --git a/frontend/src/ts/elements/alerts.ts b/frontend/src/ts/elements/alerts.ts index 768afd71a..9456d6c7a 100644 --- a/frontend/src/ts/elements/alerts.ts +++ b/frontend/src/ts/elements/alerts.ts @@ -9,7 +9,7 @@ import * as ConnectionState from "../states/connection"; import { escapeHTML } from "../utils/misc"; import AnimatedModal from "../utils/animated-modal"; import { updateXp as accountPageUpdateProfile } from "./profile"; -import { MonkeyMail } from "@monkeytype/contracts/schemas/users"; +import { MonkeyMail } from "@monkeytype/schemas/users"; import * as XPBar from "../elements/xp-bar"; let accountAlerts: MonkeyMail[] = []; diff --git a/frontend/src/ts/elements/custom-background-filter.ts b/frontend/src/ts/elements/custom-background-filter.ts index 93a56be88..87da2102d 100644 --- a/frontend/src/ts/elements/custom-background-filter.ts +++ b/frontend/src/ts/elements/custom-background-filter.ts @@ -1,4 +1,4 @@ -import { CustomBackgroundFilter } from "@monkeytype/contracts/schemas/configs"; +import { CustomBackgroundFilter } from "@monkeytype/schemas/configs"; import * as UpdateConfig from "../config"; import * as ConfigEvent from "../observables/config-event"; import { debounce } from "throttle-debounce"; diff --git a/frontend/src/ts/elements/profile.ts b/frontend/src/ts/elements/profile.ts index d90578908..81111eb41 100644 --- a/frontend/src/ts/elements/profile.ts +++ b/frontend/src/ts/elements/profile.ts @@ -11,7 +11,7 @@ import * as ActivePage from "../states/active-page"; import { formatDistanceToNowStrict } from "date-fns/formatDistanceToNowStrict"; import { getHtmlByUserFlags } from "../controllers/user-flag-controller"; import Format from "../utils/format"; -import { UserProfile, RankAndCount } from "@monkeytype/contracts/schemas/users"; +import { UserProfile, RankAndCount } from "@monkeytype/schemas/users"; import { abbreviateNumber, convertRemToPixels } from "../utils/numbers"; import { secondsToString } from "../utils/date-and-time"; import { Auth } from "../firebase"; diff --git a/frontend/src/ts/elements/psa.ts b/frontend/src/ts/elements/psa.ts index 95507069c..e09fe6c0d 100644 --- a/frontend/src/ts/elements/psa.ts +++ b/frontend/src/ts/elements/psa.ts @@ -4,10 +4,10 @@ import { secondsToString } from "../utils/date-and-time"; import * as Notifications from "./notifications"; import { format } from "date-fns/format"; import * as Alerts from "./alerts"; -import { PSA } from "@monkeytype/contracts/schemas/psas"; +import { PSA } from "@monkeytype/schemas/psas"; import { z } from "zod"; import { LocalStorageWithSchema } from "../utils/local-storage-with-schema"; -import { IdSchema } from "@monkeytype/contracts/schemas/util"; +import { IdSchema } from "@monkeytype/schemas/util"; import { tryCatch } from "@monkeytype/util/trycatch"; import { isSafeNumber } from "@monkeytype/util/numbers"; diff --git a/frontend/src/ts/elements/settings/settings-group.ts b/frontend/src/ts/elements/settings/settings-group.ts index c6c76cd11..e093626a2 100644 --- a/frontend/src/ts/elements/settings/settings-group.ts +++ b/frontend/src/ts/elements/settings/settings-group.ts @@ -1,4 +1,4 @@ -import { ConfigValue } from "@monkeytype/contracts/schemas/configs"; +import { ConfigValue } from "@monkeytype/schemas/configs"; import Config from "../../config"; import * as Notifications from "../notifications"; import SlimSelect from "slim-select"; diff --git a/frontend/src/ts/elements/settings/theme-picker.ts b/frontend/src/ts/elements/settings/theme-picker.ts index b269664ad..867fe0b28 100644 --- a/frontend/src/ts/elements/settings/theme-picker.ts +++ b/frontend/src/ts/elements/settings/theme-picker.ts @@ -10,10 +10,7 @@ import * as DB from "../../db"; import * as ConfigEvent from "../../observables/config-event"; import { isAuthenticated } from "../../firebase"; import * as ActivePage from "../../states/active-page"; -import { - CustomThemeColors, - ThemeName, -} from "@monkeytype/contracts/schemas/configs"; +import { CustomThemeColors, ThemeName } from "@monkeytype/schemas/configs"; import { captureException } from "../../sentry"; import { ThemesListSorted } from "../../constants/themes"; diff --git a/frontend/src/ts/elements/xp-bar.ts b/frontend/src/ts/elements/xp-bar.ts index 51565e125..9e0837d71 100644 --- a/frontend/src/ts/elements/xp-bar.ts +++ b/frontend/src/ts/elements/xp-bar.ts @@ -2,7 +2,7 @@ import * as Misc from "../utils/misc"; import * as Levels from "../utils/levels"; import { getAll } from "./theme-colors"; import * as SlowTimer from "../states/slow-timer"; -import { XpBreakdown } from "@monkeytype/contracts/schemas/results"; +import { XpBreakdown } from "@monkeytype/schemas/results"; import { isSafeNumber, mapRange } from "@monkeytype/util/numbers"; let breakdownVisible = false; diff --git a/frontend/src/ts/modals/custom-text.ts b/frontend/src/ts/modals/custom-text.ts index 1c29b0718..b2c1f464c 100644 --- a/frontend/src/ts/modals/custom-text.ts +++ b/frontend/src/ts/modals/custom-text.ts @@ -10,7 +10,7 @@ import * as Notifications from "../elements/notifications"; import * as SavedTextsPopup from "./saved-texts"; import * as SaveCustomTextPopup from "./save-custom-text"; import AnimatedModal, { ShowOptions } from "../utils/animated-modal"; -import { CustomTextMode } from "@monkeytype/contracts/schemas/util"; +import { CustomTextMode } from "@monkeytype/schemas/util"; const popup = "#customTextModal .modal"; diff --git a/frontend/src/ts/modals/edit-preset.ts b/frontend/src/ts/modals/edit-preset.ts index 0b43f6f7c..29b213bf1 100644 --- a/frontend/src/ts/modals/edit-preset.ts +++ b/frontend/src/ts/modals/edit-preset.ts @@ -6,10 +6,7 @@ import * as Settings from "../pages/settings"; import * as Notifications from "../elements/notifications"; import * as ConnectionState from "../states/connection"; import AnimatedModal from "../utils/animated-modal"; -import { - PresetType, - PresetTypeSchema, -} from "@monkeytype/contracts/schemas/presets"; +import { PresetType, PresetTypeSchema } from "@monkeytype/schemas/presets"; import { getPreset } from "../controllers/preset-controller"; import { ConfigGroupName, @@ -17,7 +14,7 @@ import { ConfigGroupsLiteral, ConfigKey, Config as ConfigType, -} from "@monkeytype/contracts/schemas/configs"; +} from "@monkeytype/schemas/configs"; import { getDefaultConfig } from "../constants/default-config"; import { SnapshotPreset } from "../constants/default-snapshot"; diff --git a/frontend/src/ts/modals/edit-profile.ts b/frontend/src/ts/modals/edit-profile.ts index 8a4cc1723..2cff8f102 100644 --- a/frontend/src/ts/modals/edit-profile.ts +++ b/frontend/src/ts/modals/edit-profile.ts @@ -13,7 +13,7 @@ import { TwitterProfileSchema, UserProfileDetails, WebsiteSchema, -} from "@monkeytype/contracts/schemas/users"; +} from "@monkeytype/schemas/users"; import { InputIndicator } from "../elements/input-indicator"; export function show(): void { diff --git a/frontend/src/ts/modals/edit-tag.ts b/frontend/src/ts/modals/edit-tag.ts index a67562239..27abc796d 100644 --- a/frontend/src/ts/modals/edit-tag.ts +++ b/frontend/src/ts/modals/edit-tag.ts @@ -3,7 +3,7 @@ import * as DB from "../db"; import * as Settings from "../pages/settings"; import AnimatedModal, { ShowOptions } from "../utils/animated-modal"; import { SimpleModal, TextInput } from "../utils/simple-modal"; -import { TagNameSchema } from "@monkeytype/contracts/schemas/users"; +import { TagNameSchema } from "@monkeytype/schemas/users"; const cleanTagName = (tagName: string): string => tagName.replaceAll(" ", "_"); const tagNameValidation = async (tagName: string): Promise => { diff --git a/frontend/src/ts/modals/last-signed-out-result.ts b/frontend/src/ts/modals/last-signed-out-result.ts index f7f19f387..cf86ac8d5 100644 --- a/frontend/src/ts/modals/last-signed-out-result.ts +++ b/frontend/src/ts/modals/last-signed-out-result.ts @@ -2,7 +2,7 @@ import AnimatedModal from "../utils/animated-modal"; import * as TestLogic from "../test/test-logic"; import * as Notifications from "../elements/notifications"; -import { CompletedEvent } from "@monkeytype/contracts/schemas/results"; +import { CompletedEvent } from "@monkeytype/schemas/results"; import { Auth } from "../firebase"; import { syncNotSignedInLastResult } from "../utils/results"; diff --git a/frontend/src/ts/modals/mini-result-chart.ts b/frontend/src/ts/modals/mini-result-chart.ts index 31ce28eb2..a189d1dab 100644 --- a/frontend/src/ts/modals/mini-result-chart.ts +++ b/frontend/src/ts/modals/mini-result-chart.ts @@ -1,4 +1,4 @@ -import { ChartData } from "@monkeytype/contracts/schemas/results"; +import { ChartData } from "@monkeytype/schemas/results"; import AnimatedModal from "../utils/animated-modal"; import * as ChartController from "../controllers/chart-controller"; import Config from "../config"; diff --git a/frontend/src/ts/modals/mobile-test-config.ts b/frontend/src/ts/modals/mobile-test-config.ts index 7ceac9dad..5104a1554 100644 --- a/frontend/src/ts/modals/mobile-test-config.ts +++ b/frontend/src/ts/modals/mobile-test-config.ts @@ -6,11 +6,8 @@ import * as CustomTestDurationPopup from "./custom-test-duration"; import * as QuoteSearchModal from "./quote-search"; import * as CustomTextPopup from "./custom-text"; import AnimatedModal from "../utils/animated-modal"; -import { - QuoteLength, - QuoteLengthConfig, -} from "@monkeytype/contracts/schemas/configs"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { QuoteLength, QuoteLengthConfig } from "@monkeytype/schemas/configs"; +import { Mode } from "@monkeytype/schemas/shared"; function update(): void { const el = $("#mobileTestConfigModal"); diff --git a/frontend/src/ts/modals/pb-tables.ts b/frontend/src/ts/modals/pb-tables.ts index a78a8c9c8..3c45ea19b 100644 --- a/frontend/src/ts/modals/pb-tables.ts +++ b/frontend/src/ts/modals/pb-tables.ts @@ -4,11 +4,7 @@ import { getLanguageDisplayString } from "../utils/strings"; import Config from "../config"; import Format from "../utils/format"; import AnimatedModal from "../utils/animated-modal"; -import { - Mode, - Mode2, - PersonalBest, -} from "@monkeytype/contracts/schemas/shared"; +import { Mode, Mode2, PersonalBest } from "@monkeytype/schemas/shared"; type PBWithMode2 = { mode2: Mode2; diff --git a/frontend/src/ts/modals/quote-approve.ts b/frontend/src/ts/modals/quote-approve.ts index 85bde3235..7d18370d4 100644 --- a/frontend/src/ts/modals/quote-approve.ts +++ b/frontend/src/ts/modals/quote-approve.ts @@ -3,7 +3,7 @@ import * as Loader from "../elements/loader"; import * as Notifications from "../elements/notifications"; import { format } from "date-fns/format"; import AnimatedModal, { ShowOptions } from "../utils/animated-modal"; -import { Quote } from "@monkeytype/contracts/schemas/quotes"; +import { Quote } from "@monkeytype/schemas/quotes"; let quotes: Quote[] = []; diff --git a/frontend/src/ts/modals/quote-rate.ts b/frontend/src/ts/modals/quote-rate.ts index 921182a4d..3e27231a3 100644 --- a/frontend/src/ts/modals/quote-rate.ts +++ b/frontend/src/ts/modals/quote-rate.ts @@ -1,4 +1,4 @@ -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; import Ape from "../ape"; import { Quote } from "../controllers/quotes-controller"; import * as DB from "../db"; diff --git a/frontend/src/ts/modals/quote-report.ts b/frontend/src/ts/modals/quote-report.ts index 52ea7855b..dabbe57ea 100644 --- a/frontend/src/ts/modals/quote-report.ts +++ b/frontend/src/ts/modals/quote-report.ts @@ -8,7 +8,7 @@ import { removeLanguageSize } from "../utils/strings"; import SlimSelect from "slim-select"; import AnimatedModal, { ShowOptions } from "../utils/animated-modal"; import { CharacterCounter } from "../elements/character-counter"; -import { QuoteReportReason } from "@monkeytype/contracts/schemas/quotes"; +import { QuoteReportReason } from "@monkeytype/schemas/quotes"; type State = { quoteToReport?: Quote; diff --git a/frontend/src/ts/modals/quote-submit.ts b/frontend/src/ts/modals/quote-submit.ts index 30ba86e40..8ec80a2b1 100644 --- a/frontend/src/ts/modals/quote-submit.ts +++ b/frontend/src/ts/modals/quote-submit.ts @@ -7,7 +7,7 @@ import Config from "../config"; import SlimSelect from "slim-select"; import AnimatedModal, { ShowOptions } from "../utils/animated-modal"; import { CharacterCounter } from "../elements/character-counter"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; import { LanguageGroupNames } from "../constants/languages"; let dropdownReady = false; diff --git a/frontend/src/ts/modals/share-test-settings.ts b/frontend/src/ts/modals/share-test-settings.ts index 96bd38e26..914c93e80 100644 --- a/frontend/src/ts/modals/share-test-settings.ts +++ b/frontend/src/ts/modals/share-test-settings.ts @@ -4,8 +4,8 @@ import { getMode2 } from "../utils/misc"; import * as CustomText from "../test/custom-text"; import { compressToURI } from "lz-ts"; import AnimatedModal, { ShowOptions } from "../utils/animated-modal"; -import { Difficulty, FunboxName } from "@monkeytype/contracts/schemas/configs"; -import { Mode, Mode2 } from "@monkeytype/contracts/schemas/shared"; +import { Difficulty, FunboxName } from "@monkeytype/schemas/configs"; +import { Mode, Mode2 } from "@monkeytype/schemas/shared"; function getCheckboxValue(checkbox: string): boolean { return $(`#shareTestSettingsModal label.${checkbox} input`).prop( diff --git a/frontend/src/ts/modals/simple-modals.ts b/frontend/src/ts/modals/simple-modals.ts index d4857c0b5..30a36ea45 100644 --- a/frontend/src/ts/modals/simple-modals.ts +++ b/frontend/src/ts/modals/simple-modals.ts @@ -25,7 +25,7 @@ import { } from "../utils/misc"; import * as CustomTextState from "../states/custom-text-name"; import * as ThemeController from "../controllers/theme-controller"; -import { CustomThemeColors } from "@monkeytype/contracts/schemas/configs"; +import { CustomThemeColors } from "@monkeytype/schemas/configs"; import * as AccountSettings from "../pages/account-settings"; import { ExecReturn, diff --git a/frontend/src/ts/modals/user-report.ts b/frontend/src/ts/modals/user-report.ts index dddab1e86..a74ecccd8 100644 --- a/frontend/src/ts/modals/user-report.ts +++ b/frontend/src/ts/modals/user-report.ts @@ -6,7 +6,7 @@ import SlimSelect from "slim-select"; import AnimatedModal from "../utils/animated-modal"; import { isAuthenticated } from "../firebase"; import { CharacterCounter } from "../elements/character-counter"; -import { ReportUserReason } from "@monkeytype/contracts/schemas/users"; +import { ReportUserReason } from "@monkeytype/schemas/users"; type State = { userUid?: string; diff --git a/frontend/src/ts/modals/word-filter.ts b/frontend/src/ts/modals/word-filter.ts index 4480f638e..a98cf066e 100644 --- a/frontend/src/ts/modals/word-filter.ts +++ b/frontend/src/ts/modals/word-filter.ts @@ -10,7 +10,7 @@ import AnimatedModal, { import { LayoutsList } from "../constants/layouts"; import { tryCatch } from "@monkeytype/util/trycatch"; import { LanguageList } from "../constants/languages"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; type FilterPreset = { display: string; diff --git a/frontend/src/ts/observables/config-event.ts b/frontend/src/ts/observables/config-event.ts index 370479dae..6cfb1f8b9 100644 --- a/frontend/src/ts/observables/config-event.ts +++ b/frontend/src/ts/observables/config-event.ts @@ -1,8 +1,4 @@ -import { - Config, - ConfigKey, - ConfigValue, -} from "@monkeytype/contracts/schemas/configs"; +import { Config, ConfigKey, ConfigValue } from "@monkeytype/schemas/configs"; export type ConfigEventKey = | ConfigKey diff --git a/frontend/src/ts/pages/about.ts b/frontend/src/ts/pages/about.ts index 9952e81df..9f1c880c9 100644 --- a/frontend/src/ts/pages/about.ts +++ b/frontend/src/ts/pages/about.ts @@ -7,10 +7,7 @@ import * as ChartController from "../controllers/chart-controller"; import * as ConnectionState from "../states/connection"; import { intervalToDuration } from "date-fns/intervalToDuration"; import * as Skeleton from "../utils/skeleton"; -import { - TypingStats, - SpeedHistogram, -} from "@monkeytype/contracts/schemas/public"; +import { TypingStats, SpeedHistogram } from "@monkeytype/schemas/public"; import { getNumberWithMagnitude, numberWithSpaces } from "../utils/numbers"; import { tryCatch } from "@monkeytype/util/trycatch"; diff --git a/frontend/src/ts/pages/account.ts b/frontend/src/ts/pages/account.ts index a4c05b585..8d3bde710 100644 --- a/frontend/src/ts/pages/account.ts +++ b/frontend/src/ts/pages/account.ts @@ -27,19 +27,19 @@ import * as Loader from "../elements/loader"; import * as ResultBatches from "../elements/result-batches"; import Format from "../utils/format"; import * as TestActivity from "../elements/test-activity"; -import { ChartData } from "@monkeytype/contracts/schemas/results"; +import { ChartData } from "@monkeytype/schemas/results"; import { Difficulty, Mode, Mode2, Mode2Custom, -} from "@monkeytype/contracts/schemas/shared"; -import { ResultFiltersGroupItem } from "@monkeytype/contracts/schemas/users"; +} from "@monkeytype/schemas/shared"; +import { ResultFiltersGroupItem } from "@monkeytype/schemas/users"; import { findLineByLeastSquares } from "../utils/numbers"; import defaultResultFilters from "../constants/default-result-filters"; import { SnapshotResult } from "../constants/default-snapshot"; import Ape from "../ape"; -import { AccountChart } from "@monkeytype/contracts/schemas/configs"; +import { AccountChart } from "@monkeytype/schemas/configs"; let filterDebug = false; //toggle filterdebug diff --git a/frontend/src/ts/pages/leaderboards.ts b/frontend/src/ts/pages/leaderboards.ts index 6c40ed406..5eb4a9e63 100644 --- a/frontend/src/ts/pages/leaderboards.ts +++ b/frontend/src/ts/pages/leaderboards.ts @@ -4,7 +4,7 @@ import Config from "../config"; import { LeaderboardEntry, XpLeaderboardEntry, -} from "@monkeytype/contracts/schemas/leaderboards"; +} from "@monkeytype/schemas/leaderboards"; import { capitalizeFirstLetter } from "../utils/strings"; import Ape from "../ape"; import * as Notifications from "../elements/notifications"; @@ -36,12 +36,9 @@ import { UTCDateMini } from "@date-fns/utc"; import * as ConfigEvent from "../observables/config-event"; import * as ActivePage from "../states/active-page"; import { PaginationQuery } from "@monkeytype/contracts/leaderboards"; -import { - Language, - LanguageSchema, -} from "@monkeytype/contracts/schemas/languages"; +import { Language, LanguageSchema } from "@monkeytype/schemas/languages"; import { isSafeNumber } from "@monkeytype/util/numbers"; -import { Mode, Mode2, ModeSchema } from "@monkeytype/contracts/schemas/shared"; +import { Mode, Mode2, ModeSchema } from "@monkeytype/schemas/shared"; import * as ServerConfiguration from "../ape/server-configuration"; import { getAvatarElement } from "../utils/discord-avatar"; diff --git a/frontend/src/ts/pages/profile.ts b/frontend/src/ts/pages/profile.ts index c3e5f984f..64a78cfe1 100644 --- a/frontend/src/ts/pages/profile.ts +++ b/frontend/src/ts/pages/profile.ts @@ -6,8 +6,8 @@ import * as Notifications from "../elements/notifications"; import { checkIfGetParameterExists } from "../utils/misc"; import * as UserReportModal from "../modals/user-report"; import * as Skeleton from "../utils/skeleton"; -import { UserProfile } from "@monkeytype/contracts/schemas/users"; -import { PersonalBests } from "@monkeytype/contracts/schemas/shared"; +import { UserProfile } from "@monkeytype/schemas/users"; +import { PersonalBests } from "@monkeytype/schemas/shared"; function reset(): void { $(".page.pageProfile .error").addClass("hidden"); diff --git a/frontend/src/ts/pages/settings.ts b/frontend/src/ts/pages/settings.ts index 74ac46d9b..6ce4190b5 100644 --- a/frontend/src/ts/pages/settings.ts +++ b/frontend/src/ts/pages/settings.ts @@ -26,7 +26,7 @@ import { CustomLayoutFluid, FunboxName, ConfigKeySchema, -} from "@monkeytype/contracts/schemas/configs"; +} from "@monkeytype/schemas/configs"; import { getAllFunboxes, checkCompatibility } from "@monkeytype/funbox"; import { getActiveFunboxNames } from "../test/funbox/list"; import { SnapshotPreset } from "../constants/default-snapshot"; @@ -35,9 +35,9 @@ import { DataArrayPartial, Optgroup, OptionOptional } from "slim-select/store"; import { tryCatch } from "@monkeytype/util/trycatch"; import { Theme, ThemesList } from "../constants/themes"; import { areSortedArraysEqual, areUnsortedArraysEqual } from "../utils/arrays"; -import { LayoutName } from "@monkeytype/contracts/schemas/layouts"; +import { LayoutName } from "@monkeytype/schemas/layouts"; import { LanguageGroupNames, LanguageGroups } from "../constants/languages"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; import { z } from "zod"; let settingsInitialized = false; diff --git a/frontend/src/ts/test/custom-text.ts b/frontend/src/ts/test/custom-text.ts index 908a94973..c4d77326c 100644 --- a/frontend/src/ts/test/custom-text.ts +++ b/frontend/src/ts/test/custom-text.ts @@ -1,10 +1,7 @@ -import { - CustomTextLimitMode, - CustomTextMode, -} from "@monkeytype/contracts/schemas/util"; +import { CustomTextLimitMode, CustomTextMode } from "@monkeytype/schemas/util"; import { LocalStorageWithSchema } from "../utils/local-storage-with-schema"; import { z } from "zod"; -import { CompletedEventCustomTextSchema } from "@monkeytype/contracts/schemas/results"; +import { CompletedEventCustomTextSchema } from "@monkeytype/schemas/results"; import { deepClone } from "../utils/misc"; const CustomTextObjectSchema = z.record(z.string(), z.string()); diff --git a/frontend/src/ts/test/funbox/funbox-functions.ts b/frontend/src/ts/test/funbox/funbox-functions.ts index eb5735521..8e93f7c1f 100644 --- a/frontend/src/ts/test/funbox/funbox-functions.ts +++ b/frontend/src/ts/test/funbox/funbox-functions.ts @@ -22,12 +22,8 @@ import * as WeakSpot from "../weak-spot"; import * as IPAddresses from "../../utils/ip-addresses"; import * as TestState from "../test-state"; import { WordGenError } from "../../utils/word-gen-error"; -import { - FunboxName, - KeymapLayout, - Layout, -} from "@monkeytype/contracts/schemas/configs"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { FunboxName, KeymapLayout, Layout } from "@monkeytype/schemas/configs"; +import { Language } from "@monkeytype/schemas/languages"; export type FunboxFunctions = { getWord?: (wordset?: Wordset, wordIndex?: number) => string; punctuateWord?: (word: string) => string; diff --git a/frontend/src/ts/test/funbox/funbox-memory.ts b/frontend/src/ts/test/funbox/funbox-memory.ts index 07ee80668..1dd619c5a 100644 --- a/frontend/src/ts/test/funbox/funbox-memory.ts +++ b/frontend/src/ts/test/funbox/funbox-memory.ts @@ -1,4 +1,4 @@ -import { ConfigValue } from "@monkeytype/contracts/schemas/configs"; +import { ConfigValue } from "@monkeytype/schemas/configs"; type SetFunction = (param: T, nosave?: boolean) => boolean; diff --git a/frontend/src/ts/test/funbox/funbox-validation.ts b/frontend/src/ts/test/funbox/funbox-validation.ts index c8c19a8f9..c01624f85 100644 --- a/frontend/src/ts/test/funbox/funbox-validation.ts +++ b/frontend/src/ts/test/funbox/funbox-validation.ts @@ -1,10 +1,6 @@ import * as Notifications from "../../elements/notifications"; import * as Strings from "../../utils/strings"; -import { - Config, - ConfigValue, - FunboxName, -} from "@monkeytype/contracts/schemas/configs"; +import { Config, ConfigValue, FunboxName } from "@monkeytype/schemas/configs"; import { FunboxMetadata, getFunbox } from "@monkeytype/funbox"; import { intersect } from "@monkeytype/util/arrays"; diff --git a/frontend/src/ts/test/funbox/funbox.ts b/frontend/src/ts/test/funbox/funbox.ts index 089f5d5ae..4ffef71b1 100644 --- a/frontend/src/ts/test/funbox/funbox.ts +++ b/frontend/src/ts/test/funbox/funbox.ts @@ -6,11 +6,8 @@ import * as ManualRestart from "../manual-restart-tracker"; import Config, * as UpdateConfig from "../../config"; import * as MemoryTimer from "./memory-funbox-timer"; import * as FunboxMemory from "./funbox-memory"; -import { - HighlightMode, - FunboxName, -} from "@monkeytype/contracts/schemas/configs"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { HighlightMode, FunboxName } from "@monkeytype/schemas/configs"; +import { Mode } from "@monkeytype/schemas/shared"; import { checkCompatibility } from "@monkeytype/funbox"; import { getActiveFunboxes, diff --git a/frontend/src/ts/test/funbox/list.ts b/frontend/src/ts/test/funbox/list.ts index 609527d05..274ea4ae9 100644 --- a/frontend/src/ts/test/funbox/list.ts +++ b/frontend/src/ts/test/funbox/list.ts @@ -6,7 +6,7 @@ import { } from "@monkeytype/funbox"; import { FunboxFunctions, getFunboxFunctions } from "./funbox-functions"; -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; type FunboxMetadataWithFunctions = FunboxMetadata & { functions?: FunboxFunctions; diff --git a/frontend/src/ts/test/practise-words.ts b/frontend/src/ts/test/practise-words.ts index b527ac5ba..116a307d7 100644 --- a/frontend/src/ts/test/practise-words.ts +++ b/frontend/src/ts/test/practise-words.ts @@ -5,7 +5,7 @@ import * as CustomText from "./custom-text"; import * as TestInput from "./test-input"; import * as ConfigEvent from "../observables/config-event"; import { setCustomTextName } from "../states/custom-text-name"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { Mode } from "@monkeytype/schemas/shared"; type Before = { mode: Mode | null; diff --git a/frontend/src/ts/test/result.ts b/frontend/src/ts/test/result.ts index 78a23f24a..588c39bd8 100644 --- a/frontend/src/ts/test/result.ts +++ b/frontend/src/ts/test/result.ts @@ -36,11 +36,11 @@ import type { LabelPosition, } from "chartjs-plugin-annotation"; import Ape from "../ape"; -import { CompletedEvent } from "@monkeytype/contracts/schemas/results"; +import { CompletedEvent } from "@monkeytype/schemas/results"; import { getActiveFunboxes, isFunboxActiveWithProperty } from "./funbox/list"; import { getFunbox } from "@monkeytype/funbox"; import { SnapshotUserTag } from "../constants/default-snapshot"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; import { canQuickRestart as canQuickRestartFn } from "../utils/quick-restart"; let result: CompletedEvent; diff --git a/frontend/src/ts/test/test-config.ts b/frontend/src/ts/test/test-config.ts index 3f5c2950e..08692b859 100644 --- a/frontend/src/ts/test/test-config.ts +++ b/frontend/src/ts/test/test-config.ts @@ -1,8 +1,5 @@ -import { - ConfigValue, - QuoteLength, -} from "@monkeytype/contracts/schemas/configs"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { ConfigValue, QuoteLength } from "@monkeytype/schemas/configs"; +import { Mode } from "@monkeytype/schemas/shared"; import Config from "../config"; import * as ConfigEvent from "../observables/config-event"; import * as ActivePage from "../states/active-page"; diff --git a/frontend/src/ts/test/test-logic.ts b/frontend/src/ts/test/test-logic.ts index 7a7ec4c67..8a0d3de61 100644 --- a/frontend/src/ts/test/test-logic.ts +++ b/frontend/src/ts/test/test-logic.ts @@ -58,15 +58,12 @@ import * as KeymapEvent from "../observables/keymap-event"; import * as LayoutfluidFunboxTimer from "../test/funbox/layoutfluid-funbox-timer"; import * as ArabicLazyMode from "../states/arabic-lazy-mode"; import Format from "../utils/format"; -import { - QuoteLength, - QuoteLengthConfig, -} from "@monkeytype/contracts/schemas/configs"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { QuoteLength, QuoteLengthConfig } from "@monkeytype/schemas/configs"; +import { Mode } from "@monkeytype/schemas/shared"; import { CompletedEvent, CompletedEventCustomText, -} from "@monkeytype/contracts/schemas/results"; +} from "@monkeytype/schemas/results"; import * as XPBar from "../elements/xp-bar"; import { findSingleActiveFunboxWithFunction, diff --git a/frontend/src/ts/test/test-stats.ts b/frontend/src/ts/test/test-stats.ts index 3181b6cfd..8f0de5086 100644 --- a/frontend/src/ts/test/test-stats.ts +++ b/frontend/src/ts/test/test-stats.ts @@ -5,10 +5,7 @@ import * as TestInput from "./test-input"; import * as TestWords from "./test-words"; import * as TestState from "./test-state"; import * as Numbers from "@monkeytype/util/numbers"; -import { - CompletedEvent, - IncompleteTest, -} from "@monkeytype/contracts/schemas/results"; +import { CompletedEvent, IncompleteTest } from "@monkeytype/schemas/results"; import { isFunboxActiveWithProperty } from "./funbox/list"; type CharCount = { diff --git a/frontend/src/ts/test/test-timer.ts b/frontend/src/ts/test/test-timer.ts index 4d5c0d7b7..b9b2db08a 100644 --- a/frontend/src/ts/test/test-timer.ts +++ b/frontend/src/ts/test/test-timer.ts @@ -16,7 +16,7 @@ import * as TestState from "./test-state"; import * as Time from "../states/time"; import * as TimerEvent from "../observables/timer-event"; import * as LayoutfluidFunboxTimer from "../test/funbox/layoutfluid-funbox-timer"; -import { KeymapLayout, Layout } from "@monkeytype/contracts/schemas/configs"; +import { KeymapLayout, Layout } from "@monkeytype/schemas/configs"; type TimerStats = { dateNow: number; diff --git a/frontend/src/ts/test/test-ui.ts b/frontend/src/ts/test/test-ui.ts index 081022115..b5ac9df55 100644 --- a/frontend/src/ts/test/test-ui.ts +++ b/frontend/src/ts/test/test-ui.ts @@ -19,10 +19,7 @@ import { debounce } from "throttle-debounce"; import * as ResultWordHighlight from "../elements/result-word-highlight"; import * as ActivePage from "../states/active-page"; import Format from "../utils/format"; -import { - TimerColor, - TimerOpacity, -} from "@monkeytype/contracts/schemas/configs"; +import { TimerColor, TimerOpacity } from "@monkeytype/schemas/configs"; import { convertRemToPixels } from "../utils/numbers"; import { findSingleActiveFunboxWithFunction } from "./funbox/list"; import * as TestState from "./test-state"; diff --git a/frontend/src/ts/test/wikipedia.ts b/frontend/src/ts/test/wikipedia.ts index 95360f407..98fbe277e 100644 --- a/frontend/src/ts/test/wikipedia.ts +++ b/frontend/src/ts/test/wikipedia.ts @@ -5,7 +5,7 @@ import * as JSONData from "../utils/json-data"; import { z } from "zod"; import { parseWithSchema as parseJsonWithSchema } from "@monkeytype/util/json"; import { getGroupForLanguage, LanguageGroupName } from "../constants/languages"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; export async function getTLD( languageGroup: LanguageGroupName diff --git a/frontend/src/ts/utils/config.ts b/frontend/src/ts/utils/config.ts index 9f805c3c2..be4f46274 100644 --- a/frontend/src/ts/utils/config.ts +++ b/frontend/src/ts/utils/config.ts @@ -3,9 +3,9 @@ import { ConfigValue, PartialConfig, FunboxName, -} from "@monkeytype/contracts/schemas/configs"; +} from "@monkeytype/schemas/configs"; import { sanitize, typedKeys } from "./misc"; -import * as ConfigSchemas from "@monkeytype/contracts/schemas/configs"; +import * as ConfigSchemas from "@monkeytype/schemas/configs"; import { getDefaultConfig } from "../constants/default-config"; /** * migrates possible outdated config and merges with the default config values diff --git a/frontend/src/ts/utils/format.ts b/frontend/src/ts/utils/format.ts index 68b2decca..3daa0f1fe 100644 --- a/frontend/src/ts/utils/format.ts +++ b/frontend/src/ts/utils/format.ts @@ -1,6 +1,6 @@ import { get as getTypingSpeedUnit } from "../utils/typing-speed-units"; import * as Numbers from "@monkeytype/util/numbers"; -import { Config as ConfigType } from "@monkeytype/contracts/schemas/configs"; +import { Config as ConfigType } from "@monkeytype/schemas/configs"; import Config from "../config"; export type FormatOptions = { diff --git a/frontend/src/ts/utils/json-data.ts b/frontend/src/ts/utils/json-data.ts index 38a55f41b..12ac62b98 100644 --- a/frontend/src/ts/utils/json-data.ts +++ b/frontend/src/ts/utils/json-data.ts @@ -1,5 +1,5 @@ -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { FunboxName } from "@monkeytype/schemas/configs"; +import { Language } from "@monkeytype/schemas/languages"; import { Accents } from "../test/lazy-mode"; //pin implementation diff --git a/frontend/src/ts/utils/misc.ts b/frontend/src/ts/utils/misc.ts index 63fd5edeb..debae3866 100644 --- a/frontend/src/ts/utils/misc.ts +++ b/frontend/src/ts/utils/misc.ts @@ -1,13 +1,9 @@ import * as Loader from "../elements/loader"; import { envConfig } from "../constants/env-config"; import { lastElementFromArray } from "./arrays"; -import { Config } from "@monkeytype/contracts/schemas/configs"; -import { - Mode, - Mode2, - PersonalBests, -} from "@monkeytype/contracts/schemas/shared"; -import { Result } from "@monkeytype/contracts/schemas/results"; +import { Config } from "@monkeytype/schemas/configs"; +import { Mode, Mode2, PersonalBests } from "@monkeytype/schemas/shared"; +import { Result } from "@monkeytype/schemas/results"; import { z } from "zod"; export function whorf(speed: number, wordlen: number): number { diff --git a/frontend/src/ts/utils/results.ts b/frontend/src/ts/utils/results.ts index 80eafea87..54922887b 100644 --- a/frontend/src/ts/utils/results.ts +++ b/frontend/src/ts/utils/results.ts @@ -3,7 +3,7 @@ import * as Notifications from "../elements/notifications"; import * as DB from "../db"; import * as TestLogic from "../test/test-logic"; import { deepClone } from "./misc"; -import { Mode } from "@monkeytype/contracts/schemas/shared"; +import { Mode } from "@monkeytype/schemas/shared"; import { SnapshotResult } from "../constants/default-snapshot"; export async function syncNotSignedInLastResult(uid: string): Promise { diff --git a/frontend/src/ts/utils/strings.ts b/frontend/src/ts/utils/strings.ts index 68c697dce..96e8a3829 100644 --- a/frontend/src/ts/utils/strings.ts +++ b/frontend/src/ts/utils/strings.ts @@ -1,4 +1,4 @@ -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; /** * Removes accents from a string. diff --git a/frontend/src/ts/utils/typing-speed-units.ts b/frontend/src/ts/utils/typing-speed-units.ts index 214b5a5ea..ed2d17486 100644 --- a/frontend/src/ts/utils/typing-speed-units.ts +++ b/frontend/src/ts/utils/typing-speed-units.ts @@ -1,4 +1,4 @@ -import { TypingSpeedUnit } from "@monkeytype/contracts/schemas/configs"; +import { TypingSpeedUnit } from "@monkeytype/schemas/configs"; type TypingSpeedUnitSettings = { fromWpm: (number: number) => number; diff --git a/frontend/src/ts/utils/url-handler.ts b/frontend/src/ts/utils/url-handler.ts index 5c2b4c31f..49d05c5c8 100644 --- a/frontend/src/ts/utils/url-handler.ts +++ b/frontend/src/ts/utils/url-handler.ts @@ -15,7 +15,7 @@ import { DifficultySchema, Mode2Schema, ModeSchema, -} from "@monkeytype/contracts/schemas/shared"; +} from "@monkeytype/schemas/shared"; import { CustomBackgroundFilter, CustomBackgroundFilterSchema, @@ -25,11 +25,11 @@ import { CustomThemeColorsSchema, FunboxSchema, FunboxName, -} from "@monkeytype/contracts/schemas/configs"; +} from "@monkeytype/schemas/configs"; import { z } from "zod"; import { parseWithSchema as parseJsonWithSchema } from "@monkeytype/util/json"; import { tryCatchSync } from "@monkeytype/util/trycatch"; -import { Language } from "@monkeytype/contracts/schemas/languages"; +import { Language } from "@monkeytype/schemas/languages"; export async function linkDiscord(hashOverride: string): Promise { if (!hashOverride) return; diff --git a/packages/contracts/__test__/schema/config.spec.ts b/packages/contracts/__test__/schema/config.spec.ts index 6e2161513..d2c9b4adb 100644 --- a/packages/contracts/__test__/schema/config.spec.ts +++ b/packages/contracts/__test__/schema/config.spec.ts @@ -1,4 +1,4 @@ -import { CustomBackgroundSchema } from "../../src/schemas/configs"; +import { CustomBackgroundSchema } from "@monkeytype/schemas/configs"; describe("config schema", () => { describe("CustomBackgroundSchema", () => { diff --git a/packages/contracts/__test__/validation/validation.spec.ts b/packages/contracts/__test__/validation/validation.spec.ts index 58903a05e..4adf9c0a3 100644 --- a/packages/contracts/__test__/validation/validation.spec.ts +++ b/packages/contracts/__test__/validation/validation.spec.ts @@ -1,4 +1,4 @@ -import * as Validation from "../../src/validation/validation"; +import * as Validation from "@monkeytype/schemas/validation/validation"; describe("validation", () => { it("containsProfanity", () => { diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 3b9089b55..3db4c1dcc 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -17,6 +17,7 @@ }, "devDependencies": { "@monkeytype/eslint-config": "workspace:*", + "@monkeytype/schemas": "workspace:*", "@monkeytype/tsup-config": "workspace:*", "@monkeytype/typescript-config": "workspace:*", "chokidar": "3.6.0", diff --git a/packages/contracts/src/admin.ts b/packages/contracts/src/admin.ts index 3273a8458..5bab6e0d4 100644 --- a/packages/contracts/src/admin.ts +++ b/packages/contracts/src/admin.ts @@ -1,12 +1,12 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; +import { IdSchema } from "@monkeytype/schemas/util"; import { CommonResponses, meta, MonkeyResponseSchema, responseWithData, -} from "./schemas/api"; -import { IdSchema } from "./schemas/util"; +} from "./util/api"; export const ToggleBanRequestSchema = z .object({ diff --git a/packages/contracts/src/ape-keys.ts b/packages/contracts/src/ape-keys.ts index d63b2d645..dcf42a4d4 100644 --- a/packages/contracts/src/ape-keys.ts +++ b/packages/contracts/src/ape-keys.ts @@ -1,19 +1,17 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; - import { CommonResponses, meta, MonkeyResponseSchema, responseWithData, -} from "./schemas/api"; - -import { IdSchema } from "./schemas/util"; +} from "./util/api"; import { ApeKeySchema, ApeKeysSchema, ApeKeyUserDefinedSchema, -} from "./schemas/ape-keys"; +} from "@monkeytype/schemas/ape-keys"; +import { IdSchema } from "@monkeytype/schemas/util"; export const GetApeKeyResponseSchema = responseWithData(ApeKeysSchema); export type GetApeKeyResponse = z.infer; @@ -39,7 +37,6 @@ export const ApeKeyParamsSchema = z.object({ export type ApeKeyParams = z.infer; const c = initContract(); - export const apeKeysContract = c.router( { get: { diff --git a/packages/contracts/src/configs.ts b/packages/contracts/src/configs.ts index 351b917d9..bd3ce16c4 100644 --- a/packages/contracts/src/configs.ts +++ b/packages/contracts/src/configs.ts @@ -1,13 +1,12 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; - +import { PartialConfigSchema } from "@monkeytype/schemas/configs"; import { CommonResponses, meta, MonkeyResponseSchema, responseWithNullableData, -} from "./schemas/api"; -import { PartialConfigSchema } from "./schemas/configs"; +} from "./util/api"; export const GetConfigResponseSchema = responseWithNullableData(PartialConfigSchema); diff --git a/packages/contracts/src/configuration.ts b/packages/contracts/src/configuration.ts index fa85788ec..7eeb5ad2a 100644 --- a/packages/contracts/src/configuration.ts +++ b/packages/contracts/src/configuration.ts @@ -1,13 +1,13 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; +import { ConfigurationSchema } from "@monkeytype/schemas/configuration"; import { CommonResponses, meta, MonkeyResponseSchema, responseWithData, -} from "./schemas/api"; -import { ConfigurationSchema } from "./schemas/configuration"; +} from "./util/api"; export const GetConfigurationResponseSchema = responseWithData(ConfigurationSchema); diff --git a/packages/contracts/src/dev.ts b/packages/contracts/src/dev.ts index 55de09bb8..e6f9e2f50 100644 --- a/packages/contracts/src/dev.ts +++ b/packages/contracts/src/dev.ts @@ -1,7 +1,7 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; -import { CommonResponses, meta, responseWithData } from "./schemas/api"; -import { IdSchema } from "./schemas/util"; +import { CommonResponses, meta, responseWithData } from "./util/api"; +import { IdSchema } from "@monkeytype/schemas/util"; export const GenerateDataRequestSchema = z.object({ username: z.string(), diff --git a/packages/contracts/src/leaderboards.ts b/packages/contracts/src/leaderboards.ts index 15268f550..9e8fab615 100644 --- a/packages/contracts/src/leaderboards.ts +++ b/packages/contracts/src/leaderboards.ts @@ -5,14 +5,14 @@ import { MonkeyClientError, responseWithData, responseWithNullableData, -} from "./schemas/api"; +} from "./util/api"; import { LeaderboardEntrySchema, XpLeaderboardEntrySchema, -} from "./schemas/leaderboards"; -import { Mode2Schema, ModeSchema } from "./schemas/shared"; +} from "@monkeytype/schemas/leaderboards"; +import { Mode2Schema, ModeSchema } from "@monkeytype/schemas/shared"; import { initContract } from "@ts-rest/core"; -import { LanguageSchema } from "./schemas/languages"; +import { LanguageSchema } from "@monkeytype/schemas/languages"; const LanguageAndModeQuerySchema = z.object({ language: LanguageSchema, diff --git a/packages/contracts/src/presets.ts b/packages/contracts/src/presets.ts index adb5c7ddd..e47d75edf 100644 --- a/packages/contracts/src/presets.ts +++ b/packages/contracts/src/presets.ts @@ -6,9 +6,12 @@ import { meta, MonkeyResponseSchema, responseWithData, -} from "./schemas/api"; -import { EditPresetRequestSchema, PresetSchema } from "./schemas/presets"; -import { IdSchema } from "./schemas/util"; +} from "./util/api"; +import { + EditPresetRequestSchema, + PresetSchema, +} from "@monkeytype/schemas/presets"; +import { IdSchema } from "@monkeytype/schemas/util"; export const GetPresetResponseSchema = responseWithData(z.array(PresetSchema)); export type GetPresetResponse = z.infer; diff --git a/packages/contracts/src/psas.ts b/packages/contracts/src/psas.ts index 49a978f83..7fae5086e 100644 --- a/packages/contracts/src/psas.ts +++ b/packages/contracts/src/psas.ts @@ -1,8 +1,8 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; -import { PSASchema } from "./schemas/psas"; +import { PSASchema } from "@monkeytype/schemas/psas"; +import { CommonResponses, meta, responseWithData } from "./util/api"; -import { CommonResponses, meta, responseWithData } from "./schemas/api"; export const GetPsaResponseSchema = responseWithData(z.array(PSASchema)); export type GetPsaResponse = z.infer; diff --git a/packages/contracts/src/public.ts b/packages/contracts/src/public.ts index bdb8c1087..8286ae2d6 100644 --- a/packages/contracts/src/public.ts +++ b/packages/contracts/src/public.ts @@ -1,9 +1,12 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; -import { CommonResponses, meta, responseWithData } from "./schemas/api"; -import { SpeedHistogramSchema, TypingStatsSchema } from "./schemas/public"; -import { Mode2Schema, ModeSchema } from "./schemas/shared"; -import { LanguageSchema } from "./schemas/languages"; +import { CommonResponses, meta, responseWithData } from "./util/api"; +import { + SpeedHistogramSchema, + TypingStatsSchema, +} from "@monkeytype/schemas/public"; +import { Mode2Schema, ModeSchema } from "@monkeytype/schemas/shared"; +import { LanguageSchema } from "@monkeytype/schemas/languages"; export const GetSpeedHistogramQuerySchema = z .object({ diff --git a/packages/contracts/src/quotes.ts b/packages/contracts/src/quotes.ts index 9b2f839c0..b2de99c23 100644 --- a/packages/contracts/src/quotes.ts +++ b/packages/contracts/src/quotes.ts @@ -7,16 +7,16 @@ import { MonkeyResponseSchema, responseWithData, responseWithNullableData, -} from "./schemas/api"; +} from "./util/api"; import { ApproveQuoteSchema, QuoteIdSchema, QuoteRatingSchema, QuoteReportReasonSchema, QuoteSchema, -} from "./schemas/quotes"; -import { IdSchema, NullableStringSchema } from "./schemas/util"; -import { LanguageSchema } from "./schemas/languages"; +} from "@monkeytype/schemas/quotes"; +import { IdSchema, NullableStringSchema } from "@monkeytype/schemas/util"; +import { LanguageSchema } from "@monkeytype/schemas/languages"; export const GetQuotesResponseSchema = responseWithData(z.array(QuoteSchema)); export type GetQuotesResponse = z.infer; diff --git a/packages/contracts/src/require-configuration/index.ts b/packages/contracts/src/require-configuration/index.ts index c1e89d166..74e01920a 100644 --- a/packages/contracts/src/require-configuration/index.ts +++ b/packages/contracts/src/require-configuration/index.ts @@ -1,4 +1,4 @@ -import { Configuration } from "../schemas/configuration"; +import { Configuration } from "@monkeytype/schemas/configuration"; type BooleanPaths = { [K in keyof T]: T[K] extends boolean diff --git a/packages/contracts/src/results.ts b/packages/contracts/src/results.ts index da18c42c6..e047c0aad 100644 --- a/packages/contracts/src/results.ts +++ b/packages/contracts/src/results.ts @@ -5,14 +5,14 @@ import { meta, MonkeyResponseSchema, responseWithData, -} from "./schemas/api"; +} from "./util/api"; import { CompletedEventSchema, PostResultResponseSchema, ResultMinifiedSchema, ResultSchema, -} from "./schemas/results"; -import { IdSchema } from "./schemas/util"; +} from "@monkeytype/schemas/results"; +import { IdSchema } from "@monkeytype/schemas/util"; export const GetResultsQuerySchema = z.object({ onOrAfterTimestamp: z diff --git a/packages/contracts/src/users.ts b/packages/contracts/src/users.ts index 2cfbb5a9e..5ec48b847 100644 --- a/packages/contracts/src/users.ts +++ b/packages/contracts/src/users.ts @@ -7,7 +7,7 @@ import { MonkeyResponseSchema, responseWithData, responseWithNullableData, -} from "./schemas/api"; +} from "./util/api"; import { CountByYearAndDaySchema, CustomThemeNameSchema, @@ -24,12 +24,16 @@ import { UserSchema, UserStreakSchema, UserTagSchema, -} from "./schemas/users"; -import { Mode2Schema, ModeSchema, PersonalBestSchema } from "./schemas/shared"; -import { IdSchema, StringNumberSchema } from "./schemas/util"; -import { LanguageSchema } from "./schemas/languages"; -import { CustomThemeColorsSchema } from "./schemas/configs"; -import { doesNotContainProfanity } from "./validation/validation"; +} from "@monkeytype/schemas/users"; +import { + Mode2Schema, + ModeSchema, + PersonalBestSchema, +} from "@monkeytype/schemas/shared"; +import { IdSchema, StringNumberSchema } from "@monkeytype/schemas/util"; +import { LanguageSchema } from "@monkeytype/schemas/languages"; +import { CustomThemeColorsSchema } from "@monkeytype/schemas/configs"; +import { doesNotContainProfanity } from "@monkeytype/schemas/validation/validation"; export const UserEmailSchema = z.string().email(); diff --git a/packages/contracts/src/schemas/api.ts b/packages/contracts/src/util/api.ts similarity index 100% rename from packages/contracts/src/schemas/api.ts rename to packages/contracts/src/util/api.ts diff --git a/packages/contracts/src/webhooks.ts b/packages/contracts/src/webhooks.ts index 2fcd11793..48a74bf05 100644 --- a/packages/contracts/src/webhooks.ts +++ b/packages/contracts/src/webhooks.ts @@ -1,13 +1,13 @@ import { initContract } from "@ts-rest/core"; import { z } from "zod"; -import { PSASchema } from "./schemas/psas"; +import { PSASchema } from "@monkeytype/schemas/psas"; import { CommonResponses, meta, MonkeyResponseSchema, responseWithData, -} from "./schemas/api"; +} from "./util/api"; /** *Schema: https://docs.github.com/en/webhooks/webhook-events-and-payloads?actionType=published#release diff --git a/packages/funbox/package.json b/packages/funbox/package.json index 9167eab22..1b5b15ba9 100644 --- a/packages/funbox/package.json +++ b/packages/funbox/package.json @@ -13,6 +13,7 @@ }, "devDependencies": { "@monkeytype/eslint-config": "workspace:*", + "@monkeytype/schemas": "workspace:*", "@monkeytype/tsup-config": "workspace:*", "@monkeytype/typescript-config": "workspace:*", "chokidar": "3.6.0", @@ -26,9 +27,6 @@ "dependencies": { "@monkeytype/util": "workspace:*" }, - "peerDependencies": { - "@monkeytype/contracts": "workspace:*" - }, "exports": { ".": { "types": "./src/index.ts", diff --git a/packages/funbox/src/index.ts b/packages/funbox/src/index.ts index b8c82ea91..2d937562b 100644 --- a/packages/funbox/src/index.ts +++ b/packages/funbox/src/index.ts @@ -1,4 +1,4 @@ -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; import { getList, getFunbox, getObject, getFunboxNames } from "./list"; import { FunboxMetadata, FunboxProperty } from "./types"; import { checkCompatibility } from "./validation"; diff --git a/packages/funbox/src/list.ts b/packages/funbox/src/list.ts index 8d7cf4693..a6414dd86 100644 --- a/packages/funbox/src/list.ts +++ b/packages/funbox/src/list.ts @@ -1,4 +1,4 @@ -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; import { FunboxMetadata } from "./types"; const list: Record = { diff --git a/packages/funbox/src/types.ts b/packages/funbox/src/types.ts index c5c95796b..0e0e99d30 100644 --- a/packages/funbox/src/types.ts +++ b/packages/funbox/src/types.ts @@ -1,4 +1,4 @@ -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; export type FunboxForcedConfig = Record; diff --git a/packages/funbox/src/validation.ts b/packages/funbox/src/validation.ts index d646f40d0..0d3972378 100644 --- a/packages/funbox/src/validation.ts +++ b/packages/funbox/src/validation.ts @@ -1,7 +1,7 @@ import { intersect } from "@monkeytype/util/arrays"; import { FunboxForcedConfig } from "./types"; import { getFunbox } from "./list"; -import { FunboxName } from "@monkeytype/contracts/schemas/configs"; +import { FunboxName } from "@monkeytype/schemas/configs"; import { safeNumber } from "@monkeytype/util/numbers"; export function checkCompatibility( diff --git a/packages/schemas/.eslintrc.cjs b/packages/schemas/.eslintrc.cjs new file mode 100644 index 000000000..922de4abe --- /dev/null +++ b/packages/schemas/.eslintrc.cjs @@ -0,0 +1,5 @@ +/** @type {import("eslint").Linter.Config} */ +module.exports = { + root: true, + extends: ["@monkeytype/eslint-config"], +}; diff --git a/packages/schemas/.oxlintrc.json b/packages/schemas/.oxlintrc.json new file mode 100644 index 000000000..d83cb2611 --- /dev/null +++ b/packages/schemas/.oxlintrc.json @@ -0,0 +1,6 @@ +{ + "extends": [ + "../oxlint-config/index.json" + // "@monkeytype/oxlint-config" + ] +} diff --git a/packages/schemas/package.json b/packages/schemas/package.json new file mode 100644 index 000000000..5b4fec8f2 --- /dev/null +++ b/packages/schemas/package.json @@ -0,0 +1,39 @@ +{ + "name": "@monkeytype/schemas", + "private": true, + "scripts": { + "dev": "tsup-node --watch", + "build": "npm run madge && tsup-node", + "madge": " madge --circular --extensions ts ./src", + "ts-check": "tsc --noEmit", + "eslint": "eslint \"./src/**/*.ts\"", + "oxlint": "oxlint .", + "lint": "npm run oxlint && npm run eslint" + }, + "peerDependencies": { + "zod": "3.23.8" + }, + "devDependencies": { + "@monkeytype/eslint-config": "workspace:*", + "@monkeytype/tsup-config": "workspace:*", + "@monkeytype/typescript-config": "workspace:*", + "chokidar": "3.6.0", + "eslint": "8.57.1", + "madge": "8.0.0", + "oxlint": "1.7.0", + "tsup": "8.4.0", + "typescript": "5.5.4" + }, + "exports": { + ".": { + "types": "./src/index.ts", + "import": "./dist/index.mjs", + "require": "./dist/index.js" + }, + "./*": { + "types": "./src/*.ts", + "import": "./dist/*.mjs", + "require": "./dist/*.js" + } + } +} diff --git a/packages/contracts/src/schemas/ape-keys.ts b/packages/schemas/src/ape-keys.ts similarity index 100% rename from packages/contracts/src/schemas/ape-keys.ts rename to packages/schemas/src/ape-keys.ts diff --git a/packages/contracts/src/schemas/configs.ts b/packages/schemas/src/configs.ts similarity index 100% rename from packages/contracts/src/schemas/configs.ts rename to packages/schemas/src/configs.ts diff --git a/packages/contracts/src/schemas/configuration.ts b/packages/schemas/src/configuration.ts similarity index 100% rename from packages/contracts/src/schemas/configuration.ts rename to packages/schemas/src/configuration.ts diff --git a/packages/contracts/src/schemas/languages.ts b/packages/schemas/src/languages.ts similarity index 100% rename from packages/contracts/src/schemas/languages.ts rename to packages/schemas/src/languages.ts diff --git a/packages/contracts/src/schemas/layouts.ts b/packages/schemas/src/layouts.ts similarity index 100% rename from packages/contracts/src/schemas/layouts.ts rename to packages/schemas/src/layouts.ts diff --git a/packages/contracts/src/schemas/leaderboards.ts b/packages/schemas/src/leaderboards.ts similarity index 100% rename from packages/contracts/src/schemas/leaderboards.ts rename to packages/schemas/src/leaderboards.ts diff --git a/packages/contracts/src/schemas/presets.ts b/packages/schemas/src/presets.ts similarity index 100% rename from packages/contracts/src/schemas/presets.ts rename to packages/schemas/src/presets.ts diff --git a/packages/contracts/src/schemas/psas.ts b/packages/schemas/src/psas.ts similarity index 99% rename from packages/contracts/src/schemas/psas.ts rename to packages/schemas/src/psas.ts index 2ec6d074a..0aadd12d0 100644 --- a/packages/contracts/src/schemas/psas.ts +++ b/packages/schemas/src/psas.ts @@ -8,4 +8,5 @@ export const PSASchema = z.object({ level: z.number().int().optional(), sticky: z.boolean().optional(), }); + export type PSA = z.infer; diff --git a/packages/contracts/src/schemas/public.ts b/packages/schemas/src/public.ts similarity index 100% rename from packages/contracts/src/schemas/public.ts rename to packages/schemas/src/public.ts diff --git a/packages/contracts/src/schemas/quotes.ts b/packages/schemas/src/quotes.ts similarity index 100% rename from packages/contracts/src/schemas/quotes.ts rename to packages/schemas/src/quotes.ts diff --git a/packages/contracts/src/schemas/results.ts b/packages/schemas/src/results.ts similarity index 100% rename from packages/contracts/src/schemas/results.ts rename to packages/schemas/src/results.ts diff --git a/packages/contracts/src/schemas/shared.ts b/packages/schemas/src/shared.ts similarity index 100% rename from packages/contracts/src/schemas/shared.ts rename to packages/schemas/src/shared.ts diff --git a/packages/contracts/src/schemas/themes.ts b/packages/schemas/src/themes.ts similarity index 100% rename from packages/contracts/src/schemas/themes.ts rename to packages/schemas/src/themes.ts diff --git a/packages/contracts/src/schemas/users.ts b/packages/schemas/src/users.ts similarity index 99% rename from packages/contracts/src/schemas/users.ts rename to packages/schemas/src/users.ts index e7ba65ce2..a72ecca0f 100644 --- a/packages/contracts/src/schemas/users.ts +++ b/packages/schemas/src/users.ts @@ -11,7 +11,7 @@ import { DifficultySchema, } from "./shared"; import { CustomThemeColorsSchema, FunboxNameSchema } from "./configs"; -import { doesNotContainProfanity } from "../validation/validation"; +import { doesNotContainProfanity } from "./validation/validation"; const NoneFilterSchema = z.literal("none"); export const ResultFiltersSchema = z.object({ diff --git a/packages/contracts/src/schemas/util.ts b/packages/schemas/src/util.ts similarity index 100% rename from packages/contracts/src/schemas/util.ts rename to packages/schemas/src/util.ts diff --git a/packages/contracts/src/validation/homoglyphs.ts b/packages/schemas/src/validation/homoglyphs.ts similarity index 100% rename from packages/contracts/src/validation/homoglyphs.ts rename to packages/schemas/src/validation/homoglyphs.ts diff --git a/packages/contracts/src/validation/validation.ts b/packages/schemas/src/validation/validation.ts similarity index 100% rename from packages/contracts/src/validation/validation.ts rename to packages/schemas/src/validation/validation.ts diff --git a/packages/schemas/tsconfig.json b/packages/schemas/tsconfig.json new file mode 100644 index 000000000..b0f299a62 --- /dev/null +++ b/packages/schemas/tsconfig.json @@ -0,0 +1,12 @@ +{ + "extends": "@monkeytype/typescript-config/base.json", + "compilerOptions": { + "outDir": "./dist", + "rootDir": "./src", + "declaration": true, + "declarationMap": true, + "target": "ES6" + }, + "include": ["src"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/schemas/tsup.config.js b/packages/schemas/tsup.config.js new file mode 100644 index 000000000..18ad6a0da --- /dev/null +++ b/packages/schemas/tsup.config.js @@ -0,0 +1,3 @@ +import { extendConfig } from "@monkeytype/tsup-config"; + +export default extendConfig(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e57abaedf..fbbece044 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: version: link:packages/release '@vitest/coverage-v8': specifier: 2.1.9 - version: 2.1.9(vitest@2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0)) + version: 2.1.9(vitest@2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1)) conventional-changelog: specifier: 6.0.0 version: 6.0.0(conventional-commits-filter@5.0.0) @@ -49,7 +49,7 @@ importers: version: 2.3.3 vitest: specifier: 2.1.9 - version: 2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0) + version: 2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1) backend: dependencies: @@ -177,6 +177,9 @@ importers: '@monkeytype/oxlint-config': specifier: workspace:* version: link:../packages/oxlint-config + '@monkeytype/schemas': + specifier: workspace:* + version: link:../packages/schemas '@monkeytype/typescript-config': specifier: workspace:* version: link:../packages/typescript-config @@ -239,7 +242,7 @@ importers: version: 10.0.0 '@vitest/coverage-v8': specifier: 2.1.9 - version: 2.1.9(vitest@2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0)) + version: 2.1.9(vitest@2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1)) concurrently: specifier: 8.2.2 version: 8.2.2 @@ -272,7 +275,7 @@ importers: version: 5.5.4 vitest: specifier: 2.1.9 - version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0) + version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1) vitest-mongodb: specifier: 1.0.0 version: 1.0.0 @@ -382,6 +385,9 @@ importers: '@monkeytype/oxlint-config': specifier: workspace:* version: link:../packages/oxlint-config + '@monkeytype/schemas': + specifier: workspace:* + version: link:../packages/schemas '@monkeytype/typescript-config': specifier: workspace:* version: link:../packages/typescript-config @@ -518,6 +524,9 @@ importers: '@monkeytype/eslint-config': specifier: workspace:* version: link:../eslint-config + '@monkeytype/schemas': + specifier: workspace:* + version: link:../schemas '@monkeytype/tsup-config': specifier: workspace:* version: link:../tsup-config @@ -544,7 +553,7 @@ importers: version: 5.5.4 vitest: specifier: 2.1.9 - version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0) + version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1) packages/eslint-config: devDependencies: @@ -575,12 +584,76 @@ importers: packages/funbox: dependencies: - '@monkeytype/contracts': - specifier: workspace:* - version: link:../contracts '@monkeytype/util': specifier: workspace:* version: link:../util + devDependencies: + '@monkeytype/eslint-config': + specifier: workspace:* + version: link:../eslint-config + '@monkeytype/schemas': + specifier: workspace:* + version: link:../schemas + '@monkeytype/tsup-config': + specifier: workspace:* + version: link:../tsup-config + '@monkeytype/typescript-config': + specifier: workspace:* + version: link:../typescript-config + chokidar: + specifier: 3.6.0 + version: 3.6.0 + eslint: + specifier: 8.57.1 + version: 8.57.1 + madge: + specifier: 8.0.0 + version: 8.0.0(typescript@5.5.4) + oxlint: + specifier: 1.7.0 + version: 1.7.0 + tsup: + specifier: 8.4.0 + version: 8.4.0(postcss@8.5.3)(tsx@4.16.2)(typescript@5.5.4)(yaml@2.5.0) + typescript: + specifier: 5.5.4 + version: 5.5.4 + vitest: + specifier: 2.1.9 + version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1) + + packages/oxlint-config: {} + + packages/release: + dependencies: + '@octokit/rest': + specifier: 21.1.1 + version: 21.1.1 + dotenv: + specifier: 16.4.5 + version: 16.4.5 + readline-sync: + specifier: 1.4.10 + version: 1.4.10 + devDependencies: + '@monkeytype/eslint-config': + specifier: workspace:* + version: link:../eslint-config + eslint: + specifier: 8.57.1 + version: 8.57.1 + nodemon: + specifier: 3.1.4 + version: 3.1.4 + oxlint: + specifier: 1.7.0 + version: 1.7.0 + + packages/schemas: + dependencies: + zod: + specifier: 3.23.8 + version: 3.23.8 devDependencies: '@monkeytype/eslint-config': specifier: workspace:* @@ -609,36 +682,6 @@ importers: typescript: specifier: 5.5.4 version: 5.5.4 - vitest: - specifier: 2.1.9 - version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0) - - packages/oxlint-config: {} - - packages/release: - dependencies: - '@octokit/rest': - specifier: 21.1.1 - version: 21.1.1 - dotenv: - specifier: 16.4.5 - version: 16.4.5 - readline-sync: - specifier: 1.4.10 - version: 1.4.10 - devDependencies: - '@monkeytype/eslint-config': - specifier: workspace:* - version: link:../eslint-config - eslint: - specifier: 8.57.1 - version: 8.57.1 - nodemon: - specifier: 3.1.4 - version: 3.1.4 - oxlint: - specifier: 1.7.0 - version: 1.7.0 packages/tsup-config: dependencies: @@ -692,7 +735,7 @@ importers: version: 5.5.4 vitest: specifier: 2.1.9 - version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0) + version: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1) zod: specifier: 3.23.8 version: 3.23.8 @@ -3697,11 +3740,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.25.0: - resolution: {integrity: sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - browserslist@4.25.1: resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -9303,11 +9341,6 @@ packages: engines: {node: '>=10'} hasBin: true - terser@5.42.0: - resolution: {integrity: sha512-UYCvU9YQW2f/Vwl+P0GfhxJxbUGLwd+5QrrGgLajzWAtC/23AX0vcise32kkP7Eu0Wu9VlzzHAXkLObgjQfFlQ==} - engines: {node: '>=10'} - hasBin: true - terser@5.43.1: resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} engines: {node: '>=10'} @@ -10581,7 +10614,7 @@ snapshots: dependencies: '@babel/compat-data': 7.28.0 '@babel/helper-validator-option': 7.27.1 - browserslist: 4.25.0 + browserslist: 4.25.1 lru-cache: 5.1.1 semver: 6.3.1 @@ -11600,7 +11633,7 @@ snapshots: '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.4.0 + debug: 4.4.1 espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -12220,7 +12253,7 @@ snapshots: '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.4.0 + debug: 4.4.1 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -13264,24 +13297,6 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitest/coverage-v8@2.1.9(vitest@2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0))': - dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 0.2.3 - debug: 4.4.0 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magic-string: 0.30.17 - magicast: 0.3.5 - std-env: 3.8.0 - test-exclude: 7.0.1 - tinyrainbow: 1.2.0 - vitest: 2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0) - transitivePeerDependencies: - - supports-color - '@vitest/coverage-v8@2.1.9(vitest@2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1))': dependencies: '@ampproject/remapping': 2.3.0 @@ -13300,7 +13315,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@2.1.9(vitest@2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0))': + '@vitest/coverage-v8@2.1.9(vitest@2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1))': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 @@ -13314,7 +13329,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0) + vitest: 2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1) transitivePeerDependencies: - supports-color @@ -13325,14 +13340,6 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.9(vite@5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0))': - dependencies: - '@vitest/spy': 2.1.9 - estree-walker: 3.0.3 - magic-string: 0.30.17 - optionalDependencies: - vite: 5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0) - '@vitest/mocker@2.1.9(vite@5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.43.1))': dependencies: '@vitest/spy': 2.1.9 @@ -13341,13 +13348,13 @@ snapshots: optionalDependencies: vite: 5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.43.1) - '@vitest/mocker@2.1.9(vite@5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0))': + '@vitest/mocker@2.1.9(vite@5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1))': dependencies: '@vitest/spy': 2.1.9 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0) + vite: 5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1) '@vitest/pretty-format@2.1.9': dependencies: @@ -13376,7 +13383,7 @@ snapshots: '@vue/compiler-core@3.4.37': dependencies: - '@babel/parser': 7.26.8 + '@babel/parser': 7.28.0 '@vue/shared': 3.4.37 entities: 5.0.0 estree-walker: 2.0.2 @@ -13389,7 +13396,7 @@ snapshots: '@vue/compiler-sfc@3.4.37': dependencies: - '@babel/parser': 7.26.8 + '@babel/parser': 7.28.0 '@vue/compiler-core': 3.4.37 '@vue/compiler-dom': 3.4.37 '@vue/compiler-ssr': 3.4.37 @@ -13431,13 +13438,13 @@ snapshots: mime-types: 3.0.1 negotiator: 1.0.0 - acorn-jsx@5.3.2(acorn@8.14.0): + acorn-jsx@5.3.2(acorn@8.15.0): dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk@8.3.3: dependencies: - acorn: 8.14.0 + acorn: 8.15.0 acorn@8.14.0: {} @@ -13991,13 +13998,6 @@ snapshots: node-releases: 2.0.19 update-browserslist-db: 1.1.3(browserslist@4.24.4) - browserslist@4.25.0: - dependencies: - caniuse-lite: 1.0.30001727 - electron-to-chromium: 1.5.187 - node-releases: 2.0.19 - update-browserslist-db: 1.1.3(browserslist@4.25.0) - browserslist@4.25.1: dependencies: caniuse-lite: 1.0.30001727 @@ -15510,7 +15510,7 @@ snapshots: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.4.0 + debug: 4.4.1 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -15549,8 +15549,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.14.0 - acorn-jsx: 5.3.2(acorn@8.14.0) + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) eslint-visitor-keys: 3.4.3 esprima@4.0.1: {} @@ -15897,7 +15897,7 @@ snapshots: enhanced-resolve: 5.17.1 module-definition: 6.0.0 module-lookup-amd: 9.0.2 - resolve: 1.22.8 + resolve: 1.22.10 resolve-dependency-path: 4.0.0 sass-lookup: 6.0.1 stylus-lookup: 6.0.0 @@ -17873,7 +17873,7 @@ snapshots: chalk: 4.1.2 commander: 7.2.0 commondir: 1.0.1 - debug: 4.3.6(supports-color@5.5.0) + debug: 4.4.1 dependency-tree: 11.0.1 ora: 5.4.1 pluralize: 8.0.0 @@ -18706,7 +18706,7 @@ snapshots: node-source-walk@7.0.0: dependencies: - '@babel/parser': 7.26.8 + '@babel/parser': 7.28.0 nodemailer@6.9.14: {} @@ -20694,7 +20694,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.12 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -20874,14 +20874,6 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 - terser@5.42.0: - dependencies: - '@jridgewell/source-map': 0.3.10 - acorn: 8.15.0 - commander: 2.20.3 - source-map-support: 0.5.21 - optional: true - terser@5.43.1: dependencies: '@jridgewell/source-map': 0.3.10 @@ -21070,7 +21062,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 20.5.1 - acorn: 8.14.0 + acorn: 8.15.0 acorn-walk: 8.3.3 arg: 4.1.3 create-require: 1.1.1 @@ -21105,17 +21097,17 @@ snapshots: cac: 6.7.14 chokidar: 4.0.3 consola: 3.4.0 - debug: 4.4.0 + debug: 4.4.1 esbuild: 0.25.0 joycon: 3.1.1 picocolors: 1.1.1 postcss-load-config: 6.0.1(postcss@8.5.3)(tsx@4.16.2)(yaml@2.5.0) resolve-from: 5.0.0 - rollup: 4.34.8 + rollup: 4.40.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 tinyexec: 0.3.2 - tinyglobby: 0.2.12 + tinyglobby: 0.2.13 tree-kill: 1.2.2 optionalDependencies: postcss: 8.5.3 @@ -21413,12 +21405,6 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - update-browserslist-db@1.1.3(browserslist@4.25.0): - dependencies: - browserslist: 4.25.0 - escalade: 3.2.0 - picocolors: 1.1.1 - update-browserslist-db@1.1.3(browserslist@4.25.1): dependencies: browserslist: 4.25.1 @@ -21603,24 +21589,6 @@ snapshots: dependencies: vite: 6.3.4(@types/node@20.14.11)(sass@1.70.0)(terser@5.43.1)(tsx@4.16.2)(yaml@2.5.0) - vite-node@2.1.9(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0): - dependencies: - cac: 6.7.14 - debug: 4.4.0 - es-module-lexer: 1.6.0 - pathe: 1.1.2 - vite: 5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0) - transitivePeerDependencies: - - '@types/node' - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vite-node@2.1.9(@types/node@20.14.11)(sass@1.70.0)(terser@5.43.1): dependencies: cac: 6.7.14 @@ -21639,13 +21607,13 @@ snapshots: - supports-color - terser - vite-node@2.1.9(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0): + vite-node@2.1.9(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 1.1.2 - vite: 5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0) + vite: 5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1) transitivePeerDependencies: - '@types/node' - less @@ -21723,17 +21691,6 @@ snapshots: transitivePeerDependencies: - supports-color - vite@5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0): - dependencies: - esbuild: 0.21.5 - postcss: 8.5.1 - rollup: 4.34.8 - optionalDependencies: - '@types/node': 20.14.11 - fsevents: 2.3.3 - sass: 1.70.0 - terser: 5.42.0 - vite@5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.43.1): dependencies: esbuild: 0.21.5 @@ -21745,7 +21702,7 @@ snapshots: sass: 1.70.0 terser: 5.43.1 - vite@5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0): + vite@5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1): dependencies: esbuild: 0.21.5 postcss: 8.5.1 @@ -21754,7 +21711,7 @@ snapshots: '@types/node': 20.5.1 fsevents: 2.3.3 sass: 1.70.0 - terser: 5.42.0 + terser: 5.43.1 vite@6.3.4(@types/node@20.14.11)(sass@1.70.0)(terser@5.43.1)(tsx@4.16.2)(yaml@2.5.0): dependencies: @@ -21784,42 +21741,6 @@ snapshots: - snappy - supports-color - vitest@2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0): - dependencies: - '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0)) - '@vitest/pretty-format': 2.1.9 - '@vitest/runner': 2.1.9 - '@vitest/snapshot': 2.1.9 - '@vitest/spy': 2.1.9 - '@vitest/utils': 2.1.9 - chai: 5.1.2 - debug: 4.4.0 - expect-type: 1.1.0 - magic-string: 0.30.17 - pathe: 1.1.2 - std-env: 3.8.0 - tinybench: 2.9.0 - tinyexec: 0.3.2 - tinypool: 1.0.2 - tinyrainbow: 1.2.0 - vite: 5.4.17(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0) - vite-node: 2.1.9(@types/node@20.14.11)(sass@1.70.0)(terser@5.42.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 20.14.11 - happy-dom: 15.10.2 - transitivePeerDependencies: - - less - - lightningcss - - msw - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - vitest@2.1.9(@types/node@20.14.11)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1): dependencies: '@vitest/expect': 2.1.9 @@ -21856,10 +21777,10 @@ snapshots: - supports-color - terser - vitest@2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.42.0): + vitest@2.1.9(@types/node@20.5.1)(happy-dom@15.10.2)(sass@1.70.0)(terser@5.43.1): dependencies: '@vitest/expect': 2.1.9 - '@vitest/mocker': 2.1.9(vite@5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0)) + '@vitest/mocker': 2.1.9(vite@5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1)) '@vitest/pretty-format': 2.1.9 '@vitest/runner': 2.1.9 '@vitest/snapshot': 2.1.9 @@ -21875,8 +21796,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0) - vite-node: 2.1.9(@types/node@20.5.1)(sass@1.70.0)(terser@5.42.0) + vite: 5.4.17(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1) + vite-node: 2.1.9(@types/node@20.5.1)(sass@1.70.0)(terser@5.43.1) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.5.1