@epic-web/workshop-app 4.22.3 → 4.23.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 (144) hide show
  1. package/build/client/assets/_-Cv8HqtE8.js +2 -0
  2. package/build/client/assets/{_-DbrWZazo.js.map → _-Cv8HqtE8.js.map} +1 -1
  3. package/build/client/assets/_exerciseNumber-D2tXimAK.js +2 -0
  4. package/build/client/assets/{_exerciseNumber-CpcJsfoV.js.map → _exerciseNumber-D2tXimAK.js.map} +1 -1
  5. package/build/client/assets/_exerciseNumber_._stepNumber-CquNe5XV.js +2 -0
  6. package/build/client/assets/{_exerciseNumber_._stepNumber-B5pmJ29o.js.map → _exerciseNumber_._stepNumber-CquNe5XV.js.map} +1 -1
  7. package/build/client/assets/_exerciseNumber_.finished-B-sqDk3j.js +2 -0
  8. package/build/client/assets/{_exerciseNumber_.finished-Ddb3J5ls.js.map → _exerciseNumber_.finished-B-sqDk3j.js.map} +1 -1
  9. package/build/client/assets/_layout-C7yUCsjZ.js +2 -0
  10. package/build/client/assets/{_layout-DVR5FOsb.js.map → _layout-C7yUCsjZ.js.map} +1 -1
  11. package/build/client/assets/_layout-C9AozQxr.js +6 -0
  12. package/build/client/assets/_layout-C9AozQxr.js.map +1 -0
  13. package/build/client/assets/{_layout-BUs3av-e.js → _layout-CRkVkufr.js} +2 -2
  14. package/build/client/assets/{_layout-BUs3av-e.js.map → _layout-CRkVkufr.js.map} +1 -1
  15. package/build/client/assets/_layout-Ciyqvptc.js +2 -0
  16. package/build/client/assets/{_layout-CGLKLU3y.js.map → _layout-Ciyqvptc.js.map} +1 -1
  17. package/build/client/assets/accordion-B-gQ5Whz.js +2 -0
  18. package/build/client/assets/{accordion-BroSqIct.js.map → accordion-B-gQ5Whz.js.map} +1 -1
  19. package/build/client/assets/account-B-3k5HDM.js +2 -0
  20. package/build/client/assets/{account-7o6O4ruO.js.map → account-B-3k5HDM.js.map} +1 -1
  21. package/build/client/assets/app-DAWCzuDw.js +2 -0
  22. package/build/client/assets/{app-BhrXo-z3.js.map → app-DAWCzuDw.js.map} +1 -1
  23. package/build/client/assets/{button-BklqyTPS.js → button-DataaIpW.js} +2 -2
  24. package/build/client/assets/{button-BklqyTPS.js.map → button-DataaIpW.js.map} +1 -1
  25. package/build/client/assets/{components-CME-nGId.js → components-BQB6wEvm.js} +18 -18
  26. package/build/client/assets/{components-CME-nGId.js.map → components-BQB6wEvm.js.map} +1 -1
  27. package/build/client/assets/diff-BWSOt7tL.js +2 -0
  28. package/build/client/assets/{diff-Cr4LLBag.js.map → diff-BWSOt7tL.js.map} +1 -1
  29. package/build/client/assets/diff-JWdZCc2F.js +2 -0
  30. package/build/client/assets/{diff-BNr0PhFR.js.map → diff-JWdZCc2F.js.map} +1 -1
  31. package/build/client/assets/{discord-Dq4e30wV.js → discord-BfUTLoVF.js} +2 -2
  32. package/build/client/assets/{discord-Dq4e30wV.js.map → discord-BfUTLoVF.js.map} +1 -1
  33. package/build/client/assets/discord-BqGuuhG3.js +2 -0
  34. package/build/client/assets/discord-BqGuuhG3.js.map +1 -0
  35. package/build/client/assets/{entry.client-3M2p-8I3.js → entry.client-7AjQ7fYK.js} +9 -9
  36. package/build/client/assets/{entry.client-3M2p-8I3.js.map → entry.client-7AjQ7fYK.js.map} +1 -1
  37. package/build/client/assets/{epic-video-CxZy3iqK.js → epic-video-D8tfMIv8.js} +96 -96
  38. package/build/client/assets/{epic-video-CxZy3iqK.js.map → epic-video-D8tfMIv8.js.map} +1 -1
  39. package/build/client/assets/{error-boundary-DDTvdkB4.js → error-boundary-Bx1mDmB-.js} +2 -2
  40. package/build/client/assets/{error-boundary-DDTvdkB4.js.map → error-boundary-Bx1mDmB-.js.map} +1 -1
  41. package/build/client/assets/finished-DvXH6L-Q.js +2 -0
  42. package/build/client/assets/{finished-CU8QBU41.js.map → finished-DvXH6L-Q.js.map} +1 -1
  43. package/build/client/assets/index-2WpY3jqc.js +37 -0
  44. package/build/client/assets/{index-1cKOJFpX.js.map → index-2WpY3jqc.js.map} +1 -1
  45. package/build/client/assets/{index-B-hHvmeV.js → index-Bt0Fs1uZ.js} +2 -2
  46. package/build/client/assets/{index-B-hHvmeV.js.map → index-Bt0Fs1uZ.js.map} +1 -1
  47. package/build/client/assets/{index-Dx5GmdYq.js → index-DGsreVfh.js} +2 -2
  48. package/build/client/assets/{index-Dx5GmdYq.js.map → index-DGsreVfh.js.map} +1 -1
  49. package/build/client/assets/index-DmASob5Y.js +2 -0
  50. package/build/client/assets/{index-BotyhhDm.js.map → index-DmASob5Y.js.map} +1 -1
  51. package/build/client/assets/index-TIHEbU65.js +36 -0
  52. package/build/client/assets/index-TIHEbU65.js.map +1 -0
  53. package/build/client/assets/{index-hogig2HK.js → index-aPMCrDDW.js} +2 -2
  54. package/build/client/assets/{index-hogig2HK.js.map → index-aPMCrDDW.js.map} +1 -1
  55. package/build/client/assets/{index-BXWoOGxB.js → index-bM_TIo_p.js} +2 -2
  56. package/build/client/assets/{index-BXWoOGxB.js.map → index-bM_TIo_p.js.map} +1 -1
  57. package/build/client/assets/index-kXas9qNh.js +2 -0
  58. package/build/client/assets/{index-c5oITeyN.js.map → index-kXas9qNh.js.map} +1 -1
  59. package/build/client/assets/loading-DXKqMYHW.js +2 -0
  60. package/build/client/assets/{loading-C5uX0jJw.js.map → loading-DXKqMYHW.js.map} +1 -1
  61. package/build/client/assets/login-WXKB-OYe.js +2 -0
  62. package/build/client/assets/login-WXKB-OYe.js.map +1 -0
  63. package/build/client/assets/manifest-5edda375.js +1 -0
  64. package/build/client/assets/mdx-D0cZm8uP.js +2 -0
  65. package/build/client/assets/{mdx-D7ttfz2V.js.map → mdx-D0cZm8uP.js.map} +1 -1
  66. package/build/client/assets/misc-LevbAJZ6.js +2 -0
  67. package/build/client/assets/misc-LevbAJZ6.js.map +1 -0
  68. package/build/client/assets/{nav-chevrons-B82nbdyj.js → nav-chevrons-BB1CK34B.js} +2 -2
  69. package/build/client/assets/{nav-chevrons-B82nbdyj.js.map → nav-chevrons-BB1CK34B.js.map} +1 -1
  70. package/build/client/assets/onboarding-CK8-hFDT.js +2 -0
  71. package/build/client/assets/{onboarding-Co4cldZ0.js.map → onboarding-CK8-hFDT.js.map} +1 -1
  72. package/build/client/assets/{pe-CUZaIcdt.js → pe-BmTNRcy_.js} +2 -2
  73. package/build/client/assets/{pe-CUZaIcdt.js.map → pe-BmTNRcy_.js.map} +1 -1
  74. package/build/client/assets/{presence-Cr--lRCr.js → presence-CmTnJPJh.js} +2 -2
  75. package/build/client/assets/{presence-Cr--lRCr.js.map → presence-CmTnJPJh.js.map} +1 -1
  76. package/build/client/assets/preview-BbJZ7UrX.js +2 -0
  77. package/build/client/assets/{preview-CdiZ0d0L.js.map → preview-BbJZ7UrX.js.map} +1 -1
  78. package/build/client/assets/product-Bi2uble-.js +2 -0
  79. package/build/client/assets/product-Bi2uble-.js.map +1 -0
  80. package/build/client/assets/{progress-bar-CSvo1ZXP.js → progress-bar-HYCoNAkN.js} +2 -2
  81. package/build/client/assets/{progress-bar-CSvo1ZXP.js.map → progress-bar-HYCoNAkN.js.map} +1 -1
  82. package/build/client/assets/{progress-Biq-ngNF.js → progress-fFpCuCyE.js} +2 -2
  83. package/build/client/assets/{progress-Biq-ngNF.js.map → progress-fFpCuCyE.js.map} +1 -1
  84. package/build/client/assets/{request-info-CEhUGODY.js → request-info-D6MPpnDd.js} +2 -2
  85. package/build/client/assets/{request-info-CEhUGODY.js.map → request-info-D6MPpnDd.js.map} +1 -1
  86. package/build/client/assets/{root-D_FY953d.js → root-CY8QRU4e.js} +6 -6
  87. package/build/client/assets/{root-D_FY953d.js.map → root-CY8QRU4e.js.map} +1 -1
  88. package/build/client/assets/set-playground-8-BH15HT.js +2 -0
  89. package/build/client/assets/{set-playground-BXHckvUG.js.map → set-playground-8-BH15HT.js.map} +1 -1
  90. package/build/client/assets/{support-hcqGIpir.js → support-l4EbxG8X.js} +2 -2
  91. package/build/client/assets/{support-hcqGIpir.js.map → support-l4EbxG8X.js.map} +1 -1
  92. package/build/client/assets/test--z-MS4Cz.js +2 -0
  93. package/build/client/assets/{test-BRkbo9G9.js.map → test--z-MS4Cz.js.map} +1 -1
  94. package/build/client/assets/{tests-DQuoxpDA.js → tests-CNclXTWp.js} +2 -2
  95. package/build/client/assets/{tests-DQuoxpDA.js.map → tests-CNclXTWp.js.map} +1 -1
  96. package/build/client/assets/{tooltip-BiHTe_7F.js → tooltip-Blm9zu1K.js} +2 -2
  97. package/build/client/assets/{tooltip-BiHTe_7F.js.map → tooltip-Blm9zu1K.js.map} +1 -1
  98. package/build/client/assets/{use-event-source-A_0lEOPX.js → use-event-source-C81lzj_8.js} +2 -2
  99. package/build/client/assets/{use-event-source-A_0lEOPX.js.map → use-event-source-C81lzj_8.js.map} +1 -1
  100. package/build/client/assets/{user-D6tTg1yS.js → user-2ca9K5af.js} +2 -2
  101. package/build/client/assets/{user-D6tTg1yS.js.map → user-2ca9K5af.js.map} +1 -1
  102. package/build/client/assets/workshop-config-COvWTBns.js +2 -0
  103. package/build/client/assets/workshop-config-COvWTBns.js.map +1 -0
  104. package/build/client/icons.svg +541 -526
  105. package/build/client/logo.svg +48 -0
  106. package/build/server/index.js +157 -83
  107. package/build/server/index.js.map +1 -1
  108. package/package.json +3 -3
  109. package/build/client/assets/_-DbrWZazo.js +0 -2
  110. package/build/client/assets/_exerciseNumber-CpcJsfoV.js +0 -2
  111. package/build/client/assets/_exerciseNumber_._stepNumber-B5pmJ29o.js +0 -2
  112. package/build/client/assets/_exerciseNumber_.finished-Ddb3J5ls.js +0 -2
  113. package/build/client/assets/_layout-BLsKV5zF.js +0 -6
  114. package/build/client/assets/_layout-BLsKV5zF.js.map +0 -1
  115. package/build/client/assets/_layout-CGLKLU3y.js +0 -2
  116. package/build/client/assets/_layout-DVR5FOsb.js +0 -2
  117. package/build/client/assets/accordion-BroSqIct.js +0 -2
  118. package/build/client/assets/account-7o6O4ruO.js +0 -2
  119. package/build/client/assets/app-BhrXo-z3.js +0 -2
  120. package/build/client/assets/client-hints-DNUUFGmB.js +0 -36
  121. package/build/client/assets/client-hints-DNUUFGmB.js.map +0 -1
  122. package/build/client/assets/clsx-B-dksMZM.js +0 -2
  123. package/build/client/assets/clsx-B-dksMZM.js.map +0 -1
  124. package/build/client/assets/diff-BNr0PhFR.js +0 -2
  125. package/build/client/assets/diff-Cr4LLBag.js +0 -2
  126. package/build/client/assets/discord-CHP4_JLJ.js +0 -2
  127. package/build/client/assets/discord-CHP4_JLJ.js.map +0 -1
  128. package/build/client/assets/finished-CU8QBU41.js +0 -2
  129. package/build/client/assets/index-1cKOJFpX.js +0 -37
  130. package/build/client/assets/index-6GyYWV9G.js +0 -2
  131. package/build/client/assets/index-6GyYWV9G.js.map +0 -1
  132. package/build/client/assets/index-BotyhhDm.js +0 -2
  133. package/build/client/assets/index-c5oITeyN.js +0 -2
  134. package/build/client/assets/loading-C5uX0jJw.js +0 -2
  135. package/build/client/assets/login-4cvVFzF8.js +0 -2
  136. package/build/client/assets/login-4cvVFzF8.js.map +0 -1
  137. package/build/client/assets/manifest-ab53352b.js +0 -1
  138. package/build/client/assets/mdx-D7ttfz2V.js +0 -2
  139. package/build/client/assets/misc-ENVX3CWf.js +0 -2
  140. package/build/client/assets/misc-ENVX3CWf.js.map +0 -1
  141. package/build/client/assets/onboarding-Co4cldZ0.js +0 -2
  142. package/build/client/assets/preview-CdiZ0d0L.js +0 -2
  143. package/build/client/assets/set-playground-BXHckvUG.js +0 -2
  144. package/build/client/assets/test-BRkbo9G9.js +0 -2
@@ -1187,6 +1187,13 @@ const WorkshopConfigSchema = z$1.object({
1187
1187
  instructor: InstructorSchema.optional(),
1188
1188
  epicWorkshopHost: z$1.string().default("www.epicweb.dev"),
1189
1189
  epicWorkshopSlug: z$1.string().optional(),
1190
+ product: z$1.object({
1191
+ host: z$1.string().default("www.epicweb.dev"),
1192
+ displayName: z$1.string().default("EpicWeb.dev"),
1193
+ displayNameShort: z$1.string().default("Epic Web"),
1194
+ logo: z$1.string().default("/logo.svg"),
1195
+ slug: z$1.string().optional()
1196
+ }).default({}),
1190
1197
  onboardingVideo: z$1.string().default(
1191
1198
  "https://www.epicweb.dev/tips/get-started-with-the-epic-workshop-app"
1192
1199
  ),
@@ -1209,6 +1216,17 @@ const WorkshopConfigSchema = z$1.object({
1209
1216
  }).optional(),
1210
1217
  initialRoute: z$1.string().optional().default("/")
1211
1218
  // Add this line
1219
+ }).transform((data) => {
1220
+ return {
1221
+ ...data,
1222
+ product: {
1223
+ ...data.product,
1224
+ displayNameShort: data.product.displayNameShort ?? data.product.displayName,
1225
+ // for backwards compatibility
1226
+ host: data.epicWorkshopHost,
1227
+ slug: data.epicWorkshopSlug
1228
+ }
1229
+ };
1212
1230
  });
1213
1231
  let cachedConfig = null;
1214
1232
  function bustWorkshopConfigCache() {
@@ -1275,7 +1293,7 @@ async function getStackBlitzUrl({
1275
1293
  const workshopConfig = getWorkshopConfig();
1276
1294
  const appConfig = await getAppConfig(fullPath);
1277
1295
  if (appConfig.stackBlitzConfig === null) return null;
1278
- let githubRootUrlString = workshopConfig.githubRepo;
1296
+ let githubRootUrlString = workshopConfig.githubRoot;
1279
1297
  const githubRootUrl = new URL(
1280
1298
  githubRootUrlString.replace(/\/blob\//, "/tree/")
1281
1299
  );
@@ -1308,8 +1326,7 @@ async function getAppConfig(fullPath) {
1308
1326
  }
1309
1327
  const AppConfigSchema = z$1.object({
1310
1328
  stackBlitzConfig: StackBlitzConfigSchema.nullable().optional().transform((appStackBlitzConfig) => {
1311
- if (!appStackBlitzConfig) return workshopConfig.stackBlitzConfig ?? null;
1312
- if (!workshopConfig.stackBlitzConfig) return appStackBlitzConfig;
1329
+ if (appStackBlitzConfig === null) return null;
1313
1330
  return {
1314
1331
  ...workshopConfig.stackBlitzConfig,
1315
1332
  ...appStackBlitzConfig
@@ -2738,7 +2755,7 @@ function AnimatedBars({
2738
2755
  }
2739
2756
  );
2740
2757
  }
2741
- const sizeClassName = {
2758
+ const sizeClassName$1 = {
2742
2759
  font: "w-[1em] h-[1em]",
2743
2760
  xs: "w-3 h-3",
2744
2761
  sm: "w-4 h-4",
@@ -2747,7 +2764,7 @@ const sizeClassName = {
2747
2764
  xl: "w-7 h-7",
2748
2765
  "2xl": "w-8 h-8"
2749
2766
  };
2750
- const childrenSizeClassName = {
2767
+ const childrenSizeClassName$1 = {
2751
2768
  font: "gap-1.5",
2752
2769
  xs: "gap-1.5",
2753
2770
  sm: "gap-1.5",
@@ -2768,7 +2785,7 @@ function Icon({
2768
2785
  return /* @__PURE__ */ jsxs(
2769
2786
  "span",
2770
2787
  {
2771
- className: `inline-flex items-center ${childrenSizeClassName[size]}`,
2788
+ className: `inline-flex items-center ${childrenSizeClassName$1[size]}`,
2772
2789
  children: [
2773
2790
  /* @__PURE__ */ jsx(Icon, { name, size, className, ...props }),
2774
2791
  children
@@ -2780,7 +2797,7 @@ function Icon({
2780
2797
  "svg",
2781
2798
  {
2782
2799
  ...props,
2783
- className: cn(sizeClassName[size], "inline self-center", className),
2800
+ className: cn(sizeClassName$1[size], "inline self-center", className),
2784
2801
  children: [
2785
2802
  title ? /* @__PURE__ */ jsx("title", { children: title }) : null,
2786
2803
  /* @__PURE__ */ jsx("use", { href: `/icons.svg#${name}`, fill: "transparent" })
@@ -3971,12 +3988,13 @@ const meta$5 = ({ data }) => {
3971
3988
  };
3972
3989
  async function loader$y({ request }) {
3973
3990
  const timings = makeTimings("rootLoader");
3991
+ const workshopConfig = getWorkshopConfig();
3974
3992
  const {
3975
3993
  title: workshopTitle,
3976
3994
  subtitle: workshopSubtitle,
3977
3995
  instructor,
3978
3996
  onboardingVideo
3979
- } = getWorkshopConfig();
3997
+ } = workshopConfig;
3980
3998
  const onboarding = await readOnboardingData();
3981
3999
  if (!ENV.EPICSHOP_DEPLOYED && !(onboarding == null ? void 0 : onboarding.tourVideosWatched.includes(onboardingVideo))) {
3982
4000
  if (new URL(request.url).pathname !== "/onboarding") {
@@ -3998,6 +4016,7 @@ async function loader$y({ request }) {
3998
4016
  const presentUsers = await getPresentUsers(user, { request, timings });
3999
4017
  return json$1(
4000
4018
  {
4019
+ workshopConfig,
4001
4020
  workshopTitle,
4002
4021
  workshopSubtitle,
4003
4022
  instructor,
@@ -4152,7 +4171,7 @@ function getWebsocketJS() {
4152
4171
  };
4153
4172
  ws.onclose = (event) => {
4154
4173
  if (event.code === 1006) {
4155
- console.log("Epic Web dev server web socket closed. Reconnecting...");
4174
+ console.log("EpicShop dev server web socket closed. Reconnecting...");
4156
4175
  setTimeout(
4157
4176
  () =>
4158
4177
  epicLiveReloadConnect({
@@ -4163,7 +4182,7 @@ function getWebsocketJS() {
4163
4182
  }
4164
4183
  };
4165
4184
  ws.onerror = (error) => {
4166
- console.log("Epic Web dev server web socket error:");
4185
+ console.log("EpicShop dev server web socket error:");
4167
4186
  console.error(error);
4168
4187
  };
4169
4188
  }
@@ -4236,6 +4255,78 @@ function makeMediaQueryStore(mediaQuery, serverSnapshot) {
4236
4255
  return useSyncExternalStore(subscribe, getSnapshot, () => serverSnapshot);
4237
4256
  };
4238
4257
  }
4258
+ function useWorkshopConfig() {
4259
+ const data = useRouteLoaderData("root");
4260
+ if (!(data == null ? void 0 : data.workshopConfig)) {
4261
+ throw new Error("useWorkshopConfig requires a workshopConfig.");
4262
+ }
4263
+ return data.workshopConfig;
4264
+ }
4265
+ const sizeClassName = {
4266
+ font: "w-[1em] h-[1em]",
4267
+ xs: "w-3 h-3",
4268
+ sm: "w-4 h-4",
4269
+ md: "w-5 h-5",
4270
+ lg: "w-6 h-6",
4271
+ xl: "w-7 h-7",
4272
+ "2xl": "w-8 h-8"
4273
+ };
4274
+ const childrenSizeClassName = {
4275
+ font: "gap-1.5",
4276
+ xs: "gap-1.5",
4277
+ sm: "gap-1.5",
4278
+ md: "gap-2",
4279
+ lg: "gap-2",
4280
+ xl: "gap-3",
4281
+ "2xl": "gap-4"
4282
+ };
4283
+ function Logo({
4284
+ size = "font",
4285
+ style = "themed",
4286
+ className,
4287
+ children,
4288
+ ...props
4289
+ }) {
4290
+ const {
4291
+ product: { logo, displayName }
4292
+ } = useWorkshopConfig();
4293
+ const theme = useTheme();
4294
+ const logoElement = logo.includes(".svg") ? /* @__PURE__ */ jsxs(
4295
+ "svg",
4296
+ {
4297
+ ...props,
4298
+ className: cn(sizeClassName[size], "inline self-center", className),
4299
+ children: [
4300
+ /* @__PURE__ */ jsx("title", { children: displayName }),
4301
+ /* @__PURE__ */ jsx("use", { href: `${logo}#${style === "themed" ? theme : "monochrome"}` })
4302
+ ]
4303
+ }
4304
+ ) : (
4305
+ // @ts-expect-error - svg props can't all be applied to img... meh, probably won't ever be a real issue...
4306
+ /* @__PURE__ */ jsx(
4307
+ "img",
4308
+ {
4309
+ src: logo,
4310
+ alt: displayName,
4311
+ ...props,
4312
+ className: cn(sizeClassName[size], "inline self-center", className)
4313
+ }
4314
+ )
4315
+ );
4316
+ if (children) {
4317
+ return /* @__PURE__ */ jsxs(
4318
+ "span",
4319
+ {
4320
+ className: `inline-flex items-center ${childrenSizeClassName[size]}`,
4321
+ children: [
4322
+ logoElement,
4323
+ children
4324
+ ]
4325
+ }
4326
+ );
4327
+ }
4328
+ return logoElement;
4329
+ }
4239
4330
  const Dialog = DialogPrimitive.Root;
4240
4331
  const DialogTrigger = DialogPrimitive.Trigger;
4241
4332
  const DialogPortal = DialogPrimitive.Portal;
@@ -4690,6 +4781,9 @@ function getScoreClassNames(score) {
4690
4781
  function FacePile({ isMenuOpened }) {
4691
4782
  const loggedInUser = useOptionalUser();
4692
4783
  const { users } = usePresence();
4784
+ const {
4785
+ product: { displayNameShort }
4786
+ } = useWorkshopConfig();
4693
4787
  const limit = isMenuOpened ? 17 : 0;
4694
4788
  const numberOverLimit = users.length - limit;
4695
4789
  if (!users.length) return null;
@@ -4712,7 +4806,7 @@ function FacePile({ isMenuOpened }) {
4712
4806
  )
4713
4807
  }
4714
4808
  ) : null;
4715
- const overLimitLabel = `${numberOverLimit}${isMenuOpened ? " more " : " "}Epic Web Dev${numberOverLimit === 1 ? "" : "s"} working now`;
4809
+ const overLimitLabel = `${numberOverLimit}${isMenuOpened ? " more " : " "}${displayNameShort} Dev${numberOverLimit === 1 ? "" : "s"} working now`;
4716
4810
  return /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center gap-2", children: /* @__PURE__ */ jsxs(TooltipProvider, { children: [
4717
4811
  users.slice(0, limit).map(({ user, score }) => {
4718
4812
  var _a2, _b;
@@ -4723,7 +4817,7 @@ function FacePile({ isMenuOpened }) {
4723
4817
  "img",
4724
4818
  {
4725
4819
  tabIndex: 0,
4726
- alt: user.name || "Epic Web Dev",
4820
+ alt: user.name || displayNameShort,
4727
4821
  className: cn(
4728
4822
  "h-8 w-8 rounded-full border object-cover",
4729
4823
  scoreClassNames
@@ -4734,7 +4828,7 @@ function FacePile({ isMenuOpened }) {
4734
4828
  "div",
4735
4829
  {
4736
4830
  tabIndex: 0,
4737
- "aria-label": user.name || "Epic Web Dev",
4831
+ "aria-label": user.name || `${displayNameShort} Dev`,
4738
4832
  className: cn(
4739
4833
  "flex h-8 w-8 items-center justify-center rounded-full border",
4740
4834
  scoreClassNames
@@ -4744,9 +4838,9 @@ function FacePile({ isMenuOpened }) {
4744
4838
  ) }),
4745
4839
  /* @__PURE__ */ jsx(TooltipContent, { children: /* @__PURE__ */ jsxs("span", { className: "flex flex-col items-center justify-center gap-1", children: [
4746
4840
  /* @__PURE__ */ jsxs("span", { children: [
4747
- user.name || "An EPIC Web Dev",
4841
+ user.name || `${displayNameShort} Dev`,
4748
4842
  " ",
4749
- locationLabel ? ` is ${((_b = (_a2 = user.location) == null ? void 0 : _a2.origin) == null ? void 0 : _b.includes("epicweb.dev")) ? "learning" : "working"} ${score === 1 && (loggedInUser == null ? void 0 : loggedInUser.id) !== user.id ? "with you" : ""} on` : null
4843
+ locationLabel ? ` is ${((_b = (_a2 = user.location) == null ? void 0 : _a2.origin) == null ? void 0 : _b.includes("localhost")) ? "working" : "learning"} ${score === 1 && (loggedInUser == null ? void 0 : loggedInUser.id) !== user.id ? "with you" : ""} on` : null
4750
4844
  ] }),
4751
4845
  (locationLabel == null ? void 0 : locationLabel.line1) ? /* @__PURE__ */ jsx("span", { children: locationLabel.line1 }) : null,
4752
4846
  (locationLabel == null ? void 0 : locationLabel.line2) ? /* @__PURE__ */ jsx("span", { children: locationLabel.line2 }) : null
@@ -4787,7 +4881,7 @@ function App() {
4787
4881
  const isHydrated = useHydrated();
4788
4882
  const [isMenuOpened, setMenuOpened] = React.useState(false);
4789
4883
  return /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
4790
- user ? null : /* @__PURE__ */ jsx(EpicWebBanner, {}),
4884
+ user ? null : /* @__PURE__ */ jsx(NoUserBanner, {}),
4791
4885
  isHydrated && isWide ? null : /* @__PURE__ */ jsx(
4792
4886
  MobileNavigation,
4793
4887
  {
@@ -4835,8 +4929,11 @@ function getLocationLabel(location) {
4835
4929
  ].filter(Boolean).join(" - ");
4836
4930
  return { line1: location.workshopTitle, line2: exercisePortion };
4837
4931
  }
4838
- function EpicWebBanner() {
4932
+ function NoUserBanner() {
4839
4933
  const isWide = useIsWide();
4934
+ const {
4935
+ product: { host, displayName }
4936
+ } = useWorkshopConfig();
4840
4937
  const details = /* @__PURE__ */ jsx("div", { children: ENV.EPICSHOP_DEPLOYED ? /* @__PURE__ */ jsxs("div", { children: [
4841
4938
  `This is the deployed version. `,
4842
4939
  /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -4858,13 +4955,13 @@ function EpicWebBanner() {
4858
4955
  " ",
4859
4956
  "or",
4860
4957
  " ",
4861
- /* @__PURE__ */ jsx("a", { href: "https://www.epicweb.dev/login", className: "underline", children: "join for free" }),
4958
+ /* @__PURE__ */ jsx("a", { href: `https://${host}/login`, className: "underline", children: "join for free" }),
4862
4959
  " ",
4863
4960
  "for the full experience."
4864
4961
  ] }) });
4865
4962
  return /* @__PURE__ */ jsx("div", { className: "z-10 flex h-16 items-center justify-between border-b bg-gradient-to-tr from-blue-500 to-indigo-500 pl-4 text-white", children: isWide ? /* @__PURE__ */ jsxs(Fragment, { children: [
4866
4963
  /* @__PURE__ */ jsxs("div", { className: "hidden flex-1 flex-wrap items-center gap-4 sm:flex", children: [
4867
- /* @__PURE__ */ jsx(Icon, { name: "EpicWeb", size: "lg" }),
4964
+ /* @__PURE__ */ jsx(Logo, { size: "lg", style: "monochrome" }),
4868
4965
  /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-wrap items-center", children: [
4869
4966
  /* @__PURE__ */ jsxs("p", { className: "mr-2", children: [
4870
4967
  "Welcome to the",
@@ -4872,10 +4969,10 @@ function EpicWebBanner() {
4872
4969
  /* @__PURE__ */ jsx(
4873
4970
  Link,
4874
4971
  {
4875
- to: "https://www.epicweb.dev",
4972
+ to: `https://${host}`,
4876
4973
  className: "underline",
4877
4974
  target: "_blank",
4878
- children: "EpicWeb.dev"
4975
+ children: displayName
4879
4976
  }
4880
4977
  ),
4881
4978
  " ",
@@ -4888,11 +4985,14 @@ function EpicWebBanner() {
4888
4985
  /* @__PURE__ */ jsxs(
4889
4986
  Link,
4890
4987
  {
4891
- to: "https://www.epicweb.dev",
4988
+ to: `https://${host}`,
4892
4989
  target: "_blank",
4893
4990
  className: "flex h-full items-center justify-center space-x-1.5 px-5 text-sm font-semibold",
4894
4991
  children: [
4895
- /* @__PURE__ */ jsx("span", { className: "drop-shadow-sm", children: "Join Epic Web" }),
4992
+ /* @__PURE__ */ jsxs("span", { className: "drop-shadow-sm", children: [
4993
+ "Join ",
4994
+ displayName
4995
+ ] }),
4896
4996
  /* @__PURE__ */ jsx("span", { children: "↗︎" })
4897
4997
  ]
4898
4998
  }
@@ -4900,7 +5000,7 @@ function EpicWebBanner() {
4900
5000
  /* @__PURE__ */ jsxs(
4901
5001
  Link,
4902
5002
  {
4903
- to: ENV.EPICSHOP_DEPLOYED ? "https://www.epicweb.dev/login" : "/login",
5003
+ to: ENV.EPICSHOP_DEPLOYED ? `https://${host}/login` : "/login",
4904
5004
  className: "flex h-full items-center justify-center space-x-1.5 bg-white/20 px-5 text-sm font-semibold shadow-md transition hover:bg-white/30",
4905
5005
  children: [
4906
5006
  /* @__PURE__ */ jsx(Icon, { name: "User", size: "lg" }),
@@ -4911,18 +5011,18 @@ function EpicWebBanner() {
4911
5011
  ] })
4912
5012
  ] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
4913
5013
  /* @__PURE__ */ jsxs("div", { className: "flex flex-1 flex-wrap items-center gap-4 sm:hidden", children: [
4914
- /* @__PURE__ */ jsx("a", { href: "https://www.epicweb.dev", children: /* @__PURE__ */ jsx(Icon, { name: "EpicWeb", size: "lg" }) }),
5014
+ /* @__PURE__ */ jsx("a", { href: `https://${host}`, children: /* @__PURE__ */ jsx(Logo, { size: "lg", style: "monochrome" }) }),
4915
5015
  /* @__PURE__ */ jsxs(Dialog, { children: [
4916
5016
  /* @__PURE__ */ jsx(DialogTrigger, { children: /* @__PURE__ */ jsx(Icon, { name: "Question", size: "lg", className: "animate-pulse" }) }),
4917
5017
  /* @__PURE__ */ jsxs(DialogContent, { children: [
4918
5018
  /* @__PURE__ */ jsxs(DialogHeader, { children: [
4919
- /* @__PURE__ */ jsx(Icon, { name: "EpicWeb", size: "lg" }),
4920
- /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: "EpicWeb.dev" })
5019
+ /* @__PURE__ */ jsx(Logo, { size: "lg", style: "monochrome" }),
5020
+ /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: displayName })
4921
5021
  ] }),
4922
5022
  /* @__PURE__ */ jsxs(DialogDescription, { children: [
4923
5023
  "Welcome to the",
4924
5024
  " ",
4925
- /* @__PURE__ */ jsx(Link, { to: "https://www.epicweb.dev", className: "underline", children: "EpicWeb.dev" }),
5025
+ /* @__PURE__ */ jsx(Link, { to: `https://${host}`, className: "underline", children: displayName }),
4926
5026
  " ",
4927
5027
  "Workshop app!"
4928
5028
  ] }),
@@ -4934,7 +5034,7 @@ function EpicWebBanner() {
4934
5034
  /* @__PURE__ */ jsxs(
4935
5035
  Link,
4936
5036
  {
4937
- to: "https://www.epicweb.dev",
5037
+ to: `https://${host}`,
4938
5038
  target: "_blank",
4939
5039
  className: "flex h-full items-center justify-center space-x-1.5 px-5 text-sm font-semibold",
4940
5040
  children: [
@@ -4946,7 +5046,7 @@ function EpicWebBanner() {
4946
5046
  /* @__PURE__ */ jsxs(
4947
5047
  Link,
4948
5048
  {
4949
- to: ENV.EPICSHOP_DEPLOYED ? "https://www.epicweb.dev/login" : "/login",
5049
+ to: ENV.EPICSHOP_DEPLOYED ? `https://${host}/login` : "/login",
4950
5050
  className: "flex h-full items-center justify-center space-x-1.5 bg-white/20 px-5 text-sm font-semibold shadow-md transition hover:bg-white/30",
4951
5051
  children: [
4952
5052
  /* @__PURE__ */ jsx(Icon, { name: "User", size: "lg" }),
@@ -6223,7 +6323,7 @@ async function loader$r({ request, params }) {
6223
6323
  };
6224
6324
  ws.onclose = (event) => {
6225
6325
  if (event.code === 1006) {
6226
- console.log("Epic Web dev server web socket closed. Reconnecting...");
6326
+ console.log("EpicShop dev server web socket closed. Reconnecting...");
6227
6327
  setTimeout(
6228
6328
  () =>
6229
6329
  epicLiveReloadConnect({
@@ -6234,7 +6334,7 @@ async function loader$r({ request, params }) {
6234
6334
  }
6235
6335
  };
6236
6336
  ws.onerror = (error) => {
6237
- console.log("Epic Web dev server web socket error:");
6337
+ console.log("EpicShop dev server web socket error:");
6238
6338
  console.error(error);
6239
6339
  };
6240
6340
  }
@@ -7045,6 +7145,9 @@ function DeferredEpicVideo({
7045
7145
  url,
7046
7146
  title = extractEpicTitle(url)
7047
7147
  }) {
7148
+ const {
7149
+ product: { host: epicWorkshopHost, displayName }
7150
+ } = useWorkshopConfig();
7048
7151
  const user = useOptionalUser();
7049
7152
  const epicVideoInfosPromise = React.useContext(EpicVideoInfoContext);
7050
7153
  const linkUI = /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(VideoLink, { url, title }) });
@@ -7106,12 +7209,16 @@ function DeferredEpicVideo({
7106
7209
  /* @__PURE__ */ jsxs("div", { children: [
7107
7210
  "To continue watching uninterrupted, please",
7108
7211
  " ",
7109
- /* @__PURE__ */ jsx(
7212
+ /* @__PURE__ */ jsxs(
7110
7213
  "a",
7111
7214
  {
7112
- href: "https://www.epicweb.dev/products/full-stack-vol-1",
7215
+ href: `https://${epicWorkshopHost}/products`,
7113
7216
  className: "underline",
7114
- children: "upgrade your EpicWeb.dev license"
7217
+ children: [
7218
+ "upgrade your ",
7219
+ displayName,
7220
+ " license"
7221
+ ]
7115
7222
  }
7116
7223
  ),
7117
7224
  " ",
@@ -7124,7 +7231,7 @@ function DeferredEpicVideo({
7124
7231
  /* @__PURE__ */ jsx(
7125
7232
  Link,
7126
7233
  {
7127
- to: "https://www.epicweb.dev/products",
7234
+ to: `https://${epicWorkshopHost}/products`,
7128
7235
  className: "underline",
7129
7236
  children: "Upgrade"
7130
7237
  }
@@ -7150,7 +7257,7 @@ function DeferredEpicVideo({
7150
7257
  /* @__PURE__ */ jsx(
7151
7258
  Link,
7152
7259
  {
7153
- to: "https://www.epicweb.dev/products",
7260
+ to: `https://${epicWorkshopHost}/products`,
7154
7261
  className: "underline",
7155
7262
  children: "Upgrade"
7156
7263
  }
@@ -12458,6 +12565,9 @@ async function action$2() {
12458
12565
  }
12459
12566
  function Login() {
12460
12567
  var _a2;
12568
+ const {
12569
+ product: { displayName }
12570
+ } = useWorkshopConfig();
12461
12571
  const loginFetcher = useFetcher();
12462
12572
  const [clickedVerificationLink, setClickedVerificationLink] = useState(false);
12463
12573
  const [authError, setAuthError] = useState(null);
@@ -12491,8 +12601,15 @@ function Login() {
12491
12601
  }, [lastMessage, navigate, revalidator]);
12492
12602
  return /* @__PURE__ */ jsx("main", { className: "flex h-full w-full flex-grow flex-col items-center justify-center p-10 text-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center", children: [
12493
12603
  /* @__PURE__ */ jsx(Logo, { className: "h-16 w-16" }),
12494
- /* @__PURE__ */ jsx("h1", { className: "pt-5 text-2xl font-semibold md:text-3xl", children: "Authenticate with EpicWeb.dev" }),
12495
- /* @__PURE__ */ jsx("h2", { className: "max-w-sm pt-3 text-base text-gray-700 dark:text-gray-300", children: "If you have purchased Epic Web, you'll be able to watch videos, track progress, and more!" }),
12604
+ /* @__PURE__ */ jsxs("h1", { className: "pt-5 text-2xl font-semibold md:text-3xl", children: [
12605
+ "Authenticate with ",
12606
+ displayName
12607
+ ] }),
12608
+ /* @__PURE__ */ jsxs("h2", { className: "max-w-sm pt-3 text-base text-gray-700 dark:text-gray-300", children: [
12609
+ "If you have purchased ",
12610
+ displayName,
12611
+ ", you'll be able to watch videos, track progress, and more!"
12612
+ ] }),
12496
12613
  /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col items-center pt-5", children: [
12497
12614
  userCodeInfo ? /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col items-center gap-3", children: [
12498
12615
  /* @__PURE__ */ jsxs("div", { className: "my-2 flex w-full flex-col items-center gap-2", children: [
@@ -12519,49 +12636,6 @@ function Login() {
12519
12636
  ] })
12520
12637
  ] }) });
12521
12638
  }
12522
- function Logo({ className = "" }) {
12523
- return /* @__PURE__ */ jsxs(
12524
- "svg",
12525
- {
12526
- className,
12527
- viewBox: "0 0 24 24",
12528
- fill: "none",
12529
- xmlns: "http://www.w3.org/2000/svg",
12530
- "aria-hidden": "true",
12531
- children: [
12532
- /* @__PURE__ */ jsx(
12533
- "path",
12534
- {
12535
- d: "M12.438 11.5677C12.0131 11.8026 11.5249 12.0534 10.9784 12.3047C8.80704 13.3031 5.70429 14.314 1.986 14.3555L1.55773 14.3603L1.48003 13.9391C1.36509 13.316 1.29793 12.6714 1.29793 12.006C1.29793 6.10441 6.09863 1.30372 12.0002 1.30372C13.6287 1.30372 15.1745 1.66961 16.5585 2.32369L17.9801 1.59897C16.2189 0.582162 14.1769 0 12.0002 0C5.38709 0 0 5.38709 0 12.0002C0 14.6402 0.858474 17.0847 2.31072 19.0692C4.79741 18.6457 6.35749 17.6495 6.35749 17.6495C6.35749 17.6495 5.36137 19.2075 4.93785 21.6946C6.92114 23.1439 9.36321 24.0005 12.0002 24.0005C18.6134 24.0005 24.0005 18.6134 24.0005 12.0002C24.0005 9.82732 23.4199 7.78762 22.4053 6.02738L21.6818 7.44613C22.3364 8.83057 22.7025 10.3769 22.7025 12.006C22.7025 17.9076 17.9018 22.7083 12.0002 22.7083C11.3345 22.7083 10.6959 22.6411 10.0681 22.5264L9.646 22.4493L9.65079 22.0203C9.6923 18.2991 10.7031 15.1964 11.7016 13.0257C11.9527 12.4797 12.2033 11.9921 12.438 11.5677Z",
12536
- fill: "url(#epicGradient)"
12537
- }
12538
- ),
12539
- /* @__PURE__ */ jsx(
12540
- "path",
12541
- {
12542
- d: "M18.2525 9.31052L15.4992 8.50683L14.6953 5.74778L23.8291 0.171387L18.2525 9.31052Z",
12543
- fill: "currentColor"
12544
- }
12545
- ),
12546
- /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
12547
- "linearGradient",
12548
- {
12549
- id: "epicGradient",
12550
- x1: "16.9703",
12551
- y1: "7.03022",
12552
- x2: "7.05798",
12553
- y2: "16.948",
12554
- gradientUnits: "userSpaceOnUse",
12555
- children: [
12556
- /* @__PURE__ */ jsx("stop", { stopColor: "#4F75FF" }),
12557
- /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "#30AFFF" })
12558
- ]
12559
- }
12560
- ) })
12561
- ]
12562
- }
12563
- );
12564
- }
12565
12639
  const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12566
12640
  __proto__: null,
12567
12641
  action: action$2,
@@ -13505,7 +13579,7 @@ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
13505
13579
  __proto__: null,
13506
13580
  loader
13507
13581
  }, Symbol.toStringTag, { value: "Module" }));
13508
- const serverManifest = { "entry": { "module": "/assets/entry.client-3M2p-8I3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js"], "css": [] }, "routes": { "root": { "id": "root", "parentId": void 0, "path": "", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/root-D_FY953d.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-B-hHvmeV.js", "/assets/index-6GyYWV9G.js", "/assets/presence-Cr--lRCr.js", "/assets/seo-pBpFCWsy.js"], "css": [] }, "routes/$": { "id": "routes/$", "parentId": "root", "path": "*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_-DbrWZazo.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/error-boundary-DDTvdkB4.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-BLsKV5zF.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/request-info-CEhUGODY.js", "/assets/pe-CUZaIcdt.js", "/assets/client-hints-DNUUFGmB.js", "/assets/index-BXWoOGxB.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.js", "/assets/progress-Biq-ngNF.js", "/assets/index-6GyYWV9G.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-7o6O4ruO.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/button-BklqyTPS.js", "/assets/tooltip-BiHTe_7F.js", "/assets/user-D6tTg1yS.js", "/assets/presence-Cr--lRCr.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-CHP4_JLJ.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/user-D6tTg1yS.js", "/assets/discord-Dq4e30wV.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-BUs3av-e.js", "imports": ["/assets/index-1cKOJFpX.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-CpcJsfoV.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-B5pmJ29o.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-DVR5FOsb.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.js", "/assets/set-playground-BXHckvUG.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-BhrXo-z3.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/pe-CUZaIcdt.js", "/assets/button-BklqyTPS.js", "/assets/loading-C5uX0jJw.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-6GyYWV9G.js", "/assets/preview-CdiZ0d0L.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-c5oITeyN.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/mdx-D7ttfz2V.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-BXHckvUG.js", "/assets/button-BklqyTPS.js", "/assets/diff-Cr4LLBag.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/discord-Dq4e30wV.js", "/assets/index-B-hHvmeV.js", "/assets/tests-DQuoxpDA.js", "/assets/preview-CdiZ0d0L.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-BRkbo9G9.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/index-6GyYWV9G.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/set-playground-BXHckvUG.js", "/assets/tests-DQuoxpDA.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-Ddb3J5ls.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-CU8QBU41.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/nav-chevrons-B82nbdyj.js", "/assets/mdx-D7ttfz2V.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-Biq-ngNF.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-BotyhhDm.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js", "/assets/clsx-B-dksMZM.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/index-Dx5GmdYq.js", "/assets/error-boundary-DDTvdkB4.js", "/assets/mdx-D7ttfz2V.js", "/assets/progress-Biq-ngNF.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-4cvVFzF8.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/use-event-source-A_0lEOPX.js", "/assets/button-BklqyTPS.js", "/assets/loading-C5uX0jJw.js"], "css": [] }, "routes/_app+/support": { "id": "routes/_app+/support", "parentId": "routes/_app+/_layout", "path": "support", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/support-hcqGIpir.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/components-CME-nGId.js"], "css": [] }, "routes/admin+/_layout": { "id": "routes/admin+/_layout", "parentId": "root", "path": "admin", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-CGLKLU3y.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/pe-CUZaIcdt.js", "/assets/tooltip-BiHTe_7F.js", "/assets/progress-Biq-ngNF.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-BNr0PhFR.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/tooltip-BiHTe_7F.js", "/assets/index-BXWoOGxB.js", "/assets/index-hogig2HK.js", "/assets/request-info-CEhUGODY.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/epic-video-CxZy3iqK.js", "/assets/progress-bar-CSvo1ZXP.js", "/assets/accordion-BroSqIct.js", "/assets/mdx-D7ttfz2V.js", "/assets/diff-Cr4LLBag.js", "/assets/nav-chevrons-B82nbdyj.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-Co4cldZ0.js", "imports": ["/assets/index-1cKOJFpX.js", "/assets/clsx-B-dksMZM.js", "/assets/components-CME-nGId.js", "/assets/misc-ENVX3CWf.js", "/assets/request-info-CEhUGODY.js", "/assets/tooltip-BiHTe_7F.js", "/assets/client-hints-DNUUFGmB.js", "/assets/pe-CUZaIcdt.js", "/assets/index-6GyYWV9G.js", "/assets/loading-C5uX0jJw.js", "/assets/user-D6tTg1yS.js", "/assets/button-BklqyTPS.js", "/assets/epic-video-CxZy3iqK.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-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-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-ab53352b.js", "version": "ab53352b" };
13582
+ const serverManifest = { "entry": { "module": "/assets/entry.client-7AjQ7fYK.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.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-CY8QRU4e.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/error-boundary-Bx1mDmB-.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/index-Bt0Fs1uZ.js", "/assets/index-TIHEbU65.js", "/assets/presence-CmTnJPJh.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/_-Cv8HqtE8.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/error-boundary-Bx1mDmB-.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-C9AozQxr.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/workshop-config-COvWTBns.js", "/assets/product-Bi2uble-.js", "/assets/index-bM_TIo_p.js", "/assets/user-2ca9K5af.js", "/assets/presence-CmTnJPJh.js", "/assets/progress-fFpCuCyE.js"], "css": [] }, "routes/_app+/account": { "id": "routes/_app+/account", "parentId": "routes/_app+/_layout", "path": "account", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/account-B-3k5HDM.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/button-DataaIpW.js", "/assets/tooltip-Blm9zu1K.js", "/assets/user-2ca9K5af.js", "/assets/presence-CmTnJPJh.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-BqGuuhG3.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/user-2ca9K5af.js", "/assets/discord-BfUTLoVF.js"], "css": [] }, "routes/_app+/exercise+/_layout": { "id": "routes/_app+/exercise+/_layout", "parentId": "routes/_app+/_layout", "path": "exercise", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_layout-CRkVkufr.js", "imports": ["/assets/index-2WpY3jqc.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber": { "id": "routes/_app+/exercise+/$exerciseNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber-D2tXimAK.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/epic-video-D8tfMIv8.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/index-DGsreVfh.js", "/assets/mdx-D0cZm8uP.js", "/assets/progress-fFpCuCyE.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/:stepNumber", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_exerciseNumber_._stepNumber-CquNe5XV.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": ":type", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/_layout-C7yUCsjZ.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/epic-video-D8tfMIv8.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/index-bM_TIo_p.js", "/assets/index-aPMCrDDW.js", "/assets/index-DGsreVfh.js", "/assets/error-boundary-Bx1mDmB-.js", "/assets/nav-chevrons-BB1CK34B.js", "/assets/mdx-D0cZm8uP.js", "/assets/progress-fFpCuCyE.js", "/assets/set-playground-8-BH15HT.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "app", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app-DAWCzuDw.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/button-DataaIpW.js", "/assets/loading-DXKqMYHW.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/preview-BbJZ7UrX.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": true, "module": "/assets/index-kXas9qNh.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/tooltip-Blm9zu1K.js", "/assets/index-bM_TIo_p.js", "/assets/index-aPMCrDDW.js", "/assets/request-info-D6MPpnDd.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/epic-video-D8tfMIv8.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/accordion-B-gQ5Whz.js", "/assets/mdx-D0cZm8uP.js", "/assets/use-event-source-C81lzj_8.js", "/assets/set-playground-8-BH15HT.js", "/assets/button-DataaIpW.js", "/assets/diff-BWSOt7tL.js", "/assets/error-boundary-Bx1mDmB-.js", "/assets/discord-BfUTLoVF.js", "/assets/index-Bt0Fs1uZ.js", "/assets/tests-CNclXTWp.js", "/assets/preview-BbJZ7UrX.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test--z-MS4Cz.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/tooltip-Blm9zu1K.js", "/assets/index-bM_TIo_p.js", "/assets/index-aPMCrDDW.js", "/assets/request-info-D6MPpnDd.js", "/assets/pe-BmTNRcy_.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/accordion-B-gQ5Whz.js", "/assets/index-TIHEbU65.js", "/assets/use-event-source-C81lzj_8.js", "/assets/set-playground-8-BH15HT.js", "/assets/tests-CNclXTWp.js"], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-B-sqDk3j.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/epic-video-D8tfMIv8.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/index-DGsreVfh.js", "/assets/nav-chevrons-BB1CK34B.js", "/assets/mdx-D0cZm8uP.js", "/assets/progress-fFpCuCyE.js", "/assets/seo-pBpFCWsy.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/finished": { "id": "routes/_app+/finished", "parentId": "routes/_app+/_layout", "path": "finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/finished-DvXH6L-Q.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/epic-video-D8tfMIv8.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/index-DGsreVfh.js", "/assets/nav-chevrons-BB1CK34B.js", "/assets/mdx-D0cZm8uP.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-fFpCuCyE.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-DmASob5Y.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/epic-video-D8tfMIv8.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/index-DGsreVfh.js", "/assets/error-boundary-Bx1mDmB-.js", "/assets/mdx-D0cZm8uP.js", "/assets/progress-fFpCuCyE.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-WXKB-OYe.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/workshop-config-COvWTBns.js", "/assets/use-event-source-C81lzj_8.js", "/assets/button-DataaIpW.js", "/assets/loading-DXKqMYHW.js", "/assets/product-Bi2uble-.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-l4EbxG8X.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.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-Ciyqvptc.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/pe-BmTNRcy_.js", "/assets/tooltip-Blm9zu1K.js", "/assets/progress-fFpCuCyE.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-JWdZCc2F.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/tooltip-Blm9zu1K.js", "/assets/index-bM_TIo_p.js", "/assets/index-aPMCrDDW.js", "/assets/request-info-D6MPpnDd.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/epic-video-D8tfMIv8.js", "/assets/progress-bar-HYCoNAkN.js", "/assets/accordion-B-gQ5Whz.js", "/assets/mdx-D0cZm8uP.js", "/assets/diff-BWSOt7tL.js", "/assets/nav-chevrons-BB1CK34B.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-CK8-hFDT.js", "imports": ["/assets/index-2WpY3jqc.js", "/assets/components-BQB6wEvm.js", "/assets/misc-LevbAJZ6.js", "/assets/request-info-D6MPpnDd.js", "/assets/tooltip-Blm9zu1K.js", "/assets/pe-BmTNRcy_.js", "/assets/index-TIHEbU65.js", "/assets/loading-DXKqMYHW.js", "/assets/user-2ca9K5af.js", "/assets/workshop-config-COvWTBns.js", "/assets/button-DataaIpW.js", "/assets/epic-video-D8tfMIv8.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/processes": { "id": "routes/processes", "parentId": "root", "path": "processes", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/processes-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/progress": { "id": "routes/progress", "parentId": "root", "path": "progress", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/progress-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/robots[.]txt": { "id": "routes/robots[.]txt", "parentId": "root", "path": "robots.txt", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/robots_._txt-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/set-playground": { "id": "routes/set-playground", "parentId": "root", "path": "set-playground", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/set-playground-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/sitemap[.]xml": { "id": "routes/sitemap[.]xml", "parentId": "root", "path": "sitemap.xml", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/sitemap_._xml-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/start": { "id": "routes/start", "parentId": "root", "path": "start", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/start-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/test": { "id": "routes/test", "parentId": "root", "path": "test", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/theme/index": { "id": "routes/theme/index", "parentId": "root", "path": "theme", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-DP2rzg_V.js", "imports": [], "css": [] }, "routes/update-mdx-cache": { "id": "routes/update-mdx-cache", "parentId": "root", "path": "update-mdx-cache", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/update-mdx-cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-5edda375.js", "version": "5edda375" };
13509
13583
  const mode = "production";
13510
13584
  const assetsBuildDirectory = "build/client";
13511
13585
  const basename = "/";