@epic-web/workshop-app 5.6.0 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/client/assets/{_-hAKYb2AG.js → _-CjjFMNGC.js} +2 -2
- package/build/client/assets/{_-hAKYb2AG.js.map → _-CjjFMNGC.js.map} +1 -1
- package/build/client/assets/_exerciseNumber-CqkGzsgV.js +2 -0
- package/build/client/assets/{_exerciseNumber-PTdG9GGB.js.map → _exerciseNumber-CqkGzsgV.js.map} +1 -1
- package/build/client/assets/{_exerciseNumber_._stepNumber-03erOIGo.js → _exerciseNumber_._stepNumber-BNWGPi9m.js} +2 -2
- package/build/client/assets/{_exerciseNumber_._stepNumber-03erOIGo.js.map → _exerciseNumber_._stepNumber-BNWGPi9m.js.map} +1 -1
- package/build/client/assets/_exerciseNumber_.finished-CdNhLhKg.js +2 -0
- package/build/client/assets/{_exerciseNumber_.finished-DQg4F1NL.js.map → _exerciseNumber_.finished-CdNhLhKg.js.map} +1 -1
- package/build/client/assets/_layout-BMa5nZcJ.js +2 -0
- package/build/client/assets/{_layout-DHoH74NH.js.map → _layout-BMa5nZcJ.js.map} +1 -1
- package/build/client/assets/{_layout-B4JGpA3A.js → _layout-CwTidn3v.js} +2 -2
- package/build/client/assets/{_layout-B4JGpA3A.js.map → _layout-CwTidn3v.js.map} +1 -1
- package/build/client/assets/{_layout-BJbMl6SJ.js → _layout-DV29dlKr.js} +2 -2
- package/build/client/assets/{_layout-BJbMl6SJ.js.map → _layout-DV29dlKr.js.map} +1 -1
- package/build/client/assets/{_layout-Bu0lel3p.js → _layout-Muw3ERYT.js} +3 -3
- package/build/client/assets/{_layout-Bu0lel3p.js.map → _layout-Muw3ERYT.js.map} +1 -1
- package/build/client/assets/{accordion-DLg7gJkp.js → accordion-C-sW--in.js} +2 -2
- package/build/client/assets/{accordion-DLg7gJkp.js.map → accordion-C-sW--in.js.map} +1 -1
- package/build/client/assets/account-Cc968svU.js +2 -0
- package/build/client/assets/account-Cc968svU.js.map +1 -0
- package/build/client/assets/app-BOqXK9hi.js +2 -0
- package/build/client/assets/{app-DJDjmdlu.js.map → app-BOqXK9hi.js.map} +1 -1
- package/build/client/assets/{button-39zQyNX6.js → button-BS845Tjo.js} +2 -2
- package/build/client/assets/{button-39zQyNX6.js.map → button-BS845Tjo.js.map} +1 -1
- package/build/client/assets/{components-DUNtf72c.js → components-DrvY4pal.js} +4 -4
- package/build/client/assets/{components-DUNtf72c.js.map → components-DrvY4pal.js.map} +1 -1
- package/build/client/assets/diff-D0e_PrB7.js +2 -0
- package/build/client/assets/{diff-B3oaU_KB.js.map → diff-D0e_PrB7.js.map} +1 -1
- package/build/client/assets/{diff-BNCREJvf.js → diff-DtvfyjPI.js} +2 -2
- package/build/client/assets/{diff-BNCREJvf.js.map → diff-DtvfyjPI.js.map} +1 -1
- package/build/client/assets/{discord-CEOqKs_c.js → discord-BfP_Rny5.js} +2 -2
- package/build/client/assets/{discord-CEOqKs_c.js.map → discord-BfP_Rny5.js.map} +1 -1
- package/build/client/assets/discord-DILzAZN8.js +2 -0
- package/build/client/assets/discord-DILzAZN8.js.map +1 -0
- package/build/client/assets/{entry.client-CrlHhRMR.js → entry.client-CQusg5Iz.js} +2 -2
- package/build/client/assets/{entry.client-CrlHhRMR.js.map → entry.client-CQusg5Iz.js.map} +1 -1
- package/build/client/assets/epic-video-qHKPWPt1.js +3053 -0
- package/build/client/assets/epic-video-qHKPWPt1.js.map +1 -0
- package/build/client/assets/error-boundary-Beul7lrT.js +2 -0
- package/build/client/assets/{error-boundary-3zItlMUO.js.map → error-boundary-Beul7lrT.js.map} +1 -1
- package/build/client/assets/finished-DUKfL220.js +2 -0
- package/build/client/assets/{finished-rUzUjnEm.js.map → finished-DUKfL220.js.map} +1 -1
- package/build/client/assets/{index-CV3nxGFp.js → index-BHwOR8R1.js} +2 -2
- package/build/client/assets/{index-CV3nxGFp.js.map → index-BHwOR8R1.js.map} +1 -1
- package/build/client/assets/index-BOQWfIQC.js +36 -0
- package/build/client/assets/index-BOQWfIQC.js.map +1 -0
- package/build/client/assets/{index-DFqQCjCw.js → index-BPegC-d3.js} +2 -2
- package/build/client/assets/{index-DFqQCjCw.js.map → index-BPegC-d3.js.map} +1 -1
- package/build/client/assets/{index-LjRZeU7x.js → index-CB8bjE90.js} +2 -2
- package/build/client/assets/{index-LjRZeU7x.js.map → index-CB8bjE90.js.map} +1 -1
- package/build/client/assets/{index-C_B1-9rF.js → index-CGzylDPY.js} +2 -2
- package/build/client/assets/{index-C_B1-9rF.js.map → index-CGzylDPY.js.map} +1 -1
- package/build/client/assets/index-DbCT6N5p.js +2 -0
- package/build/client/assets/{index-DE-jwnOP.js.map → index-DbCT6N5p.js.map} +1 -1
- package/build/client/assets/{index-DDqzbGM2.js → index-cZQeGrqL.js} +2 -2
- package/build/client/assets/{index-DDqzbGM2.js.map → index-cZQeGrqL.js.map} +1 -1
- package/build/client/assets/{index-CLNXC84j.js → index-egcHQOpF.js} +2 -2
- package/build/client/assets/{index-CLNXC84j.js.map → index-egcHQOpF.js.map} +1 -1
- package/build/client/assets/index-oED4uZLa.js +2 -0
- package/build/client/assets/{index-mivnjq36.js.map → index-oED4uZLa.js.map} +1 -1
- package/build/client/assets/{loading-DW_I206H.js → loading-C2wPVvQw.js} +2 -2
- package/build/client/assets/{loading-DW_I206H.js.map → loading-C2wPVvQw.js.map} +1 -1
- package/build/client/assets/login-DoU7gifi.js +2 -0
- package/build/client/assets/{login-CdNej0Z7.js.map → login-DoU7gifi.js.map} +1 -1
- package/build/client/assets/manifest-93f34003.js +1 -0
- package/build/client/assets/mdx-CsS30JUo.js +2 -0
- package/build/client/assets/{mdx-C9dqA6IZ.js.map → mdx-CsS30JUo.js.map} +1 -1
- package/build/client/assets/{misc-DIdEn_jt.js → misc-BtjCSy-T.js} +2 -2
- package/build/client/assets/{misc-DIdEn_jt.js.map → misc-BtjCSy-T.js.map} +1 -1
- package/build/client/assets/{nav-chevrons-B3SvZV8B.js → nav-chevrons-2hLTwAZb.js} +2 -2
- package/build/client/assets/{nav-chevrons-B3SvZV8B.js.map → nav-chevrons-2hLTwAZb.js.map} +1 -1
- package/build/client/assets/onboarding-Cu6eD7KS.js +2 -0
- package/build/client/assets/{onboarding-CC9zz4rl.js.map → onboarding-Cu6eD7KS.js.map} +1 -1
- package/build/client/assets/{pe-D5h19vSo.js → pe-DXT2FOp1.js} +2 -2
- package/build/client/assets/{pe-D5h19vSo.js.map → pe-DXT2FOp1.js.map} +1 -1
- package/build/client/assets/preferences-br0VSK51.js +2 -0
- package/build/client/assets/preferences-br0VSK51.js.map +1 -0
- package/build/client/assets/{presence-D1DPz__2.js → presence-CrYBA3ta.js} +3 -3
- package/build/client/assets/{presence-D1DPz__2.js.map → presence-CrYBA3ta.js.map} +1 -1
- package/build/client/assets/preview-C2y4Z0qO.js +2 -0
- package/build/client/assets/{preview-BEtmdi0E.js.map → preview-C2y4Z0qO.js.map} +1 -1
- package/build/client/assets/{product-CYOFfeJM.js → product-gqq_YQBW.js} +2 -2
- package/build/client/assets/{product-CYOFfeJM.js.map → product-gqq_YQBW.js.map} +1 -1
- package/build/client/assets/{progress-D6SP0Gec.js → progress-D-HsH4j3.js} +2 -2
- package/build/client/assets/{progress-D6SP0Gec.js.map → progress-D-HsH4j3.js.map} +1 -1
- package/build/client/assets/{progress-bar-CBDBzRQ2.js → progress-bar-CTPCfvDi.js} +2 -2
- package/build/client/assets/{progress-bar-CBDBzRQ2.js.map → progress-bar-CTPCfvDi.js.map} +1 -1
- package/build/client/assets/revalidation-ws-DYaJNyw1.js +2 -0
- package/build/client/assets/{revalidation-ws-DK5QOPlL.js.map → revalidation-ws-DYaJNyw1.js.map} +1 -1
- package/build/client/assets/{root-Bg-hxaOK.js → root-DGY0y7_0.js} +3 -3
- package/build/client/assets/{root-Bg-hxaOK.js.map → root-DGY0y7_0.js.map} +1 -1
- package/build/client/assets/{set-playground-CMoUFgkO.js → set-playground-DQzAhC0t.js} +2 -2
- package/build/client/assets/{set-playground-CMoUFgkO.js.map → set-playground-DQzAhC0t.js.map} +1 -1
- package/build/client/assets/{support-CPzYlWkd.js → support-lgEG2piy.js} +2 -2
- package/build/client/assets/{support-CPzYlWkd.js.map → support-lgEG2piy.js.map} +1 -1
- package/build/client/assets/tailwind-CRGTilRc.css +1 -0
- package/build/client/assets/test-CDWRwwO-.js +2 -0
- package/build/client/assets/{test-C8wkLh9a.js.map → test-CDWRwwO-.js.map} +1 -1
- package/build/client/assets/{tests-CiM4RPOf.js → tests-LWW8wCYZ.js} +3 -3
- package/build/client/assets/{tests-CiM4RPOf.js.map → tests-LWW8wCYZ.js.map} +1 -1
- package/build/client/assets/{tooltip-BoVikCa-.js → tooltip-Bp9KHnLy.js} +2 -2
- package/build/client/assets/{tooltip-BoVikCa-.js.map → tooltip-Bp9KHnLy.js.map} +1 -1
- package/build/client/assets/{use-event-source-M87p8Tme.js → use-event-source-AZJtQsFX.js} +2 -2
- package/build/client/assets/{use-event-source-M87p8Tme.js.map → use-event-source-AZJtQsFX.js.map} +1 -1
- package/build/client/assets/{user-CbbIYEs8.js → user-C0j04V55.js} +2 -2
- package/build/client/assets/{user-CbbIYEs8.js.map → user-C0j04V55.js.map} +1 -1
- package/build/client/assets/{version-CIF3cX3N.js → version-D61Qvt0X.js} +2 -2
- package/build/client/assets/{version-CIF3cX3N.js.map → version-D61Qvt0X.js.map} +1 -1
- package/build/client/assets/{workshop-config-C5sYl312.js → workshop-config-oL_FWDKq.js} +2 -2
- package/build/client/assets/{workshop-config-C5sYl312.js.map → workshop-config-oL_FWDKq.js.map} +1 -1
- package/build/server/index.js +516 -444
- package/build/server/index.js.map +1 -1
- package/package.json +3 -3
- package/build/client/assets/_exerciseNumber-PTdG9GGB.js +0 -2
- package/build/client/assets/_exerciseNumber_.finished-DQg4F1NL.js +0 -2
- package/build/client/assets/_layout-DHoH74NH.js +0 -2
- package/build/client/assets/account-DLDPrc9J.js +0 -2
- package/build/client/assets/account-DLDPrc9J.js.map +0 -1
- package/build/client/assets/app-DJDjmdlu.js +0 -2
- package/build/client/assets/diff-B3oaU_KB.js +0 -2
- package/build/client/assets/discord-CpIgvYus.js +0 -2
- package/build/client/assets/discord-CpIgvYus.js.map +0 -1
- package/build/client/assets/epic-video-D8ex9vao.js +0 -2
- package/build/client/assets/epic-video-D8ex9vao.js.map +0 -1
- package/build/client/assets/error-boundary-3zItlMUO.js +0 -2
- package/build/client/assets/finished-rUzUjnEm.js +0 -2
- package/build/client/assets/index-BajUQsFT.js +0 -3053
- package/build/client/assets/index-BajUQsFT.js.map +0 -1
- package/build/client/assets/index-DE-jwnOP.js +0 -2
- package/build/client/assets/index-DH1w3QmP.js +0 -36
- package/build/client/assets/index-DH1w3QmP.js.map +0 -1
- package/build/client/assets/index-mivnjq36.js +0 -2
- package/build/client/assets/login-CdNej0Z7.js +0 -2
- package/build/client/assets/manifest-62ea49c4.js +0 -1
- package/build/client/assets/mdx-C9dqA6IZ.js +0 -2
- package/build/client/assets/onboarding-CC9zz4rl.js +0 -2
- package/build/client/assets/preview-BEtmdi0E.js +0 -2
- package/build/client/assets/request-info-vBkaf3Rk.js +0 -2
- package/build/client/assets/request-info-vBkaf3Rk.js.map +0 -1
- package/build/client/assets/revalidation-ws-DK5QOPlL.js +0 -2
- package/build/client/assets/tailwind-B5AAMtGC.css +0 -1
- package/build/client/assets/test-C8wkLh9a.js +0 -2
- /package/build/client/assets/{index-DUnRvy1A.css → epic-video-DUnRvy1A.css} +0 -0
package/build/server/index.js
CHANGED
|
@@ -7,7 +7,7 @@ import { renderToPipeableStream, renderToStaticMarkup } from "react-dom/server";
|
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { makeSingletonCache, cachified, deleteCache, compiledCodeCache, diffFilesCache, diffCodeCache, shouldForceFresh, fsCache, getAllFileCacheEntries, ogCache } from "@epic-web/workshop-utils/cache.server";
|
|
9
9
|
import { getWorkshopConfig } from "@epic-web/workshop-utils/config.server";
|
|
10
|
-
import { getAuthInfo, getPreferences, readOnboardingData, requireAuthInfo,
|
|
10
|
+
import { getAuthInfo, getPreferences, readOnboardingData, requireAuthInfo, deleteDb, setPreferences, PlayerPreferencesSchema, setAuthInfo, markOnboardingVideoWatched } from "@epic-web/workshop-utils/db.server";
|
|
11
11
|
import { getUserInfo, userHasAccessToWorkshop, getProgress, updateProgress, getEpicVideoInfos } from "@epic-web/workshop-utils/epic-api.server";
|
|
12
12
|
import { getUserId, getSetClientIdCookieHeader } from "@epic-web/workshop-utils/user.server";
|
|
13
13
|
import { z } from "zod";
|
|
@@ -41,7 +41,6 @@ import { motion, useAnimationControls } from "framer-motion";
|
|
|
41
41
|
import { useHydrated } from "remix-utils/use-hydrated";
|
|
42
42
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
43
43
|
import { invariantResponse, invariant } from "@epic-web/invariant";
|
|
44
|
-
import RealMuxPlayer, { MinResolution, MaxResolution } from "@mux/mux-player-react";
|
|
45
44
|
import path$1 from "path";
|
|
46
45
|
import etag from "etag";
|
|
47
46
|
import fsExtra from "fs-extra";
|
|
@@ -50,6 +49,7 @@ import fs from "fs";
|
|
|
50
49
|
import { getDirModifiedTime, modifiedMoreRecentlyThan } from "@epic-web/workshop-utils/modified-time.server";
|
|
51
50
|
import * as esbuild from "esbuild";
|
|
52
51
|
import { ElementScrollRestoration } from "@epic-web/restore-scroll";
|
|
52
|
+
import RealMuxPlayer, { MinResolution, MaxResolution } from "@mux/mux-player-react";
|
|
53
53
|
import child_process from "child_process";
|
|
54
54
|
import os from "os";
|
|
55
55
|
import shellQuote from "shell-quote";
|
|
@@ -437,6 +437,12 @@ const extendedTheme = {
|
|
|
437
437
|
h5: ["1.5rem", { lineHeight: "2rem", fontWeight: "700" }],
|
|
438
438
|
/** 16px size / 20px high / bold */
|
|
439
439
|
h6: ["1rem", { lineHeight: "1.25rem", fontWeight: "700" }],
|
|
440
|
+
/** 48px size / 52px high / normal */
|
|
441
|
+
"body-5xl": ["3rem", { lineHeight: "3.25rem" }],
|
|
442
|
+
/** 40px size / 44px high / normal */
|
|
443
|
+
"body-4xl": ["2.5rem", { lineHeight: "2.75rem" }],
|
|
444
|
+
/** 36px size / 40px high / normal */
|
|
445
|
+
"body-3xl": ["2.25rem", { lineHeight: "2.5rem" }],
|
|
440
446
|
/** 32px size / 36px high / normal */
|
|
441
447
|
"body-2xl": ["2rem", { lineHeight: "2.25rem" }],
|
|
442
448
|
/** 28px size / 36px high / normal */
|
|
@@ -845,7 +851,7 @@ const ROUTE_PATH = "/theme";
|
|
|
845
851
|
const ThemeFormSchema = z.object({
|
|
846
852
|
theme: z.enum(["system", "light", "dark"])
|
|
847
853
|
});
|
|
848
|
-
async function action$
|
|
854
|
+
async function action$c({ request }) {
|
|
849
855
|
const formData = await request.formData();
|
|
850
856
|
const submission = parseWithZod(formData, {
|
|
851
857
|
schema: ThemeFormSchema
|
|
@@ -915,14 +921,14 @@ function useTheme() {
|
|
|
915
921
|
}
|
|
916
922
|
return requestInfo.session.theme ?? hints.theme;
|
|
917
923
|
}
|
|
918
|
-
const
|
|
924
|
+
const route45 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
919
925
|
__proto__: null,
|
|
920
926
|
ThemeSwitch,
|
|
921
|
-
action: action$
|
|
927
|
+
action: action$c,
|
|
922
928
|
useTheme
|
|
923
929
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
924
930
|
const appStylesheetUrl = "/assets/app-b7uXHF5m.css";
|
|
925
|
-
const tailwindStylesheetUrl = "/assets/tailwind-
|
|
931
|
+
const tailwindStylesheetUrl = "/assets/tailwind-CRGTilRc.css";
|
|
926
932
|
const cookieName = "EpicShop_confetti";
|
|
927
933
|
function getConfetti(request) {
|
|
928
934
|
const cookieHeader = request.headers.get("cookie");
|
|
@@ -1189,7 +1195,7 @@ const meta$6 = ({ data: data2 }) => {
|
|
|
1189
1195
|
requestInfo: data2.requestInfo
|
|
1190
1196
|
});
|
|
1191
1197
|
};
|
|
1192
|
-
async function loader$
|
|
1198
|
+
async function loader$y({ request }) {
|
|
1193
1199
|
var _a;
|
|
1194
1200
|
const timings = makeTimings("rootLoader");
|
|
1195
1201
|
const workshopConfig = getWorkshopConfig();
|
|
@@ -1267,9 +1273,10 @@ async function loader$x({ request }) {
|
|
|
1267
1273
|
function Document({
|
|
1268
1274
|
children,
|
|
1269
1275
|
env = {},
|
|
1270
|
-
className
|
|
1276
|
+
className,
|
|
1277
|
+
style
|
|
1271
1278
|
}) {
|
|
1272
|
-
return /* @__PURE__ */ jsxs("html", { lang: "en", className, children: [
|
|
1279
|
+
return /* @__PURE__ */ jsxs("html", { lang: "en", className, style, children: [
|
|
1273
1280
|
/* @__PURE__ */ jsxs("head", { children: [
|
|
1274
1281
|
/* @__PURE__ */ jsx(ClientHintCheck, {}),
|
|
1275
1282
|
/* @__PURE__ */ jsx(Meta, {}),
|
|
@@ -1293,6 +1300,7 @@ function Document({
|
|
|
1293
1300
|
] });
|
|
1294
1301
|
}
|
|
1295
1302
|
function App$1() {
|
|
1303
|
+
var _a, _b;
|
|
1296
1304
|
const data2 = useLoaderData();
|
|
1297
1305
|
const navigation = useNavigation();
|
|
1298
1306
|
const showSpinner = useSpinDelay(navigation.state !== "idle", {
|
|
@@ -1304,6 +1312,7 @@ function App$1() {
|
|
|
1304
1312
|
return /* @__PURE__ */ jsxs(
|
|
1305
1313
|
Document,
|
|
1306
1314
|
{
|
|
1315
|
+
style: ((_a = data2.preferences) == null ? void 0 : _a.fontSize) ? { fontSize: `${(_b = data2.preferences) == null ? void 0 : _b.fontSize}px` } : {},
|
|
1307
1316
|
className: cn(
|
|
1308
1317
|
"antialiased h-screen-safe",
|
|
1309
1318
|
theme,
|
|
@@ -1332,10 +1341,10 @@ const route0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
|
|
|
1332
1341
|
ErrorBoundary: ErrorBoundary$6,
|
|
1333
1342
|
default: AppWithProviders,
|
|
1334
1343
|
links,
|
|
1335
|
-
loader: loader$
|
|
1344
|
+
loader: loader$y,
|
|
1336
1345
|
meta: meta$6
|
|
1337
1346
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
1338
|
-
async function loader$
|
|
1347
|
+
async function loader$x({ params }) {
|
|
1339
1348
|
const splat = params["*"];
|
|
1340
1349
|
const segments = (splat == null ? void 0 : splat.split("/")) ?? [];
|
|
1341
1350
|
if (segments.length > 0 && !isNaN(Number(segments[0]))) {
|
|
@@ -1373,7 +1382,7 @@ const route1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
|
|
|
1373
1382
|
__proto__: null,
|
|
1374
1383
|
ErrorBoundary: ErrorBoundary$5,
|
|
1375
1384
|
default: NotFound,
|
|
1376
|
-
loader: loader$
|
|
1385
|
+
loader: loader$x
|
|
1377
1386
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
1378
1387
|
function makeMediaQueryStore(mediaQuery, serverSnapshot) {
|
|
1379
1388
|
function getSnapshot() {
|
|
@@ -1744,7 +1753,7 @@ function useProgressItem({
|
|
|
1744
1753
|
}
|
|
1745
1754
|
return null;
|
|
1746
1755
|
}
|
|
1747
|
-
async function action$
|
|
1756
|
+
async function action$b({ request }) {
|
|
1748
1757
|
ensureUndeployed();
|
|
1749
1758
|
await requireAuthInfo({ request });
|
|
1750
1759
|
const formData = await request.formData();
|
|
@@ -1912,10 +1921,10 @@ function ProgressToggle({
|
|
|
1912
1921
|
)
|
|
1913
1922
|
] });
|
|
1914
1923
|
}
|
|
1915
|
-
const
|
|
1924
|
+
const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1916
1925
|
__proto__: null,
|
|
1917
1926
|
ProgressToggle,
|
|
1918
|
-
action: action$
|
|
1927
|
+
action: action$b,
|
|
1919
1928
|
useEpicProgress,
|
|
1920
1929
|
useExerciseProgressClassName,
|
|
1921
1930
|
useNextExerciseRoute,
|
|
@@ -1923,7 +1932,7 @@ const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
1923
1932
|
useProgressItemClassName,
|
|
1924
1933
|
useRequireEpicProgress
|
|
1925
1934
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
1926
|
-
async function loader$
|
|
1935
|
+
async function loader$w({ request }) {
|
|
1927
1936
|
var _a, _b;
|
|
1928
1937
|
const timings = makeTimings("appLayoutLoader");
|
|
1929
1938
|
const { title: workshopTitle } = getWorkshopConfig();
|
|
@@ -3021,7 +3030,7 @@ const route2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
|
|
|
3021
3030
|
__proto__: null,
|
|
3022
3031
|
default: App,
|
|
3023
3032
|
headers: headers$b,
|
|
3024
|
-
loader: loader$
|
|
3033
|
+
loader: loader$w
|
|
3025
3034
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3026
3035
|
function PendingState() {
|
|
3027
3036
|
return /* @__PURE__ */ jsx("span", { className: "inline-block animate-spin", children: "🌀" });
|
|
@@ -3087,237 +3096,15 @@ function ButtonLink({
|
|
|
3087
3096
|
}
|
|
3088
3097
|
) });
|
|
3089
3098
|
}
|
|
3090
|
-
const PlaybackTimeSchema = z.object({
|
|
3091
|
-
time: z.number(),
|
|
3092
|
-
expiresAt: z.string()
|
|
3093
|
-
}).transform((data2) => {
|
|
3094
|
-
return { time: Number(data2.time), expiresAt: new Date(data2.expiresAt) };
|
|
3095
|
-
});
|
|
3096
|
-
function usePlayerPreferences() {
|
|
3097
|
-
var _a;
|
|
3098
|
-
const data2 = useRouteLoaderData("root");
|
|
3099
|
-
return ((_a = data2 == null ? void 0 : data2.preferences) == null ? void 0 : _a.player) ?? null;
|
|
3100
|
-
}
|
|
3101
|
-
const ignoredInputs = [
|
|
3102
|
-
"INPUT",
|
|
3103
|
-
"SELECT",
|
|
3104
|
-
"BUTTON",
|
|
3105
|
-
"TEXTAREA",
|
|
3106
|
-
"MUX-PLAYER",
|
|
3107
|
-
"SUMMARY"
|
|
3108
|
-
];
|
|
3109
|
-
const ignoredRoles = ["button", "option", "combobox", "tab", "tablist"];
|
|
3110
|
-
function shouldIgnoreHotkey(el) {
|
|
3111
|
-
let current = el;
|
|
3112
|
-
while (current) {
|
|
3113
|
-
if (!(current instanceof HTMLElement)) return false;
|
|
3114
|
-
const isIgnored = ignoredInputs.includes(current.tagName) || ignoredRoles.includes(current.getAttribute("role") || "") || current.isContentEditable;
|
|
3115
|
-
if (isIgnored) return true;
|
|
3116
|
-
current = current.parentElement;
|
|
3117
|
-
}
|
|
3118
|
-
return false;
|
|
3119
|
-
}
|
|
3120
|
-
async function action$9({ request }) {
|
|
3121
|
-
const result = PlayerPreferencesSchema.safeParse(await request.json());
|
|
3122
|
-
if (!result.success) {
|
|
3123
|
-
return unstable_data$1({ status: "error", error: result.error.flatten() }, {
|
|
3124
|
-
status: 400
|
|
3125
|
-
});
|
|
3126
|
-
}
|
|
3127
|
-
await setPlayerPreferences(result.data);
|
|
3128
|
-
return { status: "success" };
|
|
3129
|
-
}
|
|
3130
|
-
function useLatest(value) {
|
|
3131
|
-
const ref = React.useRef(value);
|
|
3132
|
-
React.useEffect(() => {
|
|
3133
|
-
ref.current = value;
|
|
3134
|
-
}, [value]);
|
|
3135
|
-
return ref;
|
|
3136
|
-
}
|
|
3137
|
-
function MuxPlayer({
|
|
3138
|
-
muxPlayerRef,
|
|
3139
|
-
...props
|
|
3140
|
-
}) {
|
|
3141
|
-
const playerPreferences = usePlayerPreferences();
|
|
3142
|
-
const playerPreferencesFetcher = useFetcher();
|
|
3143
|
-
const [metadataLoaded, setMetadataLoaded] = React.useState(false);
|
|
3144
|
-
const currentTimeSessionKey = `${props.playbackId}:currentTime`;
|
|
3145
|
-
const [currentTime, setCurrentTime] = React.useState(0);
|
|
3146
|
-
const fetcherRef = useLatest(playerPreferencesFetcher);
|
|
3147
|
-
const playerPreferencesRef = useLatest(playerPreferences);
|
|
3148
|
-
React.useEffect(() => {
|
|
3149
|
-
if (typeof document === "undefined") return;
|
|
3150
|
-
const stored = sessionStorage.getItem(currentTimeSessionKey);
|
|
3151
|
-
if (!stored) return;
|
|
3152
|
-
try {
|
|
3153
|
-
const { time: time2, expiresAt } = PlaybackTimeSchema.parse(JSON.parse(stored));
|
|
3154
|
-
if (expiresAt.getTime() < Date.now()) throw new Error("Time expired");
|
|
3155
|
-
setCurrentTime(time2);
|
|
3156
|
-
} catch {
|
|
3157
|
-
sessionStorage.removeItem(currentTimeSessionKey);
|
|
3158
|
-
}
|
|
3159
|
-
}, [currentTimeSessionKey]);
|
|
3160
|
-
React.useEffect(() => {
|
|
3161
|
-
function handleUserKeyPress(e) {
|
|
3162
|
-
if (!muxPlayerRef.current) return;
|
|
3163
|
-
const activeElement = document.activeElement;
|
|
3164
|
-
if (shouldIgnoreHotkey(activeElement)) return;
|
|
3165
|
-
if (shouldIgnoreHotkey(e.target)) return;
|
|
3166
|
-
if (e.key === " ") {
|
|
3167
|
-
e.preventDefault();
|
|
3168
|
-
void (muxPlayerRef.current.paused ? muxPlayerRef.current.play() : muxPlayerRef.current.pause());
|
|
3169
|
-
}
|
|
3170
|
-
if (e.key === "ArrowRight") {
|
|
3171
|
-
e.preventDefault();
|
|
3172
|
-
muxPlayerRef.current.currentTime = muxPlayerRef.current.currentTime + (muxPlayerRef.current.forwardSeekOffset || 10);
|
|
3173
|
-
}
|
|
3174
|
-
if (e.key === "ArrowLeft") {
|
|
3175
|
-
e.preventDefault();
|
|
3176
|
-
muxPlayerRef.current.currentTime = muxPlayerRef.current.currentTime - (muxPlayerRef.current.forwardSeekOffset || 10);
|
|
3177
|
-
}
|
|
3178
|
-
if (e.key === "f" && !e.metaKey && !e.ctrlKey) {
|
|
3179
|
-
e.preventDefault();
|
|
3180
|
-
void (document.fullscreenElement ? document.exitFullscreen() : muxPlayerRef.current.requestFullscreen());
|
|
3181
|
-
}
|
|
3182
|
-
}
|
|
3183
|
-
window.document.addEventListener("keydown", handleUserKeyPress);
|
|
3184
|
-
return () => {
|
|
3185
|
-
window.document.removeEventListener("keydown", handleUserKeyPress);
|
|
3186
|
-
};
|
|
3187
|
-
}, [muxPlayerRef]);
|
|
3188
|
-
const updatePreferences = useDebounce(() => {
|
|
3189
|
-
const player = muxPlayerRef.current;
|
|
3190
|
-
if (!player) return;
|
|
3191
|
-
const subs = Array.from(player.textTracks ?? []).find(
|
|
3192
|
-
(t) => t.kind === "subtitles"
|
|
3193
|
-
);
|
|
3194
|
-
const newPrefs = {
|
|
3195
|
-
playbackRate: player.playbackRate,
|
|
3196
|
-
volumeRate: player.volume,
|
|
3197
|
-
subtitle: subs ? { id: subs.id, mode: subs.mode } : { id: null, mode: "disabled" }
|
|
3198
|
-
};
|
|
3199
|
-
if (isDeepEqual(newPrefs, playerPreferencesRef.current)) return;
|
|
3200
|
-
fetcherRef.current.submit(newPrefs, {
|
|
3201
|
-
method: "POST",
|
|
3202
|
-
action: "/video-player",
|
|
3203
|
-
encType: "application/json"
|
|
3204
|
-
});
|
|
3205
|
-
}, 300);
|
|
3206
|
-
React.useEffect(() => {
|
|
3207
|
-
var _a, _b;
|
|
3208
|
-
if (!metadataLoaded) return;
|
|
3209
|
-
const textTracks = (_a = muxPlayerRef.current) == null ? void 0 : _a.textTracks;
|
|
3210
|
-
if (!textTracks) return;
|
|
3211
|
-
const subtitlePref = (_b = playerPreferencesRef.current) == null ? void 0 : _b.subtitle;
|
|
3212
|
-
if (subtitlePref == null ? void 0 : subtitlePref.id) {
|
|
3213
|
-
const preferredTextTrack = textTracks.getTrackById(subtitlePref.id);
|
|
3214
|
-
if (preferredTextTrack) {
|
|
3215
|
-
preferredTextTrack.mode = subtitlePref.mode ?? "hidden";
|
|
3216
|
-
}
|
|
3217
|
-
}
|
|
3218
|
-
textTracks.addEventListener("change", updatePreferences);
|
|
3219
|
-
return () => {
|
|
3220
|
-
textTracks.removeEventListener("change", updatePreferences);
|
|
3221
|
-
};
|
|
3222
|
-
}, [metadataLoaded, muxPlayerRef, playerPreferencesRef, updatePreferences]);
|
|
3223
|
-
return /* @__PURE__ */ jsx("div", { className: "flex aspect-video flex-col", children: /* @__PURE__ */ jsx(
|
|
3224
|
-
RealMuxPlayer,
|
|
3225
|
-
{
|
|
3226
|
-
ref: muxPlayerRef,
|
|
3227
|
-
playbackRates: [
|
|
3228
|
-
0.5,
|
|
3229
|
-
0.75,
|
|
3230
|
-
1,
|
|
3231
|
-
1.25,
|
|
3232
|
-
1.5,
|
|
3233
|
-
1.75,
|
|
3234
|
-
2,
|
|
3235
|
-
2.5,
|
|
3236
|
-
3,
|
|
3237
|
-
3.5,
|
|
3238
|
-
// lol, someone really asked for this and I think it's funny so let's do it
|
|
3239
|
-
// https://twitter.com/zackerydev/status/1710840197879918840
|
|
3240
|
-
4
|
|
3241
|
-
],
|
|
3242
|
-
volume: (playerPreferences == null ? void 0 : playerPreferences.volumeRate) ?? 1,
|
|
3243
|
-
playbackRate: (playerPreferences == null ? void 0 : playerPreferences.playbackRate) ?? 1,
|
|
3244
|
-
thumbnailTime: currentTime,
|
|
3245
|
-
onRateChange: updatePreferences,
|
|
3246
|
-
onVolumeChange: updatePreferences,
|
|
3247
|
-
streamType: "on-demand",
|
|
3248
|
-
defaultHiddenCaptions: true,
|
|
3249
|
-
currentTime,
|
|
3250
|
-
onTimeUpdate: () => {
|
|
3251
|
-
var _a;
|
|
3252
|
-
return sessionStorage.setItem(
|
|
3253
|
-
currentTimeSessionKey,
|
|
3254
|
-
JSON.stringify({
|
|
3255
|
-
time: (_a = muxPlayerRef.current) == null ? void 0 : _a.currentTime,
|
|
3256
|
-
expiresAt: new Date(Date.now() + 1e3 * 60 * 30).toISOString()
|
|
3257
|
-
})
|
|
3258
|
-
);
|
|
3259
|
-
},
|
|
3260
|
-
accentColor: "#427cf0",
|
|
3261
|
-
targetLiveWindow: NaN,
|
|
3262
|
-
onLoadedMetadata: () => setMetadataLoaded(true),
|
|
3263
|
-
minResolution: getMinResolutionValue(playerPreferences == null ? void 0 : playerPreferences.minResolution),
|
|
3264
|
-
maxResolution: getMaxResolutionValue(playerPreferences == null ? void 0 : playerPreferences.maxResolution),
|
|
3265
|
-
...props
|
|
3266
|
-
}
|
|
3267
|
-
) });
|
|
3268
|
-
}
|
|
3269
|
-
function isDeepEqual(obj1, obj2) {
|
|
3270
|
-
if (obj1 === obj2) return true;
|
|
3271
|
-
if (typeof obj1 !== typeof obj2) return false;
|
|
3272
|
-
if (typeof obj1 !== "object" || typeof obj2 !== "object") return false;
|
|
3273
|
-
if (obj1 === null || obj2 === null) return false;
|
|
3274
|
-
if (Array.isArray(obj1) !== Array.isArray(obj2)) return false;
|
|
3275
|
-
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
|
3276
|
-
if (obj1.length !== obj2.length) return false;
|
|
3277
|
-
for (let i = 0; i < obj1.length; i++) {
|
|
3278
|
-
if (!isDeepEqual(obj1[i], obj2[i])) return false;
|
|
3279
|
-
}
|
|
3280
|
-
return true;
|
|
3281
|
-
}
|
|
3282
|
-
const keys1 = Object.keys(obj1);
|
|
3283
|
-
const keys2 = Object.keys(obj2);
|
|
3284
|
-
if (keys1.length !== keys2.length) return false;
|
|
3285
|
-
for (const key of keys1) {
|
|
3286
|
-
if (!isDeepEqual(obj1[key], obj2[key])) return false;
|
|
3287
|
-
}
|
|
3288
|
-
return true;
|
|
3289
|
-
}
|
|
3290
|
-
function getMinResolutionValue(resolution) {
|
|
3291
|
-
if (!resolution) return void 0;
|
|
3292
|
-
if (resolution <= 480) return MinResolution.noLessThan480p;
|
|
3293
|
-
if (resolution <= 540) return MinResolution.noLessThan540p;
|
|
3294
|
-
if (resolution <= 720) return MinResolution.noLessThan720p;
|
|
3295
|
-
if (resolution <= 1080) return MinResolution.noLessThan1080p;
|
|
3296
|
-
if (resolution <= 1440) return MinResolution.noLessThan1440p;
|
|
3297
|
-
return MinResolution.noLessThan2160p;
|
|
3298
|
-
}
|
|
3299
|
-
function getMaxResolutionValue(resolution) {
|
|
3300
|
-
if (!resolution) return void 0;
|
|
3301
|
-
if (resolution <= 720) return MaxResolution.upTo720p;
|
|
3302
|
-
if (resolution <= 1080) return MaxResolution.upTo1080p;
|
|
3303
|
-
if (resolution <= 1440) return MaxResolution.upTo1440p;
|
|
3304
|
-
return MaxResolution.upTo2160p;
|
|
3305
|
-
}
|
|
3306
|
-
const route45 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3307
|
-
__proto__: null,
|
|
3308
|
-
MuxPlayer,
|
|
3309
|
-
action: action$9,
|
|
3310
|
-
usePlayerPreferences
|
|
3311
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
3312
3099
|
const handle$9 = {
|
|
3313
3100
|
getSitemapEntries: () => null
|
|
3314
3101
|
};
|
|
3315
|
-
async function loader$
|
|
3102
|
+
async function loader$v({ request }) {
|
|
3316
3103
|
ensureUndeployed();
|
|
3317
3104
|
await requireAuthInfo({ request });
|
|
3318
3105
|
return {};
|
|
3319
3106
|
}
|
|
3320
|
-
async function action$
|
|
3107
|
+
async function action$a({ request }) {
|
|
3321
3108
|
ensureUndeployed();
|
|
3322
3109
|
const formData = await request.formData();
|
|
3323
3110
|
const intent = formData.get("intent");
|
|
@@ -3331,24 +3118,12 @@ async function action$8({ request }) {
|
|
|
3331
3118
|
});
|
|
3332
3119
|
} else if (intent === "presence-opt-out") {
|
|
3333
3120
|
const optOut = formData.get("optOut") === "true";
|
|
3334
|
-
await
|
|
3121
|
+
await setPreferences({ presence: { optOut } });
|
|
3335
3122
|
return redirectWithToast("/account", {
|
|
3336
3123
|
title: optOut ? "Opted out" : "Opted in",
|
|
3337
3124
|
description: `You are now ${optOut ? "invisible" : "visible"}.`,
|
|
3338
3125
|
type: "success"
|
|
3339
3126
|
});
|
|
3340
|
-
} else if (intent === "update-player-preferences") {
|
|
3341
|
-
const minResolution = formData.get("minResolution");
|
|
3342
|
-
const maxResolution = formData.get("maxResolution");
|
|
3343
|
-
await setPlayerPreferences({
|
|
3344
|
-
minResolution: minResolution ? Number(minResolution) : void 0,
|
|
3345
|
-
maxResolution: maxResolution ? Number(maxResolution) : void 0
|
|
3346
|
-
});
|
|
3347
|
-
return redirectWithToast("/account", {
|
|
3348
|
-
title: "Preferences updated",
|
|
3349
|
-
description: "Your video player preferences have been updated.",
|
|
3350
|
-
type: "success"
|
|
3351
|
-
});
|
|
3352
3127
|
}
|
|
3353
3128
|
return redirect$1("/account");
|
|
3354
3129
|
}
|
|
@@ -3360,12 +3135,9 @@ function useConnectDiscordURL$1() {
|
|
|
3360
3135
|
}
|
|
3361
3136
|
function Account() {
|
|
3362
3137
|
const user = useUser();
|
|
3138
|
+
const config = useWorkshopConfig();
|
|
3363
3139
|
const discordMember = useOptionalDiscordMember();
|
|
3364
|
-
const presencePreferences = usePresencePreferences();
|
|
3365
|
-
const playerPreferences = usePlayerPreferences();
|
|
3366
3140
|
const connectDiscordURL = useConnectDiscordURL$1();
|
|
3367
|
-
const navigation = useNavigation();
|
|
3368
|
-
const isSubmitting = navigation.state === "submitting";
|
|
3369
3141
|
return /* @__PURE__ */ jsxs("main", { className: "container flex h-full w-full max-w-3xl flex-grow flex-col items-center justify-center gap-4", children: [
|
|
3370
3142
|
user.imageUrlLarge ? /* @__PURE__ */ jsx(
|
|
3371
3143
|
"img",
|
|
@@ -3405,23 +3177,6 @@ function Account() {
|
|
|
3405
3177
|
),
|
|
3406
3178
|
/* @__PURE__ */ jsx(SimpleTooltip, { content: "This will give you access to the exclusive Discord channels for Epic Web", children: /* @__PURE__ */ jsx(Icon, { name: "Question", tabIndex: 0 }) })
|
|
3407
3179
|
] }),
|
|
3408
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3409
|
-
/* @__PURE__ */ jsxs(Form, { method: "POST", children: [
|
|
3410
|
-
/* @__PURE__ */ jsx(
|
|
3411
|
-
"input",
|
|
3412
|
-
{
|
|
3413
|
-
name: "optOut",
|
|
3414
|
-
type: "hidden",
|
|
3415
|
-
value: (presencePreferences == null ? void 0 : presencePreferences.optOut) ? "false" : "true"
|
|
3416
|
-
}
|
|
3417
|
-
),
|
|
3418
|
-
/* @__PURE__ */ jsxs(Button, { varient: "mono", name: "intent", value: "presence-opt-out", children: [
|
|
3419
|
-
(presencePreferences == null ? void 0 : presencePreferences.optOut) ? "Opt in to" : "Opt out of",
|
|
3420
|
-
" presence"
|
|
3421
|
-
] })
|
|
3422
|
-
] }),
|
|
3423
|
-
/* @__PURE__ */ jsx(SimpleTooltip, { content: "This controls whether your name and avatar are displayed in the pile of faces in navigation", children: /* @__PURE__ */ jsx(Icon, { name: "Question", tabIndex: 0 }) })
|
|
3424
|
-
] }),
|
|
3425
3180
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3426
3181
|
/* @__PURE__ */ jsx(Form, { method: "post", children: /* @__PURE__ */ jsx(Button, { varient: "mono", name: "intent", value: "logout", children: "Log device out" }) }),
|
|
3427
3182
|
/* @__PURE__ */ jsx(
|
|
@@ -3439,82 +3194,30 @@ function Account() {
|
|
|
3439
3194
|
)
|
|
3440
3195
|
] }),
|
|
3441
3196
|
/* @__PURE__ */ jsx("hr", { className: "w-full" }),
|
|
3442
|
-
/* @__PURE__ */ jsxs("
|
|
3443
|
-
/* @__PURE__ */ jsx("
|
|
3444
|
-
|
|
3445
|
-
|
|
3446
|
-
|
|
3447
|
-
|
|
3448
|
-
|
|
3449
|
-
{
|
|
3450
|
-
|
|
3451
|
-
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
/* @__PURE__ */ jsx("option", { value: "1080", children: "1080p" }),
|
|
3458
|
-
/* @__PURE__ */ jsx("option", { value: "1440", children: "1440p" }),
|
|
3459
|
-
/* @__PURE__ */ jsx("option", { value: "2160", children: "2160p (4K)" })
|
|
3460
|
-
]
|
|
3461
|
-
}
|
|
3462
|
-
)
|
|
3463
|
-
] }),
|
|
3464
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
3465
|
-
/* @__PURE__ */ jsx("label", { htmlFor: "maxResolution", children: "Maximum Resolution:" }),
|
|
3466
|
-
/* @__PURE__ */ jsxs(
|
|
3467
|
-
"select",
|
|
3468
|
-
{
|
|
3469
|
-
id: "maxResolution",
|
|
3470
|
-
name: "maxResolution",
|
|
3471
|
-
defaultValue: playerPreferences == null ? void 0 : playerPreferences.maxResolution,
|
|
3472
|
-
children: [
|
|
3473
|
-
/* @__PURE__ */ jsx("option", { value: "", children: "Auto" }),
|
|
3474
|
-
/* @__PURE__ */ jsx("option", { value: "720", children: "720p" }),
|
|
3475
|
-
/* @__PURE__ */ jsx("option", { value: "1080", children: "1080p" }),
|
|
3476
|
-
/* @__PURE__ */ jsx("option", { value: "1440", children: "1440p" }),
|
|
3477
|
-
/* @__PURE__ */ jsx("option", { value: "2160", children: "2160p (4K)" })
|
|
3478
|
-
]
|
|
3479
|
-
}
|
|
3480
|
-
)
|
|
3481
|
-
] }),
|
|
3482
|
-
/* @__PURE__ */ jsx(
|
|
3483
|
-
Button,
|
|
3484
|
-
{
|
|
3485
|
-
varient: "mono",
|
|
3486
|
-
type: "submit",
|
|
3487
|
-
name: "intent",
|
|
3488
|
-
value: "update-player-preferences",
|
|
3489
|
-
disabled: isSubmitting,
|
|
3490
|
-
children: isSubmitting ? "Updating..." : "Update Player Preferences"
|
|
3491
|
-
}
|
|
3492
|
-
)
|
|
3493
|
-
] })
|
|
3494
|
-
] }),
|
|
3495
|
-
/* @__PURE__ */ jsx("hr", { className: "w-full" }),
|
|
3496
|
-
/* @__PURE__ */ jsxs("p", { children: [
|
|
3497
|
-
"Check",
|
|
3498
|
-
" ",
|
|
3499
|
-
/* @__PURE__ */ jsx(Link, { to: "/onboarding", className: "underline", children: "/onboarding" }),
|
|
3500
|
-
" ",
|
|
3501
|
-
"if you'd like to review onboarding again."
|
|
3502
|
-
] }),
|
|
3503
|
-
/* @__PURE__ */ jsxs("p", { children: [
|
|
3504
|
-
"Check",
|
|
3505
|
-
" ",
|
|
3506
|
-
/* @__PURE__ */ jsx(Link, { to: "/support", className: "underline", children: "/support" }),
|
|
3507
|
-
" ",
|
|
3508
|
-
"if you need support."
|
|
3197
|
+
/* @__PURE__ */ jsxs("ul", { className: "flex list-inside list-disc flex-col gap-2 self-start", children: [
|
|
3198
|
+
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
3199
|
+
Link,
|
|
3200
|
+
{
|
|
3201
|
+
to: `https://${config.product.host}/profile`,
|
|
3202
|
+
className: "inline-flex gap-1 underline",
|
|
3203
|
+
children: [
|
|
3204
|
+
/* @__PURE__ */ jsx("span", { children: "Manage your account" }),
|
|
3205
|
+
/* @__PURE__ */ jsx(Icon, { name: "ExternalLink" })
|
|
3206
|
+
]
|
|
3207
|
+
}
|
|
3208
|
+
) }),
|
|
3209
|
+
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { to: "/preferences", className: "underline", children: "Manage your preferences" }) }),
|
|
3210
|
+
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { to: "/onboarding", className: "underline", children: "Review onboarding" }) }),
|
|
3211
|
+
/* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Link, { to: "/support", className: "underline", children: "Get support" }) })
|
|
3509
3212
|
] })
|
|
3510
3213
|
] });
|
|
3511
3214
|
}
|
|
3512
3215
|
const route3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3513
3216
|
__proto__: null,
|
|
3514
|
-
action: action$
|
|
3217
|
+
action: action$a,
|
|
3515
3218
|
default: Account,
|
|
3516
3219
|
handle: handle$9,
|
|
3517
|
-
loader: loader$
|
|
3220
|
+
loader: loader$v
|
|
3518
3221
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3519
3222
|
async function getForceFresh(filePath, cacheEntry) {
|
|
3520
3223
|
if (!cacheEntry) return true;
|
|
@@ -3604,7 +3307,7 @@ async function firstExisting(...files) {
|
|
|
3604
3307
|
}
|
|
3605
3308
|
return null;
|
|
3606
3309
|
}
|
|
3607
|
-
async function loader$
|
|
3310
|
+
async function loader$u({ request, params }) {
|
|
3608
3311
|
const timings = makeTimings("app-file");
|
|
3609
3312
|
const { fileApp, app } = await resolveApps({ request, params, timings });
|
|
3610
3313
|
if (!fileApp || !app) {
|
|
@@ -3662,9 +3365,9 @@ async function loader$t({ request, params }) {
|
|
|
3662
3365
|
}
|
|
3663
3366
|
const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3664
3367
|
__proto__: null,
|
|
3665
|
-
loader: loader$
|
|
3368
|
+
loader: loader$u
|
|
3666
3369
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3667
|
-
async function loader$
|
|
3370
|
+
async function loader$t(args) {
|
|
3668
3371
|
const api = await getApiModule(args);
|
|
3669
3372
|
invariantResponse(
|
|
3670
3373
|
api.mod.loader,
|
|
@@ -3678,7 +3381,7 @@ async function loader$s(args) {
|
|
|
3678
3381
|
api.cleanupError(error);
|
|
3679
3382
|
}
|
|
3680
3383
|
}
|
|
3681
|
-
async function action$
|
|
3384
|
+
async function action$9(args) {
|
|
3682
3385
|
const api = await getApiModule(args);
|
|
3683
3386
|
invariantResponse(
|
|
3684
3387
|
api.mod.action,
|
|
@@ -3766,10 +3469,10 @@ async function getApiModule({ request, params }) {
|
|
|
3766
3469
|
}
|
|
3767
3470
|
const route5 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3768
3471
|
__proto__: null,
|
|
3769
|
-
action: action$
|
|
3770
|
-
loader: loader$
|
|
3472
|
+
action: action$9,
|
|
3473
|
+
loader: loader$t
|
|
3771
3474
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3772
|
-
async function loader$
|
|
3475
|
+
async function loader$s({ request, params }) {
|
|
3773
3476
|
const timings = makeTimings("epic_ws script");
|
|
3774
3477
|
const { fileApp, app } = await resolveApps({ request, params, timings });
|
|
3775
3478
|
if (!fileApp || !app) {
|
|
@@ -3838,9 +3541,9 @@ async function loader$r({ request, params }) {
|
|
|
3838
3541
|
}
|
|
3839
3542
|
const route6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3840
3543
|
__proto__: null,
|
|
3841
|
-
loader: loader$
|
|
3544
|
+
loader: loader$s
|
|
3842
3545
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3843
|
-
async function loader$
|
|
3546
|
+
async function loader$r({ request, params }) {
|
|
3844
3547
|
var _a;
|
|
3845
3548
|
const timings = makeTimings("app");
|
|
3846
3549
|
const { fileApp, app } = await resolveApps({ request, params, timings });
|
|
@@ -3926,9 +3629,9 @@ async function loader$q({ request, params }) {
|
|
|
3926
3629
|
}
|
|
3927
3630
|
const route7 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3928
3631
|
__proto__: null,
|
|
3929
|
-
loader: loader$
|
|
3632
|
+
loader: loader$r
|
|
3930
3633
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
3931
|
-
async function loader$
|
|
3634
|
+
async function loader$q({ request, params }) {
|
|
3932
3635
|
var _a;
|
|
3933
3636
|
const timings = makeTimings("app_test_loader");
|
|
3934
3637
|
const userHasAccess = await userHasAccessToWorkshop({
|
|
@@ -4065,15 +3768,15 @@ ${testScriptTag}`;
|
|
|
4065
3768
|
}
|
|
4066
3769
|
const route8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
4067
3770
|
__proto__: null,
|
|
4068
|
-
loader: loader$
|
|
3771
|
+
loader: loader$q
|
|
4069
3772
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
4070
3773
|
const route9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
4071
3774
|
__proto__: null,
|
|
4072
|
-
loader: loader$
|
|
3775
|
+
loader: loader$s
|
|
4073
3776
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
4074
3777
|
const route10 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
4075
3778
|
__proto__: null,
|
|
4076
|
-
loader: loader$
|
|
3779
|
+
loader: loader$s
|
|
4077
3780
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
4078
3781
|
const handle$8 = {
|
|
4079
3782
|
getSitemapEntries: () => null
|
|
@@ -4206,17 +3909,239 @@ const handle$7 = {
|
|
|
4206
3909
|
route: `/exercise/${e.exerciseNumber.toString().padStart(2, "0")}/finished`
|
|
4207
3910
|
}]);
|
|
4208
3911
|
}
|
|
4209
|
-
};
|
|
4210
|
-
function ExercisesLayout() {
|
|
4211
|
-
return /* @__PURE__ */ jsx("div", {
|
|
4212
|
-
className: "flex h-full flex-grow",
|
|
4213
|
-
children: /* @__PURE__ */ jsx(Outlet, {})
|
|
4214
|
-
});
|
|
3912
|
+
};
|
|
3913
|
+
function ExercisesLayout() {
|
|
3914
|
+
return /* @__PURE__ */ jsx("div", {
|
|
3915
|
+
className: "flex h-full flex-grow",
|
|
3916
|
+
children: /* @__PURE__ */ jsx(Outlet, {})
|
|
3917
|
+
});
|
|
3918
|
+
}
|
|
3919
|
+
const route12 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3920
|
+
__proto__: null,
|
|
3921
|
+
default: ExercisesLayout,
|
|
3922
|
+
handle: handle$7
|
|
3923
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
3924
|
+
const PlaybackTimeSchema = z.object({
|
|
3925
|
+
time: z.number(),
|
|
3926
|
+
expiresAt: z.string()
|
|
3927
|
+
}).transform((data2) => {
|
|
3928
|
+
return { time: Number(data2.time), expiresAt: new Date(data2.expiresAt) };
|
|
3929
|
+
});
|
|
3930
|
+
function usePlayerPreferences() {
|
|
3931
|
+
var _a;
|
|
3932
|
+
const data2 = useRouteLoaderData("root");
|
|
3933
|
+
return ((_a = data2 == null ? void 0 : data2.preferences) == null ? void 0 : _a.player) ?? null;
|
|
3934
|
+
}
|
|
3935
|
+
const ignoredInputs = [
|
|
3936
|
+
"INPUT",
|
|
3937
|
+
"SELECT",
|
|
3938
|
+
"BUTTON",
|
|
3939
|
+
"TEXTAREA",
|
|
3940
|
+
"MUX-PLAYER",
|
|
3941
|
+
"SUMMARY"
|
|
3942
|
+
];
|
|
3943
|
+
const ignoredRoles = ["button", "option", "combobox", "tab", "tablist"];
|
|
3944
|
+
function shouldIgnoreHotkey(el) {
|
|
3945
|
+
let current = el;
|
|
3946
|
+
while (current) {
|
|
3947
|
+
if (!(current instanceof HTMLElement)) return false;
|
|
3948
|
+
const isIgnored = ignoredInputs.includes(current.tagName) || ignoredRoles.includes(current.getAttribute("role") || "") || current.isContentEditable;
|
|
3949
|
+
if (isIgnored) return true;
|
|
3950
|
+
current = current.parentElement;
|
|
3951
|
+
}
|
|
3952
|
+
return false;
|
|
3953
|
+
}
|
|
3954
|
+
async function action$8({ request }) {
|
|
3955
|
+
const result = PlayerPreferencesSchema.safeParse(await request.json());
|
|
3956
|
+
if (!result.success) {
|
|
3957
|
+
return unstable_data$1({ status: "error", error: result.error.flatten() }, {
|
|
3958
|
+
status: 400
|
|
3959
|
+
});
|
|
3960
|
+
}
|
|
3961
|
+
await setPreferences({ player: result.data });
|
|
3962
|
+
return { status: "success" };
|
|
3963
|
+
}
|
|
3964
|
+
function useLatest(value) {
|
|
3965
|
+
const ref = React.useRef(value);
|
|
3966
|
+
React.useEffect(() => {
|
|
3967
|
+
ref.current = value;
|
|
3968
|
+
}, [value]);
|
|
3969
|
+
return ref;
|
|
3970
|
+
}
|
|
3971
|
+
function MuxPlayer({
|
|
3972
|
+
muxPlayerRef,
|
|
3973
|
+
...props
|
|
3974
|
+
}) {
|
|
3975
|
+
const playerPreferences = usePlayerPreferences();
|
|
3976
|
+
const playerPreferencesFetcher = useFetcher();
|
|
3977
|
+
const [metadataLoaded, setMetadataLoaded] = React.useState(false);
|
|
3978
|
+
const currentTimeSessionKey = `${props.playbackId}:currentTime`;
|
|
3979
|
+
const [currentTime, setCurrentTime] = React.useState(0);
|
|
3980
|
+
const fetcherRef = useLatest(playerPreferencesFetcher);
|
|
3981
|
+
const playerPreferencesRef = useLatest(playerPreferences);
|
|
3982
|
+
React.useEffect(() => {
|
|
3983
|
+
if (typeof document === "undefined") return;
|
|
3984
|
+
const stored = sessionStorage.getItem(currentTimeSessionKey);
|
|
3985
|
+
if (!stored) return;
|
|
3986
|
+
try {
|
|
3987
|
+
const { time: time2, expiresAt } = PlaybackTimeSchema.parse(JSON.parse(stored));
|
|
3988
|
+
if (expiresAt.getTime() < Date.now()) throw new Error("Time expired");
|
|
3989
|
+
setCurrentTime(time2);
|
|
3990
|
+
} catch {
|
|
3991
|
+
sessionStorage.removeItem(currentTimeSessionKey);
|
|
3992
|
+
}
|
|
3993
|
+
}, [currentTimeSessionKey]);
|
|
3994
|
+
React.useEffect(() => {
|
|
3995
|
+
function handleUserKeyPress(e) {
|
|
3996
|
+
if (!muxPlayerRef.current) return;
|
|
3997
|
+
const activeElement = document.activeElement;
|
|
3998
|
+
if (shouldIgnoreHotkey(activeElement)) return;
|
|
3999
|
+
if (shouldIgnoreHotkey(e.target)) return;
|
|
4000
|
+
if (e.key === " ") {
|
|
4001
|
+
e.preventDefault();
|
|
4002
|
+
void (muxPlayerRef.current.paused ? muxPlayerRef.current.play() : muxPlayerRef.current.pause());
|
|
4003
|
+
}
|
|
4004
|
+
if (e.key === "ArrowRight") {
|
|
4005
|
+
e.preventDefault();
|
|
4006
|
+
muxPlayerRef.current.currentTime = muxPlayerRef.current.currentTime + (muxPlayerRef.current.forwardSeekOffset || 10);
|
|
4007
|
+
}
|
|
4008
|
+
if (e.key === "ArrowLeft") {
|
|
4009
|
+
e.preventDefault();
|
|
4010
|
+
muxPlayerRef.current.currentTime = muxPlayerRef.current.currentTime - (muxPlayerRef.current.forwardSeekOffset || 10);
|
|
4011
|
+
}
|
|
4012
|
+
if (e.key === "f" && !e.metaKey && !e.ctrlKey) {
|
|
4013
|
+
e.preventDefault();
|
|
4014
|
+
void (document.fullscreenElement ? document.exitFullscreen() : muxPlayerRef.current.requestFullscreen());
|
|
4015
|
+
}
|
|
4016
|
+
}
|
|
4017
|
+
window.document.addEventListener("keydown", handleUserKeyPress);
|
|
4018
|
+
return () => {
|
|
4019
|
+
window.document.removeEventListener("keydown", handleUserKeyPress);
|
|
4020
|
+
};
|
|
4021
|
+
}, [muxPlayerRef]);
|
|
4022
|
+
const updatePreferences = useDebounce(() => {
|
|
4023
|
+
const player = muxPlayerRef.current;
|
|
4024
|
+
if (!player) return;
|
|
4025
|
+
const subs = Array.from(player.textTracks ?? []).find(
|
|
4026
|
+
(t) => t.kind === "subtitles"
|
|
4027
|
+
);
|
|
4028
|
+
const newPrefs = {
|
|
4029
|
+
playbackRate: player.playbackRate,
|
|
4030
|
+
volumeRate: player.volume,
|
|
4031
|
+
subtitle: subs ? { id: subs.id, mode: subs.mode } : { id: null, mode: "disabled" }
|
|
4032
|
+
};
|
|
4033
|
+
if (isDeepEqual(newPrefs, playerPreferencesRef.current)) return;
|
|
4034
|
+
fetcherRef.current.submit(newPrefs, {
|
|
4035
|
+
method: "POST",
|
|
4036
|
+
action: "/video-player",
|
|
4037
|
+
encType: "application/json"
|
|
4038
|
+
});
|
|
4039
|
+
}, 300);
|
|
4040
|
+
React.useEffect(() => {
|
|
4041
|
+
var _a, _b;
|
|
4042
|
+
if (!metadataLoaded) return;
|
|
4043
|
+
const textTracks = (_a = muxPlayerRef.current) == null ? void 0 : _a.textTracks;
|
|
4044
|
+
if (!textTracks) return;
|
|
4045
|
+
const subtitlePref = (_b = playerPreferencesRef.current) == null ? void 0 : _b.subtitle;
|
|
4046
|
+
if (subtitlePref == null ? void 0 : subtitlePref.id) {
|
|
4047
|
+
const preferredTextTrack = textTracks.getTrackById(subtitlePref.id);
|
|
4048
|
+
if (preferredTextTrack) {
|
|
4049
|
+
preferredTextTrack.mode = subtitlePref.mode ?? "hidden";
|
|
4050
|
+
}
|
|
4051
|
+
}
|
|
4052
|
+
textTracks.addEventListener("change", updatePreferences);
|
|
4053
|
+
return () => {
|
|
4054
|
+
textTracks.removeEventListener("change", updatePreferences);
|
|
4055
|
+
};
|
|
4056
|
+
}, [metadataLoaded, muxPlayerRef, playerPreferencesRef, updatePreferences]);
|
|
4057
|
+
return /* @__PURE__ */ jsx("div", { className: "flex aspect-video flex-col", children: /* @__PURE__ */ jsx(
|
|
4058
|
+
RealMuxPlayer,
|
|
4059
|
+
{
|
|
4060
|
+
ref: muxPlayerRef,
|
|
4061
|
+
playbackRates: [
|
|
4062
|
+
0.5,
|
|
4063
|
+
0.75,
|
|
4064
|
+
1,
|
|
4065
|
+
1.25,
|
|
4066
|
+
1.5,
|
|
4067
|
+
1.75,
|
|
4068
|
+
2,
|
|
4069
|
+
2.5,
|
|
4070
|
+
3,
|
|
4071
|
+
3.5,
|
|
4072
|
+
// lol, someone really asked for this and I think it's funny so let's do it
|
|
4073
|
+
// https://twitter.com/zackerydev/status/1710840197879918840
|
|
4074
|
+
4
|
|
4075
|
+
],
|
|
4076
|
+
volume: (playerPreferences == null ? void 0 : playerPreferences.volumeRate) ?? 1,
|
|
4077
|
+
playbackRate: (playerPreferences == null ? void 0 : playerPreferences.playbackRate) ?? 1,
|
|
4078
|
+
thumbnailTime: currentTime,
|
|
4079
|
+
onRateChange: updatePreferences,
|
|
4080
|
+
onVolumeChange: updatePreferences,
|
|
4081
|
+
streamType: "on-demand",
|
|
4082
|
+
defaultHiddenCaptions: true,
|
|
4083
|
+
currentTime,
|
|
4084
|
+
onTimeUpdate: () => {
|
|
4085
|
+
var _a;
|
|
4086
|
+
return sessionStorage.setItem(
|
|
4087
|
+
currentTimeSessionKey,
|
|
4088
|
+
JSON.stringify({
|
|
4089
|
+
time: (_a = muxPlayerRef.current) == null ? void 0 : _a.currentTime,
|
|
4090
|
+
expiresAt: new Date(Date.now() + 1e3 * 60 * 30).toISOString()
|
|
4091
|
+
})
|
|
4092
|
+
);
|
|
4093
|
+
},
|
|
4094
|
+
accentColor: "#427cf0",
|
|
4095
|
+
targetLiveWindow: NaN,
|
|
4096
|
+
onLoadedMetadata: () => setMetadataLoaded(true),
|
|
4097
|
+
minResolution: getMinResolutionValue(playerPreferences == null ? void 0 : playerPreferences.minResolution),
|
|
4098
|
+
maxResolution: getMaxResolutionValue(playerPreferences == null ? void 0 : playerPreferences.maxResolution),
|
|
4099
|
+
...props
|
|
4100
|
+
}
|
|
4101
|
+
) });
|
|
4102
|
+
}
|
|
4103
|
+
function isDeepEqual(obj1, obj2) {
|
|
4104
|
+
if (obj1 === obj2) return true;
|
|
4105
|
+
if (typeof obj1 !== typeof obj2) return false;
|
|
4106
|
+
if (typeof obj1 !== "object" || typeof obj2 !== "object") return false;
|
|
4107
|
+
if (obj1 === null || obj2 === null) return false;
|
|
4108
|
+
if (Array.isArray(obj1) !== Array.isArray(obj2)) return false;
|
|
4109
|
+
if (Array.isArray(obj1) && Array.isArray(obj2)) {
|
|
4110
|
+
if (obj1.length !== obj2.length) return false;
|
|
4111
|
+
for (let i = 0; i < obj1.length; i++) {
|
|
4112
|
+
if (!isDeepEqual(obj1[i], obj2[i])) return false;
|
|
4113
|
+
}
|
|
4114
|
+
return true;
|
|
4115
|
+
}
|
|
4116
|
+
const keys1 = Object.keys(obj1);
|
|
4117
|
+
const keys2 = Object.keys(obj2);
|
|
4118
|
+
if (keys1.length !== keys2.length) return false;
|
|
4119
|
+
for (const key of keys1) {
|
|
4120
|
+
if (!isDeepEqual(obj1[key], obj2[key])) return false;
|
|
4121
|
+
}
|
|
4122
|
+
return true;
|
|
4215
4123
|
}
|
|
4216
|
-
|
|
4124
|
+
function getMinResolutionValue(resolution) {
|
|
4125
|
+
if (!resolution) return void 0;
|
|
4126
|
+
if (resolution <= 480) return MinResolution.noLessThan480p;
|
|
4127
|
+
if (resolution <= 540) return MinResolution.noLessThan540p;
|
|
4128
|
+
if (resolution <= 720) return MinResolution.noLessThan720p;
|
|
4129
|
+
if (resolution <= 1080) return MinResolution.noLessThan1080p;
|
|
4130
|
+
if (resolution <= 1440) return MinResolution.noLessThan1440p;
|
|
4131
|
+
return MinResolution.noLessThan2160p;
|
|
4132
|
+
}
|
|
4133
|
+
function getMaxResolutionValue(resolution) {
|
|
4134
|
+
if (!resolution) return void 0;
|
|
4135
|
+
if (resolution <= 720) return MaxResolution.upTo720p;
|
|
4136
|
+
if (resolution <= 1080) return MaxResolution.upTo1080p;
|
|
4137
|
+
if (resolution <= 1440) return MaxResolution.upTo1440p;
|
|
4138
|
+
return MaxResolution.upTo2160p;
|
|
4139
|
+
}
|
|
4140
|
+
const route46 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
4217
4141
|
__proto__: null,
|
|
4218
|
-
|
|
4219
|
-
|
|
4142
|
+
MuxPlayer,
|
|
4143
|
+
action: action$8,
|
|
4144
|
+
usePlayerPreferences
|
|
4220
4145
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
4221
4146
|
function Loading({
|
|
4222
4147
|
className,
|
|
@@ -5059,7 +4984,7 @@ const LaunchSchema = z.intersection(
|
|
|
5059
4984
|
}),
|
|
5060
4985
|
getFileDescriptorSchema(z.array(z.string()))
|
|
5061
4986
|
);
|
|
5062
|
-
async function action$
|
|
4987
|
+
async function action$7({ request }) {
|
|
5063
4988
|
ensureUndeployed();
|
|
5064
4989
|
const formData = await request.formData();
|
|
5065
4990
|
const syncTo = {
|
|
@@ -5306,11 +5231,11 @@ function EditFileOnGitHub({
|
|
|
5306
5231
|
);
|
|
5307
5232
|
}
|
|
5308
5233
|
const LaunchEditor = ENV.EPICSHOP_DEPLOYED ? LaunchGitHub : LaunchEditorImpl;
|
|
5309
|
-
const
|
|
5234
|
+
const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
5310
5235
|
__proto__: null,
|
|
5311
5236
|
EditFileOnGitHub,
|
|
5312
5237
|
LaunchEditor,
|
|
5313
|
-
action: action$
|
|
5238
|
+
action: action$7
|
|
5314
5239
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
5315
5240
|
const safePath = (s) => s.replace(/\\/g, "/");
|
|
5316
5241
|
function getRelativePath(file, separator, type) {
|
|
@@ -5507,7 +5432,7 @@ const meta$5 = ({
|
|
|
5507
5432
|
requestInfo: rootData.requestInfo
|
|
5508
5433
|
});
|
|
5509
5434
|
};
|
|
5510
|
-
async function loader$
|
|
5435
|
+
async function loader$p({ request, params }) {
|
|
5511
5436
|
const timings = makeTimings("exerciseNumberLoader");
|
|
5512
5437
|
invariantResponse(params.exerciseNumber, "exerciseNumber is required");
|
|
5513
5438
|
const { title: workshopTitle } = getWorkshopConfig();
|
|
@@ -5650,10 +5575,10 @@ const route13 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
5650
5575
|
ErrorBoundary: ErrorBoundary$4,
|
|
5651
5576
|
default: ExerciseNumberRoute,
|
|
5652
5577
|
headers: headers$a,
|
|
5653
|
-
loader: loader$
|
|
5578
|
+
loader: loader$p,
|
|
5654
5579
|
meta: meta$5
|
|
5655
5580
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
5656
|
-
async function loader$
|
|
5581
|
+
async function loader$o({ request, params }) {
|
|
5657
5582
|
const timings = makeTimings("stepLoader");
|
|
5658
5583
|
invariantResponse(params.exerciseNumber, "exerciseNumber is required");
|
|
5659
5584
|
const exercises = await getExercises({ request, timings });
|
|
@@ -5708,7 +5633,7 @@ const route14 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
5708
5633
|
ErrorBoundary: ErrorBoundary$3,
|
|
5709
5634
|
default: StepRoute,
|
|
5710
5635
|
headers: headers$9,
|
|
5711
|
-
loader: loader$
|
|
5636
|
+
loader: loader$o
|
|
5712
5637
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
5713
5638
|
function NavChevrons({
|
|
5714
5639
|
prev,
|
|
@@ -6159,7 +6084,7 @@ const SetPlaygroundSchema = z.object({
|
|
|
6159
6084
|
appName: z.string(),
|
|
6160
6085
|
reset: z.string().nullable().optional().transform((v) => v === "true")
|
|
6161
6086
|
});
|
|
6162
|
-
async function action$
|
|
6087
|
+
async function action$6({ request }) {
|
|
6163
6088
|
ensureUndeployed();
|
|
6164
6089
|
const formData = await request.formData();
|
|
6165
6090
|
const rawData = {
|
|
@@ -6334,12 +6259,12 @@ function SetAppToPlayground({ appName }) {
|
|
|
6334
6259
|
}
|
|
6335
6260
|
);
|
|
6336
6261
|
}
|
|
6337
|
-
const
|
|
6262
|
+
const route41 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
6338
6263
|
__proto__: null,
|
|
6339
6264
|
PlaygroundChooser,
|
|
6340
6265
|
SetAppToPlayground,
|
|
6341
6266
|
SetPlayground,
|
|
6342
|
-
action: action$
|
|
6267
|
+
action: action$6
|
|
6343
6268
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
6344
6269
|
const StepContext = React.createContext(null);
|
|
6345
6270
|
function useStepContext() {
|
|
@@ -6680,7 +6605,7 @@ const meta$4 = ({
|
|
|
6680
6605
|
requestInfo: rootData.requestInfo
|
|
6681
6606
|
});
|
|
6682
6607
|
};
|
|
6683
|
-
async function loader$
|
|
6608
|
+
async function loader$n({ request, params }) {
|
|
6684
6609
|
var _a, _b;
|
|
6685
6610
|
const timings = makeTimings("exerciseStepTypeLayoutLoader");
|
|
6686
6611
|
const url = new URL(request.url);
|
|
@@ -6942,10 +6867,10 @@ const route15 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
6942
6867
|
ErrorBoundary: ErrorBoundary$2,
|
|
6943
6868
|
default: ExercisePartRoute$1,
|
|
6944
6869
|
headers: headers$8,
|
|
6945
|
-
loader: loader$
|
|
6870
|
+
loader: loader$n,
|
|
6946
6871
|
meta: meta$4
|
|
6947
6872
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
6948
|
-
async function action$
|
|
6873
|
+
async function action$5({ request }) {
|
|
6949
6874
|
ensureUndeployed();
|
|
6950
6875
|
const formData = await request.formData();
|
|
6951
6876
|
const intent = formData.get("intent");
|
|
@@ -7082,12 +7007,12 @@ function AppStarter({ name }) {
|
|
|
7082
7007
|
fetcher.state === "idle" ? /* @__PURE__ */ jsx(Button, { type: "submit", name: "intent", value: "start", varient: "mono", children: "Start App" }) : /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Loading, { children: "Starting App" }) })
|
|
7083
7008
|
] });
|
|
7084
7009
|
}
|
|
7085
|
-
const
|
|
7010
|
+
const route43 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
7086
7011
|
__proto__: null,
|
|
7087
7012
|
AppStarter,
|
|
7088
7013
|
AppStopper,
|
|
7089
7014
|
PortStopper,
|
|
7090
|
-
action: action$
|
|
7015
|
+
action: action$5
|
|
7091
7016
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
7092
7017
|
const historyCallDataSchema = z.intersection(
|
|
7093
7018
|
z.object({
|
|
@@ -7545,7 +7470,7 @@ async function getAppRunningState(a) {
|
|
|
7545
7470
|
const portIsAvailable = isRunning ? null : await isPortAvailable(a.dev.portNumber);
|
|
7546
7471
|
return { isRunning, portIsAvailable };
|
|
7547
7472
|
}
|
|
7548
|
-
async function loader$
|
|
7473
|
+
async function loader$m({ request, params }) {
|
|
7549
7474
|
const timings = makeTimings("exercise-step-test");
|
|
7550
7475
|
const exerciseStepApp = await requireExerciseApp(params, { request, timings });
|
|
7551
7476
|
const { isRunning, portIsAvailable } = await getAppRunningState(exerciseStepApp);
|
|
@@ -7585,7 +7510,7 @@ const route16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
7585
7510
|
__proto__: null,
|
|
7586
7511
|
default: TestsList$1,
|
|
7587
7512
|
headers: headers$7,
|
|
7588
|
-
loader: loader$
|
|
7513
|
+
loader: loader$m
|
|
7589
7514
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
7590
7515
|
const AccordionComponent = ({
|
|
7591
7516
|
title,
|
|
@@ -8461,7 +8386,7 @@ const testEventSchema = z.union([
|
|
|
8461
8386
|
})
|
|
8462
8387
|
]);
|
|
8463
8388
|
const testEventQueueSchema = z.array(testEventSchema);
|
|
8464
|
-
async function loader$
|
|
8389
|
+
async function loader$l({ request }) {
|
|
8465
8390
|
ensureUndeployed();
|
|
8466
8391
|
const url = new URL(request.url);
|
|
8467
8392
|
const name = url.searchParams.get("name");
|
|
@@ -8537,7 +8462,7 @@ async function loader$k({ request }) {
|
|
|
8537
8462
|
};
|
|
8538
8463
|
});
|
|
8539
8464
|
}
|
|
8540
|
-
async function action$
|
|
8465
|
+
async function action$4({ request }) {
|
|
8541
8466
|
var _a;
|
|
8542
8467
|
ensureUndeployed();
|
|
8543
8468
|
const formData = await request.formData();
|
|
@@ -8810,14 +8735,14 @@ function StopTest({
|
|
|
8810
8735
|
)
|
|
8811
8736
|
] });
|
|
8812
8737
|
}
|
|
8813
|
-
const
|
|
8738
|
+
const route44 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
8814
8739
|
__proto__: null,
|
|
8815
8740
|
ClearTest,
|
|
8816
8741
|
StopTest,
|
|
8817
8742
|
TestOutput,
|
|
8818
8743
|
TestRunner,
|
|
8819
|
-
action: action$
|
|
8820
|
-
loader: loader$
|
|
8744
|
+
action: action$4,
|
|
8745
|
+
loader: loader$l
|
|
8821
8746
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
8822
8747
|
function Tests({
|
|
8823
8748
|
appInfo: playgroundAppInfo,
|
|
@@ -8884,7 +8809,7 @@ function TestUI({
|
|
|
8884
8809
|
}
|
|
8885
8810
|
return /* @__PURE__ */ jsx("div", { className: "flex h-full items-center justify-center text-lg", children: /* @__PURE__ */ jsx("p", { children: "No tests here 😢 Sorry." }) });
|
|
8886
8811
|
}
|
|
8887
|
-
async function loader$
|
|
8812
|
+
async function loader$k({ request, params }) {
|
|
8888
8813
|
const timings = makeTimings("exerciseStepTypeIndexLoader");
|
|
8889
8814
|
const userHasAccess = await userHasAccessToWorkshop({
|
|
8890
8815
|
request,
|
|
@@ -9204,9 +9129,9 @@ const route17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
9204
9129
|
ErrorBoundary: ErrorBoundary$1,
|
|
9205
9130
|
default: ExercisePartRoute,
|
|
9206
9131
|
headers: headers$6,
|
|
9207
|
-
loader: loader$
|
|
9132
|
+
loader: loader$k
|
|
9208
9133
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9209
|
-
async function loader$
|
|
9134
|
+
async function loader$j({ request, params }) {
|
|
9210
9135
|
const timings = makeTimings("exercise-step-test");
|
|
9211
9136
|
const exerciseStepApp = await requireExerciseApp(params, { request, timings });
|
|
9212
9137
|
return unstable_data$1(
|
|
@@ -9238,9 +9163,9 @@ const route18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
9238
9163
|
__proto__: null,
|
|
9239
9164
|
default: TestsList,
|
|
9240
9165
|
headers: headers$5,
|
|
9241
|
-
loader: loader$
|
|
9166
|
+
loader: loader$j
|
|
9242
9167
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9243
|
-
async function loader$
|
|
9168
|
+
async function loader$i({ params }) {
|
|
9244
9169
|
const problemApp = await getExerciseApp({ ...params, type: "problem" }).then(
|
|
9245
9170
|
(a) => isProblemApp(a) ? a : null
|
|
9246
9171
|
);
|
|
@@ -9262,7 +9187,7 @@ async function loader$h({ params }) {
|
|
|
9262
9187
|
}
|
|
9263
9188
|
const route19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
9264
9189
|
__proto__: null,
|
|
9265
|
-
loader: loader$
|
|
9190
|
+
loader: loader$i
|
|
9266
9191
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9267
9192
|
const meta$3 = ({
|
|
9268
9193
|
data: data2,
|
|
@@ -9281,7 +9206,7 @@ const meta$3 = ({
|
|
|
9281
9206
|
requestInfo: rootData.requestInfo
|
|
9282
9207
|
});
|
|
9283
9208
|
};
|
|
9284
|
-
async function loader$
|
|
9209
|
+
async function loader$h({ request, params }) {
|
|
9285
9210
|
const timings = makeTimings("exerciseFinishedLoader");
|
|
9286
9211
|
invariantResponse(params.exerciseNumber, "exerciseNumber is required");
|
|
9287
9212
|
const exercise = await getExercise(params.exerciseNumber, {
|
|
@@ -9445,7 +9370,7 @@ const route20 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
9445
9370
|
__proto__: null,
|
|
9446
9371
|
default: ExerciseFinished$1,
|
|
9447
9372
|
headers: headers$4,
|
|
9448
|
-
loader: loader$
|
|
9373
|
+
loader: loader$h,
|
|
9449
9374
|
meta: meta$3
|
|
9450
9375
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9451
9376
|
const handle$6 = {
|
|
@@ -9466,7 +9391,7 @@ const meta$2 = ({
|
|
|
9466
9391
|
requestInfo: rootData.requestInfo
|
|
9467
9392
|
});
|
|
9468
9393
|
};
|
|
9469
|
-
async function loader$
|
|
9394
|
+
async function loader$g({ request }) {
|
|
9470
9395
|
const timings = makeTimings("finishedLoader");
|
|
9471
9396
|
const exercises = await getExercises({ request, timings });
|
|
9472
9397
|
const compiledFinished = await time(() => getWorkshopFinished({ request }), {
|
|
@@ -9602,10 +9527,10 @@ const route21 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
9602
9527
|
default: ExerciseFinished,
|
|
9603
9528
|
handle: handle$6,
|
|
9604
9529
|
headers: headers$3,
|
|
9605
|
-
loader: loader$
|
|
9530
|
+
loader: loader$g,
|
|
9606
9531
|
meta: meta$2
|
|
9607
9532
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9608
|
-
async function loader$
|
|
9533
|
+
async function loader$f({ request }) {
|
|
9609
9534
|
const timings = makeTimings("indexLoader");
|
|
9610
9535
|
const { title } = getWorkshopConfig();
|
|
9611
9536
|
const [exercises, workshopReadme] = await Promise.all([
|
|
@@ -9731,7 +9656,7 @@ const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
9731
9656
|
ErrorBoundary,
|
|
9732
9657
|
default: Index,
|
|
9733
9658
|
headers: headers$2,
|
|
9734
|
-
loader: loader$
|
|
9659
|
+
loader: loader$f
|
|
9735
9660
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9736
9661
|
const EVENTS = {
|
|
9737
9662
|
USER_CODE_RECEIVED: "USER_CODE_RECEIVED",
|
|
@@ -9809,7 +9734,7 @@ const EventSchema = z.union([
|
|
|
9809
9734
|
AuthResolvedEventSchema,
|
|
9810
9735
|
AuthRejectedEventSchema
|
|
9811
9736
|
]);
|
|
9812
|
-
async function loader$
|
|
9737
|
+
async function loader$e({ request }) {
|
|
9813
9738
|
ensureUndeployed();
|
|
9814
9739
|
return eventStream(request.signal, function setup(send) {
|
|
9815
9740
|
function handleCodeReceived(data) {
|
|
@@ -9843,21 +9768,21 @@ async function loader$d({ request }) {
|
|
|
9843
9768
|
};
|
|
9844
9769
|
});
|
|
9845
9770
|
}
|
|
9846
|
-
const
|
|
9771
|
+
const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
9847
9772
|
__proto__: null,
|
|
9848
9773
|
EventSchema,
|
|
9849
|
-
loader: loader$
|
|
9774
|
+
loader: loader$e
|
|
9850
9775
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9851
9776
|
const handle$5 = {
|
|
9852
9777
|
getSitemapEntries: () => null
|
|
9853
9778
|
};
|
|
9854
|
-
async function loader$
|
|
9779
|
+
async function loader$d() {
|
|
9855
9780
|
ensureUndeployed();
|
|
9856
9781
|
const isAuthenticated = Boolean(await getAuthInfo());
|
|
9857
9782
|
if (isAuthenticated) throw redirect$1("/account");
|
|
9858
9783
|
return {};
|
|
9859
9784
|
}
|
|
9860
|
-
async function action$
|
|
9785
|
+
async function action$3() {
|
|
9861
9786
|
ensureUndeployed();
|
|
9862
9787
|
void registerDevice();
|
|
9863
9788
|
return { status: "pending" };
|
|
@@ -9968,9 +9893,148 @@ function Login() {
|
|
|
9968
9893
|
}
|
|
9969
9894
|
const route23 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
9970
9895
|
__proto__: null,
|
|
9971
|
-
action: action$
|
|
9896
|
+
action: action$3,
|
|
9972
9897
|
default: Login,
|
|
9973
9898
|
handle: handle$5,
|
|
9899
|
+
loader: loader$d
|
|
9900
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
9901
|
+
async function loader$c() {
|
|
9902
|
+
ensureUndeployed();
|
|
9903
|
+
const preferences = await getPreferences();
|
|
9904
|
+
return { preferences };
|
|
9905
|
+
}
|
|
9906
|
+
async function action$2({ request }) {
|
|
9907
|
+
ensureUndeployed();
|
|
9908
|
+
const formData = await request.formData();
|
|
9909
|
+
const minResolution = formData.get("minResolution");
|
|
9910
|
+
const maxResolution = formData.get("maxResolution");
|
|
9911
|
+
const fontSize = formData.get("fontSize");
|
|
9912
|
+
const optOutPresence = formData.get("optOutPresence") === "on";
|
|
9913
|
+
await setPreferences({
|
|
9914
|
+
player: {
|
|
9915
|
+
minResolution: minResolution ? Number(minResolution) : void 0,
|
|
9916
|
+
maxResolution: maxResolution ? Number(maxResolution) : void 0
|
|
9917
|
+
},
|
|
9918
|
+
fontSize: fontSize ? Number(fontSize) : void 0,
|
|
9919
|
+
presence: {
|
|
9920
|
+
optOut: optOutPresence
|
|
9921
|
+
}
|
|
9922
|
+
});
|
|
9923
|
+
return redirectWithToast("/preferences", {
|
|
9924
|
+
title: "Preferences updated",
|
|
9925
|
+
description: "Your preferences have been updated.",
|
|
9926
|
+
type: "success"
|
|
9927
|
+
});
|
|
9928
|
+
}
|
|
9929
|
+
function AccountSettings() {
|
|
9930
|
+
var _a, _b, _c;
|
|
9931
|
+
const data = useRouteLoaderData("root");
|
|
9932
|
+
const playerPreferences = (_a = data == null ? void 0 : data.preferences) == null ? void 0 : _a.player;
|
|
9933
|
+
const fontSizePreference = (_b = data == null ? void 0 : data.preferences) == null ? void 0 : _b.fontSize;
|
|
9934
|
+
const presencePreferences = (_c = data == null ? void 0 : data.preferences) == null ? void 0 : _c.presence;
|
|
9935
|
+
const navigation = useNavigation();
|
|
9936
|
+
const isSubmitting = navigation.state === "submitting";
|
|
9937
|
+
return /* @__PURE__ */ jsxs("main", { className: "container mt-12 flex h-full w-full max-w-3xl flex-grow flex-col gap-4", children: [
|
|
9938
|
+
/* @__PURE__ */ jsx("h1", { className: "mb-4 text-h1", children: "Preferences" }),
|
|
9939
|
+
/* @__PURE__ */ jsxs(Form, { method: "post", className: "flex w-full max-w-sm flex-col gap-4", children: [
|
|
9940
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
9941
|
+
/* @__PURE__ */ jsx("h2", { className: "mb-2 text-body-xl", children: "Video Player Preferences" }),
|
|
9942
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
9943
|
+
/* @__PURE__ */ jsx("label", { htmlFor: "minResolution", children: "Minimum Resolution:" }),
|
|
9944
|
+
/* @__PURE__ */ jsxs(
|
|
9945
|
+
"select",
|
|
9946
|
+
{
|
|
9947
|
+
id: "minResolution",
|
|
9948
|
+
name: "minResolution",
|
|
9949
|
+
defaultValue: playerPreferences == null ? void 0 : playerPreferences.minResolution,
|
|
9950
|
+
children: [
|
|
9951
|
+
/* @__PURE__ */ jsx("option", { value: "", children: "Auto" }),
|
|
9952
|
+
/* @__PURE__ */ jsx("option", { value: "480", children: "480p" }),
|
|
9953
|
+
/* @__PURE__ */ jsx("option", { value: "720", children: "720p" }),
|
|
9954
|
+
/* @__PURE__ */ jsx("option", { value: "1080", children: "1080p" }),
|
|
9955
|
+
/* @__PURE__ */ jsx("option", { value: "1440", children: "1440p" }),
|
|
9956
|
+
/* @__PURE__ */ jsx("option", { value: "2160", children: "2160p (4K)" })
|
|
9957
|
+
]
|
|
9958
|
+
}
|
|
9959
|
+
)
|
|
9960
|
+
] }),
|
|
9961
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
9962
|
+
/* @__PURE__ */ jsx("label", { htmlFor: "maxResolution", children: "Maximum Resolution:" }),
|
|
9963
|
+
/* @__PURE__ */ jsxs(
|
|
9964
|
+
"select",
|
|
9965
|
+
{
|
|
9966
|
+
id: "maxResolution",
|
|
9967
|
+
name: "maxResolution",
|
|
9968
|
+
defaultValue: playerPreferences == null ? void 0 : playerPreferences.maxResolution,
|
|
9969
|
+
children: [
|
|
9970
|
+
/* @__PURE__ */ jsx("option", { value: "", children: "Auto" }),
|
|
9971
|
+
/* @__PURE__ */ jsx("option", { value: "720", children: "720p" }),
|
|
9972
|
+
/* @__PURE__ */ jsx("option", { value: "1080", children: "1080p" }),
|
|
9973
|
+
/* @__PURE__ */ jsx("option", { value: "1440", children: "1440p" }),
|
|
9974
|
+
/* @__PURE__ */ jsx("option", { value: "2160", children: "2160p (4K)" })
|
|
9975
|
+
]
|
|
9976
|
+
}
|
|
9977
|
+
)
|
|
9978
|
+
] })
|
|
9979
|
+
] }),
|
|
9980
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
9981
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-2", children: [
|
|
9982
|
+
/* @__PURE__ */ jsx("h2", { className: "text-body-xl", children: "Font Size Preference" }),
|
|
9983
|
+
/* @__PURE__ */ jsx(SimpleTooltip, { content: "Defaults to 16px", children: /* @__PURE__ */ jsx(Icon, { name: "Question", tabIndex: 0 }) })
|
|
9984
|
+
] }),
|
|
9985
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
9986
|
+
/* @__PURE__ */ jsx("label", { htmlFor: "fontSize", children: "Font Size" }),
|
|
9987
|
+
/* @__PURE__ */ jsx(
|
|
9988
|
+
"input",
|
|
9989
|
+
{
|
|
9990
|
+
type: "number",
|
|
9991
|
+
id: "fontSize",
|
|
9992
|
+
name: "fontSize",
|
|
9993
|
+
defaultValue: fontSizePreference ?? 16,
|
|
9994
|
+
step: "1",
|
|
9995
|
+
min: "12",
|
|
9996
|
+
max: "26"
|
|
9997
|
+
}
|
|
9998
|
+
)
|
|
9999
|
+
] })
|
|
10000
|
+
] }),
|
|
10001
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
10002
|
+
/* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-2", children: [
|
|
10003
|
+
/* @__PURE__ */ jsx("h2", { className: "text-body-xl", children: "Presence Preference" }),
|
|
10004
|
+
/* @__PURE__ */ jsx(SimpleTooltip, { content: "This controls whether your name and avatar are displayed in the pile of faces in navigation", children: /* @__PURE__ */ jsx(Icon, { name: "Question", tabIndex: 0 }) })
|
|
10005
|
+
] }),
|
|
10006
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
10007
|
+
/* @__PURE__ */ jsx(
|
|
10008
|
+
"input",
|
|
10009
|
+
{
|
|
10010
|
+
type: "checkbox",
|
|
10011
|
+
id: "optOutPresence",
|
|
10012
|
+
name: "optOutPresence",
|
|
10013
|
+
defaultChecked: presencePreferences == null ? void 0 : presencePreferences.optOut
|
|
10014
|
+
}
|
|
10015
|
+
),
|
|
10016
|
+
/* @__PURE__ */ jsx("label", { htmlFor: "optOutPresence", children: "Opt out of presence features" })
|
|
10017
|
+
] })
|
|
10018
|
+
] }),
|
|
10019
|
+
/* @__PURE__ */ jsx("div", { className: "h-4" }),
|
|
10020
|
+
/* @__PURE__ */ jsx(
|
|
10021
|
+
Button,
|
|
10022
|
+
{
|
|
10023
|
+
varient: "primary",
|
|
10024
|
+
type: "submit",
|
|
10025
|
+
name: "intent",
|
|
10026
|
+
value: "update-preferences",
|
|
10027
|
+
disabled: isSubmitting,
|
|
10028
|
+
children: isSubmitting ? "Updating..." : "Update Preferences"
|
|
10029
|
+
}
|
|
10030
|
+
)
|
|
10031
|
+
] })
|
|
10032
|
+
] });
|
|
10033
|
+
}
|
|
10034
|
+
const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10035
|
+
__proto__: null,
|
|
10036
|
+
action: action$2,
|
|
10037
|
+
default: AccountSettings,
|
|
9974
10038
|
loader: loader$c
|
|
9975
10039
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
9976
10040
|
const handle$4 = {
|
|
@@ -10029,7 +10093,7 @@ function Support() {
|
|
|
10029
10093
|
] })
|
|
10030
10094
|
] });
|
|
10031
10095
|
}
|
|
10032
|
-
const
|
|
10096
|
+
const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10033
10097
|
__proto__: null,
|
|
10034
10098
|
default: Support,
|
|
10035
10099
|
handle: handle$4
|
|
@@ -10056,7 +10120,7 @@ function AdminLayout$1() {
|
|
|
10056
10120
|
] })
|
|
10057
10121
|
] });
|
|
10058
10122
|
}
|
|
10059
|
-
const
|
|
10123
|
+
const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10060
10124
|
__proto__: null,
|
|
10061
10125
|
default: AdminLayout$1,
|
|
10062
10126
|
handle: handle$3,
|
|
@@ -10067,7 +10131,7 @@ async function loader$b() {
|
|
|
10067
10131
|
const apps = await getApps();
|
|
10068
10132
|
return Response.json({ apps });
|
|
10069
10133
|
}
|
|
10070
|
-
const
|
|
10134
|
+
const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10071
10135
|
__proto__: null,
|
|
10072
10136
|
loader: loader$b
|
|
10073
10137
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -10076,7 +10140,7 @@ async function loader$a() {
|
|
|
10076
10140
|
const entries = await getAllFileCacheEntries();
|
|
10077
10141
|
return Response.json({ entries });
|
|
10078
10142
|
}
|
|
10079
|
-
const
|
|
10143
|
+
const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10080
10144
|
__proto__: null,
|
|
10081
10145
|
loader: loader$a
|
|
10082
10146
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -10315,7 +10379,7 @@ function Pinger({
|
|
|
10315
10379
|
)
|
|
10316
10380
|
] });
|
|
10317
10381
|
}
|
|
10318
|
-
const
|
|
10382
|
+
const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10319
10383
|
__proto__: null,
|
|
10320
10384
|
action: action$1,
|
|
10321
10385
|
default: AdminLayout,
|
|
@@ -10425,7 +10489,7 @@ function Version() {
|
|
|
10425
10489
|
] })
|
|
10426
10490
|
] });
|
|
10427
10491
|
}
|
|
10428
|
-
const
|
|
10492
|
+
const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10429
10493
|
__proto__: null,
|
|
10430
10494
|
default: Version,
|
|
10431
10495
|
handle: handle$1,
|
|
@@ -10440,7 +10504,7 @@ async function loader$7({ request }) {
|
|
|
10440
10504
|
{ headers: { "Server-Timing": getServerTimeHeader(timings) } }
|
|
10441
10505
|
);
|
|
10442
10506
|
}
|
|
10443
|
-
const
|
|
10507
|
+
const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10444
10508
|
__proto__: null,
|
|
10445
10509
|
loader: loader$7
|
|
10446
10510
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -10529,7 +10593,7 @@ function DiffViewer() {
|
|
|
10529
10593
|
}
|
|
10530
10594
|
);
|
|
10531
10595
|
}
|
|
10532
|
-
const
|
|
10596
|
+
const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10533
10597
|
__proto__: null,
|
|
10534
10598
|
default: DiffViewer,
|
|
10535
10599
|
loader: loader$6
|
|
@@ -10542,7 +10606,7 @@ async function loader$5({ request }) {
|
|
|
10542
10606
|
{ headers: { "Server-Timing": getServerTimeHeader(timings) } }
|
|
10543
10607
|
);
|
|
10544
10608
|
}
|
|
10545
|
-
const
|
|
10609
|
+
const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10546
10610
|
__proto__: null,
|
|
10547
10611
|
loader: loader$5
|
|
10548
10612
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -10873,7 +10937,7 @@ function OgLayout({
|
|
|
10873
10937
|
}
|
|
10874
10938
|
);
|
|
10875
10939
|
}
|
|
10876
|
-
const
|
|
10940
|
+
const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10877
10941
|
__proto__: null,
|
|
10878
10942
|
loader: loader$4
|
|
10879
10943
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -10921,7 +10985,7 @@ function Onboarding() {
|
|
|
10921
10985
|
/* @__PURE__ */ jsx(Form, { method: "post", className: "pb-4", children: /* @__PURE__ */ jsx(Button, { name: "intent", value: "complete", varient: "primary", children: "I've watched it. Let's go!" }) })
|
|
10922
10986
|
] });
|
|
10923
10987
|
}
|
|
10924
|
-
const
|
|
10988
|
+
const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10925
10989
|
__proto__: null,
|
|
10926
10990
|
action,
|
|
10927
10991
|
default: Onboarding,
|
|
@@ -10947,7 +11011,7 @@ async function loader$2() {
|
|
|
10947
11011
|
}
|
|
10948
11012
|
return Response.json({ processes, testProcesses });
|
|
10949
11013
|
}
|
|
10950
|
-
const
|
|
11014
|
+
const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10951
11015
|
__proto__: null,
|
|
10952
11016
|
loader: loader$2
|
|
10953
11017
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -10956,7 +11020,7 @@ function loader$1({ request }) {
|
|
|
10956
11020
|
{ type: "sitemap", value: `${getDomainUrl(request)}/sitemap.xml` }
|
|
10957
11021
|
]);
|
|
10958
11022
|
}
|
|
10959
|
-
const
|
|
11023
|
+
const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10960
11024
|
__proto__: null,
|
|
10961
11025
|
loader: loader$1
|
|
10962
11026
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
@@ -10969,11 +11033,11 @@ async function loader({ request, context }) {
|
|
|
10969
11033
|
}
|
|
10970
11034
|
});
|
|
10971
11035
|
}
|
|
10972
|
-
const
|
|
11036
|
+
const route42 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
10973
11037
|
__proto__: null,
|
|
10974
11038
|
loader
|
|
10975
11039
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
10976
|
-
const serverManifest = { "entry": { "module": "/assets/entry.client-CrlHhRMR.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/components-DUNtf72c.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-Bg-hxaOK.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/components-DUNtf72c.js", "/assets/misc-DIdEn_jt.js", "/assets/pe-D5h19vSo.js", "/assets/error-boundary-3zItlMUO.js", "/assets/progress-bar-CBDBzRQ2.js", "/assets/index-LjRZeU7x.js", "/assets/tooltip-BoVikCa-.js", "/assets/index-DH1w3QmP.js", "/assets/presence-D1DPz__2.js", "/assets/seo-pBpFCWsy.js", "/assets/request-info-vBkaf3Rk.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-hAKYb2AG.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/error-boundary-3zItlMUO.js", "/assets/misc-DIdEn_jt.js", "/assets/components-DUNtf72c.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-Bu0lel3p.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/misc-DIdEn_jt.js", "/assets/pe-D5h19vSo.js", "/assets/product-CYOFfeJM.js", "/assets/revalidation-ws-DK5QOPlL.js", "/assets/tooltip-BoVikCa-.js", "/assets/index-CV3nxGFp.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/presence-D1DPz__2.js", "/assets/progress-D6SP0Gec.js", "/assets/index-DH1w3QmP.js", "/assets/components-DUNtf72c.js", "/assets/request-info-vBkaf3Rk.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-DLDPrc9J.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/button-39zQyNX6.js", "/assets/misc-DIdEn_jt.js", "/assets/tooltip-BoVikCa-.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/presence-D1DPz__2.js", "/assets/index-BajUQsFT.js", "/assets/components-DUNtf72c.js", "/assets/request-info-vBkaf3Rk.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-CpIgvYus.js", "imports": ["/assets/discord-CEOqKs_c.js", "/assets/index-C_B1-9rF.js", "/assets/misc-DIdEn_jt.js", "/assets/components-DUNtf72c.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-B4JGpA3A.js", "imports": ["/assets/index-C_B1-9rF.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-PTdG9GGB.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/index-CLNXC84j.js", "/assets/epic-video-D8ex9vao.js", "/assets/revalidation-ws-DK5QOPlL.js", "/assets/mdx-C9dqA6IZ.js", "/assets/progress-D6SP0Gec.js", "/assets/misc-DIdEn_jt.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DUNtf72c.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/loading-DW_I206H.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/progress-bar-CBDBzRQ2.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-03erOIGo.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/misc-DIdEn_jt.js", "/assets/components-DUNtf72c.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-DHoH74NH.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/index-CLNXC84j.js", "/assets/error-boundary-3zItlMUO.js", "/assets/nav-chevrons-B3SvZV8B.js", "/assets/revalidation-ws-DK5QOPlL.js", "/assets/mdx-C9dqA6IZ.js", "/assets/progress-D6SP0Gec.js", "/assets/set-playground-CMoUFgkO.js", "/assets/seo-pBpFCWsy.js", "/assets/misc-DIdEn_jt.js", "/assets/epic-video-D8ex9vao.js", "/assets/tooltip-BoVikCa-.js", "/assets/request-info-vBkaf3Rk.js", "/assets/components-DUNtf72c.js", "/assets/index-CV3nxGFp.js", "/assets/progress-bar-CBDBzRQ2.js", "/assets/pe-D5h19vSo.js", "/assets/index-DFqQCjCw.js", "/assets/index-DH1w3QmP.js", "/assets/index-BajUQsFT.js", "/assets/loading-DW_I206H.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-DJDjmdlu.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/preview-BEtmdi0E.js", "/assets/components-DUNtf72c.js", "/assets/misc-DIdEn_jt.js", "/assets/request-info-vBkaf3Rk.js", "/assets/button-39zQyNX6.js", "/assets/loading-DW_I206H.js", "/assets/index-DH1w3QmP.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js", "/assets/progress-bar-CBDBzRQ2.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-DE-jwnOP.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/tooltip-BoVikCa-.js", "/assets/index-DFqQCjCw.js", "/assets/misc-DIdEn_jt.js", "/assets/diff-BNCREJvf.js", "/assets/error-boundary-3zItlMUO.js", "/assets/loading-DW_I206H.js", "/assets/discord-CEOqKs_c.js", "/assets/components-DUNtf72c.js", "/assets/index-LjRZeU7x.js", "/assets/set-playground-CMoUFgkO.js", "/assets/tests-CiM4RPOf.js", "/assets/preview-BEtmdi0E.js", "/assets/index-CV3nxGFp.js", "/assets/accordion-DLg7gJkp.js", "/assets/mdx-C9dqA6IZ.js", "/assets/epic-video-D8ex9vao.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/progress-bar-CBDBzRQ2.js", "/assets/revalidation-ws-DK5QOPlL.js", "/assets/use-event-source-M87p8Tme.js", "/assets/button-39zQyNX6.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-C8wkLh9a.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/tests-CiM4RPOf.js", "/assets/components-DUNtf72c.js", "/assets/epic-video-D8ex9vao.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/misc-DIdEn_jt.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/loading-DW_I206H.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/accordion-DLg7gJkp.js", "/assets/index-DFqQCjCw.js", "/assets/index-CV3nxGFp.js", "/assets/use-event-source-M87p8Tme.js", "/assets/set-playground-CMoUFgkO.js", "/assets/progress-bar-CBDBzRQ2.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-DQg4F1NL.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/index-CLNXC84j.js", "/assets/epic-video-D8ex9vao.js", "/assets/loading-DW_I206H.js", "/assets/nav-chevrons-B3SvZV8B.js", "/assets/revalidation-ws-DK5QOPlL.js", "/assets/mdx-C9dqA6IZ.js", "/assets/progress-D6SP0Gec.js", "/assets/misc-DIdEn_jt.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DUNtf72c.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/progress-bar-CBDBzRQ2.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-rUzUjnEm.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/index-CLNXC84j.js", "/assets/epic-video-D8ex9vao.js", "/assets/loading-DW_I206H.js", "/assets/nav-chevrons-B3SvZV8B.js", "/assets/revalidation-ws-DK5QOPlL.js", "/assets/mdx-C9dqA6IZ.js", "/assets/misc-DIdEn_jt.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-D6SP0Gec.js", "/assets/components-DUNtf72c.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/progress-bar-CBDBzRQ2.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-mivnjq36.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/index-CLNXC84j.js", "/assets/epic-video-D8ex9vao.js", "/assets/error-boundary-3zItlMUO.js", "/assets/mdx-C9dqA6IZ.js", "/assets/misc-DIdEn_jt.js", "/assets/progress-D6SP0Gec.js", "/assets/components-DUNtf72c.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/loading-DW_I206H.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/progress-bar-CBDBzRQ2.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-CdNej0Z7.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/use-event-source-M87p8Tme.js", "/assets/button-39zQyNX6.js", "/assets/loading-DW_I206H.js", "/assets/product-CYOFfeJM.js", "/assets/workshop-config-C5sYl312.js", "/assets/request-info-vBkaf3Rk.js", "/assets/components-DUNtf72c.js", "/assets/misc-DIdEn_jt.js", "/assets/index-DH1w3QmP.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-CPzYlWkd.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/components-DUNtf72c.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-BJbMl6SJ.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/components-DUNtf72c.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DDqzbGM2.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/misc-DIdEn_jt.js", "/assets/tooltip-BoVikCa-.js", "/assets/progress-D6SP0Gec.js", "/assets/components-DUNtf72c.js", "/assets/pe-D5h19vSo.js"], "css": [] }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/version-CIF3cX3N.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/workshop-config-C5sYl312.js", "/assets/components-DUNtf72c.js"], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-B3oaU_KB.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/misc-DIdEn_jt.js", "/assets/diff-BNCREJvf.js", "/assets/nav-chevrons-B3SvZV8B.js", "/assets/components-DUNtf72c.js", "/assets/accordion-DLg7gJkp.js", "/assets/tooltip-BoVikCa-.js", "/assets/index-DFqQCjCw.js", "/assets/index-CV3nxGFp.js", "/assets/mdx-C9dqA6IZ.js", "/assets/epic-video-D8ex9vao.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/loading-DW_I206H.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js", "/assets/progress-bar-CBDBzRQ2.js", "/assets/revalidation-ws-DK5QOPlL.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-CC9zz4rl.js", "imports": ["/assets/index-C_B1-9rF.js", "/assets/button-39zQyNX6.js", "/assets/epic-video-D8ex9vao.js", "/assets/components-DUNtf72c.js", "/assets/misc-DIdEn_jt.js", "/assets/index-DH1w3QmP.js", "/assets/request-info-vBkaf3Rk.js", "/assets/tooltip-BoVikCa-.js", "/assets/pe-D5h19vSo.js", "/assets/index-BajUQsFT.js", "/assets/loading-DW_I206H.js", "/assets/user-CbbIYEs8.js", "/assets/workshop-config-C5sYl312.js"], "css": ["/assets/index-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-62ea49c4.js", "version": "62ea49c4" };
|
|
11040
|
+
const serverManifest = { "entry": { "module": "/assets/entry.client-CQusg5Iz.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-DGY0y7_0.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/pe-DXT2FOp1.js", "/assets/error-boundary-Beul7lrT.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/index-CB8bjE90.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BOQWfIQC.js", "/assets/presence-CrYBA3ta.js", "/assets/seo-pBpFCWsy.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-CjjFMNGC.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/error-boundary-Beul7lrT.js", "/assets/misc-BtjCSy-T.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/_layout": { "id": "routes/_app+/_layout", "parentId": "root", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-Muw3ERYT.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/pe-DXT2FOp1.js", "/assets/product-gqq_YQBW.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BHwOR8R1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/presence-CrYBA3ta.js", "/assets/progress-D-HsH4j3.js", "/assets/index-BOQWfIQC.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-Cc968svU.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-BS845Tjo.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-DILzAZN8.js", "imports": ["/assets/discord-BfP_Rny5.js", "/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/components-DrvY4pal.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-CwTidn3v.js", "imports": ["/assets/index-CGzylDPY.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-CqkGzsgV.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/progress-D-HsH4j3.js", "/assets/misc-BtjCSy-T.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-BNWGPi9m.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-BMa5nZcJ.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/error-boundary-Beul7lrT.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/progress-D-HsH4j3.js", "/assets/set-playground-DQzAhC0t.js", "/assets/seo-pBpFCWsy.js", "/assets/misc-BtjCSy-T.js", "/assets/epic-video-qHKPWPt1.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BOQWfIQC.js", "/assets/components-DrvY4pal.js", "/assets/index-BHwOR8R1.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/pe-DXT2FOp1.js", "/assets/index-BPegC-d3.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-BOqXK9hi.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/preview-C2y4Z0qO.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/button-BS845Tjo.js", "/assets/loading-C2wPVvQw.js", "/assets/progress-bar-CTPCfvDi.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-DbCT6N5p.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BPegC-d3.js", "/assets/misc-BtjCSy-T.js", "/assets/diff-DtvfyjPI.js", "/assets/error-boundary-Beul7lrT.js", "/assets/loading-C2wPVvQw.js", "/assets/discord-BfP_Rny5.js", "/assets/components-DrvY4pal.js", "/assets/index-CB8bjE90.js", "/assets/set-playground-DQzAhC0t.js", "/assets/tests-LWW8wCYZ.js", "/assets/preview-C2y4Z0qO.js", "/assets/index-BHwOR8R1.js", "/assets/accordion-C-sW--in.js", "/assets/mdx-CsS30JUo.js", "/assets/epic-video-qHKPWPt1.js", "/assets/index-BOQWfIQC.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-BS845Tjo.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-CDWRwwO-.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/tests-LWW8wCYZ.js", "/assets/components-DrvY4pal.js", "/assets/epic-video-qHKPWPt1.js", "/assets/index-BOQWfIQC.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/accordion-C-sW--in.js", "/assets/index-BPegC-d3.js", "/assets/index-BHwOR8R1.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/set-playground-DQzAhC0t.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-CdNhLhKg.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/loading-C2wPVvQw.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/progress-D-HsH4j3.js", "/assets/misc-BtjCSy-T.js", "/assets/seo-pBpFCWsy.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-DUKfL220.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/loading-C2wPVvQw.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/revalidation-ws-DYaJNyw1.js", "/assets/mdx-CsS30JUo.js", "/assets/misc-BtjCSy-T.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-D-HsH4j3.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/index": { "id": "routes/_app+/index", "parentId": "routes/_app+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-oED4uZLa.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/index-egcHQOpF.js", "/assets/epic-video-qHKPWPt1.js", "/assets/error-boundary-Beul7lrT.js", "/assets/mdx-CsS30JUo.js", "/assets/misc-BtjCSy-T.js", "/assets/progress-D-HsH4j3.js", "/assets/components-DrvY4pal.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/login": { "id": "routes/_app+/login", "parentId": "routes/_app+/_layout", "path": "login", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-DoU7gifi.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/use-event-source-AZJtQsFX.js", "/assets/button-BS845Tjo.js", "/assets/loading-C2wPVvQw.js", "/assets/product-gqq_YQBW.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/index-BOQWfIQC.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/_app+/preferences": { "id": "routes/_app+/preferences", "parentId": "routes/_app+/_layout", "path": "preferences", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/preferences-br0VSK51.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-BS845Tjo.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-lgEG2piy.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DV29dlKr.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/admin+/apps": { "id": "routes/admin+/apps", "parentId": "routes/admin+/_layout", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/index": { "id": "routes/admin+/index", "parentId": "routes/admin+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-cZQeGrqL.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/progress-D-HsH4j3.js", "/assets/components-DrvY4pal.js", "/assets/pe-DXT2FOp1.js"], "css": [] }, "routes/admin+/version": { "id": "routes/admin+/version", "parentId": "routes/admin+/_layout", "path": "version", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/version-D61Qvt0X.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/components-DrvY4pal.js"], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-D0e_PrB7.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/misc-BtjCSy-T.js", "/assets/diff-DtvfyjPI.js", "/assets/nav-chevrons-2hLTwAZb.js", "/assets/components-DrvY4pal.js", "/assets/accordion-C-sW--in.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/index-BPegC-d3.js", "/assets/index-BHwOR8R1.js", "/assets/mdx-CsS30JUo.js", "/assets/epic-video-qHKPWPt1.js", "/assets/index-BOQWfIQC.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js", "/assets/progress-bar-CTPCfvDi.js", "/assets/revalidation-ws-DYaJNyw1.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/exercises": { "id": "routes/exercises", "parentId": "root", "path": "exercises", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/exercises-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/launch-editor": { "id": "routes/launch-editor", "parentId": "root", "path": "launch-editor", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/launch-editor-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/login-sse": { "id": "routes/login-sse", "parentId": "root", "path": "login-sse", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/login-sse-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/og": { "id": "routes/og", "parentId": "root", "path": "og", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/og-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/onboarding": { "id": "routes/onboarding", "parentId": "root", "path": "onboarding", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/onboarding-Cu6eD7KS.js", "imports": ["/assets/index-CGzylDPY.js", "/assets/button-BS845Tjo.js", "/assets/epic-video-qHKPWPt1.js", "/assets/components-DrvY4pal.js", "/assets/misc-BtjCSy-T.js", "/assets/index-BOQWfIQC.js", "/assets/tooltip-Bp9KHnLy.js", "/assets/pe-DXT2FOp1.js", "/assets/loading-C2wPVvQw.js", "/assets/user-C0j04V55.js", "/assets/workshop-config-oL_FWDKq.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-93f34003.js", "version": "93f34003" };
|
|
10977
11041
|
const mode = "production";
|
|
10978
11042
|
const assetsBuildDirectory = "build/client";
|
|
10979
11043
|
const basename = "/";
|
|
@@ -11174,13 +11238,21 @@ const routes = {
|
|
|
11174
11238
|
caseSensitive: void 0,
|
|
11175
11239
|
module: route23
|
|
11176
11240
|
},
|
|
11241
|
+
"routes/_app+/preferences": {
|
|
11242
|
+
id: "routes/_app+/preferences",
|
|
11243
|
+
parentId: "routes/_app+/_layout",
|
|
11244
|
+
path: "preferences",
|
|
11245
|
+
index: void 0,
|
|
11246
|
+
caseSensitive: void 0,
|
|
11247
|
+
module: route24
|
|
11248
|
+
},
|
|
11177
11249
|
"routes/_app+/support": {
|
|
11178
11250
|
id: "routes/_app+/support",
|
|
11179
11251
|
parentId: "routes/_app+/_layout",
|
|
11180
11252
|
path: "support",
|
|
11181
11253
|
index: void 0,
|
|
11182
11254
|
caseSensitive: void 0,
|
|
11183
|
-
module:
|
|
11255
|
+
module: route25
|
|
11184
11256
|
},
|
|
11185
11257
|
"routes/admin+/_layout": {
|
|
11186
11258
|
id: "routes/admin+/_layout",
|
|
@@ -11188,7 +11260,7 @@ const routes = {
|
|
|
11188
11260
|
path: "admin",
|
|
11189
11261
|
index: void 0,
|
|
11190
11262
|
caseSensitive: void 0,
|
|
11191
|
-
module:
|
|
11263
|
+
module: route26
|
|
11192
11264
|
},
|
|
11193
11265
|
"routes/admin+/apps": {
|
|
11194
11266
|
id: "routes/admin+/apps",
|
|
@@ -11196,7 +11268,7 @@ const routes = {
|
|
|
11196
11268
|
path: "apps",
|
|
11197
11269
|
index: void 0,
|
|
11198
11270
|
caseSensitive: void 0,
|
|
11199
|
-
module:
|
|
11271
|
+
module: route27
|
|
11200
11272
|
},
|
|
11201
11273
|
"routes/admin+/cache": {
|
|
11202
11274
|
id: "routes/admin+/cache",
|
|
@@ -11204,7 +11276,7 @@ const routes = {
|
|
|
11204
11276
|
path: "cache",
|
|
11205
11277
|
index: void 0,
|
|
11206
11278
|
caseSensitive: void 0,
|
|
11207
|
-
module:
|
|
11279
|
+
module: route28
|
|
11208
11280
|
},
|
|
11209
11281
|
"routes/admin+/index": {
|
|
11210
11282
|
id: "routes/admin+/index",
|
|
@@ -11212,7 +11284,7 @@ const routes = {
|
|
|
11212
11284
|
path: void 0,
|
|
11213
11285
|
index: true,
|
|
11214
11286
|
caseSensitive: void 0,
|
|
11215
|
-
module:
|
|
11287
|
+
module: route29
|
|
11216
11288
|
},
|
|
11217
11289
|
"routes/admin+/version": {
|
|
11218
11290
|
id: "routes/admin+/version",
|
|
@@ -11220,7 +11292,7 @@ const routes = {
|
|
|
11220
11292
|
path: "version",
|
|
11221
11293
|
index: void 0,
|
|
11222
11294
|
caseSensitive: void 0,
|
|
11223
|
-
module:
|
|
11295
|
+
module: route30
|
|
11224
11296
|
},
|
|
11225
11297
|
"routes/apps": {
|
|
11226
11298
|
id: "routes/apps",
|
|
@@ -11228,7 +11300,7 @@ const routes = {
|
|
|
11228
11300
|
path: "apps",
|
|
11229
11301
|
index: void 0,
|
|
11230
11302
|
caseSensitive: void 0,
|
|
11231
|
-
module:
|
|
11303
|
+
module: route31
|
|
11232
11304
|
},
|
|
11233
11305
|
"routes/diff": {
|
|
11234
11306
|
id: "routes/diff",
|
|
@@ -11236,7 +11308,7 @@ const routes = {
|
|
|
11236
11308
|
path: "diff",
|
|
11237
11309
|
index: void 0,
|
|
11238
11310
|
caseSensitive: void 0,
|
|
11239
|
-
module:
|
|
11311
|
+
module: route32
|
|
11240
11312
|
},
|
|
11241
11313
|
"routes/exercises": {
|
|
11242
11314
|
id: "routes/exercises",
|
|
@@ -11244,7 +11316,7 @@ const routes = {
|
|
|
11244
11316
|
path: "exercises",
|
|
11245
11317
|
index: void 0,
|
|
11246
11318
|
caseSensitive: void 0,
|
|
11247
|
-
module:
|
|
11319
|
+
module: route33
|
|
11248
11320
|
},
|
|
11249
11321
|
"routes/launch-editor": {
|
|
11250
11322
|
id: "routes/launch-editor",
|
|
@@ -11252,7 +11324,7 @@ const routes = {
|
|
|
11252
11324
|
path: "launch-editor",
|
|
11253
11325
|
index: void 0,
|
|
11254
11326
|
caseSensitive: void 0,
|
|
11255
|
-
module:
|
|
11327
|
+
module: route34
|
|
11256
11328
|
},
|
|
11257
11329
|
"routes/login-sse": {
|
|
11258
11330
|
id: "routes/login-sse",
|
|
@@ -11260,7 +11332,7 @@ const routes = {
|
|
|
11260
11332
|
path: "login-sse",
|
|
11261
11333
|
index: void 0,
|
|
11262
11334
|
caseSensitive: void 0,
|
|
11263
|
-
module:
|
|
11335
|
+
module: route35
|
|
11264
11336
|
},
|
|
11265
11337
|
"routes/og": {
|
|
11266
11338
|
id: "routes/og",
|
|
@@ -11268,7 +11340,7 @@ const routes = {
|
|
|
11268
11340
|
path: "og",
|
|
11269
11341
|
index: void 0,
|
|
11270
11342
|
caseSensitive: void 0,
|
|
11271
|
-
module:
|
|
11343
|
+
module: route36
|
|
11272
11344
|
},
|
|
11273
11345
|
"routes/onboarding": {
|
|
11274
11346
|
id: "routes/onboarding",
|
|
@@ -11276,7 +11348,7 @@ const routes = {
|
|
|
11276
11348
|
path: "onboarding",
|
|
11277
11349
|
index: void 0,
|
|
11278
11350
|
caseSensitive: void 0,
|
|
11279
|
-
module:
|
|
11351
|
+
module: route37
|
|
11280
11352
|
},
|
|
11281
11353
|
"routes/processes": {
|
|
11282
11354
|
id: "routes/processes",
|
|
@@ -11284,7 +11356,7 @@ const routes = {
|
|
|
11284
11356
|
path: "processes",
|
|
11285
11357
|
index: void 0,
|
|
11286
11358
|
caseSensitive: void 0,
|
|
11287
|
-
module:
|
|
11359
|
+
module: route38
|
|
11288
11360
|
},
|
|
11289
11361
|
"routes/progress": {
|
|
11290
11362
|
id: "routes/progress",
|
|
@@ -11292,7 +11364,7 @@ const routes = {
|
|
|
11292
11364
|
path: "progress",
|
|
11293
11365
|
index: void 0,
|
|
11294
11366
|
caseSensitive: void 0,
|
|
11295
|
-
module:
|
|
11367
|
+
module: route39
|
|
11296
11368
|
},
|
|
11297
11369
|
"routes/robots[.]txt": {
|
|
11298
11370
|
id: "routes/robots[.]txt",
|
|
@@ -11300,7 +11372,7 @@ const routes = {
|
|
|
11300
11372
|
path: "robots.txt",
|
|
11301
11373
|
index: void 0,
|
|
11302
11374
|
caseSensitive: void 0,
|
|
11303
|
-
module:
|
|
11375
|
+
module: route40
|
|
11304
11376
|
},
|
|
11305
11377
|
"routes/set-playground": {
|
|
11306
11378
|
id: "routes/set-playground",
|
|
@@ -11308,7 +11380,7 @@ const routes = {
|
|
|
11308
11380
|
path: "set-playground",
|
|
11309
11381
|
index: void 0,
|
|
11310
11382
|
caseSensitive: void 0,
|
|
11311
|
-
module:
|
|
11383
|
+
module: route41
|
|
11312
11384
|
},
|
|
11313
11385
|
"routes/sitemap[.]xml": {
|
|
11314
11386
|
id: "routes/sitemap[.]xml",
|
|
@@ -11316,7 +11388,7 @@ const routes = {
|
|
|
11316
11388
|
path: "sitemap.xml",
|
|
11317
11389
|
index: void 0,
|
|
11318
11390
|
caseSensitive: void 0,
|
|
11319
|
-
module:
|
|
11391
|
+
module: route42
|
|
11320
11392
|
},
|
|
11321
11393
|
"routes/start": {
|
|
11322
11394
|
id: "routes/start",
|
|
@@ -11324,7 +11396,7 @@ const routes = {
|
|
|
11324
11396
|
path: "start",
|
|
11325
11397
|
index: void 0,
|
|
11326
11398
|
caseSensitive: void 0,
|
|
11327
|
-
module:
|
|
11399
|
+
module: route43
|
|
11328
11400
|
},
|
|
11329
11401
|
"routes/test": {
|
|
11330
11402
|
id: "routes/test",
|
|
@@ -11332,7 +11404,7 @@ const routes = {
|
|
|
11332
11404
|
path: "test",
|
|
11333
11405
|
index: void 0,
|
|
11334
11406
|
caseSensitive: void 0,
|
|
11335
|
-
module:
|
|
11407
|
+
module: route44
|
|
11336
11408
|
},
|
|
11337
11409
|
"routes/theme/index": {
|
|
11338
11410
|
id: "routes/theme/index",
|
|
@@ -11340,7 +11412,7 @@ const routes = {
|
|
|
11340
11412
|
path: "theme",
|
|
11341
11413
|
index: void 0,
|
|
11342
11414
|
caseSensitive: void 0,
|
|
11343
|
-
module:
|
|
11415
|
+
module: route45
|
|
11344
11416
|
},
|
|
11345
11417
|
"routes/video-player/index": {
|
|
11346
11418
|
id: "routes/video-player/index",
|
|
@@ -11348,7 +11420,7 @@ const routes = {
|
|
|
11348
11420
|
path: "video-player",
|
|
11349
11421
|
index: void 0,
|
|
11350
11422
|
caseSensitive: void 0,
|
|
11351
|
-
module:
|
|
11423
|
+
module: route46
|
|
11352
11424
|
}
|
|
11353
11425
|
};
|
|
11354
11426
|
export {
|