@epic-web/workshop-app 5.0.3 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1978) hide show
  1. package/build/client/assets/app.epic_ws_.js_-l0sNRNKZ.js +2 -0
  2. package/build/client/assets/app.epic_ws_.js_-l0sNRNKZ.js.map +1 -0
  3. package/build/client/assets/manifest-b22910a7.js +1 -0
  4. package/build/server/index.js +265 -2484
  5. package/build/server/index.js.map +1 -1
  6. package/package.json +3 -25
  7. package/build/client/assets/manifest-d7c89645.js +0 -1
  8. package/node_modules/@babel/runtime/LICENSE +0 -22
  9. package/node_modules/@babel/runtime/README.md +0 -19
  10. package/node_modules/@babel/runtime/helpers/AwaitValue.js +0 -4
  11. package/node_modules/@babel/runtime/helpers/OverloadYield.js +0 -4
  12. package/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +0 -9
  13. package/node_modules/@babel/runtime/helpers/applyDecs.js +0 -236
  14. package/node_modules/@babel/runtime/helpers/applyDecs2203.js +0 -184
  15. package/node_modules/@babel/runtime/helpers/applyDecs2203R.js +0 -191
  16. package/node_modules/@babel/runtime/helpers/applyDecs2301.js +0 -222
  17. package/node_modules/@babel/runtime/helpers/applyDecs2305.js +0 -133
  18. package/node_modules/@babel/runtime/helpers/applyDecs2311.js +0 -124
  19. package/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +0 -6
  20. package/node_modules/@babel/runtime/helpers/arrayWithHoles.js +0 -4
  21. package/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +0 -5
  22. package/node_modules/@babel/runtime/helpers/assertClassBrand.js +0 -5
  23. package/node_modules/@babel/runtime/helpers/assertThisInitialized.js +0 -5
  24. package/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +0 -24
  25. package/node_modules/@babel/runtime/helpers/asyncIterator.js +0 -45
  26. package/node_modules/@babel/runtime/helpers/asyncToGenerator.js +0 -26
  27. package/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +0 -5
  28. package/node_modules/@babel/runtime/helpers/callSuper.js +0 -7
  29. package/node_modules/@babel/runtime/helpers/checkInRHS.js +0 -6
  30. package/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +0 -4
  31. package/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +0 -10
  32. package/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +0 -4
  33. package/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +0 -7
  34. package/node_modules/@babel/runtime/helpers/classCallCheck.js +0 -4
  35. package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +0 -5
  36. package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +0 -4
  37. package/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +0 -5
  38. package/node_modules/@babel/runtime/helpers/classNameTDZError.js +0 -4
  39. package/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +0 -7
  40. package/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +0 -7
  41. package/node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js +0 -5
  42. package/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +0 -5
  43. package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +0 -5
  44. package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +0 -5
  45. package/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +0 -7
  46. package/node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js +0 -5
  47. package/node_modules/@babel/runtime/helpers/classPrivateGetter.js +0 -5
  48. package/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +0 -5
  49. package/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +0 -5
  50. package/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +0 -4
  51. package/node_modules/@babel/runtime/helpers/classPrivateSetter.js +0 -5
  52. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +0 -7
  53. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +0 -7
  54. package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +0 -7
  55. package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +0 -5
  56. package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +0 -4
  57. package/node_modules/@babel/runtime/helpers/construct.js +0 -10
  58. package/node_modules/@babel/runtime/helpers/createClass.js +0 -13
  59. package/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +0 -50
  60. package/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +0 -19
  61. package/node_modules/@babel/runtime/helpers/createSuper.js +0 -16
  62. package/node_modules/@babel/runtime/helpers/decorate.js +0 -250
  63. package/node_modules/@babel/runtime/helpers/defaults.js +0 -9
  64. package/node_modules/@babel/runtime/helpers/defineAccessor.js +0 -8
  65. package/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +0 -12
  66. package/node_modules/@babel/runtime/helpers/defineProperty.js +0 -10
  67. package/node_modules/@babel/runtime/helpers/dispose.js +0 -28
  68. package/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +0 -4
  69. package/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +0 -4
  70. package/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +0 -9
  71. package/node_modules/@babel/runtime/helpers/esm/applyDecs.js +0 -236
  72. package/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +0 -184
  73. package/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +0 -191
  74. package/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +0 -222
  75. package/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +0 -133
  76. package/node_modules/@babel/runtime/helpers/esm/applyDecs2311.js +0 -124
  77. package/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +0 -6
  78. package/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +0 -4
  79. package/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +0 -5
  80. package/node_modules/@babel/runtime/helpers/esm/assertClassBrand.js +0 -5
  81. package/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +0 -5
  82. package/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +0 -24
  83. package/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +0 -45
  84. package/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +0 -26
  85. package/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +0 -5
  86. package/node_modules/@babel/runtime/helpers/esm/callSuper.js +0 -7
  87. package/node_modules/@babel/runtime/helpers/esm/checkInRHS.js +0 -6
  88. package/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +0 -4
  89. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +0 -10
  90. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +0 -4
  91. package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +0 -7
  92. package/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -4
  93. package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +0 -5
  94. package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +0 -4
  95. package/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +0 -5
  96. package/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +0 -4
  97. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +0 -7
  98. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +0 -7
  99. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js +0 -5
  100. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +0 -5
  101. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +0 -5
  102. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +0 -5
  103. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +0 -7
  104. package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js +0 -5
  105. package/node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js +0 -5
  106. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +0 -5
  107. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +0 -5
  108. package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +0 -4
  109. package/node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js +0 -5
  110. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +0 -7
  111. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +0 -7
  112. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +0 -7
  113. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +0 -5
  114. package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +0 -4
  115. package/node_modules/@babel/runtime/helpers/esm/construct.js +0 -10
  116. package/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -13
  117. package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +0 -50
  118. package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +0 -19
  119. package/node_modules/@babel/runtime/helpers/esm/createSuper.js +0 -16
  120. package/node_modules/@babel/runtime/helpers/esm/decorate.js +0 -250
  121. package/node_modules/@babel/runtime/helpers/esm/defaults.js +0 -9
  122. package/node_modules/@babel/runtime/helpers/esm/defineAccessor.js +0 -8
  123. package/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +0 -12
  124. package/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -10
  125. package/node_modules/@babel/runtime/helpers/esm/dispose.js +0 -28
  126. package/node_modules/@babel/runtime/helpers/esm/extends.js +0 -10
  127. package/node_modules/@babel/runtime/helpers/esm/get.js +0 -11
  128. package/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +0 -6
  129. package/node_modules/@babel/runtime/helpers/esm/identity.js +0 -4
  130. package/node_modules/@babel/runtime/helpers/esm/importDeferProxy.js +0 -27
  131. package/node_modules/@babel/runtime/helpers/esm/inherits.js +0 -14
  132. package/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +0 -5
  133. package/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +0 -9
  134. package/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +0 -4
  135. package/node_modules/@babel/runtime/helpers/esm/instanceof.js +0 -4
  136. package/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +0 -6
  137. package/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +0 -27
  138. package/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +0 -8
  139. package/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +0 -9
  140. package/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +0 -4
  141. package/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +0 -28
  142. package/node_modules/@babel/runtime/helpers/esm/jsx.js +0 -22
  143. package/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +0 -9
  144. package/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +0 -4
  145. package/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +0 -4
  146. package/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +0 -4
  147. package/node_modules/@babel/runtime/helpers/esm/nullishReceiverError.js +0 -4
  148. package/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +0 -4
  149. package/node_modules/@babel/runtime/helpers/esm/objectSpread.js +0 -14
  150. package/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +0 -23
  151. package/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +0 -13
  152. package/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +0 -10
  153. package/node_modules/@babel/runtime/helpers/esm/package.json +0 -3
  154. package/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +0 -8
  155. package/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +0 -4
  156. package/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +0 -304
  157. package/node_modules/@babel/runtime/helpers/esm/set.js +0 -22
  158. package/node_modules/@babel/runtime/helpers/esm/setFunctionName.js +0 -12
  159. package/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -6
  160. package/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +0 -7
  161. package/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +0 -8
  162. package/node_modules/@babel/runtime/helpers/esm/superPropBase.js +0 -6
  163. package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +0 -8
  164. package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +0 -4
  165. package/node_modules/@babel/runtime/helpers/esm/tdz.js +0 -4
  166. package/node_modules/@babel/runtime/helpers/esm/temporalRef.js +0 -6
  167. package/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +0 -2
  168. package/node_modules/@babel/runtime/helpers/esm/toArray.js +0 -8
  169. package/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +0 -8
  170. package/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -12
  171. package/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -7
  172. package/node_modules/@babel/runtime/helpers/esm/toSetter.js +0 -10
  173. package/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -10
  174. package/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +0 -9
  175. package/node_modules/@babel/runtime/helpers/esm/using.js +0 -12
  176. package/node_modules/@babel/runtime/helpers/esm/usingCtx.js +0 -47
  177. package/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +0 -69
  178. package/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +0 -27
  179. package/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +0 -51
  180. package/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +0 -4
  181. package/node_modules/@babel/runtime/helpers/extends.js +0 -10
  182. package/node_modules/@babel/runtime/helpers/get.js +0 -11
  183. package/node_modules/@babel/runtime/helpers/getPrototypeOf.js +0 -6
  184. package/node_modules/@babel/runtime/helpers/identity.js +0 -4
  185. package/node_modules/@babel/runtime/helpers/importDeferProxy.js +0 -27
  186. package/node_modules/@babel/runtime/helpers/inherits.js +0 -14
  187. package/node_modules/@babel/runtime/helpers/inheritsLoose.js +0 -5
  188. package/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +0 -9
  189. package/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +0 -4
  190. package/node_modules/@babel/runtime/helpers/instanceof.js +0 -4
  191. package/node_modules/@babel/runtime/helpers/interopRequireDefault.js +0 -6
  192. package/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +0 -27
  193. package/node_modules/@babel/runtime/helpers/isNativeFunction.js +0 -8
  194. package/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +0 -9
  195. package/node_modules/@babel/runtime/helpers/iterableToArray.js +0 -4
  196. package/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +0 -28
  197. package/node_modules/@babel/runtime/helpers/jsx.js +0 -22
  198. package/node_modules/@babel/runtime/helpers/maybeArrayLike.js +0 -9
  199. package/node_modules/@babel/runtime/helpers/newArrowCheck.js +0 -4
  200. package/node_modules/@babel/runtime/helpers/nonIterableRest.js +0 -4
  201. package/node_modules/@babel/runtime/helpers/nonIterableSpread.js +0 -4
  202. package/node_modules/@babel/runtime/helpers/nullishReceiverError.js +0 -4
  203. package/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +0 -4
  204. package/node_modules/@babel/runtime/helpers/objectSpread.js +0 -14
  205. package/node_modules/@babel/runtime/helpers/objectSpread2.js +0 -23
  206. package/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +0 -13
  207. package/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +0 -10
  208. package/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +0 -8
  209. package/node_modules/@babel/runtime/helpers/readOnlyError.js +0 -4
  210. package/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +0 -304
  211. package/node_modules/@babel/runtime/helpers/set.js +0 -22
  212. package/node_modules/@babel/runtime/helpers/setFunctionName.js +0 -12
  213. package/node_modules/@babel/runtime/helpers/setPrototypeOf.js +0 -6
  214. package/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +0 -7
  215. package/node_modules/@babel/runtime/helpers/slicedToArray.js +0 -8
  216. package/node_modules/@babel/runtime/helpers/superPropBase.js +0 -6
  217. package/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +0 -8
  218. package/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +0 -4
  219. package/node_modules/@babel/runtime/helpers/tdz.js +0 -4
  220. package/node_modules/@babel/runtime/helpers/temporalRef.js +0 -6
  221. package/node_modules/@babel/runtime/helpers/temporalUndefined.js +0 -2
  222. package/node_modules/@babel/runtime/helpers/toArray.js +0 -8
  223. package/node_modules/@babel/runtime/helpers/toConsumableArray.js +0 -8
  224. package/node_modules/@babel/runtime/helpers/toPrimitive.js +0 -12
  225. package/node_modules/@babel/runtime/helpers/toPropertyKey.js +0 -7
  226. package/node_modules/@babel/runtime/helpers/toSetter.js +0 -10
  227. package/node_modules/@babel/runtime/helpers/typeof.js +0 -10
  228. package/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +0 -9
  229. package/node_modules/@babel/runtime/helpers/using.js +0 -12
  230. package/node_modules/@babel/runtime/helpers/usingCtx.js +0 -47
  231. package/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +0 -69
  232. package/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +0 -27
  233. package/node_modules/@babel/runtime/helpers/wrapRegExp.js +0 -51
  234. package/node_modules/@babel/runtime/helpers/writeOnlyError.js +0 -4
  235. package/node_modules/@babel/runtime/package.json +0 -1038
  236. package/node_modules/@babel/runtime/regenerator/index.js +0 -15
  237. package/node_modules/@conform-to/dom/LICENSE +0 -21
  238. package/node_modules/@conform-to/dom/README +0 -37
  239. package/node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.js +0 -58
  240. package/node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.mjs +0 -51
  241. package/node_modules/@conform-to/dom/dom.d.ts +0 -55
  242. package/node_modules/@conform-to/dom/dom.js +0 -104
  243. package/node_modules/@conform-to/dom/dom.mjs +0 -95
  244. package/node_modules/@conform-to/dom/form.d.ts +0 -246
  245. package/node_modules/@conform-to/dom/form.js +0 -582
  246. package/node_modules/@conform-to/dom/form.mjs +0 -578
  247. package/node_modules/@conform-to/dom/formdata.d.ts +0 -61
  248. package/node_modules/@conform-to/dom/formdata.js +0 -214
  249. package/node_modules/@conform-to/dom/formdata.mjs +0 -200
  250. package/node_modules/@conform-to/dom/index.d.ts +0 -26
  251. package/node_modules/@conform-to/dom/index.js +0 -20
  252. package/node_modules/@conform-to/dom/index.mjs +0 -4
  253. package/node_modules/@conform-to/dom/intent.d.ts +0 -114
  254. package/node_modules/@conform-to/dom/intent.js +0 -136
  255. package/node_modules/@conform-to/dom/intent.mjs +0 -126
  256. package/node_modules/@conform-to/dom/package.json +0 -59
  257. package/node_modules/@conform-to/dom/parse.d.ts +0 -50
  258. package/node_modules/@conform-to/dom/parse.js +0 -43
  259. package/node_modules/@conform-to/dom/parse.mjs +0 -37
  260. package/node_modules/@conform-to/dom/submission.d.ts +0 -135
  261. package/node_modules/@conform-to/dom/submission.js +0 -305
  262. package/node_modules/@conform-to/dom/submission.mjs +0 -288
  263. package/node_modules/@conform-to/dom/types.d.ts +0 -23
  264. package/node_modules/@conform-to/dom/util.d.ts +0 -6
  265. package/node_modules/@conform-to/dom/util.js +0 -19
  266. package/node_modules/@conform-to/dom/util.mjs +0 -13
  267. package/node_modules/@conform-to/react/LICENSE +0 -21
  268. package/node_modules/@conform-to/react/README +0 -37
  269. package/node_modules/@conform-to/react/_virtual/_rollupPluginBabelHelpers.js +0 -87
  270. package/node_modules/@conform-to/react/_virtual/_rollupPluginBabelHelpers.mjs +0 -78
  271. package/node_modules/@conform-to/react/context.d.ts +0 -200
  272. package/node_modules/@conform-to/react/context.js +0 -256
  273. package/node_modules/@conform-to/react/context.mjs +0 -241
  274. package/node_modules/@conform-to/react/experimental.d.ts +0 -0
  275. package/node_modules/@conform-to/react/helpers.d.ts +0 -208
  276. package/node_modules/@conform-to/react/helpers.js +0 -222
  277. package/node_modules/@conform-to/react/helpers.mjs +0 -211
  278. package/node_modules/@conform-to/react/hooks.d.ts +0 -63
  279. package/node_modules/@conform-to/react/hooks.js +0 -88
  280. package/node_modules/@conform-to/react/hooks.mjs +0 -79
  281. package/node_modules/@conform-to/react/index.d.ts +0 -29
  282. package/node_modules/@conform-to/react/index.js +0 -30
  283. package/node_modules/@conform-to/react/index.mjs +0 -5
  284. package/node_modules/@conform-to/react/integrations.d.ts +0 -45
  285. package/node_modules/@conform-to/react/integrations.js +0 -298
  286. package/node_modules/@conform-to/react/integrations.mjs +0 -284
  287. package/node_modules/@conform-to/react/package.json +0 -69
  288. package/node_modules/@conform-to/zod/LICENSE +0 -21
  289. package/node_modules/@conform-to/zod/README +0 -37
  290. package/node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.js +0 -58
  291. package/node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.mjs +0 -51
  292. package/node_modules/@conform-to/zod/coercion.d.ts +0 -37
  293. package/node_modules/@conform-to/zod/coercion.js +0 -171
  294. package/node_modules/@conform-to/zod/coercion.mjs +0 -164
  295. package/node_modules/@conform-to/zod/constraint.d.ts +0 -5
  296. package/node_modules/@conform-to/zod/constraint.js +0 -103
  297. package/node_modules/@conform-to/zod/constraint.mjs +0 -99
  298. package/node_modules/@conform-to/zod/index.d.ts +0 -2
  299. package/node_modules/@conform-to/zod/index.js +0 -12
  300. package/node_modules/@conform-to/zod/index.mjs +0 -2
  301. package/node_modules/@conform-to/zod/package.json +0 -61
  302. package/node_modules/@conform-to/zod/parse.d.ts +0 -46
  303. package/node_modules/@conform-to/zod/parse.js +0 -64
  304. package/node_modules/@conform-to/zod/parse.mjs +0 -59
  305. package/node_modules/@epic-web/client-hints/README.md +0 -221
  306. package/node_modules/@epic-web/client-hints/dist/color-scheme.d.ts +0 -12
  307. package/node_modules/@epic-web/client-hints/dist/color-scheme.js +0 -25
  308. package/node_modules/@epic-web/client-hints/dist/index.d.ts +0 -6
  309. package/node_modules/@epic-web/client-hints/dist/index.js +0 -79
  310. package/node_modules/@epic-web/client-hints/dist/reduced-motion.d.ts +0 -12
  311. package/node_modules/@epic-web/client-hints/dist/reduced-motion.js +0 -25
  312. package/node_modules/@epic-web/client-hints/dist/time-zone.d.ts +0 -5
  313. package/node_modules/@epic-web/client-hints/dist/time-zone.js +0 -5
  314. package/node_modules/@epic-web/client-hints/dist/utils.d.ts +0 -9
  315. package/node_modules/@epic-web/client-hints/dist/utils.js +0 -1
  316. package/node_modules/@epic-web/client-hints/package.json +0 -71
  317. package/node_modules/@epic-web/restore-scroll/README.md +0 -108
  318. package/node_modules/@epic-web/restore-scroll/dist/index.d.ts +0 -7
  319. package/node_modules/@epic-web/restore-scroll/dist/index.js +0 -85
  320. package/node_modules/@epic-web/restore-scroll/package.json +0 -64
  321. package/node_modules/@floating-ui/core/LICENSE +0 -20
  322. package/node_modules/@floating-ui/core/README.md +0 -4
  323. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +0 -1
  324. package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +0 -1164
  325. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +0 -521
  326. package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +0 -521
  327. package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +0 -1036
  328. package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +0 -1036
  329. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +0 -1183
  330. package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +0 -1
  331. package/node_modules/@floating-ui/core/package.json +0 -63
  332. package/node_modules/@floating-ui/dom/LICENSE +0 -20
  333. package/node_modules/@floating-ui/dom/README.md +0 -4
  334. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +0 -1
  335. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +0 -853
  336. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +0 -356
  337. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +0 -356
  338. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +0 -704
  339. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +0 -704
  340. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +0 -872
  341. package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +0 -1
  342. package/node_modules/@floating-ui/dom/package.json +0 -71
  343. package/node_modules/@floating-ui/react-dom/LICENSE +0 -20
  344. package/node_modules/@floating-ui/react-dom/README.md +0 -3
  345. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts +0 -307
  346. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.ts +0 -307
  347. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js +0 -363
  348. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +0 -363
  349. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js +0 -414
  350. package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.min.js +0 -1
  351. package/node_modules/@floating-ui/react-dom/package.json +0 -77
  352. package/node_modules/@floating-ui/utils/LICENSE +0 -20
  353. package/node_modules/@floating-ui/utils/README.md +0 -4
  354. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +0 -103
  355. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +0 -103
  356. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +0 -45
  357. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +0 -45
  358. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +0 -139
  359. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +0 -139
  360. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +0 -165
  361. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +0 -1
  362. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js +0 -138
  363. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +0 -138
  364. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.js +0 -169
  365. package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.min.js +0 -1
  366. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +0 -45
  367. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +0 -139
  368. package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +0 -165
  369. package/node_modules/@floating-ui/utils/dom/package.json +0 -6
  370. package/node_modules/@floating-ui/utils/package.json +0 -70
  371. package/node_modules/@radix-ui/number/README.md +0 -13
  372. package/node_modules/@radix-ui/number/dist/index.d.mts +0 -3
  373. package/node_modules/@radix-ui/number/dist/index.d.ts +0 -3
  374. package/node_modules/@radix-ui/number/dist/index.js +0 -31
  375. package/node_modules/@radix-ui/number/dist/index.js.map +0 -7
  376. package/node_modules/@radix-ui/number/dist/index.mjs +0 -8
  377. package/node_modules/@radix-ui/number/dist/index.mjs.map +0 -7
  378. package/node_modules/@radix-ui/number/package.json +0 -38
  379. package/node_modules/@radix-ui/primitive/README.md +0 -13
  380. package/node_modules/@radix-ui/primitive/dist/index.d.mts +0 -5
  381. package/node_modules/@radix-ui/primitive/dist/index.d.ts +0 -5
  382. package/node_modules/@radix-ui/primitive/dist/index.js +0 -36
  383. package/node_modules/@radix-ui/primitive/dist/index.js.map +0 -7
  384. package/node_modules/@radix-ui/primitive/dist/index.mjs +0 -13
  385. package/node_modules/@radix-ui/primitive/dist/index.mjs.map +0 -7
  386. package/node_modules/@radix-ui/primitive/package.json +0 -38
  387. package/node_modules/@radix-ui/react-accordion/README.md +0 -13
  388. package/node_modules/@radix-ui/react-accordion/dist/index.d.mts +0 -125
  389. package/node_modules/@radix-ui/react-accordion/dist/index.d.ts +0 -125
  390. package/node_modules/@radix-ui/react-accordion/dist/index.js +0 -350
  391. package/node_modules/@radix-ui/react-accordion/dist/index.js.map +0 -7
  392. package/node_modules/@radix-ui/react-accordion/dist/index.mjs +0 -318
  393. package/node_modules/@radix-ui/react-accordion/dist/index.mjs.map +0 -7
  394. package/node_modules/@radix-ui/react-accordion/package.json +0 -63
  395. package/node_modules/@radix-ui/react-arrow/README.md +0 -13
  396. package/node_modules/@radix-ui/react-arrow/dist/index.d.mts +0 -10
  397. package/node_modules/@radix-ui/react-arrow/dist/index.d.ts +0 -10
  398. package/node_modules/@radix-ui/react-arrow/dist/index.js +0 -60
  399. package/node_modules/@radix-ui/react-arrow/dist/index.js.map +0 -7
  400. package/node_modules/@radix-ui/react-arrow/dist/index.mjs +0 -27
  401. package/node_modules/@radix-ui/react-arrow/dist/index.mjs.map +0 -7
  402. package/node_modules/@radix-ui/react-arrow/package.json +0 -55
  403. package/node_modules/@radix-ui/react-collapsible/README.md +0 -13
  404. package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +0 -43
  405. package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +0 -43
  406. package/node_modules/@radix-ui/react-collapsible/dist/index.js +0 -186
  407. package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +0 -7
  408. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +0 -154
  409. package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +0 -7
  410. package/node_modules/@radix-ui/react-collapsible/package.json +0 -62
  411. package/node_modules/@radix-ui/react-collection/README.md +0 -13
  412. package/node_modules/@radix-ui/react-collection/dist/index.d.mts +0 -34
  413. package/node_modules/@radix-ui/react-collection/dist/index.d.ts +0 -34
  414. package/node_modules/@radix-ui/react-collection/dist/index.js +0 -104
  415. package/node_modules/@radix-ui/react-collection/dist/index.js.map +0 -7
  416. package/node_modules/@radix-ui/react-collection/dist/index.mjs +0 -72
  417. package/node_modules/@radix-ui/react-collection/dist/index.mjs.map +0 -7
  418. package/node_modules/@radix-ui/react-collection/package.json +0 -58
  419. package/node_modules/@radix-ui/react-compose-refs/README.md +0 -13
  420. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +0 -15
  421. package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +0 -15
  422. package/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -53
  423. package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +0 -7
  424. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +0 -20
  425. package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +0 -7
  426. package/node_modules/@radix-ui/react-compose-refs/package.json +0 -47
  427. package/node_modules/@radix-ui/react-context/README.md +0 -13
  428. package/node_modules/@radix-ui/react-context/dist/index.d.mts +0 -28
  429. package/node_modules/@radix-ui/react-context/dist/index.d.ts +0 -28
  430. package/node_modules/@radix-ui/react-context/dist/index.js +0 -114
  431. package/node_modules/@radix-ui/react-context/dist/index.js.map +0 -7
  432. package/node_modules/@radix-ui/react-context/dist/index.mjs +0 -81
  433. package/node_modules/@radix-ui/react-context/dist/index.mjs.map +0 -7
  434. package/node_modules/@radix-ui/react-context/package.json +0 -47
  435. package/node_modules/@radix-ui/react-direction/README.md +0 -13
  436. package/node_modules/@radix-ui/react-direction/dist/index.d.mts +0 -12
  437. package/node_modules/@radix-ui/react-direction/dist/index.d.ts +0 -12
  438. package/node_modules/@radix-ui/react-direction/dist/index.js +0 -52
  439. package/node_modules/@radix-ui/react-direction/dist/index.js.map +0 -7
  440. package/node_modules/@radix-ui/react-direction/dist/index.mjs +0 -19
  441. package/node_modules/@radix-ui/react-direction/dist/index.mjs.map +0 -7
  442. package/node_modules/@radix-ui/react-direction/package.json +0 -47
  443. package/node_modules/@radix-ui/react-dismissable-layer/README.md +0 -13
  444. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts +0 -51
  445. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts +0 -51
  446. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -253
  447. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +0 -7
  448. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +0 -221
  449. package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.map +0 -7
  450. package/node_modules/@radix-ui/react-dismissable-layer/package.json +0 -62
  451. package/node_modules/@radix-ui/react-focus-guards/README.md +0 -13
  452. package/node_modules/@radix-ui/react-focus-guards/dist/index.d.mts +0 -9
  453. package/node_modules/@radix-ui/react-focus-guards/dist/index.d.ts +0 -9
  454. package/node_modules/@radix-ui/react-focus-guards/dist/index.js +0 -69
  455. package/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +0 -7
  456. package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs +0 -37
  457. package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs.map +0 -7
  458. package/node_modules/@radix-ui/react-focus-guards/package.json +0 -47
  459. package/node_modules/@radix-ui/react-focus-scope/README.md +0 -13
  460. package/node_modules/@radix-ui/react-focus-scope/dist/index.d.mts +0 -32
  461. package/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts +0 -32
  462. package/node_modules/@radix-ui/react-focus-scope/dist/index.js +0 -246
  463. package/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +0 -7
  464. package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +0 -214
  465. package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs.map +0 -7
  466. package/node_modules/@radix-ui/react-focus-scope/package.json +0 -57
  467. package/node_modules/@radix-ui/react-id/README.md +0 -13
  468. package/node_modules/@radix-ui/react-id/dist/index.d.mts +0 -3
  469. package/node_modules/@radix-ui/react-id/dist/index.d.ts +0 -3
  470. package/node_modules/@radix-ui/react-id/dist/index.js +0 -49
  471. package/node_modules/@radix-ui/react-id/dist/index.js.map +0 -7
  472. package/node_modules/@radix-ui/react-id/dist/index.mjs +0 -16
  473. package/node_modules/@radix-ui/react-id/dist/index.mjs.map +0 -7
  474. package/node_modules/@radix-ui/react-id/package.json +0 -50
  475. package/node_modules/@radix-ui/react-popover/README.md +0 -13
  476. package/node_modules/@radix-ui/react-popover/dist/index.d.mts +0 -95
  477. package/node_modules/@radix-ui/react-popover/dist/index.d.ts +0 -95
  478. package/node_modules/@radix-ui/react-popover/dist/index.js +0 -350
  479. package/node_modules/@radix-ui/react-popover/dist/index.js.map +0 -7
  480. package/node_modules/@radix-ui/react-popover/dist/index.mjs +0 -318
  481. package/node_modules/@radix-ui/react-popover/dist/index.mjs.map +0 -7
  482. package/node_modules/@radix-ui/react-popover/package.json +0 -69
  483. package/node_modules/@radix-ui/react-popper/README.md +0 -13
  484. package/node_modules/@radix-ui/react-popper/dist/index.d.mts +0 -56
  485. package/node_modules/@radix-ui/react-popper/dist/index.d.ts +0 -56
  486. package/node_modules/@radix-ui/react-popper/dist/index.js +0 -325
  487. package/node_modules/@radix-ui/react-popper/dist/index.js.map +0 -7
  488. package/node_modules/@radix-ui/react-popper/dist/index.mjs +0 -303
  489. package/node_modules/@radix-ui/react-popper/dist/index.mjs.map +0 -7
  490. package/node_modules/@radix-ui/react-popper/package.json +0 -64
  491. package/node_modules/@radix-ui/react-portal/README.md +0 -13
  492. package/node_modules/@radix-ui/react-portal/dist/index.d.mts +0 -14
  493. package/node_modules/@radix-ui/react-portal/dist/index.d.ts +0 -14
  494. package/node_modules/@radix-ui/react-portal/dist/index.js +0 -55
  495. package/node_modules/@radix-ui/react-portal/dist/index.js.map +0 -7
  496. package/node_modules/@radix-ui/react-portal/dist/index.mjs +0 -23
  497. package/node_modules/@radix-ui/react-portal/dist/index.mjs.map +0 -7
  498. package/node_modules/@radix-ui/react-portal/package.json +0 -56
  499. package/node_modules/@radix-ui/react-presence/README.md +0 -13
  500. package/node_modules/@radix-ui/react-presence/dist/index.d.mts +0 -11
  501. package/node_modules/@radix-ui/react-presence/dist/index.d.ts +0 -11
  502. package/node_modules/@radix-ui/react-presence/dist/index.js +0 -158
  503. package/node_modules/@radix-ui/react-presence/dist/index.js.map +0 -7
  504. package/node_modules/@radix-ui/react-presence/dist/index.mjs +0 -126
  505. package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +0 -7
  506. package/node_modules/@radix-ui/react-presence/package.json +0 -56
  507. package/node_modules/@radix-ui/react-primitive/README.md +0 -13
  508. package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +0 -52
  509. package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +0 -52
  510. package/node_modules/@radix-ui/react-primitive/dist/index.js +0 -78
  511. package/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -7
  512. package/node_modules/@radix-ui/react-primitive/dist/index.mjs +0 -45
  513. package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +0 -7
  514. package/node_modules/@radix-ui/react-primitive/package.json +0 -58
  515. package/node_modules/@radix-ui/react-roving-focus/README.md +0 -13
  516. package/node_modules/@radix-ui/react-roving-focus/dist/index.d.mts +0 -55
  517. package/node_modules/@radix-ui/react-roving-focus/dist/index.d.ts +0 -55
  518. package/node_modules/@radix-ui/react-roving-focus/dist/index.js +0 -260
  519. package/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +0 -7
  520. package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs +0 -228
  521. package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs.map +0 -7
  522. package/node_modules/@radix-ui/react-roving-focus/package.json +0 -63
  523. package/node_modules/@radix-ui/react-select/README.md +0 -13
  524. package/node_modules/@radix-ui/react-select/dist/index.d.mts +0 -144
  525. package/node_modules/@radix-ui/react-select/dist/index.d.ts +0 -144
  526. package/node_modules/@radix-ui/react-select/dist/index.js +0 -1182
  527. package/node_modules/@radix-ui/react-select/dist/index.js.map +0 -7
  528. package/node_modules/@radix-ui/react-select/dist/index.mjs +0 -1150
  529. package/node_modules/@radix-ui/react-select/dist/index.mjs.map +0 -7
  530. package/node_modules/@radix-ui/react-select/package.json +0 -75
  531. package/node_modules/@radix-ui/react-slot/README.md +0 -13
  532. package/node_modules/@radix-ui/react-slot/dist/index.d.mts +0 -13
  533. package/node_modules/@radix-ui/react-slot/dist/index.d.ts +0 -13
  534. package/node_modules/@radix-ui/react-slot/dist/index.js +0 -118
  535. package/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -7
  536. package/node_modules/@radix-ui/react-slot/dist/index.mjs +0 -85
  537. package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +0 -7
  538. package/node_modules/@radix-ui/react-slot/package.json +0 -50
  539. package/node_modules/@radix-ui/react-tabs/README.md +0 -13
  540. package/node_modules/@radix-ui/react-tabs/dist/index.d.mts +0 -66
  541. package/node_modules/@radix-ui/react-tabs/dist/index.d.ts +0 -66
  542. package/node_modules/@radix-ui/react-tabs/dist/index.js +0 -231
  543. package/node_modules/@radix-ui/react-tabs/dist/index.js.map +0 -7
  544. package/node_modules/@radix-ui/react-tabs/dist/index.mjs +0 -199
  545. package/node_modules/@radix-ui/react-tabs/dist/index.mjs.map +0 -7
  546. package/node_modules/@radix-ui/react-tabs/package.json +0 -62
  547. package/node_modules/@radix-ui/react-toast/README.md +0 -13
  548. package/node_modules/@radix-ui/react-toast/dist/index.d.mts +0 -130
  549. package/node_modules/@radix-ui/react-toast/dist/index.d.ts +0 -130
  550. package/node_modules/@radix-ui/react-toast/dist/index.js +0 -681
  551. package/node_modules/@radix-ui/react-toast/dist/index.js.map +0 -7
  552. package/node_modules/@radix-ui/react-toast/dist/index.mjs +0 -649
  553. package/node_modules/@radix-ui/react-toast/dist/index.mjs.map +0 -7
  554. package/node_modules/@radix-ui/react-toast/package.json +0 -66
  555. package/node_modules/@radix-ui/react-use-callback-ref/README.md +0 -13
  556. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.mts +0 -7
  557. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.ts +0 -7
  558. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +0 -46
  559. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +0 -7
  560. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs +0 -13
  561. package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.map +0 -7
  562. package/node_modules/@radix-ui/react-use-callback-ref/package.json +0 -47
  563. package/node_modules/@radix-ui/react-use-controllable-state/README.md +0 -13
  564. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +0 -10
  565. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +0 -10
  566. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -80
  567. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +0 -7
  568. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +0 -47
  569. package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +0 -7
  570. package/node_modules/@radix-ui/react-use-controllable-state/package.json +0 -50
  571. package/node_modules/@radix-ui/react-use-escape-keydown/README.md +0 -13
  572. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.mts +0 -6
  573. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.ts +0 -6
  574. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +0 -52
  575. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +0 -7
  576. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +0 -19
  577. package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.map +0 -7
  578. package/node_modules/@radix-ui/react-use-escape-keydown/package.json +0 -50
  579. package/node_modules/@radix-ui/react-use-layout-effect/README.md +0 -13
  580. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +0 -12
  581. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +0 -12
  582. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -41
  583. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +0 -7
  584. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +0 -8
  585. package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +0 -7
  586. package/node_modules/@radix-ui/react-use-layout-effect/package.json +0 -47
  587. package/node_modules/@radix-ui/react-use-previous/README.md +0 -13
  588. package/node_modules/@radix-ui/react-use-previous/dist/index.d.mts +0 -3
  589. package/node_modules/@radix-ui/react-use-previous/dist/index.d.ts +0 -3
  590. package/node_modules/@radix-ui/react-use-previous/dist/index.js +0 -49
  591. package/node_modules/@radix-ui/react-use-previous/dist/index.js.map +0 -7
  592. package/node_modules/@radix-ui/react-use-previous/dist/index.mjs +0 -16
  593. package/node_modules/@radix-ui/react-use-previous/dist/index.mjs.map +0 -7
  594. package/node_modules/@radix-ui/react-use-previous/package.json +0 -47
  595. package/node_modules/@radix-ui/react-use-rect/README.md +0 -13
  596. package/node_modules/@radix-ui/react-use-rect/dist/index.d.mts +0 -9
  597. package/node_modules/@radix-ui/react-use-rect/dist/index.d.ts +0 -9
  598. package/node_modules/@radix-ui/react-use-rect/dist/index.js +0 -54
  599. package/node_modules/@radix-ui/react-use-rect/dist/index.js.map +0 -7
  600. package/node_modules/@radix-ui/react-use-rect/dist/index.mjs +0 -21
  601. package/node_modules/@radix-ui/react-use-rect/dist/index.mjs.map +0 -7
  602. package/node_modules/@radix-ui/react-use-rect/package.json +0 -50
  603. package/node_modules/@radix-ui/react-use-size/README.md +0 -13
  604. package/node_modules/@radix-ui/react-use-size/dist/index.d.mts +0 -6
  605. package/node_modules/@radix-ui/react-use-size/dist/index.d.ts +0 -6
  606. package/node_modules/@radix-ui/react-use-size/dist/index.js +0 -74
  607. package/node_modules/@radix-ui/react-use-size/dist/index.js.map +0 -7
  608. package/node_modules/@radix-ui/react-use-size/dist/index.mjs +0 -41
  609. package/node_modules/@radix-ui/react-use-size/dist/index.mjs.map +0 -7
  610. package/node_modules/@radix-ui/react-use-size/package.json +0 -53
  611. package/node_modules/@radix-ui/react-visually-hidden/README.md +0 -13
  612. package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts +0 -10
  613. package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.ts +0 -10
  614. package/node_modules/@radix-ui/react-visually-hidden/dist/index.js +0 -70
  615. package/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +0 -7
  616. package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +0 -37
  617. package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.map +0 -7
  618. package/node_modules/@radix-ui/react-visually-hidden/package.json +0 -55
  619. package/node_modules/@radix-ui/rect/README.md +0 -13
  620. package/node_modules/@radix-ui/rect/dist/index.d.mts +0 -16
  621. package/node_modules/@radix-ui/rect/dist/index.d.ts +0 -16
  622. package/node_modules/@radix-ui/rect/dist/index.js +0 -73
  623. package/node_modules/@radix-ui/rect/dist/index.js.map +0 -7
  624. package/node_modules/@radix-ui/rect/dist/index.mjs +0 -50
  625. package/node_modules/@radix-ui/rect/dist/index.mjs.map +0 -7
  626. package/node_modules/@radix-ui/rect/package.json +0 -38
  627. package/node_modules/@remix-run/react/CHANGELOG.md +0 -964
  628. package/node_modules/@remix-run/react/LICENSE.md +0 -22
  629. package/node_modules/@remix-run/react/README.md +0 -13
  630. package/node_modules/@remix-run/react/dist/_virtual/_rollupPluginBabelHelpers.js +0 -30
  631. package/node_modules/@remix-run/react/dist/browser.d.ts +0 -37
  632. package/node_modules/@remix-run/react/dist/browser.js +0 -268
  633. package/node_modules/@remix-run/react/dist/components.d.ts +0 -137
  634. package/node_modules/@remix-run/react/dist/components.js +0 -911
  635. package/node_modules/@remix-run/react/dist/data.d.ts +0 -15
  636. package/node_modules/@remix-run/react/dist/data.js +0 -280
  637. package/node_modules/@remix-run/react/dist/entry.d.ts +0 -51
  638. package/node_modules/@remix-run/react/dist/errorBoundaries.d.ts +0 -36
  639. package/node_modules/@remix-run/react/dist/errorBoundaries.js +0 -186
  640. package/node_modules/@remix-run/react/dist/errors.d.ts +0 -2
  641. package/node_modules/@remix-run/react/dist/errors.js +0 -53
  642. package/node_modules/@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js +0 -26
  643. package/node_modules/@remix-run/react/dist/esm/browser.js +0 -308
  644. package/node_modules/@remix-run/react/dist/esm/components.js +0 -878
  645. package/node_modules/@remix-run/react/dist/esm/data.js +0 -267
  646. package/node_modules/@remix-run/react/dist/esm/errorBoundaries.js +0 -160
  647. package/node_modules/@remix-run/react/dist/esm/errors.js +0 -49
  648. package/node_modules/@remix-run/react/dist/esm/fallback.js +0 -35
  649. package/node_modules/@remix-run/react/dist/esm/fog-of-war.js +0 -226
  650. package/node_modules/@remix-run/react/dist/esm/index.js +0 -17
  651. package/node_modules/@remix-run/react/dist/esm/invariant.js +0 -17
  652. package/node_modules/@remix-run/react/dist/esm/links.js +0 -258
  653. package/node_modules/@remix-run/react/dist/esm/markup.js +0 -34
  654. package/node_modules/@remix-run/react/dist/esm/routeModules.js +0 -89
  655. package/node_modules/@remix-run/react/dist/esm/routes.js +0 -411
  656. package/node_modules/@remix-run/react/dist/esm/scroll-restoration.js +0 -84
  657. package/node_modules/@remix-run/react/dist/esm/server.js +0 -93
  658. package/node_modules/@remix-run/react/dist/esm/single-fetch.js +0 -309
  659. package/node_modules/@remix-run/react/dist/fallback.d.ts +0 -2
  660. package/node_modules/@remix-run/react/dist/fallback.js +0 -59
  661. package/node_modules/@remix-run/react/dist/fog-of-war.d.ts +0 -37
  662. package/node_modules/@remix-run/react/dist/fog-of-war.js +0 -254
  663. package/node_modules/@remix-run/react/dist/index.d.ts +0 -16
  664. package/node_modules/@remix-run/react/dist/index.js +0 -227
  665. package/node_modules/@remix-run/react/dist/invariant.d.ts +0 -2
  666. package/node_modules/@remix-run/react/dist/invariant.js +0 -19
  667. package/node_modules/@remix-run/react/dist/links.d.ts +0 -128
  668. package/node_modules/@remix-run/react/dist/links.js +0 -268
  669. package/node_modules/@remix-run/react/dist/markup.d.ts +0 -5
  670. package/node_modules/@remix-run/react/dist/markup.js +0 -39
  671. package/node_modules/@remix-run/react/dist/routeModules.d.ts +0 -132
  672. package/node_modules/@remix-run/react/dist/routeModules.js +0 -111
  673. package/node_modules/@remix-run/react/dist/routes.d.ts +0 -32
  674. package/node_modules/@remix-run/react/dist/routes.js +0 -438
  675. package/node_modules/@remix-run/react/dist/scroll-restoration.d.ts +0 -12
  676. package/node_modules/@remix-run/react/dist/scroll-restoration.js +0 -108
  677. package/node_modules/@remix-run/react/dist/server.d.ts +0 -14
  678. package/node_modules/@remix-run/react/dist/server.js +0 -117
  679. package/node_modules/@remix-run/react/dist/single-fetch.d.ts +0 -34
  680. package/node_modules/@remix-run/react/dist/single-fetch.js +0 -339
  681. package/node_modules/@remix-run/react/dist/warnings.d.ts +0 -1
  682. package/node_modules/@remix-run/react/future/single-fetch.d.ts +0 -73
  683. package/node_modules/@remix-run/react/package.json +0 -59
  684. package/node_modules/@remix-run/router/CHANGELOG.md +0 -747
  685. package/node_modules/@remix-run/router/LICENSE.md +0 -23
  686. package/node_modules/@remix-run/router/README.md +0 -135
  687. package/node_modules/@remix-run/router/dist/history.d.ts +0 -250
  688. package/node_modules/@remix-run/router/dist/index.d.ts +0 -9
  689. package/node_modules/@remix-run/router/dist/router.cjs.js +0 -5407
  690. package/node_modules/@remix-run/router/dist/router.cjs.js.map +0 -1
  691. package/node_modules/@remix-run/router/dist/router.d.ts +0 -523
  692. package/node_modules/@remix-run/router/dist/router.js +0 -4856
  693. package/node_modules/@remix-run/router/dist/router.js.map +0 -1
  694. package/node_modules/@remix-run/router/dist/router.umd.js +0 -5413
  695. package/node_modules/@remix-run/router/dist/router.umd.js.map +0 -1
  696. package/node_modules/@remix-run/router/dist/router.umd.min.js +0 -12
  697. package/node_modules/@remix-run/router/dist/router.umd.min.js.map +0 -1
  698. package/node_modules/@remix-run/router/dist/utils.d.ts +0 -528
  699. package/node_modules/@remix-run/router/history.ts +0 -746
  700. package/node_modules/@remix-run/router/index.ts +0 -101
  701. package/node_modules/@remix-run/router/package.json +0 -33
  702. package/node_modules/@remix-run/router/router.ts +0 -5760
  703. package/node_modules/@remix-run/router/utils.ts +0 -1673
  704. package/node_modules/@remix-run/server-runtime/CHANGELOG.md +0 -1023
  705. package/node_modules/@remix-run/server-runtime/LICENSE.md +0 -22
  706. package/node_modules/@remix-run/server-runtime/README.md +0 -26
  707. package/node_modules/@remix-run/server-runtime/dist/build.d.ts +0 -39
  708. package/node_modules/@remix-run/server-runtime/dist/cookies.d.ts +0 -69
  709. package/node_modules/@remix-run/server-runtime/dist/cookies.js +0 -173
  710. package/node_modules/@remix-run/server-runtime/dist/crypto.d.ts +0 -2
  711. package/node_modules/@remix-run/server-runtime/dist/data.d.ts +0 -33
  712. package/node_modules/@remix-run/server-runtime/dist/data.js +0 -138
  713. package/node_modules/@remix-run/server-runtime/dist/deprecations.d.ts +0 -1
  714. package/node_modules/@remix-run/server-runtime/dist/deprecations.js +0 -19
  715. package/node_modules/@remix-run/server-runtime/dist/dev.d.ts +0 -10
  716. package/node_modules/@remix-run/server-runtime/dist/dev.js +0 -53
  717. package/node_modules/@remix-run/server-runtime/dist/entry.d.ts +0 -43
  718. package/node_modules/@remix-run/server-runtime/dist/entry.js +0 -22
  719. package/node_modules/@remix-run/server-runtime/dist/errors.d.ts +0 -51
  720. package/node_modules/@remix-run/server-runtime/dist/errors.js +0 -122
  721. package/node_modules/@remix-run/server-runtime/dist/esm/cookies.js +0 -168
  722. package/node_modules/@remix-run/server-runtime/dist/esm/data.js +0 -133
  723. package/node_modules/@remix-run/server-runtime/dist/esm/deprecations.js +0 -15
  724. package/node_modules/@remix-run/server-runtime/dist/esm/dev.js +0 -46
  725. package/node_modules/@remix-run/server-runtime/dist/esm/entry.js +0 -18
  726. package/node_modules/@remix-run/server-runtime/dist/esm/errors.js +0 -115
  727. package/node_modules/@remix-run/server-runtime/dist/esm/formData.js +0 -55
  728. package/node_modules/@remix-run/server-runtime/dist/esm/headers.js +0 -90
  729. package/node_modules/@remix-run/server-runtime/dist/esm/index.js +0 -21
  730. package/node_modules/@remix-run/server-runtime/dist/esm/invariant.js +0 -18
  731. package/node_modules/@remix-run/server-runtime/dist/esm/markup.js +0 -29
  732. package/node_modules/@remix-run/server-runtime/dist/esm/mode.js +0 -24
  733. package/node_modules/@remix-run/server-runtime/dist/esm/responses.js +0 -123
  734. package/node_modules/@remix-run/server-runtime/dist/esm/routeMatching.js +0 -23
  735. package/node_modules/@remix-run/server-runtime/dist/esm/routes.js +0 -81
  736. package/node_modules/@remix-run/server-runtime/dist/esm/server.js +0 -524
  737. package/node_modules/@remix-run/server-runtime/dist/esm/serverHandoff.js +0 -20
  738. package/node_modules/@remix-run/server-runtime/dist/esm/sessions/cookieStorage.js +0 -51
  739. package/node_modules/@remix-run/server-runtime/dist/esm/sessions/memoryStorage.js +0 -61
  740. package/node_modules/@remix-run/server-runtime/dist/esm/sessions.js +0 -145
  741. package/node_modules/@remix-run/server-runtime/dist/esm/single-fetch.js +0 -450
  742. package/node_modules/@remix-run/server-runtime/dist/esm/upload/errors.js +0 -19
  743. package/node_modules/@remix-run/server-runtime/dist/esm/upload/memoryUploadHandler.js +0 -50
  744. package/node_modules/@remix-run/server-runtime/dist/esm/warnings.js +0 -19
  745. package/node_modules/@remix-run/server-runtime/dist/formData.d.ts +0 -15
  746. package/node_modules/@remix-run/server-runtime/dist/formData.js +0 -60
  747. package/node_modules/@remix-run/server-runtime/dist/headers.d.ts +0 -3
  748. package/node_modules/@remix-run/server-runtime/dist/headers.js +0 -94
  749. package/node_modules/@remix-run/server-runtime/dist/index.d.ts +0 -14
  750. package/node_modules/@remix-run/server-runtime/dist/index.js +0 -50
  751. package/node_modules/@remix-run/server-runtime/dist/interface.d.ts +0 -6
  752. package/node_modules/@remix-run/server-runtime/dist/invariant.d.ts +0 -2
  753. package/node_modules/@remix-run/server-runtime/dist/invariant.js +0 -22
  754. package/node_modules/@remix-run/server-runtime/dist/jsonify.d.ts +0 -33
  755. package/node_modules/@remix-run/server-runtime/dist/links.d.ts +0 -104
  756. package/node_modules/@remix-run/server-runtime/dist/markup.d.ts +0 -1
  757. package/node_modules/@remix-run/server-runtime/dist/markup.js +0 -33
  758. package/node_modules/@remix-run/server-runtime/dist/mode.d.ts +0 -9
  759. package/node_modules/@remix-run/server-runtime/dist/mode.js +0 -29
  760. package/node_modules/@remix-run/server-runtime/dist/reexport.d.ts +0 -14
  761. package/node_modules/@remix-run/server-runtime/dist/responses.d.ts +0 -47
  762. package/node_modules/@remix-run/server-runtime/dist/responses.js +0 -135
  763. package/node_modules/@remix-run/server-runtime/dist/routeMatching.d.ts +0 -8
  764. package/node_modules/@remix-run/server-runtime/dist/routeMatching.js +0 -27
  765. package/node_modules/@remix-run/server-runtime/dist/routeModules.d.ts +0 -214
  766. package/node_modules/@remix-run/server-runtime/dist/routes.d.ts +0 -31
  767. package/node_modules/@remix-run/server-runtime/dist/routes.js +0 -86
  768. package/node_modules/@remix-run/server-runtime/dist/serialize.d.ts +0 -25
  769. package/node_modules/@remix-run/server-runtime/dist/server.d.ts +0 -5
  770. package/node_modules/@remix-run/server-runtime/dist/server.js +0 -528
  771. package/node_modules/@remix-run/server-runtime/dist/serverHandoff.d.ts +0 -12
  772. package/node_modules/@remix-run/server-runtime/dist/serverHandoff.js +0 -24
  773. package/node_modules/@remix-run/server-runtime/dist/sessions/cookieStorage.d.ts +0 -23
  774. package/node_modules/@remix-run/server-runtime/dist/sessions/cookieStorage.js +0 -55
  775. package/node_modules/@remix-run/server-runtime/dist/sessions/memoryStorage.d.ts +0 -20
  776. package/node_modules/@remix-run/server-runtime/dist/sessions/memoryStorage.js +0 -65
  777. package/node_modules/@remix-run/server-runtime/dist/sessions.d.ts +0 -143
  778. package/node_modules/@remix-run/server-runtime/dist/sessions.js +0 -152
  779. package/node_modules/@remix-run/server-runtime/dist/single-fetch.d.ts +0 -90
  780. package/node_modules/@remix-run/server-runtime/dist/single-fetch.js +0 -468
  781. package/node_modules/@remix-run/server-runtime/dist/typecheck.d.ts +0 -4
  782. package/node_modules/@remix-run/server-runtime/dist/upload/errors.d.ts +0 -5
  783. package/node_modules/@remix-run/server-runtime/dist/upload/errors.js +0 -23
  784. package/node_modules/@remix-run/server-runtime/dist/upload/memoryUploadHandler.d.ts +0 -21
  785. package/node_modules/@remix-run/server-runtime/dist/upload/memoryUploadHandler.js +0 -54
  786. package/node_modules/@remix-run/server-runtime/dist/warnings.d.ts +0 -1
  787. package/node_modules/@remix-run/server-runtime/dist/warnings.js +0 -23
  788. package/node_modules/@remix-run/server-runtime/package.json +0 -51
  789. package/node_modules/@types/cookie/LICENSE +0 -21
  790. package/node_modules/@types/cookie/README.md +0 -15
  791. package/node_modules/@types/cookie/index.d.ts +0 -154
  792. package/node_modules/@types/cookie/package.json +0 -30
  793. package/node_modules/@web3-storage/multipart-parser/README.md +0 -37
  794. package/node_modules/@web3-storage/multipart-parser/cjs/src/index.js +0 -218
  795. package/node_modules/@web3-storage/multipart-parser/cjs/src/search.js +0 -269
  796. package/node_modules/@web3-storage/multipart-parser/cjs/src/utils.js +0 -37
  797. package/node_modules/@web3-storage/multipart-parser/esm/package.json +0 -4
  798. package/node_modules/@web3-storage/multipart-parser/esm/src/index.js +0 -219
  799. package/node_modules/@web3-storage/multipart-parser/esm/src/search.js +0 -269
  800. package/node_modules/@web3-storage/multipart-parser/esm/src/utils.js +0 -28
  801. package/node_modules/@web3-storage/multipart-parser/index.js +0 -1
  802. package/node_modules/@web3-storage/multipart-parser/package.json +0 -44
  803. package/node_modules/@web3-storage/multipart-parser/src/index.js +0 -257
  804. package/node_modules/@web3-storage/multipart-parser/src/search.js +0 -329
  805. package/node_modules/@web3-storage/multipart-parser/src/utils.js +0 -43
  806. package/node_modules/@web3-storage/multipart-parser/test/test.spec.js +0 -65
  807. package/node_modules/@web3-storage/multipart-parser/tsconfig.json +0 -41
  808. package/node_modules/@web3-storage/multipart-parser/types/index.d.ts +0 -15
  809. package/node_modules/@web3-storage/multipart-parser/types/index.d.ts.map +0 -1
  810. package/node_modules/@web3-storage/multipart-parser/types/search.d.ts +0 -36
  811. package/node_modules/@web3-storage/multipart-parser/types/search.d.ts.map +0 -1
  812. package/node_modules/@web3-storage/multipart-parser/types/utils.d.ts +0 -18
  813. package/node_modules/@web3-storage/multipart-parser/types/utils.d.ts.map +0 -1
  814. package/node_modules/aria-hidden/LICENSE +0 -21
  815. package/node_modules/aria-hidden/README.md +0 -99
  816. package/node_modules/aria-hidden/dist/es2015/index.d.ts +0 -29
  817. package/node_modules/aria-hidden/dist/es2015/index.js +0 -166
  818. package/node_modules/aria-hidden/dist/es2019/index.d.ts +0 -29
  819. package/node_modules/aria-hidden/dist/es2019/index.js +0 -155
  820. package/node_modules/aria-hidden/dist/es5/index.d.ts +0 -29
  821. package/node_modules/aria-hidden/dist/es5/index.js +0 -173
  822. package/node_modules/aria-hidden/package.json +0 -70
  823. package/node_modules/assertion-error/LICENSE +0 -21
  824. package/node_modules/assertion-error/README.md +0 -68
  825. package/node_modules/assertion-error/index.d.ts +0 -27
  826. package/node_modules/assertion-error/index.js +0 -60
  827. package/node_modules/assertion-error/package.json +0 -32
  828. package/node_modules/chai/CODEOWNERS +0 -1
  829. package/node_modules/chai/CODE_OF_CONDUCT.md +0 -58
  830. package/node_modules/chai/CONTRIBUTING.md +0 -218
  831. package/node_modules/chai/History.md +0 -1059
  832. package/node_modules/chai/LICENSE +0 -21
  833. package/node_modules/chai/README.md +0 -154
  834. package/node_modules/chai/ReleaseNotes.md +0 -737
  835. package/node_modules/chai/chai.js +0 -4018
  836. package/node_modules/chai/eslint.config.js +0 -12
  837. package/node_modules/chai/index.js +0 -1
  838. package/node_modules/chai/lib/chai/assertion.js +0 -164
  839. package/node_modules/chai/lib/chai/config.js +0 -114
  840. package/node_modules/chai/lib/chai/core/assertions.js +0 -3933
  841. package/node_modules/chai/lib/chai/interface/assert.js +0 -3012
  842. package/node_modules/chai/lib/chai/interface/expect.js +0 -55
  843. package/node_modules/chai/lib/chai/interface/should.js +0 -221
  844. package/node_modules/chai/lib/chai/utils/addChainableMethod.js +0 -147
  845. package/node_modules/chai/lib/chai/utils/addLengthGuard.js +0 -60
  846. package/node_modules/chai/lib/chai/utils/addMethod.js +0 -67
  847. package/node_modules/chai/lib/chai/utils/addProperty.js +0 -71
  848. package/node_modules/chai/lib/chai/utils/compareByInspect.js +0 -26
  849. package/node_modules/chai/lib/chai/utils/expectTypes.js +0 -50
  850. package/node_modules/chai/lib/chai/utils/flag.js +0 -33
  851. package/node_modules/chai/lib/chai/utils/getActual.js +0 -20
  852. package/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +0 -25
  853. package/node_modules/chai/lib/chai/utils/getMessage.js +0 -46
  854. package/node_modules/chai/lib/chai/utils/getOperator.js +0 -58
  855. package/node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js +0 -24
  856. package/node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js +0 -26
  857. package/node_modules/chai/lib/chai/utils/getProperties.js +0 -38
  858. package/node_modules/chai/lib/chai/utils/index.js +0 -107
  859. package/node_modules/chai/lib/chai/utils/inspect.js +0 -31
  860. package/node_modules/chai/lib/chai/utils/isNaN.js +0 -26
  861. package/node_modules/chai/lib/chai/utils/isProxyEnabled.js +0 -24
  862. package/node_modules/chai/lib/chai/utils/objDisplay.js +0 -46
  863. package/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +0 -68
  864. package/node_modules/chai/lib/chai/utils/overwriteMethod.js +0 -91
  865. package/node_modules/chai/lib/chai/utils/overwriteProperty.js +0 -90
  866. package/node_modules/chai/lib/chai/utils/proxify.js +0 -147
  867. package/node_modules/chai/lib/chai/utils/test.js +0 -24
  868. package/node_modules/chai/lib/chai/utils/transferFlags.js +0 -43
  869. package/node_modules/chai/lib/chai/utils/type-detect.js +0 -20
  870. package/node_modules/chai/lib/chai.js +0 -65
  871. package/node_modules/chai/package.json +0 -61
  872. package/node_modules/chai/register-assert.cjs +0 -3
  873. package/node_modules/chai/register-assert.js +0 -3
  874. package/node_modules/chai/register-expect.cjs +0 -3
  875. package/node_modules/chai/register-expect.js +0 -3
  876. package/node_modules/chai/register-should.cjs +0 -3
  877. package/node_modules/chai/register-should.js +0 -3
  878. package/node_modules/chai/web-test-runner.config.js +0 -20
  879. package/node_modules/chai-dom/.eslintrc +0 -22
  880. package/node_modules/chai-dom/.travis.yml +0 -15
  881. package/node_modules/chai-dom/LICENSE +0 -24
  882. package/node_modules/chai-dom/README.md +0 -267
  883. package/node_modules/chai-dom/bower.json +0 -31
  884. package/node_modules/chai-dom/chai-dom.js +0 -429
  885. package/node_modules/chai-dom/package.json +0 -44
  886. package/node_modules/chai-dom/test/.eslintrc +0 -12
  887. package/node_modules/chai-dom/test/index.html +0 -27
  888. package/node_modules/chai-dom/test/tests.js +0 -1124
  889. package/node_modules/chai-dom/testem.js +0 -31
  890. package/node_modules/check-error/LICENSE +0 -19
  891. package/node_modules/check-error/README.md +0 -144
  892. package/node_modules/check-error/index.js +0 -135
  893. package/node_modules/check-error/package.json +0 -66
  894. package/node_modules/clsx/clsx.d.mts +0 -6
  895. package/node_modules/clsx/clsx.d.ts +0 -10
  896. package/node_modules/clsx/dist/clsx.js +0 -1
  897. package/node_modules/clsx/dist/clsx.min.js +0 -1
  898. package/node_modules/clsx/dist/clsx.mjs +0 -1
  899. package/node_modules/clsx/dist/lite.js +0 -1
  900. package/node_modules/clsx/dist/lite.mjs +0 -1
  901. package/node_modules/clsx/license +0 -9
  902. package/node_modules/clsx/package.json +0 -60
  903. package/node_modules/clsx/readme.md +0 -154
  904. package/node_modules/cookie/HISTORY.md +0 -147
  905. package/node_modules/cookie/LICENSE +0 -24
  906. package/node_modules/cookie/README.md +0 -317
  907. package/node_modules/cookie/SECURITY.md +0 -25
  908. package/node_modules/cookie/index.js +0 -274
  909. package/node_modules/cookie/package.json +0 -44
  910. package/node_modules/deep-eql/LICENSE +0 -19
  911. package/node_modules/deep-eql/README.md +0 -93
  912. package/node_modules/deep-eql/index.js +0 -513
  913. package/node_modules/deep-eql/package.json +0 -73
  914. package/node_modules/detect-node-es/LICENSE +0 -21
  915. package/node_modules/detect-node-es/Readme.md +0 -39
  916. package/node_modules/detect-node-es/es5/browser.js +0 -2
  917. package/node_modules/detect-node-es/es5/node.d.ts +0 -4
  918. package/node_modules/detect-node-es/es5/node.js +0 -2
  919. package/node_modules/detect-node-es/esm/browser.js +0 -2
  920. package/node_modules/detect-node-es/esm/node.js +0 -2
  921. package/node_modules/detect-node-es/package.json +0 -29
  922. package/node_modules/framer-motion/LICENSE.md +0 -21
  923. package/node_modules/framer-motion/README.md +0 -105
  924. package/node_modules/framer-motion/dist/cjs/dom-entry-GDJJhIpT.js +0 -5959
  925. package/node_modules/framer-motion/dist/cjs/dom-entry.js +0 -53
  926. package/node_modules/framer-motion/dist/cjs/index.js +0 -6566
  927. package/node_modules/framer-motion/dist/dom-entry.d.ts +0 -964
  928. package/node_modules/framer-motion/dist/dom.js +0 -1
  929. package/node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +0 -80
  930. package/node_modules/framer-motion/dist/es/animation/animate.mjs +0 -83
  931. package/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +0 -295
  932. package/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +0 -84
  933. package/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +0 -382
  934. package/node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +0 -17
  935. package/node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +0 -40
  936. package/node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs +0 -40
  937. package/node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs +0 -23
  938. package/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +0 -12
  939. package/node_modules/framer-motion/dist/es/animation/generators/inertia.mjs +0 -87
  940. package/node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs +0 -51
  941. package/node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs +0 -89
  942. package/node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs +0 -131
  943. package/node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs +0 -17
  944. package/node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs +0 -9
  945. package/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs +0 -80
  946. package/node_modules/framer-motion/dist/es/animation/hooks/use-animate.mjs +0 -17
  947. package/node_modules/framer-motion/dist/es/animation/hooks/use-animated-state.mjs +0 -62
  948. package/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs +0 -41
  949. package/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs +0 -112
  950. package/node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs +0 -11
  951. package/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +0 -80
  952. package/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs +0 -66
  953. package/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs +0 -29
  954. package/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +0 -6
  955. package/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +0 -7
  956. package/node_modules/framer-motion/dist/es/animation/optimized-appear/handoff.mjs +0 -83
  957. package/node_modules/framer-motion/dist/es/animation/optimized-appear/start.mjs +0 -80
  958. package/node_modules/framer-motion/dist/es/animation/optimized-appear/store-id.mjs +0 -3
  959. package/node_modules/framer-motion/dist/es/animation/optimized-appear/store.mjs +0 -3
  960. package/node_modules/framer-motion/dist/es/animation/sequence/create.mjs +0 -230
  961. package/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +0 -21
  962. package/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs +0 -31
  963. package/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs +0 -14
  964. package/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs +0 -32
  965. package/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs +0 -40
  966. package/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs +0 -30
  967. package/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +0 -7
  968. package/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +0 -5
  969. package/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +0 -5
  970. package/node_modules/framer-motion/dist/es/animation/utils/is-none.mjs +0 -15
  971. package/node_modules/framer-motion/dist/es/animation/utils/stagger.mjs +0 -26
  972. package/node_modules/framer-motion/dist/es/animation/utils/transitions.mjs +0 -15
  973. package/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs +0 -76
  974. package/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs +0 -57
  975. package/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs +0 -169
  976. package/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs +0 -66
  977. package/node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs +0 -15
  978. package/node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs +0 -31
  979. package/node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs +0 -67
  980. package/node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs +0 -43
  981. package/node_modules/framer-motion/dist/es/components/Reorder/Group.mjs +0 -52
  982. package/node_modules/framer-motion/dist/es/components/Reorder/Item.mjs +0 -33
  983. package/node_modules/framer-motion/dist/es/components/Reorder/index.mjs +0 -9
  984. package/node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs +0 -24
  985. package/node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs +0 -10
  986. package/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs +0 -5
  987. package/node_modules/framer-motion/dist/es/context/LazyContext.mjs +0 -5
  988. package/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs +0 -12
  989. package/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs +0 -13
  990. package/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs +0 -5
  991. package/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs +0 -17
  992. package/node_modules/framer-motion/dist/es/context/PresenceContext.mjs +0 -8
  993. package/node_modules/framer-motion/dist/es/context/ReorderContext.mjs +0 -5
  994. package/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs +0 -8
  995. package/node_modules/framer-motion/dist/es/debug/record.mjs +0 -7
  996. package/node_modules/framer-motion/dist/es/dom-entry.mjs +0 -25
  997. package/node_modules/framer-motion/dist/es/easing/anticipate.mjs +0 -5
  998. package/node_modules/framer-motion/dist/es/easing/back.mjs +0 -9
  999. package/node_modules/framer-motion/dist/es/easing/circ.mjs +0 -8
  1000. package/node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs +0 -51
  1001. package/node_modules/framer-motion/dist/es/easing/ease.mjs +0 -7
  1002. package/node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs +0 -5
  1003. package/node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs +0 -5
  1004. package/node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs +0 -18
  1005. package/node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +0 -8
  1006. package/node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs +0 -3
  1007. package/node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs +0 -5
  1008. package/node_modules/framer-motion/dist/es/easing/utils/map.mjs +0 -37
  1009. package/node_modules/framer-motion/dist/es/events/add-dom-event.mjs +0 -6
  1010. package/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs +0 -8
  1011. package/node_modules/framer-motion/dist/es/events/event-info.mjs +0 -15
  1012. package/node_modules/framer-motion/dist/es/events/use-dom-event.mjs +0 -34
  1013. package/node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs +0 -18
  1014. package/node_modules/framer-motion/dist/es/frameloop/batcher.mjs +0 -65
  1015. package/node_modules/framer-motion/dist/es/frameloop/frame.mjs +0 -6
  1016. package/node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs +0 -20
  1017. package/node_modules/framer-motion/dist/es/frameloop/microtask.mjs +0 -5
  1018. package/node_modules/framer-motion/dist/es/frameloop/render-step.mjs +0 -104
  1019. package/node_modules/framer-motion/dist/es/frameloop/sync-time.mjs +0 -31
  1020. package/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +0 -484
  1021. package/node_modules/framer-motion/dist/es/gestures/drag/index.mjs +0 -27
  1022. package/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs +0 -88
  1023. package/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs +0 -129
  1024. package/node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs +0 -53
  1025. package/node_modules/framer-motion/dist/es/gestures/focus.mjs +0 -41
  1026. package/node_modules/framer-motion/dist/es/gestures/hover.mjs +0 -33
  1027. package/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs +0 -156
  1028. package/node_modules/framer-motion/dist/es/gestures/pan/index.mjs +0 -50
  1029. package/node_modules/framer-motion/dist/es/gestures/press.mjs +0 -130
  1030. package/node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs +0 -20
  1031. package/node_modules/framer-motion/dist/es/index.mjs +0 -101
  1032. package/node_modules/framer-motion/dist/es/motion/features/Feature.mjs +0 -9
  1033. package/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs +0 -31
  1034. package/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs +0 -41
  1035. package/node_modules/framer-motion/dist/es/motion/features/animations.mjs +0 -13
  1036. package/node_modules/framer-motion/dist/es/motion/features/definitions.mjs +0 -28
  1037. package/node_modules/framer-motion/dist/es/motion/features/drag.mjs +0 -17
  1038. package/node_modules/framer-motion/dist/es/motion/features/gestures.mjs +0 -21
  1039. package/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs +0 -133
  1040. package/node_modules/framer-motion/dist/es/motion/features/layout.mjs +0 -11
  1041. package/node_modules/framer-motion/dist/es/motion/features/load-features.mjs +0 -12
  1042. package/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs +0 -72
  1043. package/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs +0 -49
  1044. package/node_modules/framer-motion/dist/es/motion/index.mjs +0 -97
  1045. package/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +0 -11
  1046. package/node_modules/framer-motion/dist/es/motion/utils/is-motion-component.mjs +0 -12
  1047. package/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs +0 -3
  1048. package/node_modules/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs +0 -17
  1049. package/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +0 -36
  1050. package/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs +0 -127
  1051. package/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs +0 -81
  1052. package/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs +0 -57
  1053. package/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs +0 -93
  1054. package/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs +0 -33
  1055. package/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs +0 -20
  1056. package/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs +0 -122
  1057. package/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs +0 -41
  1058. package/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs +0 -54
  1059. package/node_modules/framer-motion/dist/es/projection/geometry/models.mjs +0 -17
  1060. package/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs +0 -25
  1061. package/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +0 -13
  1062. package/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +0 -27
  1063. package/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +0 -1562
  1064. package/node_modules/framer-motion/dist/es/projection/node/group.mjs +0 -24
  1065. package/node_modules/framer-motion/dist/es/projection/node/state.mjs +0 -19
  1066. package/node_modules/framer-motion/dist/es/projection/shared/stack.mjs +0 -112
  1067. package/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +0 -41
  1068. package/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +0 -35
  1069. package/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs +0 -6
  1070. package/node_modules/framer-motion/dist/es/projection/styles/transform.mjs +0 -49
  1071. package/node_modules/framer-motion/dist/es/projection/use-instant-layout-transition.mjs +0 -14
  1072. package/node_modules/framer-motion/dist/es/projection/use-reset-projection.mjs +0 -14
  1073. package/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs +0 -5
  1074. package/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs +0 -26
  1075. package/node_modules/framer-motion/dist/es/projection/utils/measure.mjs +0 -17
  1076. package/node_modules/framer-motion/dist/es/projection-entry.mjs +0 -11
  1077. package/node_modules/framer-motion/dist/es/render/VisualElement.mjs +0 -496
  1078. package/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +0 -130
  1079. package/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +0 -28
  1080. package/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs +0 -15
  1081. package/node_modules/framer-motion/dist/es/render/dom/features-animation.mjs +0 -14
  1082. package/node_modules/framer-motion/dist/es/render/dom/features-max.mjs +0 -14
  1083. package/node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs +0 -9
  1084. package/node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs +0 -47
  1085. package/node_modules/framer-motion/dist/es/render/dom/motion.mjs +0 -42
  1086. package/node_modules/framer-motion/dist/es/render/dom/resize/handle-element.mjs +0 -64
  1087. package/node_modules/framer-motion/dist/es/render/dom/resize/handle-window.mjs +0 -30
  1088. package/node_modules/framer-motion/dist/es/render/dom/resize/index.mjs +0 -8
  1089. package/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs +0 -36
  1090. package/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs +0 -56
  1091. package/node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs +0 -18
  1092. package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +0 -45
  1093. package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +0 -59
  1094. package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +0 -45
  1095. package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +0 -35
  1096. package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +0 -20
  1097. package/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +0 -48
  1098. package/node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs +0 -5
  1099. package/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs +0 -84
  1100. package/node_modules/framer-motion/dist/es/render/dom/use-render.mjs +0 -33
  1101. package/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +0 -6
  1102. package/node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs +0 -19
  1103. package/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +0 -42
  1104. package/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs +0 -59
  1105. package/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +0 -13
  1106. package/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs +0 -30
  1107. package/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +0 -5
  1108. package/node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs +0 -28
  1109. package/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +0 -65
  1110. package/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +0 -15
  1111. package/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs +0 -30
  1112. package/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +0 -15
  1113. package/node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs +0 -15
  1114. package/node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +0 -10
  1115. package/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs +0 -74
  1116. package/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs +0 -6
  1117. package/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +0 -9
  1118. package/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs +0 -8
  1119. package/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs +0 -43
  1120. package/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +0 -59
  1121. package/node_modules/framer-motion/dist/es/render/html/config-motion.mjs +0 -12
  1122. package/node_modules/framer-motion/dist/es/render/html/use-props.mjs +0 -57
  1123. package/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs +0 -74
  1124. package/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs +0 -45
  1125. package/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs +0 -8
  1126. package/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +0 -30
  1127. package/node_modules/framer-motion/dist/es/render/html/utils/render.mjs +0 -9
  1128. package/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +0 -20
  1129. package/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs +0 -28
  1130. package/node_modules/framer-motion/dist/es/render/store.mjs +0 -3
  1131. package/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +0 -47
  1132. package/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs +0 -40
  1133. package/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs +0 -33
  1134. package/node_modules/framer-motion/dist/es/render/svg/use-props.mjs +0 -24
  1135. package/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +0 -52
  1136. package/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +0 -30
  1137. package/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs +0 -8
  1138. package/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +0 -3
  1139. package/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs +0 -32
  1140. package/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs +0 -12
  1141. package/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +0 -19
  1142. package/node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +0 -18
  1143. package/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +0 -164
  1144. package/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs +0 -328
  1145. package/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs +0 -3
  1146. package/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs +0 -24
  1147. package/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +0 -13
  1148. package/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs +0 -8
  1149. package/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +0 -67
  1150. package/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +0 -8
  1151. package/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs +0 -36
  1152. package/node_modules/framer-motion/dist/es/render/utils/setters.mjs +0 -27
  1153. package/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs +0 -12
  1154. package/node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs +0 -6
  1155. package/node_modules/framer-motion/dist/es/utils/array.mjs +0 -21
  1156. package/node_modules/framer-motion/dist/es/utils/clamp.mjs +0 -9
  1157. package/node_modules/framer-motion/dist/es/utils/delay.mjs +0 -20
  1158. package/node_modules/framer-motion/dist/es/utils/distance.mjs +0 -9
  1159. package/node_modules/framer-motion/dist/es/utils/errors.mjs +0 -18
  1160. package/node_modules/framer-motion/dist/es/utils/get-context-window.mjs +0 -6
  1161. package/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs +0 -42
  1162. package/node_modules/framer-motion/dist/es/utils/interpolate.mjs +0 -75
  1163. package/node_modules/framer-motion/dist/es/utils/is-browser.mjs +0 -3
  1164. package/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs +0 -6
  1165. package/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs +0 -7
  1166. package/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs +0 -6
  1167. package/node_modules/framer-motion/dist/es/utils/memo.mjs +0 -10
  1168. package/node_modules/framer-motion/dist/es/utils/mix/color.mjs +0 -47
  1169. package/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +0 -94
  1170. package/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +0 -5
  1171. package/node_modules/framer-motion/dist/es/utils/mix/index.mjs +0 -14
  1172. package/node_modules/framer-motion/dist/es/utils/mix/number.mjs +0 -26
  1173. package/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs +0 -16
  1174. package/node_modules/framer-motion/dist/es/utils/noop.mjs +0 -3
  1175. package/node_modules/framer-motion/dist/es/utils/offsets/default.mjs +0 -9
  1176. package/node_modules/framer-motion/dist/es/utils/offsets/fill.mjs +0 -12
  1177. package/node_modules/framer-motion/dist/es/utils/offsets/time.mjs +0 -5
  1178. package/node_modules/framer-motion/dist/es/utils/pipe.mjs +0 -11
  1179. package/node_modules/framer-motion/dist/es/utils/progress.mjs +0 -18
  1180. package/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs +0 -19
  1181. package/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs +0 -5
  1182. package/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs +0 -19
  1183. package/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs +0 -47
  1184. package/node_modules/framer-motion/dist/es/utils/resolve-value.mjs +0 -11
  1185. package/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs +0 -14
  1186. package/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs +0 -40
  1187. package/node_modules/framer-motion/dist/es/utils/time-conversion.mjs +0 -10
  1188. package/node_modules/framer-motion/dist/es/utils/transform.mjs +0 -21
  1189. package/node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs +0 -21
  1190. package/node_modules/framer-motion/dist/es/utils/use-constant.mjs +0 -18
  1191. package/node_modules/framer-motion/dist/es/utils/use-cycle.mjs +0 -47
  1192. package/node_modules/framer-motion/dist/es/utils/use-force-update.mjs +0 -19
  1193. package/node_modules/framer-motion/dist/es/utils/use-in-view.mjs +0 -23
  1194. package/node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs +0 -5
  1195. package/node_modules/framer-motion/dist/es/utils/use-instant-transition.mjs +0 -41
  1196. package/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs +0 -15
  1197. package/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs +0 -6
  1198. package/node_modules/framer-motion/dist/es/utils/use-motion-value-event.mjs +0 -13
  1199. package/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs +0 -7
  1200. package/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs +0 -11
  1201. package/node_modules/framer-motion/dist/es/utils/warn-once.mjs +0 -11
  1202. package/node_modules/framer-motion/dist/es/utils/wrap.mjs +0 -6
  1203. package/node_modules/framer-motion/dist/es/value/index.mjs +0 -319
  1204. package/node_modules/framer-motion/dist/es/value/scroll/use-element-scroll.mjs +0 -14
  1205. package/node_modules/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs +0 -14
  1206. package/node_modules/framer-motion/dist/es/value/types/color/hex.mjs +0 -40
  1207. package/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs +0 -22
  1208. package/node_modules/framer-motion/dist/es/value/types/color/index.mjs +0 -28
  1209. package/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +0 -25
  1210. package/node_modules/framer-motion/dist/es/value/types/color/utils.mjs +0 -23
  1211. package/node_modules/framer-motion/dist/es/value/types/complex/filter.mjs +0 -30
  1212. package/node_modules/framer-motion/dist/es/value/types/complex/index.mjs +0 -90
  1213. package/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs +0 -17
  1214. package/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs +0 -19
  1215. package/node_modules/framer-motion/dist/es/value/types/utils.mjs +0 -15
  1216. package/node_modules/framer-motion/dist/es/value/use-combine-values.mjs +0 -37
  1217. package/node_modules/framer-motion/dist/es/value/use-computed.mjs +0 -19
  1218. package/node_modules/framer-motion/dist/es/value/use-inverted-scale.mjs +0 -52
  1219. package/node_modules/framer-motion/dist/es/value/use-motion-template.mjs +0 -45
  1220. package/node_modules/framer-motion/dist/es/value/use-motion-value.mjs +0 -38
  1221. package/node_modules/framer-motion/dist/es/value/use-scroll.mjs +0 -39
  1222. package/node_modules/framer-motion/dist/es/value/use-spring.mjs +0 -80
  1223. package/node_modules/framer-motion/dist/es/value/use-time.mjs +0 -10
  1224. package/node_modules/framer-motion/dist/es/value/use-transform.mjs +0 -29
  1225. package/node_modules/framer-motion/dist/es/value/use-velocity.mjs +0 -35
  1226. package/node_modules/framer-motion/dist/es/value/use-will-change/index.mjs +0 -50
  1227. package/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs +0 -7
  1228. package/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs +0 -3
  1229. package/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +0 -16
  1230. package/node_modules/framer-motion/dist/framer-motion.dev.js +0 -12433
  1231. package/node_modules/framer-motion/dist/framer-motion.js +0 -1
  1232. package/node_modules/framer-motion/dist/index.d.ts +0 -5278
  1233. package/node_modules/framer-motion/dist/three-entry.d.ts +0 -2954
  1234. package/node_modules/framer-motion/dom/README.md +0 -1
  1235. package/node_modules/framer-motion/dom/package.json +0 -6
  1236. package/node_modules/framer-motion/package.json +0 -108
  1237. package/node_modules/get-func-name/LICENSE +0 -19
  1238. package/node_modules/get-func-name/README.md +0 -123
  1239. package/node_modules/get-func-name/get-func-name.js +0 -1
  1240. package/node_modules/get-func-name/index.js +0 -52
  1241. package/node_modules/get-func-name/package.json +0 -85
  1242. package/node_modules/get-nonce/LICENSE +0 -21
  1243. package/node_modules/get-nonce/README.md +0 -54
  1244. package/node_modules/get-nonce/dist/es2015/index.d.ts +0 -2
  1245. package/node_modules/get-nonce/dist/es2015/index.js +0 -13
  1246. package/node_modules/get-nonce/dist/es5/index.d.ts +0 -2
  1247. package/node_modules/get-nonce/dist/es5/index.js +0 -15
  1248. package/node_modules/get-nonce/package.json +0 -68
  1249. package/node_modules/invariant/LICENSE +0 -21
  1250. package/node_modules/invariant/README.md +0 -37
  1251. package/node_modules/invariant/browser.js +0 -49
  1252. package/node_modules/invariant/invariant.js +0 -51
  1253. package/node_modules/invariant/invariant.js.flow +0 -7
  1254. package/node_modules/invariant/package.json +0 -35
  1255. package/node_modules/js-tokens/LICENSE +0 -21
  1256. package/node_modules/js-tokens/README.md +0 -240
  1257. package/node_modules/js-tokens/index.js +0 -23
  1258. package/node_modules/js-tokens/package.json +0 -30
  1259. package/node_modules/loose-envify/LICENSE +0 -21
  1260. package/node_modules/loose-envify/README.md +0 -45
  1261. package/node_modules/loose-envify/cli.js +0 -16
  1262. package/node_modules/loose-envify/custom.js +0 -4
  1263. package/node_modules/loose-envify/index.js +0 -3
  1264. package/node_modules/loose-envify/loose-envify.js +0 -36
  1265. package/node_modules/loose-envify/package.json +0 -36
  1266. package/node_modules/loose-envify/replace.js +0 -65
  1267. package/node_modules/loupe/LICENSE +0 -9
  1268. package/node_modules/loupe/README.md +0 -63
  1269. package/node_modules/loupe/lib/arguments.d.ts +0 -3
  1270. package/node_modules/loupe/lib/arguments.d.ts.map +0 -1
  1271. package/node_modules/loupe/lib/arguments.js +0 -7
  1272. package/node_modules/loupe/lib/array.d.ts +0 -3
  1273. package/node_modules/loupe/lib/array.d.ts.map +0 -1
  1274. package/node_modules/loupe/lib/array.js +0 -16
  1275. package/node_modules/loupe/lib/bigint.d.ts +0 -3
  1276. package/node_modules/loupe/lib/bigint.d.ts.map +0 -1
  1277. package/node_modules/loupe/lib/bigint.js +0 -7
  1278. package/node_modules/loupe/lib/class.d.ts +0 -5
  1279. package/node_modules/loupe/lib/class.d.ts.map +0 -1
  1280. package/node_modules/loupe/lib/class.js +0 -15
  1281. package/node_modules/loupe/lib/date.d.ts +0 -3
  1282. package/node_modules/loupe/lib/date.d.ts.map +0 -1
  1283. package/node_modules/loupe/lib/date.js +0 -11
  1284. package/node_modules/loupe/lib/error.d.ts +0 -3
  1285. package/node_modules/loupe/lib/error.d.ts.map +0 -1
  1286. package/node_modules/loupe/lib/error.js +0 -29
  1287. package/node_modules/loupe/lib/function.d.ts +0 -7
  1288. package/node_modules/loupe/lib/function.d.ts.map +0 -1
  1289. package/node_modules/loupe/lib/function.js +0 -9
  1290. package/node_modules/loupe/lib/helpers.d.ts +0 -7
  1291. package/node_modules/loupe/lib/helpers.d.ts.map +0 -1
  1292. package/node_modules/loupe/lib/helpers.js +0 -159
  1293. package/node_modules/loupe/lib/html.d.ts +0 -5
  1294. package/node_modules/loupe/lib/html.d.ts.map +0 -1
  1295. package/node_modules/loupe/lib/html.js +0 -34
  1296. package/node_modules/loupe/lib/index.d.ts +0 -7
  1297. package/node_modules/loupe/lib/index.d.ts.map +0 -1
  1298. package/node_modules/loupe/lib/index.js +0 -161
  1299. package/node_modules/loupe/lib/map.d.ts +0 -3
  1300. package/node_modules/loupe/lib/map.d.ts.map +0 -1
  1301. package/node_modules/loupe/lib/map.js +0 -24
  1302. package/node_modules/loupe/lib/number.d.ts +0 -3
  1303. package/node_modules/loupe/lib/number.d.ts.map +0 -1
  1304. package/node_modules/loupe/lib/number.js +0 -17
  1305. package/node_modules/loupe/lib/object.d.ts +0 -3
  1306. package/node_modules/loupe/lib/object.d.ts.map +0 -1
  1307. package/node_modules/loupe/lib/object.js +0 -22
  1308. package/node_modules/loupe/lib/promise.d.ts +0 -5
  1309. package/node_modules/loupe/lib/promise.d.ts.map +0 -1
  1310. package/node_modules/loupe/lib/promise.js +0 -18
  1311. package/node_modules/loupe/lib/regexp.d.ts +0 -3
  1312. package/node_modules/loupe/lib/regexp.d.ts.map +0 -1
  1313. package/node_modules/loupe/lib/regexp.js +0 -7
  1314. package/node_modules/loupe/lib/set.d.ts +0 -3
  1315. package/node_modules/loupe/lib/set.d.ts.map +0 -1
  1316. package/node_modules/loupe/lib/set.js +0 -15
  1317. package/node_modules/loupe/lib/string.d.ts +0 -3
  1318. package/node_modules/loupe/lib/string.d.ts.map +0 -1
  1319. package/node_modules/loupe/lib/string.js +0 -24
  1320. package/node_modules/loupe/lib/symbol.d.ts +0 -2
  1321. package/node_modules/loupe/lib/symbol.d.ts.map +0 -1
  1322. package/node_modules/loupe/lib/symbol.js +0 -6
  1323. package/node_modules/loupe/lib/typedarray.d.ts +0 -5
  1324. package/node_modules/loupe/lib/typedarray.d.ts.map +0 -1
  1325. package/node_modules/loupe/lib/typedarray.js +0 -38
  1326. package/node_modules/loupe/lib/types.d.ts +0 -15
  1327. package/node_modules/loupe/lib/types.d.ts.map +0 -1
  1328. package/node_modules/loupe/lib/types.js +0 -1
  1329. package/node_modules/loupe/loupe.js +0 -644
  1330. package/node_modules/loupe/package.json +0 -126
  1331. package/node_modules/pathval/LICENSE +0 -16
  1332. package/node_modules/pathval/README.md +0 -147
  1333. package/node_modules/pathval/index.js +0 -292
  1334. package/node_modules/pathval/package.json +0 -73
  1335. package/node_modules/pathval/pathval.js +0 -1
  1336. package/node_modules/react-remove-scroll/LICENSE +0 -21
  1337. package/node_modules/react-remove-scroll/README.md +0 -152
  1338. package/node_modules/react-remove-scroll/UI/UI.d.ts +0 -1
  1339. package/node_modules/react-remove-scroll/UI/package.json +0 -8
  1340. package/node_modules/react-remove-scroll/dist/es2015/Combination.d.ts +0 -3
  1341. package/node_modules/react-remove-scroll/dist/es2015/Combination.js +0 -7
  1342. package/node_modules/react-remove-scroll/dist/es2015/SideEffect.d.ts +0 -5
  1343. package/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +0 -157
  1344. package/node_modules/react-remove-scroll/dist/es2015/UI.d.ts +0 -7
  1345. package/node_modules/react-remove-scroll/dist/es2015/UI.js +0 -36
  1346. package/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.d.ts +0 -3
  1347. package/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +0 -19
  1348. package/node_modules/react-remove-scroll/dist/es2015/handleScroll.d.ts +0 -3
  1349. package/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +0 -104
  1350. package/node_modules/react-remove-scroll/dist/es2015/index.d.ts +0 -2
  1351. package/node_modules/react-remove-scroll/dist/es2015/index.js +0 -2
  1352. package/node_modules/react-remove-scroll/dist/es2015/medium.d.ts +0 -2
  1353. package/node_modules/react-remove-scroll/dist/es2015/medium.js +0 -2
  1354. package/node_modules/react-remove-scroll/dist/es2015/pinchAndZoom.d.ts +0 -8
  1355. package/node_modules/react-remove-scroll/dist/es2015/pinchAndZoom.js +0 -33
  1356. package/node_modules/react-remove-scroll/dist/es2015/sidecar.d.ts +0 -2
  1357. package/node_modules/react-remove-scroll/dist/es2015/sidecar.js +0 -4
  1358. package/node_modules/react-remove-scroll/dist/es2015/types.d.ts +0 -98
  1359. package/node_modules/react-remove-scroll/dist/es2015/types.js +0 -1
  1360. package/node_modules/react-remove-scroll/dist/es2019/Combination.d.ts +0 -3
  1361. package/node_modules/react-remove-scroll/dist/es2019/Combination.js +0 -6
  1362. package/node_modules/react-remove-scroll/dist/es2019/SideEffect.d.ts +0 -5
  1363. package/node_modules/react-remove-scroll/dist/es2019/SideEffect.js +0 -155
  1364. package/node_modules/react-remove-scroll/dist/es2019/UI.d.ts +0 -7
  1365. package/node_modules/react-remove-scroll/dist/es2019/UI.js +0 -41
  1366. package/node_modules/react-remove-scroll/dist/es2019/aggresiveCapture.d.ts +0 -3
  1367. package/node_modules/react-remove-scroll/dist/es2019/aggresiveCapture.js +0 -19
  1368. package/node_modules/react-remove-scroll/dist/es2019/handleScroll.d.ts +0 -3
  1369. package/node_modules/react-remove-scroll/dist/es2019/handleScroll.js +0 -92
  1370. package/node_modules/react-remove-scroll/dist/es2019/index.d.ts +0 -2
  1371. package/node_modules/react-remove-scroll/dist/es2019/index.js +0 -2
  1372. package/node_modules/react-remove-scroll/dist/es2019/medium.d.ts +0 -2
  1373. package/node_modules/react-remove-scroll/dist/es2019/medium.js +0 -2
  1374. package/node_modules/react-remove-scroll/dist/es2019/pinchAndZoom.d.ts +0 -8
  1375. package/node_modules/react-remove-scroll/dist/es2019/pinchAndZoom.js +0 -33
  1376. package/node_modules/react-remove-scroll/dist/es2019/sidecar.d.ts +0 -2
  1377. package/node_modules/react-remove-scroll/dist/es2019/sidecar.js +0 -4
  1378. package/node_modules/react-remove-scroll/dist/es2019/types.d.ts +0 -98
  1379. package/node_modules/react-remove-scroll/dist/es2019/types.js +0 -1
  1380. package/node_modules/react-remove-scroll/dist/es5/Combination.d.ts +0 -3
  1381. package/node_modules/react-remove-scroll/dist/es5/Combination.js +0 -9
  1382. package/node_modules/react-remove-scroll/dist/es5/SideEffect.d.ts +0 -5
  1383. package/node_modules/react-remove-scroll/dist/es5/SideEffect.js +0 -163
  1384. package/node_modules/react-remove-scroll/dist/es5/UI.d.ts +0 -7
  1385. package/node_modules/react-remove-scroll/dist/es5/UI.js +0 -39
  1386. package/node_modules/react-remove-scroll/dist/es5/aggresiveCapture.d.ts +0 -3
  1387. package/node_modules/react-remove-scroll/dist/es5/aggresiveCapture.js +0 -22
  1388. package/node_modules/react-remove-scroll/dist/es5/handleScroll.d.ts +0 -3
  1389. package/node_modules/react-remove-scroll/dist/es5/handleScroll.js +0 -109
  1390. package/node_modules/react-remove-scroll/dist/es5/index.d.ts +0 -2
  1391. package/node_modules/react-remove-scroll/dist/es5/index.js +0 -6
  1392. package/node_modules/react-remove-scroll/dist/es5/medium.d.ts +0 -2
  1393. package/node_modules/react-remove-scroll/dist/es5/medium.js +0 -5
  1394. package/node_modules/react-remove-scroll/dist/es5/pinchAndZoom.d.ts +0 -8
  1395. package/node_modules/react-remove-scroll/dist/es5/pinchAndZoom.js +0 -37
  1396. package/node_modules/react-remove-scroll/dist/es5/sidecar.d.ts +0 -2
  1397. package/node_modules/react-remove-scroll/dist/es5/sidecar.js +0 -6
  1398. package/node_modules/react-remove-scroll/dist/es5/types.d.ts +0 -98
  1399. package/node_modules/react-remove-scroll/dist/es5/types.js +0 -2
  1400. package/node_modules/react-remove-scroll/dist/index.js +0 -93
  1401. package/node_modules/react-remove-scroll/package.json +0 -97
  1402. package/node_modules/react-remove-scroll/sidecar/package.json +0 -7
  1403. package/node_modules/react-remove-scroll/sidecar/sidecar.d.ts +0 -5
  1404. package/node_modules/react-remove-scroll-bar/README.md +0 -52
  1405. package/node_modules/react-remove-scroll-bar/constants/package.json +0 -8
  1406. package/node_modules/react-remove-scroll-bar/dist/es2015/component.d.ts +0 -13
  1407. package/node_modules/react-remove-scroll-bar/dist/es2015/component.js +0 -53
  1408. package/node_modules/react-remove-scroll-bar/dist/es2015/constants.d.ts +0 -8
  1409. package/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +0 -8
  1410. package/node_modules/react-remove-scroll-bar/dist/es2015/index.d.ts +0 -4
  1411. package/node_modules/react-remove-scroll-bar/dist/es2015/index.js +0 -4
  1412. package/node_modules/react-remove-scroll-bar/dist/es2015/utils.d.ts +0 -14
  1413. package/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +0 -29
  1414. package/node_modules/react-remove-scroll-bar/dist/es2019/component.d.ts +0 -13
  1415. package/node_modules/react-remove-scroll-bar/dist/es2019/component.js +0 -85
  1416. package/node_modules/react-remove-scroll-bar/dist/es2019/constants.d.ts +0 -8
  1417. package/node_modules/react-remove-scroll-bar/dist/es2019/constants.js +0 -8
  1418. package/node_modules/react-remove-scroll-bar/dist/es2019/index.d.ts +0 -4
  1419. package/node_modules/react-remove-scroll-bar/dist/es2019/index.js +0 -4
  1420. package/node_modules/react-remove-scroll-bar/dist/es2019/utils.d.ts +0 -14
  1421. package/node_modules/react-remove-scroll-bar/dist/es2019/utils.js +0 -28
  1422. package/node_modules/react-remove-scroll-bar/dist/es5/component.d.ts +0 -13
  1423. package/node_modules/react-remove-scroll-bar/dist/es5/component.js +0 -59
  1424. package/node_modules/react-remove-scroll-bar/dist/es5/constants.d.ts +0 -8
  1425. package/node_modules/react-remove-scroll-bar/dist/es5/constants.js +0 -11
  1426. package/node_modules/react-remove-scroll-bar/dist/es5/index.d.ts +0 -4
  1427. package/node_modules/react-remove-scroll-bar/dist/es5/index.js +0 -12
  1428. package/node_modules/react-remove-scroll-bar/dist/es5/utils.d.ts +0 -14
  1429. package/node_modules/react-remove-scroll-bar/dist/es5/utils.js +0 -33
  1430. package/node_modules/react-remove-scroll-bar/package.json +0 -85
  1431. package/node_modules/react-router/CHANGELOG.md +0 -723
  1432. package/node_modules/react-router/LICENSE.md +0 -23
  1433. package/node_modules/react-router/README.md +0 -16
  1434. package/node_modules/react-router/dist/index.d.ts +0 -29
  1435. package/node_modules/react-router/dist/index.js +0 -1456
  1436. package/node_modules/react-router/dist/index.js.map +0 -1
  1437. package/node_modules/react-router/dist/lib/components.d.ts +0 -157
  1438. package/node_modules/react-router/dist/lib/context.d.ts +0 -102
  1439. package/node_modules/react-router/dist/lib/hooks.d.ts +0 -181
  1440. package/node_modules/react-router/dist/main.js +0 -19
  1441. package/node_modules/react-router/dist/react-router.development.js +0 -1352
  1442. package/node_modules/react-router/dist/react-router.development.js.map +0 -1
  1443. package/node_modules/react-router/dist/react-router.production.min.js +0 -12
  1444. package/node_modules/react-router/dist/react-router.production.min.js.map +0 -1
  1445. package/node_modules/react-router/dist/umd/react-router.development.js +0 -1574
  1446. package/node_modules/react-router/dist/umd/react-router.development.js.map +0 -1
  1447. package/node_modules/react-router/dist/umd/react-router.production.min.js +0 -12
  1448. package/node_modules/react-router/dist/umd/react-router.production.min.js.map +0 -1
  1449. package/node_modules/react-router/package.json +0 -44
  1450. package/node_modules/react-router-dom/CHANGELOG.md +0 -866
  1451. package/node_modules/react-router-dom/LICENSE.md +0 -23
  1452. package/node_modules/react-router-dom/README.md +0 -5
  1453. package/node_modules/react-router-dom/dist/dom.d.ts +0 -117
  1454. package/node_modules/react-router-dom/dist/index.d.ts +0 -331
  1455. package/node_modules/react-router-dom/dist/index.js +0 -1447
  1456. package/node_modules/react-router-dom/dist/index.js.map +0 -1
  1457. package/node_modules/react-router-dom/dist/main.js +0 -19
  1458. package/node_modules/react-router-dom/dist/react-router-dom.development.js +0 -1514
  1459. package/node_modules/react-router-dom/dist/react-router-dom.development.js.map +0 -1
  1460. package/node_modules/react-router-dom/dist/react-router-dom.production.min.js +0 -12
  1461. package/node_modules/react-router-dom/dist/react-router-dom.production.min.js.map +0 -1
  1462. package/node_modules/react-router-dom/dist/server.d.ts +0 -31
  1463. package/node_modules/react-router-dom/dist/server.js +0 -322
  1464. package/node_modules/react-router-dom/dist/server.mjs +0 -297
  1465. package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js +0 -1813
  1466. package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js.map +0 -1
  1467. package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js +0 -12
  1468. package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js.map +0 -1
  1469. package/node_modules/react-router-dom/package.json +0 -49
  1470. package/node_modules/react-router-dom/server.d.ts +0 -31
  1471. package/node_modules/react-router-dom/server.js +0 -322
  1472. package/node_modules/react-router-dom/server.mjs +0 -297
  1473. package/node_modules/react-style-singleton/README.md +0 -41
  1474. package/node_modules/react-style-singleton/dist/es2015/component.d.ts +0 -21
  1475. package/node_modules/react-style-singleton/dist/es2015/component.js +0 -16
  1476. package/node_modules/react-style-singleton/dist/es2015/hook.d.ts +0 -23
  1477. package/node_modules/react-style-singleton/dist/es2015/hook.js +0 -22
  1478. package/node_modules/react-style-singleton/dist/es2015/index.d.ts +0 -3
  1479. package/node_modules/react-style-singleton/dist/es2015/index.js +0 -3
  1480. package/node_modules/react-style-singleton/dist/es2015/singleton.d.ts +0 -4
  1481. package/node_modules/react-style-singleton/dist/es2015/singleton.js +0 -48
  1482. package/node_modules/react-style-singleton/dist/es2019/component.d.ts +0 -21
  1483. package/node_modules/react-style-singleton/dist/es2019/component.js +0 -15
  1484. package/node_modules/react-style-singleton/dist/es2019/hook.d.ts +0 -23
  1485. package/node_modules/react-style-singleton/dist/es2019/hook.js +0 -22
  1486. package/node_modules/react-style-singleton/dist/es2019/index.d.ts +0 -3
  1487. package/node_modules/react-style-singleton/dist/es2019/index.js +0 -3
  1488. package/node_modules/react-style-singleton/dist/es2019/singleton.d.ts +0 -4
  1489. package/node_modules/react-style-singleton/dist/es2019/singleton.js +0 -48
  1490. package/node_modules/react-style-singleton/dist/es5/component.d.ts +0 -21
  1491. package/node_modules/react-style-singleton/dist/es5/component.js +0 -20
  1492. package/node_modules/react-style-singleton/dist/es5/hook.d.ts +0 -23
  1493. package/node_modules/react-style-singleton/dist/es5/hook.js +0 -27
  1494. package/node_modules/react-style-singleton/dist/es5/index.d.ts +0 -3
  1495. package/node_modules/react-style-singleton/dist/es5/index.js +0 -9
  1496. package/node_modules/react-style-singleton/dist/es5/singleton.d.ts +0 -4
  1497. package/node_modules/react-style-singleton/dist/es5/singleton.js +0 -52
  1498. package/node_modules/react-style-singleton/dist/index.js +0 -1
  1499. package/node_modules/react-style-singleton/package.json +0 -87
  1500. package/node_modules/regenerator-runtime/LICENSE +0 -21
  1501. package/node_modules/regenerator-runtime/README.md +0 -31
  1502. package/node_modules/regenerator-runtime/package.json +0 -19
  1503. package/node_modules/regenerator-runtime/path.js +0 -11
  1504. package/node_modules/regenerator-runtime/runtime.js +0 -761
  1505. package/node_modules/remix-utils/.eslintrc.cjs +0 -54
  1506. package/node_modules/remix-utils/LICENSE +0 -21
  1507. package/node_modules/remix-utils/README.md +0 -2149
  1508. package/node_modules/remix-utils/build/client/cache-assets.d.ts +0 -22
  1509. package/node_modules/remix-utils/build/client/cache-assets.js +0 -66
  1510. package/node_modules/remix-utils/build/common/promise.d.ts +0 -87
  1511. package/node_modules/remix-utils/build/common/promise.js +0 -112
  1512. package/node_modules/remix-utils/build/common/timers.d.ts +0 -27
  1513. package/node_modules/remix-utils/build/common/timers.js +0 -47
  1514. package/node_modules/remix-utils/build/react/authenticity-token.d.ts +0 -50
  1515. package/node_modules/remix-utils/build/react/authenticity-token.js +0 -54
  1516. package/node_modules/remix-utils/build/react/client-only.d.ts +0 -27
  1517. package/node_modules/remix-utils/build/react/client-only.js +0 -20
  1518. package/node_modules/remix-utils/build/react/existing-search-params.d.ts +0 -34
  1519. package/node_modules/remix-utils/build/react/existing-search-params.js +0 -32
  1520. package/node_modules/remix-utils/build/react/external-scripts.d.ts +0 -91
  1521. package/node_modules/remix-utils/build/react/external-scripts.js +0 -106
  1522. package/node_modules/remix-utils/build/react/fetcher-type.d.ts +0 -31
  1523. package/node_modules/remix-utils/build/react/fetcher-type.js +0 -53
  1524. package/node_modules/remix-utils/build/react/handle-conventions.d.ts +0 -10
  1525. package/node_modules/remix-utils/build/react/handle-conventions.js +0 -1
  1526. package/node_modules/remix-utils/build/react/honeypot.d.ts +0 -11
  1527. package/node_modules/remix-utils/build/react/honeypot.js +0 -16
  1528. package/node_modules/remix-utils/build/react/server-only.d.ts +0 -25
  1529. package/node_modules/remix-utils/build/react/server-only.js +0 -18
  1530. package/node_modules/remix-utils/build/react/use-debounce-fetcher.d.ts +0 -28
  1531. package/node_modules/remix-utils/build/react/use-debounce-fetcher.js +0 -27
  1532. package/node_modules/remix-utils/build/react/use-debounce-submit.d.ts +0 -7
  1533. package/node_modules/remix-utils/build/react/use-debounce-submit.js +0 -41
  1534. package/node_modules/remix-utils/build/react/use-delegated-anchors.d.ts +0 -6
  1535. package/node_modules/remix-utils/build/react/use-delegated-anchors.js +0 -69
  1536. package/node_modules/remix-utils/build/react/use-event-source.d.ts +0 -17
  1537. package/node_modules/remix-utils/build/react/use-event-source.js +0 -37
  1538. package/node_modules/remix-utils/build/react/use-global-navigation-state.d.ts +0 -33
  1539. package/node_modules/remix-utils/build/react/use-global-navigation-state.js +0 -67
  1540. package/node_modules/remix-utils/build/react/use-hydrated.d.ts +0 -18
  1541. package/node_modules/remix-utils/build/react/use-hydrated.js +0 -24
  1542. package/node_modules/remix-utils/build/react/use-locales.d.ts +0 -24
  1543. package/node_modules/remix-utils/build/react/use-locales.js +0 -56
  1544. package/node_modules/remix-utils/build/react/use-should-hydrate.d.ts +0 -21
  1545. package/node_modules/remix-utils/build/react/use-should-hydrate.js +0 -44
  1546. package/node_modules/remix-utils/build/server/cors.d.ts +0 -101
  1547. package/node_modules/remix-utils/build/server/cors.js +0 -179
  1548. package/node_modules/remix-utils/build/server/csrf.d.ts +0 -85
  1549. package/node_modules/remix-utils/build/server/csrf.js +0 -121
  1550. package/node_modules/remix-utils/build/server/event-stream.d.ts +0 -27
  1551. package/node_modules/remix-utils/build/server/event-stream.js +0 -44
  1552. package/node_modules/remix-utils/build/server/get-client-ip-address.d.ts +0 -29
  1553. package/node_modules/remix-utils/build/server/get-client-ip-address.js +0 -51
  1554. package/node_modules/remix-utils/build/server/get-client-locales.d.ts +0 -18
  1555. package/node_modules/remix-utils/build/server/get-client-locales.js +0 -18
  1556. package/node_modules/remix-utils/build/server/get-headers.d.ts +0 -6
  1557. package/node_modules/remix-utils/build/server/get-headers.js +0 -11
  1558. package/node_modules/remix-utils/build/server/honeypot.d.ts +0 -32
  1559. package/node_modules/remix-utils/build/server/honeypot.js +0 -96
  1560. package/node_modules/remix-utils/build/server/is-prefetch.d.ts +0 -16
  1561. package/node_modules/remix-utils/build/server/is-prefetch.js +0 -11
  1562. package/node_modules/remix-utils/build/server/json-hash.d.ts +0 -6
  1563. package/node_modules/remix-utils/build/server/json-hash.js +0 -16
  1564. package/node_modules/remix-utils/build/server/named-action.d.ts +0 -19
  1565. package/node_modules/remix-utils/build/server/named-action.js +0 -62
  1566. package/node_modules/remix-utils/build/server/parse-accept-header.d.ts +0 -12
  1567. package/node_modules/remix-utils/build/server/parse-accept-header.js +0 -17
  1568. package/node_modules/remix-utils/build/server/preload-route-assets.d.ts +0 -80
  1569. package/node_modules/remix-utils/build/server/preload-route-assets.js +0 -120
  1570. package/node_modules/remix-utils/build/server/redirect-back.d.ts +0 -18
  1571. package/node_modules/remix-utils/build/server/redirect-back.js +0 -29
  1572. package/node_modules/remix-utils/build/server/respond-to.d.ts +0 -40
  1573. package/node_modules/remix-utils/build/server/respond-to.js +0 -22
  1574. package/node_modules/remix-utils/build/server/responses.d.ts +0 -100
  1575. package/node_modules/remix-utils/build/server/responses.js +0 -167
  1576. package/node_modules/remix-utils/build/server/rolling-cookie.d.ts +0 -4
  1577. package/node_modules/remix-utils/build/server/rolling-cookie.js +0 -9
  1578. package/node_modules/remix-utils/build/server/safe-redirect.d.ts +0 -10
  1579. package/node_modules/remix-utils/build/server/safe-redirect.js +0 -22
  1580. package/node_modules/remix-utils/build/server/sec-fetch.d.ts +0 -43
  1581. package/node_modules/remix-utils/build/server/sec-fetch.js +0 -67
  1582. package/node_modules/remix-utils/build/server/typed-cookie.d.ts +0 -17
  1583. package/node_modules/remix-utils/build/server/typed-cookie.js +0 -58
  1584. package/node_modules/remix-utils/build/server/typed-session.d.ts +0 -59
  1585. package/node_modules/remix-utils/build/server/typed-session.js +0 -88
  1586. package/node_modules/remix-utils/package.json +0 -182
  1587. package/node_modules/remix-utils/scripts/check-pkg-exports.ts +0 -61
  1588. package/node_modules/set-cookie-parser/LICENSE +0 -21
  1589. package/node_modules/set-cookie-parser/README.md +0 -199
  1590. package/node_modules/set-cookie-parser/lib/set-cookie.js +0 -226
  1591. package/node_modules/set-cookie-parser/package.json +0 -43
  1592. package/node_modules/source-map/LICENSE +0 -28
  1593. package/node_modules/source-map/README.md +0 -742
  1594. package/node_modules/source-map/dist/source-map.debug.js +0 -3234
  1595. package/node_modules/source-map/dist/source-map.js +0 -3233
  1596. package/node_modules/source-map/dist/source-map.min.js +0 -2
  1597. package/node_modules/source-map/dist/source-map.min.js.map +0 -1
  1598. package/node_modules/source-map/lib/array-set.js +0 -121
  1599. package/node_modules/source-map/lib/base64-vlq.js +0 -140
  1600. package/node_modules/source-map/lib/base64.js +0 -67
  1601. package/node_modules/source-map/lib/binary-search.js +0 -111
  1602. package/node_modules/source-map/lib/mapping-list.js +0 -79
  1603. package/node_modules/source-map/lib/mappings.wasm +0 -0
  1604. package/node_modules/source-map/lib/quick-sort.js +0 -114
  1605. package/node_modules/source-map/lib/read-wasm.js +0 -49
  1606. package/node_modules/source-map/lib/source-map-consumer.js +0 -1145
  1607. package/node_modules/source-map/lib/source-map-generator.js +0 -425
  1608. package/node_modules/source-map/lib/source-node.js +0 -413
  1609. package/node_modules/source-map/lib/util.js +0 -488
  1610. package/node_modules/source-map/lib/wasm.js +0 -107
  1611. package/node_modules/source-map/package.json +0 -73
  1612. package/node_modules/source-map/source-map.d.ts +0 -98
  1613. package/node_modules/source-map/source-map.js +0 -8
  1614. package/node_modules/tailwind-merge/LICENSE.md +0 -21
  1615. package/node_modules/tailwind-merge/README.md +0 -38
  1616. package/node_modules/tailwind-merge/dist/bundle-cjs.js +0 -2595
  1617. package/node_modules/tailwind-merge/dist/bundle-cjs.js.map +0 -1
  1618. package/node_modules/tailwind-merge/dist/bundle-mjs.mjs +0 -2583
  1619. package/node_modules/tailwind-merge/dist/bundle-mjs.mjs.map +0 -1
  1620. package/node_modules/tailwind-merge/dist/es5/bundle-cjs.js +0 -2645
  1621. package/node_modules/tailwind-merge/dist/es5/bundle-cjs.js.map +0 -1
  1622. package/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs +0 -2633
  1623. package/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs.map +0 -1
  1624. package/node_modules/tailwind-merge/dist/types.d.ts +0 -2143
  1625. package/node_modules/tailwind-merge/package.json +0 -95
  1626. package/node_modules/tailwind-merge/src/index.ts +0 -14
  1627. package/node_modules/tailwind-merge/src/lib/class-utils.ts +0 -215
  1628. package/node_modules/tailwind-merge/src/lib/config-utils.ts +0 -14
  1629. package/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts +0 -50
  1630. package/node_modules/tailwind-merge/src/lib/default-config.ts +0 -1865
  1631. package/node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts +0 -26
  1632. package/node_modules/tailwind-merge/src/lib/from-theme.ts +0 -13
  1633. package/node_modules/tailwind-merge/src/lib/lru-cache.ts +0 -52
  1634. package/node_modules/tailwind-merge/src/lib/merge-classlist.ts +0 -99
  1635. package/node_modules/tailwind-merge/src/lib/merge-configs.ts +0 -72
  1636. package/node_modules/tailwind-merge/src/lib/modifier-utils.ts +0 -95
  1637. package/node_modules/tailwind-merge/src/lib/tw-join.ts +0 -50
  1638. package/node_modules/tailwind-merge/src/lib/tw-merge.ts +0 -4
  1639. package/node_modules/tailwind-merge/src/lib/types.ts +0 -412
  1640. package/node_modules/tailwind-merge/src/lib/validators.ts +0 -104
  1641. package/node_modules/tslib/CopyrightNotice.txt +0 -15
  1642. package/node_modules/tslib/LICENSE.txt +0 -12
  1643. package/node_modules/tslib/README.md +0 -164
  1644. package/node_modules/tslib/SECURITY.md +0 -41
  1645. package/node_modules/tslib/modules/index.d.ts +0 -37
  1646. package/node_modules/tslib/modules/index.js +0 -68
  1647. package/node_modules/tslib/modules/package.json +0 -3
  1648. package/node_modules/tslib/package.json +0 -47
  1649. package/node_modules/tslib/tslib.d.ts +0 -453
  1650. package/node_modules/tslib/tslib.es6.html +0 -1
  1651. package/node_modules/tslib/tslib.es6.js +0 -374
  1652. package/node_modules/tslib/tslib.es6.mjs +0 -373
  1653. package/node_modules/tslib/tslib.html +0 -1
  1654. package/node_modules/tslib/tslib.js +0 -424
  1655. package/node_modules/turbo-stream/LICENSE +0 -7
  1656. package/node_modules/turbo-stream/README.md +0 -31
  1657. package/node_modules/turbo-stream/dist/flatten.d.ts +0 -2
  1658. package/node_modules/turbo-stream/dist/flatten.js +0 -172
  1659. package/node_modules/turbo-stream/dist/turbo-stream.d.ts +0 -12
  1660. package/node_modules/turbo-stream/dist/turbo-stream.js +0 -202
  1661. package/node_modules/turbo-stream/dist/turbo-stream.mjs +0 -530
  1662. package/node_modules/turbo-stream/dist/unflatten.d.ts +0 -2
  1663. package/node_modules/turbo-stream/dist/unflatten.js +0 -127
  1664. package/node_modules/turbo-stream/dist/utils.d.ts +0 -43
  1665. package/node_modules/turbo-stream/dist/utils.js +0 -55
  1666. package/node_modules/turbo-stream/package.json +0 -50
  1667. package/node_modules/type-fest/index.d.ts +0 -160
  1668. package/node_modules/type-fest/package.json +0 -72
  1669. package/node_modules/type-fest/readme.md +0 -992
  1670. package/node_modules/type-fest/source/and.d.ts +0 -25
  1671. package/node_modules/type-fest/source/array-indices.d.ts +0 -23
  1672. package/node_modules/type-fest/source/array-slice.d.ts +0 -107
  1673. package/node_modules/type-fest/source/array-splice.d.ts +0 -97
  1674. package/node_modules/type-fest/source/array-values.d.ts +0 -22
  1675. package/node_modules/type-fest/source/async-return-type.d.ts +0 -23
  1676. package/node_modules/type-fest/source/asyncify.d.ts +0 -32
  1677. package/node_modules/type-fest/source/basic.d.ts +0 -68
  1678. package/node_modules/type-fest/source/camel-case.d.ts +0 -80
  1679. package/node_modules/type-fest/source/camel-cased-properties-deep.d.ts +0 -87
  1680. package/node_modules/type-fest/source/camel-cased-properties.d.ts +0 -36
  1681. package/node_modules/type-fest/source/conditional-except.d.ts +0 -45
  1682. package/node_modules/type-fest/source/conditional-keys.d.ts +0 -47
  1683. package/node_modules/type-fest/source/conditional-pick-deep.d.ts +0 -104
  1684. package/node_modules/type-fest/source/conditional-pick.d.ts +0 -44
  1685. package/node_modules/type-fest/source/conditional-simplify.d.ts +0 -32
  1686. package/node_modules/type-fest/source/delimiter-case.d.ts +0 -99
  1687. package/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts +0 -84
  1688. package/node_modules/type-fest/source/delimiter-cased-properties.d.ts +0 -37
  1689. package/node_modules/type-fest/source/distributed-omit.d.ts +0 -89
  1690. package/node_modules/type-fest/source/distributed-pick.d.ts +0 -85
  1691. package/node_modules/type-fest/source/empty-object.d.ts +0 -46
  1692. package/node_modules/type-fest/source/enforce-optional.d.ts +0 -47
  1693. package/node_modules/type-fest/source/entries.d.ts +0 -62
  1694. package/node_modules/type-fest/source/entry.d.ts +0 -65
  1695. package/node_modules/type-fest/source/exact.d.ts +0 -63
  1696. package/node_modules/type-fest/source/except.d.ts +0 -80
  1697. package/node_modules/type-fest/source/fixed-length-array.d.ts +0 -43
  1698. package/node_modules/type-fest/source/get.d.ts +0 -191
  1699. package/node_modules/type-fest/source/global-this.d.ts +0 -21
  1700. package/node_modules/type-fest/source/greater-than-or-equal.d.ts +0 -22
  1701. package/node_modules/type-fest/source/greater-than.d.ts +0 -51
  1702. package/node_modules/type-fest/source/has-optional-keys.d.ts +0 -21
  1703. package/node_modules/type-fest/source/has-readonly-keys.d.ts +0 -21
  1704. package/node_modules/type-fest/source/has-required-keys.d.ts +0 -59
  1705. package/node_modules/type-fest/source/has-writable-keys.d.ts +0 -21
  1706. package/node_modules/type-fest/source/if-any.d.ts +0 -24
  1707. package/node_modules/type-fest/source/if-empty-object.d.ts +0 -26
  1708. package/node_modules/type-fest/source/if-never.d.ts +0 -24
  1709. package/node_modules/type-fest/source/if-null.d.ts +0 -24
  1710. package/node_modules/type-fest/source/if-unknown.d.ts +0 -24
  1711. package/node_modules/type-fest/source/includes.d.ts +0 -22
  1712. package/node_modules/type-fest/source/int-range.d.ts +0 -53
  1713. package/node_modules/type-fest/source/internal.d.ts +0 -783
  1714. package/node_modules/type-fest/source/invariant-of.d.ts +0 -78
  1715. package/node_modules/type-fest/source/is-any.d.ts +0 -29
  1716. package/node_modules/type-fest/source/is-equal.d.ts +0 -31
  1717. package/node_modules/type-fest/source/is-float.d.ts +0 -33
  1718. package/node_modules/type-fest/source/is-integer.d.ts +0 -48
  1719. package/node_modules/type-fest/source/is-literal.d.ts +0 -258
  1720. package/node_modules/type-fest/source/is-never.d.ts +0 -42
  1721. package/node_modules/type-fest/source/is-null.d.ts +0 -20
  1722. package/node_modules/type-fest/source/is-unknown.d.ts +0 -52
  1723. package/node_modules/type-fest/source/iterable-element.d.ts +0 -54
  1724. package/node_modules/type-fest/source/join.d.ts +0 -68
  1725. package/node_modules/type-fest/source/jsonifiable.d.ts +0 -37
  1726. package/node_modules/type-fest/source/jsonify.d.ts +0 -121
  1727. package/node_modules/type-fest/source/kebab-case.d.ts +0 -38
  1728. package/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts +0 -47
  1729. package/node_modules/type-fest/source/kebab-cased-properties.d.ts +0 -30
  1730. package/node_modules/type-fest/source/keys-of-union.d.ts +0 -40
  1731. package/node_modules/type-fest/source/last-array-element.d.ts +0 -38
  1732. package/node_modules/type-fest/source/less-than-or-equal.d.ts +0 -22
  1733. package/node_modules/type-fest/source/less-than.d.ts +0 -22
  1734. package/node_modules/type-fest/source/literal-to-primitive-deep.d.ts +0 -36
  1735. package/node_modules/type-fest/source/literal-to-primitive.d.ts +0 -36
  1736. package/node_modules/type-fest/source/literal-union.d.ts +0 -35
  1737. package/node_modules/type-fest/source/merge-deep.d.ts +0 -486
  1738. package/node_modules/type-fest/source/merge-exclusive.d.ts +0 -41
  1739. package/node_modules/type-fest/source/merge.d.ts +0 -48
  1740. package/node_modules/type-fest/source/multidimensional-array.d.ts +0 -44
  1741. package/node_modules/type-fest/source/multidimensional-readonly-array.d.ts +0 -48
  1742. package/node_modules/type-fest/source/non-empty-object.d.ts +0 -35
  1743. package/node_modules/type-fest/source/numeric.d.ts +0 -222
  1744. package/node_modules/type-fest/source/observable-like.d.ts +0 -63
  1745. package/node_modules/type-fest/source/omit-deep.d.ts +0 -140
  1746. package/node_modules/type-fest/source/omit-index-signature.d.ts +0 -107
  1747. package/node_modules/type-fest/source/opaque.d.ts +0 -252
  1748. package/node_modules/type-fest/source/optional-keys-of.d.ts +0 -38
  1749. package/node_modules/type-fest/source/or.d.ts +0 -25
  1750. package/node_modules/type-fest/source/override-properties.d.ts +0 -36
  1751. package/node_modules/type-fest/source/package-json.d.ts +0 -676
  1752. package/node_modules/type-fest/source/partial-deep.d.ts +0 -109
  1753. package/node_modules/type-fest/source/partial-on-undefined-deep.d.ts +0 -71
  1754. package/node_modules/type-fest/source/pascal-case.d.ts +0 -38
  1755. package/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts +0 -55
  1756. package/node_modules/type-fest/source/pascal-cased-properties.d.ts +0 -35
  1757. package/node_modules/type-fest/source/paths.d.ts +0 -85
  1758. package/node_modules/type-fest/source/pick-deep.d.ts +0 -149
  1759. package/node_modules/type-fest/source/pick-index-signature.d.ts +0 -102
  1760. package/node_modules/type-fest/source/primitive.d.ts +0 -13
  1761. package/node_modules/type-fest/source/promisable.d.ts +0 -25
  1762. package/node_modules/type-fest/source/readonly-deep.d.ts +0 -81
  1763. package/node_modules/type-fest/source/readonly-keys-of.d.ts +0 -29
  1764. package/node_modules/type-fest/source/readonly-tuple.d.ts +0 -41
  1765. package/node_modules/type-fest/source/replace.d.ts +0 -67
  1766. package/node_modules/type-fest/source/require-all-or-none.d.ts +0 -42
  1767. package/node_modules/type-fest/source/require-at-least-one.d.ts +0 -34
  1768. package/node_modules/type-fest/source/require-exactly-one.d.ts +0 -34
  1769. package/node_modules/type-fest/source/require-one-or-none.d.ts +0 -37
  1770. package/node_modules/type-fest/source/required-deep.d.ts +0 -78
  1771. package/node_modules/type-fest/source/required-keys-of.d.ts +0 -29
  1772. package/node_modules/type-fest/source/schema.d.ts +0 -71
  1773. package/node_modules/type-fest/source/screaming-snake-case.d.ts +0 -33
  1774. package/node_modules/type-fest/source/set-field-type.d.ts +0 -37
  1775. package/node_modules/type-fest/source/set-non-nullable.d.ts +0 -39
  1776. package/node_modules/type-fest/source/set-optional.d.ts +0 -35
  1777. package/node_modules/type-fest/source/set-parameter-type.d.ts +0 -117
  1778. package/node_modules/type-fest/source/set-readonly.d.ts +0 -38
  1779. package/node_modules/type-fest/source/set-required.d.ts +0 -40
  1780. package/node_modules/type-fest/source/set-return-type.d.ts +0 -29
  1781. package/node_modules/type-fest/source/shared-union-fields-deep.d.ts +0 -168
  1782. package/node_modules/type-fest/source/simplify-deep.d.ts +0 -115
  1783. package/node_modules/type-fest/source/simplify.d.ts +0 -58
  1784. package/node_modules/type-fest/source/single-key-object.d.ts +0 -29
  1785. package/node_modules/type-fest/source/snake-case.d.ts +0 -38
  1786. package/node_modules/type-fest/source/snake-cased-properties-deep.d.ts +0 -47
  1787. package/node_modules/type-fest/source/snake-cased-properties.d.ts +0 -30
  1788. package/node_modules/type-fest/source/split-words.d.ts +0 -57
  1789. package/node_modules/type-fest/source/split.d.ts +0 -29
  1790. package/node_modules/type-fest/source/spread.d.ts +0 -85
  1791. package/node_modules/type-fest/source/string-key-of.d.ts +0 -25
  1792. package/node_modules/type-fest/source/string-slice.d.ts +0 -37
  1793. package/node_modules/type-fest/source/stringified.d.ts +0 -23
  1794. package/node_modules/type-fest/source/subtract.d.ts +0 -70
  1795. package/node_modules/type-fest/source/sum.d.ts +0 -70
  1796. package/node_modules/type-fest/source/tagged-union.d.ts +0 -51
  1797. package/node_modules/type-fest/source/trim.d.ts +0 -27
  1798. package/node_modules/type-fest/source/tsconfig-json.d.ts +0 -1198
  1799. package/node_modules/type-fest/source/tuple-to-union.d.ts +0 -51
  1800. package/node_modules/type-fest/source/typed-array.d.ts +0 -17
  1801. package/node_modules/type-fest/source/undefined-on-partial-deep.d.ts +0 -81
  1802. package/node_modules/type-fest/source/union-to-intersection.d.ts +0 -61
  1803. package/node_modules/type-fest/source/unknown-array.d.ts +0 -25
  1804. package/node_modules/type-fest/source/unknown-record.d.ts +0 -31
  1805. package/node_modules/type-fest/source/value-of.d.ts +0 -42
  1806. package/node_modules/type-fest/source/writable-deep.d.ts +0 -83
  1807. package/node_modules/type-fest/source/writable-keys-of.d.ts +0 -30
  1808. package/node_modules/type-fest/source/writable.d.ts +0 -68
  1809. package/node_modules/use-callback-ref/LICENSE +0 -21
  1810. package/node_modules/use-callback-ref/README.md +0 -170
  1811. package/node_modules/use-callback-ref/dist/es2015/assignRef.d.ts +0 -15
  1812. package/node_modules/use-callback-ref/dist/es2015/assignRef.js +0 -22
  1813. package/node_modules/use-callback-ref/dist/es2015/createRef.d.ts +0 -10
  1814. package/node_modules/use-callback-ref/dist/es2015/createRef.js +0 -23
  1815. package/node_modules/use-callback-ref/dist/es2015/index.d.ts +0 -8
  1816. package/node_modules/use-callback-ref/dist/es2015/index.js +0 -12
  1817. package/node_modules/use-callback-ref/dist/es2015/mergeRef.d.ts +0 -16
  1818. package/node_modules/use-callback-ref/dist/es2015/mergeRef.js +0 -18
  1819. package/node_modules/use-callback-ref/dist/es2015/refToCallback.d.ts +0 -24
  1820. package/node_modules/use-callback-ref/dist/es2015/refToCallback.js +0 -48
  1821. package/node_modules/use-callback-ref/dist/es2015/transformRef.d.ts +0 -11
  1822. package/node_modules/use-callback-ref/dist/es2015/transformRef.js +0 -14
  1823. package/node_modules/use-callback-ref/dist/es2015/types.d.ts +0 -5
  1824. package/node_modules/use-callback-ref/dist/es2015/types.js +0 -1
  1825. package/node_modules/use-callback-ref/dist/es2015/useMergeRef.d.ts +0 -17
  1826. package/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +0 -45
  1827. package/node_modules/use-callback-ref/dist/es2015/useRef.d.ts +0 -16
  1828. package/node_modules/use-callback-ref/dist/es2015/useRef.js +0 -39
  1829. package/node_modules/use-callback-ref/dist/es2015/useTransformRef.d.ts +0 -15
  1830. package/node_modules/use-callback-ref/dist/es2015/useTransformRef.js +0 -18
  1831. package/node_modules/use-callback-ref/dist/es2019/assignRef.d.ts +0 -15
  1832. package/node_modules/use-callback-ref/dist/es2019/assignRef.js +0 -22
  1833. package/node_modules/use-callback-ref/dist/es2019/createRef.d.ts +0 -10
  1834. package/node_modules/use-callback-ref/dist/es2019/createRef.js +0 -23
  1835. package/node_modules/use-callback-ref/dist/es2019/index.d.ts +0 -8
  1836. package/node_modules/use-callback-ref/dist/es2019/index.js +0 -12
  1837. package/node_modules/use-callback-ref/dist/es2019/mergeRef.d.ts +0 -16
  1838. package/node_modules/use-callback-ref/dist/es2019/mergeRef.js +0 -18
  1839. package/node_modules/use-callback-ref/dist/es2019/refToCallback.d.ts +0 -24
  1840. package/node_modules/use-callback-ref/dist/es2019/refToCallback.js +0 -48
  1841. package/node_modules/use-callback-ref/dist/es2019/transformRef.d.ts +0 -11
  1842. package/node_modules/use-callback-ref/dist/es2019/transformRef.js +0 -14
  1843. package/node_modules/use-callback-ref/dist/es2019/types.d.ts +0 -5
  1844. package/node_modules/use-callback-ref/dist/es2019/types.js +0 -1
  1845. package/node_modules/use-callback-ref/dist/es2019/useMergeRef.d.ts +0 -17
  1846. package/node_modules/use-callback-ref/dist/es2019/useMergeRef.js +0 -43
  1847. package/node_modules/use-callback-ref/dist/es2019/useRef.d.ts +0 -16
  1848. package/node_modules/use-callback-ref/dist/es2019/useRef.js +0 -39
  1849. package/node_modules/use-callback-ref/dist/es2019/useTransformRef.d.ts +0 -15
  1850. package/node_modules/use-callback-ref/dist/es2019/useTransformRef.js +0 -18
  1851. package/node_modules/use-callback-ref/dist/es5/assignRef.d.ts +0 -15
  1852. package/node_modules/use-callback-ref/dist/es5/assignRef.js +0 -26
  1853. package/node_modules/use-callback-ref/dist/es5/createRef.d.ts +0 -10
  1854. package/node_modules/use-callback-ref/dist/es5/createRef.js +0 -27
  1855. package/node_modules/use-callback-ref/dist/es5/index.d.ts +0 -8
  1856. package/node_modules/use-callback-ref/dist/es5/index.js +0 -24
  1857. package/node_modules/use-callback-ref/dist/es5/mergeRef.d.ts +0 -16
  1858. package/node_modules/use-callback-ref/dist/es5/mergeRef.js +0 -22
  1859. package/node_modules/use-callback-ref/dist/es5/refToCallback.d.ts +0 -24
  1860. package/node_modules/use-callback-ref/dist/es5/refToCallback.js +0 -53
  1861. package/node_modules/use-callback-ref/dist/es5/transformRef.d.ts +0 -11
  1862. package/node_modules/use-callback-ref/dist/es5/transformRef.js +0 -18
  1863. package/node_modules/use-callback-ref/dist/es5/types.d.ts +0 -5
  1864. package/node_modules/use-callback-ref/dist/es5/types.js +0 -2
  1865. package/node_modules/use-callback-ref/dist/es5/useMergeRef.d.ts +0 -17
  1866. package/node_modules/use-callback-ref/dist/es5/useMergeRef.js +0 -50
  1867. package/node_modules/use-callback-ref/dist/es5/useRef.d.ts +0 -16
  1868. package/node_modules/use-callback-ref/dist/es5/useRef.js +0 -43
  1869. package/node_modules/use-callback-ref/dist/es5/useTransformRef.d.ts +0 -15
  1870. package/node_modules/use-callback-ref/dist/es5/useTransformRef.js +0 -22
  1871. package/node_modules/use-callback-ref/package.json +0 -84
  1872. package/node_modules/use-sidecar/LICENSE +0 -21
  1873. package/node_modules/use-sidecar/README.md +0 -349
  1874. package/node_modules/use-sidecar/dist/es2015/config.d.ts +0 -5
  1875. package/node_modules/use-sidecar/dist/es2015/config.js +0 -6
  1876. package/node_modules/use-sidecar/dist/es2015/env.d.ts +0 -4
  1877. package/node_modules/use-sidecar/dist/es2015/env.js +0 -5
  1878. package/node_modules/use-sidecar/dist/es2015/exports.d.ts +0 -3
  1879. package/node_modules/use-sidecar/dist/es2015/exports.js +0 -18
  1880. package/node_modules/use-sidecar/dist/es2015/hoc.d.ts +0 -3
  1881. package/node_modules/use-sidecar/dist/es2015/hoc.js +0 -15
  1882. package/node_modules/use-sidecar/dist/es2015/hook.d.ts +0 -2
  1883. package/node_modules/use-sidecar/dist/es2015/hook.js +0 -41
  1884. package/node_modules/use-sidecar/dist/es2015/index.d.ts +0 -7
  1885. package/node_modules/use-sidecar/dist/es2015/index.js +0 -6
  1886. package/node_modules/use-sidecar/dist/es2015/medium.d.ts +0 -3
  1887. package/node_modules/use-sidecar/dist/es2015/medium.js +0 -78
  1888. package/node_modules/use-sidecar/dist/es2015/renderProp.d.ts +0 -8
  1889. package/node_modules/use-sidecar/dist/es2015/renderProp.js +0 -35
  1890. package/node_modules/use-sidecar/dist/es2015/types.d.ts +0 -47
  1891. package/node_modules/use-sidecar/dist/es2015/types.js +0 -1
  1892. package/node_modules/use-sidecar/dist/es2019/config.d.ts +0 -5
  1893. package/node_modules/use-sidecar/dist/es2019/config.js +0 -6
  1894. package/node_modules/use-sidecar/dist/es2019/env.d.ts +0 -4
  1895. package/node_modules/use-sidecar/dist/es2019/env.js +0 -5
  1896. package/node_modules/use-sidecar/dist/es2019/exports.d.ts +0 -3
  1897. package/node_modules/use-sidecar/dist/es2019/exports.js +0 -16
  1898. package/node_modules/use-sidecar/dist/es2019/hoc.d.ts +0 -3
  1899. package/node_modules/use-sidecar/dist/es2019/hoc.js +0 -14
  1900. package/node_modules/use-sidecar/dist/es2019/hook.d.ts +0 -2
  1901. package/node_modules/use-sidecar/dist/es2019/hook.js +0 -41
  1902. package/node_modules/use-sidecar/dist/es2019/index.d.ts +0 -7
  1903. package/node_modules/use-sidecar/dist/es2019/index.js +0 -6
  1904. package/node_modules/use-sidecar/dist/es2019/medium.d.ts +0 -3
  1905. package/node_modules/use-sidecar/dist/es2019/medium.js +0 -78
  1906. package/node_modules/use-sidecar/dist/es2019/renderProp.d.ts +0 -8
  1907. package/node_modules/use-sidecar/dist/es2019/renderProp.js +0 -28
  1908. package/node_modules/use-sidecar/dist/es2019/types.d.ts +0 -47
  1909. package/node_modules/use-sidecar/dist/es2019/types.js +0 -1
  1910. package/node_modules/use-sidecar/dist/es5/config.d.ts +0 -5
  1911. package/node_modules/use-sidecar/dist/es5/config.js +0 -10
  1912. package/node_modules/use-sidecar/dist/es5/env.d.ts +0 -4
  1913. package/node_modules/use-sidecar/dist/es5/env.js +0 -8
  1914. package/node_modules/use-sidecar/dist/es5/exports.d.ts +0 -3
  1915. package/node_modules/use-sidecar/dist/es5/exports.js +0 -22
  1916. package/node_modules/use-sidecar/dist/es5/hoc.d.ts +0 -3
  1917. package/node_modules/use-sidecar/dist/es5/hoc.js +0 -19
  1918. package/node_modules/use-sidecar/dist/es5/hook.d.ts +0 -2
  1919. package/node_modules/use-sidecar/dist/es5/hook.js +0 -45
  1920. package/node_modules/use-sidecar/dist/es5/index.d.ts +0 -7
  1921. package/node_modules/use-sidecar/dist/es5/index.js +0 -16
  1922. package/node_modules/use-sidecar/dist/es5/medium.d.ts +0 -3
  1923. package/node_modules/use-sidecar/dist/es5/medium.js +0 -83
  1924. package/node_modules/use-sidecar/dist/es5/renderProp.d.ts +0 -8
  1925. package/node_modules/use-sidecar/dist/es5/renderProp.js +0 -39
  1926. package/node_modules/use-sidecar/dist/es5/types.d.ts +0 -47
  1927. package/node_modules/use-sidecar/dist/es5/types.js +0 -2
  1928. package/node_modules/use-sidecar/package.json +0 -89
  1929. package/node_modules/zod/LICENSE +0 -21
  1930. package/node_modules/zod/README.md +0 -2876
  1931. package/node_modules/zod/index.d.ts +0 -2
  1932. package/node_modules/zod/lib/ZodError.d.ts +0 -164
  1933. package/node_modules/zod/lib/ZodError.js +0 -137
  1934. package/node_modules/zod/lib/__tests__/Mocker.d.ts +0 -17
  1935. package/node_modules/zod/lib/__tests__/Mocker.js +0 -57
  1936. package/node_modules/zod/lib/benchmarks/datetime.d.ts +0 -5
  1937. package/node_modules/zod/lib/benchmarks/datetime.js +0 -54
  1938. package/node_modules/zod/lib/benchmarks/discriminatedUnion.d.ts +0 -5
  1939. package/node_modules/zod/lib/benchmarks/discriminatedUnion.js +0 -79
  1940. package/node_modules/zod/lib/benchmarks/index.d.ts +0 -1
  1941. package/node_modules/zod/lib/benchmarks/index.js +0 -59
  1942. package/node_modules/zod/lib/benchmarks/ipv4.d.ts +0 -5
  1943. package/node_modules/zod/lib/benchmarks/ipv4.js +0 -54
  1944. package/node_modules/zod/lib/benchmarks/object.d.ts +0 -5
  1945. package/node_modules/zod/lib/benchmarks/object.js +0 -70
  1946. package/node_modules/zod/lib/benchmarks/primitives.d.ts +0 -5
  1947. package/node_modules/zod/lib/benchmarks/primitives.js +0 -170
  1948. package/node_modules/zod/lib/benchmarks/realworld.d.ts +0 -5
  1949. package/node_modules/zod/lib/benchmarks/realworld.js +0 -56
  1950. package/node_modules/zod/lib/benchmarks/string.d.ts +0 -5
  1951. package/node_modules/zod/lib/benchmarks/string.js +0 -55
  1952. package/node_modules/zod/lib/benchmarks/union.d.ts +0 -5
  1953. package/node_modules/zod/lib/benchmarks/union.js +0 -79
  1954. package/node_modules/zod/lib/errors.d.ts +0 -5
  1955. package/node_modules/zod/lib/errors.js +0 -17
  1956. package/node_modules/zod/lib/external.d.ts +0 -6
  1957. package/node_modules/zod/lib/external.js +0 -18
  1958. package/node_modules/zod/lib/helpers/enumUtil.d.ts +0 -8
  1959. package/node_modules/zod/lib/helpers/enumUtil.js +0 -2
  1960. package/node_modules/zod/lib/helpers/errorUtil.d.ts +0 -9
  1961. package/node_modules/zod/lib/helpers/errorUtil.js +0 -8
  1962. package/node_modules/zod/lib/helpers/parseUtil.d.ts +0 -78
  1963. package/node_modules/zod/lib/helpers/parseUtil.js +0 -125
  1964. package/node_modules/zod/lib/helpers/partialUtil.d.ts +0 -8
  1965. package/node_modules/zod/lib/helpers/partialUtil.js +0 -2
  1966. package/node_modules/zod/lib/helpers/typeAliases.d.ts +0 -2
  1967. package/node_modules/zod/lib/helpers/typeAliases.js +0 -2
  1968. package/node_modules/zod/lib/helpers/util.d.ts +0 -82
  1969. package/node_modules/zod/lib/helpers/util.js +0 -142
  1970. package/node_modules/zod/lib/index.d.ts +0 -4
  1971. package/node_modules/zod/lib/index.js +0 -29
  1972. package/node_modules/zod/lib/index.mjs +0 -4236
  1973. package/node_modules/zod/lib/index.umd.js +0 -4351
  1974. package/node_modules/zod/lib/locales/en.d.ts +0 -3
  1975. package/node_modules/zod/lib/locales/en.js +0 -129
  1976. package/node_modules/zod/lib/types.d.ts +0 -1127
  1977. package/node_modules/zod/lib/types.js +0 -3677
  1978. package/node_modules/zod/package.json +0 -119
@@ -1,37 +1,17 @@
1
1
  import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
2
  import { PassThrough } from "stream";
3
- import { createReadableStreamFromReadable, redirect, json as json$1, createCookieSessionStorage, defer } from "@remix-run/node";
4
- import { RemixServer, Link, useRouteError, useParams, isRouteErrorResponse, useNavigation, useFetchers, useRouteLoaderData, useRevalidator, useLocation, json, redirect as redirect$1, useFetcher, useLoaderData, Outlet, Meta, Links, ScrollRestoration, Scripts, NavLink, Form, Await, useSearchParams, useSubmit, useNavigate } from "@remix-run/react";
3
+ import { createReadableStreamFromReadable, json as json$1, createCookieSessionStorage, redirect as redirect$1, defer } from "@remix-run/node";
4
+ import { RemixServer, Link, useRouteError, useParams, isRouteErrorResponse, useNavigation, useFetchers, useRouteLoaderData, useRevalidator, useLocation, json, redirect, useFetcher, useLoaderData, Outlet, Meta, Links, ScrollRestoration, Scripts, NavLink, Form, Await, useSearchParams, useSubmit, useNavigate } from "@remix-run/react";
5
5
  import { isbot } from "isbot";
6
6
  import { renderToPipeableStream, renderToStaticMarkup } from "react-dom/server";
7
- import path$1 from "node:path";
8
- import os from "os";
9
- import path from "path";
10
- import * as C from "@epic-web/cachified";
11
- import { verboseReporter } from "@epic-web/cachified";
12
- import { remember } from "@epic-web/remember";
13
- import fsExtra from "fs-extra";
14
- import { LRUCache } from "lru-cache";
15
- import md5 from "md5-hex";
7
+ import path from "node:path";
8
+ import { makeSingletonCache, cachified, fsCache, deleteCache, compiledCodeCache, diffFilesCache, diffCodeCache, shouldForceFresh, getAllFileCacheEntries, ogCache } from "@epic-web/workshop-utils/cache.server";
9
+ import { getPreferences, getAuthInfo, readOnboardingData, getDiscordMember, getUserInfo, requireAuthInfo, DiscordMemberSchema, setDiscordMember, deleteDiscordInfo, deleteDb, setPresencePreferences, PlayerPreferencesSchema, setPlayerPreferences, setAuthInfo, markOnboardingVideoWatched } from "@epic-web/workshop-utils/db.server";
16
10
  import { z } from "zod";
17
- import fs$1 from "node:fs";
18
- import chokidar from "chokidar";
19
- import "@total-typescript/ts-reset";
20
- import closeWithGrace from "close-with-grace";
21
- import { execa } from "execa";
22
- import { isGitIgnored, globby } from "globby";
23
- import fs from "fs";
24
- import { remarkCodeBlocksShiki } from "@kentcdodds/md-temp";
25
- import { bundleMDX } from "mdx-bundler";
26
- import PQueue from "p-queue";
27
- import remarkAutolinkHeadings from "remark-autolink-headings";
28
- import emoji from "remark-emoji";
29
- import gfm from "remark-gfm";
30
- import { visit } from "unist-util-visit";
31
- import child_process, { spawn } from "child_process";
32
- import net from "node:net";
33
- import chalk from "chalk";
34
- import fkill from "fkill";
11
+ import { getWorkshopInstructions, getWorkshopFinished, getExercises, getApps, getPlaygroundAppName, extractNumbersAndTypeFromAppNameOrPath, getAppFromFile, getAppByName, isProblemApp, isPlaygroundApp, isExerciseStepApp, getExercise, isSolutionApp, isExampleApp, getRelativePath as getRelativePath$1, workshopRoot, modifiedTimes, getForceFreshForDir, setPlayground, requireExerciseApp, requireExercise, getExerciseApp, getAppDisplayName, getNextExerciseApp, getPrevExerciseApp, getAppPageRoute } from "@epic-web/workshop-utils/apps.server";
12
+ import { getWorkshopConfig } from "@epic-web/workshop-utils/config.server";
13
+ import { getEnv } from "@epic-web/workshop-utils/env.server";
14
+ import { makeTimings, getServerTimeHeader, combineServerTimings, time } from "@epic-web/workshop-utils/timing.server";
35
15
  import { cssBundleHref } from "@remix-run/css-bundle";
36
16
  import { promiseHash } from "remix-utils/promise";
37
17
  import { useSpinDelay } from "spin-delay";
@@ -54,24 +34,35 @@ import { safeRedirect } from "remix-utils/safe-redirect";
54
34
  import { ServerOnly } from "remix-utils/server-only";
55
35
  import * as cookie from "cookie";
56
36
  import cookie__default from "cookie";
37
+ import md5 from "md5-hex";
57
38
  import { createId } from "@paralleldrive/cuid2";
58
39
  import { usePartySocket } from "partysocket/react";
59
40
  import { motion, useAnimationControls } from "framer-motion";
60
41
  import { useHydrated } from "remix-utils/use-hydrated";
61
42
  import * as DialogPrimitive from "@radix-ui/react-dialog";
62
43
  import { invariantResponse, invariant } from "@epic-web/invariant";
44
+ import path$1 from "path";
63
45
  import etag from "etag";
46
+ import fsExtra from "fs-extra";
64
47
  import mimeTypes from "mime-types";
48
+ import fs from "fs";
49
+ import { getDirModifiedTime, modifiedMoreRecentlyThan } from "@epic-web/workshop-utils/modified-time.server";
65
50
  import * as esbuild from "esbuild";
66
51
  import { ElementScrollRestoration } from "@epic-web/restore-scroll";
67
52
  import RealMuxPlayer from "@mux/mux-player-react";
53
+ import child_process from "child_process";
54
+ import os from "os";
68
55
  import shellQuote from "shell-quote";
56
+ import { LRUCache } from "lru-cache";
69
57
  import * as mdxBundler from "mdx-bundler/client/index.js";
70
58
  import * as Select from "@radix-ui/react-select";
59
+ import { compileMarkdownString } from "@epic-web/workshop-utils/compile-mdx.server";
60
+ import { execa } from "execa";
71
61
  import ignore from "ignore";
72
62
  import parseGitDiff from "parse-git-diff";
73
63
  import { bundledLanguagesInfo } from "shiki/langs";
74
64
  import * as Popover from "@radix-ui/react-popover";
65
+ import { stopPort, runAppDev, waitOnApp, closeProcess, isAppRunning, isPortAvailable, getTestProcessEntry, isTestRunning, clearTestProcessEntry, runAppTests, getProcesses } from "@epic-web/workshop-utils/process-manager.server";
75
66
  import * as Tabs from "@radix-ui/react-tabs";
76
67
  import * as Accordion from "@radix-ui/react-accordion";
77
68
  import dayjs from "dayjs";
@@ -82,6 +73,7 @@ import AnsiToHTML from "ansi-to-html";
82
73
  import { useEventSource } from "remix-utils/sse/react";
83
74
  import { eventStream } from "remix-utils/sse/server";
84
75
  import { EventEmitter } from "events";
76
+ import { remember } from "@epic-web/remember";
85
77
  import { Issuer } from "openid-client";
86
78
  import inspector from "node:inspector";
87
79
  import { Resvg } from "@resvg/resvg-js";
@@ -122,2312 +114,84 @@ const entryServer = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineP
122
114
  __proto__: null,
123
115
  default: handleRequest
124
116
  }, Symbol.toStringTag, { value: "Module" }));
125
- function makeTimings(type, desc) {
126
- const timings = {
127
- [type]: [{ desc, start: performance.now() }]
128
- };
129
- Object.defineProperty(timings, "toString", {
130
- value() {
131
- return getServerTimeHeader(timings);
132
- },
133
- enumerable: false
134
- });
135
- return timings;
136
- }
137
- function createTimer(type, desc) {
138
- const start = performance.now();
139
- return {
140
- end(timings) {
141
- let timingType = timings[type];
142
- if (!timingType) {
143
- timingType = timings[type] = [];
144
- }
145
- timingType.push({ desc, time: performance.now() - start });
146
- }
147
- };
148
- }
149
- async function time(fn, {
150
- type,
151
- desc,
152
- timings
153
- }) {
154
- const timer = createTimer(type, desc);
155
- const promise = typeof fn === "function" ? fn() : fn;
156
- if (!timings) return promise;
157
- const result = await promise;
158
- timer.end(timings);
159
- return result;
160
- }
161
- function getServerTimeHeader(timings) {
162
- if (!timings) return "";
163
- return Object.entries(timings).map(([key, timingInfos]) => {
164
- const dur = timingInfos.reduce((acc, timingInfo) => {
165
- const time2 = timingInfo.time ?? performance.now() - timingInfo.start;
166
- return acc + time2;
167
- }, 0).toFixed(1);
168
- const desc = timingInfos.map((t) => t.desc).filter(Boolean).join(" & ");
169
- return [
170
- key.replaceAll(/(:| |@|=|;|,|\/|\\|\{|\})/g, "_"),
171
- desc ? `desc=${JSON.stringify(desc)}` : null,
172
- `dur=${dur}`
173
- ].filter(Boolean).join(";");
174
- }).join(",");
175
- }
176
- function combineServerTimings(headers1, headers2) {
177
- const newHeaders = new Headers(headers1);
178
- newHeaders.append("Server-Timing", headers2.get("Server-Timing") ?? "");
179
- return newHeaders.get("Server-Timing") ?? "";
180
- }
181
- function cachifiedTimingReporter(timings, timingKey) {
182
- if (!timings) return;
183
- return ({ key }) => {
184
- timingKey = timingKey ?? key;
185
- const cacheRetrievalTimer = createTimer(
186
- `cache:${timingKey}`,
187
- `${timingKey} cache retrieval`
188
- );
189
- let getFreshValueTimer;
190
- return (event) => {
191
- switch (event.name) {
192
- case "getFreshValueStart":
193
- getFreshValueTimer = createTimer(
194
- `getFreshValue:${timingKey}`,
195
- `request forced to wait for a fresh ${timingKey} value`
196
- );
197
- break;
198
- case "getFreshValueSuccess":
199
- getFreshValueTimer == null ? void 0 : getFreshValueTimer.end(timings);
200
- break;
201
- case "done":
202
- cacheRetrievalTimer.end(timings);
203
- break;
204
- }
205
- };
206
- };
207
- }
208
- const solutionAppCache = makeSingletonCache("SolutionAppCache");
209
- const problemAppCache = makeSingletonCache("ProblemAppCache");
210
- const exampleAppCache = makeSingletonCache("ExampleAppCache");
211
- const playgroundAppCache = makeSingletonCache("PlaygroundAppCache");
212
- const appsCache = makeSingletonCache("AppsCache");
213
- const diffCodeCache = makeSingletonCache("DiffCodeCache");
214
- const diffFilesCache = makeSingletonCache("DiffFilesCache");
215
- const compiledMarkdownCache = makeSingletonCache(
216
- "CompiledMarkdownCache"
217
- );
218
- const compiledCodeCache = makeSingletonCache("CompiledCodeCache");
219
- const ogCache = makeSingletonCache("OgCache");
220
- const compiledInstructionMarkdownCache = makeSingletonFsCache("CompiledInstructionMarkdownCache");
221
- const dirModifiedTimeCache = makeSingletonCache(
222
- "DirModifiedTimeCache"
223
- );
224
- const cacheDir = path.join(os.homedir(), ".epicshop", "cache");
225
- const fsCache = makeSingletonFsCache("FsCache");
226
- async function getAllFileCacheEntries() {
227
- const files = await fsExtra.readdir(cacheDir);
228
- const entries = await Promise.all(
229
- files.map(async (file) => {
230
- const filePath = path.join(cacheDir, file);
231
- const data = await fsExtra.readJSON(filePath);
232
- return data;
233
- }).filter(Boolean)
234
- );
235
- return entries;
236
- }
237
- async function deleteCache() {
238
- if (process.env.EPICSHOP_DEPLOYED) return null;
239
- try {
240
- if (await fsExtra.exists(cacheDir)) {
241
- await fsExtra.remove(cacheDir);
242
- }
243
- } catch (error) {
244
- console.error(`Error deleting the cache in ${cacheDir}`, error);
245
- }
246
- }
247
- function makeSingletonCache(name) {
248
- return remember(name, () => {
249
- const lruInstance = new LRUCache({
250
- max: 1e3
251
- });
252
- const lru = {
253
- name,
254
- set: (key, value) => {
255
- const ttl = C.totalTtl(value.metadata);
256
- lruInstance.set(key, value, {
257
- ttl: ttl === Infinity ? void 0 : ttl,
258
- start: value.metadata.createdTime
259
- });
260
- return value;
261
- },
262
- get: (key) => lruInstance.get(key),
263
- delete: (key) => lruInstance.delete(key)
264
- };
265
- return lru;
266
- });
267
- }
268
- function makeSingletonFsCache(name) {
269
- return remember(name, () => {
270
- const cacheDir2 = path.join(os.homedir(), ".epicshop", "cache", name);
271
- const fsCache2 = {
272
- name: `Filesystem cache (${name})`,
273
- async get(key) {
274
- try {
275
- const filePath = path.join(cacheDir2, md5(key));
276
- const data = await fsExtra.readJSON(filePath);
277
- if (data.entry) return data.entry;
278
- return null;
279
- } catch (error) {
280
- if (error instanceof Error && "code" in error && error.code === "ENOENT") {
281
- return null;
282
- }
283
- throw error;
284
- }
285
- },
286
- async set(key, entry2) {
287
- const filePath = path.join(cacheDir2, md5(key));
288
- await fsExtra.ensureDir(path.dirname(filePath));
289
- await fsExtra.writeJSON(filePath, { key, entry: entry2 });
290
- },
291
- async delete(key) {
292
- const filePath = path.join(cacheDir2, md5(key));
293
- await fsExtra.remove(filePath);
294
- }
295
- };
296
- return fsCache2;
297
- });
298
- }
299
- async function cachified({
300
- request,
301
- timings,
302
- key,
303
- timingKey = key.length > 18 ? `${key.slice(0, 7)}...${key.slice(-8)}` : key,
304
- ...options
305
- }) {
306
- const forceFresh = await shouldForceFresh({
307
- forceFresh: options.forceFresh,
308
- request,
309
- key
310
- });
311
- return C.cachified(
312
- {
313
- ...options,
314
- key,
315
- forceFresh
316
- },
317
- C.mergeReporters(
318
- cachifiedTimingReporter(timings, timingKey),
319
- process.env.EPICSHOP_DEBUG_CACHE ? verboseReporter() : void 0
320
- )
321
- );
322
- }
323
- async function shouldForceFresh({
324
- forceFresh,
325
- request,
326
- key
327
- }) {
328
- if (typeof forceFresh === "boolean") return forceFresh;
329
- if (typeof forceFresh === "string" && key) {
330
- return forceFresh.split(",").includes(key);
331
- }
332
- if (!request) return false;
333
- const fresh = new URL(request.url).searchParams.get("fresh");
334
- if (typeof fresh !== "string") return false;
335
- if (fresh === "") return true;
336
- if (!key) return false;
337
- return fresh.split(",").includes(key);
338
- }
339
- const DiscordMemberSchema = z.object({
340
- avatarURL: z.string().nullable().optional(),
341
- displayName: z.string(),
342
- id: z.string()
343
- });
344
- const TokenSetSchema = z.object({
345
- access_token: z.string(),
346
- token_type: z.string(),
347
- scope: z.string()
348
- });
349
- const PlayerPreferencesSchema = z.object({
350
- volumeRate: z.number().optional(),
351
- playbackRate: z.number().optional(),
352
- autoplay: z.boolean().optional(),
353
- subtitle: z.object({
354
- id: z.string().nullable().default(null),
355
- mode: z.literal("disabled").or(z.literal("hidden")).or(z.literal("showing")).nullable().default("disabled")
356
- }).optional().default({}),
357
- muted: z.boolean().optional(),
358
- theater: z.boolean().optional(),
359
- defaultView: z.string().optional(),
360
- activeSidebarTab: z.number().optional()
361
- }).optional().default({});
362
- const PresencePreferencesSchema = z.object({
363
- optOut: z.boolean()
364
- }).optional().default({ optOut: false });
365
- const AuthInfoSchema = z.object({
366
- tokenSet: TokenSetSchema,
367
- email: z.string(),
368
- name: z.string().nullable().optional()
369
- }).transform((d) => ({ ...d, id: md5(d.email) }));
370
- const DataSchema = z.object({
371
- onboarding: z.object({
372
- tourVideosWatched: z.array(z.string()).default([])
373
- }).passthrough().optional().default({ tourVideosWatched: [] }),
374
- preferences: z.object({
375
- player: PlayerPreferencesSchema,
376
- presence: PresencePreferencesSchema
377
- }).optional().default({}),
378
- authInfo: AuthInfoSchema.optional(),
379
- discordMember: DiscordMemberSchema.optional()
380
- });
381
- const appDir = path.join(os.homedir(), ".epicshop");
382
- const dbPath = path.join(appDir, "data.json");
383
- async function deleteDb() {
384
- if (process.env.EPICSHOP_DEPLOYED) return null;
385
- try {
386
- if (await fsExtra.exists(dbPath)) {
387
- await fsExtra.remove(dbPath);
388
- }
389
- } catch (error) {
390
- console.error(`Error deleting the database in ${dbPath}`, error);
391
- }
392
- }
393
- async function readDb() {
394
- if (process.env.EPICSHOP_DEPLOYED) return null;
395
- try {
396
- if (await fsExtra.exists(dbPath)) {
397
- const db = DataSchema.parse(await fsExtra.readJSON(dbPath));
398
- return db;
399
- }
400
- } catch (error) {
401
- console.error(
402
- `Error reading the database in ${dbPath}, moving it to a .bkp file to avoid parsing errors in the future`,
403
- error
404
- );
405
- void fsExtra.move(dbPath, `${dbPath}.bkp`).catch(() => {
406
- });
407
- }
408
- return null;
409
- }
410
- async function getAuthInfo() {
411
- const data = await readDb();
412
- return (data == null ? void 0 : data.authInfo) ?? null;
413
- }
414
- async function getUserInfo() {
415
- var _a, _b;
416
- const db = await readDb();
417
- if (!(db == null ? void 0 : db.authInfo)) return null;
418
- return {
419
- id: db.authInfo.id,
420
- name: ((_a = db.discordMember) == null ? void 0 : _a.displayName) ?? db.authInfo.name ?? null,
421
- email: db.authInfo.email,
422
- avatarUrl: ((_b = db.discordMember) == null ? void 0 : _b.avatarURL) ?? getGravatar({ email: db.authInfo.email, size: 288 })
423
- };
424
- }
425
- function getGravatar({ email, size }) {
426
- const gravatarOptions = new URLSearchParams({
427
- size: size.toString(),
428
- default: "identicon"
429
- });
430
- const gravatarUrl = `https://www.gravatar.com/avatar/${md5(
431
- email
432
- )}?${gravatarOptions.toString()}`;
433
- return gravatarUrl;
434
- }
435
- async function requireAuthInfo({
436
- request,
437
- redirectTo
438
- }) {
439
- const authInfo = await getAuthInfo();
440
- if (!authInfo) {
441
- const requestUrl = new URL(request.url);
442
- redirectTo = redirectTo === null ? null : redirectTo ?? `${requestUrl.pathname}${requestUrl.search}`;
443
- const loginParams = redirectTo ? new URLSearchParams({ redirectTo }) : null;
444
- const loginRedirect = ["/login", loginParams == null ? void 0 : loginParams.toString()].filter(Boolean).join("?");
445
- throw redirect(loginRedirect);
446
- }
447
- return authInfo;
448
- }
449
- async function setAuthInfo({
450
- tokenSet,
451
- email = "unknown@example.com",
452
- name
453
- }) {
454
- const data = await readDb();
455
- const authInfo = AuthInfoSchema.parse({ tokenSet, email, name });
456
- await fsExtra.ensureDir(appDir);
457
- await fsExtra.writeJSON(dbPath, { ...data, authInfo });
458
- return authInfo;
459
- }
460
- async function getPreferences() {
461
- const data = await readDb();
462
- return (data == null ? void 0 : data.preferences) ?? null;
463
- }
464
- async function setPlayerPreferences(playerPreferences) {
465
- const data = await readDb();
466
- const updatedData = {
467
- ...data,
468
- preferences: { ...data == null ? void 0 : data.preferences, player: playerPreferences }
469
- };
470
- await fsExtra.ensureDir(appDir);
471
- await fsExtra.writeJSON(dbPath, updatedData);
472
- return updatedData.preferences.player;
473
- }
474
- async function setPresencePreferences(presnecePreferences) {
475
- const data = await readDb();
476
- const updatedData = {
477
- ...data,
478
- preferences: { ...data == null ? void 0 : data.preferences, presence: presnecePreferences }
479
- };
480
- await fsExtra.ensureDir(appDir);
481
- await fsExtra.writeJSON(dbPath, updatedData);
482
- return updatedData.preferences.presence;
483
- }
484
- async function getDiscordMember() {
485
- const data = await readDb();
486
- return (data == null ? void 0 : data.discordMember) ?? null;
487
- }
488
- async function setDiscordMember(discordMember) {
489
- const data = await readDb();
490
- const updatedData = {
491
- ...data,
492
- discordMember
493
- };
494
- await fsExtra.ensureDir(appDir);
495
- await fsExtra.writeJSON(dbPath, updatedData);
496
- return updatedData.discordMember;
497
- }
498
- async function deleteDiscordInfo() {
499
- const data = await readDb();
500
- data == null ? true : delete data.discordMember;
501
- await fsExtra.ensureDir(appDir);
502
- await fsExtra.writeJSON(dbPath, data);
503
- }
504
- async function readOnboardingData() {
505
- const data = await readDb();
506
- return (data == null ? void 0 : data.onboarding) ?? null;
507
- }
508
- async function markOnboardingVideoWatched(videoUrl) {
509
- const data = await readDb();
510
- const updatedData = {
511
- ...data,
512
- onboarding: {
513
- ...data == null ? void 0 : data.onboarding,
514
- tourVideosWatched: [
515
- ...(data == null ? void 0 : data.onboarding.tourVideosWatched) ?? [],
516
- videoUrl
517
- ].filter(Boolean)
518
- }
519
- };
520
- await fsExtra.ensureDir(appDir);
521
- await fsExtra.writeJSON(dbPath, updatedData);
522
- return updatedData.onboarding;
523
- }
524
- const partykitRoom = "epic-web-presence";
525
- const partykitBaseUrl = `https://epic-web-presence.kentcdodds.partykit.dev/parties/main/${partykitRoom}`;
526
- const UserSchema = z.object({
527
- id: z.string(),
528
- avatarUrl: z.string().nullable().optional(),
529
- name: z.string().nullable().optional(),
530
- location: z.object({
531
- workshopTitle: z.string().nullable().optional(),
532
- origin: z.string().nullable().optional(),
533
- exercise: z.object({
534
- type: z.union([z.literal("problem"), z.literal("solution")]).nullable().optional(),
535
- exerciseNumber: z.number().nullable().optional(),
536
- stepNumber: z.number().nullable().optional()
537
- }).nullable().optional()
538
- }).nullable().optional()
539
- });
540
- const MessageSchema = z.object({
541
- type: z.literal("remove-user"),
542
- payload: z.object({ id: z.string() })
543
- }).or(z.object({ type: z.literal("add-user"), payload: UserSchema })).or(
544
- z.object({
545
- type: z.literal("presence"),
546
- payload: z.object({ users: z.array(UserSchema) })
547
- })
548
- );
549
- const PresenceSchema = z.object({ users: z.array(UserSchema) });
550
- const presenceCache = makeSingletonCache("PresenceCache");
551
- async function getPresentUsers(user, { timings, request } = {}) {
552
- return cachified({
553
- key: "presence",
554
- cache: presenceCache,
555
- timings,
556
- request,
557
- ttl: 1e3 * 60 * 5,
558
- swr: 1e3 * 60 * 60 * 24,
559
- checkValue: z.array(UserSchema),
560
- async getFreshValue(context) {
561
- try {
562
- const response = await Promise.race([
563
- fetch(`${partykitBaseUrl}/presence`),
564
- new Promise(
565
- (resolve) => setTimeout(() => {
566
- resolve(new Response("Timeout", { status: 500 }));
567
- }, 500)
568
- )
569
- ]);
570
- if (response.statusText === "Timeout") {
571
- throw new Error(`Timeout fetching partykit presence`);
572
- }
573
- if (!response.ok) {
574
- throw new Error(
575
- `Unexpected response from partykit: ${response.status} ${response.statusText}`
576
- );
577
- }
578
- const presence = PresenceSchema.parse(await response.json());
579
- const preferences = await getPreferences();
580
- const users = presence.users;
581
- if ((preferences == null ? void 0 : preferences.presence.optOut) ?? !user) {
582
- return uniqueUsers(users.filter((u) => u.id !== (user == null ? void 0 : user.id)));
583
- } else {
584
- return uniqueUsers([...users, user]);
585
- }
586
- } catch {
587
- context.metadata.ttl = 300;
588
- return [];
589
- }
590
- }
591
- });
592
- }
593
- function uniqueUsers(users) {
594
- const seen = /* @__PURE__ */ new Set();
595
- return users.filter(Boolean).filter((user) => {
596
- if (seen.has(user.id)) {
597
- return false;
598
- }
599
- seen.add(user.id);
600
- return true;
601
- });
602
- }
603
- function trimCodeBlocks() {
604
- return async function transformer(tree) {
605
- visit(tree, "element", (preNode) => {
606
- if (preNode.tagName !== "pre" || !preNode.children.length) {
607
- return;
608
- }
609
- const codeNode = preNode.children[0];
610
- if (!codeNode || codeNode.type !== "element" || codeNode.tagName !== "code") {
611
- return;
612
- }
613
- const [codeStringNode] = codeNode.children;
614
- if (!codeStringNode) return;
615
- if (codeStringNode.type !== "text") {
616
- console.warn(
617
- `trimCodeBlocks: Unexpected: codeStringNode type is not "text": ${codeStringNode.type}`
618
- );
619
- return;
620
- }
621
- codeStringNode.value = codeStringNode.value.trimEnd();
622
- });
623
- };
624
- }
625
- function removePreContainerDivs() {
626
- return async function preContainerDivsTransformer(tree) {
627
- visit(
628
- tree,
629
- { type: "element", tagName: "pre" },
630
- function visitor(node, index, parent) {
631
- if ((parent == null ? void 0 : parent.type) !== "element") return;
632
- if (parent.tagName !== "div") return;
633
- if (parent.children.length !== 1 && index === 0) return;
634
- Object.assign(parent, node);
635
- }
636
- );
637
- };
638
- }
639
- const rehypePlugins = [
640
- trimCodeBlocks,
641
- remarkCodeBlocksShiki,
642
- removePreContainerDivs
643
- ];
644
- const verboseLog = process.env.EPICSHOP_VERBOSE_LOG === "true" ? console.log : () => {
645
- };
646
- async function compileMdx(file, {
647
- request,
648
- timings,
649
- forceFresh
650
- } = {}) {
651
- const stat = await fs.promises.stat(file).catch((error) => ({ error }));
652
- if ("error" in stat) {
653
- throw new Error(`File stat cannot be read: ${stat.error}`);
654
- }
655
- const key = `file:${file}`;
656
- forceFresh = await shouldForceFresh({ forceFresh, request, key });
657
- const existingCacheEntry = await compiledInstructionMarkdownCache.get(key);
658
- if (!forceFresh && existingCacheEntry) {
659
- forceFresh = stat.mtimeMs > existingCacheEntry.metadata.createdTime;
660
- }
661
- return cachified({
662
- key,
663
- cache: compiledInstructionMarkdownCache,
664
- request,
665
- timings,
666
- forceFresh,
667
- getFreshValue: () => compileMdxImpl(file)
668
- });
669
- }
670
- async function compileMdxImpl(file) {
671
- let title = null;
672
- const epicVideoEmbeds = [];
673
- try {
674
- verboseLog(`Compiling ${file}`);
675
- const bundleResult = await queuedBundleMDX({
676
- file,
677
- cwd: path.dirname(file),
678
- mdxOptions(options) {
679
- options.remarkPlugins = [
680
- ...options.remarkPlugins ?? [],
681
- [remarkAutolinkHeadings, { behavior: "wrap" }],
682
- gfm,
683
- () => (tree) => {
684
- visit(tree, "heading", (node) => {
685
- if (title) return;
686
- if (node.depth === 1) {
687
- visit(node, "text", (textNode) => {
688
- title = textNode.value.trim();
689
- });
690
- }
691
- });
692
- title = title ? title.replace(/^\d+\. /, "").trim() : null;
693
- },
694
- () => (tree) => {
695
- visit(tree, "mdxJsxFlowElement", (jsxEl) => {
696
- if (jsxEl.name !== "EpicVideo") return;
697
- const urlAttr = jsxEl.attributes.find(
698
- // @ts-expect-error no idea why this started being an issue suddenly 🤷‍♂️
699
- (a) => a.type === "mdxJsxAttribute" && a.name === "url"
700
- );
701
- if (!urlAttr) return;
702
- let url = urlAttr.value;
703
- if (typeof url !== "string") return;
704
- if (url.endsWith("/")) url = url.slice(0, -1);
705
- epicVideoEmbeds.push(url);
706
- });
707
- },
708
- emoji
709
- ];
710
- options.rehypePlugins = [
711
- ...options.rehypePlugins ?? [],
712
- ...rehypePlugins
713
- ];
714
- options.mdxExtensions = [".mdx", ".md"];
715
- options.format = "mdx";
716
- options.development = false;
717
- return options;
718
- }
719
- });
720
- if (!bundleResult) throw new Error(`Timeout for file: ${file}`);
721
- const result = { code: bundleResult.code, title, epicVideoEmbeds };
722
- return result;
723
- } catch (error) {
724
- console.error(`Compilation error for file: `, file, error);
725
- throw error;
726
- } finally {
727
- verboseLog(`Successfully compiled ${file}`);
728
- }
729
- }
730
- async function compileMarkdownString(markdownString) {
731
- return cachified({
732
- key: markdownString,
733
- cache: compiledMarkdownCache,
734
- ttl: 1e3 * 60 * 60 * 24,
735
- getFreshValue: async () => {
736
- try {
737
- verboseLog(`Compiling string`, markdownString);
738
- const result = await queuedBundleMDX({
739
- source: markdownString,
740
- mdxOptions(options) {
741
- options.rehypePlugins = [
742
- ...options.rehypePlugins ?? [],
743
- ...rehypePlugins
744
- ];
745
- options.development = false;
746
- return options;
747
- }
748
- });
749
- if (!result) throw new Error(`Timed out compiling markdown string`);
750
- return result.code;
751
- } catch (error) {
752
- console.error(`Compilation error for code: `, markdownString, error);
753
- throw error;
754
- } finally {
755
- verboseLog(`Successfully compiled string`, markdownString);
756
- }
757
- }
758
- });
759
- }
760
- let _queue$1 = null;
761
- async function getQueue$1() {
762
- if (_queue$1) return _queue$1;
763
- _queue$1 = new PQueue({
764
- concurrency: 1,
765
- throwOnTimeout: true,
766
- timeout: 1e3 * 60
767
- });
768
- return _queue$1;
769
- }
770
- async function queuedBundleMDX(...args) {
771
- const queue = await getQueue$1();
772
- const result = await queue.add(() => bundleMDX(...args));
773
- return result;
774
- }
775
- const workshopRoot$1 = process.env.EPICSHOP_CONTEXT_CWD ?? process.cwd();
776
- const rootPkgJson = path$1.join(workshopRoot$1, "package.json");
777
- const StackBlitzConfigSchema = z.object({
778
- // we default this to `${exerciseTitle} (${type})`
779
- title: z.string().optional(),
780
- // stackblitz defaults this to dev automatically
781
- startScript: z.string().optional(),
782
- // if no value is provided, then stackblitz defaults this to whatever
783
- // looks best based on the width of the screen
784
- view: z.union([z.literal("editor"), z.literal("preview"), z.literal("both")]).optional(),
785
- file: z.string().optional()
786
- });
787
- const InstructorSchema = z.object({
788
- name: z.string().optional(),
789
- avatar: z.string().optional(),
790
- "𝕏": z.string().optional(),
791
- xHandle: z.string().optional()
792
- });
793
- const WorkshopConfigSchema = z.object({
794
- title: z.string(),
795
- subtitle: z.string().optional(),
796
- instructor: InstructorSchema.optional(),
797
- epicWorkshopHost: z.string().optional(),
798
- epicWorkshopSlug: z.string().optional(),
799
- product: z.object({
800
- host: z.string().default("www.epicweb.dev"),
801
- displayName: z.string().default("EpicWeb.dev"),
802
- displayNameShort: z.string().default("Epic Web"),
803
- logo: z.string().default("/logo.svg"),
804
- slug: z.string().optional(),
805
- discordChannelId: z.string().default("1161045224907341972"),
806
- discordTags: z.array(z.string()).optional()
807
- }).default({}),
808
- onboardingVideo: z.string().default(
809
- "https://www.epicweb.dev/tips/get-started-with-the-epic-workshop-app"
810
- ),
811
- githubRepo: z.string(),
812
- githubRoot: z.string(),
813
- stackBlitzConfig: StackBlitzConfigSchema.optional(),
814
- forms: z.object({
815
- workshop: z.string().default(
816
- "https://docs.google.com/forms/d/e/1FAIpQLSdRmj9p8-5zyoqRzxp3UpqSbC3aFkweXvvJIKes0a5s894gzg/viewform?hl=en&embedded=true&entry.2123647600={workshopTitle}"
817
- ),
818
- exercise: z.string().default(
819
- "https://docs.google.com/forms/d/e/1FAIpQLSf3o9xyjQepTlOTH5Z7ZwkeSTdXh6YWI_RGc9KiyD3oUN0p6w/viewform?hl=en&embedded=true&entry.1836176234={workshopTitle}&entry.428900931={exerciseTitle}"
820
- )
821
- }).default({}),
822
- testTab: z.object({
823
- enabled: z.boolean().default(true)
824
- }).default({}),
825
- scripts: z.object({
826
- postupdate: z.string().optional()
827
- }).optional(),
828
- initialRoute: z.string().optional().default("/")
829
- }).transform((data) => {
830
- return {
831
- ...data,
832
- product: {
833
- ...data.product,
834
- displayNameShort: data.product.displayNameShort ?? data.product.displayName,
835
- // for backwards compatibility
836
- host: data.product.host ?? data.epicWorkshopHost,
837
- slug: data.product.slug ?? data.epicWorkshopSlug
838
- }
839
- };
840
- });
841
- const configCache = {
842
- config: null,
843
- modified: 0
844
- };
845
- function getWorkshopConfig() {
846
- if (configCache.config && configCache.modified > fs$1.statSync(rootPkgJson).mtimeMs) {
847
- return configCache.config;
848
- }
849
- const packageJsonPath = path$1.join(workshopRoot$1, "package.json");
850
- let packageJson;
851
- try {
852
- const packageJsonContent = fs$1.readFileSync(packageJsonPath, "utf8");
853
- packageJson = JSON.parse(packageJsonContent);
854
- } catch (error) {
855
- console.error(`Error reading or parsing package.json:`, error);
856
- if (error instanceof Error && error.message.includes("ENOENT")) {
857
- throw new Error(
858
- `package.json not found at ${packageJsonPath}. Please ensure you're running the command from the correct directory.`
859
- );
860
- } else if (error instanceof SyntaxError) {
861
- throw new Error(
862
- `Invalid JSON in package.json at ${packageJsonPath}. Please check the file for syntax errors.`
863
- );
864
- }
865
- throw new Error(
866
- `Could not find and parse package.json at ${packageJsonPath}`
867
- );
868
- }
869
- const epicshopConfig = packageJson.epicshop || {};
870
- if (epicshopConfig.githubRepo) {
871
- epicshopConfig.githubRoot = `${epicshopConfig.githubRepo.replace(/\/$/, "")}/tree/main`;
872
- } else if (epicshopConfig.githubRoot) {
873
- epicshopConfig.githubRepo = epicshopConfig.githubRoot.replace(
874
- /\/(blob|tree)\/.*$/,
875
- ""
876
- );
877
- epicshopConfig.githubRoot = `${epicshopConfig.githubRepo}/tree/main`;
878
- } else {
879
- throw new Error(
880
- "Either githubRepo or githubRoot is required in the epicshop configuration"
881
- );
882
- }
883
- try {
884
- const parsedConfig = WorkshopConfigSchema.parse(epicshopConfig);
885
- configCache.config = parsedConfig;
886
- configCache.modified = fs$1.statSync(rootPkgJson).mtimeMs;
887
- return parsedConfig;
888
- } catch (error) {
889
- if (error instanceof z.ZodError) {
890
- const flattenedErrors = error.flatten();
891
- const errorMessages = Object.entries(flattenedErrors.fieldErrors).map(([field, errors]) => `${field}: ${errors == null ? void 0 : errors.join(", ")}`).concat(flattenedErrors.formErrors);
892
- throw new Error(
893
- `Invalid epicshop configuration in ${packageJsonPath}:
894
- ${errorMessages.join("\n")}`
895
- );
896
- }
897
- throw error;
898
- }
899
- }
900
- async function getStackBlitzUrl({
901
- fullPath,
902
- title,
903
- type
904
- }) {
905
- var _a;
906
- const workshopConfig = getWorkshopConfig();
907
- const appConfig = await getAppConfig(fullPath);
908
- if (appConfig.stackBlitzConfig === null) return null;
909
- let githubRootUrlString = workshopConfig.githubRoot;
910
- const githubRootUrl = new URL(
911
- githubRootUrlString.replace(/\/blob\//, "/tree/")
912
- );
913
- const githubPart = githubRootUrl.pathname;
914
- const stackBlitzConfig = {
915
- ...appConfig.stackBlitzConfig,
916
- title: ((_a = appConfig.stackBlitzConfig) == null ? void 0 : _a.title) ?? `${title} (${type})`
917
- };
918
- const params = new URLSearchParams(stackBlitzConfig);
919
- const relativePath = fullPath.replace(`${workshopRoot$1}${path$1.sep}`, "");
920
- const stackBlitzUrl = new URL(
921
- `/github${githubPart}/${relativePath}?${params}`,
922
- "https://stackblitz.com"
923
- );
924
- return stackBlitzUrl.toString();
925
- }
926
- async function getAppConfig(fullPath) {
927
- var _a, _b;
928
- const workshopConfig = getWorkshopConfig();
929
- let epicshopConfig = {};
930
- let scripts = {};
931
- const packageJsonPath = path$1.join(fullPath, "package.json");
932
- const packageJsonExists = await fs$1.promises.access(packageJsonPath, fs$1.constants.F_OK).then(() => true).catch(() => false);
933
- if (packageJsonExists) {
934
- const pkg = JSON.parse(
935
- await fs$1.promises.readFile(path$1.join(fullPath, "package.json"), "utf8")
936
- );
937
- epicshopConfig = pkg.epicshop ?? {};
938
- scripts = pkg.scripts ?? {};
939
- }
940
- const AppConfigSchema = z.object({
941
- stackBlitzConfig: StackBlitzConfigSchema.nullable().optional().transform((appStackBlitzConfig) => {
942
- if (appStackBlitzConfig === null) return null;
943
- return {
944
- ...workshopConfig.stackBlitzConfig,
945
- ...appStackBlitzConfig
946
- };
947
- }),
948
- testTab: z.object({
949
- enabled: z.boolean().optional().default(((_a = workshopConfig.testTab) == null ? void 0 : _a.enabled) ?? true)
950
- }).default({}),
951
- scripts: z.object({
952
- test: z.string().optional(),
953
- dev: z.string().optional()
954
- }).default({}),
955
- initialRoute: z.string().optional().default(workshopConfig.initialRoute)
956
- });
957
- const appConfig = {
958
- stackBlitzConfig: epicshopConfig.stackBlitzConfig,
959
- testTab: {
960
- enabled: (_b = epicshopConfig.testTab) == null ? void 0 : _b.enabled
961
- },
962
- scripts: {
963
- test: scripts.test,
964
- dev: scripts.dev
965
- },
966
- initialRoute: epicshopConfig.initialRoute
967
- };
968
- try {
969
- return AppConfigSchema.parse(appConfig);
970
- } catch (error) {
971
- if (error instanceof z.ZodError) {
972
- const flattenedErrors = error.flatten();
973
- const errorMessages = Object.entries(flattenedErrors.fieldErrors).map(([field, errors]) => `${field}: ${errors == null ? void 0 : errors.join(", ")}`).concat(flattenedErrors.formErrors);
974
- throw new Error(
975
- `Invalid app configuration for ${fullPath}:
976
- ${errorMessages.join("\n")}`
977
- );
978
- }
979
- throw error;
980
- }
981
- }
982
- const schema = z.object({
983
- NODE_ENV: z.enum(["production", "development", "test"]).default("development"),
984
- EPICSHOP_GITHUB_REPO: z.string(),
985
- EPICSHOP_GITHUB_ROOT: z.string(),
986
- EPICSHOP_CONTEXT_CWD: z.string()
987
- });
988
- function init$1() {
989
- const parsed = schema.safeParse(process.env);
990
- if (!parsed.success) {
991
- console.error(
992
- "❌ Invalid environment variables:",
993
- parsed.error.flatten().fieldErrors
994
- );
995
- throw new Error("Invalid environment variables");
996
- }
997
- }
998
- function getEnv() {
999
- return {
1000
- MODE: process.env.NODE_ENV,
1001
- EPICSHOP_CONTEXT_CWD: process.env.EPICSHOP_CONTEXT_CWD,
1002
- EPICSHOP_GITHUB_REPO: process.env.EPICSHOP_GITHUB_REPO,
1003
- EPICSHOP_GITHUB_ROOT: process.env.EPICSHOP_GITHUB_ROOT,
1004
- EPICSHOP_DEPLOYED: process.env.EPICSHOP_DEPLOYED === "true" || process.env.EPICSHOP_DEPLOYED === "1"
1005
- };
1006
- }
1007
- async function getDirModifiedTime(dir, { forceFresh = false } = {}) {
1008
- const result = await cachified({
1009
- key: dir,
1010
- cache: dirModifiedTimeCache,
1011
- ttl: 200,
1012
- forceFresh,
1013
- getFreshValue: () => getDirModifiedTimeImpl(dir)
1014
- });
1015
- return result;
1016
- }
1017
- async function getDirModifiedTimeImpl(dir) {
1018
- const isIgnored = await isGitIgnored({ cwd: dir });
1019
- const files = await fs$1.promises.readdir(dir, { withFileTypes: true }).catch(() => []);
1020
- const modifiedTimes2 = [];
1021
- for (const file of files) {
1022
- if (isIgnored(file.name)) continue;
1023
- const filePath = path$1.join(dir, file.name);
1024
- if (file.isDirectory()) {
1025
- modifiedTimes2.push(await getDirModifiedTime(filePath));
1026
- } else {
1027
- try {
1028
- const { mtimeMs } = await fs$1.promises.stat(filePath);
1029
- modifiedTimes2.push(mtimeMs);
1030
- } catch {
1031
- }
1032
- }
1033
- }
1034
- try {
1035
- const { mtimeMs } = await fs$1.promises.stat(dir);
1036
- modifiedTimes2.push(mtimeMs);
1037
- } catch {
1038
- }
1039
- return Math.max(-1, ...modifiedTimes2);
1040
- }
1041
- async function modifiedMoreRecentlyThan(time2, ...dirs) {
1042
- const modifiedTimePromises = dirs.map((dir) => getDirModifiedTime(dir));
1043
- const allFinishedPromise = Promise.all(modifiedTimePromises);
1044
- const firstMoreRecentPromise = modifiedTimePromises.map(
1045
- (p) => p.then((t) => t > time2 ? true : allFinishedPromise.then(() => false))
1046
- );
1047
- const firstMoreRecent = await Promise.race(firstMoreRecentPromise);
1048
- return firstMoreRecent;
1049
- }
1050
- let _queue = null;
1051
- function getQueue() {
1052
- if (_queue) return _queue;
1053
- _queue = new PQueue({
1054
- concurrency: 10,
1055
- throwOnTimeout: true,
1056
- timeout: 1e3 * 60
1057
- });
1058
- return _queue;
1059
- }
1060
- async function queuedGetDirModifiedTime(...args) {
1061
- const queue = getQueue();
1062
- const result = await queue.add(() => getDirModifiedTime(...args));
1063
- return result || -1;
1064
- }
1065
- function getErrorMessage$1(error) {
1066
- if (typeof error === "string") return error;
1067
- if (error && typeof error === "object" && "message" in error && typeof error.message === "string") {
1068
- return error.message;
1069
- }
1070
- console.error("Unable to get error message for error", error);
1071
- return "Unknown Error";
1072
- }
1073
- const isDeployed$1 = process.env.EPICSHOP_DEPLOYED === "true" || process.env.EPICSHOP_DEPLOYED === "1";
1074
- const devProcesses = remember("dev_processes", getDevProcessesMap);
1075
- const testProcesses = remember("test_processes", getTestProcessesMap);
1076
- function getDevProcessesMap() {
1077
- var _a;
1078
- const procs = /* @__PURE__ */ new Map();
1079
- (_a = global.__process_dev_close_with_grace_return__) == null ? void 0 : _a.uninstall();
1080
- global.__process_dev_close_with_grace_return__ = closeWithGrace(async () => {
1081
- for (const [name, proc] of procs.entries()) {
1082
- console.log("closing", name);
1083
- proc.process.kill();
1084
- }
1085
- });
1086
- return procs;
1087
- }
1088
- function getTestProcessesMap() {
1089
- var _a;
1090
- const procs = /* @__PURE__ */ new Map();
1091
- (_a = global.__process_test_close_with_grace_return__) == null ? void 0 : _a.uninstall();
1092
- global.__process_test_close_with_grace_return__ = closeWithGrace(async () => {
1093
- for (const [id, proc] of procs.entries()) {
1094
- if (proc.process) {
1095
- console.log("closing", id);
1096
- proc.process.kill();
1097
- }
1098
- }
1099
- });
1100
- return procs;
1101
- }
1102
- const colors = [
1103
- "blue",
1104
- "green",
1105
- "yellow",
1106
- "red",
1107
- "magenta",
1108
- "redBright",
1109
- "greenBright",
1110
- "yellowBright",
1111
- "blueBright",
1112
- "magentaBright"
1113
- ];
1114
- async function runAppDev(app) {
1115
- if (isDeployed$1) throw new Error("cannot run apps in deployed mode");
1116
- const key = app.name;
1117
- if (devProcesses.has(key)) {
1118
- return { status: "process-running", running: true };
1119
- }
1120
- if (app.dev.type !== "script") {
1121
- return { status: "error", error: "no-server" };
1122
- }
1123
- const { portNumber } = app.dev;
1124
- if (!await isPortAvailable(portNumber)) {
1125
- return { status: "port-unavailable", running: false, portNumber };
1126
- }
1127
- const availableColors = colors.filter(
1128
- (color2) => Array.from(devProcesses.values()).every((p) => p.color !== color2)
1129
- );
1130
- const color = availableColors[devProcesses.size % availableColors.length] ?? "blue";
1131
- const appProcess = spawn("npm", ["run", "dev", "--silent"], {
1132
- cwd: app.fullPath,
1133
- shell: true,
1134
- stdio: ["ignore", "pipe", "pipe"],
1135
- env: {
1136
- ...process.env,
1137
- // TODO: support specifying the env
1138
- NODE_ENV: "development",
1139
- // TODO: support specifying the port
1140
- PORT: String(portNumber),
1141
- APP_SERVER_PORT: String(portNumber),
1142
- // let it pick a random port...
1143
- REMIX_DEV_SERVER_WS_PORT: ""
1144
- }
1145
- });
1146
- const prefix = chalk[color](
1147
- `[${app.name.replace(/^exercises\./, "")}:${portNumber}]`
1148
- );
1149
- function handleStdOutData(data) {
1150
- console.log(
1151
- data.toString("utf-8").split("\n").map((line) => `${prefix} ${line}`).join("\n")
1152
- );
1153
- }
1154
- appProcess.stdout.on("data", handleStdOutData);
1155
- function handleStdErrData(data) {
1156
- console.error(
1157
- data.toString("utf-8").split("\n").map((line) => `${prefix} ${line}`).join("\n")
1158
- );
1159
- }
1160
- appProcess.stderr.on("data", handleStdErrData);
1161
- devProcesses.set(key, { color, process: appProcess, port: portNumber });
1162
- appProcess.on("exit", (code) => {
1163
- appProcess.stdout.off("data", handleStdOutData);
1164
- appProcess.stderr.off("data", handleStdErrData);
1165
- console.log(`${prefix} exited (${code})`);
1166
- devProcesses.delete(key);
1167
- });
1168
- return { status: "process-started", running: true };
1169
- }
1170
- async function runAppTests(app) {
1171
- if (isDeployed$1) throw new Error("cannot run tests in deployed mode");
1172
- const key = app.name;
1173
- if (app.test.type !== "script") {
1174
- return { status: "error", error: "no-test" };
1175
- }
1176
- const testProcess = spawn("npm", ["run", "test", "--silent"], {
1177
- cwd: app.fullPath,
1178
- shell: true,
1179
- stdio: ["ignore", "pipe", "pipe"],
1180
- env: {
1181
- ...process.env,
1182
- // TODO: support specifying the env
1183
- NODE_ENV: "development",
1184
- // TODO: support specifying the port
1185
- PORT: app.dev.type === "script" ? String(app.dev.portNumber) : void 0,
1186
- APP_SERVER_PORT: app.dev.type === "script" ? String(app.dev.portNumber) : void 0,
1187
- // let it pick a random port...
1188
- REMIX_DEV_SERVER_WS_PORT: ""
1189
- }
1190
- });
1191
- const output = [];
1192
- const entry2 = { process: testProcess, output };
1193
- function handleStdOutData(data) {
1194
- output.push({
1195
- type: "stdout",
1196
- content: data.toString("utf-8"),
1197
- timestamp: Date.now()
1198
- });
1199
- }
1200
- testProcess.stdout.on("data", handleStdOutData);
1201
- function handleStdErrData(data) {
1202
- output.push({
1203
- type: "stderr",
1204
- content: data.toString("utf-8"),
1205
- timestamp: Date.now()
1206
- });
1207
- }
1208
- testProcess.stderr.on("data", handleStdErrData);
1209
- testProcess.on("exit", (code) => {
1210
- testProcess.stdout.off("data", handleStdOutData);
1211
- testProcess.stderr.off("data", handleStdErrData);
1212
- entry2.process = null;
1213
- entry2.exitCode = code;
1214
- });
1215
- testProcesses.set(key, entry2);
1216
- return testProcess;
1217
- }
1218
- async function waitOnApp(app) {
1219
- if (app.dev.type === "script") {
1220
- const startTime = Date.now();
1221
- const retryInterval = 100;
1222
- const timeout = 2e4;
1223
- let lastError;
1224
- while (Date.now() - startTime < timeout) {
1225
- try {
1226
- await fetch(`http://localhost:${app.dev.portNumber}`, {
1227
- method: "HEAD",
1228
- headers: { Accept: "*/*" }
1229
- });
1230
- return { status: "success" };
1231
- } catch (error) {
1232
- lastError = error;
1233
- await new Promise((resolve) => setTimeout(resolve, retryInterval));
1234
- }
1235
- }
1236
- return { status: "error", error: getErrorMessage$1(lastError) };
1237
- }
1238
- return null;
1239
- }
1240
- function isPortAvailable(port2) {
1241
- return new Promise((resolve) => {
1242
- const server = net.createServer();
1243
- server.unref();
1244
- server.on("error", () => resolve(false));
1245
- server.listen(Number(port2), () => {
1246
- server.close(() => {
1247
- resolve(true);
1248
- });
1249
- });
1250
- });
1251
- }
1252
- function isAppRunning(app) {
1253
- try {
1254
- const devProcess = devProcesses.get(app.name);
1255
- if (!devProcess) return false;
1256
- devProcess.process.kill(0);
1257
- return true;
1258
- } catch {
1259
- return false;
1260
- }
1261
- }
1262
- function isTestRunning(app) {
1263
- try {
1264
- const testProcess = testProcesses.get(app.name);
1265
- if (!testProcess) return false;
1266
- if (testProcess.process === null) return false;
1267
- testProcess.process.kill(0);
1268
- return true;
1269
- } catch {
1270
- return false;
1271
- }
1272
- }
1273
- function getTestProcessEntry(app) {
1274
- return testProcesses.get(app.name);
1275
- }
1276
- function clearTestProcessEntry(app) {
1277
- return testProcesses.delete(app.name);
1278
- }
1279
- function getProcesses() {
1280
- return { devProcesses, testProcesses };
1281
- }
1282
- async function closeProcess(key) {
1283
- if (isDeployed$1) throw new Error("cannot close processes in deployed mode");
1284
- const proc = devProcesses.get(key);
1285
- if (proc) {
1286
- const exitedPromise = new Promise(
1287
- (resolve) => proc.process.on("exit", resolve)
1288
- );
1289
- if (process.platform === "win32") {
1290
- const { execa: execa2 } = await import("execa");
1291
- await execa2("taskkill", ["/pid", String(proc.process.pid), "/f", "/t"]);
1292
- } else {
1293
- proc.process.kill();
1294
- }
1295
- await Promise.race([
1296
- new Promise((resolve) => setTimeout(resolve, 500)),
1297
- exitedPromise
1298
- ]);
1299
- await stopPort(proc.port);
1300
- devProcesses.delete(key);
1301
- }
1302
- }
1303
- const sleep = (t) => new Promise((resolve) => setTimeout(resolve, t));
1304
- async function stopPort(port2) {
1305
- if (isDeployed$1) throw new Error("cannot stop ports in deployed mode");
1306
- await fkill(`:${port2}`, { force: true, silent: true });
1307
- await waitForPortToBeAvailable(port2);
1308
- }
1309
- async function waitForPortToBeAvailable(port2) {
1310
- const timeout = Date.now() + 1e4;
1311
- let portAvailable = false;
1312
- do {
1313
- portAvailable = await isPortAvailable(port2);
1314
- await sleep(100);
1315
- } while (!portAvailable && Date.now() < timeout);
1316
- if (!portAvailable) {
1317
- console.error("Timed out waiting for the port to become available");
1318
- }
1319
- }
1320
- global.__epicshop_apps_initialized__ ?? (global.__epicshop_apps_initialized__ = false);
1321
- const workshopRoot = process.env.EPICSHOP_CONTEXT_CWD = process.env.EPICSHOP_CONTEXT_CWD ?? process.cwd();
1322
- const playgroundAppNameInfoPath = path$1.join(
1323
- workshopRoot,
1324
- "node_modules",
1325
- ".cache",
1326
- "epicshop",
1327
- "playground.json"
1328
- );
1329
- const BaseAppSchema = z.object({
1330
- /** a unique identifier for the app */
1331
- name: z.string(),
1332
- /** the title of the app used for display (comes from the package.json title prop) */
1333
- title: z.string(),
1334
- /** used when displaying the list of files to match the list of apps in the file system (comes the name of the directory of the app) */
1335
- dirName: z.string(),
1336
- fullPath: z.string(),
1337
- relativePath: z.string(),
1338
- instructionsCode: z.string().optional(),
1339
- epicVideoEmbeds: z.array(z.string()).optional(),
1340
- test: z.union([
1341
- z.object({
1342
- type: z.literal("browser"),
1343
- pathname: z.string(),
1344
- testFiles: z.array(z.string())
1345
- }),
1346
- z.object({ type: z.literal("script"), script: z.string() }),
1347
- z.object({ type: z.literal("none") })
1348
- ]),
1349
- dev: z.union([
1350
- z.object({ type: z.literal("browser"), pathname: z.string() }),
1351
- z.object({
1352
- type: z.literal("script"),
1353
- portNumber: z.number(),
1354
- initialRoute: z.string()
1355
- }),
1356
- z.object({ type: z.literal("none") })
1357
- ]),
1358
- stackBlitzUrl: z.string().nullable()
1359
- });
1360
- const BaseExerciseStepAppSchema = BaseAppSchema.extend({
1361
- exerciseNumber: z.number(),
1362
- stepNumber: z.number()
1363
- });
1364
- const ProblemAppSchema = BaseExerciseStepAppSchema.extend({
1365
- type: z.literal("problem"),
1366
- solutionName: z.string().nullable()
1367
- });
1368
- const SolutionAppSchema = BaseExerciseStepAppSchema.extend({
1369
- type: z.literal("solution"),
1370
- problemName: z.string().nullable()
1371
- });
1372
- const ExampleAppSchema = BaseAppSchema.extend({
1373
- type: z.literal("example")
1374
- });
1375
- const PlaygroundAppSchema = BaseAppSchema.extend({
1376
- type: z.literal("playground"),
1377
- appName: z.string(),
1378
- isUpToDate: z.boolean()
1379
- });
1380
- z.object({
1381
- /** a unique identifier for the exercise */
1382
- exerciseNumber: z.number(),
1383
- /** used when displaying the list of files to match the list of apps in the file system (comes the name of the directory of the app) */
1384
- dirName: z.string(),
1385
- /** the title of the app used for display (comes from the first h1 in the README) */
1386
- title: z.string(),
1387
- instructionsCode: z.string().optional(),
1388
- finishedCode: z.string().optional(),
1389
- instructionsEpicVideoEmbeds: z.array(z.string()).optional(),
1390
- finishedEpicVideoEmbeds: z.array(z.string()).optional(),
1391
- steps: z.array(
1392
- z.union([
1393
- z.object({
1394
- stepNumber: z.number(),
1395
- problem: ProblemAppSchema,
1396
- solution: SolutionAppSchema
1397
- }),
1398
- z.object({
1399
- stepNumber: z.number(),
1400
- problem: ProblemAppSchema,
1401
- solution: z.never().optional()
1402
- }),
1403
- z.object({
1404
- stepNumber: z.number(),
1405
- problem: z.never().optional(),
1406
- solution: SolutionAppSchema
1407
- })
1408
- ])
1409
- ),
1410
- problems: z.array(ProblemAppSchema),
1411
- solutions: z.array(SolutionAppSchema)
1412
- });
1413
- const ExerciseStepAppSchema = z.union([ProblemAppSchema, SolutionAppSchema]);
1414
- const AppSchema = z.union([
1415
- ExerciseStepAppSchema,
1416
- PlaygroundAppSchema,
1417
- ExampleAppSchema
1418
- ]);
1419
- function isApp(app) {
1420
- return AppSchema.safeParse(app).success;
1421
- }
1422
- function isProblemApp(app) {
1423
- return ProblemAppSchema.safeParse(app).success;
1424
- }
1425
- function isSolutionApp(app) {
1426
- return SolutionAppSchema.safeParse(app).success;
1427
- }
1428
- function isPlaygroundApp(app) {
1429
- return isApp(app) && app.type === "playground";
1430
- }
1431
- function isExampleApp(app) {
1432
- return isApp(app) && app.type === "example";
1433
- }
1434
- function isExerciseStepApp(app) {
1435
- return isProblemApp(app) || isSolutionApp(app);
1436
- }
1437
- function exists(file) {
1438
- return fs$1.promises.access(file, fs$1.constants.F_OK).then(
1439
- () => true,
1440
- () => false
1441
- );
1442
- }
1443
- async function firstToExist(...files) {
1444
- const results = await Promise.all(files.map(exists));
1445
- const index = results.findIndex(Boolean);
1446
- return index === -1 ? null : files[index];
1447
- }
1448
- const modifiedTimes = remember(
1449
- "modified_times",
1450
- () => /* @__PURE__ */ new Map()
1451
- );
1452
- async function init() {
1453
- if (global.__epicshop_apps_initialized__) return;
1454
- global.__epicshop_apps_initialized__ = true;
1455
- const config = getWorkshopConfig();
1456
- process.env.EPICSHOP_GITHUB_REPO = config.githubRepo;
1457
- process.env.EPICSHOP_GITHUB_ROOT = config.githubRoot;
1458
- init$1();
1459
- global.ENV = getEnv();
1460
- if (!ENV.EPICSHOP_DEPLOYED && process.env.EPICSHOP_ENABLE_WATCHER === "true") {
1461
- const isIgnored = await isGitIgnored({ cwd: workshopRoot });
1462
- const filesToWatch = ["README.mdx", "FINISHED.mdx", "package.json"];
1463
- const chok = chokidar.watch(["examples", "playground", "exercises"], {
1464
- cwd: workshopRoot,
1465
- ignoreInitial: true,
1466
- ignored(filePath, stats) {
1467
- if (isIgnored(filePath)) return true;
1468
- if (filePath.includes(".git")) return true;
1469
- if (stats == null ? void 0 : stats.isDirectory()) {
1470
- if (filePath.endsWith("playground")) return false;
1471
- const pathParts = filePath.split(path$1.sep);
1472
- if (pathParts.at(-2) === "examples") return false;
1473
- if (pathParts.at(-3) === "exercises") return false;
1474
- if (pathParts.at(-2) === "exercises") return false;
1475
- if (pathParts.at(-1) === "exercises") return false;
1476
- return true;
1477
- }
1478
- return (stats == null ? void 0 : stats.isFile()) ? !filesToWatch.some((file) => filePath.endsWith(file)) : false;
1479
- }
1480
- });
1481
- chok.on("all", (_event, filePath) => {
1482
- setModifiedTimesForAppDirs(path$1.join(workshopRoot, filePath));
1483
- });
1484
- closeWithGrace(() => chok.close());
1485
- }
1486
- }
1487
- function getForceFresh$1(cacheEntry) {
1488
- if (!cacheEntry) return true;
1489
- const latestModifiedTime = Math.max(...Array.from(modifiedTimes.values()));
1490
- if (!latestModifiedTime) return void 0;
1491
- return latestModifiedTime > cacheEntry.metadata.createdTime ? true : void 0;
1492
- }
1493
- function setModifiedTimesForAppDirs(...filePaths) {
1494
- const now = Date.now();
1495
- for (const filePath of filePaths) {
1496
- const appDir2 = getAppPathFromFilePath(filePath);
1497
- if (appDir2) {
1498
- modifiedTimes.set(appDir2, now);
1499
- } else {
1500
- console.warn(`filePath ${filePath} does not match any app dir`);
1501
- }
1502
- }
1503
- }
1504
- function getForceFreshForDir(cacheEntry, ...dirs) {
1505
- const truthyDirs = dirs.filter(Boolean);
1506
- for (const d of truthyDirs) {
1507
- if (!path$1.isAbsolute(d)) {
1508
- throw new Error(`Trying to get force fresh for non-absolute path: ${d}`);
1509
- }
1510
- }
1511
- if (!cacheEntry) return true;
1512
- const latestModifiedTime = truthyDirs.reduce((latest, dir) => {
1513
- const modifiedTime = modifiedTimes.get(dir);
1514
- return modifiedTime && modifiedTime > latest ? modifiedTime : latest;
1515
- }, 0);
1516
- if (!latestModifiedTime) return void 0;
1517
- return latestModifiedTime > cacheEntry.metadata.createdTime ? true : void 0;
1518
- }
1519
- async function readDir(dir) {
1520
- if (await exists(dir)) {
1521
- return fs$1.promises.readdir(dir);
1522
- }
1523
- return [];
1524
- }
1525
- async function compileMdxIfExists(filepath, { request } = {}) {
1526
- filepath = filepath.replace(/\\/g, "/");
1527
- if (await exists(filepath)) {
1528
- const compiled = await compileMdx(filepath, { request }).catch((error) => {
1529
- console.error(`Error compiling ${filepath}:`, error);
1530
- return null;
1531
- });
1532
- return compiled;
1533
- }
1534
- return null;
1535
- }
1536
- function getAppDirInfo(appDir2) {
1537
- const regex = /^(?<stepNumber>\d+)\.(problem|solution)(\.(?<subtitle>.*))?$/;
1538
- const match = regex.exec(appDir2);
1539
- if (!(match == null ? void 0 : match.groups)) {
1540
- console.info(
1541
- `Ignoring directory "${appDir2}" which does not match regex "${regex}"`,
1542
- new Error().stack
1543
- );
1544
- return null;
1545
- }
1546
- const { stepNumber: stepNumberString, subtitle } = match.groups;
1547
- const stepNumber = Number(stepNumberString);
1548
- if (!stepNumber || !Number.isFinite(stepNumber)) {
1549
- throw new Error(
1550
- `Cannot identify the stepNumber for app directory "${appDir2}" with regex "${regex}"`
1551
- );
1552
- }
1553
- const type = match[2];
1554
- return { stepNumber, type, subtitle };
1555
- }
1556
- function extractExerciseNumber(dir) {
1557
- var _a, _b;
1558
- const regex = /^(?<number>\d+)\./;
1559
- const number = (_b = (_a = regex.exec(dir)) == null ? void 0 : _a.groups) == null ? void 0 : _b.number;
1560
- if (!number) {
1561
- return null;
1562
- }
1563
- return Number(number);
1564
- }
1565
- async function getExercises({
1566
- timings,
1567
- request
1568
- } = {}) {
1569
- const apps = await getApps({ request, timings });
1570
- const exerciseDirs = await readDir(path$1.join(workshopRoot, "exercises"));
1571
- const exercises = [];
1572
- for (const dirName of exerciseDirs) {
1573
- const exerciseNumber = extractExerciseNumber(dirName);
1574
- if (!exerciseNumber) continue;
1575
- const compiledReadme = await compileMdxIfExists(
1576
- path$1.join(workshopRoot, "exercises", dirName, "README.mdx"),
1577
- { request }
1578
- );
1579
- const compiledFinished = await compileMdxIfExists(
1580
- path$1.join(workshopRoot, "exercises", dirName, "FINISHED.mdx"),
1581
- { request }
1582
- );
1583
- const steps = [];
1584
- const exerciseApps = apps.filter(isExerciseStepApp).filter((app) => app.exerciseNumber === exerciseNumber);
1585
- for (const app of exerciseApps) {
1586
- steps[app.stepNumber - 1] = {
1587
- ...steps[app.stepNumber - 1],
1588
- [app.type]: app,
1589
- stepNumber: app.stepNumber
1590
- };
1591
- }
1592
- exercises.push({
1593
- exerciseNumber,
1594
- dirName,
1595
- instructionsCode: compiledReadme == null ? void 0 : compiledReadme.code,
1596
- finishedCode: compiledFinished == null ? void 0 : compiledFinished.code,
1597
- title: (compiledReadme == null ? void 0 : compiledReadme.title) ?? dirName,
1598
- instructionsEpicVideoEmbeds: compiledReadme == null ? void 0 : compiledReadme.epicVideoEmbeds,
1599
- finishedEpicVideoEmbeds: compiledFinished == null ? void 0 : compiledFinished.epicVideoEmbeds,
1600
- steps,
1601
- problems: apps.filter(isProblemApp).filter((app) => app.exerciseNumber === exerciseNumber),
1602
- solutions: apps.filter(isSolutionApp).filter((app) => app.exerciseNumber === exerciseNumber)
1603
- });
1604
- }
1605
- return exercises;
1606
- }
1607
- let appCallCount = 0;
1608
- async function getApps({
1609
- timings,
1610
- request,
1611
- forceFresh
1612
- } = {}) {
1613
- await init();
1614
- const key = "apps";
1615
- const apps = await cachified({
1616
- key,
1617
- cache: appsCache,
1618
- timings,
1619
- timingKey: `apps_${appCallCount++}`,
1620
- request,
1621
- // This entire cache is to avoid a single request getting a fresh value
1622
- // multiple times unnecessarily (because getApps is called many times)
1623
- ttl: 1e3 * 60 * 60 * 24,
1624
- forceFresh: forceFresh ?? getForceFresh$1(appsCache.get(key)),
1625
- getFreshValue: async () => {
1626
- const [playgroundApp, problemApps, solutionApps, exampleApps] = await Promise.all([
1627
- time(() => getPlaygroundApp({ request, timings }), {
1628
- type: "getPlaygroundApp",
1629
- timings
1630
- }),
1631
- time(() => getProblemApps({ request, timings }), {
1632
- type: "getProblemApps",
1633
- timings
1634
- }),
1635
- time(() => getSolutionApps({ request, timings }), {
1636
- type: "getSolutionApps",
1637
- timings
1638
- }),
1639
- time(() => getExampleApps({ request, timings }), {
1640
- type: "getExampleApps",
1641
- timings
1642
- })
1643
- ]);
1644
- const sortedApps = [
1645
- playgroundApp,
1646
- ...problemApps,
1647
- ...solutionApps,
1648
- ...exampleApps
1649
- ].filter(Boolean).sort((a, b) => {
1650
- if (isPlaygroundApp(a)) {
1651
- if (isPlaygroundApp(b)) return a.name.localeCompare(b.name);
1652
- else return 1;
1653
- }
1654
- if (isPlaygroundApp(b)) return 1;
1655
- if (isExampleApp(a)) {
1656
- if (isExampleApp(b)) return a.name.localeCompare(b.name);
1657
- else return 1;
1658
- }
1659
- if (isExampleApp(b)) return -1;
1660
- if (a.type === b.type) {
1661
- if (a.exerciseNumber === b.exerciseNumber) {
1662
- return a.stepNumber - b.stepNumber;
1663
- } else {
1664
- return a.exerciseNumber - b.exerciseNumber;
1665
- }
1666
- }
1667
- if (isProblemApp(a)) {
1668
- if (a.exerciseNumber === b.exerciseNumber) {
1669
- return a.stepNumber <= b.stepNumber ? 1 : -1;
1670
- } else {
1671
- return a.exerciseNumber <= b.exerciseNumber ? 1 : -1;
1672
- }
1673
- }
1674
- if (isSolutionApp(a)) {
1675
- if (a.exerciseNumber === b.exerciseNumber) {
1676
- return a.stepNumber < b.stepNumber ? -1 : 1;
1677
- } else {
1678
- return a.exerciseNumber < b.exerciseNumber ? -1 : 1;
1679
- }
1680
- }
1681
- console.error("unhandled sorting case", a, b);
1682
- return 0;
1683
- });
1684
- return sortedApps;
1685
- }
1686
- });
1687
- return apps;
1688
- }
1689
- const AppIdInfoSchema = z.object({
1690
- exerciseNumber: z.string(),
1691
- stepNumber: z.string(),
1692
- type: z.union([z.literal("problem"), z.literal("solution")])
1693
- });
1694
- function extractNumbersAndTypeFromAppNameOrPath(fullPathOrAppName) {
1695
- var _a;
1696
- const info = {};
1697
- if (fullPathOrAppName.includes(path$1.sep)) {
1698
- const relativePath = fullPathOrAppName.replace(
1699
- path$1.join(workshopRoot, "exercises", path$1.sep),
1700
- ""
1701
- );
1702
- const [exerciseNumberPart, stepNumberPart] = relativePath.split(path$1.sep);
1703
- if (!exerciseNumberPart || !stepNumberPart) return null;
1704
- const exerciseNumber = exerciseNumberPart.split(".")[0];
1705
- const stepNumber = stepNumberPart.split(".")[0];
1706
- const type = (_a = stepNumberPart.split(".")[1]) == null ? void 0 : _a.split(".")[0];
1707
- info.exerciseNumber = exerciseNumber;
1708
- info.stepNumber = stepNumber;
1709
- info.type = type;
1710
- } else {
1711
- const [exerciseNumber, stepNumber, type] = fullPathOrAppName.split(".");
1712
- info.exerciseNumber = exerciseNumber;
1713
- info.stepNumber = stepNumber;
1714
- info.type = type;
1715
- }
1716
- const result = AppIdInfoSchema.safeParse(info);
1717
- if (result.success) return result.data;
1718
- return null;
1719
- }
1720
- async function getProblemDirs() {
1721
- const exercisesDir = path$1.join(workshopRoot, "exercises");
1722
- const problemDirs = [];
1723
- const exerciseSubDirs = await readDir(exercisesDir);
1724
- for (const subDir of exerciseSubDirs) {
1725
- const fullSubDir = path$1.join(exercisesDir, subDir);
1726
- const subDirContents = await readDir(fullSubDir).catch(() => null);
1727
- if (!subDirContents) continue;
1728
- const problemSubDirs = subDirContents.filter((dir) => dir.includes(".problem")).map((dir) => path$1.join(fullSubDir, dir));
1729
- problemDirs.push(...problemSubDirs);
1730
- }
1731
- return problemDirs;
1732
- }
1733
- async function getSolutionDirs() {
1734
- const exercisesDir = path$1.join(workshopRoot, "exercises");
1735
- const solutionDirs = [];
1736
- const exerciseSubDirs = await readDir(exercisesDir);
1737
- for (const subDir of exerciseSubDirs) {
1738
- const fullSubDir = path$1.join(exercisesDir, subDir);
1739
- const subDirContents = await readDir(fullSubDir).catch(() => null);
1740
- if (!subDirContents) continue;
1741
- const solutionSubDirs = subDirContents.filter((dir) => dir.includes(".solution")).map((dir) => path$1.join(fullSubDir, dir));
1742
- solutionDirs.push(...solutionSubDirs);
1743
- }
1744
- return solutionDirs;
1745
- }
1746
- function getPathname(fullPath) {
1747
- const appName = getAppName(fullPath);
1748
- return `/app/${appName}/`;
1749
- }
1750
- function getAppName(fullPath) {
1751
- if (/playground\/?$/.test(fullPath)) return "playground";
1752
- if (/examples\/.+\/?$/.test(fullPath)) {
1753
- const restOfPath = fullPath.replace(
1754
- `${workshopRoot}${path$1.sep}examples${path$1.sep}`,
1755
- ""
1756
- );
1757
- return `example.${restOfPath.split(path$1.sep).join("__sep__")}`;
1758
- }
1759
- const appIdInfo = extractNumbersAndTypeFromAppNameOrPath(fullPath);
1760
- if (appIdInfo) {
1761
- const { exerciseNumber, stepNumber, type } = appIdInfo;
1762
- return `${exerciseNumber}.${stepNumber}.${type}`;
1763
- } else {
1764
- const relativePath = fullPath.replace(`${workshopRoot}${path$1.sep}`, "");
1765
- return relativePath.split(path$1.sep).join("__sep__");
1766
- }
1767
- }
1768
- async function getFullPathFromAppName(appName) {
1769
- if (appName === "playground") return path$1.join(workshopRoot, "playground");
1770
- if (appName.startsWith(".example")) {
1771
- const relativePath = appName.replace(".example", "").split("__sep__").join(path$1.sep);
1772
- return path$1.join(workshopRoot, "examples", relativePath);
1773
- }
1774
- if (appName.includes("__sep__")) {
1775
- const relativePath = appName.replaceAll("__sep__", path$1.sep);
1776
- return path$1.join(workshopRoot, relativePath);
1777
- }
1778
- const [exerciseNumber, stepNumber, type] = appName.split(".");
1779
- const appDirs = type === "problem" ? await getProblemDirs() : type === "solution" ? await getSolutionDirs() : [];
1780
- const dir = appDirs.find((dir2) => {
1781
- const info = extractNumbersAndTypeFromAppNameOrPath(dir2);
1782
- if (!info) return false;
1783
- return info.exerciseNumber === exerciseNumber && info.stepNumber === stepNumber;
1784
- });
1785
- return dir ?? appName;
1786
- }
1787
- async function findSolutionDir({
1788
- fullPath
1789
- }) {
1790
- const dirName = path$1.basename(fullPath);
1791
- if (dirName.includes(".problem")) {
1792
- const info = getAppDirInfo(dirName);
1793
- if (!info) return null;
1794
- const { stepNumber } = info;
1795
- const paddedStepNumber = stepNumber.toString().padStart(2, "0");
1796
- const parentDir = path$1.dirname(fullPath);
1797
- const siblingDirs = await fs$1.promises.readdir(parentDir);
1798
- const solutionDir = siblingDirs.find(
1799
- (dir) => dir.startsWith(`${paddedStepNumber}.solution`)
1800
- );
1801
- if (solutionDir) {
1802
- return path$1.join(parentDir, solutionDir);
1803
- }
1804
- } else if (fullPath.endsWith("playground")) {
1805
- const appName = await getPlaygroundAppName();
1806
- if (appName) {
1807
- return findSolutionDir({
1808
- fullPath: await getFullPathFromAppName(appName)
1809
- });
1810
- }
1811
- }
1812
- return null;
1813
- }
1814
- async function findProblemDir({
1815
- fullPath
1816
- }) {
1817
- const dirName = path$1.basename(fullPath);
1818
- if (dirName.includes(".solution")) {
1819
- const info = getAppDirInfo(dirName);
1820
- if (!info) return null;
1821
- const { stepNumber } = info;
1822
- const paddedStepNumber = stepNumber.toString().padStart(2, "0");
1823
- const parentDir = path$1.dirname(fullPath);
1824
- const siblingDirs = await fs$1.promises.readdir(parentDir);
1825
- const problemDir = siblingDirs.find(
1826
- (dir) => dir.endsWith("problem") && dir.includes(paddedStepNumber)
1827
- );
1828
- if (problemDir) {
1829
- return path$1.join(parentDir, problemDir);
1830
- }
1831
- } else if (fullPath.endsWith("playground")) {
1832
- const appName = await getPlaygroundAppName();
1833
- if (appName) {
1834
- return findProblemDir({ fullPath: await getFullPathFromAppName(appName) });
1835
- }
1836
- }
1837
- return null;
1838
- }
1839
- async function getTestInfo({
1840
- fullPath
1841
- }) {
1842
- const {
1843
- testTab: { enabled },
1844
- scripts: { test: testScript }
1845
- } = await getAppConfig(fullPath);
1846
- if (enabled === false) return { type: "none" };
1847
- if (testScript) {
1848
- return { type: "script", script: testScript };
1849
- }
1850
- const testAppFullPath = await findSolutionDir({ fullPath }) ?? fullPath;
1851
- const dirList = await fs$1.promises.readdir(testAppFullPath);
1852
- const testFiles = dirList.filter((item) => item.includes(".test."));
1853
- if (testFiles.length) {
1854
- return {
1855
- type: "browser",
1856
- pathname: `${getPathname(fullPath)}test/`,
1857
- testFiles
1858
- };
1859
- }
1860
- return { type: "none" };
1861
- }
1862
- async function getDevInfo({
1863
- fullPath,
1864
- portNumber
1865
- }) {
1866
- const {
1867
- scripts: { dev: devScript },
1868
- initialRoute
1869
- } = await getAppConfig(fullPath);
1870
- const hasDevScript = Boolean(devScript);
1871
- if (hasDevScript) {
1872
- return { type: "script", portNumber, initialRoute };
1873
- }
1874
- const indexFiles = (await fsExtra.readdir(fullPath)).filter(
1875
- (file) => file.startsWith("index.")
1876
- );
1877
- if (indexFiles.length) {
1878
- return { type: "browser", pathname: getPathname(fullPath) };
1879
- } else {
1880
- return { type: "none" };
1881
- }
1882
- }
1883
- async function getPlaygroundApp({
1884
- timings,
1885
- request
1886
- } = {}) {
1887
- const playgroundDir = path$1.join(workshopRoot, "playground");
1888
- const baseAppName = await getPlaygroundAppName();
1889
- const key = `playground-${baseAppName}`;
1890
- const baseAppFullPath = baseAppName ? await getFullPathFromAppName(baseAppName) : null;
1891
- const playgroundCacheEntry = playgroundAppCache.get(key);
1892
- return cachified({
1893
- key,
1894
- cache: playgroundAppCache,
1895
- ttl: 1e3 * 60 * 60 * 24,
1896
- timings,
1897
- timingKey: playgroundDir.replace(`${playgroundDir}${path$1.sep}`, ""),
1898
- request,
1899
- forceFresh: getForceFreshForDir(
1900
- playgroundCacheEntry,
1901
- playgroundDir,
1902
- baseAppFullPath
1903
- ),
1904
- getFreshValue: async () => {
1905
- if (!await exists(playgroundDir)) return null;
1906
- if (!baseAppName) return null;
1907
- const dirName = path$1.basename(playgroundDir);
1908
- const name = getAppName(playgroundDir);
1909
- const portNumber = 4e3;
1910
- const [compiledReadme, test, dev] = await Promise.all([
1911
- compileMdxIfExists(path$1.join(playgroundDir, "README.mdx"), { request }),
1912
- getTestInfo({ fullPath: playgroundDir }),
1913
- getDevInfo({ fullPath: playgroundDir, portNumber })
1914
- ]);
1915
- const appModifiedTime = await queuedGetDirModifiedTime(
1916
- await getFullPathFromAppName(baseAppName)
1917
- );
1918
- const playgroundAppModifiedTime = await queuedGetDirModifiedTime(playgroundDir);
1919
- const type = "playground";
1920
- const title = (compiledReadme == null ? void 0 : compiledReadme.title) ?? name;
1921
- return {
1922
- name,
1923
- appName: baseAppName,
1924
- type,
1925
- isUpToDate: appModifiedTime <= playgroundAppModifiedTime,
1926
- fullPath: playgroundDir,
1927
- relativePath: playgroundDir.replace(`${workshopRoot}${path$1.sep}`, ""),
1928
- title,
1929
- epicVideoEmbeds: compiledReadme == null ? void 0 : compiledReadme.epicVideoEmbeds,
1930
- dirName,
1931
- instructionsCode: compiledReadme == null ? void 0 : compiledReadme.code,
1932
- test,
1933
- dev,
1934
- stackBlitzUrl: await getStackBlitzUrl({
1935
- fullPath: playgroundDir,
1936
- title,
1937
- type
1938
- })
1939
- };
1940
- }
1941
- }).catch((error) => {
1942
- console.error(error);
1943
- return null;
1944
- });
1945
- }
1946
- async function getExampleAppFromPath(fullPath, index, request) {
1947
- const dirName = path$1.basename(fullPath);
1948
- const compiledReadme = await compileMdxIfExists(
1949
- path$1.join(fullPath, "README.mdx"),
1950
- { request }
1951
- );
1952
- const name = getAppName(fullPath);
1953
- const portNumber = 8e3 + index;
1954
- const type = "example";
1955
- const title = (compiledReadme == null ? void 0 : compiledReadme.title) ?? name;
1956
- return {
1957
- name,
1958
- type,
1959
- fullPath,
1960
- relativePath: fullPath.replace(`${workshopRoot}${path$1.sep}`, ""),
1961
- title,
1962
- epicVideoEmbeds: compiledReadme == null ? void 0 : compiledReadme.epicVideoEmbeds,
1963
- dirName,
1964
- instructionsCode: compiledReadme == null ? void 0 : compiledReadme.code,
1965
- test: await getTestInfo({ fullPath }),
1966
- dev: await getDevInfo({ fullPath, portNumber }),
1967
- stackBlitzUrl: await getStackBlitzUrl({
1968
- fullPath,
1969
- title,
1970
- type
1971
- })
1972
- };
1973
- }
1974
- async function getExampleApps({
1975
- timings,
1976
- request
1977
- } = {}) {
1978
- const examplesDir = path$1.join(workshopRoot, "examples");
1979
- const exampleDirs = (await readDir(examplesDir)).map(
1980
- (p) => path$1.join(examplesDir, p)
1981
- );
1982
- const exampleApps = [];
1983
- for (const exampleDir of exampleDirs) {
1984
- const index = exampleDirs.indexOf(exampleDir);
1985
- const key = `${exampleDir}-${index}`;
1986
- const exampleApp = await cachified({
1987
- key,
1988
- cache: exampleAppCache,
1989
- ttl: 1e3 * 60 * 60 * 24,
1990
- timings,
1991
- timingKey: exampleDir.replace(`${examplesDir}${path$1.sep}`, ""),
1992
- request,
1993
- forceFresh: getForceFreshForDir(exampleAppCache.get(key), exampleDir),
1994
- getFreshValue: async () => {
1995
- return getExampleAppFromPath(exampleDir, index, request).catch(
1996
- (error) => {
1997
- console.error(error);
1998
- return null;
1999
- }
2000
- );
2001
- }
2002
- });
2003
- if (exampleApp) exampleApps.push(exampleApp);
2004
- }
2005
- return exampleApps;
2006
- }
2007
- async function getSolutionAppFromPath(fullPath, request) {
2008
- const dirName = path$1.basename(fullPath);
2009
- const parentDirName = path$1.basename(path$1.dirname(fullPath));
2010
- const exerciseNumber = extractExerciseNumber(parentDirName);
2011
- if (!exerciseNumber) return null;
2012
- const name = getAppName(fullPath);
2013
- const info = getAppDirInfo(dirName);
2014
- if (!info) return null;
2015
- const { stepNumber } = info;
2016
- const portNumber = 7e3 + (exerciseNumber - 1) * 10 + stepNumber;
2017
- const compiledReadme = await compileMdxIfExists(
2018
- path$1.join(fullPath, "README.mdx"),
2019
- { request }
2020
- );
2021
- const problemDir = await findProblemDir({
2022
- fullPath
2023
- });
2024
- const problemName = problemDir ? getAppName(problemDir) : null;
2025
- const [test, dev] = await Promise.all([
2026
- getTestInfo({ fullPath }),
2027
- getDevInfo({ fullPath, portNumber })
2028
- ]);
2029
- const title = (compiledReadme == null ? void 0 : compiledReadme.title) ?? name;
2030
- return {
2031
- name,
2032
- title,
2033
- epicVideoEmbeds: compiledReadme == null ? void 0 : compiledReadme.epicVideoEmbeds,
2034
- type: "solution",
2035
- problemName,
2036
- exerciseNumber,
2037
- stepNumber,
2038
- dirName,
2039
- fullPath,
2040
- relativePath: fullPath.replace(`${workshopRoot}${path$1.sep}`, ""),
2041
- instructionsCode: compiledReadme == null ? void 0 : compiledReadme.code,
2042
- test,
2043
- dev,
2044
- stackBlitzUrl: await getStackBlitzUrl({
2045
- fullPath,
2046
- title,
2047
- type: "solution"
2048
- })
2049
- };
2050
- }
2051
- async function getSolutionApps({
2052
- timings,
2053
- request
2054
- } = {}) {
2055
- const exercisesDir = path$1.join(workshopRoot, "exercises");
2056
- const solutionDirs = await getSolutionDirs();
2057
- const solutionApps = [];
2058
- for (const solutionDir of solutionDirs) {
2059
- const solutionApp = await cachified({
2060
- key: solutionDir,
2061
- cache: solutionAppCache,
2062
- timings,
2063
- timingKey: solutionDir.replace(`${exercisesDir}${path$1.sep}`, ""),
2064
- request,
2065
- ttl: 1e3 * 60 * 60 * 24,
2066
- forceFresh: getForceFreshForDir(
2067
- solutionAppCache.get(solutionDir),
2068
- solutionDir
2069
- ),
2070
- getFreshValue: async () => {
2071
- return getSolutionAppFromPath(solutionDir, request).catch((error) => {
2072
- console.error(error);
2073
- return null;
2074
- });
2075
- }
2076
- });
2077
- if (solutionApp) solutionApps.push(solutionApp);
2078
- }
2079
- return solutionApps;
2080
- }
2081
- async function getProblemAppFromPath(fullPath, request) {
2082
- const dirName = path$1.basename(fullPath);
2083
- const parentDirName = path$1.basename(path$1.dirname(fullPath));
2084
- const exerciseNumber = extractExerciseNumber(parentDirName);
2085
- if (!exerciseNumber) return null;
2086
- const name = getAppName(fullPath);
2087
- const info = getAppDirInfo(dirName);
2088
- if (!info) return null;
2089
- const { stepNumber } = info;
2090
- const portNumber = 6e3 + (exerciseNumber - 1) * 10 + stepNumber;
2091
- const compiledReadme = await compileMdxIfExists(
2092
- path$1.join(fullPath, "README.mdx"),
2093
- { request }
2094
- );
2095
- const solutionDir = await findSolutionDir({
2096
- fullPath
2097
- });
2098
- const solutionName = solutionDir ? getAppName(solutionDir) : null;
2099
- const [test, dev] = await Promise.all([
2100
- getTestInfo({ fullPath }),
2101
- getDevInfo({ fullPath, portNumber })
2102
- ]);
2103
- const title = (compiledReadme == null ? void 0 : compiledReadme.title) ?? name;
2104
- return {
2105
- solutionName,
2106
- name,
2107
- title,
2108
- epicVideoEmbeds: compiledReadme == null ? void 0 : compiledReadme.epicVideoEmbeds,
2109
- type: "problem",
2110
- exerciseNumber,
2111
- stepNumber,
2112
- dirName,
2113
- fullPath,
2114
- relativePath: fullPath.replace(`${workshopRoot}${path$1.sep}`, ""),
2115
- instructionsCode: compiledReadme == null ? void 0 : compiledReadme.code,
2116
- test,
2117
- dev,
2118
- stackBlitzUrl: await getStackBlitzUrl({
2119
- fullPath,
2120
- title,
2121
- type: "problem"
2122
- })
2123
- };
2124
- }
2125
- async function getProblemApps({
2126
- timings,
2127
- request
2128
- } = {}) {
2129
- const exercisesDir = path$1.join(workshopRoot, "exercises");
2130
- const problemDirs = await getProblemDirs();
2131
- const problemApps = [];
2132
- for (const problemDir of problemDirs) {
2133
- const solutionDir = await findSolutionDir({ fullPath: problemDir });
2134
- const problemApp = await cachified({
2135
- key: problemDir,
2136
- cache: problemAppCache,
2137
- timings,
2138
- timingKey: problemDir.replace(`${exercisesDir}${path$1.sep}`, ""),
2139
- request,
2140
- ttl: 1e3 * 60 * 60 * 24,
2141
- forceFresh: getForceFreshForDir(
2142
- problemAppCache.get(problemDir),
2143
- problemDir,
2144
- solutionDir
2145
- ),
2146
- getFreshValue: async () => {
2147
- return getProblemAppFromPath(problemDir).catch((error) => {
2148
- console.error(error);
2149
- return null;
2150
- });
2151
- }
2152
- });
2153
- if (problemApp) problemApps.push(problemApp);
2154
- }
2155
- return problemApps;
2156
- }
2157
- async function getExercise(exerciseNumber, { request, timings } = {}) {
2158
- const exercises = await getExercises({ request, timings });
2159
- return exercises.find((s) => s.exerciseNumber === Number(exerciseNumber));
2160
- }
2161
- async function requireExercise(exerciseNumber, { request, timings } = {}) {
2162
- const exercise = await getExercise(exerciseNumber, { request, timings });
2163
- if (!exercise) {
2164
- throw new Response("Not found", {
2165
- status: 404,
2166
- headers: { "Server-Timing": getServerTimeHeader(timings) }
2167
- });
2168
- }
2169
- return exercise;
2170
- }
2171
- async function requireExerciseApp(params, { request, timings } = {}) {
2172
- const app = await getExerciseApp(params, { request, timings });
2173
- if (!app) {
2174
- throw new Response("Not found", { status: 404 });
2175
- }
2176
- return app;
2177
- }
2178
- const ExerciseAppParamsSchema$1 = z.object({
2179
- type: z.union([z.literal("problem"), z.literal("solution")]),
2180
- exerciseNumber: z.coerce.number().finite(),
2181
- stepNumber: z.coerce.number().finite()
2182
- });
2183
- async function getExerciseApp(params, { request, timings } = {}) {
2184
- const result = ExerciseAppParamsSchema$1.safeParse(params);
2185
- if (!result.success) {
2186
- return null;
2187
- }
2188
- const { type, exerciseNumber, stepNumber } = result.data;
2189
- const apps = (await getApps({ request, timings })).filter(isExerciseStepApp);
2190
- const exerciseApp = apps.find((app) => {
2191
- if (isExampleApp(app)) return false;
2192
- return app.exerciseNumber === exerciseNumber && app.stepNumber === stepNumber && app.type === type;
2193
- });
2194
- if (!exerciseApp) {
2195
- return null;
2196
- }
2197
- return exerciseApp;
2198
- }
2199
- async function getAppByName(name, { request, timings } = {}) {
2200
- const apps = await getApps({ request, timings });
2201
- return apps.find((a) => a.name === name);
2202
- }
2203
- async function getNextExerciseApp(app, { request, timings } = {}) {
2204
- const apps = (await getApps({ request, timings })).filter(isExerciseStepApp);
2205
- const index = apps.findIndex((a) => a.name === app.name);
2206
- if (index === -1) {
2207
- throw new Error(`Could not find app ${app.name}`);
2208
- }
2209
- const nextApp = apps[index + 1];
2210
- return nextApp ? nextApp : null;
2211
- }
2212
- async function getPrevExerciseApp(app, { request, timings } = {}) {
2213
- const apps = (await getApps({ request, timings })).filter(isExerciseStepApp);
2214
- const index = apps.findIndex((a) => a.name === app.name);
2215
- if (index === -1) {
2216
- throw new Error(`Could not find app ${app.name}`);
2217
- }
2218
- const prevApp = apps[index - 1];
2219
- return prevApp ? prevApp : null;
2220
- }
2221
- function getAppPageRoute(app, {
2222
- subroute,
2223
- searchParams
2224
- } = {}) {
2225
- const exerciseNumber = app.exerciseNumber.toString().padStart(2, "0");
2226
- const stepNumber = app.stepNumber.toString().padStart(2, "0");
2227
- const baseUrl = `/exercise/${exerciseNumber}/${stepNumber}/${app.type}`;
2228
- const subrouteUrl = subroute ? `/${subroute}` : "";
2229
- if (searchParams) {
2230
- searchParams.delete("app1");
2231
- searchParams.delete("app2");
2232
- }
2233
- const searchString = searchParams == null ? void 0 : searchParams.toString();
2234
- return `${baseUrl}${subrouteUrl}${searchString ? `?${searchString}` : ""}`;
2235
- }
2236
- async function getAppFromFile(filePath) {
2237
- const apps = await getApps();
2238
- return apps.find((app) => filePath.startsWith(app.fullPath));
2239
- }
2240
- async function setPlayground(srcDir, { reset } = {}) {
2241
- const destDir = path$1.join(workshopRoot, "playground");
2242
- const isIgnored = await isGitIgnored({ cwd: srcDir });
2243
- const playgroundApp = await getAppByName("playground");
2244
- const playgroundWasRunning = playgroundApp ? isAppRunning(playgroundApp) : false;
2245
- if (playgroundApp && reset) {
2246
- await closeProcess(playgroundApp.name);
2247
- await fsExtra.remove(destDir);
2248
- }
2249
- const setPlaygroundTimestamp = Date.now();
2250
- const preSetPlaygroundPath = await firstToExist(
2251
- path$1.join(srcDir, "epicshop", "pre-set-playground.js"),
2252
- path$1.join(workshopRoot, "epicshop", "pre-set-playground.js")
2253
- );
2254
- if (preSetPlaygroundPath) {
2255
- await execa("node", [preSetPlaygroundPath], {
2256
- cwd: workshopRoot,
2257
- stdio: "inherit",
2258
- env: {
2259
- EPICSHOP_PLAYGROUND_TIMESTAMP: setPlaygroundTimestamp.toString(),
2260
- EPICSHOP_PLAYGROUND_DEST_DIR: destDir,
2261
- EPICSHOP_PLAYGROUND_SRC_DIR: srcDir,
2262
- EPICSHOP_PLAYGROUND_WAS_RUNNING: playgroundWasRunning.toString()
2263
- }
2264
- });
2265
- }
2266
- const basename2 = path$1.basename(srcDir);
2267
- await fsExtra.remove(path$1.join(destDir, "node_modules"));
2268
- await fsExtra.copy(srcDir, destDir, {
2269
- filter: async (srcFile, destFile) => {
2270
- if (srcFile.includes(`${basename2}${path$1.sep}build`) || srcFile.includes(`${basename2}${path$1.sep}public${path$1.sep}build`)) {
2271
- return false;
2272
- }
2273
- if (srcFile === srcDir) return true;
2274
- if (srcFile.includes("node_modules")) return true;
2275
- if (srcFile.endsWith(".env")) return true;
2276
- if (isIgnored(srcFile)) return false;
117
+ const partykitRoom = "epic-web-presence";
118
+ const partykitBaseUrl = `https://epic-web-presence.kentcdodds.partykit.dev/parties/main/${partykitRoom}`;
119
+ const UserSchema = z.object({
120
+ id: z.string(),
121
+ avatarUrl: z.string().nullable().optional(),
122
+ name: z.string().nullable().optional(),
123
+ location: z.object({
124
+ workshopTitle: z.string().nullable().optional(),
125
+ origin: z.string().nullable().optional(),
126
+ exercise: z.object({
127
+ type: z.union([z.literal("problem"), z.literal("solution")]).nullable().optional(),
128
+ exerciseNumber: z.number().nullable().optional(),
129
+ stepNumber: z.number().nullable().optional()
130
+ }).nullable().optional()
131
+ }).nullable().optional()
132
+ });
133
+ const MessageSchema = z.object({
134
+ type: z.literal("remove-user"),
135
+ payload: z.object({ id: z.string() })
136
+ }).or(z.object({ type: z.literal("add-user"), payload: UserSchema })).or(
137
+ z.object({
138
+ type: z.literal("presence"),
139
+ payload: z.object({ users: z.array(UserSchema) })
140
+ })
141
+ );
142
+ const PresenceSchema = z.object({ users: z.array(UserSchema) });
143
+ const presenceCache = makeSingletonCache("PresenceCache");
144
+ async function getPresentUsers(user, { timings, request } = {}) {
145
+ return cachified({
146
+ key: "presence",
147
+ cache: presenceCache,
148
+ timings,
149
+ request,
150
+ ttl: 1e3 * 60 * 5,
151
+ swr: 1e3 * 60 * 60 * 24,
152
+ checkValue: z.array(UserSchema),
153
+ async getFreshValue(context) {
2277
154
  try {
2278
- const isDir = (await fsExtra.stat(srcFile)).isDirectory();
2279
- if (isDir) return true;
2280
- const destIsDir = (await fsExtra.stat(destFile)).isDirectory();
2281
- if (destIsDir) return true;
2282
- const currentContents = await fsExtra.readFile(destFile);
2283
- const newContents = await fsExtra.readFile(srcFile);
2284
- if (currentContents.equals(newContents)) return false;
2285
- return true;
155
+ const response = await Promise.race([
156
+ fetch(`${partykitBaseUrl}/presence`),
157
+ new Promise(
158
+ (resolve) => setTimeout(() => {
159
+ resolve(new Response("Timeout", { status: 500 }));
160
+ }, 500)
161
+ )
162
+ ]);
163
+ if (response.statusText === "Timeout") {
164
+ throw new Error(`Timeout fetching partykit presence`);
165
+ }
166
+ if (!response.ok) {
167
+ throw new Error(
168
+ `Unexpected response from partykit: ${response.status} ${response.statusText}`
169
+ );
170
+ }
171
+ const presence = PresenceSchema.parse(await response.json());
172
+ const preferences = await getPreferences();
173
+ const users = presence.users;
174
+ if ((preferences == null ? void 0 : preferences.presence.optOut) ?? !user) {
175
+ return uniqueUsers(users.filter((u) => u.id !== (user == null ? void 0 : user.id)));
176
+ } else {
177
+ return uniqueUsers([...users, user]);
178
+ }
2286
179
  } catch {
2287
- return true;
180
+ context.metadata.ttl = 300;
181
+ return [];
2288
182
  }
2289
183
  }
2290
184
  });
2291
- async function getFiles(dir) {
2292
- const dirPath = dir.replace(/\\/g, "/");
2293
- const files = await globby([`${dirPath}/**/*`, "!**/build/**/*"], {
2294
- onlyFiles: false,
2295
- dot: true
2296
- });
2297
- return files.map((f) => f.replace(dirPath, ""));
2298
- }
2299
- const srcFiles = await getFiles(srcDir);
2300
- const destFiles = await getFiles(destDir);
2301
- const filesToDelete = destFiles.filter(
2302
- (fileName) => !srcFiles.includes(fileName)
2303
- );
2304
- for (const fileToDelete of filesToDelete) {
2305
- await fsExtra.remove(path$1.join(destDir, fileToDelete));
2306
- }
2307
- const appName = getAppName(srcDir);
2308
- await fsExtra.ensureDir(path$1.dirname(playgroundAppNameInfoPath));
2309
- await fsExtra.writeJSON(playgroundAppNameInfoPath, { appName });
2310
- const playgroundIsStillRunning = playgroundApp ? isAppRunning(playgroundApp) : false;
2311
- const restartPlayground = playgroundWasRunning && !playgroundIsStillRunning;
2312
- const postSetPlaygroundPath = await firstToExist(
2313
- path$1.join(srcDir, "epicshop", "post-set-playground.js"),
2314
- path$1.join(workshopRoot, "epicshop", "post-set-playground.js")
2315
- );
2316
- if (postSetPlaygroundPath) {
2317
- await execa("node", [postSetPlaygroundPath], {
2318
- cwd: workshopRoot,
2319
- stdio: "inherit",
2320
- env: {
2321
- EPICSHOP_PLAYGROUND_TIMESTAMP: setPlaygroundTimestamp.toString(),
2322
- EPICSHOP_PLAYGROUND_SRC_DIR: srcDir,
2323
- EPICSHOP_PLAYGROUND_DEST_DIR: destDir,
2324
- EPICSHOP_PLAYGROUND_WAS_RUNNING: playgroundWasRunning.toString(),
2325
- EPICSHOP_PLAYGROUND_IS_STILL_RUNNING: playgroundIsStillRunning.toString(),
2326
- EPICSHOP_PLAYGROUND_RESTART_PLAYGROUND: restartPlayground.toString()
2327
- }
2328
- });
2329
- }
2330
- modifiedTimes.set(destDir, Date.now());
2331
- if (playgroundApp && restartPlayground) {
2332
- await runAppDev(playgroundApp);
2333
- await waitOnApp(playgroundApp);
2334
- }
2335
- }
2336
- async function getPlaygroundAppName() {
2337
- if (!await exists(playgroundAppNameInfoPath)) {
2338
- return null;
2339
- }
2340
- try {
2341
- const jsonString = await fs$1.promises.readFile(
2342
- playgroundAppNameInfoPath,
2343
- "utf8"
2344
- );
2345
- const { appName } = JSON.parse(jsonString);
2346
- if (typeof appName !== "string") return null;
2347
- return appName;
2348
- } catch {
2349
- return null;
2350
- }
2351
- }
2352
- function getAppDisplayName(a, allApps) {
2353
- let displayName = `${a.title} (${a.type})`;
2354
- if (isExerciseStepApp(a)) {
2355
- const typeLabel = { problem: "💪", solution: "🏁" }[a.type];
2356
- displayName = `${a.exerciseNumber}.${a.stepNumber} ${a.title} (${typeLabel} ${a.type})`;
2357
- } else if (isPlaygroundApp(a)) {
2358
- const playgroundAppBasis = allApps.find(
2359
- (otherApp) => a.appName === otherApp.name
2360
- );
2361
- if (playgroundAppBasis) {
2362
- const basisDisplayName = getAppDisplayName(playgroundAppBasis, allApps);
2363
- displayName = `🛝 ${basisDisplayName}`;
2364
- } else {
2365
- displayName = `🛝 ${a.appName}`;
2366
- }
2367
- } else if (isExampleApp(a)) {
2368
- displayName = `📚 ${a.title} (example)`;
2369
- }
2370
- return displayName;
2371
- }
2372
- async function getWorkshopInstructions({
2373
- request
2374
- } = {}) {
2375
- const readmeFilepath = path$1.join(workshopRoot, "exercises", "README.mdx");
2376
- const compiled = await compileMdx(readmeFilepath, { request }).then(
2377
- (r) => ({ ...r, status: "success" }),
2378
- (e) => {
2379
- console.error(
2380
- `There was an error compiling the workshop readme`,
2381
- readmeFilepath,
2382
- e
2383
- );
2384
- return { status: "error", error: getErrorMessage$1(e) };
2385
- }
2386
- );
2387
- return { compiled, file: readmeFilepath, relativePath: "exercises" };
2388
185
  }
2389
- async function getWorkshopFinished({
2390
- request
2391
- } = {}) {
2392
- const finishedFilepath = path$1.join(workshopRoot, "exercises", "FINISHED.mdx");
2393
- const compiled = await compileMdx(finishedFilepath, { request }).then(
2394
- (r) => ({ ...r, status: "success" }),
2395
- (e) => {
2396
- console.error(
2397
- `There was an error compiling the workshop finished.mdx`,
2398
- finishedFilepath,
2399
- e
2400
- );
2401
- return { status: "error", error: getErrorMessage$1(e) };
186
+ function uniqueUsers(users) {
187
+ const seen = /* @__PURE__ */ new Set();
188
+ return users.filter(Boolean).filter((user) => {
189
+ if (seen.has(user.id)) {
190
+ return false;
2402
191
  }
2403
- );
2404
- return {
2405
- compiled,
2406
- file: finishedFilepath,
2407
- relativePath: "exercises/finished.mdx"
2408
- };
2409
- }
2410
- const exercisesPath = path$1.join(workshopRoot, "exercises/");
2411
- const playgroundPath = path$1.join(workshopRoot, "playground/");
2412
- function getRelativePath$1(filePath) {
2413
- return path$1.normalize(filePath).replace(playgroundPath, `playground${path$1.sep}`).replace(exercisesPath, "");
2414
- }
2415
- function getAppPathFromFilePath(filePath) {
2416
- const [, withinWorkshopRootHalf] = filePath.split(workshopRoot);
2417
- if (!withinWorkshopRootHalf) {
2418
- return null;
2419
- }
2420
- const [part1, part2, part3] = withinWorkshopRootHalf.split(path$1.sep).filter(Boolean);
2421
- if (part1 === "playground") {
2422
- return path$1.join(workshopRoot, "playground");
2423
- }
2424
- if (part1 === "examples" && part2) {
2425
- return path$1.join(workshopRoot, "examples", part2);
2426
- }
2427
- if (part1 === "exercises" && part2 && part3) {
2428
- return path$1.join(workshopRoot, "exercises", part2, part3);
2429
- }
2430
- return null;
192
+ seen.add(user.id);
193
+ return true;
194
+ });
2431
195
  }
2432
196
  function Confetti({ id }) {
2433
197
  if (!id) return null;
@@ -2750,18 +514,18 @@ function getErrorMessage(error, defaultMessage = "Unknown Error") {
2750
514
  return defaultMessage;
2751
515
  }
2752
516
  function formatColors() {
2753
- const colors2 = [];
517
+ const colors = [];
2754
518
  for (const [key, color] of Object.entries(extendedTheme.colors)) {
2755
519
  if (typeof color === "string") {
2756
- colors2.push(key);
520
+ colors.push(key);
2757
521
  } else {
2758
522
  const colorGroup = Object.keys(color).map(
2759
523
  (subKey) => subKey === "DEFAULT" ? "" : subKey
2760
524
  );
2761
- colors2.push({ [key]: colorGroup });
525
+ colors.push({ [key]: colorGroup });
2762
526
  }
2763
527
  }
2764
- return colors2;
528
+ return colors;
2765
529
  }
2766
530
  const customTwMerge = extendTailwindMerge({
2767
531
  extend: {
@@ -3010,7 +774,7 @@ function usePERedirectInput() {
3010
774
  function ensureProgressiveEnhancement(formData, responseInit) {
3011
775
  const redirectTo = formData.get(PE_REDIRECT_INPUT_NAME);
3012
776
  if (typeof redirectTo === "string") {
3013
- throw redirect$1(safeRedirect(redirectTo), responseInit == null ? void 0 : responseInit());
777
+ throw redirect(safeRedirect(redirectTo), responseInit == null ? void 0 : responseInit());
3014
778
  }
3015
779
  }
3016
780
  function jsonWithPE(formData, ...args) {
@@ -3107,7 +871,7 @@ function useTheme() {
3107
871
  }
3108
872
  return requestInfo.session.theme ?? hints.theme;
3109
873
  }
3110
- const route42 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
874
+ const route43 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3111
875
  __proto__: null,
3112
876
  ThemeSwitch,
3113
877
  action: action$b,
@@ -3704,10 +1468,10 @@ const toastSessionStorage = createCookieSessionStorage({
3704
1468
  secure: process.env.NODE_ENV === "production"
3705
1469
  }
3706
1470
  });
3707
- async function redirectWithToast(url, toast2, init2) {
3708
- return redirect(url, {
3709
- ...init2,
3710
- headers: combineHeaders(init2 == null ? void 0 : init2.headers, await createToastHeaders(toast2))
1471
+ async function redirectWithToast(url, toast2, init) {
1472
+ return redirect$1(url, {
1473
+ ...init,
1474
+ headers: combineHeaders(init == null ? void 0 : init.headers, await createToastHeaders(toast2))
3711
1475
  });
3712
1476
  }
3713
1477
  async function createToastHeaders(optionalToast) {
@@ -3769,7 +1533,7 @@ async function loader$y({ request }) {
3769
1533
  const onboarding = await readOnboardingData();
3770
1534
  if (!ENV.EPICSHOP_DEPLOYED && !(onboarding == null ? void 0 : onboarding.tourVideosWatched.includes(onboardingVideo))) {
3771
1535
  if (new URL(request.url).pathname !== "/onboarding") {
3772
- throw redirect("/onboarding");
1536
+ throw redirect$1("/onboarding");
3773
1537
  }
3774
1538
  }
3775
1539
  const theme = getTheme(request);
@@ -3813,7 +1577,7 @@ async function loader$y({ request }) {
3813
1577
  hints: getHints(request),
3814
1578
  path: new URL(request.url).pathname,
3815
1579
  session: { theme },
3816
- separator: path$1.sep
1580
+ separator: path.sep
3817
1581
  },
3818
1582
  toast: toast2,
3819
1583
  confettiId,
@@ -4479,7 +2243,7 @@ function ProgressToggle({
4479
2243
  )
4480
2244
  ] });
4481
2245
  }
4482
- const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2246
+ const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4483
2247
  __proto__: null,
4484
2248
  ProgressToggle,
4485
2249
  action: action$a,
@@ -5702,7 +3466,7 @@ async function loader$v({ request }) {
5702
3466
  if (parseResult.data.status === "error") {
5703
3467
  console.error(`There was an error connecting Discord`);
5704
3468
  console.error(parseResult.data.error);
5705
- return redirect("/account?error");
3469
+ return redirect$1("/account?error");
5706
3470
  }
5707
3471
  const member = parseResult.data.member;
5708
3472
  await setDiscordMember(member);
@@ -5712,7 +3476,7 @@ async function loader$v({ request }) {
5712
3476
  description: `Your Discord account "${member.displayName}" has been connected!`
5713
3477
  });
5714
3478
  }
5715
- const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3479
+ const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5716
3480
  __proto__: null,
5717
3481
  getDiscordAuthURL,
5718
3482
  loader: loader$v
@@ -5753,7 +3517,7 @@ async function action$9({ request }) {
5753
3517
  type: "success"
5754
3518
  });
5755
3519
  }
5756
- return redirect("/account");
3520
+ return redirect$1("/account");
5757
3521
  }
5758
3522
  function Account() {
5759
3523
  const data = useLoaderData();
@@ -5858,7 +3622,7 @@ async function getForceFresh(filePath, cacheEntry) {
5858
3622
  if (!cacheEntry) return true;
5859
3623
  const app = await getAppFromFile(filePath);
5860
3624
  if (!app) return true;
5861
- const appModified = await queuedGetDirModifiedTime(app.fullPath);
3625
+ const appModified = await getDirModifiedTime(app.fullPath);
5862
3626
  const cacheModified = cacheEntry.metadata.createdTime;
5863
3627
  return !cacheModified || appModified > cacheModified || void 0;
5864
3628
  }
@@ -5883,7 +3647,7 @@ async function compileTs(filePath, fullPath, {
5883
3647
  // app than the one we're serving the file from. We do this so the tests
5884
3648
  // can live in the solution directory, but be run against the problem
5885
3649
  resolveDir: fullPath,
5886
- sourcefile: path.basename(filePath),
3650
+ sourcefile: path$1.basename(filePath),
5887
3651
  loader: "tsx"
5888
3652
  },
5889
3653
  define: {
@@ -5902,12 +3666,17 @@ async function compileTs(filePath, fullPath, {
5902
3666
  }
5903
3667
  });
5904
3668
  }
3669
+ function parseAppNameFromReferer(request) {
3670
+ const url = new URL(request.headers.get("referer") ?? "");
3671
+ const appName = url.pathname.split("/").pop();
3672
+ return appName;
3673
+ }
5905
3674
  async function resolveApps({
5906
3675
  request,
5907
3676
  params,
5908
3677
  timings
5909
3678
  }) {
5910
- const { appName } = params;
3679
+ const appName = params.appName ?? parseAppNameFromReferer(request);
5911
3680
  invariantResponse(appName, "appName param required");
5912
3681
  const app = await getAppByName(appName, { request, timings });
5913
3682
  let fileAppName = (app == null ? void 0 : app.name) ?? null;
@@ -5944,13 +3713,13 @@ async function loader$t({ request, params }) {
5944
3713
  throw new Response(`Apps not found`, { status: 404 });
5945
3714
  }
5946
3715
  if (app.dev.type === "script") {
5947
- return redirect(getBaseUrl({ request, port: app.dev.portNumber }));
3716
+ return redirect$1(getBaseUrl({ request, port: app.dev.portNumber }));
5948
3717
  }
5949
3718
  const splat = params["*"];
5950
3719
  invariantResponse(splat, "splat required");
5951
3720
  const filePath = await firstExisting(
5952
- path.join(app.fullPath, splat),
5953
- path.join(fileApp.fullPath, splat)
3721
+ path$1.join(app.fullPath, splat),
3722
+ path$1.join(fileApp.fullPath, splat)
5954
3723
  );
5955
3724
  if (!filePath) {
5956
3725
  throw new Response("File not found", { status: 404 });
@@ -6036,9 +3805,9 @@ async function getApiModule({ request, params }) {
6036
3805
  throw new Response(`Apps not found`, { status: 404 });
6037
3806
  }
6038
3807
  if (app.dev.type === "script") {
6039
- throw redirect(getBaseUrl({ request, port: app.dev.portNumber }));
3808
+ throw redirect$1(getBaseUrl({ request, port: app.dev.portNumber }));
6040
3809
  }
6041
- const apiFiles = (await fsExtra.readdir(app.fullPath)).filter((file) => /^api\.server\.(ts|tsx|js|jsx)$/.test(file)).map((f) => path$1.join(app.fullPath, f));
3810
+ const apiFiles = (await fsExtra.readdir(app.fullPath)).filter((file) => /^api\.server\.(ts|tsx|js|jsx)$/.test(file)).map((f) => path.join(app.fullPath, f));
6042
3811
  const apiFile = apiFiles[0];
6043
3812
  if (!apiFile) {
6044
3813
  throw new Response(
@@ -6109,7 +3878,7 @@ async function loader$r({ request, params }) {
6109
3878
  throw new Response(`Apps not found`, { status: 404 });
6110
3879
  }
6111
3880
  if (app.dev.type === "script") {
6112
- return redirect(getBaseUrl({ request, port: app.dev.portNumber }));
3881
+ return redirect$1(getBaseUrl({ request, port: app.dev.portNumber }));
6113
3882
  }
6114
3883
  const relevantPaths = Array.from(/* @__PURE__ */ new Set([app.fullPath, fileApp.fullPath]));
6115
3884
  const watchParams = new URLSearchParams();
@@ -6182,7 +3951,7 @@ async function loader$q({ request, params }) {
6182
3951
  throw new Response(`Apps not found`, { status: 404 });
6183
3952
  }
6184
3953
  if (app.dev.type === "script") {
6185
- return redirect(getBaseUrl({ request, port: app.dev.portNumber }), {
3954
+ return redirect$1(getBaseUrl({ request, port: app.dev.portNumber }), {
6186
3955
  headers: { "Server-Timing": getServerTimeHeader(timings) }
6187
3956
  });
6188
3957
  }
@@ -6192,7 +3961,7 @@ async function loader$q({ request, params }) {
6192
3961
  { status: 400 }
6193
3962
  );
6194
3963
  }
6195
- const htmlFile = path.join(app.fullPath, "index.html");
3964
+ const htmlFile = path$1.join(app.fullPath, "index.html");
6196
3965
  const hasHtml = await fsExtra.pathExists(htmlFile);
6197
3966
  if (hasHtml) {
6198
3967
  const html2 = await fsExtra.readFile(htmlFile);
@@ -6340,7 +4109,7 @@ import(${JSON.stringify(testScriptPath)}).then(
6340
4109
  `
6341
4110
  );
6342
4111
  const testScriptTag = userHasAccess ? `<script type="module">${testScriptSrc}<\/script>` : `<h1>Access Denied</h1><p>You must login or register for the workshop to run the tests</p>`;
6343
- const htmlFile = path.join(app.fullPath, "index.html");
4112
+ const htmlFile = path$1.join(app.fullPath, "index.html");
6344
4113
  const hasHtml = await fsExtra.pathExists(htmlFile);
6345
4114
  if (hasHtml) {
6346
4115
  const html2 = (await fsExtra.readFile(htmlFile)).toString();
@@ -6404,6 +4173,10 @@ const route9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
6404
4173
  __proto__: null,
6405
4174
  loader: loader$r
6406
4175
  }, Symbol.toStringTag, { value: "Module" }));
4176
+ const route10 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4177
+ __proto__: null,
4178
+ loader: loader$r
4179
+ }, Symbol.toStringTag, { value: "Module" }));
6407
4180
  const handle$6 = {
6408
4181
  getSitemapEntries: () => null
6409
4182
  };
@@ -6506,7 +4279,7 @@ function DiscordRoute() {
6506
4279
  ] }) })
6507
4280
  ] });
6508
4281
  }
6509
- const route10 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4282
+ const route11 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6510
4283
  __proto__: null,
6511
4284
  DiscordCTA,
6512
4285
  default: DiscordRoute,
@@ -6534,7 +4307,7 @@ function ExercisesLayout() {
6534
4307
  children: /* @__PURE__ */ jsx(Outlet, {})
6535
4308
  });
6536
4309
  }
6537
- const route11 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4310
+ const route12 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6538
4311
  __proto__: null,
6539
4312
  default: ExercisesLayout,
6540
4313
  handle: handle$5
@@ -6737,7 +4510,7 @@ function isDeepEqual(obj1, obj2) {
6737
4510
  }
6738
4511
  return true;
6739
4512
  }
6740
- const route43 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4513
+ const route44 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6741
4514
  __proto__: null,
6742
4515
  MuxPlayer,
6743
4516
  action: action$7,
@@ -7246,8 +5019,8 @@ function useApps() {
7246
5019
  }
7247
5020
  function readablePath(filePath = "") {
7248
5021
  const relative = getRelativePath$1(filePath);
7249
- const name = path.basename(relative);
7250
- const dir = path.dirname(relative);
5022
+ const name = path$1.basename(relative);
5023
+ const dir = path$1.dirname(relative);
7251
5024
  return `'${name}' from:
7252
5025
  '${dir}'`;
7253
5026
  }
@@ -7336,7 +5109,7 @@ function addWorkspaceToArgumentsIfExists(args, workspace) {
7336
5109
  return args;
7337
5110
  }
7338
5111
  function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber, workspace) {
7339
- const editorBasename = path.basename(editor).replace(/\.(exe|cmd|bat)$/i, "");
5112
+ const editorBasename = path$1.basename(editor).replace(/\.(exe|cmd|bat)$/i, "");
7340
5113
  switch (editorBasename) {
7341
5114
  case "atom":
7342
5115
  case "Atom":
@@ -7419,7 +5192,7 @@ function guessEditor() {
7419
5192
  for (let i = 0; i < runningProcesses.length; i++) {
7420
5193
  const processPath = (_a = runningProcesses[i]) == null ? void 0 : _a.trim();
7421
5194
  if (!processPath) continue;
7422
- const processName = path.basename(processPath);
5195
+ const processName = path$1.basename(processPath);
7423
5196
  if (COMMON_EDITORS_WIN.includes(processName)) {
7424
5197
  return [processPath];
7425
5198
  }
@@ -7468,7 +5241,7 @@ async function launchEditor(pathList, lineNumber = 1, colNumber = 1) {
7468
5241
  const { fileList, errorsList } = pathList.reduce(
7469
5242
  (acc, fileName) => {
7470
5243
  if (process.platform === "linux" && fileName.startsWith("/mnt/") && /Microsoft/i.test(os.release())) {
7471
- fileName = path.relative("", fileName);
5244
+ fileName = path$1.relative("", fileName);
7472
5245
  }
7473
5246
  if (process.platform === "win32" && !WINDOWS_FILE_NAME_WHITELIST.test(
7474
5247
  // replacing characters we know are fine (because heck if I'm going to edit that regex above 🙃)
@@ -7477,7 +5250,7 @@ async function launchEditor(pathList, lineNumber = 1, colNumber = 1) {
7477
5250
  acc.errorsList.push(fileName);
7478
5251
  } else {
7479
5252
  if (!fs.existsSync(fileName)) {
7480
- fsExtra.ensureDirSync(path.dirname(fileName));
5253
+ fsExtra.ensureDirSync(path$1.dirname(fileName));
7481
5254
  fsExtra.writeFileSync(fileName, "", "utf8");
7482
5255
  }
7483
5256
  acc.fileList.push(fileName.trim());
@@ -7642,7 +5415,7 @@ async function action$6({ request }) {
7642
5415
  );
7643
5416
  }
7644
5417
  return {
7645
- filepath: path.join(fileDescriptorApp.fullPath, filePath),
5418
+ filepath: path$1.join(fileDescriptorApp.fullPath, filePath),
7646
5419
  line: Number(line),
7647
5420
  column: Number(column)
7648
5421
  };
@@ -7661,7 +5434,7 @@ async function action$6({ request }) {
7661
5434
  `Trying to sync to a file that does not appear at index ${index}`
7662
5435
  );
7663
5436
  }
7664
- await fsExtra.ensureDir(path.dirname(destFile.filepath));
5437
+ await fsExtra.ensureDir(path$1.dirname(destFile.filepath));
7665
5438
  await fsExtra.promises.copyFile(originFile.filepath, destFile.filepath);
7666
5439
  }
7667
5440
  }
@@ -7833,7 +5606,7 @@ function EditFileOnGitHub({
7833
5606
  );
7834
5607
  }
7835
5608
  const LaunchEditor = ENV.EPICSHOP_DEPLOYED ? LaunchGitHub : LaunchEditorImpl;
7836
- const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5609
+ const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7837
5610
  __proto__: null,
7838
5611
  EditFileOnGitHub,
7839
5612
  LaunchEditor,
@@ -8049,7 +5822,7 @@ async function loader$n({ request, params }) {
8049
5822
  if (!exercise) {
8050
5823
  throw new Response("Not found", { status: 404 });
8051
5824
  }
8052
- const readmeFilepath = path.join(
5825
+ const readmeFilepath = path$1.join(
8053
5826
  workshopRoot,
8054
5827
  "exercises",
8055
5828
  exercise.dirName,
@@ -8172,7 +5945,7 @@ function ErrorBoundary$4() {
8172
5945
  error.data
8173
5946
  ] }) : /* @__PURE__ */ jsx("p", { children: getErrorMessage(error) });
8174
5947
  }
8175
- const route12 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5948
+ const route13 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8176
5949
  __proto__: null,
8177
5950
  ErrorBoundary: ErrorBoundary$4,
8178
5951
  default: ExerciseNumberRoute,
@@ -8230,7 +6003,7 @@ function ErrorBoundary$3() {
8230
6003
  error.data
8231
6004
  ] }) : /* @__PURE__ */ jsx("p", { children: getErrorMessage(error) });
8232
6005
  }
8233
- const route13 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6006
+ const route14 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8234
6007
  __proto__: null,
8235
6008
  ErrorBoundary: ErrorBoundary$3,
8236
6009
  default: StepRoute,
@@ -8292,19 +6065,19 @@ function NavChevrons({
8292
6065
  ) : null
8293
6066
  ] });
8294
6067
  }
8295
- const epicshopTempDir = path.join(os.tmpdir(), "epicshop");
6068
+ const epicshopTempDir = path$1.join(os.tmpdir(), "epicshop");
8296
6069
  const isDeployed = ENV.EPICSHOP_DEPLOYED;
8297
- const diffTmpDir = path.join(epicshopTempDir, "diff");
6070
+ const diffTmpDir = path$1.join(epicshopTempDir, "diff");
8298
6071
  function diffPathToRelative(filePath) {
8299
- let normalizedPath = path.normalize(filePath).replace(/^("|')|("|')$/g, "");
6072
+ let normalizedPath = path$1.normalize(filePath).replace(/^("|')|("|')$/g, "");
8300
6073
  if (normalizedPath.startsWith("a\\") || normalizedPath.startsWith("b\\") || normalizedPath.startsWith("a/") || normalizedPath.startsWith("b/")) {
8301
6074
  normalizedPath = normalizedPath.slice(2);
8302
6075
  }
8303
6076
  const [workshopRootDirname, appId, id, ...relativePath] = normalizedPath.replace(
8304
- process.platform === "win32" || normalizedPath.startsWith(path.sep) ? `${diffTmpDir}${path.sep}` : `${diffTmpDir.slice(1)}${path.sep}`,
6077
+ process.platform === "win32" || normalizedPath.startsWith(path$1.sep) ? `${diffTmpDir}${path$1.sep}` : `${diffTmpDir.slice(1)}${path$1.sep}`,
8305
6078
  ""
8306
- ).split(path.sep);
8307
- return relativePath.join(path.sep);
6079
+ ).split(path$1.sep);
6080
+ return relativePath.join(path$1.sep);
8308
6081
  }
8309
6082
  function getLanguage(ext) {
8310
6083
  var _a;
@@ -8322,7 +6095,7 @@ function getFileCodeblocks(file, filePathApp1, filePathApp2, type) {
8322
6095
  const filepath = diffPathToRelative(
8323
6096
  file.type === "RenamedFile" ? file.pathAfter : file.path
8324
6097
  );
8325
- const extension = path.extname(filepath).slice(1);
6098
+ const extension = path$1.extname(filepath).slice(1);
8326
6099
  const lang = getLanguage(extension);
8327
6100
  const pathToCopy = file.type === "RenamedFile" ? file.pathBefore : file.path;
8328
6101
  const relativePath = diffPathToRelative(pathToCopy);
@@ -8431,7 +6204,7 @@ async function copyUnignoredFiles(srcDir, destDir, ignoreList) {
8431
6204
  await fsExtra.copy(srcDir, destDir, {
8432
6205
  filter: async (file) => {
8433
6206
  if (file === srcDir) return true;
8434
- return !ig.ignores(path.relative(srcDir, file));
6207
+ return !ig.ignores(path$1.relative(srcDir, file));
8435
6208
  }
8436
6209
  });
8437
6210
  }
@@ -8439,15 +6212,15 @@ async function copyUnignoredFiles(srcDir, destDir, ignoreList) {
8439
6212
  }
8440
6213
  async function prepareForDiff(app1, app2) {
8441
6214
  const id = Math.random().toString(36).slice(2);
8442
- const app1CopyPath = path.join(
6215
+ const app1CopyPath = path$1.join(
8443
6216
  diffTmpDir,
8444
- path.basename(workshopRoot),
6217
+ path$1.basename(workshopRoot),
8445
6218
  app1.name,
8446
6219
  id
8447
6220
  );
8448
- const app2CopyPath = path.join(
6221
+ const app2CopyPath = path$1.join(
8449
6222
  diffTmpDir,
8450
- path.basename(workshopRoot),
6223
+ path$1.basename(workshopRoot),
8451
6224
  app2.name,
8452
6225
  id
8453
6226
  );
@@ -8456,13 +6229,13 @@ async function prepareForDiff(app1, app2) {
8456
6229
  const { name: name2, ...rest2 } = pkg2;
8457
6230
  return JSON.stringify(rest1) === JSON.stringify(rest2);
8458
6231
  };
8459
- const app1PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path.join(app1.fullPath, "package.json")) : {};
8460
- const app2PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path.join(app2.fullPath, "package.json")) : {};
6232
+ const app1PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path$1.join(app1.fullPath, "package.json")) : {};
6233
+ const app2PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path$1.join(app2.fullPath, "package.json")) : {};
8461
6234
  const pkgJsonIgnore = comparePkgJson(app1PkgJson, app2PkgJson) ? ["package.json"] : [];
8462
6235
  const workshopIgnore = [
8463
- ...await getDiffIgnore(path.join(workshopRoot, ".gitignore")),
6236
+ ...await getDiffIgnore(path$1.join(workshopRoot, ".gitignore")),
8464
6237
  ...await getDiffIgnore(
8465
- path.join(workshopRoot, "epicshop", ".diffignore")
6238
+ path$1.join(workshopRoot, "epicshop", ".diffignore")
8466
6239
  )
8467
6240
  ];
8468
6241
  await Promise.all([
@@ -8470,18 +6243,18 @@ async function prepareForDiff(app1, app2) {
8470
6243
  ...DEFAULT_IGNORE_PATTERNS,
8471
6244
  ...pkgJsonIgnore,
8472
6245
  ...workshopIgnore,
8473
- ...await getDiffIgnore(path.join(app1.fullPath, ".gitignore")),
6246
+ ...await getDiffIgnore(path$1.join(app1.fullPath, ".gitignore")),
8474
6247
  ...await getDiffIgnore(
8475
- path.join(app1.fullPath, "epicshop", ".diffignore")
6248
+ path$1.join(app1.fullPath, "epicshop", ".diffignore")
8476
6249
  )
8477
6250
  ]),
8478
6251
  copyUnignoredFiles(app2.fullPath, app2CopyPath, [
8479
6252
  ...DEFAULT_IGNORE_PATTERNS,
8480
6253
  ...pkgJsonIgnore,
8481
6254
  ...workshopIgnore,
8482
- ...await getDiffIgnore(path.join(app2.fullPath, ".gitignore")),
6255
+ ...await getDiffIgnore(path$1.join(app2.fullPath, ".gitignore")),
8483
6256
  ...await getDiffIgnore(
8484
- path.join(app2.fullPath, "epicshop", ".diffignore")
6257
+ path$1.join(app2.fullPath, "epicshop", ".diffignore")
8485
6258
  )
8486
6259
  ])
8487
6260
  ]);
@@ -8622,11 +6395,11 @@ async function getDiffCodeImpl(app1, app2) {
8622
6395
  const pathToCopy = file.type === "RenamedFile" ? file.pathBefore : file.path;
8623
6396
  const relativePath = diffPathToRelative(pathToCopy);
8624
6397
  if (app1TestFiles.includes(relativePath)) continue;
8625
- const filePathApp1 = path.join(app1.fullPath, relativePath);
6398
+ const filePathApp1 = path$1.join(app1.fullPath, relativePath);
8626
6399
  const pathToApp2 = file.type === "RenamedFile" ? file.pathAfter : file.path;
8627
6400
  const relativePathApp2 = diffPathToRelative(pathToApp2);
8628
6401
  if (app2TestFiles.includes(relativePathApp2)) continue;
8629
- const filePathApp2 = path.join(app2.fullPath, relativePathApp2);
6402
+ const filePathApp2 = path$1.join(app2.fullPath, relativePathApp2);
8630
6403
  switch (file.type) {
8631
6404
  case "ChangedFile": {
8632
6405
  markdownLines.push(`
@@ -8861,7 +6634,7 @@ function SetAppToPlayground({ appName }) {
8861
6634
  }
8862
6635
  );
8863
6636
  }
8864
- const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6637
+ const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
8865
6638
  __proto__: null,
8866
6639
  PlaygroundChooser,
8867
6640
  SetAppToPlayground,
@@ -8939,7 +6712,7 @@ function DiffLink({
8939
6712
  /* @__PURE__ */ jsx("callout-danger", { className: "notification", children: /* @__PURE__ */ jsx("div", { className: "title", children: "DiffLink Error: invalid input" }) })
8940
6713
  );
8941
6714
  }
8942
- function getAppName2(input) {
6715
+ function getAppName(input) {
8943
6716
  var _a;
8944
6717
  if (typeof input === "number") {
8945
6718
  const stepIndex = data.exerciseIndex + input;
@@ -8958,8 +6731,8 @@ function DiffLink({
8958
6731
  app1 = params.get("app1");
8959
6732
  app2 = params.get("app2");
8960
6733
  }
8961
- const app1Name = getAppName2(app1);
8962
- const app2Name = getAppName2(app2);
6734
+ const app1Name = getAppName(app1);
6735
+ const app2Name = getAppName(app2);
8963
6736
  if (!app1Name || !app2Name) {
8964
6737
  return (
8965
6738
  // @ts-expect-error 🤷‍♂️
@@ -9174,13 +6947,13 @@ function pageTitle(data, workshopTitle) {
9174
6947
  var _a;
9175
6948
  const exerciseNumber = (data == null ? void 0 : data.exerciseStepApp.exerciseNumber.toString().padStart(2, "0")) ?? "00";
9176
6949
  const stepNumber = (data == null ? void 0 : data.exerciseStepApp.stepNumber.toString().padStart(2, "0")) ?? "00";
9177
- const emoji2 = {
6950
+ const emoji = {
9178
6951
  problem: "💪",
9179
6952
  solution: "🏁"
9180
6953
  }[(data == null ? void 0 : data.type) ?? "problem"];
9181
6954
  const title = ((_a = data == null ? void 0 : data[data.type]) == null ? void 0 : _a.title) ?? "N/A";
9182
6955
  return {
9183
- emoji: emoji2,
6956
+ emoji,
9184
6957
  stepNumber,
9185
6958
  title,
9186
6959
  exerciseNumber,
@@ -9197,9 +6970,9 @@ const meta$3 = ({
9197
6970
  var _a;
9198
6971
  const rootData = (_a = matches.find((m) => m.id === "root")) == null ? void 0 : _a.data;
9199
6972
  if (!data || !rootData) return [{ title: "🦉 | Error" }];
9200
- const { emoji: emoji2, stepNumber, title, exerciseNumber, exerciseTitle } = pageTitle(data);
6973
+ const { emoji, stepNumber, title, exerciseNumber, exerciseTitle } = pageTitle(data);
9201
6974
  return getSeoMetaTags({
9202
- title: `${emoji2} | ${stepNumber}. ${title} | ${exerciseNumber}. ${exerciseTitle} | ${rootData.workshopTitle}`,
6975
+ title: `${emoji} | ${stepNumber}. ${title} | ${exerciseNumber}. ${exerciseTitle} | ${rootData.workshopTitle}`,
9203
6976
  description: `${params.type} step for exercise ${exerciseNumber}. ${exerciseTitle}`,
9204
6977
  ogTitle: title,
9205
6978
  ogDescription: `${exerciseTitle} step ${Number(stepNumber)} ${params.type}`,
@@ -9222,7 +6995,7 @@ async function loader$l({ request, params }) {
9222
6995
  const pathnameParam = reqUrl.searchParams.get("pathname");
9223
6996
  if (pathnameParam === "" || pathnameParam === "/") {
9224
6997
  reqUrl.searchParams.delete("pathname");
9225
- throw redirect(reqUrl.toString());
6998
+ throw redirect$1(reqUrl.toString());
9226
6999
  }
9227
7000
  const problemApp = await getExerciseApp(
9228
7001
  { ...params, type: "problem" },
@@ -9464,7 +7237,7 @@ function ErrorBoundary$2() {
9464
7237
  }
9465
7238
  );
9466
7239
  }
9467
- const route14 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7240
+ const route15 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9468
7241
  __proto__: null,
9469
7242
  ErrorBoundary: ErrorBoundary$2,
9470
7243
  default: ExercisePartRoute$1,
@@ -9609,7 +7382,7 @@ function AppStarter({ name }) {
9609
7382
  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" }) })
9610
7383
  ] });
9611
7384
  }
9612
- const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7385
+ const route41 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9613
7386
  __proto__: null,
9614
7387
  AppStarter,
9615
7388
  AppStopper,
@@ -10102,7 +7875,7 @@ function TestsList$1() {
10102
7875
  const ref = useRef(null);
10103
7876
  return /* @__PURE__ */ jsx(Preview, { appInfo, inBrowserBrowserRef: ref });
10104
7877
  }
10105
- const route15 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7878
+ const route16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10106
7879
  __proto__: null,
10107
7880
  default: TestsList$1,
10108
7881
  headers: headers$6,
@@ -11332,7 +9105,7 @@ function StopTest({
11332
9105
  )
11333
9106
  ] });
11334
9107
  }
11335
- const route41 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9108
+ const route42 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11336
9109
  __proto__: null,
11337
9110
  ClearTest,
11338
9111
  StopTest,
@@ -11419,7 +9192,7 @@ async function loader$i({ request, params }) {
11419
9192
  const pathnameParam = reqUrl.searchParams.get("pathname");
11420
9193
  if (pathnameParam === "" || pathnameParam === "/") {
11421
9194
  reqUrl.searchParams.delete("pathname");
11422
- throw redirect(reqUrl.toString());
9195
+ throw redirect$1(reqUrl.toString());
11423
9196
  }
11424
9197
  const problemApp = await getExerciseApp(
11425
9198
  { ...params, type: "problem" },
@@ -11722,7 +9495,7 @@ function ErrorBoundary$1() {
11722
9495
  }
11723
9496
  );
11724
9497
  }
11725
- const route16 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9498
+ const route17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11726
9499
  __proto__: null,
11727
9500
  ErrorBoundary: ErrorBoundary$1,
11728
9501
  default: ExercisePartRoute,
@@ -11750,7 +9523,7 @@ function TestsList() {
11750
9523
  const { appInfo } = useLoaderData();
11751
9524
  return /* @__PURE__ */ jsx(TestUI, { playgroundAppInfo: appInfo });
11752
9525
  }
11753
- const route17 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9526
+ const route18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11754
9527
  __proto__: null,
11755
9528
  default: TestsList,
11756
9529
  headers: headers$4,
@@ -11761,7 +9534,7 @@ async function loader$g({ params }) {
11761
9534
  (a) => isProblemApp(a) ? a : null
11762
9535
  );
11763
9536
  if (problemApp) {
11764
- return redirect(
9537
+ return redirect$1(
11765
9538
  `/exercise/${params.exerciseNumber}/${params.stepNumber}/problem`
11766
9539
  );
11767
9540
  }
@@ -11770,13 +9543,13 @@ async function loader$g({ params }) {
11770
9543
  type: "solution"
11771
9544
  }).then((a) => isSolutionApp(a) ? a : null);
11772
9545
  if (solutionApp) {
11773
- return redirect(
9546
+ return redirect$1(
11774
9547
  `/exercise/${params.exerciseNumber}/${params.stepNumber}/solution`
11775
9548
  );
11776
9549
  }
11777
9550
  throw new Response("Not found", { status: 404 });
11778
9551
  }
11779
- const route18 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9552
+ const route19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11780
9553
  __proto__: null,
11781
9554
  loader: loader$g
11782
9555
  }, Symbol.toStringTag, { value: "Module" }));
@@ -11814,7 +9587,7 @@ async function loader$f({ request, params }) {
11814
9587
  timings,
11815
9588
  request
11816
9589
  });
11817
- const finishedFilepath = path.join(
9590
+ const finishedFilepath = path$1.join(
11818
9591
  workshopRoot,
11819
9592
  "exercises",
11820
9593
  exercise.dirName,
@@ -11957,7 +9730,7 @@ function Survey$1({
11957
9730
  )
11958
9731
  ] });
11959
9732
  }
11960
- const route19 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9733
+ const route20 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11961
9734
  __proto__: null,
11962
9735
  default: ExerciseFinished$1,
11963
9736
  headers: headers$3,
@@ -12113,7 +9886,7 @@ function Survey({
12113
9886
  )
12114
9887
  ] });
12115
9888
  }
12116
- const route20 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
9889
+ const route21 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12117
9890
  __proto__: null,
12118
9891
  default: ExerciseFinished,
12119
9892
  handle: handle$4,
@@ -12242,7 +10015,7 @@ function Index() {
12242
10015
  function ErrorBoundary() {
12243
10016
  return /* @__PURE__ */ jsx(GeneralErrorBoundary, {});
12244
10017
  }
12245
- const route21 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10018
+ const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12246
10019
  __proto__: null,
12247
10020
  ErrorBoundary,
12248
10021
  default: Index,
@@ -12346,7 +10119,7 @@ async function loader$c({ request }) {
12346
10119
  };
12347
10120
  });
12348
10121
  }
12349
- const route32 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10122
+ const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12350
10123
  __proto__: null,
12351
10124
  EventSchema,
12352
10125
  loader: loader$c
@@ -12357,7 +10130,7 @@ const handle$3 = {
12357
10130
  async function loader$b() {
12358
10131
  ensureUndeployed();
12359
10132
  const isAuthenticated = Boolean(await getAuthInfo());
12360
- if (isAuthenticated) throw redirect("/account");
10133
+ if (isAuthenticated) throw redirect$1("/account");
12361
10134
  return json$1({});
12362
10135
  }
12363
10136
  async function action$2() {
@@ -12469,7 +10242,7 @@ function Login() {
12469
10242
  ] })
12470
10243
  ] }) });
12471
10244
  }
12472
- const route22 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10245
+ const route23 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12473
10246
  __proto__: null,
12474
10247
  action: action$2,
12475
10248
  default: Login,
@@ -12532,7 +10305,7 @@ function Support() {
12532
10305
  ] })
12533
10306
  ] });
12534
10307
  }
12535
- const route23 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10308
+ const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12536
10309
  __proto__: null,
12537
10310
  default: Support,
12538
10311
  handle: handle$2
@@ -12543,7 +10316,7 @@ async function clearData() {
12543
10316
  }
12544
10317
  async function clearCaches() {
12545
10318
  if (ENV.EPICSHOP_DEPLOYED) return;
12546
- await fsExtra.remove(path$1.join(workshopRoot, "node_modules", ".cache"));
10319
+ await fsExtra.remove(path.join(workshopRoot, "node_modules", ".cache"));
12547
10320
  await deleteCache();
12548
10321
  }
12549
10322
  async function startInspector() {
@@ -12579,7 +10352,7 @@ async function loader$a({ request }) {
12579
10352
  (a, i, ar) => ar.findIndex((b) => a.name === b.name) === i
12580
10353
  );
12581
10354
  const processes = {};
12582
- const testProcesses2 = {};
10355
+ const testProcesses = {};
12583
10356
  for (const [
12584
10357
  name,
12585
10358
  { port: port2, process: process2, color }
@@ -12590,13 +10363,13 @@ async function loader$a({ request }) {
12590
10363
  name,
12591
10364
  { process: process2, exitCode }
12592
10365
  ] of getProcesses().testProcesses.entries()) {
12593
- testProcesses2[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode };
10366
+ testProcesses[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode };
12594
10367
  }
12595
10368
  return json$1(
12596
10369
  {
12597
10370
  apps,
12598
10371
  processes,
12599
- testProcesses: testProcesses2,
10372
+ testProcesses,
12600
10373
  inspectorRunning: global.__inspector_open__
12601
10374
  },
12602
10375
  {
@@ -12744,7 +10517,7 @@ function AdminLayout() {
12744
10517
  function Pinger({
12745
10518
  status
12746
10519
  }) {
12747
- const colors2 = {
10520
+ const colors = {
12748
10521
  running: {
12749
10522
  pinger: "bg-green-400",
12750
10523
  circle: "bg-green-500"
@@ -12762,21 +10535,21 @@ function Pinger({
12762
10535
  }
12763
10536
  }[status];
12764
10537
  return /* @__PURE__ */ jsxs("span", { className: "relative flex h-3 w-3", children: [
12765
- colors2.pinger ? /* @__PURE__ */ jsx(
10538
+ colors.pinger ? /* @__PURE__ */ jsx(
12766
10539
  "span",
12767
10540
  {
12768
- className: `absolute inline-flex h-full w-full animate-ping rounded-full ${colors2.pinger} opacity-75`
10541
+ className: `absolute inline-flex h-full w-full animate-ping rounded-full ${colors.pinger} opacity-75`
12769
10542
  }
12770
10543
  ) : null,
12771
10544
  /* @__PURE__ */ jsx(
12772
10545
  "span",
12773
10546
  {
12774
- className: `relative inline-flex h-3 w-3 rounded-full ${colors2.circle}`
10547
+ className: `relative inline-flex h-3 w-3 rounded-full ${colors.circle}`
12775
10548
  }
12776
10549
  )
12777
10550
  ] });
12778
10551
  }
12779
- const route24 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10552
+ const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12780
10553
  __proto__: null,
12781
10554
  action: action$1,
12782
10555
  default: AdminLayout,
@@ -12789,7 +10562,7 @@ async function loader$9() {
12789
10562
  const apps = await getApps();
12790
10563
  return json$1({ apps });
12791
10564
  }
12792
- const route25 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10565
+ const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12793
10566
  __proto__: null,
12794
10567
  loader: loader$9
12795
10568
  }, Symbol.toStringTag, { value: "Module" }));
@@ -12798,7 +10571,7 @@ async function loader$8() {
12798
10571
  const entries = await getAllFileCacheEntries();
12799
10572
  return json$1({ entries });
12800
10573
  }
12801
- const route26 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10574
+ const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12802
10575
  __proto__: null,
12803
10576
  loader: loader$8
12804
10577
  }, Symbol.toStringTag, { value: "Module" }));
@@ -12810,7 +10583,7 @@ async function loader$7({ request }) {
12810
10583
  { headers: { "Server-Timing": getServerTimeHeader(timings) } }
12811
10584
  );
12812
10585
  }
12813
- const route27 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10586
+ const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12814
10587
  __proto__: null,
12815
10588
  loader: loader$7
12816
10589
  }, Symbol.toStringTag, { value: "Module" }));
@@ -12899,7 +10672,7 @@ function DiffViewer() {
12899
10672
  }
12900
10673
  );
12901
10674
  }
12902
- const route28 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10675
+ const route29 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12903
10676
  __proto__: null,
12904
10677
  default: DiffViewer,
12905
10678
  loader: loader$6
@@ -12912,7 +10685,7 @@ async function loader$5({ request }) {
12912
10685
  { headers: { "Server-Timing": getServerTimeHeader(timings) } }
12913
10686
  );
12914
10687
  }
12915
- const route30 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
10688
+ const route31 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
12916
10689
  __proto__: null,
12917
10690
  loader: loader$5
12918
10691
  }, Symbol.toStringTag, { value: "Module" }));
@@ -13045,8 +10818,8 @@ async function getOgImg(jsx2, { request, timings }) {
13045
10818
  const data = pngData.asPng();
13046
10819
  return data;
13047
10820
  }
13048
- async function getEmoji(emoji2, { request, timings }) {
13049
- const emojiCode = emojiToCodePoints(emoji2);
10821
+ async function getEmoji(emoji, { request, timings }) {
10822
+ const emojiCode = emojiToCodePoints(emoji);
13050
10823
  if (!emojiCode) return null;
13051
10824
  const emojiUrl = `https://cdn.jsdelivr.net/gh/jdecked/twemoji@15/assets/svg/${emojiCode}.svg`;
13052
10825
  return cachified({
@@ -13061,10 +10834,10 @@ async function getEmoji(emoji2, { request, timings }) {
13061
10834
  }
13062
10835
  });
13063
10836
  }
13064
- function emojiToCodePoints(emoji2) {
10837
+ function emojiToCodePoints(emoji) {
13065
10838
  const codePoints = [];
13066
- for (let i = 0; i < emoji2.length; i++) {
13067
- const codePoint = emoji2.codePointAt(i);
10839
+ for (let i = 0; i < emoji.length; i++) {
10840
+ const codePoint = emoji.codePointAt(i);
13068
10841
  if (!codePoint) continue;
13069
10842
  codePoints.push(codePoint.toString(16));
13070
10843
  if (codePoint > 65535) {
@@ -13243,7 +11016,7 @@ function OgLayout({
13243
11016
  }
13244
11017
  );
13245
11018
  }
13246
- const route33 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11019
+ const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13247
11020
  __proto__: null,
13248
11021
  loader: loader$4
13249
11022
  }, Symbol.toStringTag, { value: "Module" }));
@@ -13272,8 +11045,8 @@ async function action({ request }) {
13272
11045
  invariantResponse(intent === "complete", "Invalid intent");
13273
11046
  const { onboardingVideo } = getWorkshopConfig();
13274
11047
  await markOnboardingVideoWatched(onboardingVideo);
13275
- if (authInfo) throw redirect("/");
13276
- else throw redirect("/login");
11048
+ if (authInfo) throw redirect$1("/");
11049
+ else throw redirect$1("/login");
13277
11050
  }
13278
11051
  function Onboarding() {
13279
11052
  const data = useLoaderData();
@@ -13291,7 +11064,7 @@ function Onboarding() {
13291
11064
  /* @__PURE__ */ jsx(Form, { method: "post", className: "pb-4", children: /* @__PURE__ */ jsx(Button, { name: "intent", value: "complete", varient: "primary", children: "I've watched it. Let's go!" }) })
13292
11065
  ] });
13293
11066
  }
13294
- const route34 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11067
+ const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13295
11068
  __proto__: null,
13296
11069
  action,
13297
11070
  default: Onboarding,
@@ -13308,16 +11081,16 @@ async function loader$2() {
13308
11081
  ] of getProcesses().devProcesses.entries()) {
13309
11082
  processes[name] = { port: port2, pid: process2.pid, color };
13310
11083
  }
13311
- const testProcesses2 = {};
11084
+ const testProcesses = {};
13312
11085
  for (const [
13313
11086
  name,
13314
11087
  { process: process2, exitCode, output }
13315
11088
  ] of getProcesses().testProcesses.entries()) {
13316
- testProcesses2[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode, output };
11089
+ testProcesses[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode, output };
13317
11090
  }
13318
- return json$1({ processes, testProcesses: testProcesses2 });
11091
+ return json$1({ processes, testProcesses });
13319
11092
  }
13320
- const route35 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11093
+ const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13321
11094
  __proto__: null,
13322
11095
  loader: loader$2
13323
11096
  }, Symbol.toStringTag, { value: "Module" }));
@@ -13326,7 +11099,7 @@ function loader$1({ request }) {
13326
11099
  { type: "sitemap", value: `${getDomainUrl(request)}/sitemap.xml` }
13327
11100
  ]);
13328
11101
  }
13329
- const route37 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11102
+ const route38 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13330
11103
  __proto__: null,
13331
11104
  loader: loader$1
13332
11105
  }, Symbol.toStringTag, { value: "Module" }));
@@ -13339,11 +11112,11 @@ async function loader({ request, context }) {
13339
11112
  }
13340
11113
  });
13341
11114
  }
13342
- const route39 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
11115
+ const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13343
11116
  __proto__: null,
13344
11117
  loader
13345
11118
  }, Symbol.toStringTag, { value: "Module" }));
13346
- const serverManifest = { "entry": { "module": "/assets/entry.client-CW5CUf_W.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.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-Cl86OUog.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/error-boundary-BcGxKpte.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-YtpQLUzj.js", "/assets/index-BvihEwfB.js", "/assets/presence-Dd98AJ_5.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/_-ZHCWB__B.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/error-boundary-BcGxKpte.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-frPHZWgR.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/product-mjsTrqXs.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/index-BjNhezSK.js", "/assets/user-Boua6jiU.js", "/assets/presence-Dd98AJ_5.js", "/assets/progress-Co-59mG2.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-DDuV9rZX.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/button-CMkJ8p0a.js", "/assets/tooltip-6-WS-Xux.js", "/assets/user-Boua6jiU.js", "/assets/presence-Dd98AJ_5.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/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-DYeU0QX6.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/user-Boua6jiU.js", "/assets/discord-C9bVfiZ6.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-Cfbi6StB.js", "imports": ["/assets/index-DF_XBInP.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-BFTlBdr4.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.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-_687iGFh.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.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-BriOqd2R.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/index-DBrRQJxF.js", "/assets/error-boundary-BcGxKpte.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.js", "/assets/set-playground-pMKmtPtz.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-wbMCZEiv.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/button-CMkJ8p0a.js", "/assets/loading-Br41_Pbf.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/preview-DZcdG4kw.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-C2yr7Uiu.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/tooltip-6-WS-Xux.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/request-info-DGnmXtfj.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/accordion-DuE9VejZ.js", "/assets/mdx-CRxPouxB.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/use-event-source-CCGBLG92.js", "/assets/set-playground-pMKmtPtz.js", "/assets/button-CMkJ8p0a.js", "/assets/diff-B6thd_Sf.js", "/assets/error-boundary-BcGxKpte.js", "/assets/discord-C9bVfiZ6.js", "/assets/index-YtpQLUzj.js", "/assets/tests-BeAEgPAw.js", "/assets/preview-DZcdG4kw.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-B6zIK2V6.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/epic-video-bs7WmhbC.js", "/assets/accordion-DuE9VejZ.js", "/assets/use-event-source-CCGBLG92.js", "/assets/set-playground-pMKmtPtz.js", "/assets/tests-BeAEgPAw.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-BEfn-nJi.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.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-C2dgX1d-.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-Co-59mG2.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-CuV1bRbu.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/error-boundary-BcGxKpte.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.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-kjV7hrVt.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/use-event-source-CCGBLG92.js", "/assets/button-CMkJ8p0a.js", "/assets/loading-Br41_Pbf.js", "/assets/product-mjsTrqXs.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-B0E_F4Zh.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.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-BLJr2x2F.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/pe-CvPIToj6.js", "/assets/tooltip-6-WS-Xux.js", "/assets/progress-Co-59mG2.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-BEk79KPK.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/tooltip-6-WS-Xux.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/request-info-DGnmXtfj.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/accordion-DuE9VejZ.js", "/assets/mdx-CRxPouxB.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/diff-B6thd_Sf.js", "/assets/nav-chevrons-DYiI8EMU.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-B4Z_yevk.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/button-CMkJ8p0a.js", "/assets/epic-video-bs7WmhbC.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/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-d7c89645.js", "version": "d7c89645" };
11119
+ const serverManifest = { "entry": { "module": "/assets/entry.client-CW5CUf_W.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.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-Cl86OUog.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/error-boundary-BcGxKpte.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-YtpQLUzj.js", "/assets/index-BvihEwfB.js", "/assets/presence-Dd98AJ_5.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/_-ZHCWB__B.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/error-boundary-BcGxKpte.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-frPHZWgR.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/product-mjsTrqXs.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/index-BjNhezSK.js", "/assets/user-Boua6jiU.js", "/assets/presence-Dd98AJ_5.js", "/assets/progress-Co-59mG2.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-DDuV9rZX.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/button-CMkJ8p0a.js", "/assets/tooltip-6-WS-Xux.js", "/assets/user-Boua6jiU.js", "/assets/presence-Dd98AJ_5.js"], "css": [] }, "routes/_app+/app.$appName+/$": { "id": "routes/_app+/app.$appName+/$", "parentId": "routes/_app+/_layout", "path": "app/:appName/*", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/api.$": { "id": "routes/_app+/app.$appName+/api.$", "parentId": "routes/_app+/_layout", "path": "app/:appName/api/*", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/api._-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/epic_ws[.js]": { "id": "routes/_app+/app.$appName+/epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/index": { "id": "routes/_app+/app.$appName+/index", "parentId": "routes/_app+/_layout", "path": "app/:appName/", "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.epic_ws[.js]": { "id": "routes/_app+/app.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/app.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/discord": { "id": "routes/_app+/discord", "parentId": "routes/_app+/_layout", "path": "discord", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/discord-DYeU0QX6.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/user-Boua6jiU.js", "/assets/discord-C9bVfiZ6.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-Cfbi6StB.js", "imports": ["/assets/index-DF_XBInP.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-BFTlBdr4.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.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-_687iGFh.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.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-BriOqd2R.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/index-DBrRQJxF.js", "/assets/error-boundary-BcGxKpte.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.js", "/assets/set-playground-pMKmtPtz.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-wbMCZEiv.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/button-CMkJ8p0a.js", "/assets/loading-Br41_Pbf.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/preview-DZcdG4kw.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-C2yr7Uiu.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/tooltip-6-WS-Xux.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/request-info-DGnmXtfj.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/accordion-DuE9VejZ.js", "/assets/mdx-CRxPouxB.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/use-event-source-CCGBLG92.js", "/assets/set-playground-pMKmtPtz.js", "/assets/button-CMkJ8p0a.js", "/assets/diff-B6thd_Sf.js", "/assets/error-boundary-BcGxKpte.js", "/assets/discord-C9bVfiZ6.js", "/assets/index-YtpQLUzj.js", "/assets/tests-BeAEgPAw.js", "/assets/preview-DZcdG4kw.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-B6zIK2V6.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/epic-video-bs7WmhbC.js", "/assets/accordion-DuE9VejZ.js", "/assets/use-event-source-CCGBLG92.js", "/assets/set-playground-pMKmtPtz.js", "/assets/tests-BeAEgPAw.js"], "css": ["/assets/epic-video-DUnRvy1A.css"] }, "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": { "id": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index", "parentId": "routes/_app+/exercise+/$exerciseNumber_.$stepNumber", "path": void 0, "index": true, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_._stepNumber.index-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/exercise+/$exerciseNumber_.finished": { "id": "routes/_app+/exercise+/$exerciseNumber_.finished", "parentId": "routes/_app+/exercise+/_layout", "path": ":exerciseNumber/finished", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/_exerciseNumber_.finished-BEfn-nJi.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.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-C2dgX1d-.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/nav-chevrons-DYiI8EMU.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/mdx-CRxPouxB.js", "/assets/seo-pBpFCWsy.js", "/assets/progress-Co-59mG2.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-CuV1bRbu.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/index-DBrRQJxF.js", "/assets/error-boundary-BcGxKpte.js", "/assets/mdx-CRxPouxB.js", "/assets/progress-Co-59mG2.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-kjV7hrVt.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/use-event-source-CCGBLG92.js", "/assets/button-CMkJ8p0a.js", "/assets/loading-Br41_Pbf.js", "/assets/product-mjsTrqXs.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-B0E_F4Zh.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.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-BLJr2x2F.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/pe-CvPIToj6.js", "/assets/tooltip-6-WS-Xux.js", "/assets/progress-Co-59mG2.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-BEk79KPK.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/tooltip-6-WS-Xux.js", "/assets/index-BjNhezSK.js", "/assets/index-BczhSZ3e.js", "/assets/request-info-DGnmXtfj.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/epic-video-bs7WmhbC.js", "/assets/progress-bar-F8_2mvYp.js", "/assets/accordion-DuE9VejZ.js", "/assets/mdx-CRxPouxB.js", "/assets/revalidation-ws-DcvYvzyj.js", "/assets/diff-B6thd_Sf.js", "/assets/nav-chevrons-DYiI8EMU.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-B4Z_yevk.js", "imports": ["/assets/index-DF_XBInP.js", "/assets/components-DZ8XIeZ3.js", "/assets/misc-BE75ioh8.js", "/assets/request-info-DGnmXtfj.js", "/assets/tooltip-6-WS-Xux.js", "/assets/pe-CvPIToj6.js", "/assets/index-BvihEwfB.js", "/assets/loading-Br41_Pbf.js", "/assets/user-Boua6jiU.js", "/assets/workshop-config-Ce9sSc3I.js", "/assets/button-CMkJ8p0a.js", "/assets/epic-video-bs7WmhbC.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/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-b22910a7.js", "version": "b22910a7" };
13347
11120
  const mode = "production";
13348
11121
  const assetsBuildDirectory = "build/client";
13349
11122
  const basename = "/";
@@ -13432,13 +11205,21 @@ const routes = {
13432
11205
  caseSensitive: void 0,
13433
11206
  module: route9
13434
11207
  },
11208
+ "routes/_app+/app.epic_ws[.js]": {
11209
+ id: "routes/_app+/app.epic_ws[.js]",
11210
+ parentId: "routes/_app+/_layout",
11211
+ path: "app/epic_ws.js",
11212
+ index: void 0,
11213
+ caseSensitive: void 0,
11214
+ module: route10
11215
+ },
13435
11216
  "routes/_app+/discord": {
13436
11217
  id: "routes/_app+/discord",
13437
11218
  parentId: "routes/_app+/_layout",
13438
11219
  path: "discord",
13439
11220
  index: void 0,
13440
11221
  caseSensitive: void 0,
13441
- module: route10
11222
+ module: route11
13442
11223
  },
13443
11224
  "routes/_app+/exercise+/_layout": {
13444
11225
  id: "routes/_app+/exercise+/_layout",
@@ -13446,7 +11227,7 @@ const routes = {
13446
11227
  path: "exercise",
13447
11228
  index: void 0,
13448
11229
  caseSensitive: void 0,
13449
- module: route11
11230
+ module: route12
13450
11231
  },
13451
11232
  "routes/_app+/exercise+/$exerciseNumber": {
13452
11233
  id: "routes/_app+/exercise+/$exerciseNumber",
@@ -13454,7 +11235,7 @@ const routes = {
13454
11235
  path: ":exerciseNumber",
13455
11236
  index: void 0,
13456
11237
  caseSensitive: void 0,
13457
- module: route12
11238
+ module: route13
13458
11239
  },
13459
11240
  "routes/_app+/exercise+/$exerciseNumber_.$stepNumber": {
13460
11241
  id: "routes/_app+/exercise+/$exerciseNumber_.$stepNumber",
@@ -13462,7 +11243,7 @@ const routes = {
13462
11243
  path: ":exerciseNumber/:stepNumber",
13463
11244
  index: void 0,
13464
11245
  caseSensitive: void 0,
13465
- module: route13
11246
+ module: route14
13466
11247
  },
13467
11248
  "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout": {
13468
11249
  id: "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/_layout",
@@ -13470,7 +11251,7 @@ const routes = {
13470
11251
  path: ":type",
13471
11252
  index: void 0,
13472
11253
  caseSensitive: void 0,
13473
- module: route14
11254
+ module: route15
13474
11255
  },
13475
11256
  "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app": {
13476
11257
  id: "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/app",
@@ -13478,7 +11259,7 @@ const routes = {
13478
11259
  path: "app",
13479
11260
  index: void 0,
13480
11261
  caseSensitive: void 0,
13481
- module: route15
11262
+ module: route16
13482
11263
  },
13483
11264
  "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index": {
13484
11265
  id: "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/index",
@@ -13486,7 +11267,7 @@ const routes = {
13486
11267
  path: void 0,
13487
11268
  index: true,
13488
11269
  caseSensitive: void 0,
13489
- module: route16
11270
+ module: route17
13490
11271
  },
13491
11272
  "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test": {
13492
11273
  id: "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.$type+/test",
@@ -13494,7 +11275,7 @@ const routes = {
13494
11275
  path: "test",
13495
11276
  index: void 0,
13496
11277
  caseSensitive: void 0,
13497
- module: route17
11278
+ module: route18
13498
11279
  },
13499
11280
  "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index": {
13500
11281
  id: "routes/_app+/exercise+/$exerciseNumber_.$stepNumber.index",
@@ -13502,7 +11283,7 @@ const routes = {
13502
11283
  path: void 0,
13503
11284
  index: true,
13504
11285
  caseSensitive: void 0,
13505
- module: route18
11286
+ module: route19
13506
11287
  },
13507
11288
  "routes/_app+/exercise+/$exerciseNumber_.finished": {
13508
11289
  id: "routes/_app+/exercise+/$exerciseNumber_.finished",
@@ -13510,7 +11291,7 @@ const routes = {
13510
11291
  path: ":exerciseNumber/finished",
13511
11292
  index: void 0,
13512
11293
  caseSensitive: void 0,
13513
- module: route19
11294
+ module: route20
13514
11295
  },
13515
11296
  "routes/_app+/finished": {
13516
11297
  id: "routes/_app+/finished",
@@ -13518,7 +11299,7 @@ const routes = {
13518
11299
  path: "finished",
13519
11300
  index: void 0,
13520
11301
  caseSensitive: void 0,
13521
- module: route20
11302
+ module: route21
13522
11303
  },
13523
11304
  "routes/_app+/index": {
13524
11305
  id: "routes/_app+/index",
@@ -13526,7 +11307,7 @@ const routes = {
13526
11307
  path: void 0,
13527
11308
  index: true,
13528
11309
  caseSensitive: void 0,
13529
- module: route21
11310
+ module: route22
13530
11311
  },
13531
11312
  "routes/_app+/login": {
13532
11313
  id: "routes/_app+/login",
@@ -13534,7 +11315,7 @@ const routes = {
13534
11315
  path: "login",
13535
11316
  index: void 0,
13536
11317
  caseSensitive: void 0,
13537
- module: route22
11318
+ module: route23
13538
11319
  },
13539
11320
  "routes/_app+/support": {
13540
11321
  id: "routes/_app+/support",
@@ -13542,7 +11323,7 @@ const routes = {
13542
11323
  path: "support",
13543
11324
  index: void 0,
13544
11325
  caseSensitive: void 0,
13545
- module: route23
11326
+ module: route24
13546
11327
  },
13547
11328
  "routes/admin+/_layout": {
13548
11329
  id: "routes/admin+/_layout",
@@ -13550,7 +11331,7 @@ const routes = {
13550
11331
  path: "admin",
13551
11332
  index: void 0,
13552
11333
  caseSensitive: void 0,
13553
- module: route24
11334
+ module: route25
13554
11335
  },
13555
11336
  "routes/admin+/apps": {
13556
11337
  id: "routes/admin+/apps",
@@ -13558,7 +11339,7 @@ const routes = {
13558
11339
  path: "apps",
13559
11340
  index: void 0,
13560
11341
  caseSensitive: void 0,
13561
- module: route25
11342
+ module: route26
13562
11343
  },
13563
11344
  "routes/admin+/cache": {
13564
11345
  id: "routes/admin+/cache",
@@ -13566,7 +11347,7 @@ const routes = {
13566
11347
  path: "cache",
13567
11348
  index: void 0,
13568
11349
  caseSensitive: void 0,
13569
- module: route26
11350
+ module: route27
13570
11351
  },
13571
11352
  "routes/apps": {
13572
11353
  id: "routes/apps",
@@ -13574,7 +11355,7 @@ const routes = {
13574
11355
  path: "apps",
13575
11356
  index: void 0,
13576
11357
  caseSensitive: void 0,
13577
- module: route27
11358
+ module: route28
13578
11359
  },
13579
11360
  "routes/diff": {
13580
11361
  id: "routes/diff",
@@ -13582,7 +11363,7 @@ const routes = {
13582
11363
  path: "diff",
13583
11364
  index: void 0,
13584
11365
  caseSensitive: void 0,
13585
- module: route28
11366
+ module: route29
13586
11367
  },
13587
11368
  "routes/discord.callback": {
13588
11369
  id: "routes/discord.callback",
@@ -13590,7 +11371,7 @@ const routes = {
13590
11371
  path: "discord/callback",
13591
11372
  index: void 0,
13592
11373
  caseSensitive: void 0,
13593
- module: route29
11374
+ module: route30
13594
11375
  },
13595
11376
  "routes/exercises": {
13596
11377
  id: "routes/exercises",
@@ -13598,7 +11379,7 @@ const routes = {
13598
11379
  path: "exercises",
13599
11380
  index: void 0,
13600
11381
  caseSensitive: void 0,
13601
- module: route30
11382
+ module: route31
13602
11383
  },
13603
11384
  "routes/launch-editor": {
13604
11385
  id: "routes/launch-editor",
@@ -13606,7 +11387,7 @@ const routes = {
13606
11387
  path: "launch-editor",
13607
11388
  index: void 0,
13608
11389
  caseSensitive: void 0,
13609
- module: route31
11390
+ module: route32
13610
11391
  },
13611
11392
  "routes/login-sse": {
13612
11393
  id: "routes/login-sse",
@@ -13614,7 +11395,7 @@ const routes = {
13614
11395
  path: "login-sse",
13615
11396
  index: void 0,
13616
11397
  caseSensitive: void 0,
13617
- module: route32
11398
+ module: route33
13618
11399
  },
13619
11400
  "routes/og": {
13620
11401
  id: "routes/og",
@@ -13622,7 +11403,7 @@ const routes = {
13622
11403
  path: "og",
13623
11404
  index: void 0,
13624
11405
  caseSensitive: void 0,
13625
- module: route33
11406
+ module: route34
13626
11407
  },
13627
11408
  "routes/onboarding": {
13628
11409
  id: "routes/onboarding",
@@ -13630,7 +11411,7 @@ const routes = {
13630
11411
  path: "onboarding",
13631
11412
  index: void 0,
13632
11413
  caseSensitive: void 0,
13633
- module: route34
11414
+ module: route35
13634
11415
  },
13635
11416
  "routes/processes": {
13636
11417
  id: "routes/processes",
@@ -13638,7 +11419,7 @@ const routes = {
13638
11419
  path: "processes",
13639
11420
  index: void 0,
13640
11421
  caseSensitive: void 0,
13641
- module: route35
11422
+ module: route36
13642
11423
  },
13643
11424
  "routes/progress": {
13644
11425
  id: "routes/progress",
@@ -13646,7 +11427,7 @@ const routes = {
13646
11427
  path: "progress",
13647
11428
  index: void 0,
13648
11429
  caseSensitive: void 0,
13649
- module: route36
11430
+ module: route37
13650
11431
  },
13651
11432
  "routes/robots[.]txt": {
13652
11433
  id: "routes/robots[.]txt",
@@ -13654,7 +11435,7 @@ const routes = {
13654
11435
  path: "robots.txt",
13655
11436
  index: void 0,
13656
11437
  caseSensitive: void 0,
13657
- module: route37
11438
+ module: route38
13658
11439
  },
13659
11440
  "routes/set-playground": {
13660
11441
  id: "routes/set-playground",
@@ -13662,7 +11443,7 @@ const routes = {
13662
11443
  path: "set-playground",
13663
11444
  index: void 0,
13664
11445
  caseSensitive: void 0,
13665
- module: route38
11446
+ module: route39
13666
11447
  },
13667
11448
  "routes/sitemap[.]xml": {
13668
11449
  id: "routes/sitemap[.]xml",
@@ -13670,7 +11451,7 @@ const routes = {
13670
11451
  path: "sitemap.xml",
13671
11452
  index: void 0,
13672
11453
  caseSensitive: void 0,
13673
- module: route39
11454
+ module: route40
13674
11455
  },
13675
11456
  "routes/start": {
13676
11457
  id: "routes/start",
@@ -13678,7 +11459,7 @@ const routes = {
13678
11459
  path: "start",
13679
11460
  index: void 0,
13680
11461
  caseSensitive: void 0,
13681
- module: route40
11462
+ module: route41
13682
11463
  },
13683
11464
  "routes/test": {
13684
11465
  id: "routes/test",
@@ -13686,7 +11467,7 @@ const routes = {
13686
11467
  path: "test",
13687
11468
  index: void 0,
13688
11469
  caseSensitive: void 0,
13689
- module: route41
11470
+ module: route42
13690
11471
  },
13691
11472
  "routes/theme/index": {
13692
11473
  id: "routes/theme/index",
@@ -13694,7 +11475,7 @@ const routes = {
13694
11475
  path: "theme",
13695
11476
  index: void 0,
13696
11477
  caseSensitive: void 0,
13697
- module: route42
11478
+ module: route43
13698
11479
  },
13699
11480
  "routes/video-player/index": {
13700
11481
  id: "routes/video-player/index",
@@ -13702,7 +11483,7 @@ const routes = {
13702
11483
  path: "video-player",
13703
11484
  index: void 0,
13704
11485
  caseSensitive: void 0,
13705
- module: route43
11486
+ module: route44
13706
11487
  }
13707
11488
  };
13708
11489
  export {