@epic-web/workshop-app 4.11.0 → 4.12.1

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 (89) hide show
  1. package/build/client/assets/{_-Bd2gNcck.js → _-DYArYM0Z.js} +2 -2
  2. package/build/client/assets/{_-Bd2gNcck.js.map → _-DYArYM0Z.js.map} +1 -1
  3. package/build/client/assets/_exerciseNumber-DN5AsSNn.js +2 -0
  4. package/build/client/assets/{_exerciseNumber-Dkx8NKtT.js.map → _exerciseNumber-DN5AsSNn.js.map} +1 -1
  5. package/build/client/assets/{_exerciseNumber_._stepNumber-DCbWNWpZ.js → _exerciseNumber_._stepNumber-Ct5BCuA1.js} +2 -2
  6. package/build/client/assets/{_exerciseNumber_._stepNumber-DCbWNWpZ.js.map → _exerciseNumber_._stepNumber-Ct5BCuA1.js.map} +1 -1
  7. package/build/client/assets/_exerciseNumber_.finished-W3hcmvgu.js +2 -0
  8. package/build/client/assets/{_exerciseNumber_.finished-F2R0-zEk.js.map → _exerciseNumber_.finished-W3hcmvgu.js.map} +1 -1
  9. package/build/client/assets/{_layout-rEQoj43V.js → _layout-B9Y-8OU6.js} +2 -2
  10. package/build/client/assets/{_layout-rEQoj43V.js.map → _layout-B9Y-8OU6.js.map} +1 -1
  11. package/build/client/assets/{_layout-DHBLG7Ti.js → _layout-CLLcE4oc.js} +2 -2
  12. package/build/client/assets/{_layout-DHBLG7Ti.js.map → _layout-CLLcE4oc.js.map} +1 -1
  13. package/build/client/assets/{_layout-ChfAsQ5r.js → _layout-qyqfsEt3.js} +2 -2
  14. package/build/client/assets/{_layout-ChfAsQ5r.js.map → _layout-qyqfsEt3.js.map} +1 -1
  15. package/build/client/assets/{account-CnLkZd_O.js → account-DHsaqKNy.js} +2 -2
  16. package/build/client/assets/{account-CnLkZd_O.js.map → account-DHsaqKNy.js.map} +1 -1
  17. package/build/client/assets/{button-CyZl24U2.js → button-BA3iiLRs.js} +2 -2
  18. package/build/client/assets/{button-CyZl24U2.js.map → button-BA3iiLRs.js.map} +1 -1
  19. package/build/client/assets/cache-l0sNRNKZ.js +2 -0
  20. package/build/client/assets/cache-l0sNRNKZ.js.map +1 -0
  21. package/build/client/assets/{client-hints-BE5mB4r0.js → client-hints-DLYDs4RF.js} +2 -2
  22. package/build/client/assets/{client-hints-BE5mB4r0.js.map → client-hints-DLYDs4RF.js.map} +1 -1
  23. package/build/client/assets/{components-BMzmvxYw.js → components-wgHiPsTg.js} +2 -2
  24. package/build/client/assets/{components-BMzmvxYw.js.map → components-wgHiPsTg.js.map} +1 -1
  25. package/build/client/assets/diff-DczVYWk4.js +2 -0
  26. package/build/client/assets/{diff-Bn3MiSoW.js.map → diff-DczVYWk4.js.map} +1 -1
  27. package/build/client/assets/{diff-D_ZEQzD1.js → diff-hpVBklM0.js} +2 -2
  28. package/build/client/assets/{diff-D_ZEQzD1.js.map → diff-hpVBklM0.js.map} +1 -1
  29. package/build/client/assets/discord-CgwNGD2p.js +2 -0
  30. package/build/client/assets/discord-CgwNGD2p.js.map +1 -0
  31. package/build/client/assets/{discord-COPE8EOZ.js → discord-yZor-3t1.js} +2 -2
  32. package/build/client/assets/{discord-COPE8EOZ.js.map → discord-yZor-3t1.js.map} +1 -1
  33. package/build/client/assets/{entry.client-B0vV2fsa.js → entry.client-Cs8lBz8l.js} +2 -2
  34. package/build/client/assets/{entry.client-B0vV2fsa.js.map → entry.client-Cs8lBz8l.js.map} +1 -1
  35. package/build/client/assets/{epic-video-zHEt2DZr.js → epic-video--ydmGfR4.js} +96 -96
  36. package/build/client/assets/{epic-video-zHEt2DZr.js.map → epic-video--ydmGfR4.js.map} +1 -1
  37. package/build/client/assets/{error-boundary-DxfVshQ5.js → error-boundary-BVTbN8PZ.js} +2 -2
  38. package/build/client/assets/{error-boundary-DxfVshQ5.js.map → error-boundary-BVTbN8PZ.js.map} +1 -1
  39. package/build/client/assets/finished-3FuL-PiH.js +2 -0
  40. package/build/client/assets/{finished-rHvmuqsw.js.map → finished-3FuL-PiH.js.map} +1 -1
  41. package/build/client/assets/{index-4E9_Sx3m.js → index-C6ToujzV.js} +2 -2
  42. package/build/client/assets/{index-4E9_Sx3m.js.map → index-C6ToujzV.js.map} +1 -1
  43. package/build/client/assets/index-DCO6tIXL.js +2 -0
  44. package/build/client/assets/{index-CUL9cfRQ.js.map → index-DCO6tIXL.js.map} +1 -1
  45. package/build/client/assets/{index-90bzTYUX.js → index-DMhFsRrG.js} +2 -2
  46. package/build/client/assets/{index-90bzTYUX.js.map → index-DMhFsRrG.js.map} +1 -1
  47. package/build/client/assets/{index-Doi37489.js → index-DjzedX4O.js} +2 -2
  48. package/build/client/assets/{index-Doi37489.js.map → index-DjzedX4O.js.map} +1 -1
  49. package/build/client/assets/{loading-CNWJVymJ.js → loading-B0uKxERz.js} +2 -2
  50. package/build/client/assets/{loading-CNWJVymJ.js.map → loading-B0uKxERz.js.map} +1 -1
  51. package/build/client/assets/{login-DxG854vQ.js → login-CHE9W6po.js} +2 -2
  52. package/build/client/assets/{login-DxG854vQ.js.map → login-CHE9W6po.js.map} +1 -1
  53. package/build/client/assets/manifest-3d1ca088.js +1 -0
  54. package/build/client/assets/{mdx-Cdbs0d3z.js → mdx-DF11h1m-.js} +2 -2
  55. package/build/client/assets/{mdx-Cdbs0d3z.js.map → mdx-DF11h1m-.js.map} +1 -1
  56. package/build/client/assets/{misc-CypjEQkt.js → misc-S5ZD98sI.js} +2 -2
  57. package/build/client/assets/{misc-CypjEQkt.js.map → misc-S5ZD98sI.js.map} +1 -1
  58. package/build/client/assets/{nav-chevrons-BYKwyIgG.js → nav-chevrons-DaXg0NPS.js} +2 -2
  59. package/build/client/assets/{nav-chevrons-BYKwyIgG.js.map → nav-chevrons-DaXg0NPS.js.map} +1 -1
  60. package/build/client/assets/onboarding-CBm-xBhv.js +2 -0
  61. package/build/client/assets/{onboarding-BbvoMBUW.js.map → onboarding-CBm-xBhv.js.map} +1 -1
  62. package/build/client/assets/{presence-DXXVJbaH.js → presence-CW1_eiIo.js} +2 -2
  63. package/build/client/assets/{presence-DXXVJbaH.js.map → presence-CW1_eiIo.js.map} +1 -1
  64. package/build/client/assets/{progress-B_mReZVE.js → progress-BwanvUpB.js} +2 -2
  65. package/build/client/assets/{progress-B_mReZVE.js.map → progress-BwanvUpB.js.map} +1 -1
  66. package/build/client/assets/{progress-bar-DCrt7X4t.js → progress-bar-wMXWRGq0.js} +2 -2
  67. package/build/client/assets/{progress-bar-DCrt7X4t.js.map → progress-bar-wMXWRGq0.js.map} +1 -1
  68. package/build/client/assets/{request-info-CUT0ULYN.js → request-info-DHtGM4FI.js} +2 -2
  69. package/build/client/assets/{request-info-CUT0ULYN.js.map → request-info-DHtGM4FI.js.map} +1 -1
  70. package/build/client/assets/{root-DWqeqKvM.js → root-CW5sLiRQ.js} +2 -2
  71. package/build/client/assets/{root-DWqeqKvM.js.map → root-CW5sLiRQ.js.map} +1 -1
  72. package/build/client/assets/{support-DrY-qRGh.js → support-D1ydJNdm.js} +2 -2
  73. package/build/client/assets/{support-DrY-qRGh.js.map → support-D1ydJNdm.js.map} +1 -1
  74. package/build/client/assets/{tooltip-CfmIzAYi.js → tooltip-BtzSIxlB.js} +2 -2
  75. package/build/client/assets/{tooltip-CfmIzAYi.js.map → tooltip-BtzSIxlB.js.map} +1 -1
  76. package/build/client/assets/{user-C4QTtQw5.js → user-CdUDQ7a8.js} +2 -2
  77. package/build/client/assets/{user-C4QTtQw5.js.map → user-CdUDQ7a8.js.map} +1 -1
  78. package/build/server/index.js +115 -82
  79. package/build/server/index.js.map +1 -1
  80. package/package.json +3 -3
  81. package/build/client/assets/_exerciseNumber-Dkx8NKtT.js +0 -2
  82. package/build/client/assets/_exerciseNumber_.finished-F2R0-zEk.js +0 -2
  83. package/build/client/assets/diff-Bn3MiSoW.js +0 -2
  84. package/build/client/assets/discord-DIog7bBO.js +0 -2
  85. package/build/client/assets/discord-DIog7bBO.js.map +0 -1
  86. package/build/client/assets/finished-rHvmuqsw.js +0 -2
  87. package/build/client/assets/index-CUL9cfRQ.js +0 -2
  88. package/build/client/assets/manifest-ad8216cb.js +0 -1
  89. package/build/client/assets/onboarding-BbvoMBUW.js +0 -2
@@ -191,7 +191,8 @@ const fsCache = {
191
191
  try {
192
192
  const filePath = path.join(cacheDir$1, md5(key));
193
193
  const data = await fsExtra.readJSON(filePath);
194
- return data;
194
+ if (data.entry) return data.entry;
195
+ return null;
195
196
  } catch (error) {
196
197
  if (error instanceof Error && "code" in error && error.code === "ENOENT") {
197
198
  return null;
@@ -202,13 +203,24 @@ const fsCache = {
202
203
  async set(key, entry2) {
203
204
  const filePath = path.join(cacheDir$1, md5(key));
204
205
  await fsExtra.ensureDir(path.dirname(filePath));
205
- await fsExtra.writeJSON(filePath, entry2);
206
+ await fsExtra.writeJSON(filePath, { key, entry: entry2 });
206
207
  },
207
208
  async delete(key) {
208
209
  const filePath = path.join(cacheDir$1, md5(key));
209
210
  await fsExtra.remove(filePath);
210
211
  }
211
212
  };
213
+ async function getAllFileCacheEntries() {
214
+ const files = await fsExtra.readdir(cacheDir$1);
215
+ const entries = await Promise.all(
216
+ files.map(async (file) => {
217
+ const filePath = path.join(cacheDir$1, file);
218
+ const data = await fsExtra.readJSON(filePath);
219
+ return data;
220
+ }).filter(Boolean)
221
+ );
222
+ return entries;
223
+ }
212
224
  async function deleteCache() {
213
225
  if (process.env.EPICSHOP_DEPLOYED) return null;
214
226
  try {
@@ -1684,7 +1696,9 @@ async function getStackBlitzUrl({
1684
1696
  ""
1685
1697
  );
1686
1698
  if (!githubRootUrlString) return null;
1687
- const githubRootUrl = new URL(githubRootUrlString);
1699
+ const githubRootUrl = new URL(
1700
+ githubRootUrlString.replace(/\/blob\//, "/tree/")
1701
+ );
1688
1702
  const githubPart = githubRootUrl.pathname;
1689
1703
  const config = {
1690
1704
  ...workshopStackBlitzConfig,
@@ -3242,7 +3256,7 @@ function useTheme() {
3242
3256
  }
3243
3257
  return requestInfo.session.theme ?? hints.theme;
3244
3258
  }
3245
- const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3259
+ const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3246
3260
  __proto__: null,
3247
3261
  ThemeSwitch,
3248
3262
  action: action$c,
@@ -3830,7 +3844,7 @@ const meta$5 = ({ data }) => {
3830
3844
  requestInfo: data.requestInfo
3831
3845
  });
3832
3846
  };
3833
- async function loader$s({ request }) {
3847
+ async function loader$t({ request }) {
3834
3848
  const timings = makeTimings("rootLoader");
3835
3849
  const onboarding = await readOnboardingData();
3836
3850
  if (!ENV.EPICSHOP_DEPLOYED && !(onboarding == null ? void 0 : onboarding.finishedTourVideo)) {
@@ -4048,10 +4062,10 @@ const route0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
4048
4062
  default: AppWithProviders,
4049
4063
  headers: headers$8,
4050
4064
  links,
4051
- loader: loader$s,
4065
+ loader: loader$t,
4052
4066
  meta: meta$5
4053
4067
  }, Symbol.toStringTag, { value: "Module" }));
4054
- async function loader$r() {
4068
+ async function loader$s() {
4055
4069
  throw new Response("Not found", { status: 404 });
4056
4070
  }
4057
4071
  function NotFound() {
@@ -4078,7 +4092,7 @@ const route1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
4078
4092
  __proto__: null,
4079
4093
  ErrorBoundary: ErrorBoundary$4,
4080
4094
  default: NotFound,
4081
- loader: loader$r
4095
+ loader: loader$s
4082
4096
  }, Symbol.toStringTag, { value: "Module" }));
4083
4097
  function makeMediaQueryStore(mediaQuery, serverSnapshot) {
4084
4098
  function getSnapshot() {
@@ -4461,7 +4475,7 @@ function ProgressToggle({
4461
4475
  )
4462
4476
  ] });
4463
4477
  }
4464
- const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4478
+ const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4465
4479
  __proto__: null,
4466
4480
  ProgressToggle,
4467
4481
  action: action$b,
@@ -4472,7 +4486,7 @@ const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
4472
4486
  useProgressItemClassName,
4473
4487
  useRequireEpicProgress
4474
4488
  }, Symbol.toStringTag, { value: "Module" }));
4475
- async function loader$q({ request }) {
4489
+ async function loader$r({ request }) {
4476
4490
  var _a2;
4477
4491
  const timings = makeTimings("stepLoader");
4478
4492
  const [exercises, workshopTitle, playgroundAppName] = await Promise.all([
@@ -5507,7 +5521,7 @@ const route2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
5507
5521
  __proto__: null,
5508
5522
  default: App,
5509
5523
  headers: headers$7,
5510
- loader: loader$q
5524
+ loader: loader$r
5511
5525
  }, Symbol.toStringTag, { value: "Module" }));
5512
5526
  function ExercisesLayout() {
5513
5527
  return /* @__PURE__ */ jsx("div", { className: "flex h-full flex-grow", children: /* @__PURE__ */ jsx(Outlet, {}) });
@@ -5704,7 +5718,7 @@ function isDeepEqual(obj1, obj2) {
5704
5718
  }
5705
5719
  return true;
5706
5720
  }
5707
- const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5721
+ const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5708
5722
  __proto__: null,
5709
5723
  MuxPlayer,
5710
5724
  action: action$a,
@@ -5946,6 +5960,7 @@ function DeferredEpicVideo({
5946
5960
  url,
5947
5961
  title = extractEpicTitle(url)
5948
5962
  }) {
5963
+ const user = useOptionalUser();
5949
5964
  const epicVideoInfosPromise = React.useContext(EpicVideoInfoContext);
5950
5965
  const linkUI = /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(VideoLink, { url, title }) });
5951
5966
  return /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
@@ -5969,7 +5984,7 @@ function DeferredEpicVideo({
5969
5984
  ENV.EPICSHOP_GITHUB_ROOT ? /* @__PURE__ */ jsx(Link, { to: ENV.EPICSHOP_GITHUB_ROOT, className: "underline", children: "Run locally" }) : "Run locally",
5970
5985
  " for transcripts"
5971
5986
  ] }) : /* @__PURE__ */ jsxs("div", { children: [
5972
- /* @__PURE__ */ jsx(Link, { to: "/login", className: "underline", children: "Login" }),
5987
+ /* @__PURE__ */ jsx(Link, { to: "/login", className: "underline", children: user ? "Upgrade" : "Login" }),
5973
5988
  " for transcripts"
5974
5989
  ] });
5975
5990
  if (!epicVideoInfo) {
@@ -6775,7 +6790,7 @@ function EditFileOnGitHub({
6775
6790
  );
6776
6791
  }
6777
6792
  const LaunchEditor = ENV.EPICSHOP_DEPLOYED ? ENV.EPICSHOP_GITHUB_ROOT ? LaunchGitHub : ({ children }) => /* @__PURE__ */ jsx(SimpleTooltip, { content: "Cannot open files in deployed app", children: /* @__PURE__ */ jsx("button", { className: "launch_button cursor-not-allowed", children }) }) : LaunchEditorImpl;
6778
- const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6793
+ const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6779
6794
  __proto__: null,
6780
6795
  EditFileOnGitHub,
6781
6796
  LaunchEditor,
@@ -6976,7 +6991,7 @@ const meta$4 = ({
6976
6991
  requestInfo: rootData.requestInfo
6977
6992
  });
6978
6993
  };
6979
- async function loader$p({ request, params }) {
6994
+ async function loader$q({ request, params }) {
6980
6995
  const timings = makeTimings("exerciseNumberLoader");
6981
6996
  invariantResponse(params.exerciseNumber, "exerciseNumber is required");
6982
6997
  const [exercises, workshopTitle] = await Promise.all([
@@ -7120,10 +7135,10 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
7120
7135
  ErrorBoundary: ErrorBoundary$3,
7121
7136
  default: ExerciseNumberRoute,
7122
7137
  headers: headers$6,
7123
- loader: loader$p,
7138
+ loader: loader$q,
7124
7139
  meta: meta$4
7125
7140
  }, Symbol.toStringTag, { value: "Module" }));
7126
- async function loader$o({ request, params }) {
7141
+ async function loader$p({ request, params }) {
7127
7142
  const timings = makeTimings("stepLoader");
7128
7143
  invariantResponse(params.exerciseNumber, "exerciseNumber is required");
7129
7144
  const [exercises, workshopTitle] = await Promise.all([
@@ -7180,7 +7195,7 @@ const route5 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
7180
7195
  ErrorBoundary: ErrorBoundary$2,
7181
7196
  default: StepRoute,
7182
7197
  headers: headers$5,
7183
- loader: loader$o
7198
+ loader: loader$p
7184
7199
  }, Symbol.toStringTag, { value: "Module" }));
7185
7200
  const AccordionComponent = ({
7186
7201
  title,
@@ -7542,7 +7557,7 @@ function getDiscordAuthURL() {
7542
7557
  discordAuthUrl.searchParams.append("scope", scope);
7543
7558
  return discordAuthUrl.toString();
7544
7559
  }
7545
- async function loader$n({ request }) {
7560
+ async function loader$o({ request }) {
7546
7561
  const authInfo = await requireAuthInfo({ request });
7547
7562
  const discordCode = new URL(request.url).searchParams.get("code");
7548
7563
  invariantResponse(discordCode, "Missing code");
@@ -7595,10 +7610,10 @@ async function loader$n({ request }) {
7595
7610
  description: `Your Discord account "${member.displayName}" has been connected!`
7596
7611
  });
7597
7612
  }
7598
- const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7613
+ const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7599
7614
  __proto__: null,
7600
7615
  getDiscordAuthURL,
7601
- loader: loader$n
7616
+ loader: loader$o
7602
7617
  }, Symbol.toStringTag, { value: "Module" }));
7603
7618
  const epicshopTempDir = path.join(os.tmpdir(), "epicshop");
7604
7619
  const isDeployed = ENV.EPICSHOP_DEPLOYED;
@@ -8154,7 +8169,7 @@ function SetAppToPlayground({ appName }) {
8154
8169
  }
8155
8170
  );
8156
8171
  }
8157
- const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8172
+ const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8158
8173
  __proto__: null,
8159
8174
  PlaygroundChooser,
8160
8175
  SetAppToPlayground,
@@ -8254,7 +8269,7 @@ async function fetchDiscordPosts({ request }) {
8254
8269
  }
8255
8270
  });
8256
8271
  }
8257
- async function loader$m() {
8272
+ async function loader$n() {
8258
8273
  return json({ discordAuthUrl: getDiscordAuthURL() });
8259
8274
  }
8260
8275
  function useDiscordCTALink({
@@ -8357,7 +8372,7 @@ const route15 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
8357
8372
  __proto__: null,
8358
8373
  DiscordCTA,
8359
8374
  default: DiscordRoute,
8360
- loader: loader$m,
8375
+ loader: loader$n,
8361
8376
  useDiscordCTALink
8362
8377
  }, Symbol.toStringTag, { value: "Module" }));
8363
8378
  function DiscordChat() {
@@ -8747,7 +8762,7 @@ function AppStarter({ name }) {
8747
8762
  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" }) })
8748
8763
  ] });
8749
8764
  }
8750
- const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8765
+ const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8751
8766
  __proto__: null,
8752
8767
  AppStarter,
8753
8768
  AppStopper,
@@ -9323,7 +9338,7 @@ function UpdateMdxCache({
9323
9338
  )
9324
9339
  ] });
9325
9340
  }
9326
- const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9341
+ const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9327
9342
  __proto__: null,
9328
9343
  UpdateMdxCache,
9329
9344
  action: action$6
@@ -9789,7 +9804,7 @@ const testEventSchema = z$1.union([
9789
9804
  })
9790
9805
  ]);
9791
9806
  const testEventQueueSchema = z$1.array(testEventSchema);
9792
- async function loader$l({ request }) {
9807
+ async function loader$m({ request }) {
9793
9808
  ensureUndeployed();
9794
9809
  const url = new URL(request.url);
9795
9810
  const name = url.searchParams.get("name");
@@ -10108,14 +10123,14 @@ function StopTest({
10108
10123
  )
10109
10124
  ] });
10110
10125
  }
10111
- const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10126
+ const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10112
10127
  __proto__: null,
10113
10128
  ClearTest,
10114
10129
  StopTest,
10115
10130
  TestOutput,
10116
10131
  TestRunner,
10117
10132
  action: action$5,
10118
- loader: loader$l
10133
+ loader: loader$m
10119
10134
  }, Symbol.toStringTag, { value: "Module" }));
10120
10135
  function Tests({
10121
10136
  appInfo: playgroundAppInfo,
@@ -10291,7 +10306,7 @@ const meta$3 = ({
10291
10306
  requestInfo: rootData.requestInfo
10292
10307
  });
10293
10308
  };
10294
- async function loader$k({ request, params }) {
10309
+ async function loader$l({ request, params }) {
10295
10310
  var _a2, _b2;
10296
10311
  const timings = makeTimings("exerciseStepTypeLoader");
10297
10312
  const workshopTitle = await getWorkshopTitle();
@@ -10723,10 +10738,10 @@ const route6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
10723
10738
  ErrorBoundary: ErrorBoundary$1,
10724
10739
  default: ExercisePartRoute,
10725
10740
  headers: headers$4,
10726
- loader: loader$k,
10741
+ loader: loader$l,
10727
10742
  meta: meta$3
10728
10743
  }, Symbol.toStringTag, { value: "Module" }));
10729
- async function loader$j({ params }) {
10744
+ async function loader$k({ params }) {
10730
10745
  const problemApp = await getExerciseApp({ ...params, type: "problem" }).then(
10731
10746
  (a) => isProblemApp(a) ? a : null
10732
10747
  );
@@ -10744,7 +10759,7 @@ async function loader$j({ params }) {
10744
10759
  }
10745
10760
  const route7 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10746
10761
  __proto__: null,
10747
- loader: loader$j
10762
+ loader: loader$k
10748
10763
  }, Symbol.toStringTag, { value: "Module" }));
10749
10764
  const meta$2 = ({
10750
10765
  data,
@@ -10763,7 +10778,7 @@ const meta$2 = ({
10763
10778
  requestInfo: rootData.requestInfo
10764
10779
  });
10765
10780
  };
10766
- async function loader$i({ request, params }) {
10781
+ async function loader$j({ request, params }) {
10767
10782
  const timings = makeTimings("exerciseFinishedLoader");
10768
10783
  invariantResponse(params.exerciseNumber, "exerciseNumber is required");
10769
10784
  const exercise = await getExercise(params.exerciseNumber, {
@@ -10929,10 +10944,10 @@ const route8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
10929
10944
  __proto__: null,
10930
10945
  default: ExerciseFinished$1,
10931
10946
  headers: headers$3,
10932
- loader: loader$i,
10947
+ loader: loader$j,
10933
10948
  meta: meta$2
10934
10949
  }, Symbol.toStringTag, { value: "Module" }));
10935
- async function loader$h({ request }) {
10950
+ async function loader$i({ request }) {
10936
10951
  ensureUndeployed();
10937
10952
  await requireAuthInfo({ request });
10938
10953
  return json({ discordAuthUrl: getDiscordAuthURL() });
@@ -11044,7 +11059,7 @@ const route9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
11044
11059
  __proto__: null,
11045
11060
  action: action$4,
11046
11061
  default: Account,
11047
- loader: loader$h
11062
+ loader: loader$i
11048
11063
  }, Symbol.toStringTag, { value: "Module" }));
11049
11064
  async function getForceFresh(filePath, cacheEntry) {
11050
11065
  if (!cacheEntry) return true;
@@ -11112,7 +11127,7 @@ async function resolveApps({
11112
11127
  return { app, fileApp: app };
11113
11128
  }
11114
11129
  }
11115
- async function loader$g({ request, params }) {
11130
+ async function loader$h({ request, params }) {
11116
11131
  const timings = makeTimings("app-file");
11117
11132
  const { fileApp, app } = await resolveApps({ request, params, timings });
11118
11133
  if (!fileApp || !app) {
@@ -11168,9 +11183,9 @@ async function loader$g({ request, params }) {
11168
11183
  }
11169
11184
  const route10 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11170
11185
  __proto__: null,
11171
- loader: loader$g
11186
+ loader: loader$h
11172
11187
  }, Symbol.toStringTag, { value: "Module" }));
11173
- async function loader$f(args) {
11188
+ async function loader$g(args) {
11174
11189
  const api = await getApiModule(args);
11175
11190
  invariantResponse(
11176
11191
  api.mod.loader,
@@ -11273,9 +11288,9 @@ async function getApiModule({ request, params }) {
11273
11288
  const route11 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11274
11289
  __proto__: null,
11275
11290
  action: action$3,
11276
- loader: loader$f
11291
+ loader: loader$g
11277
11292
  }, Symbol.toStringTag, { value: "Module" }));
11278
- async function loader$e({ request, params }) {
11293
+ async function loader$f({ request, params }) {
11279
11294
  const timings = makeTimings("epic_ws script");
11280
11295
  const { fileApp, app } = await resolveApps({ request, params, timings });
11281
11296
  if (!fileApp || !app) {
@@ -11341,9 +11356,9 @@ async function loader$e({ request, params }) {
11341
11356
  }
11342
11357
  const route12 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11343
11358
  __proto__: null,
11344
- loader: loader$e
11359
+ loader: loader$f
11345
11360
  }, Symbol.toStringTag, { value: "Module" }));
11346
- async function loader$d({ request, params }) {
11361
+ async function loader$e({ request, params }) {
11347
11362
  var _a2;
11348
11363
  const timings = makeTimings("app");
11349
11364
  const { fileApp, app } = await resolveApps({ request, params, timings });
@@ -11429,9 +11444,9 @@ async function loader$d({ request, params }) {
11429
11444
  }
11430
11445
  const route13 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11431
11446
  __proto__: null,
11432
- loader: loader$d
11447
+ loader: loader$e
11433
11448
  }, Symbol.toStringTag, { value: "Module" }));
11434
- async function loader$c({ request, params }) {
11449
+ async function loader$d({ request, params }) {
11435
11450
  var _a2;
11436
11451
  const timings = makeTimings("app_test_loader");
11437
11452
  const { testName } = params;
@@ -11571,7 +11586,7 @@ import(${JSON.stringify(testScriptPath)}).then(
11571
11586
  }
11572
11587
  const route14 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11573
11588
  __proto__: null,
11574
- loader: loader$c
11589
+ loader: loader$d
11575
11590
  }, Symbol.toStringTag, { value: "Module" }));
11576
11591
  const meta$1 = ({
11577
11592
  matches
@@ -11588,7 +11603,7 @@ const meta$1 = ({
11588
11603
  requestInfo: rootData.requestInfo
11589
11604
  });
11590
11605
  };
11591
- async function loader$b({ request }) {
11606
+ async function loader$c({ request }) {
11592
11607
  const timings = makeTimings("finishedLoader");
11593
11608
  const exercises = await getExercises({ request, timings });
11594
11609
  const compiledFinished = await time(() => getWorkshopFinished({ request }), {
@@ -11726,10 +11741,10 @@ const route16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
11726
11741
  __proto__: null,
11727
11742
  default: ExerciseFinished,
11728
11743
  headers: headers$2,
11729
- loader: loader$b,
11744
+ loader: loader$c,
11730
11745
  meta: meta$1
11731
11746
  }, Symbol.toStringTag, { value: "Module" }));
11732
- async function loader$a({ request }) {
11747
+ async function loader$b({ request }) {
11733
11748
  const timings = makeTimings("indexLoader");
11734
11749
  const [title, exercises, workshopReadme] = await Promise.all([
11735
11750
  time(() => getWorkshopTitle(), {
@@ -11859,7 +11874,7 @@ const route17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
11859
11874
  ErrorBoundary,
11860
11875
  default: Index,
11861
11876
  headers: headers$1,
11862
- loader: loader$a
11877
+ loader: loader$b
11863
11878
  }, Symbol.toStringTag, { value: "Module" }));
11864
11879
  const EVENTS = {
11865
11880
  USER_CODE_RECEIVED: "USER_CODE_RECEIVED",
@@ -11922,7 +11937,7 @@ const EventSchema = z$1.union([
11922
11937
  AuthResolvedEventSchema,
11923
11938
  AuthRejectedEventSchema
11924
11939
  ]);
11925
- async function loader$9({ request }) {
11940
+ async function loader$a({ request }) {
11926
11941
  ensureUndeployed();
11927
11942
  return eventStream(request.signal, function setup(send) {
11928
11943
  function handleCodeReceived(data) {
@@ -11956,12 +11971,12 @@ async function loader$9({ request }) {
11956
11971
  };
11957
11972
  });
11958
11973
  }
11959
- const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11974
+ const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11960
11975
  __proto__: null,
11961
11976
  EventSchema,
11962
- loader: loader$9
11977
+ loader: loader$a
11963
11978
  }, Symbol.toStringTag, { value: "Module" }));
11964
- async function loader$8() {
11979
+ async function loader$9() {
11965
11980
  ensureUndeployed();
11966
11981
  const isAuthenticated = Boolean(await getAuthInfo());
11967
11982
  if (isAuthenticated) throw redirect("/account");
@@ -12082,7 +12097,7 @@ const route18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12082
12097
  __proto__: null,
12083
12098
  action: action$2,
12084
12099
  default: Login,
12085
- loader: loader$8
12100
+ loader: loader$9
12086
12101
  }, Symbol.toStringTag, { value: "Module" }));
12087
12102
  function Support() {
12088
12103
  var _a2;
@@ -12174,7 +12189,7 @@ const meta = ({
12174
12189
  const rootData = (_a2 = matches.find((m) => m.id === "root")) == null ? void 0 : _a2.data;
12175
12190
  return [{ title: `👷 | ${rootData == null ? void 0 : rootData.workshopTitle}` }];
12176
12191
  };
12177
- async function loader$7({ request }) {
12192
+ async function loader$8({ request }) {
12178
12193
  ensureUndeployed();
12179
12194
  const timings = makeTimings("adminLoader");
12180
12195
  const workshopSlug = await getEpicWorkshopSlug() ?? "Unkown";
@@ -12385,14 +12400,24 @@ const route20 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12385
12400
  __proto__: null,
12386
12401
  action: action$1,
12387
12402
  default: AdminLayout,
12388
- loader: loader$7,
12403
+ loader: loader$8,
12389
12404
  meta
12390
12405
  }, Symbol.toStringTag, { value: "Module" }));
12391
- async function loader$6() {
12406
+ async function loader$7() {
12407
+ ensureUndeployed();
12392
12408
  const apps = await getApps();
12393
12409
  return json({ apps });
12394
12410
  }
12395
12411
  const route21 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12412
+ __proto__: null,
12413
+ loader: loader$7
12414
+ }, Symbol.toStringTag, { value: "Module" }));
12415
+ async function loader$6() {
12416
+ ensureUndeployed();
12417
+ const entries = await getAllFileCacheEntries();
12418
+ return json({ entries });
12419
+ }
12420
+ const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12396
12421
  __proto__: null,
12397
12422
  loader: loader$6
12398
12423
  }, Symbol.toStringTag, { value: "Module" }));
@@ -12404,7 +12429,7 @@ async function loader$5({ request }) {
12404
12429
  { headers: { "Server-Timing": getServerTimeHeader(timings) } }
12405
12430
  );
12406
12431
  }
12407
- const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12432
+ const route23 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12408
12433
  __proto__: null,
12409
12434
  loader: loader$5
12410
12435
  }, Symbol.toStringTag, { value: "Module" }));
@@ -12493,7 +12518,7 @@ function DiffViewer() {
12493
12518
  }
12494
12519
  );
12495
12520
  }
12496
- const route23 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12521
+ const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12497
12522
  __proto__: null,
12498
12523
  default: DiffViewer,
12499
12524
  loader: loader$4
@@ -12506,7 +12531,7 @@ async function loader$3({ request }) {
12506
12531
  { headers: { "Server-Timing": getServerTimeHeader(timings) } }
12507
12532
  );
12508
12533
  }
12509
- const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12534
+ const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12510
12535
  __proto__: null,
12511
12536
  loader: loader$3
12512
12537
  }, Symbol.toStringTag, { value: "Module" }));
@@ -12900,7 +12925,7 @@ function OgLayout({
12900
12925
  }
12901
12926
  );
12902
12927
  }
12903
- const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12928
+ const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12904
12929
  __proto__: null,
12905
12930
  loader: loader$2
12906
12931
  }, Symbol.toStringTag, { value: "Module" }));
@@ -12942,7 +12967,7 @@ function Onboarding() {
12942
12967
  /* @__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!" }) })
12943
12968
  ] });
12944
12969
  }
12945
- const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12970
+ const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12946
12971
  __proto__: null,
12947
12972
  action,
12948
12973
  default: Onboarding,
@@ -12967,11 +12992,11 @@ async function loader() {
12967
12992
  }
12968
12993
  return json({ processes, testProcesses: testProcesses2 });
12969
12994
  }
12970
- const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12995
+ const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12971
12996
  __proto__: null,
12972
12997
  loader
12973
12998
  }, Symbol.toStringTag, { value: "Module" }));
12974
- const serverManifest = { "entry": { "module": "/assets/entry.client-B0vV2fsa.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-BMzmvxYw.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-DWqeqKvM.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-BMzmvxYw.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-CypjEQkt.js", "/assets/request-info-CUT0ULYN.js", "/assets/tooltip-CfmIzAYi.js", "/assets/client-hints-BE5mB4r0.js", "/assets/error-boundary-DxfVshQ5.js", "/assets/progress-bar-DCrt7X4t.js", "/assets/index-Doi37489.js", "/assets/index-90bzTYUX.js", "/assets/presence-DXXVJbaH.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/_-Bd2gNcck.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js", "/assets/error-boundary-DxfVshQ5.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-DHBLG7Ti.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js", "/assets/tooltip-CfmIzAYi.js", "/assets/request-info-CUT0ULYN.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-4E9_Sx3m.js", "/assets/user-C4QTtQw5.js", "/assets/presence-DXXVJbaH.js", "/assets/progress-B_mReZVE.js", "/assets/index-90bzTYUX.js"], "css": [] }, "routes/_app+/_exercises+/_layout": { "id": "routes/_app+/_exercises+/_layout", "parentId": "routes/_app+/_layout", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DaZNLfOL.js", "imports": ["/assets/index-Czg1ruVn.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-Dkx8NKtT.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-BMzmvxYw.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-CypjEQkt.js", "/assets/request-info-CUT0ULYN.js", "/assets/tooltip-CfmIzAYi.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-90bzTYUX.js", "/assets/loading-CNWJVymJ.js", "/assets/epic-video-zHEt2DZr.js", "/assets/progress-bar-DCrt7X4t.js", "/assets/index-D6ukHE4T.js", "/assets/mdx-Cdbs0d3z.js", "/assets/progress-B_mReZVE.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-DCbWNWpZ.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-ChfAsQ5r.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js", "/assets/tooltip-CfmIzAYi.js", "/assets/request-info-CUT0ULYN.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-90bzTYUX.js", "/assets/loading-CNWJVymJ.js", "/assets/epic-video-zHEt2DZr.js", "/assets/progress-bar-DCrt7X4t.js", "/assets/index-4E9_Sx3m.js", "/assets/mdx-Cdbs0d3z.js", "/assets/user-C4QTtQw5.js", "/assets/index-D6ukHE4T.js", "/assets/diff-D_ZEQzD1.js", "/assets/error-boundary-DxfVshQ5.js", "/assets/nav-chevrons-BYKwyIgG.js", "/assets/progress-B_mReZVE.js", "/assets/seo-pBpFCWsy.js", "/assets/discord-COPE8EOZ.js", "/assets/index-Doi37489.js", "/assets/button-CyZl24U2.js", "/assets/use-event-source-ySol3hbz.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/_exercises+/$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+/_exercises+/$exerciseNumber_.finished": { "id": "routes/_app+/_exercises+/$exerciseNumber_.finished", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-F2R0-zEk.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-BMzmvxYw.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-CypjEQkt.js", "/assets/request-info-CUT0ULYN.js", "/assets/tooltip-CfmIzAYi.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-90bzTYUX.js", "/assets/loading-CNWJVymJ.js", "/assets/epic-video-zHEt2DZr.js", "/assets/progress-bar-DCrt7X4t.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-BYKwyIgG.js", "/assets/mdx-Cdbs0d3z.js", "/assets/progress-B_mReZVE.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.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-CnLkZd_O.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/request-info-CUT0ULYN.js", "/assets/button-CyZl24U2.js", "/assets/misc-CypjEQkt.js", "/assets/user-C4QTtQw5.js", "/assets/presence-DXXVJbaH.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+/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-DIog7bBO.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js", "/assets/user-C4QTtQw5.js", "/assets/discord-COPE8EOZ.js"], "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-rHvmuqsw.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-BMzmvxYw.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-CypjEQkt.js", "/assets/request-info-CUT0ULYN.js", "/assets/tooltip-CfmIzAYi.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-90bzTYUX.js", "/assets/loading-CNWJVymJ.js", "/assets/epic-video-zHEt2DZr.js", "/assets/progress-bar-DCrt7X4t.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-BYKwyIgG.js", "/assets/mdx-Cdbs0d3z.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-B_mReZVE.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-CUL9cfRQ.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-BMzmvxYw.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-CypjEQkt.js", "/assets/request-info-CUT0ULYN.js", "/assets/tooltip-CfmIzAYi.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-90bzTYUX.js", "/assets/loading-CNWJVymJ.js", "/assets/epic-video-zHEt2DZr.js", "/assets/progress-bar-DCrt7X4t.js", "/assets/index-D6ukHE4T.js", "/assets/error-boundary-DxfVshQ5.js", "/assets/mdx-Cdbs0d3z.js", "/assets/progress-B_mReZVE.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-DxG854vQ.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/request-info-CUT0ULYN.js", "/assets/client-hints-BE5mB4r0.js", "/assets/use-event-source-ySol3hbz.js", "/assets/button-CyZl24U2.js", "/assets/loading-CNWJVymJ.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-DrY-qRGh.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-BMzmvxYw.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-rEQoj43V.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js", "/assets/tooltip-CfmIzAYi.js", "/assets/progress-B_mReZVE.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/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-Bn3MiSoW.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js", "/assets/tooltip-CfmIzAYi.js", "/assets/request-info-CUT0ULYN.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-90bzTYUX.js", "/assets/loading-CNWJVymJ.js", "/assets/epic-video-zHEt2DZr.js", "/assets/progress-bar-DCrt7X4t.js", "/assets/index-4E9_Sx3m.js", "/assets/mdx-Cdbs0d3z.js", "/assets/diff-D_ZEQzD1.js", "/assets/nav-chevrons-BYKwyIgG.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-BbvoMBUW.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-BMzmvxYw.js", "/assets/misc-CypjEQkt.js", "/assets/request-info-CUT0ULYN.js", "/assets/tooltip-CfmIzAYi.js", "/assets/client-hints-BE5mB4r0.js", "/assets/index-90bzTYUX.js", "/assets/loading-CNWJVymJ.js", "/assets/button-CyZl24U2.js", "/assets/epic-video-zHEt2DZr.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/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/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-ad8216cb.js", "version": "ad8216cb" };
12999
+ const serverManifest = { "entry": { "module": "/assets/entry.client-Cs8lBz8l.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.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-CW5sLiRQ.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-DjzedX4O.js", "/assets/index-DMhFsRrG.js", "/assets/presence-CW1_eiIo.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/_-DYArYM0Z.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/error-boundary-BVTbN8PZ.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-CLLcE4oc.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-C6ToujzV.js", "/assets/user-CdUDQ7a8.js", "/assets/presence-CW1_eiIo.js", "/assets/progress-BwanvUpB.js", "/assets/index-DMhFsRrG.js"], "css": [] }, "routes/_app+/_exercises+/_layout": { "id": "routes/_app+/_exercises+/_layout", "parentId": "routes/_app+/_layout", "path": void 0, "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-DaZNLfOL.js", "imports": ["/assets/index-Czg1ruVn.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-DN5AsSNn.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-DMhFsRrG.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video--ydmGfR4.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/mdx-DF11h1m-.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-Ct5BCuA1.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js"], "css": [] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-qyqfsEt3.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-DMhFsRrG.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video--ydmGfR4.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-DF11h1m-.js", "/assets/index-D6ukHE4T.js", "/assets/diff-hpVBklM0.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js", "/assets/discord-yZor-3t1.js", "/assets/index-DjzedX4O.js", "/assets/button-BA3iiLRs.js", "/assets/use-event-source-ySol3hbz.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/_exercises+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/_exercises+/$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+/_exercises+/$exerciseNumber_.finished": { "id": "routes/_app+/_exercises+/$exerciseNumber_.finished", "parentId": "routes/_app+/_exercises+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-W3hcmvgu.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-DMhFsRrG.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video--ydmGfR4.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-DF11h1m-.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.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-DHsaqKNy.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/request-info-DHtGM4FI.js", "/assets/button-BA3iiLRs.js", "/assets/misc-S5ZD98sI.js", "/assets/user-CdUDQ7a8.js", "/assets/presence-CW1_eiIo.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-K6Dvbx-E.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+/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-CgwNGD2p.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/user-CdUDQ7a8.js", "/assets/discord-yZor-3t1.js"], "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-3FuL-PiH.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-DMhFsRrG.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video--ydmGfR4.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-DF11h1m-.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-BwanvUpB.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-DCO6tIXL.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-DMhFsRrG.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video--ydmGfR4.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/mdx-DF11h1m-.js", "/assets/progress-BwanvUpB.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-CHE9W6po.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/use-event-source-ySol3hbz.js", "/assets/button-BA3iiLRs.js", "/assets/loading-B0uKxERz.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-D1ydJNdm.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/components-wgHiPsTg.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-B9Y-8OU6.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/progress-BwanvUpB.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-DczVYWk4.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/request-info-DHtGM4FI.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-DMhFsRrG.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video--ydmGfR4.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-DF11h1m-.js", "/assets/diff-hpVBklM0.js", "/assets/nav-chevrons-DaXg0NPS.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-CBm-xBhv.js", "imports": ["/assets/index-Czg1ruVn.js", "/assets/clsx-B-dksMZM.js", "/assets/components-wgHiPsTg.js", "/assets/misc-S5ZD98sI.js", "/assets/request-info-DHtGM4FI.js", "/assets/tooltip-BtzSIxlB.js", "/assets/client-hints-DLYDs4RF.js", "/assets/index-DMhFsRrG.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/button-BA3iiLRs.js", "/assets/epic-video--ydmGfR4.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/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/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-l0sNRNKZ.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-3d1ca088.js", "version": "3d1ca088" };
12975
13000
  const mode = "production";
12976
13001
  const assetsBuildDirectory = "build/client";
12977
13002
  const basename = "/";
@@ -13156,13 +13181,21 @@ const routes = {
13156
13181
  caseSensitive: void 0,
13157
13182
  module: route21
13158
13183
  },
13184
+ "routes/admin+/cache": {
13185
+ id: "routes/admin+/cache",
13186
+ parentId: "routes/admin+/_layout",
13187
+ path: "cache",
13188
+ index: void 0,
13189
+ caseSensitive: void 0,
13190
+ module: route22
13191
+ },
13159
13192
  "routes/apps": {
13160
13193
  id: "routes/apps",
13161
13194
  parentId: "root",
13162
13195
  path: "apps",
13163
13196
  index: void 0,
13164
13197
  caseSensitive: void 0,
13165
- module: route22
13198
+ module: route23
13166
13199
  },
13167
13200
  "routes/diff": {
13168
13201
  id: "routes/diff",
@@ -13170,7 +13203,7 @@ const routes = {
13170
13203
  path: "diff",
13171
13204
  index: void 0,
13172
13205
  caseSensitive: void 0,
13173
- module: route23
13206
+ module: route24
13174
13207
  },
13175
13208
  "routes/discord.callback": {
13176
13209
  id: "routes/discord.callback",
@@ -13178,7 +13211,7 @@ const routes = {
13178
13211
  path: "discord/callback",
13179
13212
  index: void 0,
13180
13213
  caseSensitive: void 0,
13181
- module: route24
13214
+ module: route25
13182
13215
  },
13183
13216
  "routes/exercises": {
13184
13217
  id: "routes/exercises",
@@ -13186,7 +13219,7 @@ const routes = {
13186
13219
  path: "exercises",
13187
13220
  index: void 0,
13188
13221
  caseSensitive: void 0,
13189
- module: route25
13222
+ module: route26
13190
13223
  },
13191
13224
  "routes/launch-editor": {
13192
13225
  id: "routes/launch-editor",
@@ -13194,7 +13227,7 @@ const routes = {
13194
13227
  path: "launch-editor",
13195
13228
  index: void 0,
13196
13229
  caseSensitive: void 0,
13197
- module: route26
13230
+ module: route27
13198
13231
  },
13199
13232
  "routes/login-sse": {
13200
13233
  id: "routes/login-sse",
@@ -13202,7 +13235,7 @@ const routes = {
13202
13235
  path: "login-sse",
13203
13236
  index: void 0,
13204
13237
  caseSensitive: void 0,
13205
- module: route27
13238
+ module: route28
13206
13239
  },
13207
13240
  "routes/og": {
13208
13241
  id: "routes/og",
@@ -13210,7 +13243,7 @@ const routes = {
13210
13243
  path: "og",
13211
13244
  index: void 0,
13212
13245
  caseSensitive: void 0,
13213
- module: route28
13246
+ module: route29
13214
13247
  },
13215
13248
  "routes/onboarding": {
13216
13249
  id: "routes/onboarding",
@@ -13218,7 +13251,7 @@ const routes = {
13218
13251
  path: "onboarding",
13219
13252
  index: void 0,
13220
13253
  caseSensitive: void 0,
13221
- module: route29
13254
+ module: route30
13222
13255
  },
13223
13256
  "routes/processes": {
13224
13257
  id: "routes/processes",
@@ -13226,7 +13259,7 @@ const routes = {
13226
13259
  path: "processes",
13227
13260
  index: void 0,
13228
13261
  caseSensitive: void 0,
13229
- module: route30
13262
+ module: route31
13230
13263
  },
13231
13264
  "routes/progress": {
13232
13265
  id: "routes/progress",
@@ -13234,7 +13267,7 @@ const routes = {
13234
13267
  path: "progress",
13235
13268
  index: void 0,
13236
13269
  caseSensitive: void 0,
13237
- module: route31
13270
+ module: route32
13238
13271
  },
13239
13272
  "routes/set-playground": {
13240
13273
  id: "routes/set-playground",
@@ -13242,7 +13275,7 @@ const routes = {
13242
13275
  path: "set-playground",
13243
13276
  index: void 0,
13244
13277
  caseSensitive: void 0,
13245
- module: route32
13278
+ module: route33
13246
13279
  },
13247
13280
  "routes/start": {
13248
13281
  id: "routes/start",
@@ -13250,7 +13283,7 @@ const routes = {
13250
13283
  path: "start",
13251
13284
  index: void 0,
13252
13285
  caseSensitive: void 0,
13253
- module: route33
13286
+ module: route34
13254
13287
  },
13255
13288
  "routes/test": {
13256
13289
  id: "routes/test",
@@ -13258,7 +13291,7 @@ const routes = {
13258
13291
  path: "test",
13259
13292
  index: void 0,
13260
13293
  caseSensitive: void 0,
13261
- module: route34
13294
+ module: route35
13262
13295
  },
13263
13296
  "routes/theme/index": {
13264
13297
  id: "routes/theme/index",
@@ -13266,7 +13299,7 @@ const routes = {
13266
13299
  path: "theme",
13267
13300
  index: void 0,
13268
13301
  caseSensitive: void 0,
13269
- module: route35
13302
+ module: route36
13270
13303
  },
13271
13304
  "routes/update-mdx-cache": {
13272
13305
  id: "routes/update-mdx-cache",
@@ -13274,7 +13307,7 @@ const routes = {
13274
13307
  path: "update-mdx-cache",
13275
13308
  index: void 0,
13276
13309
  caseSensitive: void 0,
13277
- module: route36
13310
+ module: route37
13278
13311
  },
13279
13312
  "routes/video-player/index": {
13280
13313
  id: "routes/video-player/index",
@@ -13282,7 +13315,7 @@ const routes = {
13282
13315
  path: "video-player",
13283
13316
  index: void 0,
13284
13317
  caseSensitive: void 0,
13285
- module: route37
13318
+ module: route38
13286
13319
  }
13287
13320
  };
13288
13321
  export {