@epic-web/workshop-app 4.25.3 → 4.26.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.
Files changed (88) hide show
  1. package/build/client/assets/{_-BtebIQXw.js → _-C82olNpL.js} +2 -2
  2. package/build/client/assets/{_-BtebIQXw.js.map → _-C82olNpL.js.map} +1 -1
  3. package/build/client/assets/{_exerciseNumber-DPHRlskl.js → _exerciseNumber-B_1LTOMl.js} +2 -2
  4. package/build/client/assets/{_exerciseNumber-DPHRlskl.js.map → _exerciseNumber-B_1LTOMl.js.map} +1 -1
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-D1CLZqv3.js → _exerciseNumber_._stepNumber-qCtEMlS2.js} +2 -2
  6. package/build/client/assets/{_exerciseNumber_._stepNumber-D1CLZqv3.js.map → _exerciseNumber_._stepNumber-qCtEMlS2.js.map} +1 -1
  7. package/build/client/assets/{_exerciseNumber_.finished-BtU0LxSx.js → _exerciseNumber_.finished-DHl9ou1s.js} +2 -2
  8. package/build/client/assets/{_exerciseNumber_.finished-BtU0LxSx.js.map → _exerciseNumber_.finished-DHl9ou1s.js.map} +1 -1
  9. package/build/client/assets/{_layout-B5bNFTFS.js → _layout-CksyTzND.js} +2 -2
  10. package/build/client/assets/{_layout-B5bNFTFS.js.map → _layout-CksyTzND.js.map} +1 -1
  11. package/build/client/assets/{_layout-mCB0NTJw.js → _layout-DATuycts.js} +2 -2
  12. package/build/client/assets/{_layout-mCB0NTJw.js.map → _layout-DATuycts.js.map} +1 -1
  13. package/build/client/assets/{_layout-D9AYVDws.js → _layout-TpI4uc69.js} +2 -2
  14. package/build/client/assets/{_layout-D9AYVDws.js.map → _layout-TpI4uc69.js.map} +1 -1
  15. package/build/client/assets/{accordion-BTylpyuo.js → accordion-CKwXYK9L.js} +2 -2
  16. package/build/client/assets/{accordion-BTylpyuo.js.map → accordion-CKwXYK9L.js.map} +1 -1
  17. package/build/client/assets/{account-Boc55rcF.js → account-DWhUP9x5.js} +2 -2
  18. package/build/client/assets/{account-Boc55rcF.js.map → account-DWhUP9x5.js.map} +1 -1
  19. package/build/client/assets/app-C-oFaj2l.js +2 -0
  20. package/build/client/assets/{app-D21SF96g.js.map → app-C-oFaj2l.js.map} +1 -1
  21. package/build/client/assets/{button-D3GGLffs.js → button-CQ6cnotS.js} +2 -2
  22. package/build/client/assets/{button-D3GGLffs.js.map → button-CQ6cnotS.js.map} +1 -1
  23. package/build/client/assets/{diff-Dlhnb9s0.js → diff-B5EME8RQ.js} +2 -2
  24. package/build/client/assets/{diff-Dlhnb9s0.js.map → diff-B5EME8RQ.js.map} +1 -1
  25. package/build/client/assets/{diff-_Yp5qaGd.js → diff-CKxYA_sC.js} +2 -2
  26. package/build/client/assets/{diff-_Yp5qaGd.js.map → diff-CKxYA_sC.js.map} +1 -1
  27. package/build/client/assets/{discord-ClGJ4reK.js → discord-OBIm1mMI.js} +2 -2
  28. package/build/client/assets/{discord-ClGJ4reK.js.map → discord-OBIm1mMI.js.map} +1 -1
  29. package/build/client/assets/discord-pvbkb0tl.js +2 -0
  30. package/build/client/assets/discord-pvbkb0tl.js.map +1 -0
  31. package/build/client/assets/{epic-video-BDMU5eQx.js → epic-video-CzGRLoYH.js} +2 -2
  32. package/build/client/assets/{epic-video-BDMU5eQx.js.map → epic-video-CzGRLoYH.js.map} +1 -1
  33. package/build/client/assets/{error-boundary-w-YmME9H.js → error-boundary-CqgVAFiu.js} +2 -2
  34. package/build/client/assets/{error-boundary-w-YmME9H.js.map → error-boundary-CqgVAFiu.js.map} +1 -1
  35. package/build/client/assets/{finished-DpVgSUHh.js → finished-Bb9g_iPq.js} +2 -2
  36. package/build/client/assets/{finished-DpVgSUHh.js.map → finished-Bb9g_iPq.js.map} +1 -1
  37. package/build/client/assets/{index-CrCyg109.js → index-9dWszLxO.js} +2 -2
  38. package/build/client/assets/{index-CrCyg109.js.map → index-9dWszLxO.js.map} +1 -1
  39. package/build/client/assets/{index-4mfbmNml.js → index-C-VazAW9.js} +2 -2
  40. package/build/client/assets/{index-4mfbmNml.js.map → index-C-VazAW9.js.map} +1 -1
  41. package/build/client/assets/{index-lG6dAghh.js → index-DlJAkutV.js} +2 -2
  42. package/build/client/assets/{index-lG6dAghh.js.map → index-DlJAkutV.js.map} +1 -1
  43. package/build/client/assets/{index-k-n20C3u.js → index-DoUR7StN.js} +2 -2
  44. package/build/client/assets/index-DoUR7StN.js.map +1 -0
  45. package/build/client/assets/{index-Cr2THg3v.js → index-j_VpxCZh.js} +2 -2
  46. package/build/client/assets/{index-Cr2THg3v.js.map → index-j_VpxCZh.js.map} +1 -1
  47. package/build/client/assets/{loading-CYX0lUnA.js → loading-CF7oQHQf.js} +2 -2
  48. package/build/client/assets/{loading-CYX0lUnA.js.map → loading-CF7oQHQf.js.map} +1 -1
  49. package/build/client/assets/{login-BfJnysK5.js → login-L4mUv67t.js} +2 -2
  50. package/build/client/assets/login-L4mUv67t.js.map +1 -0
  51. package/build/client/assets/{manifest-5f7c0456.js → manifest-577fdaea.js} +1 -1
  52. package/build/client/assets/{mdx-DGrucPXJ.js → mdx-CGcvotZI.js} +2 -2
  53. package/build/client/assets/{mdx-DGrucPXJ.js.map → mdx-CGcvotZI.js.map} +1 -1
  54. package/build/client/assets/{misc-BvHlNnqL.js → misc-Txs7O6JX.js} +2 -2
  55. package/build/client/assets/{misc-BvHlNnqL.js.map → misc-Txs7O6JX.js.map} +1 -1
  56. package/build/client/assets/{nav-chevrons-DNlM2M58.js → nav-chevrons-Cbc1bd_j.js} +2 -2
  57. package/build/client/assets/{nav-chevrons-DNlM2M58.js.map → nav-chevrons-Cbc1bd_j.js.map} +1 -1
  58. package/build/client/assets/{onboarding-C9YKrBRk.js → onboarding-Ci4QCevA.js} +2 -2
  59. package/build/client/assets/{onboarding-C9YKrBRk.js.map → onboarding-Ci4QCevA.js.map} +1 -1
  60. package/build/client/assets/{preview-cQAZ1sWw.js → preview-WJ-QYhx8.js} +2 -2
  61. package/build/client/assets/{preview-cQAZ1sWw.js.map → preview-WJ-QYhx8.js.map} +1 -1
  62. package/build/client/assets/{product-BUD74Itn.js → product-f8Gd2MQ6.js} +2 -2
  63. package/build/client/assets/{product-BUD74Itn.js.map → product-f8Gd2MQ6.js.map} +1 -1
  64. package/build/client/assets/{progress-Dn5gs-vs.js → progress-C7kc6YXZ.js} +2 -2
  65. package/build/client/assets/{progress-Dn5gs-vs.js.map → progress-C7kc6YXZ.js.map} +1 -1
  66. package/build/client/assets/{progress-bar-C7Wl3UWv.js → progress-bar-bUuKn1Q8.js} +2 -2
  67. package/build/client/assets/{progress-bar-C7Wl3UWv.js.map → progress-bar-bUuKn1Q8.js.map} +1 -1
  68. package/build/client/assets/{root-BO8-KppB.js → root-CbC_P7jJ.js} +2 -2
  69. package/build/client/assets/{root-BO8-KppB.js.map → root-CbC_P7jJ.js.map} +1 -1
  70. package/build/client/assets/{set-playground-CCm119Nm.js → set-playground-Cr0qL9N9.js} +2 -2
  71. package/build/client/assets/{set-playground-CCm119Nm.js.map → set-playground-Cr0qL9N9.js.map} +1 -1
  72. package/build/client/assets/test-CxCjtGOl.js +2 -0
  73. package/build/client/assets/{test-CPv5Bgs_.js.map → test-CxCjtGOl.js.map} +1 -1
  74. package/build/client/assets/{tests-DCK6NqSg.js → tests-DWqwnWIn.js} +2 -2
  75. package/build/client/assets/tests-DWqwnWIn.js.map +1 -0
  76. package/build/client/assets/{tooltip-fa2eC7LQ.js → tooltip-DTFU8ajx.js} +2 -2
  77. package/build/client/assets/{tooltip-fa2eC7LQ.js.map → tooltip-DTFU8ajx.js.map} +1 -1
  78. package/build/client/assets/user-D6tTg1yS.js.map +1 -1
  79. package/build/server/index.js +92 -5
  80. package/build/server/index.js.map +1 -1
  81. package/package.json +3 -3
  82. package/build/client/assets/app-D21SF96g.js +0 -2
  83. package/build/client/assets/discord-BZFQqiA1.js +0 -2
  84. package/build/client/assets/discord-BZFQqiA1.js.map +0 -1
  85. package/build/client/assets/index-k-n20C3u.js.map +0 -1
  86. package/build/client/assets/login-BfJnysK5.js.map +0 -1
  87. package/build/client/assets/test-CPv5Bgs_.js +0 -2
  88. package/build/client/assets/tests-DCK6NqSg.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"user-D6tTg1yS.js","sources":["../../../app/components/user.tsx"],"sourcesContent":["import { useRouteLoaderData } from '@remix-run/react'\nimport { type loader as rootLoader } from '#app/root.tsx'\n\nexport function useOptionalUser() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.user\n}\n\nexport function useUser() {\n\tconst user = useOptionalUser()\n\tif (!user) {\n\t\tthrow new Error(\n\t\t\t'useUser requires a user. If the user is optional, use useOptionalUser instead.',\n\t\t)\n\t}\n\treturn user\n}\n\nexport function useOptionalDiscordMember() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.discordMember\n}\n\nexport function useDiscordMember() {\n\tconst discordMember = useOptionalDiscordMember()\n\tif (!discordMember) {\n\t\tthrow new Error(\n\t\t\t'useDiscordMember requires a discordMember. If the discordMember is optional, use useOptionalDiscordMember instead.',\n\t\t)\n\t}\n\treturn discordMember\n}\n"],"names":["useOptionalUser","data","useRouteLoaderData","useUser","user","useOptionalDiscordMember"],"mappings":"6CAGO,SAASA,GAAkB,CAC3B,MAAAC,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,IACd,CAEO,SAASE,GAAU,CACzB,MAAMC,EAAOJ,IACb,GAAI,CAACI,EACJ,MAAM,IAAI,MACT,gFAAA,EAGK,OAAAA,CACR,CAEO,SAASC,GAA2B,CACpC,MAAAJ,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,aACd"}
1
+ {"version":3,"file":"user-D6tTg1yS.js","sources":["../../../app/components/user.tsx"],"sourcesContent":["import { useRouteLoaderData } from '@remix-run/react'\nimport { type loader as rootLoader } from '#app/root.tsx'\n\nexport function useOptionalUser() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.user\n}\n\nexport function useUser() {\n\tconst user = useOptionalUser()\n\tif (!user) {\n\t\tthrow new Error(\n\t\t\t'useUser requires a user. If the user is optional, use useOptionalUser instead.',\n\t\t)\n\t}\n\treturn user\n}\n\nexport function useOptionalDiscordMember() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.discordMember\n}\n\nexport function useDiscordMember() {\n\tconst discordMember = useOptionalDiscordMember()\n\tif (!discordMember) {\n\t\tthrow new Error(\n\t\t\t'useDiscordMember requires a discordMember. If the discordMember is optional, use useOptionalDiscordMember instead.',\n\t\t)\n\t}\n\treturn discordMember\n}\n\nexport function useUserHasAccess() {\n\tconst data = useRouteLoaderData<typeof rootLoader>('root')\n\treturn data?.userHasAccess ?? false\n}\n"],"names":["useOptionalUser","data","useRouteLoaderData","useUser","user","useOptionalDiscordMember"],"mappings":"6CAGO,SAASA,GAAkB,CAC3B,MAAAC,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,IACd,CAEO,SAASE,GAAU,CACzB,MAAMC,EAAOJ,IACb,GAAI,CAACI,EACJ,MAAM,IAAI,MACT,gFAAA,EAGK,OAAAA,CACR,CAEO,SAASC,GAA2B,CACpC,MAAAJ,EAAOC,EAAsC,MAAM,EACzD,OAAOD,GAAA,YAAAA,EAAM,aACd"}
@@ -57,6 +57,7 @@ import { clientHint as clientHint$1 } from "@epic-web/client-hints/time-zone";
57
57
  import { safeRedirect } from "remix-utils/safe-redirect";
58
58
  import { ServerOnly } from "remix-utils/server-only";
59
59
  import * as cookie from "cookie";
60
+ import cookie__default from "cookie";
60
61
  import { createId } from "@paralleldrive/cuid2";
61
62
  import { usePartySocket } from "partysocket/react";
62
63
  import { motion, useAnimationControls } from "framer-motion";
@@ -3029,13 +3030,12 @@ const Heading = React.forwardRef(function Heading2({ id, children, as: asProp, c
3029
3030
  }
3030
3031
  );
3031
3032
  });
3032
- function getErrorMessage(error) {
3033
+ function getErrorMessage(error, defaultMessage = "Unknown Error") {
3033
3034
  if (typeof error === "string") return error;
3034
3035
  if (error && typeof error === "object" && "message" in error && typeof error.message === "string") {
3035
3036
  return error.message;
3036
3037
  }
3037
- console.error("Unable to get error message for error", error);
3038
- return "Unknown Error";
3038
+ return defaultMessage;
3039
3039
  }
3040
3040
  function formatColors() {
3041
3041
  const colors2 = [];
@@ -3777,6 +3777,50 @@ async function getWorkshopData(slug, {
3777
3777
  }
3778
3778
  });
3779
3779
  }
3780
+ async function userHasAccessToWorkshop({
3781
+ timings,
3782
+ request,
3783
+ forceFresh
3784
+ }) {
3785
+ if (ENV.EPICSHOP_DEPLOYED) {
3786
+ const cookieHeader = request.headers.get("Cookie");
3787
+ if (!cookieHeader) return false;
3788
+ const cookies = cookie__default.parse(cookieHeader);
3789
+ return cookies.skill === "1";
3790
+ }
3791
+ const authInfo = await getAuthInfo();
3792
+ if (!authInfo) return false;
3793
+ const config = getWorkshopConfig();
3794
+ const {
3795
+ product: { host, slug }
3796
+ } = config;
3797
+ if (!slug) return true;
3798
+ return cachified({
3799
+ key: `user-has-access-to-workshop:${host}:${slug}`,
3800
+ cache: fsCache,
3801
+ request,
3802
+ forceFresh,
3803
+ timings,
3804
+ ttl: 1e3 * 5,
3805
+ checkValue: z$1.boolean(),
3806
+ async getFreshValue(context) {
3807
+ const response = await fetch(
3808
+ `https://${host}/api/workshops/${encodeURIComponent(slug)}/access`,
3809
+ {
3810
+ headers: {
3811
+ authorization: `Bearer ${authInfo.tokenSet.access_token}`
3812
+ }
3813
+ }
3814
+ ).catch((e) => new Response(getErrorMessage(e), { status: 500 }));
3815
+ const hasAccess = response.ok ? await response.json() === true : false;
3816
+ if (hasAccess) {
3817
+ context.metadata.ttl = 1e3 * 60 * 60 * 24 * 30;
3818
+ context.metadata.swr = 1e3 * 60 * 60 * 24 * 30;
3819
+ }
3820
+ return hasAccess;
3821
+ }
3822
+ });
3823
+ }
3780
3824
  const PresenceContext = createContext(null);
3781
3825
  function usePresencePreferences() {
3782
3826
  var _a2;
@@ -4026,6 +4070,7 @@ async function loader$y({ request }) {
4026
4070
  const discordMember = await getDiscordMember();
4027
4071
  const theme = getTheme(request);
4028
4072
  const user = await getUserInfo();
4073
+ const userHasAccess = await userHasAccessToWorkshop({ request, timings });
4029
4074
  const apps = await getApps({ request, timings });
4030
4075
  const presentUsers = await getPresentUsers(user, { request, timings });
4031
4076
  return json$1(
@@ -4052,6 +4097,7 @@ async function loader$y({ request }) {
4052
4097
  preferences,
4053
4098
  discordMember,
4054
4099
  user,
4100
+ userHasAccess,
4055
4101
  toast: toast2,
4056
4102
  confettiId,
4057
4103
  presence: {
@@ -6460,6 +6506,9 @@ const route7 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
6460
6506
  async function loader$p({ request, params }) {
6461
6507
  var _a2;
6462
6508
  const timings = makeTimings("app_test_loader");
6509
+ const userHasAccess = await userHasAccessToWorkshop({
6510
+ request
6511
+ });
6463
6512
  const { testName } = params;
6464
6513
  invariantResponse(testName, "Test name is required");
6465
6514
  const { fileApp, app } = await resolveApps({ request, params, timings });
@@ -6532,7 +6581,7 @@ import(${JSON.stringify(testScriptPath)}).then(
6532
6581
  )
6533
6582
  `
6534
6583
  );
6535
- const testScriptTag = `<script type="module">${testScriptSrc}<\/script>`;
6584
+ const testScriptTag = userHasAccess ? `<script type="module">${testScriptSrc}<\/script>` : `<h1>Purchase Required</h1><p>You must purchase the workshop to run the tests</p>`;
6536
6585
  const htmlFile = path.join(app.fullPath, "index.html");
6537
6586
  const hasHtml = await fsExtra.pathExists(htmlFile);
6538
6587
  if (hasHtml) {
@@ -11348,6 +11397,25 @@ async function action$3({ request }) {
11348
11397
  var _a2;
11349
11398
  ensureUndeployed();
11350
11399
  const formData = await request.formData();
11400
+ const userHasAccess = await userHasAccessToWorkshop({
11401
+ request
11402
+ });
11403
+ if (!userHasAccess) {
11404
+ return jsonWithPE(
11405
+ formData,
11406
+ {
11407
+ success: false,
11408
+ error: "You do not have access to this workshop. Purchase the workshop to be able to run the tests."
11409
+ },
11410
+ {
11411
+ status: 403,
11412
+ headers: await createToastHeaders({
11413
+ title: "Purchase required",
11414
+ description: "You do not have access to this workshop. Purchase the workshop to be able to run the tests."
11415
+ })
11416
+ }
11417
+ );
11418
+ }
11351
11419
  const result = testActionSchema.safeParse({
11352
11420
  intent: formData.get("intent"),
11353
11421
  name: formData.get("name")
@@ -11662,6 +11730,10 @@ function TestUI({
11662
11730
  }
11663
11731
  async function loader$i({ request, params }) {
11664
11732
  const timings = makeTimings("exerciseStepTypeLoader");
11733
+ const userHasAccess = await userHasAccessToWorkshop({
11734
+ request,
11735
+ timings
11736
+ });
11665
11737
  const searchParams = new URL(request.url).searchParams;
11666
11738
  const cacheOptions = { request, timings };
11667
11739
  const exerciseStepApp = await requireExerciseApp(params, cacheOptions);
@@ -11723,6 +11795,21 @@ async function loader$i({ request, params }) {
11723
11795
  diffCode: null
11724
11796
  };
11725
11797
  }
11798
+ if (!userHasAccess) {
11799
+ return {
11800
+ app1: app1 == null ? void 0 : app1.name,
11801
+ app2: app2 == null ? void 0 : app2.name,
11802
+ diffCode: await compileMarkdownString(
11803
+ `
11804
+ <div className="flex flex-col items-center justify-center p-4">
11805
+ <p className="text-2xl font-bold">Purchase Required</p>
11806
+ <p>You must purchase the workshop to view the diff.</p>
11807
+ </div>
11808
+ `
11809
+ // TODO: add a video demonstrating the diff feature
11810
+ )
11811
+ };
11812
+ }
11726
11813
  const diffCode = await getDiffCode(app1, app2, {
11727
11814
  ...cacheOptions,
11728
11815
  forceFresh: searchParams.get("forceFresh") === "diff"
@@ -13547,7 +13634,7 @@ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
13547
13634
  __proto__: null,
13548
13635
  loader
13549
13636
  }, Symbol.toStringTag, { value: "Module" }));
13550
- const serverManifest = { "entry": { "module": "/assets/entry.client-3M2p-8I3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.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-BO8-KppB.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/error-boundary-w-YmME9H.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/index-B-hHvmeV.js", "/assets/index-lG6dAghh.js", "/assets/presence-Cr--lRCr.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/_-BtebIQXw.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/error-boundary-w-YmME9H.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-B5bNFTFS.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/workshop-config-CL4F08kr.js", "/assets/product-BUD74Itn.js", "/assets/index-Cr2THg3v.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.js", "/assets/progress-Dn5gs-vs.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-Boc55rcF.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/button-D3GGLffs.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.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+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-BZFQqiA1.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/user-D6tTg1yS.js", "/assets/discord-ClGJ4reK.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-BUs3av-e.js", "imports": ["/assets/index-1cKOJFpX.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-DPHRlskl.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BDMU5eQx.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/index-Dx5GmdYq.js", "/assets/mdx-DGrucPXJ.js", "/assets/progress-Dn5gs-vs.js", "/assets/seo-pBpFCWsy.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-D1CLZqv3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.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-D9AYVDws.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BDMU5eQx.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/index-Cr2THg3v.js", "/assets/index-CrCyg109.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-w-YmME9H.js", "/assets/nav-chevrons-DNlM2M58.js", "/assets/mdx-DGrucPXJ.js", "/assets/progress-Dn5gs-vs.js", "/assets/set-playground-CCm119Nm.js", "/assets/seo-pBpFCWsy.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-D21SF96g.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/button-D3GGLffs.js", "/assets/loading-CYX0lUnA.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/preview-cQAZ1sWw.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-k-n20C3u.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/index-Cr2THg3v.js", "/assets/index-CrCyg109.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BDMU5eQx.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/accordion-BTylpyuo.js", "/assets/mdx-DGrucPXJ.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-CCm119Nm.js", "/assets/button-D3GGLffs.js", "/assets/diff-Dlhnb9s0.js", "/assets/error-boundary-w-YmME9H.js", "/assets/discord-ClGJ4reK.js", "/assets/index-B-hHvmeV.js", "/assets/tests-DCK6NqSg.js", "/assets/preview-cQAZ1sWw.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-CPv5Bgs_.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/index-Cr2THg3v.js", "/assets/index-CrCyg109.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/accordion-BTylpyuo.js", "/assets/index-lG6dAghh.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-CCm119Nm.js", "/assets/tests-DCK6NqSg.js"], "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-BtU0LxSx.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BDMU5eQx.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-DNlM2M58.js", "/assets/mdx-DGrucPXJ.js", "/assets/progress-Dn5gs-vs.js", "/assets/seo-pBpFCWsy.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-DpVgSUHh.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BDMU5eQx.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-DNlM2M58.js", "/assets/mdx-DGrucPXJ.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-Dn5gs-vs.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-4mfbmNml.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BDMU5eQx.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-w-YmME9H.js", "/assets/mdx-DGrucPXJ.js", "/assets/progress-Dn5gs-vs.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-BfJnysK5.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/workshop-config-CL4F08kr.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/button-D3GGLffs.js", "/assets/loading-CYX0lUnA.js", "/assets/product-BUD74Itn.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-hcqGIpir.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-mCB0NTJw.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/pe-CUZaIcdt.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/progress-Dn5gs-vs.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/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-_Yp5qaGd.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/index-Cr2THg3v.js", "/assets/index-CrCyg109.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-BDMU5eQx.js", "/assets/progress-bar-C7Wl3UWv.js", "/assets/accordion-BTylpyuo.js", "/assets/mdx-DGrucPXJ.js", "/assets/diff-Dlhnb9s0.js", "/assets/nav-chevrons-DNlM2M58.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/discord.callback": { "id": "routes/discord.callback", "parentId": "root", "path": "discord/callback", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord.callback-l0sNRNKZ.js", "imports": [], "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-C9YKrBRk.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-BvHlNnqL.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-fa2eC7LQ.js", "/assets/pe-CUZaIcdt.js", "/assets/index-lG6dAghh.js", "/assets/loading-CYX0lUnA.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/button-D3GGLffs.js", "/assets/epic-video-BDMU5eQx.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/update-mdx-cache": { "id": "routes/update-mdx-cache", "parentId": "root", "path": "update-mdx-cache", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/update-mdx-cache-l0sNRNKZ.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-5f7c0456.js", "version": "5f7c0456" };
13637
+ const serverManifest = { "entry": { "module": "/assets/entry.client-3M2p-8I3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.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-CbC_P7jJ.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-B-hHvmeV.js", "/assets/index-DlJAkutV.js", "/assets/presence-Cr--lRCr.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/_-C82olNpL.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/error-boundary-CqgVAFiu.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-CksyTzND.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/workshop-config-CL4F08kr.js", "/assets/product-f8Gd2MQ6.js", "/assets/index-j_VpxCZh.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.js", "/assets/progress-C7kc6YXZ.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-DWhUP9x5.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/button-CQ6cnotS.js", "/assets/tooltip-DTFU8ajx.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.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+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-pvbkb0tl.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/user-D6tTg1yS.js", "/assets/discord-OBIm1mMI.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-BUs3av-e.js", "imports": ["/assets/index-1cKOJFpX.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-B_1LTOMl.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.js", "/assets/seo-pBpFCWsy.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-qCtEMlS2.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.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-TpI4uc69.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.js", "/assets/set-playground-Cr0qL9N9.js", "/assets/seo-pBpFCWsy.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-C-oFaj2l.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/button-CQ6cnotS.js", "/assets/loading-CF7oQHQf.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/preview-WJ-QYhx8.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-DoUR7StN.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/mdx-CGcvotZI.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cr0qL9N9.js", "/assets/button-CQ6cnotS.js", "/assets/diff-B5EME8RQ.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/discord-OBIm1mMI.js", "/assets/index-B-hHvmeV.js", "/assets/tests-DWqwnWIn.js", "/assets/preview-WJ-QYhx8.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-CxCjtGOl.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/index-DlJAkutV.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-Cr0qL9N9.js", "/assets/tests-DWqwnWIn.js"], "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-DHl9ou1s.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.js", "/assets/seo-pBpFCWsy.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-Bb9g_iPq.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-Cbc1bd_j.js", "/assets/mdx-CGcvotZI.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-C7kc6YXZ.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-C-VazAW9.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-CqgVAFiu.js", "/assets/mdx-CGcvotZI.js", "/assets/progress-C7kc6YXZ.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-L4mUv67t.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/workshop-config-CL4F08kr.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/button-CQ6cnotS.js", "/assets/loading-CF7oQHQf.js", "/assets/product-f8Gd2MQ6.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-hcqGIpir.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DATuycts.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/pe-CUZaIcdt.js", "/assets/tooltip-DTFU8ajx.js", "/assets/progress-C7kc6YXZ.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/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-CKxYA_sC.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/tooltip-DTFU8ajx.js", "/assets/index-j_VpxCZh.js", "/assets/index-9dWszLxO.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/epic-video-CzGRLoYH.js", "/assets/progress-bar-bUuKn1Q8.js", "/assets/accordion-CKwXYK9L.js", "/assets/mdx-CGcvotZI.js", "/assets/diff-B5EME8RQ.js", "/assets/nav-chevrons-Cbc1bd_j.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/discord.callback": { "id": "routes/discord.callback", "parentId": "root", "path": "discord/callback", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord.callback-l0sNRNKZ.js", "imports": [], "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-Ci4QCevA.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/misc-Txs7O6JX.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-DTFU8ajx.js", "/assets/pe-CUZaIcdt.js", "/assets/index-DlJAkutV.js", "/assets/loading-CF7oQHQf.js", "/assets/user-D6tTg1yS.js", "/assets/workshop-config-CL4F08kr.js", "/assets/button-CQ6cnotS.js", "/assets/epic-video-CzGRLoYH.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-K6Dvbx-E.js", "imports": [], "css": [] }, "routes/update-mdx-cache": { "id": "routes/update-mdx-cache", "parentId": "root", "path": "update-mdx-cache", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/update-mdx-cache-l0sNRNKZ.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-DP2rzg_V.js", "imports": [], "css": [] } }, "url": "/assets/manifest-577fdaea.js", "version": "577fdaea" };
13551
13638
  const mode = "production";
13552
13639
  const assetsBuildDirectory = "build/client";
13553
13640
  const basename = "/";