@epic-web/workshop-app 4.14.0 → 4.15.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 (51) hide show
  1. package/build/client/assets/{_layout-Bn9QhWq9.js → _layout-0urSK0i1.js} +2 -2
  2. package/build/client/assets/{_layout-Bn9QhWq9.js.map → _layout-0urSK0i1.js.map} +1 -1
  3. package/build/client/assets/_layout-CZ3fjUvs.js +2 -0
  4. package/build/client/assets/_layout-CZ3fjUvs.js.map +1 -0
  5. package/build/client/assets/_layout-DLIzcS5v.js +2 -0
  6. package/build/client/assets/_layout-DLIzcS5v.js.map +1 -0
  7. package/build/client/assets/account-LnI_Eq0t.js +2 -0
  8. package/build/client/assets/account-LnI_Eq0t.js.map +1 -0
  9. package/build/client/assets/app-b7uXHF5m.css +1 -0
  10. package/build/client/assets/discord-BgaWmFRC.js +2 -0
  11. package/build/client/assets/discord-BgaWmFRC.js.map +1 -0
  12. package/build/client/assets/discord-Dk1wbXOn.js +2 -0
  13. package/build/client/assets/discord-Dk1wbXOn.js.map +1 -0
  14. package/build/client/assets/finished-DRjILUr_.js +2 -0
  15. package/build/client/assets/finished-DRjILUr_.js.map +1 -0
  16. package/build/client/assets/login-SJlLMYmL.js +2 -0
  17. package/build/client/assets/login-SJlLMYmL.js.map +1 -0
  18. package/build/client/assets/{manifest-b122038e.js → manifest-fcdcf131.js} +1 -1
  19. package/build/client/assets/onboarding-CxyD6D0I.js +2 -0
  20. package/build/client/assets/onboarding-CxyD6D0I.js.map +1 -0
  21. package/build/client/assets/robots_._txt-l0sNRNKZ.js +2 -0
  22. package/build/client/assets/robots_._txt-l0sNRNKZ.js.map +1 -0
  23. package/build/client/assets/{root-B86bLhuo.js → root-BUqeXmeK.js} +4 -4
  24. package/build/client/assets/{root-B86bLhuo.js.map → root-BUqeXmeK.js.map} +1 -1
  25. package/build/client/assets/sitemap_._xml-l0sNRNKZ.js +2 -0
  26. package/build/client/assets/sitemap_._xml-l0sNRNKZ.js.map +1 -0
  27. package/build/client/assets/support-DZyqD0NL.js +2 -0
  28. package/build/client/assets/support-DZyqD0NL.js.map +1 -0
  29. package/build/server/index.js +166 -81
  30. package/build/server/index.js.map +1 -1
  31. package/dist/server/index.js +12 -4
  32. package/package.json +5 -3
  33. package/build/client/assets/_layout-B9Y-8OU6.js +0 -2
  34. package/build/client/assets/_layout-B9Y-8OU6.js.map +0 -1
  35. package/build/client/assets/_layout-DaZNLfOL.js +0 -2
  36. package/build/client/assets/_layout-DaZNLfOL.js.map +0 -1
  37. package/build/client/assets/account-uvU1jIL2.js +0 -2
  38. package/build/client/assets/account-uvU1jIL2.js.map +0 -1
  39. package/build/client/assets/app-BOiko_VU.css +0 -1
  40. package/build/client/assets/discord-CgwNGD2p.js +0 -2
  41. package/build/client/assets/discord-CgwNGD2p.js.map +0 -1
  42. package/build/client/assets/discord-yZor-3t1.js +0 -2
  43. package/build/client/assets/discord-yZor-3t1.js.map +0 -1
  44. package/build/client/assets/finished-B9qjUR4B.js +0 -2
  45. package/build/client/assets/finished-B9qjUR4B.js.map +0 -1
  46. package/build/client/assets/login-CHE9W6po.js +0 -2
  47. package/build/client/assets/login-CHE9W6po.js.map +0 -1
  48. package/build/client/assets/onboarding-FD1FkQuu.js +0 -2
  49. package/build/client/assets/onboarding-FD1FkQuu.js.map +0 -1
  50. package/build/client/assets/support-D1ydJNdm.js +0 -2
  51. package/build/client/assets/support-D1ydJNdm.js.map +0 -1
@@ -88,6 +88,7 @@ import { Issuer } from "openid-client";
88
88
  import inspector from "node:inspector";
89
89
  import { Resvg } from "@resvg/resvg-js";
90
90
  import satori from "satori";
91
+ import { generateRobotsTxt, generateSitemap } from "@nasa-gcn/remix-seo";
91
92
  function makeTimings(type, desc) {
92
93
  const timings = {
93
94
  [type]: [{ desc, start: performance.now() }]
@@ -3266,13 +3267,13 @@ function useTheme() {
3266
3267
  }
3267
3268
  return requestInfo.session.theme ?? hints.theme;
3268
3269
  }
3269
- const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3270
+ const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3270
3271
  __proto__: null,
3271
3272
  ThemeSwitch,
3272
3273
  action: action$c,
3273
3274
  useTheme
3274
3275
  }, Symbol.toStringTag, { value: "Module" }));
3275
- const appStylesheetUrl = "/assets/app-BOiko_VU.css";
3276
+ const appStylesheetUrl = "/assets/app-b7uXHF5m.css";
3276
3277
  const tailwindStylesheetUrl = "/assets/tailwind-BZciDTNv.css";
3277
3278
  const cookieName = "EpicShop_confetti";
3278
3279
  function getConfetti(request) {
@@ -3860,7 +3861,7 @@ const meta$5 = ({ data }) => {
3860
3861
  requestInfo: data.requestInfo
3861
3862
  });
3862
3863
  };
3863
- async function loader$t({ request }) {
3864
+ async function loader$v({ request }) {
3864
3865
  const timings = makeTimings("rootLoader");
3865
3866
  const onboarding = await readOnboardingData();
3866
3867
  if (!ENV.EPICSHOP_DEPLOYED && !(onboarding == null ? void 0 : onboarding.finishedTourVideo)) {
@@ -4078,10 +4079,10 @@ const route0 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
4078
4079
  default: AppWithProviders,
4079
4080
  headers: headers$8,
4080
4081
  links,
4081
- loader: loader$t,
4082
+ loader: loader$v,
4082
4083
  meta: meta$5
4083
4084
  }, Symbol.toStringTag, { value: "Module" }));
4084
- async function loader$s() {
4085
+ async function loader$u() {
4085
4086
  throw new Response("Not found", { status: 404 });
4086
4087
  }
4087
4088
  function NotFound() {
@@ -4108,7 +4109,7 @@ const route1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
4108
4109
  __proto__: null,
4109
4110
  ErrorBoundary: ErrorBoundary$4,
4110
4111
  default: NotFound,
4111
- loader: loader$s
4112
+ loader: loader$u
4112
4113
  }, Symbol.toStringTag, { value: "Module" }));
4113
4114
  function makeMediaQueryStore(mediaQuery, serverSnapshot) {
4114
4115
  function getSnapshot() {
@@ -4502,7 +4503,7 @@ const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
4502
4503
  useProgressItemClassName,
4503
4504
  useRequireEpicProgress
4504
4505
  }, Symbol.toStringTag, { value: "Module" }));
4505
- async function loader$r({ request }) {
4506
+ async function loader$t({ request }) {
4506
4507
  var _a2;
4507
4508
  const timings = makeTimings("stepLoader");
4508
4509
  const [exercises, workshopTitle, playgroundAppName] = await Promise.all([
@@ -5537,14 +5538,32 @@ const route2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
5537
5538
  __proto__: null,
5538
5539
  default: App,
5539
5540
  headers: headers$7,
5540
- loader: loader$r
5541
+ loader: loader$t
5541
5542
  }, Symbol.toStringTag, { value: "Module" }));
5543
+ const handle$7 = {
5544
+ getSitemapEntries: async (request) => {
5545
+ const exercises = await getExercises({
5546
+ request
5547
+ });
5548
+ return exercises.flatMap((e) => [{
5549
+ route: `/${e.exerciseNumber.toString().padStart(2, "0")}`
5550
+ }, ...e.steps.flatMap((s) => ["problem", "solution"].map((type) => ({
5551
+ route: `/${e.exerciseNumber.toString().padStart(2, "0")}/${s.stepNumber.toString().padStart(2, "0")}/${type}`
5552
+ }))), {
5553
+ route: `/${e.exerciseNumber.toString().padStart(2, "0")}/finished`
5554
+ }]);
5555
+ }
5556
+ };
5542
5557
  function ExercisesLayout() {
5543
- return /* @__PURE__ */ jsx("div", { className: "flex h-full flex-grow", children: /* @__PURE__ */ jsx(Outlet, {}) });
5558
+ return /* @__PURE__ */ jsx("div", {
5559
+ className: "flex h-full flex-grow",
5560
+ children: /* @__PURE__ */ jsx(Outlet, {})
5561
+ });
5544
5562
  }
5545
5563
  const route3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5546
5564
  __proto__: null,
5547
- default: ExercisesLayout
5565
+ default: ExercisesLayout,
5566
+ handle: handle$7
5548
5567
  }, Symbol.toStringTag, { value: "Module" }));
5549
5568
  const PlaybackTimeSchema = z$1.object({
5550
5569
  time: z$1.number(),
@@ -5734,7 +5753,7 @@ function isDeepEqual(obj1, obj2) {
5734
5753
  }
5735
5754
  return true;
5736
5755
  }
5737
- const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5756
+ const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5738
5757
  __proto__: null,
5739
5758
  MuxPlayer,
5740
5759
  action: action$a,
@@ -7007,7 +7026,7 @@ const meta$4 = ({
7007
7026
  requestInfo: rootData.requestInfo
7008
7027
  });
7009
7028
  };
7010
- async function loader$q({ request, params }) {
7029
+ async function loader$s({ request, params }) {
7011
7030
  const timings = makeTimings("exerciseNumberLoader");
7012
7031
  invariantResponse(params.exerciseNumber, "exerciseNumber is required");
7013
7032
  const [exercises, workshopTitle] = await Promise.all([
@@ -7151,10 +7170,10 @@ const route4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
7151
7170
  ErrorBoundary: ErrorBoundary$3,
7152
7171
  default: ExerciseNumberRoute,
7153
7172
  headers: headers$6,
7154
- loader: loader$q,
7173
+ loader: loader$s,
7155
7174
  meta: meta$4
7156
7175
  }, Symbol.toStringTag, { value: "Module" }));
7157
- async function loader$p({ request, params }) {
7176
+ async function loader$r({ request, params }) {
7158
7177
  const timings = makeTimings("stepLoader");
7159
7178
  invariantResponse(params.exerciseNumber, "exerciseNumber is required");
7160
7179
  const [exercises, workshopTitle] = await Promise.all([
@@ -7211,7 +7230,7 @@ const route5 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
7211
7230
  ErrorBoundary: ErrorBoundary$2,
7212
7231
  default: StepRoute,
7213
7232
  headers: headers$5,
7214
- loader: loader$p
7233
+ loader: loader$r
7215
7234
  }, Symbol.toStringTag, { value: "Module" }));
7216
7235
  const AccordionComponent = ({
7217
7236
  title,
@@ -7573,7 +7592,7 @@ function getDiscordAuthURL() {
7573
7592
  discordAuthUrl.searchParams.append("scope", scope);
7574
7593
  return discordAuthUrl.toString();
7575
7594
  }
7576
- async function loader$o({ request }) {
7595
+ async function loader$q({ request }) {
7577
7596
  const authInfo = await requireAuthInfo({ request });
7578
7597
  const discordCode = new URL(request.url).searchParams.get("code");
7579
7598
  invariantResponse(discordCode, "Missing code");
@@ -7629,7 +7648,7 @@ async function loader$o({ request }) {
7629
7648
  const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7630
7649
  __proto__: null,
7631
7650
  getDiscordAuthURL,
7632
- loader: loader$o
7651
+ loader: loader$q
7633
7652
  }, Symbol.toStringTag, { value: "Module" }));
7634
7653
  const epicshopTempDir = path.join(os.tmpdir(), "epicshop");
7635
7654
  const isDeployed = ENV.EPICSHOP_DEPLOYED;
@@ -8187,7 +8206,7 @@ function SetAppToPlayground({ appName }) {
8187
8206
  }
8188
8207
  );
8189
8208
  }
8190
- const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8209
+ const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8191
8210
  __proto__: null,
8192
8211
  PlaygroundChooser,
8193
8212
  SetAppToPlayground,
@@ -8287,7 +8306,10 @@ async function fetchDiscordPosts({ request }) {
8287
8306
  }
8288
8307
  });
8289
8308
  }
8290
- async function loader$n() {
8309
+ const handle$6 = {
8310
+ getSitemapEntries: () => null
8311
+ };
8312
+ async function loader$p() {
8291
8313
  return json({ discordAuthUrl: getDiscordAuthURL() });
8292
8314
  }
8293
8315
  function useDiscordCTALink({
@@ -8390,7 +8412,8 @@ const route15 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
8390
8412
  __proto__: null,
8391
8413
  DiscordCTA,
8392
8414
  default: DiscordRoute,
8393
- loader: loader$n,
8415
+ handle: handle$6,
8416
+ loader: loader$p,
8394
8417
  useDiscordCTALink
8395
8418
  }, Symbol.toStringTag, { value: "Module" }));
8396
8419
  function DiscordChat() {
@@ -8780,7 +8803,7 @@ function AppStarter({ name }) {
8780
8803
  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" }) })
8781
8804
  ] });
8782
8805
  }
8783
- const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8806
+ const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8784
8807
  __proto__: null,
8785
8808
  AppStarter,
8786
8809
  AppStopper,
@@ -9356,7 +9379,7 @@ function UpdateMdxCache({
9356
9379
  )
9357
9380
  ] });
9358
9381
  }
9359
- const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9382
+ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9360
9383
  __proto__: null,
9361
9384
  UpdateMdxCache,
9362
9385
  action: action$6
@@ -9822,7 +9845,7 @@ const testEventSchema = z$1.union([
9822
9845
  })
9823
9846
  ]);
9824
9847
  const testEventQueueSchema = z$1.array(testEventSchema);
9825
- async function loader$m({ request }) {
9848
+ async function loader$o({ request }) {
9826
9849
  ensureUndeployed();
9827
9850
  const url = new URL(request.url);
9828
9851
  const name = url.searchParams.get("name");
@@ -10141,14 +10164,14 @@ function StopTest({
10141
10164
  )
10142
10165
  ] });
10143
10166
  }
10144
- const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10167
+ const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10145
10168
  __proto__: null,
10146
10169
  ClearTest,
10147
10170
  StopTest,
10148
10171
  TestOutput,
10149
10172
  TestRunner,
10150
10173
  action: action$5,
10151
- loader: loader$m
10174
+ loader: loader$o
10152
10175
  }, Symbol.toStringTag, { value: "Module" }));
10153
10176
  function Tests({
10154
10177
  appInfo: playgroundAppInfo,
@@ -10324,7 +10347,7 @@ const meta$3 = ({
10324
10347
  requestInfo: rootData.requestInfo
10325
10348
  });
10326
10349
  };
10327
- async function loader$l({ request, params }) {
10350
+ async function loader$n({ request, params }) {
10328
10351
  var _a2, _b2;
10329
10352
  const timings = makeTimings("exerciseStepTypeLoader");
10330
10353
  const workshopTitle = await getWorkshopTitle();
@@ -10756,10 +10779,10 @@ const route6 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
10756
10779
  ErrorBoundary: ErrorBoundary$1,
10757
10780
  default: ExercisePartRoute,
10758
10781
  headers: headers$4,
10759
- loader: loader$l,
10782
+ loader: loader$n,
10760
10783
  meta: meta$3
10761
10784
  }, Symbol.toStringTag, { value: "Module" }));
10762
- async function loader$k({ params }) {
10785
+ async function loader$m({ params }) {
10763
10786
  const problemApp = await getExerciseApp({ ...params, type: "problem" }).then(
10764
10787
  (a) => isProblemApp(a) ? a : null
10765
10788
  );
@@ -10777,7 +10800,7 @@ async function loader$k({ params }) {
10777
10800
  }
10778
10801
  const route7 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10779
10802
  __proto__: null,
10780
- loader: loader$k
10803
+ loader: loader$m
10781
10804
  }, Symbol.toStringTag, { value: "Module" }));
10782
10805
  const meta$2 = ({
10783
10806
  data,
@@ -10796,7 +10819,7 @@ const meta$2 = ({
10796
10819
  requestInfo: rootData.requestInfo
10797
10820
  });
10798
10821
  };
10799
- async function loader$j({ request, params }) {
10822
+ async function loader$l({ request, params }) {
10800
10823
  const timings = makeTimings("exerciseFinishedLoader");
10801
10824
  invariantResponse(params.exerciseNumber, "exerciseNumber is required");
10802
10825
  const exercise = await getExercise(params.exerciseNumber, {
@@ -10962,10 +10985,13 @@ const route8 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
10962
10985
  __proto__: null,
10963
10986
  default: ExerciseFinished$1,
10964
10987
  headers: headers$3,
10965
- loader: loader$j,
10988
+ loader: loader$l,
10966
10989
  meta: meta$2
10967
10990
  }, Symbol.toStringTag, { value: "Module" }));
10968
- async function loader$i({ request }) {
10991
+ const handle$5 = {
10992
+ getSitemapEntries: () => null
10993
+ };
10994
+ async function loader$k({ request }) {
10969
10995
  ensureUndeployed();
10970
10996
  await requireAuthInfo({ request });
10971
10997
  return json({ discordAuthUrl: getDiscordAuthURL() });
@@ -11096,7 +11122,8 @@ const route9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
11096
11122
  __proto__: null,
11097
11123
  action: action$4,
11098
11124
  default: Account,
11099
- loader: loader$i
11125
+ handle: handle$5,
11126
+ loader: loader$k
11100
11127
  }, Symbol.toStringTag, { value: "Module" }));
11101
11128
  async function getForceFresh(filePath, cacheEntry) {
11102
11129
  if (!cacheEntry) return true;
@@ -11164,7 +11191,7 @@ async function resolveApps({
11164
11191
  return { app, fileApp: app };
11165
11192
  }
11166
11193
  }
11167
- async function loader$h({ request, params }) {
11194
+ async function loader$j({ request, params }) {
11168
11195
  const timings = makeTimings("app-file");
11169
11196
  const { fileApp, app } = await resolveApps({ request, params, timings });
11170
11197
  if (!fileApp || !app) {
@@ -11220,9 +11247,9 @@ async function loader$h({ request, params }) {
11220
11247
  }
11221
11248
  const route10 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11222
11249
  __proto__: null,
11223
- loader: loader$h
11250
+ loader: loader$j
11224
11251
  }, Symbol.toStringTag, { value: "Module" }));
11225
- async function loader$g(args) {
11252
+ async function loader$i(args) {
11226
11253
  const api = await getApiModule(args);
11227
11254
  invariantResponse(
11228
11255
  api.mod.loader,
@@ -11325,9 +11352,9 @@ async function getApiModule({ request, params }) {
11325
11352
  const route11 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11326
11353
  __proto__: null,
11327
11354
  action: action$3,
11328
- loader: loader$g
11355
+ loader: loader$i
11329
11356
  }, Symbol.toStringTag, { value: "Module" }));
11330
- async function loader$f({ request, params }) {
11357
+ async function loader$h({ request, params }) {
11331
11358
  const timings = makeTimings("epic_ws script");
11332
11359
  const { fileApp, app } = await resolveApps({ request, params, timings });
11333
11360
  if (!fileApp || !app) {
@@ -11393,9 +11420,9 @@ async function loader$f({ request, params }) {
11393
11420
  }
11394
11421
  const route12 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11395
11422
  __proto__: null,
11396
- loader: loader$f
11423
+ loader: loader$h
11397
11424
  }, Symbol.toStringTag, { value: "Module" }));
11398
- async function loader$e({ request, params }) {
11425
+ async function loader$g({ request, params }) {
11399
11426
  var _a2;
11400
11427
  const timings = makeTimings("app");
11401
11428
  const { fileApp, app } = await resolveApps({ request, params, timings });
@@ -11481,9 +11508,9 @@ async function loader$e({ request, params }) {
11481
11508
  }
11482
11509
  const route13 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11483
11510
  __proto__: null,
11484
- loader: loader$e
11511
+ loader: loader$g
11485
11512
  }, Symbol.toStringTag, { value: "Module" }));
11486
- async function loader$d({ request, params }) {
11513
+ async function loader$f({ request, params }) {
11487
11514
  var _a2;
11488
11515
  const timings = makeTimings("app_test_loader");
11489
11516
  const { testName } = params;
@@ -11623,8 +11650,11 @@ import(${JSON.stringify(testScriptPath)}).then(
11623
11650
  }
11624
11651
  const route14 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11625
11652
  __proto__: null,
11626
- loader: loader$d
11653
+ loader: loader$f
11627
11654
  }, Symbol.toStringTag, { value: "Module" }));
11655
+ const handle$4 = {
11656
+ getSitemapEntries: () => [{ route: "/finished" }]
11657
+ };
11628
11658
  const meta$1 = ({
11629
11659
  matches
11630
11660
  }) => {
@@ -11640,7 +11670,7 @@ const meta$1 = ({
11640
11670
  requestInfo: rootData.requestInfo
11641
11671
  });
11642
11672
  };
11643
- async function loader$c({ request }) {
11673
+ async function loader$e({ request }) {
11644
11674
  const timings = makeTimings("finishedLoader");
11645
11675
  const exercises = await getExercises({ request, timings });
11646
11676
  const compiledFinished = await time(() => getWorkshopFinished({ request }), {
@@ -11777,11 +11807,12 @@ function Survey({
11777
11807
  const route16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11778
11808
  __proto__: null,
11779
11809
  default: ExerciseFinished,
11810
+ handle: handle$4,
11780
11811
  headers: headers$2,
11781
- loader: loader$c,
11812
+ loader: loader$e,
11782
11813
  meta: meta$1
11783
11814
  }, Symbol.toStringTag, { value: "Module" }));
11784
- async function loader$b({ request }) {
11815
+ async function loader$d({ request }) {
11785
11816
  const timings = makeTimings("indexLoader");
11786
11817
  const [title, exercises, workshopReadme] = await Promise.all([
11787
11818
  time(() => getWorkshopTitle(), {
@@ -11911,7 +11942,7 @@ const route17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
11911
11942
  ErrorBoundary,
11912
11943
  default: Index,
11913
11944
  headers: headers$1,
11914
- loader: loader$b
11945
+ loader: loader$d
11915
11946
  }, Symbol.toStringTag, { value: "Module" }));
11916
11947
  const EVENTS = {
11917
11948
  USER_CODE_RECEIVED: "USER_CODE_RECEIVED",
@@ -11933,13 +11964,13 @@ async function registerDevice() {
11933
11964
  token_endpoint_auth_method: "none",
11934
11965
  application_type: "native"
11935
11966
  });
11936
- const handle = await client.deviceAuthorization();
11967
+ const handle2 = await client.deviceAuthorization();
11937
11968
  authEmitter.emit(EVENTS.USER_CODE_RECEIVED, {
11938
- code: handle.user_code,
11939
- url: handle.verification_uri_complete
11969
+ code: handle2.user_code,
11970
+ url: handle2.verification_uri_complete
11940
11971
  });
11941
- const timeout = setTimeout(() => handle.abort(), handle.expires_in * 1e3);
11942
- const tokenSet = await handle.poll().catch(() => {
11972
+ const timeout = setTimeout(() => handle2.abort(), handle2.expires_in * 1e3);
11973
+ const tokenSet = await handle2.poll().catch(() => {
11943
11974
  });
11944
11975
  clearTimeout(timeout);
11945
11976
  if (!tokenSet) {
@@ -11974,7 +12005,7 @@ const EventSchema = z$1.union([
11974
12005
  AuthResolvedEventSchema,
11975
12006
  AuthRejectedEventSchema
11976
12007
  ]);
11977
- async function loader$a({ request }) {
12008
+ async function loader$c({ request }) {
11978
12009
  ensureUndeployed();
11979
12010
  return eventStream(request.signal, function setup(send) {
11980
12011
  function handleCodeReceived(data) {
@@ -12011,9 +12042,12 @@ async function loader$a({ request }) {
12011
12042
  const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12012
12043
  __proto__: null,
12013
12044
  EventSchema,
12014
- loader: loader$a
12045
+ loader: loader$c
12015
12046
  }, Symbol.toStringTag, { value: "Module" }));
12016
- async function loader$9() {
12047
+ const handle$3 = {
12048
+ getSitemapEntries: () => null
12049
+ };
12050
+ async function loader$b() {
12017
12051
  ensureUndeployed();
12018
12052
  const isAuthenticated = Boolean(await getAuthInfo());
12019
12053
  if (isAuthenticated) throw redirect("/account");
@@ -12134,8 +12168,12 @@ const route18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12134
12168
  __proto__: null,
12135
12169
  action: action$2,
12136
12170
  default: Login,
12137
- loader: loader$9
12171
+ handle: handle$3,
12172
+ loader: loader$b
12138
12173
  }, Symbol.toStringTag, { value: "Module" }));
12174
+ const handle$2 = {
12175
+ getSitemapEntries: () => null
12176
+ };
12139
12177
  function Support() {
12140
12178
  var _a2;
12141
12179
  const repoGroups = (_a2 = ENV.EPICSHOP_GITHUB_ROOT.match(
@@ -12191,7 +12229,8 @@ function Support() {
12191
12229
  }
12192
12230
  const route19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12193
12231
  __proto__: null,
12194
- default: Support
12232
+ default: Support,
12233
+ handle: handle$2
12195
12234
  }, Symbol.toStringTag, { value: "Module" }));
12196
12235
  async function clearData() {
12197
12236
  await clearCaches();
@@ -12219,6 +12258,9 @@ async function stopInspector() {
12219
12258
  console.info(`Inspector already stopped.`);
12220
12259
  }
12221
12260
  }
12261
+ const handle$1 = {
12262
+ getSitemapEntries: () => null
12263
+ };
12222
12264
  const meta = ({
12223
12265
  matches
12224
12266
  }) => {
@@ -12226,7 +12268,7 @@ const meta = ({
12226
12268
  const rootData = (_a2 = matches.find((m) => m.id === "root")) == null ? void 0 : _a2.data;
12227
12269
  return [{ title: `👷 | ${rootData == null ? void 0 : rootData.workshopTitle}` }];
12228
12270
  };
12229
- async function loader$8({ request }) {
12271
+ async function loader$a({ request }) {
12230
12272
  ensureUndeployed();
12231
12273
  const timings = makeTimings("adminLoader");
12232
12274
  const workshopSlug = await getEpicWorkshopSlug() ?? "Unkown";
@@ -12437,28 +12479,29 @@ const route20 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
12437
12479
  __proto__: null,
12438
12480
  action: action$1,
12439
12481
  default: AdminLayout,
12440
- loader: loader$8,
12482
+ handle: handle$1,
12483
+ loader: loader$a,
12441
12484
  meta
12442
12485
  }, Symbol.toStringTag, { value: "Module" }));
12443
- async function loader$7() {
12486
+ async function loader$9() {
12444
12487
  ensureUndeployed();
12445
12488
  const apps = await getApps();
12446
12489
  return json({ apps });
12447
12490
  }
12448
12491
  const route21 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12449
12492
  __proto__: null,
12450
- loader: loader$7
12493
+ loader: loader$9
12451
12494
  }, Symbol.toStringTag, { value: "Module" }));
12452
- async function loader$6() {
12495
+ async function loader$8() {
12453
12496
  ensureUndeployed();
12454
12497
  const entries = await getAllFileCacheEntries();
12455
12498
  return json({ entries });
12456
12499
  }
12457
12500
  const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12458
12501
  __proto__: null,
12459
- loader: loader$6
12502
+ loader: loader$8
12460
12503
  }, Symbol.toStringTag, { value: "Module" }));
12461
- async function loader$5({ request }) {
12504
+ async function loader$7({ request }) {
12462
12505
  const timings = makeTimings("appsLoader");
12463
12506
  const apps = await getApps({ request, timings });
12464
12507
  return json(
@@ -12468,9 +12511,9 @@ async function loader$5({ request }) {
12468
12511
  }
12469
12512
  const route23 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12470
12513
  __proto__: null,
12471
- loader: loader$5
12514
+ loader: loader$7
12472
12515
  }, Symbol.toStringTag, { value: "Module" }));
12473
- async function loader$4({ request }) {
12516
+ async function loader$6({ request }) {
12474
12517
  var _a2, _b2, _c, _d;
12475
12518
  const reqUrl = new URL(request.url);
12476
12519
  const searchParams = reqUrl.searchParams;
@@ -12558,9 +12601,9 @@ function DiffViewer() {
12558
12601
  const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12559
12602
  __proto__: null,
12560
12603
  default: DiffViewer,
12561
- loader: loader$4
12604
+ loader: loader$6
12562
12605
  }, Symbol.toStringTag, { value: "Module" }));
12563
- async function loader$3({ request }) {
12606
+ async function loader$5({ request }) {
12564
12607
  const timings = makeTimings("appsLoader");
12565
12608
  const exercises = await getExercises({ request, timings });
12566
12609
  return json(
@@ -12570,11 +12613,11 @@ async function loader$3({ request }) {
12570
12613
  }
12571
12614
  const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12572
12615
  __proto__: null,
12573
- loader: loader$3
12616
+ loader: loader$5
12574
12617
  }, Symbol.toStringTag, { value: "Module" }));
12575
12618
  const WIDTH = 1200;
12576
12619
  const HEIGHT = 630;
12577
- async function loader$2({ request }) {
12620
+ async function loader$4({ request }) {
12578
12621
  const timings = makeTimings("og", "og image loader");
12579
12622
  const url = new URL(request.url);
12580
12623
  const workshopTitle = await getWorkshopTitle();
@@ -12964,9 +13007,12 @@ function OgLayout({
12964
13007
  }
12965
13008
  const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12966
13009
  __proto__: null,
12967
- loader: loader$2
13010
+ loader: loader$4
12968
13011
  }, Symbol.toStringTag, { value: "Module" }));
12969
- async function loader$1({ request }) {
13012
+ const handle = {
13013
+ getSitemapEntries: () => null
13014
+ };
13015
+ async function loader$3({ request }) {
12970
13016
  const timings = makeTimings("onboarding");
12971
13017
  const tourUrl = "https://www.epicweb.dev/tips/get-started-with-the-epic-workshop-app";
12972
13018
  const videoInfos = getEpicVideoInfos([tourUrl], { request, timings });
@@ -13008,10 +13054,11 @@ const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
13008
13054
  __proto__: null,
13009
13055
  action,
13010
13056
  default: Onboarding,
13057
+ handle,
13011
13058
  headers,
13012
- loader: loader$1
13059
+ loader: loader$3
13013
13060
  }, Symbol.toStringTag, { value: "Module" }));
13014
- async function loader() {
13061
+ async function loader$2() {
13015
13062
  ensureUndeployed();
13016
13063
  const processes = {};
13017
13064
  for (const [
@@ -13030,10 +13077,32 @@ async function loader() {
13030
13077
  return json({ processes, testProcesses: testProcesses2 });
13031
13078
  }
13032
13079
  const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13080
+ __proto__: null,
13081
+ loader: loader$2
13082
+ }, Symbol.toStringTag, { value: "Module" }));
13083
+ function loader$1({ request }) {
13084
+ return generateRobotsTxt([
13085
+ { type: "sitemap", value: `${getDomainUrl(request)}/sitemap.xml` }
13086
+ ]);
13087
+ }
13088
+ const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13089
+ __proto__: null,
13090
+ loader: loader$1
13091
+ }, Symbol.toStringTag, { value: "Module" }));
13092
+ async function loader({ request, context }) {
13093
+ const serverBuild = await context.serverBuild;
13094
+ return generateSitemap(request, serverBuild.routes, {
13095
+ siteUrl: getDomainUrl(request),
13096
+ headers: {
13097
+ "Cache-Control": `public, max-age=${60 * 5}`
13098
+ }
13099
+ });
13100
+ }
13101
+ const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13033
13102
  __proto__: null,
13034
13103
  loader
13035
13104
  }, Symbol.toStringTag, { value: "Module" }));
13036
- 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-B86bLhuo.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-yEAxvbDV.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-dHX2Hcew.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-yEAxvbDV.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-Ccwr4LZw.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/mdx-BENF-kTQ.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-Bn9QhWq9.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/index-D6ukHE4T.js", "/assets/diff-CpG96hGZ.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-gEWcHsfL.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.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-uvU1jIL2.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/button-BA3iiLRs.js", "/assets/tooltip-BtzSIxlB.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-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-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-B9qjUR4B.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.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-3HxjMIAS.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/mdx-BENF-kTQ.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-DP2rzg_V.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-l0sNRNKZ.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-Bd9WnUnR.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/diff-CpG96hGZ.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-FD1FkQuu.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/button-BA3iiLRs.js", "/assets/epic-video-DJN9_SUj.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-b122038e.js", "version": "b122038e" };
13105
+ 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-BUqeXmeK.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-yEAxvbDV.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-dHX2Hcew.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-yEAxvbDV.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-DLIzcS5v.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-Ccwr4LZw.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/mdx-BENF-kTQ.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-0urSK0i1.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/index-D6ukHE4T.js", "/assets/diff-CpG96hGZ.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/progress-BwanvUpB.js", "/assets/seo-pBpFCWsy.js", "/assets/discord-BgaWmFRC.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-gEWcHsfL.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.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-LnI_Eq0t.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/button-BA3iiLRs.js", "/assets/tooltip-BtzSIxlB.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-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-Dk1wbXOn.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-BgaWmFRC.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-DRjILUr_.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/nav-chevrons-DaXg0NPS.js", "/assets/mdx-BENF-kTQ.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-3HxjMIAS.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-D6ukHE4T.js", "/assets/error-boundary-BVTbN8PZ.js", "/assets/mdx-BENF-kTQ.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-SJlLMYmL.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-DZyqD0NL.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-CZ3fjUvs.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-Bd9WnUnR.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/epic-video-DJN9_SUj.js", "/assets/progress-bar-wMXWRGq0.js", "/assets/index-C6ToujzV.js", "/assets/mdx-BENF-kTQ.js", "/assets/diff-CpG96hGZ.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-CxyD6D0I.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-yEAxvbDV.js", "/assets/loading-B0uKxERz.js", "/assets/user-CdUDQ7a8.js", "/assets/button-BA3iiLRs.js", "/assets/epic-video-DJN9_SUj.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-fcdcf131.js", "version": "fcdcf131" };
13037
13106
  const mode = "production";
13038
13107
  const assetsBuildDirectory = "build/client";
13039
13108
  const basename = "/";
@@ -13306,13 +13375,29 @@ const routes = {
13306
13375
  caseSensitive: void 0,
13307
13376
  module: route32
13308
13377
  },
13378
+ "routes/robots[.]txt": {
13379
+ id: "routes/robots[.]txt",
13380
+ parentId: "root",
13381
+ path: "robots.txt",
13382
+ index: void 0,
13383
+ caseSensitive: void 0,
13384
+ module: route33
13385
+ },
13309
13386
  "routes/set-playground": {
13310
13387
  id: "routes/set-playground",
13311
13388
  parentId: "root",
13312
13389
  path: "set-playground",
13313
13390
  index: void 0,
13314
13391
  caseSensitive: void 0,
13315
- module: route33
13392
+ module: route34
13393
+ },
13394
+ "routes/sitemap[.]xml": {
13395
+ id: "routes/sitemap[.]xml",
13396
+ parentId: "root",
13397
+ path: "sitemap.xml",
13398
+ index: void 0,
13399
+ caseSensitive: void 0,
13400
+ module: route35
13316
13401
  },
13317
13402
  "routes/start": {
13318
13403
  id: "routes/start",
@@ -13320,7 +13405,7 @@ const routes = {
13320
13405
  path: "start",
13321
13406
  index: void 0,
13322
13407
  caseSensitive: void 0,
13323
- module: route34
13408
+ module: route36
13324
13409
  },
13325
13410
  "routes/test": {
13326
13411
  id: "routes/test",
@@ -13328,7 +13413,7 @@ const routes = {
13328
13413
  path: "test",
13329
13414
  index: void 0,
13330
13415
  caseSensitive: void 0,
13331
- module: route35
13416
+ module: route37
13332
13417
  },
13333
13418
  "routes/theme/index": {
13334
13419
  id: "routes/theme/index",
@@ -13336,7 +13421,7 @@ const routes = {
13336
13421
  path: "theme",
13337
13422
  index: void 0,
13338
13423
  caseSensitive: void 0,
13339
- module: route36
13424
+ module: route38
13340
13425
  },
13341
13426
  "routes/update-mdx-cache": {
13342
13427
  id: "routes/update-mdx-cache",
@@ -13344,7 +13429,7 @@ const routes = {
13344
13429
  path: "update-mdx-cache",
13345
13430
  index: void 0,
13346
13431
  caseSensitive: void 0,
13347
- module: route37
13432
+ module: route39
13348
13433
  },
13349
13434
  "routes/video-player/index": {
13350
13435
  id: "routes/video-player/index",
@@ -13352,7 +13437,7 @@ const routes = {
13352
13437
  path: "video-player",
13353
13438
  index: void 0,
13354
13439
  caseSensitive: void 0,
13355
- module: route38
13440
+ module: route40
13356
13441
  }
13357
13442
  };
13358
13443
  export {