@epic-web/workshop-app 5.1.0 → 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.
- package/build/client/assets/{manifest-77ab30ae.js → manifest-b22910a7.js} +1 -1
- package/build/server/index.js +108 -2344
- package/build/server/index.js.map +1 -1
- package/package.json +3 -25
- package/node_modules/@babel/runtime/LICENSE +0 -22
- package/node_modules/@babel/runtime/README.md +0 -19
- package/node_modules/@babel/runtime/helpers/AwaitValue.js +0 -4
- package/node_modules/@babel/runtime/helpers/OverloadYield.js +0 -4
- package/node_modules/@babel/runtime/helpers/applyDecoratedDescriptor.js +0 -9
- package/node_modules/@babel/runtime/helpers/applyDecs.js +0 -236
- package/node_modules/@babel/runtime/helpers/applyDecs2203.js +0 -184
- package/node_modules/@babel/runtime/helpers/applyDecs2203R.js +0 -191
- package/node_modules/@babel/runtime/helpers/applyDecs2301.js +0 -222
- package/node_modules/@babel/runtime/helpers/applyDecs2305.js +0 -133
- package/node_modules/@babel/runtime/helpers/applyDecs2311.js +0 -124
- package/node_modules/@babel/runtime/helpers/arrayLikeToArray.js +0 -6
- package/node_modules/@babel/runtime/helpers/arrayWithHoles.js +0 -4
- package/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js +0 -5
- package/node_modules/@babel/runtime/helpers/assertClassBrand.js +0 -5
- package/node_modules/@babel/runtime/helpers/assertThisInitialized.js +0 -5
- package/node_modules/@babel/runtime/helpers/asyncGeneratorDelegate.js +0 -24
- package/node_modules/@babel/runtime/helpers/asyncIterator.js +0 -45
- package/node_modules/@babel/runtime/helpers/asyncToGenerator.js +0 -26
- package/node_modules/@babel/runtime/helpers/awaitAsyncGenerator.js +0 -5
- package/node_modules/@babel/runtime/helpers/callSuper.js +0 -7
- package/node_modules/@babel/runtime/helpers/checkInRHS.js +0 -6
- package/node_modules/@babel/runtime/helpers/checkPrivateRedeclaration.js +0 -4
- package/node_modules/@babel/runtime/helpers/classApplyDescriptorDestructureSet.js +0 -10
- package/node_modules/@babel/runtime/helpers/classApplyDescriptorGet.js +0 -4
- package/node_modules/@babel/runtime/helpers/classApplyDescriptorSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/classCallCheck.js +0 -4
- package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticAccess.js +0 -5
- package/node_modules/@babel/runtime/helpers/classCheckPrivateStaticFieldDescriptor.js +0 -4
- package/node_modules/@babel/runtime/helpers/classExtractFieldDescriptor.js +0 -5
- package/node_modules/@babel/runtime/helpers/classNameTDZError.js +0 -4
- package/node_modules/@babel/runtime/helpers/classPrivateFieldDestructureSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/classPrivateFieldGet.js +0 -7
- package/node_modules/@babel/runtime/helpers/classPrivateFieldGet2.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateFieldInitSpec.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseBase.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateFieldLooseKey.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateFieldSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/classPrivateFieldSet2.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateGetter.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateMethodGet.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateMethodInitSpec.js +0 -5
- package/node_modules/@babel/runtime/helpers/classPrivateMethodSet.js +0 -4
- package/node_modules/@babel/runtime/helpers/classPrivateSetter.js +0 -5
- package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldDestructureSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecGet.js +0 -7
- package/node_modules/@babel/runtime/helpers/classStaticPrivateFieldSpecSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodGet.js +0 -5
- package/node_modules/@babel/runtime/helpers/classStaticPrivateMethodSet.js +0 -4
- package/node_modules/@babel/runtime/helpers/construct.js +0 -10
- package/node_modules/@babel/runtime/helpers/createClass.js +0 -13
- package/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js +0 -50
- package/node_modules/@babel/runtime/helpers/createForOfIteratorHelperLoose.js +0 -19
- package/node_modules/@babel/runtime/helpers/createSuper.js +0 -16
- package/node_modules/@babel/runtime/helpers/decorate.js +0 -250
- package/node_modules/@babel/runtime/helpers/defaults.js +0 -9
- package/node_modules/@babel/runtime/helpers/defineAccessor.js +0 -8
- package/node_modules/@babel/runtime/helpers/defineEnumerableProperties.js +0 -12
- package/node_modules/@babel/runtime/helpers/defineProperty.js +0 -10
- package/node_modules/@babel/runtime/helpers/dispose.js +0 -28
- package/node_modules/@babel/runtime/helpers/esm/AwaitValue.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/OverloadYield.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/applyDecoratedDescriptor.js +0 -9
- package/node_modules/@babel/runtime/helpers/esm/applyDecs.js +0 -236
- package/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +0 -184
- package/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +0 -191
- package/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +0 -222
- package/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +0 -133
- package/node_modules/@babel/runtime/helpers/esm/applyDecs2311.js +0 -124
- package/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js +0 -6
- package/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/assertClassBrand.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/asyncGeneratorDelegate.js +0 -24
- package/node_modules/@babel/runtime/helpers/esm/asyncIterator.js +0 -45
- package/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js +0 -26
- package/node_modules/@babel/runtime/helpers/esm/awaitAsyncGenerator.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/callSuper.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/checkInRHS.js +0 -6
- package/node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorDestructureSet.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorGet.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/classApplyDescriptorSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/classCallCheck.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticAccess.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classCheckPrivateStaticFieldDescriptor.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/classExtractFieldDescriptor.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classNameTDZError.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldDestructureSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodGet.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classPrivateMethodSet.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/classPrivateSetter.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldDestructureSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecGet.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateFieldSpecSet.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodGet.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/classStaticPrivateMethodSet.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/construct.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/createClass.js +0 -13
- package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js +0 -50
- package/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelperLoose.js +0 -19
- package/node_modules/@babel/runtime/helpers/esm/createSuper.js +0 -16
- package/node_modules/@babel/runtime/helpers/esm/decorate.js +0 -250
- package/node_modules/@babel/runtime/helpers/esm/defaults.js +0 -9
- package/node_modules/@babel/runtime/helpers/esm/defineAccessor.js +0 -8
- package/node_modules/@babel/runtime/helpers/esm/defineEnumerableProperties.js +0 -12
- package/node_modules/@babel/runtime/helpers/esm/defineProperty.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/dispose.js +0 -28
- package/node_modules/@babel/runtime/helpers/esm/extends.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/get.js +0 -11
- package/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js +0 -6
- package/node_modules/@babel/runtime/helpers/esm/identity.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/importDeferProxy.js +0 -27
- package/node_modules/@babel/runtime/helpers/esm/inherits.js +0 -14
- package/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +0 -5
- package/node_modules/@babel/runtime/helpers/esm/initializerDefineProperty.js +0 -9
- package/node_modules/@babel/runtime/helpers/esm/initializerWarningHelper.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/instanceof.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/interopRequireDefault.js +0 -6
- package/node_modules/@babel/runtime/helpers/esm/interopRequireWildcard.js +0 -27
- package/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js +0 -8
- package/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js +0 -9
- package/node_modules/@babel/runtime/helpers/esm/iterableToArray.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js +0 -28
- package/node_modules/@babel/runtime/helpers/esm/jsx.js +0 -22
- package/node_modules/@babel/runtime/helpers/esm/maybeArrayLike.js +0 -9
- package/node_modules/@babel/runtime/helpers/esm/newArrowCheck.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/nullishReceiverError.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/objectSpread.js +0 -14
- package/node_modules/@babel/runtime/helpers/esm/objectSpread2.js +0 -23
- package/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js +0 -13
- package/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/package.json +0 -3
- package/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js +0 -8
- package/node_modules/@babel/runtime/helpers/esm/readOnlyError.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js +0 -304
- package/node_modules/@babel/runtime/helpers/esm/set.js +0 -22
- package/node_modules/@babel/runtime/helpers/esm/setFunctionName.js +0 -12
- package/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +0 -6
- package/node_modules/@babel/runtime/helpers/esm/skipFirstGeneratorNext.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/slicedToArray.js +0 -8
- package/node_modules/@babel/runtime/helpers/esm/superPropBase.js +0 -6
- package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js +0 -8
- package/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/tdz.js +0 -4
- package/node_modules/@babel/runtime/helpers/esm/temporalRef.js +0 -6
- package/node_modules/@babel/runtime/helpers/esm/temporalUndefined.js +0 -2
- package/node_modules/@babel/runtime/helpers/esm/toArray.js +0 -8
- package/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js +0 -8
- package/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +0 -12
- package/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +0 -7
- package/node_modules/@babel/runtime/helpers/esm/toSetter.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/typeof.js +0 -10
- package/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js +0 -9
- package/node_modules/@babel/runtime/helpers/esm/using.js +0 -12
- package/node_modules/@babel/runtime/helpers/esm/usingCtx.js +0 -47
- package/node_modules/@babel/runtime/helpers/esm/wrapAsyncGenerator.js +0 -69
- package/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js +0 -27
- package/node_modules/@babel/runtime/helpers/esm/wrapRegExp.js +0 -51
- package/node_modules/@babel/runtime/helpers/esm/writeOnlyError.js +0 -4
- package/node_modules/@babel/runtime/helpers/extends.js +0 -10
- package/node_modules/@babel/runtime/helpers/get.js +0 -11
- package/node_modules/@babel/runtime/helpers/getPrototypeOf.js +0 -6
- package/node_modules/@babel/runtime/helpers/identity.js +0 -4
- package/node_modules/@babel/runtime/helpers/importDeferProxy.js +0 -27
- package/node_modules/@babel/runtime/helpers/inherits.js +0 -14
- package/node_modules/@babel/runtime/helpers/inheritsLoose.js +0 -5
- package/node_modules/@babel/runtime/helpers/initializerDefineProperty.js +0 -9
- package/node_modules/@babel/runtime/helpers/initializerWarningHelper.js +0 -4
- package/node_modules/@babel/runtime/helpers/instanceof.js +0 -4
- package/node_modules/@babel/runtime/helpers/interopRequireDefault.js +0 -6
- package/node_modules/@babel/runtime/helpers/interopRequireWildcard.js +0 -27
- package/node_modules/@babel/runtime/helpers/isNativeFunction.js +0 -8
- package/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js +0 -9
- package/node_modules/@babel/runtime/helpers/iterableToArray.js +0 -4
- package/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js +0 -28
- package/node_modules/@babel/runtime/helpers/jsx.js +0 -22
- package/node_modules/@babel/runtime/helpers/maybeArrayLike.js +0 -9
- package/node_modules/@babel/runtime/helpers/newArrowCheck.js +0 -4
- package/node_modules/@babel/runtime/helpers/nonIterableRest.js +0 -4
- package/node_modules/@babel/runtime/helpers/nonIterableSpread.js +0 -4
- package/node_modules/@babel/runtime/helpers/nullishReceiverError.js +0 -4
- package/node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js +0 -4
- package/node_modules/@babel/runtime/helpers/objectSpread.js +0 -14
- package/node_modules/@babel/runtime/helpers/objectSpread2.js +0 -23
- package/node_modules/@babel/runtime/helpers/objectWithoutProperties.js +0 -13
- package/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +0 -10
- package/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js +0 -8
- package/node_modules/@babel/runtime/helpers/readOnlyError.js +0 -4
- package/node_modules/@babel/runtime/helpers/regeneratorRuntime.js +0 -304
- package/node_modules/@babel/runtime/helpers/set.js +0 -22
- package/node_modules/@babel/runtime/helpers/setFunctionName.js +0 -12
- package/node_modules/@babel/runtime/helpers/setPrototypeOf.js +0 -6
- package/node_modules/@babel/runtime/helpers/skipFirstGeneratorNext.js +0 -7
- package/node_modules/@babel/runtime/helpers/slicedToArray.js +0 -8
- package/node_modules/@babel/runtime/helpers/superPropBase.js +0 -6
- package/node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js +0 -8
- package/node_modules/@babel/runtime/helpers/taggedTemplateLiteralLoose.js +0 -4
- package/node_modules/@babel/runtime/helpers/tdz.js +0 -4
- package/node_modules/@babel/runtime/helpers/temporalRef.js +0 -6
- package/node_modules/@babel/runtime/helpers/temporalUndefined.js +0 -2
- package/node_modules/@babel/runtime/helpers/toArray.js +0 -8
- package/node_modules/@babel/runtime/helpers/toConsumableArray.js +0 -8
- package/node_modules/@babel/runtime/helpers/toPrimitive.js +0 -12
- package/node_modules/@babel/runtime/helpers/toPropertyKey.js +0 -7
- package/node_modules/@babel/runtime/helpers/toSetter.js +0 -10
- package/node_modules/@babel/runtime/helpers/typeof.js +0 -10
- package/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js +0 -9
- package/node_modules/@babel/runtime/helpers/using.js +0 -12
- package/node_modules/@babel/runtime/helpers/usingCtx.js +0 -47
- package/node_modules/@babel/runtime/helpers/wrapAsyncGenerator.js +0 -69
- package/node_modules/@babel/runtime/helpers/wrapNativeSuper.js +0 -27
- package/node_modules/@babel/runtime/helpers/wrapRegExp.js +0 -51
- package/node_modules/@babel/runtime/helpers/writeOnlyError.js +0 -4
- package/node_modules/@babel/runtime/package.json +0 -1038
- package/node_modules/@babel/runtime/regenerator/index.js +0 -15
- package/node_modules/@conform-to/dom/LICENSE +0 -21
- package/node_modules/@conform-to/dom/README +0 -37
- package/node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.js +0 -58
- package/node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.mjs +0 -51
- package/node_modules/@conform-to/dom/dom.d.ts +0 -55
- package/node_modules/@conform-to/dom/dom.js +0 -104
- package/node_modules/@conform-to/dom/dom.mjs +0 -95
- package/node_modules/@conform-to/dom/form.d.ts +0 -246
- package/node_modules/@conform-to/dom/form.js +0 -582
- package/node_modules/@conform-to/dom/form.mjs +0 -578
- package/node_modules/@conform-to/dom/formdata.d.ts +0 -61
- package/node_modules/@conform-to/dom/formdata.js +0 -214
- package/node_modules/@conform-to/dom/formdata.mjs +0 -200
- package/node_modules/@conform-to/dom/index.d.ts +0 -26
- package/node_modules/@conform-to/dom/index.js +0 -20
- package/node_modules/@conform-to/dom/index.mjs +0 -4
- package/node_modules/@conform-to/dom/intent.d.ts +0 -114
- package/node_modules/@conform-to/dom/intent.js +0 -136
- package/node_modules/@conform-to/dom/intent.mjs +0 -126
- package/node_modules/@conform-to/dom/package.json +0 -59
- package/node_modules/@conform-to/dom/parse.d.ts +0 -50
- package/node_modules/@conform-to/dom/parse.js +0 -43
- package/node_modules/@conform-to/dom/parse.mjs +0 -37
- package/node_modules/@conform-to/dom/submission.d.ts +0 -135
- package/node_modules/@conform-to/dom/submission.js +0 -305
- package/node_modules/@conform-to/dom/submission.mjs +0 -288
- package/node_modules/@conform-to/dom/types.d.ts +0 -23
- package/node_modules/@conform-to/dom/util.d.ts +0 -6
- package/node_modules/@conform-to/dom/util.js +0 -19
- package/node_modules/@conform-to/dom/util.mjs +0 -13
- package/node_modules/@conform-to/react/LICENSE +0 -21
- package/node_modules/@conform-to/react/README +0 -37
- package/node_modules/@conform-to/react/_virtual/_rollupPluginBabelHelpers.js +0 -87
- package/node_modules/@conform-to/react/_virtual/_rollupPluginBabelHelpers.mjs +0 -78
- package/node_modules/@conform-to/react/context.d.ts +0 -200
- package/node_modules/@conform-to/react/context.js +0 -256
- package/node_modules/@conform-to/react/context.mjs +0 -241
- package/node_modules/@conform-to/react/experimental.d.ts +0 -0
- package/node_modules/@conform-to/react/helpers.d.ts +0 -208
- package/node_modules/@conform-to/react/helpers.js +0 -222
- package/node_modules/@conform-to/react/helpers.mjs +0 -211
- package/node_modules/@conform-to/react/hooks.d.ts +0 -63
- package/node_modules/@conform-to/react/hooks.js +0 -88
- package/node_modules/@conform-to/react/hooks.mjs +0 -79
- package/node_modules/@conform-to/react/index.d.ts +0 -29
- package/node_modules/@conform-to/react/index.js +0 -30
- package/node_modules/@conform-to/react/index.mjs +0 -5
- package/node_modules/@conform-to/react/integrations.d.ts +0 -45
- package/node_modules/@conform-to/react/integrations.js +0 -298
- package/node_modules/@conform-to/react/integrations.mjs +0 -284
- package/node_modules/@conform-to/react/package.json +0 -69
- package/node_modules/@conform-to/zod/LICENSE +0 -21
- package/node_modules/@conform-to/zod/README +0 -37
- package/node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.js +0 -58
- package/node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.mjs +0 -51
- package/node_modules/@conform-to/zod/coercion.d.ts +0 -37
- package/node_modules/@conform-to/zod/coercion.js +0 -171
- package/node_modules/@conform-to/zod/coercion.mjs +0 -164
- package/node_modules/@conform-to/zod/constraint.d.ts +0 -5
- package/node_modules/@conform-to/zod/constraint.js +0 -103
- package/node_modules/@conform-to/zod/constraint.mjs +0 -99
- package/node_modules/@conform-to/zod/index.d.ts +0 -2
- package/node_modules/@conform-to/zod/index.js +0 -12
- package/node_modules/@conform-to/zod/index.mjs +0 -2
- package/node_modules/@conform-to/zod/package.json +0 -61
- package/node_modules/@conform-to/zod/parse.d.ts +0 -46
- package/node_modules/@conform-to/zod/parse.js +0 -64
- package/node_modules/@conform-to/zod/parse.mjs +0 -59
- package/node_modules/@epic-web/client-hints/README.md +0 -221
- package/node_modules/@epic-web/client-hints/dist/color-scheme.d.ts +0 -12
- package/node_modules/@epic-web/client-hints/dist/color-scheme.js +0 -25
- package/node_modules/@epic-web/client-hints/dist/index.d.ts +0 -6
- package/node_modules/@epic-web/client-hints/dist/index.js +0 -79
- package/node_modules/@epic-web/client-hints/dist/reduced-motion.d.ts +0 -12
- package/node_modules/@epic-web/client-hints/dist/reduced-motion.js +0 -25
- package/node_modules/@epic-web/client-hints/dist/time-zone.d.ts +0 -5
- package/node_modules/@epic-web/client-hints/dist/time-zone.js +0 -5
- package/node_modules/@epic-web/client-hints/dist/utils.d.ts +0 -9
- package/node_modules/@epic-web/client-hints/dist/utils.js +0 -1
- package/node_modules/@epic-web/client-hints/package.json +0 -71
- package/node_modules/@epic-web/restore-scroll/README.md +0 -108
- package/node_modules/@epic-web/restore-scroll/dist/index.d.ts +0 -7
- package/node_modules/@epic-web/restore-scroll/dist/index.js +0 -85
- package/node_modules/@epic-web/restore-scroll/package.json +0 -64
- package/node_modules/@floating-ui/core/LICENSE +0 -20
- package/node_modules/@floating-ui/core/README.md +0 -4
- package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs +0 -1
- package/node_modules/@floating-ui/core/dist/floating-ui.core.browser.mjs +0 -1164
- package/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts +0 -521
- package/node_modules/@floating-ui/core/dist/floating-ui.core.d.ts +0 -521
- package/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js +0 -1036
- package/node_modules/@floating-ui/core/dist/floating-ui.core.mjs +0 -1036
- package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.js +0 -1183
- package/node_modules/@floating-ui/core/dist/floating-ui.core.umd.min.js +0 -1
- package/node_modules/@floating-ui/core/package.json +0 -63
- package/node_modules/@floating-ui/dom/LICENSE +0 -20
- package/node_modules/@floating-ui/dom/README.md +0 -4
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs +0 -1
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.mjs +0 -853
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts +0 -356
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.ts +0 -356
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js +0 -704
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs +0 -704
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js +0 -872
- package/node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.min.js +0 -1
- package/node_modules/@floating-ui/dom/package.json +0 -71
- package/node_modules/@floating-ui/react-dom/LICENSE +0 -20
- package/node_modules/@floating-ui/react-dom/README.md +0 -3
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts +0 -307
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.ts +0 -307
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.esm.js +0 -363
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs +0 -363
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.js +0 -414
- package/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.umd.min.js +0 -1
- package/node_modules/@floating-ui/react-dom/package.json +0 -77
- package/node_modules/@floating-ui/utils/LICENSE +0 -20
- package/node_modules/@floating-ui/utils/README.md +0 -4
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts +0 -103
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.ts +0 -103
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts +0 -45
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.ts +0 -45
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.esm.js +0 -139
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs +0 -139
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.js +0 -165
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.umd.min.js +0 -1
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js +0 -138
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs +0 -138
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.js +0 -169
- package/node_modules/@floating-ui/utils/dist/floating-ui.utils.umd.min.js +0 -1
- package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.d.ts +0 -45
- package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js +0 -139
- package/node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.umd.js +0 -165
- package/node_modules/@floating-ui/utils/dom/package.json +0 -6
- package/node_modules/@floating-ui/utils/package.json +0 -70
- package/node_modules/@radix-ui/number/README.md +0 -13
- package/node_modules/@radix-ui/number/dist/index.d.mts +0 -3
- package/node_modules/@radix-ui/number/dist/index.d.ts +0 -3
- package/node_modules/@radix-ui/number/dist/index.js +0 -31
- package/node_modules/@radix-ui/number/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/number/dist/index.mjs +0 -8
- package/node_modules/@radix-ui/number/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/number/package.json +0 -38
- package/node_modules/@radix-ui/primitive/README.md +0 -13
- package/node_modules/@radix-ui/primitive/dist/index.d.mts +0 -5
- package/node_modules/@radix-ui/primitive/dist/index.d.ts +0 -5
- package/node_modules/@radix-ui/primitive/dist/index.js +0 -36
- package/node_modules/@radix-ui/primitive/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/primitive/dist/index.mjs +0 -13
- package/node_modules/@radix-ui/primitive/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/primitive/package.json +0 -38
- package/node_modules/@radix-ui/react-accordion/README.md +0 -13
- package/node_modules/@radix-ui/react-accordion/dist/index.d.mts +0 -125
- package/node_modules/@radix-ui/react-accordion/dist/index.d.ts +0 -125
- package/node_modules/@radix-ui/react-accordion/dist/index.js +0 -350
- package/node_modules/@radix-ui/react-accordion/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-accordion/dist/index.mjs +0 -318
- package/node_modules/@radix-ui/react-accordion/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-accordion/package.json +0 -63
- package/node_modules/@radix-ui/react-arrow/README.md +0 -13
- package/node_modules/@radix-ui/react-arrow/dist/index.d.mts +0 -10
- package/node_modules/@radix-ui/react-arrow/dist/index.d.ts +0 -10
- package/node_modules/@radix-ui/react-arrow/dist/index.js +0 -60
- package/node_modules/@radix-ui/react-arrow/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-arrow/dist/index.mjs +0 -27
- package/node_modules/@radix-ui/react-arrow/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-arrow/package.json +0 -55
- package/node_modules/@radix-ui/react-collapsible/README.md +0 -13
- package/node_modules/@radix-ui/react-collapsible/dist/index.d.mts +0 -43
- package/node_modules/@radix-ui/react-collapsible/dist/index.d.ts +0 -43
- package/node_modules/@radix-ui/react-collapsible/dist/index.js +0 -186
- package/node_modules/@radix-ui/react-collapsible/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-collapsible/dist/index.mjs +0 -154
- package/node_modules/@radix-ui/react-collapsible/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-collapsible/package.json +0 -62
- package/node_modules/@radix-ui/react-collection/README.md +0 -13
- package/node_modules/@radix-ui/react-collection/dist/index.d.mts +0 -34
- package/node_modules/@radix-ui/react-collection/dist/index.d.ts +0 -34
- package/node_modules/@radix-ui/react-collection/dist/index.js +0 -104
- package/node_modules/@radix-ui/react-collection/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-collection/dist/index.mjs +0 -72
- package/node_modules/@radix-ui/react-collection/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-collection/package.json +0 -58
- package/node_modules/@radix-ui/react-compose-refs/README.md +0 -13
- package/node_modules/@radix-ui/react-compose-refs/dist/index.d.mts +0 -15
- package/node_modules/@radix-ui/react-compose-refs/dist/index.d.ts +0 -15
- package/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -53
- package/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs +0 -20
- package/node_modules/@radix-ui/react-compose-refs/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-compose-refs/package.json +0 -47
- package/node_modules/@radix-ui/react-context/README.md +0 -13
- package/node_modules/@radix-ui/react-context/dist/index.d.mts +0 -28
- package/node_modules/@radix-ui/react-context/dist/index.d.ts +0 -28
- package/node_modules/@radix-ui/react-context/dist/index.js +0 -114
- package/node_modules/@radix-ui/react-context/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-context/dist/index.mjs +0 -81
- package/node_modules/@radix-ui/react-context/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-context/package.json +0 -47
- package/node_modules/@radix-ui/react-direction/README.md +0 -13
- package/node_modules/@radix-ui/react-direction/dist/index.d.mts +0 -12
- package/node_modules/@radix-ui/react-direction/dist/index.d.ts +0 -12
- package/node_modules/@radix-ui/react-direction/dist/index.js +0 -52
- package/node_modules/@radix-ui/react-direction/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-direction/dist/index.mjs +0 -19
- package/node_modules/@radix-ui/react-direction/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-direction/package.json +0 -47
- package/node_modules/@radix-ui/react-dismissable-layer/README.md +0 -13
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.mts +0 -51
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.d.ts +0 -51
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -253
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs +0 -221
- package/node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-dismissable-layer/package.json +0 -62
- package/node_modules/@radix-ui/react-focus-guards/README.md +0 -13
- package/node_modules/@radix-ui/react-focus-guards/dist/index.d.mts +0 -9
- package/node_modules/@radix-ui/react-focus-guards/dist/index.d.ts +0 -9
- package/node_modules/@radix-ui/react-focus-guards/dist/index.js +0 -69
- package/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs +0 -37
- package/node_modules/@radix-ui/react-focus-guards/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-focus-guards/package.json +0 -47
- package/node_modules/@radix-ui/react-focus-scope/README.md +0 -13
- package/node_modules/@radix-ui/react-focus-scope/dist/index.d.mts +0 -32
- package/node_modules/@radix-ui/react-focus-scope/dist/index.d.ts +0 -32
- package/node_modules/@radix-ui/react-focus-scope/dist/index.js +0 -246
- package/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs +0 -214
- package/node_modules/@radix-ui/react-focus-scope/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-focus-scope/package.json +0 -57
- package/node_modules/@radix-ui/react-id/README.md +0 -13
- package/node_modules/@radix-ui/react-id/dist/index.d.mts +0 -3
- package/node_modules/@radix-ui/react-id/dist/index.d.ts +0 -3
- package/node_modules/@radix-ui/react-id/dist/index.js +0 -49
- package/node_modules/@radix-ui/react-id/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-id/dist/index.mjs +0 -16
- package/node_modules/@radix-ui/react-id/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-id/package.json +0 -50
- package/node_modules/@radix-ui/react-popover/README.md +0 -13
- package/node_modules/@radix-ui/react-popover/dist/index.d.mts +0 -95
- package/node_modules/@radix-ui/react-popover/dist/index.d.ts +0 -95
- package/node_modules/@radix-ui/react-popover/dist/index.js +0 -350
- package/node_modules/@radix-ui/react-popover/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-popover/dist/index.mjs +0 -318
- package/node_modules/@radix-ui/react-popover/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-popover/package.json +0 -69
- package/node_modules/@radix-ui/react-popper/README.md +0 -13
- package/node_modules/@radix-ui/react-popper/dist/index.d.mts +0 -56
- package/node_modules/@radix-ui/react-popper/dist/index.d.ts +0 -56
- package/node_modules/@radix-ui/react-popper/dist/index.js +0 -325
- package/node_modules/@radix-ui/react-popper/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-popper/dist/index.mjs +0 -303
- package/node_modules/@radix-ui/react-popper/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-popper/package.json +0 -64
- package/node_modules/@radix-ui/react-portal/README.md +0 -13
- package/node_modules/@radix-ui/react-portal/dist/index.d.mts +0 -14
- package/node_modules/@radix-ui/react-portal/dist/index.d.ts +0 -14
- package/node_modules/@radix-ui/react-portal/dist/index.js +0 -55
- package/node_modules/@radix-ui/react-portal/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-portal/dist/index.mjs +0 -23
- package/node_modules/@radix-ui/react-portal/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-portal/package.json +0 -56
- package/node_modules/@radix-ui/react-presence/README.md +0 -13
- package/node_modules/@radix-ui/react-presence/dist/index.d.mts +0 -11
- package/node_modules/@radix-ui/react-presence/dist/index.d.ts +0 -11
- package/node_modules/@radix-ui/react-presence/dist/index.js +0 -158
- package/node_modules/@radix-ui/react-presence/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-presence/dist/index.mjs +0 -126
- package/node_modules/@radix-ui/react-presence/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-presence/package.json +0 -56
- package/node_modules/@radix-ui/react-primitive/README.md +0 -13
- package/node_modules/@radix-ui/react-primitive/dist/index.d.mts +0 -52
- package/node_modules/@radix-ui/react-primitive/dist/index.d.ts +0 -52
- package/node_modules/@radix-ui/react-primitive/dist/index.js +0 -78
- package/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-primitive/dist/index.mjs +0 -45
- package/node_modules/@radix-ui/react-primitive/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-primitive/package.json +0 -58
- package/node_modules/@radix-ui/react-roving-focus/README.md +0 -13
- package/node_modules/@radix-ui/react-roving-focus/dist/index.d.mts +0 -55
- package/node_modules/@radix-ui/react-roving-focus/dist/index.d.ts +0 -55
- package/node_modules/@radix-ui/react-roving-focus/dist/index.js +0 -260
- package/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs +0 -228
- package/node_modules/@radix-ui/react-roving-focus/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-roving-focus/package.json +0 -63
- package/node_modules/@radix-ui/react-select/README.md +0 -13
- package/node_modules/@radix-ui/react-select/dist/index.d.mts +0 -144
- package/node_modules/@radix-ui/react-select/dist/index.d.ts +0 -144
- package/node_modules/@radix-ui/react-select/dist/index.js +0 -1182
- package/node_modules/@radix-ui/react-select/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-select/dist/index.mjs +0 -1150
- package/node_modules/@radix-ui/react-select/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-select/package.json +0 -75
- package/node_modules/@radix-ui/react-slot/README.md +0 -13
- package/node_modules/@radix-ui/react-slot/dist/index.d.mts +0 -13
- package/node_modules/@radix-ui/react-slot/dist/index.d.ts +0 -13
- package/node_modules/@radix-ui/react-slot/dist/index.js +0 -118
- package/node_modules/@radix-ui/react-slot/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-slot/dist/index.mjs +0 -85
- package/node_modules/@radix-ui/react-slot/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-slot/package.json +0 -50
- package/node_modules/@radix-ui/react-tabs/README.md +0 -13
- package/node_modules/@radix-ui/react-tabs/dist/index.d.mts +0 -66
- package/node_modules/@radix-ui/react-tabs/dist/index.d.ts +0 -66
- package/node_modules/@radix-ui/react-tabs/dist/index.js +0 -231
- package/node_modules/@radix-ui/react-tabs/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-tabs/dist/index.mjs +0 -199
- package/node_modules/@radix-ui/react-tabs/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-tabs/package.json +0 -62
- package/node_modules/@radix-ui/react-toast/README.md +0 -13
- package/node_modules/@radix-ui/react-toast/dist/index.d.mts +0 -130
- package/node_modules/@radix-ui/react-toast/dist/index.d.ts +0 -130
- package/node_modules/@radix-ui/react-toast/dist/index.js +0 -681
- package/node_modules/@radix-ui/react-toast/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-toast/dist/index.mjs +0 -649
- package/node_modules/@radix-ui/react-toast/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-toast/package.json +0 -66
- package/node_modules/@radix-ui/react-use-callback-ref/README.md +0 -13
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.mts +0 -7
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.d.ts +0 -7
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +0 -46
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs +0 -13
- package/node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-use-callback-ref/package.json +0 -47
- package/node_modules/@radix-ui/react-use-controllable-state/README.md +0 -13
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.mts +0 -10
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.d.ts +0 -10
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -80
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs +0 -47
- package/node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-use-controllable-state/package.json +0 -50
- package/node_modules/@radix-ui/react-use-escape-keydown/README.md +0 -13
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.mts +0 -6
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.d.ts +0 -6
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +0 -52
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs +0 -19
- package/node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-use-escape-keydown/package.json +0 -50
- package/node_modules/@radix-ui/react-use-layout-effect/README.md +0 -13
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.mts +0 -12
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.d.ts +0 -12
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -41
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs +0 -8
- package/node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-use-layout-effect/package.json +0 -47
- package/node_modules/@radix-ui/react-use-previous/README.md +0 -13
- package/node_modules/@radix-ui/react-use-previous/dist/index.d.mts +0 -3
- package/node_modules/@radix-ui/react-use-previous/dist/index.d.ts +0 -3
- package/node_modules/@radix-ui/react-use-previous/dist/index.js +0 -49
- package/node_modules/@radix-ui/react-use-previous/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-use-previous/dist/index.mjs +0 -16
- package/node_modules/@radix-ui/react-use-previous/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-use-previous/package.json +0 -47
- package/node_modules/@radix-ui/react-use-rect/README.md +0 -13
- package/node_modules/@radix-ui/react-use-rect/dist/index.d.mts +0 -9
- package/node_modules/@radix-ui/react-use-rect/dist/index.d.ts +0 -9
- package/node_modules/@radix-ui/react-use-rect/dist/index.js +0 -54
- package/node_modules/@radix-ui/react-use-rect/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-use-rect/dist/index.mjs +0 -21
- package/node_modules/@radix-ui/react-use-rect/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-use-rect/package.json +0 -50
- package/node_modules/@radix-ui/react-use-size/README.md +0 -13
- package/node_modules/@radix-ui/react-use-size/dist/index.d.mts +0 -6
- package/node_modules/@radix-ui/react-use-size/dist/index.d.ts +0 -6
- package/node_modules/@radix-ui/react-use-size/dist/index.js +0 -74
- package/node_modules/@radix-ui/react-use-size/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-use-size/dist/index.mjs +0 -41
- package/node_modules/@radix-ui/react-use-size/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-use-size/package.json +0 -53
- package/node_modules/@radix-ui/react-visually-hidden/README.md +0 -13
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.mts +0 -10
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.d.ts +0 -10
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.js +0 -70
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs +0 -37
- package/node_modules/@radix-ui/react-visually-hidden/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/react-visually-hidden/package.json +0 -55
- package/node_modules/@radix-ui/rect/README.md +0 -13
- package/node_modules/@radix-ui/rect/dist/index.d.mts +0 -16
- package/node_modules/@radix-ui/rect/dist/index.d.ts +0 -16
- package/node_modules/@radix-ui/rect/dist/index.js +0 -73
- package/node_modules/@radix-ui/rect/dist/index.js.map +0 -7
- package/node_modules/@radix-ui/rect/dist/index.mjs +0 -50
- package/node_modules/@radix-ui/rect/dist/index.mjs.map +0 -7
- package/node_modules/@radix-ui/rect/package.json +0 -38
- package/node_modules/@remix-run/react/CHANGELOG.md +0 -964
- package/node_modules/@remix-run/react/LICENSE.md +0 -22
- package/node_modules/@remix-run/react/README.md +0 -13
- package/node_modules/@remix-run/react/dist/_virtual/_rollupPluginBabelHelpers.js +0 -30
- package/node_modules/@remix-run/react/dist/browser.d.ts +0 -37
- package/node_modules/@remix-run/react/dist/browser.js +0 -268
- package/node_modules/@remix-run/react/dist/components.d.ts +0 -137
- package/node_modules/@remix-run/react/dist/components.js +0 -911
- package/node_modules/@remix-run/react/dist/data.d.ts +0 -15
- package/node_modules/@remix-run/react/dist/data.js +0 -280
- package/node_modules/@remix-run/react/dist/entry.d.ts +0 -51
- package/node_modules/@remix-run/react/dist/errorBoundaries.d.ts +0 -36
- package/node_modules/@remix-run/react/dist/errorBoundaries.js +0 -186
- package/node_modules/@remix-run/react/dist/errors.d.ts +0 -2
- package/node_modules/@remix-run/react/dist/errors.js +0 -53
- package/node_modules/@remix-run/react/dist/esm/_virtual/_rollupPluginBabelHelpers.js +0 -26
- package/node_modules/@remix-run/react/dist/esm/browser.js +0 -308
- package/node_modules/@remix-run/react/dist/esm/components.js +0 -878
- package/node_modules/@remix-run/react/dist/esm/data.js +0 -267
- package/node_modules/@remix-run/react/dist/esm/errorBoundaries.js +0 -160
- package/node_modules/@remix-run/react/dist/esm/errors.js +0 -49
- package/node_modules/@remix-run/react/dist/esm/fallback.js +0 -35
- package/node_modules/@remix-run/react/dist/esm/fog-of-war.js +0 -226
- package/node_modules/@remix-run/react/dist/esm/index.js +0 -17
- package/node_modules/@remix-run/react/dist/esm/invariant.js +0 -17
- package/node_modules/@remix-run/react/dist/esm/links.js +0 -258
- package/node_modules/@remix-run/react/dist/esm/markup.js +0 -34
- package/node_modules/@remix-run/react/dist/esm/routeModules.js +0 -89
- package/node_modules/@remix-run/react/dist/esm/routes.js +0 -411
- package/node_modules/@remix-run/react/dist/esm/scroll-restoration.js +0 -84
- package/node_modules/@remix-run/react/dist/esm/server.js +0 -93
- package/node_modules/@remix-run/react/dist/esm/single-fetch.js +0 -309
- package/node_modules/@remix-run/react/dist/fallback.d.ts +0 -2
- package/node_modules/@remix-run/react/dist/fallback.js +0 -59
- package/node_modules/@remix-run/react/dist/fog-of-war.d.ts +0 -37
- package/node_modules/@remix-run/react/dist/fog-of-war.js +0 -254
- package/node_modules/@remix-run/react/dist/index.d.ts +0 -16
- package/node_modules/@remix-run/react/dist/index.js +0 -227
- package/node_modules/@remix-run/react/dist/invariant.d.ts +0 -2
- package/node_modules/@remix-run/react/dist/invariant.js +0 -19
- package/node_modules/@remix-run/react/dist/links.d.ts +0 -128
- package/node_modules/@remix-run/react/dist/links.js +0 -268
- package/node_modules/@remix-run/react/dist/markup.d.ts +0 -5
- package/node_modules/@remix-run/react/dist/markup.js +0 -39
- package/node_modules/@remix-run/react/dist/routeModules.d.ts +0 -132
- package/node_modules/@remix-run/react/dist/routeModules.js +0 -111
- package/node_modules/@remix-run/react/dist/routes.d.ts +0 -32
- package/node_modules/@remix-run/react/dist/routes.js +0 -438
- package/node_modules/@remix-run/react/dist/scroll-restoration.d.ts +0 -12
- package/node_modules/@remix-run/react/dist/scroll-restoration.js +0 -108
- package/node_modules/@remix-run/react/dist/server.d.ts +0 -14
- package/node_modules/@remix-run/react/dist/server.js +0 -117
- package/node_modules/@remix-run/react/dist/single-fetch.d.ts +0 -34
- package/node_modules/@remix-run/react/dist/single-fetch.js +0 -339
- package/node_modules/@remix-run/react/dist/warnings.d.ts +0 -1
- package/node_modules/@remix-run/react/future/single-fetch.d.ts +0 -73
- package/node_modules/@remix-run/react/package.json +0 -59
- package/node_modules/@remix-run/router/CHANGELOG.md +0 -747
- package/node_modules/@remix-run/router/LICENSE.md +0 -23
- package/node_modules/@remix-run/router/README.md +0 -135
- package/node_modules/@remix-run/router/dist/history.d.ts +0 -250
- package/node_modules/@remix-run/router/dist/index.d.ts +0 -9
- package/node_modules/@remix-run/router/dist/router.cjs.js +0 -5407
- package/node_modules/@remix-run/router/dist/router.cjs.js.map +0 -1
- package/node_modules/@remix-run/router/dist/router.d.ts +0 -523
- package/node_modules/@remix-run/router/dist/router.js +0 -4856
- package/node_modules/@remix-run/router/dist/router.js.map +0 -1
- package/node_modules/@remix-run/router/dist/router.umd.js +0 -5413
- package/node_modules/@remix-run/router/dist/router.umd.js.map +0 -1
- package/node_modules/@remix-run/router/dist/router.umd.min.js +0 -12
- package/node_modules/@remix-run/router/dist/router.umd.min.js.map +0 -1
- package/node_modules/@remix-run/router/dist/utils.d.ts +0 -528
- package/node_modules/@remix-run/router/history.ts +0 -746
- package/node_modules/@remix-run/router/index.ts +0 -101
- package/node_modules/@remix-run/router/package.json +0 -33
- package/node_modules/@remix-run/router/router.ts +0 -5760
- package/node_modules/@remix-run/router/utils.ts +0 -1673
- package/node_modules/@remix-run/server-runtime/CHANGELOG.md +0 -1023
- package/node_modules/@remix-run/server-runtime/LICENSE.md +0 -22
- package/node_modules/@remix-run/server-runtime/README.md +0 -26
- package/node_modules/@remix-run/server-runtime/dist/build.d.ts +0 -39
- package/node_modules/@remix-run/server-runtime/dist/cookies.d.ts +0 -69
- package/node_modules/@remix-run/server-runtime/dist/cookies.js +0 -173
- package/node_modules/@remix-run/server-runtime/dist/crypto.d.ts +0 -2
- package/node_modules/@remix-run/server-runtime/dist/data.d.ts +0 -33
- package/node_modules/@remix-run/server-runtime/dist/data.js +0 -138
- package/node_modules/@remix-run/server-runtime/dist/deprecations.d.ts +0 -1
- package/node_modules/@remix-run/server-runtime/dist/deprecations.js +0 -19
- package/node_modules/@remix-run/server-runtime/dist/dev.d.ts +0 -10
- package/node_modules/@remix-run/server-runtime/dist/dev.js +0 -53
- package/node_modules/@remix-run/server-runtime/dist/entry.d.ts +0 -43
- package/node_modules/@remix-run/server-runtime/dist/entry.js +0 -22
- package/node_modules/@remix-run/server-runtime/dist/errors.d.ts +0 -51
- package/node_modules/@remix-run/server-runtime/dist/errors.js +0 -122
- package/node_modules/@remix-run/server-runtime/dist/esm/cookies.js +0 -168
- package/node_modules/@remix-run/server-runtime/dist/esm/data.js +0 -133
- package/node_modules/@remix-run/server-runtime/dist/esm/deprecations.js +0 -15
- package/node_modules/@remix-run/server-runtime/dist/esm/dev.js +0 -46
- package/node_modules/@remix-run/server-runtime/dist/esm/entry.js +0 -18
- package/node_modules/@remix-run/server-runtime/dist/esm/errors.js +0 -115
- package/node_modules/@remix-run/server-runtime/dist/esm/formData.js +0 -55
- package/node_modules/@remix-run/server-runtime/dist/esm/headers.js +0 -90
- package/node_modules/@remix-run/server-runtime/dist/esm/index.js +0 -21
- package/node_modules/@remix-run/server-runtime/dist/esm/invariant.js +0 -18
- package/node_modules/@remix-run/server-runtime/dist/esm/markup.js +0 -29
- package/node_modules/@remix-run/server-runtime/dist/esm/mode.js +0 -24
- package/node_modules/@remix-run/server-runtime/dist/esm/responses.js +0 -123
- package/node_modules/@remix-run/server-runtime/dist/esm/routeMatching.js +0 -23
- package/node_modules/@remix-run/server-runtime/dist/esm/routes.js +0 -81
- package/node_modules/@remix-run/server-runtime/dist/esm/server.js +0 -524
- package/node_modules/@remix-run/server-runtime/dist/esm/serverHandoff.js +0 -20
- package/node_modules/@remix-run/server-runtime/dist/esm/sessions/cookieStorage.js +0 -51
- package/node_modules/@remix-run/server-runtime/dist/esm/sessions/memoryStorage.js +0 -61
- package/node_modules/@remix-run/server-runtime/dist/esm/sessions.js +0 -145
- package/node_modules/@remix-run/server-runtime/dist/esm/single-fetch.js +0 -450
- package/node_modules/@remix-run/server-runtime/dist/esm/upload/errors.js +0 -19
- package/node_modules/@remix-run/server-runtime/dist/esm/upload/memoryUploadHandler.js +0 -50
- package/node_modules/@remix-run/server-runtime/dist/esm/warnings.js +0 -19
- package/node_modules/@remix-run/server-runtime/dist/formData.d.ts +0 -15
- package/node_modules/@remix-run/server-runtime/dist/formData.js +0 -60
- package/node_modules/@remix-run/server-runtime/dist/headers.d.ts +0 -3
- package/node_modules/@remix-run/server-runtime/dist/headers.js +0 -94
- package/node_modules/@remix-run/server-runtime/dist/index.d.ts +0 -14
- package/node_modules/@remix-run/server-runtime/dist/index.js +0 -50
- package/node_modules/@remix-run/server-runtime/dist/interface.d.ts +0 -6
- package/node_modules/@remix-run/server-runtime/dist/invariant.d.ts +0 -2
- package/node_modules/@remix-run/server-runtime/dist/invariant.js +0 -22
- package/node_modules/@remix-run/server-runtime/dist/jsonify.d.ts +0 -33
- package/node_modules/@remix-run/server-runtime/dist/links.d.ts +0 -104
- package/node_modules/@remix-run/server-runtime/dist/markup.d.ts +0 -1
- package/node_modules/@remix-run/server-runtime/dist/markup.js +0 -33
- package/node_modules/@remix-run/server-runtime/dist/mode.d.ts +0 -9
- package/node_modules/@remix-run/server-runtime/dist/mode.js +0 -29
- package/node_modules/@remix-run/server-runtime/dist/reexport.d.ts +0 -14
- package/node_modules/@remix-run/server-runtime/dist/responses.d.ts +0 -47
- package/node_modules/@remix-run/server-runtime/dist/responses.js +0 -135
- package/node_modules/@remix-run/server-runtime/dist/routeMatching.d.ts +0 -8
- package/node_modules/@remix-run/server-runtime/dist/routeMatching.js +0 -27
- package/node_modules/@remix-run/server-runtime/dist/routeModules.d.ts +0 -214
- package/node_modules/@remix-run/server-runtime/dist/routes.d.ts +0 -31
- package/node_modules/@remix-run/server-runtime/dist/routes.js +0 -86
- package/node_modules/@remix-run/server-runtime/dist/serialize.d.ts +0 -25
- package/node_modules/@remix-run/server-runtime/dist/server.d.ts +0 -5
- package/node_modules/@remix-run/server-runtime/dist/server.js +0 -528
- package/node_modules/@remix-run/server-runtime/dist/serverHandoff.d.ts +0 -12
- package/node_modules/@remix-run/server-runtime/dist/serverHandoff.js +0 -24
- package/node_modules/@remix-run/server-runtime/dist/sessions/cookieStorage.d.ts +0 -23
- package/node_modules/@remix-run/server-runtime/dist/sessions/cookieStorage.js +0 -55
- package/node_modules/@remix-run/server-runtime/dist/sessions/memoryStorage.d.ts +0 -20
- package/node_modules/@remix-run/server-runtime/dist/sessions/memoryStorage.js +0 -65
- package/node_modules/@remix-run/server-runtime/dist/sessions.d.ts +0 -143
- package/node_modules/@remix-run/server-runtime/dist/sessions.js +0 -152
- package/node_modules/@remix-run/server-runtime/dist/single-fetch.d.ts +0 -90
- package/node_modules/@remix-run/server-runtime/dist/single-fetch.js +0 -468
- package/node_modules/@remix-run/server-runtime/dist/typecheck.d.ts +0 -4
- package/node_modules/@remix-run/server-runtime/dist/upload/errors.d.ts +0 -5
- package/node_modules/@remix-run/server-runtime/dist/upload/errors.js +0 -23
- package/node_modules/@remix-run/server-runtime/dist/upload/memoryUploadHandler.d.ts +0 -21
- package/node_modules/@remix-run/server-runtime/dist/upload/memoryUploadHandler.js +0 -54
- package/node_modules/@remix-run/server-runtime/dist/warnings.d.ts +0 -1
- package/node_modules/@remix-run/server-runtime/dist/warnings.js +0 -23
- package/node_modules/@remix-run/server-runtime/package.json +0 -51
- package/node_modules/@types/cookie/LICENSE +0 -21
- package/node_modules/@types/cookie/README.md +0 -15
- package/node_modules/@types/cookie/index.d.ts +0 -154
- package/node_modules/@types/cookie/package.json +0 -30
- package/node_modules/@web3-storage/multipart-parser/README.md +0 -37
- package/node_modules/@web3-storage/multipart-parser/cjs/src/index.js +0 -218
- package/node_modules/@web3-storage/multipart-parser/cjs/src/search.js +0 -269
- package/node_modules/@web3-storage/multipart-parser/cjs/src/utils.js +0 -37
- package/node_modules/@web3-storage/multipart-parser/esm/package.json +0 -4
- package/node_modules/@web3-storage/multipart-parser/esm/src/index.js +0 -219
- package/node_modules/@web3-storage/multipart-parser/esm/src/search.js +0 -269
- package/node_modules/@web3-storage/multipart-parser/esm/src/utils.js +0 -28
- package/node_modules/@web3-storage/multipart-parser/index.js +0 -1
- package/node_modules/@web3-storage/multipart-parser/package.json +0 -44
- package/node_modules/@web3-storage/multipart-parser/src/index.js +0 -257
- package/node_modules/@web3-storage/multipart-parser/src/search.js +0 -329
- package/node_modules/@web3-storage/multipart-parser/src/utils.js +0 -43
- package/node_modules/@web3-storage/multipart-parser/test/test.spec.js +0 -65
- package/node_modules/@web3-storage/multipart-parser/tsconfig.json +0 -41
- package/node_modules/@web3-storage/multipart-parser/types/index.d.ts +0 -15
- package/node_modules/@web3-storage/multipart-parser/types/index.d.ts.map +0 -1
- package/node_modules/@web3-storage/multipart-parser/types/search.d.ts +0 -36
- package/node_modules/@web3-storage/multipart-parser/types/search.d.ts.map +0 -1
- package/node_modules/@web3-storage/multipart-parser/types/utils.d.ts +0 -18
- package/node_modules/@web3-storage/multipart-parser/types/utils.d.ts.map +0 -1
- package/node_modules/aria-hidden/LICENSE +0 -21
- package/node_modules/aria-hidden/README.md +0 -99
- package/node_modules/aria-hidden/dist/es2015/index.d.ts +0 -29
- package/node_modules/aria-hidden/dist/es2015/index.js +0 -166
- package/node_modules/aria-hidden/dist/es2019/index.d.ts +0 -29
- package/node_modules/aria-hidden/dist/es2019/index.js +0 -155
- package/node_modules/aria-hidden/dist/es5/index.d.ts +0 -29
- package/node_modules/aria-hidden/dist/es5/index.js +0 -173
- package/node_modules/aria-hidden/package.json +0 -70
- package/node_modules/assertion-error/LICENSE +0 -21
- package/node_modules/assertion-error/README.md +0 -68
- package/node_modules/assertion-error/index.d.ts +0 -27
- package/node_modules/assertion-error/index.js +0 -60
- package/node_modules/assertion-error/package.json +0 -32
- package/node_modules/chai/CODEOWNERS +0 -1
- package/node_modules/chai/CODE_OF_CONDUCT.md +0 -58
- package/node_modules/chai/CONTRIBUTING.md +0 -218
- package/node_modules/chai/History.md +0 -1059
- package/node_modules/chai/LICENSE +0 -21
- package/node_modules/chai/README.md +0 -154
- package/node_modules/chai/ReleaseNotes.md +0 -737
- package/node_modules/chai/chai.js +0 -4018
- package/node_modules/chai/eslint.config.js +0 -12
- package/node_modules/chai/index.js +0 -1
- package/node_modules/chai/lib/chai/assertion.js +0 -164
- package/node_modules/chai/lib/chai/config.js +0 -114
- package/node_modules/chai/lib/chai/core/assertions.js +0 -3933
- package/node_modules/chai/lib/chai/interface/assert.js +0 -3012
- package/node_modules/chai/lib/chai/interface/expect.js +0 -55
- package/node_modules/chai/lib/chai/interface/should.js +0 -221
- package/node_modules/chai/lib/chai/utils/addChainableMethod.js +0 -147
- package/node_modules/chai/lib/chai/utils/addLengthGuard.js +0 -60
- package/node_modules/chai/lib/chai/utils/addMethod.js +0 -67
- package/node_modules/chai/lib/chai/utils/addProperty.js +0 -71
- package/node_modules/chai/lib/chai/utils/compareByInspect.js +0 -26
- package/node_modules/chai/lib/chai/utils/expectTypes.js +0 -50
- package/node_modules/chai/lib/chai/utils/flag.js +0 -33
- package/node_modules/chai/lib/chai/utils/getActual.js +0 -20
- package/node_modules/chai/lib/chai/utils/getEnumerableProperties.js +0 -25
- package/node_modules/chai/lib/chai/utils/getMessage.js +0 -46
- package/node_modules/chai/lib/chai/utils/getOperator.js +0 -58
- package/node_modules/chai/lib/chai/utils/getOwnEnumerableProperties.js +0 -24
- package/node_modules/chai/lib/chai/utils/getOwnEnumerablePropertySymbols.js +0 -26
- package/node_modules/chai/lib/chai/utils/getProperties.js +0 -38
- package/node_modules/chai/lib/chai/utils/index.js +0 -107
- package/node_modules/chai/lib/chai/utils/inspect.js +0 -31
- package/node_modules/chai/lib/chai/utils/isNaN.js +0 -26
- package/node_modules/chai/lib/chai/utils/isProxyEnabled.js +0 -24
- package/node_modules/chai/lib/chai/utils/objDisplay.js +0 -46
- package/node_modules/chai/lib/chai/utils/overwriteChainableMethod.js +0 -68
- package/node_modules/chai/lib/chai/utils/overwriteMethod.js +0 -91
- package/node_modules/chai/lib/chai/utils/overwriteProperty.js +0 -90
- package/node_modules/chai/lib/chai/utils/proxify.js +0 -147
- package/node_modules/chai/lib/chai/utils/test.js +0 -24
- package/node_modules/chai/lib/chai/utils/transferFlags.js +0 -43
- package/node_modules/chai/lib/chai/utils/type-detect.js +0 -20
- package/node_modules/chai/lib/chai.js +0 -65
- package/node_modules/chai/package.json +0 -61
- package/node_modules/chai/register-assert.cjs +0 -3
- package/node_modules/chai/register-assert.js +0 -3
- package/node_modules/chai/register-expect.cjs +0 -3
- package/node_modules/chai/register-expect.js +0 -3
- package/node_modules/chai/register-should.cjs +0 -3
- package/node_modules/chai/register-should.js +0 -3
- package/node_modules/chai/web-test-runner.config.js +0 -20
- package/node_modules/chai-dom/.eslintrc +0 -22
- package/node_modules/chai-dom/.travis.yml +0 -15
- package/node_modules/chai-dom/LICENSE +0 -24
- package/node_modules/chai-dom/README.md +0 -267
- package/node_modules/chai-dom/bower.json +0 -31
- package/node_modules/chai-dom/chai-dom.js +0 -429
- package/node_modules/chai-dom/package.json +0 -44
- package/node_modules/chai-dom/test/.eslintrc +0 -12
- package/node_modules/chai-dom/test/index.html +0 -27
- package/node_modules/chai-dom/test/tests.js +0 -1124
- package/node_modules/chai-dom/testem.js +0 -31
- package/node_modules/check-error/LICENSE +0 -19
- package/node_modules/check-error/README.md +0 -144
- package/node_modules/check-error/index.js +0 -135
- package/node_modules/check-error/package.json +0 -66
- package/node_modules/clsx/clsx.d.mts +0 -6
- package/node_modules/clsx/clsx.d.ts +0 -10
- package/node_modules/clsx/dist/clsx.js +0 -1
- package/node_modules/clsx/dist/clsx.min.js +0 -1
- package/node_modules/clsx/dist/clsx.mjs +0 -1
- package/node_modules/clsx/dist/lite.js +0 -1
- package/node_modules/clsx/dist/lite.mjs +0 -1
- package/node_modules/clsx/license +0 -9
- package/node_modules/clsx/package.json +0 -60
- package/node_modules/clsx/readme.md +0 -154
- package/node_modules/cookie/HISTORY.md +0 -147
- package/node_modules/cookie/LICENSE +0 -24
- package/node_modules/cookie/README.md +0 -317
- package/node_modules/cookie/SECURITY.md +0 -25
- package/node_modules/cookie/index.js +0 -274
- package/node_modules/cookie/package.json +0 -44
- package/node_modules/deep-eql/LICENSE +0 -19
- package/node_modules/deep-eql/README.md +0 -93
- package/node_modules/deep-eql/index.js +0 -513
- package/node_modules/deep-eql/package.json +0 -73
- package/node_modules/detect-node-es/LICENSE +0 -21
- package/node_modules/detect-node-es/Readme.md +0 -39
- package/node_modules/detect-node-es/es5/browser.js +0 -2
- package/node_modules/detect-node-es/es5/node.d.ts +0 -4
- package/node_modules/detect-node-es/es5/node.js +0 -2
- package/node_modules/detect-node-es/esm/browser.js +0 -2
- package/node_modules/detect-node-es/esm/node.js +0 -2
- package/node_modules/detect-node-es/package.json +0 -29
- package/node_modules/framer-motion/LICENSE.md +0 -21
- package/node_modules/framer-motion/README.md +0 -105
- package/node_modules/framer-motion/dist/cjs/dom-entry-GDJJhIpT.js +0 -5959
- package/node_modules/framer-motion/dist/cjs/dom-entry.js +0 -53
- package/node_modules/framer-motion/dist/cjs/index.js +0 -6566
- package/node_modules/framer-motion/dist/dom-entry.d.ts +0 -964
- package/node_modules/framer-motion/dist/dom.js +0 -1
- package/node_modules/framer-motion/dist/es/animation/GroupPlaybackControls.mjs +0 -80
- package/node_modules/framer-motion/dist/es/animation/animate.mjs +0 -83
- package/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.mjs +0 -295
- package/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.mjs +0 -84
- package/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.mjs +0 -382
- package/node_modules/framer-motion/dist/es/animation/animators/drivers/driver-frameloop.mjs +0 -17
- package/node_modules/framer-motion/dist/es/animation/animators/utils/can-animate.mjs +0 -40
- package/node_modules/framer-motion/dist/es/animation/animators/waapi/easing.mjs +0 -40
- package/node_modules/framer-motion/dist/es/animation/animators/waapi/index.mjs +0 -23
- package/node_modules/framer-motion/dist/es/animation/animators/waapi/utils/get-final-keyframe.mjs +0 -12
- package/node_modules/framer-motion/dist/es/animation/generators/inertia.mjs +0 -87
- package/node_modules/framer-motion/dist/es/animation/generators/keyframes.mjs +0 -51
- package/node_modules/framer-motion/dist/es/animation/generators/spring/find.mjs +0 -89
- package/node_modules/framer-motion/dist/es/animation/generators/spring/index.mjs +0 -131
- package/node_modules/framer-motion/dist/es/animation/generators/utils/calc-duration.mjs +0 -17
- package/node_modules/framer-motion/dist/es/animation/generators/utils/velocity.mjs +0 -9
- package/node_modules/framer-motion/dist/es/animation/hooks/animation-controls.mjs +0 -80
- package/node_modules/framer-motion/dist/es/animation/hooks/use-animate.mjs +0 -17
- package/node_modules/framer-motion/dist/es/animation/hooks/use-animated-state.mjs +0 -62
- package/node_modules/framer-motion/dist/es/animation/hooks/use-animation.mjs +0 -41
- package/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.mjs +0 -112
- package/node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs +0 -11
- package/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.mjs +0 -80
- package/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.mjs +0 -66
- package/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.mjs +0 -29
- package/node_modules/framer-motion/dist/es/animation/optimized-appear/data-id.mjs +0 -6
- package/node_modules/framer-motion/dist/es/animation/optimized-appear/get-appear-id.mjs +0 -7
- package/node_modules/framer-motion/dist/es/animation/optimized-appear/handoff.mjs +0 -83
- package/node_modules/framer-motion/dist/es/animation/optimized-appear/start.mjs +0 -80
- package/node_modules/framer-motion/dist/es/animation/optimized-appear/store-id.mjs +0 -3
- package/node_modules/framer-motion/dist/es/animation/optimized-appear/store.mjs +0 -3
- package/node_modules/framer-motion/dist/es/animation/sequence/create.mjs +0 -230
- package/node_modules/framer-motion/dist/es/animation/sequence/utils/calc-time.mjs +0 -21
- package/node_modules/framer-motion/dist/es/animation/sequence/utils/edit.mjs +0 -31
- package/node_modules/framer-motion/dist/es/animation/sequence/utils/sort.mjs +0 -14
- package/node_modules/framer-motion/dist/es/animation/utils/create-visual-element.mjs +0 -32
- package/node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs +0 -40
- package/node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs +0 -30
- package/node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs +0 -7
- package/node_modules/framer-motion/dist/es/animation/utils/is-dom-keyframes.mjs +0 -5
- package/node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs +0 -5
- package/node_modules/framer-motion/dist/es/animation/utils/is-none.mjs +0 -15
- package/node_modules/framer-motion/dist/es/animation/utils/stagger.mjs +0 -26
- package/node_modules/framer-motion/dist/es/animation/utils/transitions.mjs +0 -15
- package/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs +0 -76
- package/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs +0 -57
- package/node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs +0 -169
- package/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs +0 -66
- package/node_modules/framer-motion/dist/es/components/AnimateSharedLayout.mjs +0 -15
- package/node_modules/framer-motion/dist/es/components/LayoutGroup/index.mjs +0 -31
- package/node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs +0 -67
- package/node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs +0 -43
- package/node_modules/framer-motion/dist/es/components/Reorder/Group.mjs +0 -52
- package/node_modules/framer-motion/dist/es/components/Reorder/Item.mjs +0 -33
- package/node_modules/framer-motion/dist/es/components/Reorder/index.mjs +0 -9
- package/node_modules/framer-motion/dist/es/components/Reorder/utils/check-reorder.mjs +0 -24
- package/node_modules/framer-motion/dist/es/context/DeprecatedLayoutGroupContext.mjs +0 -10
- package/node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs +0 -5
- package/node_modules/framer-motion/dist/es/context/LazyContext.mjs +0 -5
- package/node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs +0 -12
- package/node_modules/framer-motion/dist/es/context/MotionContext/create.mjs +0 -13
- package/node_modules/framer-motion/dist/es/context/MotionContext/index.mjs +0 -5
- package/node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs +0 -17
- package/node_modules/framer-motion/dist/es/context/PresenceContext.mjs +0 -8
- package/node_modules/framer-motion/dist/es/context/ReorderContext.mjs +0 -5
- package/node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs +0 -8
- package/node_modules/framer-motion/dist/es/debug/record.mjs +0 -7
- package/node_modules/framer-motion/dist/es/dom-entry.mjs +0 -25
- package/node_modules/framer-motion/dist/es/easing/anticipate.mjs +0 -5
- package/node_modules/framer-motion/dist/es/easing/back.mjs +0 -9
- package/node_modules/framer-motion/dist/es/easing/circ.mjs +0 -8
- package/node_modules/framer-motion/dist/es/easing/cubic-bezier.mjs +0 -51
- package/node_modules/framer-motion/dist/es/easing/ease.mjs +0 -7
- package/node_modules/framer-motion/dist/es/easing/modifiers/mirror.mjs +0 -5
- package/node_modules/framer-motion/dist/es/easing/modifiers/reverse.mjs +0 -5
- package/node_modules/framer-motion/dist/es/easing/utils/create-generator-easing.mjs +0 -18
- package/node_modules/framer-motion/dist/es/easing/utils/get-easing-for-segment.mjs +0 -8
- package/node_modules/framer-motion/dist/es/easing/utils/is-bezier-definition.mjs +0 -3
- package/node_modules/framer-motion/dist/es/easing/utils/is-easing-array.mjs +0 -5
- package/node_modules/framer-motion/dist/es/easing/utils/map.mjs +0 -37
- package/node_modules/framer-motion/dist/es/events/add-dom-event.mjs +0 -6
- package/node_modules/framer-motion/dist/es/events/add-pointer-event.mjs +0 -8
- package/node_modules/framer-motion/dist/es/events/event-info.mjs +0 -15
- package/node_modules/framer-motion/dist/es/events/use-dom-event.mjs +0 -34
- package/node_modules/framer-motion/dist/es/events/utils/is-primary-pointer.mjs +0 -18
- package/node_modules/framer-motion/dist/es/frameloop/batcher.mjs +0 -65
- package/node_modules/framer-motion/dist/es/frameloop/frame.mjs +0 -6
- package/node_modules/framer-motion/dist/es/frameloop/index-legacy.mjs +0 -20
- package/node_modules/framer-motion/dist/es/frameloop/microtask.mjs +0 -5
- package/node_modules/framer-motion/dist/es/frameloop/render-step.mjs +0 -104
- package/node_modules/framer-motion/dist/es/frameloop/sync-time.mjs +0 -31
- package/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs +0 -484
- package/node_modules/framer-motion/dist/es/gestures/drag/index.mjs +0 -27
- package/node_modules/framer-motion/dist/es/gestures/drag/use-drag-controls.mjs +0 -88
- package/node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs +0 -129
- package/node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs +0 -53
- package/node_modules/framer-motion/dist/es/gestures/focus.mjs +0 -41
- package/node_modules/framer-motion/dist/es/gestures/hover.mjs +0 -33
- package/node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs +0 -156
- package/node_modules/framer-motion/dist/es/gestures/pan/index.mjs +0 -50
- package/node_modules/framer-motion/dist/es/gestures/press.mjs +0 -130
- package/node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs +0 -20
- package/node_modules/framer-motion/dist/es/index.mjs +0 -101
- package/node_modules/framer-motion/dist/es/motion/features/Feature.mjs +0 -9
- package/node_modules/framer-motion/dist/es/motion/features/animation/exit.mjs +0 -31
- package/node_modules/framer-motion/dist/es/motion/features/animation/index.mjs +0 -41
- package/node_modules/framer-motion/dist/es/motion/features/animations.mjs +0 -13
- package/node_modules/framer-motion/dist/es/motion/features/definitions.mjs +0 -28
- package/node_modules/framer-motion/dist/es/motion/features/drag.mjs +0 -17
- package/node_modules/framer-motion/dist/es/motion/features/gestures.mjs +0 -21
- package/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs +0 -133
- package/node_modules/framer-motion/dist/es/motion/features/layout.mjs +0 -11
- package/node_modules/framer-motion/dist/es/motion/features/load-features.mjs +0 -12
- package/node_modules/framer-motion/dist/es/motion/features/viewport/index.mjs +0 -72
- package/node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs +0 -49
- package/node_modules/framer-motion/dist/es/motion/index.mjs +0 -97
- package/node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs +0 -11
- package/node_modules/framer-motion/dist/es/motion/utils/is-motion-component.mjs +0 -12
- package/node_modules/framer-motion/dist/es/motion/utils/symbol.mjs +0 -3
- package/node_modules/framer-motion/dist/es/motion/utils/unwrap-motion-component.mjs +0 -17
- package/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs +0 -36
- package/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs +0 -127
- package/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs +0 -81
- package/node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs +0 -57
- package/node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs +0 -93
- package/node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs +0 -33
- package/node_modules/framer-motion/dist/es/projection/geometry/copy.mjs +0 -20
- package/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs +0 -122
- package/node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs +0 -41
- package/node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs +0 -54
- package/node_modules/framer-motion/dist/es/projection/geometry/models.mjs +0 -17
- package/node_modules/framer-motion/dist/es/projection/geometry/utils.mjs +0 -25
- package/node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs +0 -13
- package/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs +0 -27
- package/node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs +0 -1562
- package/node_modules/framer-motion/dist/es/projection/node/group.mjs +0 -24
- package/node_modules/framer-motion/dist/es/projection/node/state.mjs +0 -19
- package/node_modules/framer-motion/dist/es/projection/shared/stack.mjs +0 -112
- package/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs +0 -41
- package/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs +0 -35
- package/node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs +0 -6
- package/node_modules/framer-motion/dist/es/projection/styles/transform.mjs +0 -49
- package/node_modules/framer-motion/dist/es/projection/use-instant-layout-transition.mjs +0 -14
- package/node_modules/framer-motion/dist/es/projection/use-reset-projection.mjs +0 -14
- package/node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs +0 -5
- package/node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs +0 -26
- package/node_modules/framer-motion/dist/es/projection/utils/measure.mjs +0 -17
- package/node_modules/framer-motion/dist/es/projection-entry.mjs +0 -11
- package/node_modules/framer-motion/dist/es/render/VisualElement.mjs +0 -496
- package/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.mjs +0 -130
- package/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.mjs +0 -28
- package/node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs +0 -15
- package/node_modules/framer-motion/dist/es/render/dom/features-animation.mjs +0 -14
- package/node_modules/framer-motion/dist/es/render/dom/features-max.mjs +0 -14
- package/node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs +0 -9
- package/node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs +0 -47
- package/node_modules/framer-motion/dist/es/render/dom/motion.mjs +0 -42
- package/node_modules/framer-motion/dist/es/render/dom/resize/handle-element.mjs +0 -64
- package/node_modules/framer-motion/dist/es/render/dom/resize/handle-window.mjs +0 -30
- package/node_modules/framer-motion/dist/es/render/dom/resize/index.mjs +0 -8
- package/node_modules/framer-motion/dist/es/render/dom/scroll/index.mjs +0 -36
- package/node_modules/framer-motion/dist/es/render/dom/scroll/info.mjs +0 -56
- package/node_modules/framer-motion/dist/es/render/dom/scroll/observe.mjs +0 -18
- package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/edge.mjs +0 -45
- package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/index.mjs +0 -59
- package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/inset.mjs +0 -45
- package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/offset.mjs +0 -35
- package/node_modules/framer-motion/dist/es/render/dom/scroll/offsets/presets.mjs +0 -20
- package/node_modules/framer-motion/dist/es/render/dom/scroll/on-scroll-handler.mjs +0 -48
- package/node_modules/framer-motion/dist/es/render/dom/scroll/supports.mjs +0 -5
- package/node_modules/framer-motion/dist/es/render/dom/scroll/track.mjs +0 -84
- package/node_modules/framer-motion/dist/es/render/dom/use-render.mjs +0 -33
- package/node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs +0 -6
- package/node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs +0 -19
- package/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs +0 -42
- package/node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs +0 -59
- package/node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs +0 -13
- package/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs +0 -30
- package/node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs +0 -5
- package/node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs +0 -28
- package/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs +0 -65
- package/node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs +0 -15
- package/node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs +0 -30
- package/node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs +0 -15
- package/node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs +0 -15
- package/node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs +0 -10
- package/node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs +0 -74
- package/node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs +0 -6
- package/node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs +0 -9
- package/node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs +0 -8
- package/node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs +0 -43
- package/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.mjs +0 -59
- package/node_modules/framer-motion/dist/es/render/html/config-motion.mjs +0 -12
- package/node_modules/framer-motion/dist/es/render/html/use-props.mjs +0 -57
- package/node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs +0 -74
- package/node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs +0 -45
- package/node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs +0 -8
- package/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.mjs +0 -30
- package/node_modules/framer-motion/dist/es/render/html/utils/render.mjs +0 -9
- package/node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs +0 -20
- package/node_modules/framer-motion/dist/es/render/html/utils/transform.mjs +0 -28
- package/node_modules/framer-motion/dist/es/render/store.mjs +0 -3
- package/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.mjs +0 -47
- package/node_modules/framer-motion/dist/es/render/svg/config-motion.mjs +0 -40
- package/node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs +0 -33
- package/node_modules/framer-motion/dist/es/render/svg/use-props.mjs +0 -24
- package/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs +0 -52
- package/node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs +0 -30
- package/node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs +0 -8
- package/node_modules/framer-motion/dist/es/render/svg/utils/is-svg-tag.mjs +0 -3
- package/node_modules/framer-motion/dist/es/render/svg/utils/path.mjs +0 -32
- package/node_modules/framer-motion/dist/es/render/svg/utils/render.mjs +0 -12
- package/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs +0 -19
- package/node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs +0 -18
- package/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.mjs +0 -164
- package/node_modules/framer-motion/dist/es/render/utils/animation-state.mjs +0 -328
- package/node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs +0 -3
- package/node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs +0 -24
- package/node_modules/framer-motion/dist/es/render/utils/is-controlling-variants.mjs +0 -13
- package/node_modules/framer-motion/dist/es/render/utils/is-variant-label.mjs +0 -8
- package/node_modules/framer-motion/dist/es/render/utils/motion-values.mjs +0 -67
- package/node_modules/framer-motion/dist/es/render/utils/resolve-dynamic-variants.mjs +0 -8
- package/node_modules/framer-motion/dist/es/render/utils/resolve-variants.mjs +0 -36
- package/node_modules/framer-motion/dist/es/render/utils/setters.mjs +0 -27
- package/node_modules/framer-motion/dist/es/render/utils/variant-props.mjs +0 -12
- package/node_modules/framer-motion/dist/es/utils/GlobalConfig.mjs +0 -6
- package/node_modules/framer-motion/dist/es/utils/array.mjs +0 -21
- package/node_modules/framer-motion/dist/es/utils/clamp.mjs +0 -9
- package/node_modules/framer-motion/dist/es/utils/delay.mjs +0 -20
- package/node_modules/framer-motion/dist/es/utils/distance.mjs +0 -9
- package/node_modules/framer-motion/dist/es/utils/errors.mjs +0 -18
- package/node_modules/framer-motion/dist/es/utils/get-context-window.mjs +0 -6
- package/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.mjs +0 -42
- package/node_modules/framer-motion/dist/es/utils/interpolate.mjs +0 -75
- package/node_modules/framer-motion/dist/es/utils/is-browser.mjs +0 -3
- package/node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs +0 -6
- package/node_modules/framer-motion/dist/es/utils/is-ref-object.mjs +0 -7
- package/node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs +0 -6
- package/node_modules/framer-motion/dist/es/utils/memo.mjs +0 -10
- package/node_modules/framer-motion/dist/es/utils/mix/color.mjs +0 -47
- package/node_modules/framer-motion/dist/es/utils/mix/complex.mjs +0 -94
- package/node_modules/framer-motion/dist/es/utils/mix/immediate.mjs +0 -5
- package/node_modules/framer-motion/dist/es/utils/mix/index.mjs +0 -14
- package/node_modules/framer-motion/dist/es/utils/mix/number.mjs +0 -26
- package/node_modules/framer-motion/dist/es/utils/mix/visibility.mjs +0 -16
- package/node_modules/framer-motion/dist/es/utils/noop.mjs +0 -3
- package/node_modules/framer-motion/dist/es/utils/offsets/default.mjs +0 -9
- package/node_modules/framer-motion/dist/es/utils/offsets/fill.mjs +0 -12
- package/node_modules/framer-motion/dist/es/utils/offsets/time.mjs +0 -5
- package/node_modules/framer-motion/dist/es/utils/pipe.mjs +0 -11
- package/node_modules/framer-motion/dist/es/utils/progress.mjs +0 -18
- package/node_modules/framer-motion/dist/es/utils/reduced-motion/index.mjs +0 -19
- package/node_modules/framer-motion/dist/es/utils/reduced-motion/state.mjs +0 -5
- package/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs +0 -19
- package/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs +0 -47
- package/node_modules/framer-motion/dist/es/utils/resolve-value.mjs +0 -11
- package/node_modules/framer-motion/dist/es/utils/shallow-compare.mjs +0 -14
- package/node_modules/framer-motion/dist/es/utils/subscription-manager.mjs +0 -40
- package/node_modules/framer-motion/dist/es/utils/time-conversion.mjs +0 -10
- package/node_modules/framer-motion/dist/es/utils/transform.mjs +0 -21
- package/node_modules/framer-motion/dist/es/utils/use-animation-frame.mjs +0 -21
- package/node_modules/framer-motion/dist/es/utils/use-constant.mjs +0 -18
- package/node_modules/framer-motion/dist/es/utils/use-cycle.mjs +0 -47
- package/node_modules/framer-motion/dist/es/utils/use-force-update.mjs +0 -19
- package/node_modules/framer-motion/dist/es/utils/use-in-view.mjs +0 -23
- package/node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs +0 -5
- package/node_modules/framer-motion/dist/es/utils/use-instant-transition.mjs +0 -41
- package/node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs +0 -15
- package/node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs +0 -6
- package/node_modules/framer-motion/dist/es/utils/use-motion-value-event.mjs +0 -13
- package/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs +0 -7
- package/node_modules/framer-motion/dist/es/utils/velocity-per-second.mjs +0 -11
- package/node_modules/framer-motion/dist/es/utils/warn-once.mjs +0 -11
- package/node_modules/framer-motion/dist/es/utils/wrap.mjs +0 -6
- package/node_modules/framer-motion/dist/es/value/index.mjs +0 -319
- package/node_modules/framer-motion/dist/es/value/scroll/use-element-scroll.mjs +0 -14
- package/node_modules/framer-motion/dist/es/value/scroll/use-viewport-scroll.mjs +0 -14
- package/node_modules/framer-motion/dist/es/value/types/color/hex.mjs +0 -40
- package/node_modules/framer-motion/dist/es/value/types/color/hsla.mjs +0 -22
- package/node_modules/framer-motion/dist/es/value/types/color/index.mjs +0 -28
- package/node_modules/framer-motion/dist/es/value/types/color/rgba.mjs +0 -25
- package/node_modules/framer-motion/dist/es/value/types/color/utils.mjs +0 -23
- package/node_modules/framer-motion/dist/es/value/types/complex/filter.mjs +0 -30
- package/node_modules/framer-motion/dist/es/value/types/complex/index.mjs +0 -90
- package/node_modules/framer-motion/dist/es/value/types/numbers/index.mjs +0 -17
- package/node_modules/framer-motion/dist/es/value/types/numbers/units.mjs +0 -19
- package/node_modules/framer-motion/dist/es/value/types/utils.mjs +0 -15
- package/node_modules/framer-motion/dist/es/value/use-combine-values.mjs +0 -37
- package/node_modules/framer-motion/dist/es/value/use-computed.mjs +0 -19
- package/node_modules/framer-motion/dist/es/value/use-inverted-scale.mjs +0 -52
- package/node_modules/framer-motion/dist/es/value/use-motion-template.mjs +0 -45
- package/node_modules/framer-motion/dist/es/value/use-motion-value.mjs +0 -38
- package/node_modules/framer-motion/dist/es/value/use-scroll.mjs +0 -39
- package/node_modules/framer-motion/dist/es/value/use-spring.mjs +0 -80
- package/node_modules/framer-motion/dist/es/value/use-time.mjs +0 -10
- package/node_modules/framer-motion/dist/es/value/use-transform.mjs +0 -29
- package/node_modules/framer-motion/dist/es/value/use-velocity.mjs +0 -35
- package/node_modules/framer-motion/dist/es/value/use-will-change/index.mjs +0 -50
- package/node_modules/framer-motion/dist/es/value/use-will-change/is.mjs +0 -7
- package/node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs +0 -3
- package/node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs +0 -16
- package/node_modules/framer-motion/dist/framer-motion.dev.js +0 -12433
- package/node_modules/framer-motion/dist/framer-motion.js +0 -1
- package/node_modules/framer-motion/dist/index.d.ts +0 -5278
- package/node_modules/framer-motion/dist/three-entry.d.ts +0 -2954
- package/node_modules/framer-motion/dom/README.md +0 -1
- package/node_modules/framer-motion/dom/package.json +0 -6
- package/node_modules/framer-motion/package.json +0 -108
- package/node_modules/get-func-name/LICENSE +0 -19
- package/node_modules/get-func-name/README.md +0 -123
- package/node_modules/get-func-name/get-func-name.js +0 -1
- package/node_modules/get-func-name/index.js +0 -52
- package/node_modules/get-func-name/package.json +0 -85
- package/node_modules/get-nonce/LICENSE +0 -21
- package/node_modules/get-nonce/README.md +0 -54
- package/node_modules/get-nonce/dist/es2015/index.d.ts +0 -2
- package/node_modules/get-nonce/dist/es2015/index.js +0 -13
- package/node_modules/get-nonce/dist/es5/index.d.ts +0 -2
- package/node_modules/get-nonce/dist/es5/index.js +0 -15
- package/node_modules/get-nonce/package.json +0 -68
- package/node_modules/invariant/LICENSE +0 -21
- package/node_modules/invariant/README.md +0 -37
- package/node_modules/invariant/browser.js +0 -49
- package/node_modules/invariant/invariant.js +0 -51
- package/node_modules/invariant/invariant.js.flow +0 -7
- package/node_modules/invariant/package.json +0 -35
- package/node_modules/js-tokens/LICENSE +0 -21
- package/node_modules/js-tokens/README.md +0 -240
- package/node_modules/js-tokens/index.js +0 -23
- package/node_modules/js-tokens/package.json +0 -30
- package/node_modules/loose-envify/LICENSE +0 -21
- package/node_modules/loose-envify/README.md +0 -45
- package/node_modules/loose-envify/cli.js +0 -16
- package/node_modules/loose-envify/custom.js +0 -4
- package/node_modules/loose-envify/index.js +0 -3
- package/node_modules/loose-envify/loose-envify.js +0 -36
- package/node_modules/loose-envify/package.json +0 -36
- package/node_modules/loose-envify/replace.js +0 -65
- package/node_modules/loupe/LICENSE +0 -9
- package/node_modules/loupe/README.md +0 -63
- package/node_modules/loupe/lib/arguments.d.ts +0 -3
- package/node_modules/loupe/lib/arguments.d.ts.map +0 -1
- package/node_modules/loupe/lib/arguments.js +0 -7
- package/node_modules/loupe/lib/array.d.ts +0 -3
- package/node_modules/loupe/lib/array.d.ts.map +0 -1
- package/node_modules/loupe/lib/array.js +0 -16
- package/node_modules/loupe/lib/bigint.d.ts +0 -3
- package/node_modules/loupe/lib/bigint.d.ts.map +0 -1
- package/node_modules/loupe/lib/bigint.js +0 -7
- package/node_modules/loupe/lib/class.d.ts +0 -5
- package/node_modules/loupe/lib/class.d.ts.map +0 -1
- package/node_modules/loupe/lib/class.js +0 -15
- package/node_modules/loupe/lib/date.d.ts +0 -3
- package/node_modules/loupe/lib/date.d.ts.map +0 -1
- package/node_modules/loupe/lib/date.js +0 -11
- package/node_modules/loupe/lib/error.d.ts +0 -3
- package/node_modules/loupe/lib/error.d.ts.map +0 -1
- package/node_modules/loupe/lib/error.js +0 -29
- package/node_modules/loupe/lib/function.d.ts +0 -7
- package/node_modules/loupe/lib/function.d.ts.map +0 -1
- package/node_modules/loupe/lib/function.js +0 -9
- package/node_modules/loupe/lib/helpers.d.ts +0 -7
- package/node_modules/loupe/lib/helpers.d.ts.map +0 -1
- package/node_modules/loupe/lib/helpers.js +0 -159
- package/node_modules/loupe/lib/html.d.ts +0 -5
- package/node_modules/loupe/lib/html.d.ts.map +0 -1
- package/node_modules/loupe/lib/html.js +0 -34
- package/node_modules/loupe/lib/index.d.ts +0 -7
- package/node_modules/loupe/lib/index.d.ts.map +0 -1
- package/node_modules/loupe/lib/index.js +0 -161
- package/node_modules/loupe/lib/map.d.ts +0 -3
- package/node_modules/loupe/lib/map.d.ts.map +0 -1
- package/node_modules/loupe/lib/map.js +0 -24
- package/node_modules/loupe/lib/number.d.ts +0 -3
- package/node_modules/loupe/lib/number.d.ts.map +0 -1
- package/node_modules/loupe/lib/number.js +0 -17
- package/node_modules/loupe/lib/object.d.ts +0 -3
- package/node_modules/loupe/lib/object.d.ts.map +0 -1
- package/node_modules/loupe/lib/object.js +0 -22
- package/node_modules/loupe/lib/promise.d.ts +0 -5
- package/node_modules/loupe/lib/promise.d.ts.map +0 -1
- package/node_modules/loupe/lib/promise.js +0 -18
- package/node_modules/loupe/lib/regexp.d.ts +0 -3
- package/node_modules/loupe/lib/regexp.d.ts.map +0 -1
- package/node_modules/loupe/lib/regexp.js +0 -7
- package/node_modules/loupe/lib/set.d.ts +0 -3
- package/node_modules/loupe/lib/set.d.ts.map +0 -1
- package/node_modules/loupe/lib/set.js +0 -15
- package/node_modules/loupe/lib/string.d.ts +0 -3
- package/node_modules/loupe/lib/string.d.ts.map +0 -1
- package/node_modules/loupe/lib/string.js +0 -24
- package/node_modules/loupe/lib/symbol.d.ts +0 -2
- package/node_modules/loupe/lib/symbol.d.ts.map +0 -1
- package/node_modules/loupe/lib/symbol.js +0 -6
- package/node_modules/loupe/lib/typedarray.d.ts +0 -5
- package/node_modules/loupe/lib/typedarray.d.ts.map +0 -1
- package/node_modules/loupe/lib/typedarray.js +0 -38
- package/node_modules/loupe/lib/types.d.ts +0 -15
- package/node_modules/loupe/lib/types.d.ts.map +0 -1
- package/node_modules/loupe/lib/types.js +0 -1
- package/node_modules/loupe/loupe.js +0 -644
- package/node_modules/loupe/package.json +0 -126
- package/node_modules/pathval/LICENSE +0 -16
- package/node_modules/pathval/README.md +0 -147
- package/node_modules/pathval/index.js +0 -292
- package/node_modules/pathval/package.json +0 -73
- package/node_modules/pathval/pathval.js +0 -1
- package/node_modules/react-remove-scroll/LICENSE +0 -21
- package/node_modules/react-remove-scroll/README.md +0 -152
- package/node_modules/react-remove-scroll/UI/UI.d.ts +0 -1
- package/node_modules/react-remove-scroll/UI/package.json +0 -8
- package/node_modules/react-remove-scroll/dist/es2015/Combination.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es2015/Combination.js +0 -7
- package/node_modules/react-remove-scroll/dist/es2015/SideEffect.d.ts +0 -5
- package/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +0 -157
- package/node_modules/react-remove-scroll/dist/es2015/UI.d.ts +0 -7
- package/node_modules/react-remove-scroll/dist/es2015/UI.js +0 -36
- package/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +0 -19
- package/node_modules/react-remove-scroll/dist/es2015/handleScroll.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +0 -104
- package/node_modules/react-remove-scroll/dist/es2015/index.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es2015/index.js +0 -2
- package/node_modules/react-remove-scroll/dist/es2015/medium.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es2015/medium.js +0 -2
- package/node_modules/react-remove-scroll/dist/es2015/pinchAndZoom.d.ts +0 -8
- package/node_modules/react-remove-scroll/dist/es2015/pinchAndZoom.js +0 -33
- package/node_modules/react-remove-scroll/dist/es2015/sidecar.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es2015/sidecar.js +0 -4
- package/node_modules/react-remove-scroll/dist/es2015/types.d.ts +0 -98
- package/node_modules/react-remove-scroll/dist/es2015/types.js +0 -1
- package/node_modules/react-remove-scroll/dist/es2019/Combination.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es2019/Combination.js +0 -6
- package/node_modules/react-remove-scroll/dist/es2019/SideEffect.d.ts +0 -5
- package/node_modules/react-remove-scroll/dist/es2019/SideEffect.js +0 -155
- package/node_modules/react-remove-scroll/dist/es2019/UI.d.ts +0 -7
- package/node_modules/react-remove-scroll/dist/es2019/UI.js +0 -41
- package/node_modules/react-remove-scroll/dist/es2019/aggresiveCapture.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es2019/aggresiveCapture.js +0 -19
- package/node_modules/react-remove-scroll/dist/es2019/handleScroll.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es2019/handleScroll.js +0 -92
- package/node_modules/react-remove-scroll/dist/es2019/index.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es2019/index.js +0 -2
- package/node_modules/react-remove-scroll/dist/es2019/medium.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es2019/medium.js +0 -2
- package/node_modules/react-remove-scroll/dist/es2019/pinchAndZoom.d.ts +0 -8
- package/node_modules/react-remove-scroll/dist/es2019/pinchAndZoom.js +0 -33
- package/node_modules/react-remove-scroll/dist/es2019/sidecar.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es2019/sidecar.js +0 -4
- package/node_modules/react-remove-scroll/dist/es2019/types.d.ts +0 -98
- package/node_modules/react-remove-scroll/dist/es2019/types.js +0 -1
- package/node_modules/react-remove-scroll/dist/es5/Combination.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es5/Combination.js +0 -9
- package/node_modules/react-remove-scroll/dist/es5/SideEffect.d.ts +0 -5
- package/node_modules/react-remove-scroll/dist/es5/SideEffect.js +0 -163
- package/node_modules/react-remove-scroll/dist/es5/UI.d.ts +0 -7
- package/node_modules/react-remove-scroll/dist/es5/UI.js +0 -39
- package/node_modules/react-remove-scroll/dist/es5/aggresiveCapture.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es5/aggresiveCapture.js +0 -22
- package/node_modules/react-remove-scroll/dist/es5/handleScroll.d.ts +0 -3
- package/node_modules/react-remove-scroll/dist/es5/handleScroll.js +0 -109
- package/node_modules/react-remove-scroll/dist/es5/index.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es5/index.js +0 -6
- package/node_modules/react-remove-scroll/dist/es5/medium.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es5/medium.js +0 -5
- package/node_modules/react-remove-scroll/dist/es5/pinchAndZoom.d.ts +0 -8
- package/node_modules/react-remove-scroll/dist/es5/pinchAndZoom.js +0 -37
- package/node_modules/react-remove-scroll/dist/es5/sidecar.d.ts +0 -2
- package/node_modules/react-remove-scroll/dist/es5/sidecar.js +0 -6
- package/node_modules/react-remove-scroll/dist/es5/types.d.ts +0 -98
- package/node_modules/react-remove-scroll/dist/es5/types.js +0 -2
- package/node_modules/react-remove-scroll/dist/index.js +0 -93
- package/node_modules/react-remove-scroll/package.json +0 -97
- package/node_modules/react-remove-scroll/sidecar/package.json +0 -7
- package/node_modules/react-remove-scroll/sidecar/sidecar.d.ts +0 -5
- package/node_modules/react-remove-scroll-bar/README.md +0 -52
- package/node_modules/react-remove-scroll-bar/constants/package.json +0 -8
- package/node_modules/react-remove-scroll-bar/dist/es2015/component.d.ts +0 -13
- package/node_modules/react-remove-scroll-bar/dist/es2015/component.js +0 -53
- package/node_modules/react-remove-scroll-bar/dist/es2015/constants.d.ts +0 -8
- package/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +0 -8
- package/node_modules/react-remove-scroll-bar/dist/es2015/index.d.ts +0 -4
- package/node_modules/react-remove-scroll-bar/dist/es2015/index.js +0 -4
- package/node_modules/react-remove-scroll-bar/dist/es2015/utils.d.ts +0 -14
- package/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +0 -29
- package/node_modules/react-remove-scroll-bar/dist/es2019/component.d.ts +0 -13
- package/node_modules/react-remove-scroll-bar/dist/es2019/component.js +0 -85
- package/node_modules/react-remove-scroll-bar/dist/es2019/constants.d.ts +0 -8
- package/node_modules/react-remove-scroll-bar/dist/es2019/constants.js +0 -8
- package/node_modules/react-remove-scroll-bar/dist/es2019/index.d.ts +0 -4
- package/node_modules/react-remove-scroll-bar/dist/es2019/index.js +0 -4
- package/node_modules/react-remove-scroll-bar/dist/es2019/utils.d.ts +0 -14
- package/node_modules/react-remove-scroll-bar/dist/es2019/utils.js +0 -28
- package/node_modules/react-remove-scroll-bar/dist/es5/component.d.ts +0 -13
- package/node_modules/react-remove-scroll-bar/dist/es5/component.js +0 -59
- package/node_modules/react-remove-scroll-bar/dist/es5/constants.d.ts +0 -8
- package/node_modules/react-remove-scroll-bar/dist/es5/constants.js +0 -11
- package/node_modules/react-remove-scroll-bar/dist/es5/index.d.ts +0 -4
- package/node_modules/react-remove-scroll-bar/dist/es5/index.js +0 -12
- package/node_modules/react-remove-scroll-bar/dist/es5/utils.d.ts +0 -14
- package/node_modules/react-remove-scroll-bar/dist/es5/utils.js +0 -33
- package/node_modules/react-remove-scroll-bar/package.json +0 -85
- package/node_modules/react-router/CHANGELOG.md +0 -723
- package/node_modules/react-router/LICENSE.md +0 -23
- package/node_modules/react-router/README.md +0 -16
- package/node_modules/react-router/dist/index.d.ts +0 -29
- package/node_modules/react-router/dist/index.js +0 -1456
- package/node_modules/react-router/dist/index.js.map +0 -1
- package/node_modules/react-router/dist/lib/components.d.ts +0 -157
- package/node_modules/react-router/dist/lib/context.d.ts +0 -102
- package/node_modules/react-router/dist/lib/hooks.d.ts +0 -181
- package/node_modules/react-router/dist/main.js +0 -19
- package/node_modules/react-router/dist/react-router.development.js +0 -1352
- package/node_modules/react-router/dist/react-router.development.js.map +0 -1
- package/node_modules/react-router/dist/react-router.production.min.js +0 -12
- package/node_modules/react-router/dist/react-router.production.min.js.map +0 -1
- package/node_modules/react-router/dist/umd/react-router.development.js +0 -1574
- package/node_modules/react-router/dist/umd/react-router.development.js.map +0 -1
- package/node_modules/react-router/dist/umd/react-router.production.min.js +0 -12
- package/node_modules/react-router/dist/umd/react-router.production.min.js.map +0 -1
- package/node_modules/react-router/package.json +0 -44
- package/node_modules/react-router-dom/CHANGELOG.md +0 -866
- package/node_modules/react-router-dom/LICENSE.md +0 -23
- package/node_modules/react-router-dom/README.md +0 -5
- package/node_modules/react-router-dom/dist/dom.d.ts +0 -117
- package/node_modules/react-router-dom/dist/index.d.ts +0 -331
- package/node_modules/react-router-dom/dist/index.js +0 -1447
- package/node_modules/react-router-dom/dist/index.js.map +0 -1
- package/node_modules/react-router-dom/dist/main.js +0 -19
- package/node_modules/react-router-dom/dist/react-router-dom.development.js +0 -1514
- package/node_modules/react-router-dom/dist/react-router-dom.development.js.map +0 -1
- package/node_modules/react-router-dom/dist/react-router-dom.production.min.js +0 -12
- package/node_modules/react-router-dom/dist/react-router-dom.production.min.js.map +0 -1
- package/node_modules/react-router-dom/dist/server.d.ts +0 -31
- package/node_modules/react-router-dom/dist/server.js +0 -322
- package/node_modules/react-router-dom/dist/server.mjs +0 -297
- package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js +0 -1813
- package/node_modules/react-router-dom/dist/umd/react-router-dom.development.js.map +0 -1
- package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js +0 -12
- package/node_modules/react-router-dom/dist/umd/react-router-dom.production.min.js.map +0 -1
- package/node_modules/react-router-dom/package.json +0 -49
- package/node_modules/react-router-dom/server.d.ts +0 -31
- package/node_modules/react-router-dom/server.js +0 -322
- package/node_modules/react-router-dom/server.mjs +0 -297
- package/node_modules/react-style-singleton/README.md +0 -41
- package/node_modules/react-style-singleton/dist/es2015/component.d.ts +0 -21
- package/node_modules/react-style-singleton/dist/es2015/component.js +0 -16
- package/node_modules/react-style-singleton/dist/es2015/hook.d.ts +0 -23
- package/node_modules/react-style-singleton/dist/es2015/hook.js +0 -22
- package/node_modules/react-style-singleton/dist/es2015/index.d.ts +0 -3
- package/node_modules/react-style-singleton/dist/es2015/index.js +0 -3
- package/node_modules/react-style-singleton/dist/es2015/singleton.d.ts +0 -4
- package/node_modules/react-style-singleton/dist/es2015/singleton.js +0 -48
- package/node_modules/react-style-singleton/dist/es2019/component.d.ts +0 -21
- package/node_modules/react-style-singleton/dist/es2019/component.js +0 -15
- package/node_modules/react-style-singleton/dist/es2019/hook.d.ts +0 -23
- package/node_modules/react-style-singleton/dist/es2019/hook.js +0 -22
- package/node_modules/react-style-singleton/dist/es2019/index.d.ts +0 -3
- package/node_modules/react-style-singleton/dist/es2019/index.js +0 -3
- package/node_modules/react-style-singleton/dist/es2019/singleton.d.ts +0 -4
- package/node_modules/react-style-singleton/dist/es2019/singleton.js +0 -48
- package/node_modules/react-style-singleton/dist/es5/component.d.ts +0 -21
- package/node_modules/react-style-singleton/dist/es5/component.js +0 -20
- package/node_modules/react-style-singleton/dist/es5/hook.d.ts +0 -23
- package/node_modules/react-style-singleton/dist/es5/hook.js +0 -27
- package/node_modules/react-style-singleton/dist/es5/index.d.ts +0 -3
- package/node_modules/react-style-singleton/dist/es5/index.js +0 -9
- package/node_modules/react-style-singleton/dist/es5/singleton.d.ts +0 -4
- package/node_modules/react-style-singleton/dist/es5/singleton.js +0 -52
- package/node_modules/react-style-singleton/dist/index.js +0 -1
- package/node_modules/react-style-singleton/package.json +0 -87
- package/node_modules/regenerator-runtime/LICENSE +0 -21
- package/node_modules/regenerator-runtime/README.md +0 -31
- package/node_modules/regenerator-runtime/package.json +0 -19
- package/node_modules/regenerator-runtime/path.js +0 -11
- package/node_modules/regenerator-runtime/runtime.js +0 -761
- package/node_modules/remix-utils/.eslintrc.cjs +0 -54
- package/node_modules/remix-utils/LICENSE +0 -21
- package/node_modules/remix-utils/README.md +0 -2149
- package/node_modules/remix-utils/build/client/cache-assets.d.ts +0 -22
- package/node_modules/remix-utils/build/client/cache-assets.js +0 -66
- package/node_modules/remix-utils/build/common/promise.d.ts +0 -87
- package/node_modules/remix-utils/build/common/promise.js +0 -112
- package/node_modules/remix-utils/build/common/timers.d.ts +0 -27
- package/node_modules/remix-utils/build/common/timers.js +0 -47
- package/node_modules/remix-utils/build/react/authenticity-token.d.ts +0 -50
- package/node_modules/remix-utils/build/react/authenticity-token.js +0 -54
- package/node_modules/remix-utils/build/react/client-only.d.ts +0 -27
- package/node_modules/remix-utils/build/react/client-only.js +0 -20
- package/node_modules/remix-utils/build/react/existing-search-params.d.ts +0 -34
- package/node_modules/remix-utils/build/react/existing-search-params.js +0 -32
- package/node_modules/remix-utils/build/react/external-scripts.d.ts +0 -91
- package/node_modules/remix-utils/build/react/external-scripts.js +0 -106
- package/node_modules/remix-utils/build/react/fetcher-type.d.ts +0 -31
- package/node_modules/remix-utils/build/react/fetcher-type.js +0 -53
- package/node_modules/remix-utils/build/react/handle-conventions.d.ts +0 -10
- package/node_modules/remix-utils/build/react/handle-conventions.js +0 -1
- package/node_modules/remix-utils/build/react/honeypot.d.ts +0 -11
- package/node_modules/remix-utils/build/react/honeypot.js +0 -16
- package/node_modules/remix-utils/build/react/server-only.d.ts +0 -25
- package/node_modules/remix-utils/build/react/server-only.js +0 -18
- package/node_modules/remix-utils/build/react/use-debounce-fetcher.d.ts +0 -28
- package/node_modules/remix-utils/build/react/use-debounce-fetcher.js +0 -27
- package/node_modules/remix-utils/build/react/use-debounce-submit.d.ts +0 -7
- package/node_modules/remix-utils/build/react/use-debounce-submit.js +0 -41
- package/node_modules/remix-utils/build/react/use-delegated-anchors.d.ts +0 -6
- package/node_modules/remix-utils/build/react/use-delegated-anchors.js +0 -69
- package/node_modules/remix-utils/build/react/use-event-source.d.ts +0 -17
- package/node_modules/remix-utils/build/react/use-event-source.js +0 -37
- package/node_modules/remix-utils/build/react/use-global-navigation-state.d.ts +0 -33
- package/node_modules/remix-utils/build/react/use-global-navigation-state.js +0 -67
- package/node_modules/remix-utils/build/react/use-hydrated.d.ts +0 -18
- package/node_modules/remix-utils/build/react/use-hydrated.js +0 -24
- package/node_modules/remix-utils/build/react/use-locales.d.ts +0 -24
- package/node_modules/remix-utils/build/react/use-locales.js +0 -56
- package/node_modules/remix-utils/build/react/use-should-hydrate.d.ts +0 -21
- package/node_modules/remix-utils/build/react/use-should-hydrate.js +0 -44
- package/node_modules/remix-utils/build/server/cors.d.ts +0 -101
- package/node_modules/remix-utils/build/server/cors.js +0 -179
- package/node_modules/remix-utils/build/server/csrf.d.ts +0 -85
- package/node_modules/remix-utils/build/server/csrf.js +0 -121
- package/node_modules/remix-utils/build/server/event-stream.d.ts +0 -27
- package/node_modules/remix-utils/build/server/event-stream.js +0 -44
- package/node_modules/remix-utils/build/server/get-client-ip-address.d.ts +0 -29
- package/node_modules/remix-utils/build/server/get-client-ip-address.js +0 -51
- package/node_modules/remix-utils/build/server/get-client-locales.d.ts +0 -18
- package/node_modules/remix-utils/build/server/get-client-locales.js +0 -18
- package/node_modules/remix-utils/build/server/get-headers.d.ts +0 -6
- package/node_modules/remix-utils/build/server/get-headers.js +0 -11
- package/node_modules/remix-utils/build/server/honeypot.d.ts +0 -32
- package/node_modules/remix-utils/build/server/honeypot.js +0 -96
- package/node_modules/remix-utils/build/server/is-prefetch.d.ts +0 -16
- package/node_modules/remix-utils/build/server/is-prefetch.js +0 -11
- package/node_modules/remix-utils/build/server/json-hash.d.ts +0 -6
- package/node_modules/remix-utils/build/server/json-hash.js +0 -16
- package/node_modules/remix-utils/build/server/named-action.d.ts +0 -19
- package/node_modules/remix-utils/build/server/named-action.js +0 -62
- package/node_modules/remix-utils/build/server/parse-accept-header.d.ts +0 -12
- package/node_modules/remix-utils/build/server/parse-accept-header.js +0 -17
- package/node_modules/remix-utils/build/server/preload-route-assets.d.ts +0 -80
- package/node_modules/remix-utils/build/server/preload-route-assets.js +0 -120
- package/node_modules/remix-utils/build/server/redirect-back.d.ts +0 -18
- package/node_modules/remix-utils/build/server/redirect-back.js +0 -29
- package/node_modules/remix-utils/build/server/respond-to.d.ts +0 -40
- package/node_modules/remix-utils/build/server/respond-to.js +0 -22
- package/node_modules/remix-utils/build/server/responses.d.ts +0 -100
- package/node_modules/remix-utils/build/server/responses.js +0 -167
- package/node_modules/remix-utils/build/server/rolling-cookie.d.ts +0 -4
- package/node_modules/remix-utils/build/server/rolling-cookie.js +0 -9
- package/node_modules/remix-utils/build/server/safe-redirect.d.ts +0 -10
- package/node_modules/remix-utils/build/server/safe-redirect.js +0 -22
- package/node_modules/remix-utils/build/server/sec-fetch.d.ts +0 -43
- package/node_modules/remix-utils/build/server/sec-fetch.js +0 -67
- package/node_modules/remix-utils/build/server/typed-cookie.d.ts +0 -17
- package/node_modules/remix-utils/build/server/typed-cookie.js +0 -58
- package/node_modules/remix-utils/build/server/typed-session.d.ts +0 -59
- package/node_modules/remix-utils/build/server/typed-session.js +0 -88
- package/node_modules/remix-utils/package.json +0 -182
- package/node_modules/remix-utils/scripts/check-pkg-exports.ts +0 -61
- package/node_modules/set-cookie-parser/LICENSE +0 -21
- package/node_modules/set-cookie-parser/README.md +0 -199
- package/node_modules/set-cookie-parser/lib/set-cookie.js +0 -226
- package/node_modules/set-cookie-parser/package.json +0 -43
- package/node_modules/source-map/LICENSE +0 -28
- package/node_modules/source-map/README.md +0 -742
- package/node_modules/source-map/dist/source-map.debug.js +0 -3234
- package/node_modules/source-map/dist/source-map.js +0 -3233
- package/node_modules/source-map/dist/source-map.min.js +0 -2
- package/node_modules/source-map/dist/source-map.min.js.map +0 -1
- package/node_modules/source-map/lib/array-set.js +0 -121
- package/node_modules/source-map/lib/base64-vlq.js +0 -140
- package/node_modules/source-map/lib/base64.js +0 -67
- package/node_modules/source-map/lib/binary-search.js +0 -111
- package/node_modules/source-map/lib/mapping-list.js +0 -79
- package/node_modules/source-map/lib/mappings.wasm +0 -0
- package/node_modules/source-map/lib/quick-sort.js +0 -114
- package/node_modules/source-map/lib/read-wasm.js +0 -49
- package/node_modules/source-map/lib/source-map-consumer.js +0 -1145
- package/node_modules/source-map/lib/source-map-generator.js +0 -425
- package/node_modules/source-map/lib/source-node.js +0 -413
- package/node_modules/source-map/lib/util.js +0 -488
- package/node_modules/source-map/lib/wasm.js +0 -107
- package/node_modules/source-map/package.json +0 -73
- package/node_modules/source-map/source-map.d.ts +0 -98
- package/node_modules/source-map/source-map.js +0 -8
- package/node_modules/tailwind-merge/LICENSE.md +0 -21
- package/node_modules/tailwind-merge/README.md +0 -38
- package/node_modules/tailwind-merge/dist/bundle-cjs.js +0 -2595
- package/node_modules/tailwind-merge/dist/bundle-cjs.js.map +0 -1
- package/node_modules/tailwind-merge/dist/bundle-mjs.mjs +0 -2583
- package/node_modules/tailwind-merge/dist/bundle-mjs.mjs.map +0 -1
- package/node_modules/tailwind-merge/dist/es5/bundle-cjs.js +0 -2645
- package/node_modules/tailwind-merge/dist/es5/bundle-cjs.js.map +0 -1
- package/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs +0 -2633
- package/node_modules/tailwind-merge/dist/es5/bundle-mjs.mjs.map +0 -1
- package/node_modules/tailwind-merge/dist/types.d.ts +0 -2143
- package/node_modules/tailwind-merge/package.json +0 -95
- package/node_modules/tailwind-merge/src/index.ts +0 -14
- package/node_modules/tailwind-merge/src/lib/class-utils.ts +0 -215
- package/node_modules/tailwind-merge/src/lib/config-utils.ts +0 -14
- package/node_modules/tailwind-merge/src/lib/create-tailwind-merge.ts +0 -50
- package/node_modules/tailwind-merge/src/lib/default-config.ts +0 -1865
- package/node_modules/tailwind-merge/src/lib/extend-tailwind-merge.ts +0 -26
- package/node_modules/tailwind-merge/src/lib/from-theme.ts +0 -13
- package/node_modules/tailwind-merge/src/lib/lru-cache.ts +0 -52
- package/node_modules/tailwind-merge/src/lib/merge-classlist.ts +0 -99
- package/node_modules/tailwind-merge/src/lib/merge-configs.ts +0 -72
- package/node_modules/tailwind-merge/src/lib/modifier-utils.ts +0 -95
- package/node_modules/tailwind-merge/src/lib/tw-join.ts +0 -50
- package/node_modules/tailwind-merge/src/lib/tw-merge.ts +0 -4
- package/node_modules/tailwind-merge/src/lib/types.ts +0 -412
- package/node_modules/tailwind-merge/src/lib/validators.ts +0 -104
- package/node_modules/tslib/CopyrightNotice.txt +0 -15
- package/node_modules/tslib/LICENSE.txt +0 -12
- package/node_modules/tslib/README.md +0 -164
- package/node_modules/tslib/SECURITY.md +0 -41
- package/node_modules/tslib/modules/index.d.ts +0 -37
- package/node_modules/tslib/modules/index.js +0 -68
- package/node_modules/tslib/modules/package.json +0 -3
- package/node_modules/tslib/package.json +0 -47
- package/node_modules/tslib/tslib.d.ts +0 -453
- package/node_modules/tslib/tslib.es6.html +0 -1
- package/node_modules/tslib/tslib.es6.js +0 -374
- package/node_modules/tslib/tslib.es6.mjs +0 -373
- package/node_modules/tslib/tslib.html +0 -1
- package/node_modules/tslib/tslib.js +0 -424
- package/node_modules/turbo-stream/LICENSE +0 -7
- package/node_modules/turbo-stream/README.md +0 -31
- package/node_modules/turbo-stream/dist/flatten.d.ts +0 -2
- package/node_modules/turbo-stream/dist/flatten.js +0 -172
- package/node_modules/turbo-stream/dist/turbo-stream.d.ts +0 -12
- package/node_modules/turbo-stream/dist/turbo-stream.js +0 -202
- package/node_modules/turbo-stream/dist/turbo-stream.mjs +0 -530
- package/node_modules/turbo-stream/dist/unflatten.d.ts +0 -2
- package/node_modules/turbo-stream/dist/unflatten.js +0 -127
- package/node_modules/turbo-stream/dist/utils.d.ts +0 -43
- package/node_modules/turbo-stream/dist/utils.js +0 -55
- package/node_modules/turbo-stream/package.json +0 -50
- package/node_modules/type-fest/index.d.ts +0 -160
- package/node_modules/type-fest/package.json +0 -72
- package/node_modules/type-fest/readme.md +0 -992
- package/node_modules/type-fest/source/and.d.ts +0 -25
- package/node_modules/type-fest/source/array-indices.d.ts +0 -23
- package/node_modules/type-fest/source/array-slice.d.ts +0 -107
- package/node_modules/type-fest/source/array-splice.d.ts +0 -97
- package/node_modules/type-fest/source/array-values.d.ts +0 -22
- package/node_modules/type-fest/source/async-return-type.d.ts +0 -23
- package/node_modules/type-fest/source/asyncify.d.ts +0 -32
- package/node_modules/type-fest/source/basic.d.ts +0 -68
- package/node_modules/type-fest/source/camel-case.d.ts +0 -80
- package/node_modules/type-fest/source/camel-cased-properties-deep.d.ts +0 -87
- package/node_modules/type-fest/source/camel-cased-properties.d.ts +0 -36
- package/node_modules/type-fest/source/conditional-except.d.ts +0 -45
- package/node_modules/type-fest/source/conditional-keys.d.ts +0 -47
- package/node_modules/type-fest/source/conditional-pick-deep.d.ts +0 -104
- package/node_modules/type-fest/source/conditional-pick.d.ts +0 -44
- package/node_modules/type-fest/source/conditional-simplify.d.ts +0 -32
- package/node_modules/type-fest/source/delimiter-case.d.ts +0 -99
- package/node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts +0 -84
- package/node_modules/type-fest/source/delimiter-cased-properties.d.ts +0 -37
- package/node_modules/type-fest/source/distributed-omit.d.ts +0 -89
- package/node_modules/type-fest/source/distributed-pick.d.ts +0 -85
- package/node_modules/type-fest/source/empty-object.d.ts +0 -46
- package/node_modules/type-fest/source/enforce-optional.d.ts +0 -47
- package/node_modules/type-fest/source/entries.d.ts +0 -62
- package/node_modules/type-fest/source/entry.d.ts +0 -65
- package/node_modules/type-fest/source/exact.d.ts +0 -63
- package/node_modules/type-fest/source/except.d.ts +0 -80
- package/node_modules/type-fest/source/fixed-length-array.d.ts +0 -43
- package/node_modules/type-fest/source/get.d.ts +0 -191
- package/node_modules/type-fest/source/global-this.d.ts +0 -21
- package/node_modules/type-fest/source/greater-than-or-equal.d.ts +0 -22
- package/node_modules/type-fest/source/greater-than.d.ts +0 -51
- package/node_modules/type-fest/source/has-optional-keys.d.ts +0 -21
- package/node_modules/type-fest/source/has-readonly-keys.d.ts +0 -21
- package/node_modules/type-fest/source/has-required-keys.d.ts +0 -59
- package/node_modules/type-fest/source/has-writable-keys.d.ts +0 -21
- package/node_modules/type-fest/source/if-any.d.ts +0 -24
- package/node_modules/type-fest/source/if-empty-object.d.ts +0 -26
- package/node_modules/type-fest/source/if-never.d.ts +0 -24
- package/node_modules/type-fest/source/if-null.d.ts +0 -24
- package/node_modules/type-fest/source/if-unknown.d.ts +0 -24
- package/node_modules/type-fest/source/includes.d.ts +0 -22
- package/node_modules/type-fest/source/int-range.d.ts +0 -53
- package/node_modules/type-fest/source/internal.d.ts +0 -783
- package/node_modules/type-fest/source/invariant-of.d.ts +0 -78
- package/node_modules/type-fest/source/is-any.d.ts +0 -29
- package/node_modules/type-fest/source/is-equal.d.ts +0 -31
- package/node_modules/type-fest/source/is-float.d.ts +0 -33
- package/node_modules/type-fest/source/is-integer.d.ts +0 -48
- package/node_modules/type-fest/source/is-literal.d.ts +0 -258
- package/node_modules/type-fest/source/is-never.d.ts +0 -42
- package/node_modules/type-fest/source/is-null.d.ts +0 -20
- package/node_modules/type-fest/source/is-unknown.d.ts +0 -52
- package/node_modules/type-fest/source/iterable-element.d.ts +0 -54
- package/node_modules/type-fest/source/join.d.ts +0 -68
- package/node_modules/type-fest/source/jsonifiable.d.ts +0 -37
- package/node_modules/type-fest/source/jsonify.d.ts +0 -121
- package/node_modules/type-fest/source/kebab-case.d.ts +0 -38
- package/node_modules/type-fest/source/kebab-cased-properties-deep.d.ts +0 -47
- package/node_modules/type-fest/source/kebab-cased-properties.d.ts +0 -30
- package/node_modules/type-fest/source/keys-of-union.d.ts +0 -40
- package/node_modules/type-fest/source/last-array-element.d.ts +0 -38
- package/node_modules/type-fest/source/less-than-or-equal.d.ts +0 -22
- package/node_modules/type-fest/source/less-than.d.ts +0 -22
- package/node_modules/type-fest/source/literal-to-primitive-deep.d.ts +0 -36
- package/node_modules/type-fest/source/literal-to-primitive.d.ts +0 -36
- package/node_modules/type-fest/source/literal-union.d.ts +0 -35
- package/node_modules/type-fest/source/merge-deep.d.ts +0 -486
- package/node_modules/type-fest/source/merge-exclusive.d.ts +0 -41
- package/node_modules/type-fest/source/merge.d.ts +0 -48
- package/node_modules/type-fest/source/multidimensional-array.d.ts +0 -44
- package/node_modules/type-fest/source/multidimensional-readonly-array.d.ts +0 -48
- package/node_modules/type-fest/source/non-empty-object.d.ts +0 -35
- package/node_modules/type-fest/source/numeric.d.ts +0 -222
- package/node_modules/type-fest/source/observable-like.d.ts +0 -63
- package/node_modules/type-fest/source/omit-deep.d.ts +0 -140
- package/node_modules/type-fest/source/omit-index-signature.d.ts +0 -107
- package/node_modules/type-fest/source/opaque.d.ts +0 -252
- package/node_modules/type-fest/source/optional-keys-of.d.ts +0 -38
- package/node_modules/type-fest/source/or.d.ts +0 -25
- package/node_modules/type-fest/source/override-properties.d.ts +0 -36
- package/node_modules/type-fest/source/package-json.d.ts +0 -676
- package/node_modules/type-fest/source/partial-deep.d.ts +0 -109
- package/node_modules/type-fest/source/partial-on-undefined-deep.d.ts +0 -71
- package/node_modules/type-fest/source/pascal-case.d.ts +0 -38
- package/node_modules/type-fest/source/pascal-cased-properties-deep.d.ts +0 -55
- package/node_modules/type-fest/source/pascal-cased-properties.d.ts +0 -35
- package/node_modules/type-fest/source/paths.d.ts +0 -85
- package/node_modules/type-fest/source/pick-deep.d.ts +0 -149
- package/node_modules/type-fest/source/pick-index-signature.d.ts +0 -102
- package/node_modules/type-fest/source/primitive.d.ts +0 -13
- package/node_modules/type-fest/source/promisable.d.ts +0 -25
- package/node_modules/type-fest/source/readonly-deep.d.ts +0 -81
- package/node_modules/type-fest/source/readonly-keys-of.d.ts +0 -29
- package/node_modules/type-fest/source/readonly-tuple.d.ts +0 -41
- package/node_modules/type-fest/source/replace.d.ts +0 -67
- package/node_modules/type-fest/source/require-all-or-none.d.ts +0 -42
- package/node_modules/type-fest/source/require-at-least-one.d.ts +0 -34
- package/node_modules/type-fest/source/require-exactly-one.d.ts +0 -34
- package/node_modules/type-fest/source/require-one-or-none.d.ts +0 -37
- package/node_modules/type-fest/source/required-deep.d.ts +0 -78
- package/node_modules/type-fest/source/required-keys-of.d.ts +0 -29
- package/node_modules/type-fest/source/schema.d.ts +0 -71
- package/node_modules/type-fest/source/screaming-snake-case.d.ts +0 -33
- package/node_modules/type-fest/source/set-field-type.d.ts +0 -37
- package/node_modules/type-fest/source/set-non-nullable.d.ts +0 -39
- package/node_modules/type-fest/source/set-optional.d.ts +0 -35
- package/node_modules/type-fest/source/set-parameter-type.d.ts +0 -117
- package/node_modules/type-fest/source/set-readonly.d.ts +0 -38
- package/node_modules/type-fest/source/set-required.d.ts +0 -40
- package/node_modules/type-fest/source/set-return-type.d.ts +0 -29
- package/node_modules/type-fest/source/shared-union-fields-deep.d.ts +0 -168
- package/node_modules/type-fest/source/simplify-deep.d.ts +0 -115
- package/node_modules/type-fest/source/simplify.d.ts +0 -58
- package/node_modules/type-fest/source/single-key-object.d.ts +0 -29
- package/node_modules/type-fest/source/snake-case.d.ts +0 -38
- package/node_modules/type-fest/source/snake-cased-properties-deep.d.ts +0 -47
- package/node_modules/type-fest/source/snake-cased-properties.d.ts +0 -30
- package/node_modules/type-fest/source/split-words.d.ts +0 -57
- package/node_modules/type-fest/source/split.d.ts +0 -29
- package/node_modules/type-fest/source/spread.d.ts +0 -85
- package/node_modules/type-fest/source/string-key-of.d.ts +0 -25
- package/node_modules/type-fest/source/string-slice.d.ts +0 -37
- package/node_modules/type-fest/source/stringified.d.ts +0 -23
- package/node_modules/type-fest/source/subtract.d.ts +0 -70
- package/node_modules/type-fest/source/sum.d.ts +0 -70
- package/node_modules/type-fest/source/tagged-union.d.ts +0 -51
- package/node_modules/type-fest/source/trim.d.ts +0 -27
- package/node_modules/type-fest/source/tsconfig-json.d.ts +0 -1198
- package/node_modules/type-fest/source/tuple-to-union.d.ts +0 -51
- package/node_modules/type-fest/source/typed-array.d.ts +0 -17
- package/node_modules/type-fest/source/undefined-on-partial-deep.d.ts +0 -81
- package/node_modules/type-fest/source/union-to-intersection.d.ts +0 -61
- package/node_modules/type-fest/source/unknown-array.d.ts +0 -25
- package/node_modules/type-fest/source/unknown-record.d.ts +0 -31
- package/node_modules/type-fest/source/value-of.d.ts +0 -42
- package/node_modules/type-fest/source/writable-deep.d.ts +0 -83
- package/node_modules/type-fest/source/writable-keys-of.d.ts +0 -30
- package/node_modules/type-fest/source/writable.d.ts +0 -68
- package/node_modules/use-callback-ref/LICENSE +0 -21
- package/node_modules/use-callback-ref/README.md +0 -170
- package/node_modules/use-callback-ref/dist/es2015/assignRef.d.ts +0 -15
- package/node_modules/use-callback-ref/dist/es2015/assignRef.js +0 -22
- package/node_modules/use-callback-ref/dist/es2015/createRef.d.ts +0 -10
- package/node_modules/use-callback-ref/dist/es2015/createRef.js +0 -23
- package/node_modules/use-callback-ref/dist/es2015/index.d.ts +0 -8
- package/node_modules/use-callback-ref/dist/es2015/index.js +0 -12
- package/node_modules/use-callback-ref/dist/es2015/mergeRef.d.ts +0 -16
- package/node_modules/use-callback-ref/dist/es2015/mergeRef.js +0 -18
- package/node_modules/use-callback-ref/dist/es2015/refToCallback.d.ts +0 -24
- package/node_modules/use-callback-ref/dist/es2015/refToCallback.js +0 -48
- package/node_modules/use-callback-ref/dist/es2015/transformRef.d.ts +0 -11
- package/node_modules/use-callback-ref/dist/es2015/transformRef.js +0 -14
- package/node_modules/use-callback-ref/dist/es2015/types.d.ts +0 -5
- package/node_modules/use-callback-ref/dist/es2015/types.js +0 -1
- package/node_modules/use-callback-ref/dist/es2015/useMergeRef.d.ts +0 -17
- package/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +0 -45
- package/node_modules/use-callback-ref/dist/es2015/useRef.d.ts +0 -16
- package/node_modules/use-callback-ref/dist/es2015/useRef.js +0 -39
- package/node_modules/use-callback-ref/dist/es2015/useTransformRef.d.ts +0 -15
- package/node_modules/use-callback-ref/dist/es2015/useTransformRef.js +0 -18
- package/node_modules/use-callback-ref/dist/es2019/assignRef.d.ts +0 -15
- package/node_modules/use-callback-ref/dist/es2019/assignRef.js +0 -22
- package/node_modules/use-callback-ref/dist/es2019/createRef.d.ts +0 -10
- package/node_modules/use-callback-ref/dist/es2019/createRef.js +0 -23
- package/node_modules/use-callback-ref/dist/es2019/index.d.ts +0 -8
- package/node_modules/use-callback-ref/dist/es2019/index.js +0 -12
- package/node_modules/use-callback-ref/dist/es2019/mergeRef.d.ts +0 -16
- package/node_modules/use-callback-ref/dist/es2019/mergeRef.js +0 -18
- package/node_modules/use-callback-ref/dist/es2019/refToCallback.d.ts +0 -24
- package/node_modules/use-callback-ref/dist/es2019/refToCallback.js +0 -48
- package/node_modules/use-callback-ref/dist/es2019/transformRef.d.ts +0 -11
- package/node_modules/use-callback-ref/dist/es2019/transformRef.js +0 -14
- package/node_modules/use-callback-ref/dist/es2019/types.d.ts +0 -5
- package/node_modules/use-callback-ref/dist/es2019/types.js +0 -1
- package/node_modules/use-callback-ref/dist/es2019/useMergeRef.d.ts +0 -17
- package/node_modules/use-callback-ref/dist/es2019/useMergeRef.js +0 -43
- package/node_modules/use-callback-ref/dist/es2019/useRef.d.ts +0 -16
- package/node_modules/use-callback-ref/dist/es2019/useRef.js +0 -39
- package/node_modules/use-callback-ref/dist/es2019/useTransformRef.d.ts +0 -15
- package/node_modules/use-callback-ref/dist/es2019/useTransformRef.js +0 -18
- package/node_modules/use-callback-ref/dist/es5/assignRef.d.ts +0 -15
- package/node_modules/use-callback-ref/dist/es5/assignRef.js +0 -26
- package/node_modules/use-callback-ref/dist/es5/createRef.d.ts +0 -10
- package/node_modules/use-callback-ref/dist/es5/createRef.js +0 -27
- package/node_modules/use-callback-ref/dist/es5/index.d.ts +0 -8
- package/node_modules/use-callback-ref/dist/es5/index.js +0 -24
- package/node_modules/use-callback-ref/dist/es5/mergeRef.d.ts +0 -16
- package/node_modules/use-callback-ref/dist/es5/mergeRef.js +0 -22
- package/node_modules/use-callback-ref/dist/es5/refToCallback.d.ts +0 -24
- package/node_modules/use-callback-ref/dist/es5/refToCallback.js +0 -53
- package/node_modules/use-callback-ref/dist/es5/transformRef.d.ts +0 -11
- package/node_modules/use-callback-ref/dist/es5/transformRef.js +0 -18
- package/node_modules/use-callback-ref/dist/es5/types.d.ts +0 -5
- package/node_modules/use-callback-ref/dist/es5/types.js +0 -2
- package/node_modules/use-callback-ref/dist/es5/useMergeRef.d.ts +0 -17
- package/node_modules/use-callback-ref/dist/es5/useMergeRef.js +0 -50
- package/node_modules/use-callback-ref/dist/es5/useRef.d.ts +0 -16
- package/node_modules/use-callback-ref/dist/es5/useRef.js +0 -43
- package/node_modules/use-callback-ref/dist/es5/useTransformRef.d.ts +0 -15
- package/node_modules/use-callback-ref/dist/es5/useTransformRef.js +0 -22
- package/node_modules/use-callback-ref/package.json +0 -84
- package/node_modules/use-sidecar/LICENSE +0 -21
- package/node_modules/use-sidecar/README.md +0 -349
- package/node_modules/use-sidecar/dist/es2015/config.d.ts +0 -5
- package/node_modules/use-sidecar/dist/es2015/config.js +0 -6
- package/node_modules/use-sidecar/dist/es2015/env.d.ts +0 -4
- package/node_modules/use-sidecar/dist/es2015/env.js +0 -5
- package/node_modules/use-sidecar/dist/es2015/exports.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es2015/exports.js +0 -18
- package/node_modules/use-sidecar/dist/es2015/hoc.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es2015/hoc.js +0 -15
- package/node_modules/use-sidecar/dist/es2015/hook.d.ts +0 -2
- package/node_modules/use-sidecar/dist/es2015/hook.js +0 -41
- package/node_modules/use-sidecar/dist/es2015/index.d.ts +0 -7
- package/node_modules/use-sidecar/dist/es2015/index.js +0 -6
- package/node_modules/use-sidecar/dist/es2015/medium.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es2015/medium.js +0 -78
- package/node_modules/use-sidecar/dist/es2015/renderProp.d.ts +0 -8
- package/node_modules/use-sidecar/dist/es2015/renderProp.js +0 -35
- package/node_modules/use-sidecar/dist/es2015/types.d.ts +0 -47
- package/node_modules/use-sidecar/dist/es2015/types.js +0 -1
- package/node_modules/use-sidecar/dist/es2019/config.d.ts +0 -5
- package/node_modules/use-sidecar/dist/es2019/config.js +0 -6
- package/node_modules/use-sidecar/dist/es2019/env.d.ts +0 -4
- package/node_modules/use-sidecar/dist/es2019/env.js +0 -5
- package/node_modules/use-sidecar/dist/es2019/exports.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es2019/exports.js +0 -16
- package/node_modules/use-sidecar/dist/es2019/hoc.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es2019/hoc.js +0 -14
- package/node_modules/use-sidecar/dist/es2019/hook.d.ts +0 -2
- package/node_modules/use-sidecar/dist/es2019/hook.js +0 -41
- package/node_modules/use-sidecar/dist/es2019/index.d.ts +0 -7
- package/node_modules/use-sidecar/dist/es2019/index.js +0 -6
- package/node_modules/use-sidecar/dist/es2019/medium.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es2019/medium.js +0 -78
- package/node_modules/use-sidecar/dist/es2019/renderProp.d.ts +0 -8
- package/node_modules/use-sidecar/dist/es2019/renderProp.js +0 -28
- package/node_modules/use-sidecar/dist/es2019/types.d.ts +0 -47
- package/node_modules/use-sidecar/dist/es2019/types.js +0 -1
- package/node_modules/use-sidecar/dist/es5/config.d.ts +0 -5
- package/node_modules/use-sidecar/dist/es5/config.js +0 -10
- package/node_modules/use-sidecar/dist/es5/env.d.ts +0 -4
- package/node_modules/use-sidecar/dist/es5/env.js +0 -8
- package/node_modules/use-sidecar/dist/es5/exports.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es5/exports.js +0 -22
- package/node_modules/use-sidecar/dist/es5/hoc.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es5/hoc.js +0 -19
- package/node_modules/use-sidecar/dist/es5/hook.d.ts +0 -2
- package/node_modules/use-sidecar/dist/es5/hook.js +0 -45
- package/node_modules/use-sidecar/dist/es5/index.d.ts +0 -7
- package/node_modules/use-sidecar/dist/es5/index.js +0 -16
- package/node_modules/use-sidecar/dist/es5/medium.d.ts +0 -3
- package/node_modules/use-sidecar/dist/es5/medium.js +0 -83
- package/node_modules/use-sidecar/dist/es5/renderProp.d.ts +0 -8
- package/node_modules/use-sidecar/dist/es5/renderProp.js +0 -39
- package/node_modules/use-sidecar/dist/es5/types.d.ts +0 -47
- package/node_modules/use-sidecar/dist/es5/types.js +0 -2
- package/node_modules/use-sidecar/package.json +0 -89
- package/node_modules/zod/LICENSE +0 -21
- package/node_modules/zod/README.md +0 -2876
- package/node_modules/zod/index.d.ts +0 -2
- package/node_modules/zod/lib/ZodError.d.ts +0 -164
- package/node_modules/zod/lib/ZodError.js +0 -137
- package/node_modules/zod/lib/__tests__/Mocker.d.ts +0 -17
- package/node_modules/zod/lib/__tests__/Mocker.js +0 -57
- package/node_modules/zod/lib/benchmarks/datetime.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/datetime.js +0 -54
- package/node_modules/zod/lib/benchmarks/discriminatedUnion.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/discriminatedUnion.js +0 -79
- package/node_modules/zod/lib/benchmarks/index.d.ts +0 -1
- package/node_modules/zod/lib/benchmarks/index.js +0 -59
- package/node_modules/zod/lib/benchmarks/ipv4.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/ipv4.js +0 -54
- package/node_modules/zod/lib/benchmarks/object.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/object.js +0 -70
- package/node_modules/zod/lib/benchmarks/primitives.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/primitives.js +0 -170
- package/node_modules/zod/lib/benchmarks/realworld.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/realworld.js +0 -56
- package/node_modules/zod/lib/benchmarks/string.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/string.js +0 -55
- package/node_modules/zod/lib/benchmarks/union.d.ts +0 -5
- package/node_modules/zod/lib/benchmarks/union.js +0 -79
- package/node_modules/zod/lib/errors.d.ts +0 -5
- package/node_modules/zod/lib/errors.js +0 -17
- package/node_modules/zod/lib/external.d.ts +0 -6
- package/node_modules/zod/lib/external.js +0 -18
- package/node_modules/zod/lib/helpers/enumUtil.d.ts +0 -8
- package/node_modules/zod/lib/helpers/enumUtil.js +0 -2
- package/node_modules/zod/lib/helpers/errorUtil.d.ts +0 -9
- package/node_modules/zod/lib/helpers/errorUtil.js +0 -8
- package/node_modules/zod/lib/helpers/parseUtil.d.ts +0 -78
- package/node_modules/zod/lib/helpers/parseUtil.js +0 -125
- package/node_modules/zod/lib/helpers/partialUtil.d.ts +0 -8
- package/node_modules/zod/lib/helpers/partialUtil.js +0 -2
- package/node_modules/zod/lib/helpers/typeAliases.d.ts +0 -2
- package/node_modules/zod/lib/helpers/typeAliases.js +0 -2
- package/node_modules/zod/lib/helpers/util.d.ts +0 -82
- package/node_modules/zod/lib/helpers/util.js +0 -142
- package/node_modules/zod/lib/index.d.ts +0 -4
- package/node_modules/zod/lib/index.js +0 -29
- package/node_modules/zod/lib/index.mjs +0 -4236
- package/node_modules/zod/lib/index.umd.js +0 -4351
- package/node_modules/zod/lib/locales/en.d.ts +0 -3
- package/node_modules/zod/lib/locales/en.js +0 -129
- package/node_modules/zod/lib/types.d.ts +0 -1127
- package/node_modules/zod/lib/types.js +0 -3677
- package/node_modules/zod/package.json +0 -119
package/build/server/index.js
CHANGED
|
@@ -1,37 +1,17 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { PassThrough } from "stream";
|
|
3
|
-
import { createReadableStreamFromReadable,
|
|
4
|
-
import { RemixServer, Link, useRouteError, useParams, isRouteErrorResponse, useNavigation, useFetchers, useRouteLoaderData, useRevalidator, useLocation, json, redirect
|
|
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
|
|
8
|
-
import
|
|
9
|
-
import
|
|
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
|
|
18
|
-
import
|
|
19
|
-
import "@
|
|
20
|
-
import
|
|
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,405 +114,6 @@ 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
117
|
const partykitRoom = "epic-web-presence";
|
|
525
118
|
const partykitBaseUrl = `https://epic-web-presence.kentcdodds.partykit.dev/parties/main/${partykitRoom}`;
|
|
526
119
|
const UserSchema = z.object({
|
|
@@ -600,1835 +193,6 @@ function uniqueUsers(users) {
|
|
|
600
193
|
return true;
|
|
601
194
|
});
|
|
602
195
|
}
|
|
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;
|
|
2277
|
-
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;
|
|
2286
|
-
} catch {
|
|
2287
|
-
return true;
|
|
2288
|
-
}
|
|
2289
|
-
}
|
|
2290
|
-
});
|
|
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
|
-
}
|
|
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) };
|
|
2402
|
-
}
|
|
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;
|
|
2431
|
-
}
|
|
2432
196
|
function Confetti({ id }) {
|
|
2433
197
|
if (!id) return null;
|
|
2434
198
|
return /* @__PURE__ */ jsx(ClientOnly, { children: () => /* @__PURE__ */ jsx(
|
|
@@ -2750,18 +514,18 @@ function getErrorMessage(error, defaultMessage = "Unknown Error") {
|
|
|
2750
514
|
return defaultMessage;
|
|
2751
515
|
}
|
|
2752
516
|
function formatColors() {
|
|
2753
|
-
const
|
|
517
|
+
const colors = [];
|
|
2754
518
|
for (const [key, color] of Object.entries(extendedTheme.colors)) {
|
|
2755
519
|
if (typeof color === "string") {
|
|
2756
|
-
|
|
520
|
+
colors.push(key);
|
|
2757
521
|
} else {
|
|
2758
522
|
const colorGroup = Object.keys(color).map(
|
|
2759
523
|
(subKey) => subKey === "DEFAULT" ? "" : subKey
|
|
2760
524
|
);
|
|
2761
|
-
|
|
525
|
+
colors.push({ [key]: colorGroup });
|
|
2762
526
|
}
|
|
2763
527
|
}
|
|
2764
|
-
return
|
|
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
|
|
777
|
+
throw redirect(safeRedirect(redirectTo), responseInit == null ? void 0 : responseInit());
|
|
3014
778
|
}
|
|
3015
779
|
}
|
|
3016
780
|
function jsonWithPE(formData, ...args) {
|
|
@@ -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,
|
|
3708
|
-
return redirect(url, {
|
|
3709
|
-
...
|
|
3710
|
-
headers: combineHeaders(
|
|
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
|
|
1580
|
+
separator: path.sep
|
|
3817
1581
|
},
|
|
3818
1582
|
toast: toast2,
|
|
3819
1583
|
confettiId,
|
|
@@ -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);
|
|
@@ -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
|
|
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: {
|
|
@@ -5949,13 +3713,13 @@ async function loader$t({ request, params }) {
|
|
|
5949
3713
|
throw new Response(`Apps not found`, { status: 404 });
|
|
5950
3714
|
}
|
|
5951
3715
|
if (app.dev.type === "script") {
|
|
5952
|
-
return redirect(getBaseUrl({ request, port: app.dev.portNumber }));
|
|
3716
|
+
return redirect$1(getBaseUrl({ request, port: app.dev.portNumber }));
|
|
5953
3717
|
}
|
|
5954
3718
|
const splat = params["*"];
|
|
5955
3719
|
invariantResponse(splat, "splat required");
|
|
5956
3720
|
const filePath = await firstExisting(
|
|
5957
|
-
path.join(app.fullPath, splat),
|
|
5958
|
-
path.join(fileApp.fullPath, splat)
|
|
3721
|
+
path$1.join(app.fullPath, splat),
|
|
3722
|
+
path$1.join(fileApp.fullPath, splat)
|
|
5959
3723
|
);
|
|
5960
3724
|
if (!filePath) {
|
|
5961
3725
|
throw new Response("File not found", { status: 404 });
|
|
@@ -6041,9 +3805,9 @@ async function getApiModule({ request, params }) {
|
|
|
6041
3805
|
throw new Response(`Apps not found`, { status: 404 });
|
|
6042
3806
|
}
|
|
6043
3807
|
if (app.dev.type === "script") {
|
|
6044
|
-
throw redirect(getBaseUrl({ request, port: app.dev.portNumber }));
|
|
3808
|
+
throw redirect$1(getBaseUrl({ request, port: app.dev.portNumber }));
|
|
6045
3809
|
}
|
|
6046
|
-
const apiFiles = (await fsExtra.readdir(app.fullPath)).filter((file) => /^api\.server\.(ts|tsx|js|jsx)$/.test(file)).map((f) => path
|
|
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));
|
|
6047
3811
|
const apiFile = apiFiles[0];
|
|
6048
3812
|
if (!apiFile) {
|
|
6049
3813
|
throw new Response(
|
|
@@ -6114,7 +3878,7 @@ async function loader$r({ request, params }) {
|
|
|
6114
3878
|
throw new Response(`Apps not found`, { status: 404 });
|
|
6115
3879
|
}
|
|
6116
3880
|
if (app.dev.type === "script") {
|
|
6117
|
-
return redirect(getBaseUrl({ request, port: app.dev.portNumber }));
|
|
3881
|
+
return redirect$1(getBaseUrl({ request, port: app.dev.portNumber }));
|
|
6118
3882
|
}
|
|
6119
3883
|
const relevantPaths = Array.from(/* @__PURE__ */ new Set([app.fullPath, fileApp.fullPath]));
|
|
6120
3884
|
const watchParams = new URLSearchParams();
|
|
@@ -6187,7 +3951,7 @@ async function loader$q({ request, params }) {
|
|
|
6187
3951
|
throw new Response(`Apps not found`, { status: 404 });
|
|
6188
3952
|
}
|
|
6189
3953
|
if (app.dev.type === "script") {
|
|
6190
|
-
return redirect(getBaseUrl({ request, port: app.dev.portNumber }), {
|
|
3954
|
+
return redirect$1(getBaseUrl({ request, port: app.dev.portNumber }), {
|
|
6191
3955
|
headers: { "Server-Timing": getServerTimeHeader(timings) }
|
|
6192
3956
|
});
|
|
6193
3957
|
}
|
|
@@ -6197,7 +3961,7 @@ async function loader$q({ request, params }) {
|
|
|
6197
3961
|
{ status: 400 }
|
|
6198
3962
|
);
|
|
6199
3963
|
}
|
|
6200
|
-
const htmlFile = path.join(app.fullPath, "index.html");
|
|
3964
|
+
const htmlFile = path$1.join(app.fullPath, "index.html");
|
|
6201
3965
|
const hasHtml = await fsExtra.pathExists(htmlFile);
|
|
6202
3966
|
if (hasHtml) {
|
|
6203
3967
|
const html2 = await fsExtra.readFile(htmlFile);
|
|
@@ -6345,7 +4109,7 @@ import(${JSON.stringify(testScriptPath)}).then(
|
|
|
6345
4109
|
`
|
|
6346
4110
|
);
|
|
6347
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>`;
|
|
6348
|
-
const htmlFile = path.join(app.fullPath, "index.html");
|
|
4112
|
+
const htmlFile = path$1.join(app.fullPath, "index.html");
|
|
6349
4113
|
const hasHtml = await fsExtra.pathExists(htmlFile);
|
|
6350
4114
|
if (hasHtml) {
|
|
6351
4115
|
const html2 = (await fsExtra.readFile(htmlFile)).toString();
|
|
@@ -7255,8 +5019,8 @@ function useApps() {
|
|
|
7255
5019
|
}
|
|
7256
5020
|
function readablePath(filePath = "") {
|
|
7257
5021
|
const relative = getRelativePath$1(filePath);
|
|
7258
|
-
const name = path.basename(relative);
|
|
7259
|
-
const dir = path.dirname(relative);
|
|
5022
|
+
const name = path$1.basename(relative);
|
|
5023
|
+
const dir = path$1.dirname(relative);
|
|
7260
5024
|
return `'${name}' from:
|
|
7261
5025
|
'${dir}'`;
|
|
7262
5026
|
}
|
|
@@ -7345,7 +5109,7 @@ function addWorkspaceToArgumentsIfExists(args, workspace) {
|
|
|
7345
5109
|
return args;
|
|
7346
5110
|
}
|
|
7347
5111
|
function getArgumentsForLineNumber(editor, fileName, lineNumber, colNumber, workspace) {
|
|
7348
|
-
const editorBasename = path.basename(editor).replace(/\.(exe|cmd|bat)$/i, "");
|
|
5112
|
+
const editorBasename = path$1.basename(editor).replace(/\.(exe|cmd|bat)$/i, "");
|
|
7349
5113
|
switch (editorBasename) {
|
|
7350
5114
|
case "atom":
|
|
7351
5115
|
case "Atom":
|
|
@@ -7428,7 +5192,7 @@ function guessEditor() {
|
|
|
7428
5192
|
for (let i = 0; i < runningProcesses.length; i++) {
|
|
7429
5193
|
const processPath = (_a = runningProcesses[i]) == null ? void 0 : _a.trim();
|
|
7430
5194
|
if (!processPath) continue;
|
|
7431
|
-
const processName = path.basename(processPath);
|
|
5195
|
+
const processName = path$1.basename(processPath);
|
|
7432
5196
|
if (COMMON_EDITORS_WIN.includes(processName)) {
|
|
7433
5197
|
return [processPath];
|
|
7434
5198
|
}
|
|
@@ -7477,7 +5241,7 @@ async function launchEditor(pathList, lineNumber = 1, colNumber = 1) {
|
|
|
7477
5241
|
const { fileList, errorsList } = pathList.reduce(
|
|
7478
5242
|
(acc, fileName) => {
|
|
7479
5243
|
if (process.platform === "linux" && fileName.startsWith("/mnt/") && /Microsoft/i.test(os.release())) {
|
|
7480
|
-
fileName = path.relative("", fileName);
|
|
5244
|
+
fileName = path$1.relative("", fileName);
|
|
7481
5245
|
}
|
|
7482
5246
|
if (process.platform === "win32" && !WINDOWS_FILE_NAME_WHITELIST.test(
|
|
7483
5247
|
// replacing characters we know are fine (because heck if I'm going to edit that regex above 🙃)
|
|
@@ -7486,7 +5250,7 @@ async function launchEditor(pathList, lineNumber = 1, colNumber = 1) {
|
|
|
7486
5250
|
acc.errorsList.push(fileName);
|
|
7487
5251
|
} else {
|
|
7488
5252
|
if (!fs.existsSync(fileName)) {
|
|
7489
|
-
fsExtra.ensureDirSync(path.dirname(fileName));
|
|
5253
|
+
fsExtra.ensureDirSync(path$1.dirname(fileName));
|
|
7490
5254
|
fsExtra.writeFileSync(fileName, "", "utf8");
|
|
7491
5255
|
}
|
|
7492
5256
|
acc.fileList.push(fileName.trim());
|
|
@@ -7651,7 +5415,7 @@ async function action$6({ request }) {
|
|
|
7651
5415
|
);
|
|
7652
5416
|
}
|
|
7653
5417
|
return {
|
|
7654
|
-
filepath: path.join(fileDescriptorApp.fullPath, filePath),
|
|
5418
|
+
filepath: path$1.join(fileDescriptorApp.fullPath, filePath),
|
|
7655
5419
|
line: Number(line),
|
|
7656
5420
|
column: Number(column)
|
|
7657
5421
|
};
|
|
@@ -7670,7 +5434,7 @@ async function action$6({ request }) {
|
|
|
7670
5434
|
`Trying to sync to a file that does not appear at index ${index}`
|
|
7671
5435
|
);
|
|
7672
5436
|
}
|
|
7673
|
-
await fsExtra.ensureDir(path.dirname(destFile.filepath));
|
|
5437
|
+
await fsExtra.ensureDir(path$1.dirname(destFile.filepath));
|
|
7674
5438
|
await fsExtra.promises.copyFile(originFile.filepath, destFile.filepath);
|
|
7675
5439
|
}
|
|
7676
5440
|
}
|
|
@@ -8058,7 +5822,7 @@ async function loader$n({ request, params }) {
|
|
|
8058
5822
|
if (!exercise) {
|
|
8059
5823
|
throw new Response("Not found", { status: 404 });
|
|
8060
5824
|
}
|
|
8061
|
-
const readmeFilepath = path.join(
|
|
5825
|
+
const readmeFilepath = path$1.join(
|
|
8062
5826
|
workshopRoot,
|
|
8063
5827
|
"exercises",
|
|
8064
5828
|
exercise.dirName,
|
|
@@ -8301,19 +6065,19 @@ function NavChevrons({
|
|
|
8301
6065
|
) : null
|
|
8302
6066
|
] });
|
|
8303
6067
|
}
|
|
8304
|
-
const epicshopTempDir = path.join(os.tmpdir(), "epicshop");
|
|
6068
|
+
const epicshopTempDir = path$1.join(os.tmpdir(), "epicshop");
|
|
8305
6069
|
const isDeployed = ENV.EPICSHOP_DEPLOYED;
|
|
8306
|
-
const diffTmpDir = path.join(epicshopTempDir, "diff");
|
|
6070
|
+
const diffTmpDir = path$1.join(epicshopTempDir, "diff");
|
|
8307
6071
|
function diffPathToRelative(filePath) {
|
|
8308
|
-
let normalizedPath = path.normalize(filePath).replace(/^("|')|("|')$/g, "");
|
|
6072
|
+
let normalizedPath = path$1.normalize(filePath).replace(/^("|')|("|')$/g, "");
|
|
8309
6073
|
if (normalizedPath.startsWith("a\\") || normalizedPath.startsWith("b\\") || normalizedPath.startsWith("a/") || normalizedPath.startsWith("b/")) {
|
|
8310
6074
|
normalizedPath = normalizedPath.slice(2);
|
|
8311
6075
|
}
|
|
8312
6076
|
const [workshopRootDirname, appId, id, ...relativePath] = normalizedPath.replace(
|
|
8313
|
-
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}`,
|
|
8314
6078
|
""
|
|
8315
|
-
).split(path.sep);
|
|
8316
|
-
return relativePath.join(path.sep);
|
|
6079
|
+
).split(path$1.sep);
|
|
6080
|
+
return relativePath.join(path$1.sep);
|
|
8317
6081
|
}
|
|
8318
6082
|
function getLanguage(ext) {
|
|
8319
6083
|
var _a;
|
|
@@ -8331,7 +6095,7 @@ function getFileCodeblocks(file, filePathApp1, filePathApp2, type) {
|
|
|
8331
6095
|
const filepath = diffPathToRelative(
|
|
8332
6096
|
file.type === "RenamedFile" ? file.pathAfter : file.path
|
|
8333
6097
|
);
|
|
8334
|
-
const extension = path.extname(filepath).slice(1);
|
|
6098
|
+
const extension = path$1.extname(filepath).slice(1);
|
|
8335
6099
|
const lang = getLanguage(extension);
|
|
8336
6100
|
const pathToCopy = file.type === "RenamedFile" ? file.pathBefore : file.path;
|
|
8337
6101
|
const relativePath = diffPathToRelative(pathToCopy);
|
|
@@ -8440,7 +6204,7 @@ async function copyUnignoredFiles(srcDir, destDir, ignoreList) {
|
|
|
8440
6204
|
await fsExtra.copy(srcDir, destDir, {
|
|
8441
6205
|
filter: async (file) => {
|
|
8442
6206
|
if (file === srcDir) return true;
|
|
8443
|
-
return !ig.ignores(path.relative(srcDir, file));
|
|
6207
|
+
return !ig.ignores(path$1.relative(srcDir, file));
|
|
8444
6208
|
}
|
|
8445
6209
|
});
|
|
8446
6210
|
}
|
|
@@ -8448,15 +6212,15 @@ async function copyUnignoredFiles(srcDir, destDir, ignoreList) {
|
|
|
8448
6212
|
}
|
|
8449
6213
|
async function prepareForDiff(app1, app2) {
|
|
8450
6214
|
const id = Math.random().toString(36).slice(2);
|
|
8451
|
-
const app1CopyPath = path.join(
|
|
6215
|
+
const app1CopyPath = path$1.join(
|
|
8452
6216
|
diffTmpDir,
|
|
8453
|
-
path.basename(workshopRoot),
|
|
6217
|
+
path$1.basename(workshopRoot),
|
|
8454
6218
|
app1.name,
|
|
8455
6219
|
id
|
|
8456
6220
|
);
|
|
8457
|
-
const app2CopyPath = path.join(
|
|
6221
|
+
const app2CopyPath = path$1.join(
|
|
8458
6222
|
diffTmpDir,
|
|
8459
|
-
path.basename(workshopRoot),
|
|
6223
|
+
path$1.basename(workshopRoot),
|
|
8460
6224
|
app2.name,
|
|
8461
6225
|
id
|
|
8462
6226
|
);
|
|
@@ -8465,13 +6229,13 @@ async function prepareForDiff(app1, app2) {
|
|
|
8465
6229
|
const { name: name2, ...rest2 } = pkg2;
|
|
8466
6230
|
return JSON.stringify(rest1) === JSON.stringify(rest2);
|
|
8467
6231
|
};
|
|
8468
|
-
const app1PkgJson = app1.dev.type === "script" ? await fsExtra.readJSON(path.join(app1.fullPath, "package.json")) : {};
|
|
8469
|
-
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")) : {};
|
|
8470
6234
|
const pkgJsonIgnore = comparePkgJson(app1PkgJson, app2PkgJson) ? ["package.json"] : [];
|
|
8471
6235
|
const workshopIgnore = [
|
|
8472
|
-
...await getDiffIgnore(path.join(workshopRoot, ".gitignore")),
|
|
6236
|
+
...await getDiffIgnore(path$1.join(workshopRoot, ".gitignore")),
|
|
8473
6237
|
...await getDiffIgnore(
|
|
8474
|
-
path.join(workshopRoot, "epicshop", ".diffignore")
|
|
6238
|
+
path$1.join(workshopRoot, "epicshop", ".diffignore")
|
|
8475
6239
|
)
|
|
8476
6240
|
];
|
|
8477
6241
|
await Promise.all([
|
|
@@ -8479,18 +6243,18 @@ async function prepareForDiff(app1, app2) {
|
|
|
8479
6243
|
...DEFAULT_IGNORE_PATTERNS,
|
|
8480
6244
|
...pkgJsonIgnore,
|
|
8481
6245
|
...workshopIgnore,
|
|
8482
|
-
...await getDiffIgnore(path.join(app1.fullPath, ".gitignore")),
|
|
6246
|
+
...await getDiffIgnore(path$1.join(app1.fullPath, ".gitignore")),
|
|
8483
6247
|
...await getDiffIgnore(
|
|
8484
|
-
path.join(app1.fullPath, "epicshop", ".diffignore")
|
|
6248
|
+
path$1.join(app1.fullPath, "epicshop", ".diffignore")
|
|
8485
6249
|
)
|
|
8486
6250
|
]),
|
|
8487
6251
|
copyUnignoredFiles(app2.fullPath, app2CopyPath, [
|
|
8488
6252
|
...DEFAULT_IGNORE_PATTERNS,
|
|
8489
6253
|
...pkgJsonIgnore,
|
|
8490
6254
|
...workshopIgnore,
|
|
8491
|
-
...await getDiffIgnore(path.join(app2.fullPath, ".gitignore")),
|
|
6255
|
+
...await getDiffIgnore(path$1.join(app2.fullPath, ".gitignore")),
|
|
8492
6256
|
...await getDiffIgnore(
|
|
8493
|
-
path.join(app2.fullPath, "epicshop", ".diffignore")
|
|
6257
|
+
path$1.join(app2.fullPath, "epicshop", ".diffignore")
|
|
8494
6258
|
)
|
|
8495
6259
|
])
|
|
8496
6260
|
]);
|
|
@@ -8631,11 +6395,11 @@ async function getDiffCodeImpl(app1, app2) {
|
|
|
8631
6395
|
const pathToCopy = file.type === "RenamedFile" ? file.pathBefore : file.path;
|
|
8632
6396
|
const relativePath = diffPathToRelative(pathToCopy);
|
|
8633
6397
|
if (app1TestFiles.includes(relativePath)) continue;
|
|
8634
|
-
const filePathApp1 = path.join(app1.fullPath, relativePath);
|
|
6398
|
+
const filePathApp1 = path$1.join(app1.fullPath, relativePath);
|
|
8635
6399
|
const pathToApp2 = file.type === "RenamedFile" ? file.pathAfter : file.path;
|
|
8636
6400
|
const relativePathApp2 = diffPathToRelative(pathToApp2);
|
|
8637
6401
|
if (app2TestFiles.includes(relativePathApp2)) continue;
|
|
8638
|
-
const filePathApp2 = path.join(app2.fullPath, relativePathApp2);
|
|
6402
|
+
const filePathApp2 = path$1.join(app2.fullPath, relativePathApp2);
|
|
8639
6403
|
switch (file.type) {
|
|
8640
6404
|
case "ChangedFile": {
|
|
8641
6405
|
markdownLines.push(`
|
|
@@ -8948,7 +6712,7 @@ function DiffLink({
|
|
|
8948
6712
|
/* @__PURE__ */ jsx("callout-danger", { className: "notification", children: /* @__PURE__ */ jsx("div", { className: "title", children: "DiffLink Error: invalid input" }) })
|
|
8949
6713
|
);
|
|
8950
6714
|
}
|
|
8951
|
-
function
|
|
6715
|
+
function getAppName(input) {
|
|
8952
6716
|
var _a;
|
|
8953
6717
|
if (typeof input === "number") {
|
|
8954
6718
|
const stepIndex = data.exerciseIndex + input;
|
|
@@ -8967,8 +6731,8 @@ function DiffLink({
|
|
|
8967
6731
|
app1 = params.get("app1");
|
|
8968
6732
|
app2 = params.get("app2");
|
|
8969
6733
|
}
|
|
8970
|
-
const app1Name =
|
|
8971
|
-
const app2Name =
|
|
6734
|
+
const app1Name = getAppName(app1);
|
|
6735
|
+
const app2Name = getAppName(app2);
|
|
8972
6736
|
if (!app1Name || !app2Name) {
|
|
8973
6737
|
return (
|
|
8974
6738
|
// @ts-expect-error 🤷♂️
|
|
@@ -9183,13 +6947,13 @@ function pageTitle(data, workshopTitle) {
|
|
|
9183
6947
|
var _a;
|
|
9184
6948
|
const exerciseNumber = (data == null ? void 0 : data.exerciseStepApp.exerciseNumber.toString().padStart(2, "0")) ?? "00";
|
|
9185
6949
|
const stepNumber = (data == null ? void 0 : data.exerciseStepApp.stepNumber.toString().padStart(2, "0")) ?? "00";
|
|
9186
|
-
const
|
|
6950
|
+
const emoji = {
|
|
9187
6951
|
problem: "💪",
|
|
9188
6952
|
solution: "🏁"
|
|
9189
6953
|
}[(data == null ? void 0 : data.type) ?? "problem"];
|
|
9190
6954
|
const title = ((_a = data == null ? void 0 : data[data.type]) == null ? void 0 : _a.title) ?? "N/A";
|
|
9191
6955
|
return {
|
|
9192
|
-
emoji
|
|
6956
|
+
emoji,
|
|
9193
6957
|
stepNumber,
|
|
9194
6958
|
title,
|
|
9195
6959
|
exerciseNumber,
|
|
@@ -9206,9 +6970,9 @@ const meta$3 = ({
|
|
|
9206
6970
|
var _a;
|
|
9207
6971
|
const rootData = (_a = matches.find((m) => m.id === "root")) == null ? void 0 : _a.data;
|
|
9208
6972
|
if (!data || !rootData) return [{ title: "🦉 | Error" }];
|
|
9209
|
-
const { emoji
|
|
6973
|
+
const { emoji, stepNumber, title, exerciseNumber, exerciseTitle } = pageTitle(data);
|
|
9210
6974
|
return getSeoMetaTags({
|
|
9211
|
-
title: `${
|
|
6975
|
+
title: `${emoji} | ${stepNumber}. ${title} | ${exerciseNumber}. ${exerciseTitle} | ${rootData.workshopTitle}`,
|
|
9212
6976
|
description: `${params.type} step for exercise ${exerciseNumber}. ${exerciseTitle}`,
|
|
9213
6977
|
ogTitle: title,
|
|
9214
6978
|
ogDescription: `${exerciseTitle} step ${Number(stepNumber)} ${params.type}`,
|
|
@@ -9231,7 +6995,7 @@ async function loader$l({ request, params }) {
|
|
|
9231
6995
|
const pathnameParam = reqUrl.searchParams.get("pathname");
|
|
9232
6996
|
if (pathnameParam === "" || pathnameParam === "/") {
|
|
9233
6997
|
reqUrl.searchParams.delete("pathname");
|
|
9234
|
-
throw redirect(reqUrl.toString());
|
|
6998
|
+
throw redirect$1(reqUrl.toString());
|
|
9235
6999
|
}
|
|
9236
7000
|
const problemApp = await getExerciseApp(
|
|
9237
7001
|
{ ...params, type: "problem" },
|
|
@@ -11428,7 +9192,7 @@ async function loader$i({ request, params }) {
|
|
|
11428
9192
|
const pathnameParam = reqUrl.searchParams.get("pathname");
|
|
11429
9193
|
if (pathnameParam === "" || pathnameParam === "/") {
|
|
11430
9194
|
reqUrl.searchParams.delete("pathname");
|
|
11431
|
-
throw redirect(reqUrl.toString());
|
|
9195
|
+
throw redirect$1(reqUrl.toString());
|
|
11432
9196
|
}
|
|
11433
9197
|
const problemApp = await getExerciseApp(
|
|
11434
9198
|
{ ...params, type: "problem" },
|
|
@@ -11770,7 +9534,7 @@ async function loader$g({ params }) {
|
|
|
11770
9534
|
(a) => isProblemApp(a) ? a : null
|
|
11771
9535
|
);
|
|
11772
9536
|
if (problemApp) {
|
|
11773
|
-
return redirect(
|
|
9537
|
+
return redirect$1(
|
|
11774
9538
|
`/exercise/${params.exerciseNumber}/${params.stepNumber}/problem`
|
|
11775
9539
|
);
|
|
11776
9540
|
}
|
|
@@ -11779,7 +9543,7 @@ async function loader$g({ params }) {
|
|
|
11779
9543
|
type: "solution"
|
|
11780
9544
|
}).then((a) => isSolutionApp(a) ? a : null);
|
|
11781
9545
|
if (solutionApp) {
|
|
11782
|
-
return redirect(
|
|
9546
|
+
return redirect$1(
|
|
11783
9547
|
`/exercise/${params.exerciseNumber}/${params.stepNumber}/solution`
|
|
11784
9548
|
);
|
|
11785
9549
|
}
|
|
@@ -11823,7 +9587,7 @@ async function loader$f({ request, params }) {
|
|
|
11823
9587
|
timings,
|
|
11824
9588
|
request
|
|
11825
9589
|
});
|
|
11826
|
-
const finishedFilepath = path.join(
|
|
9590
|
+
const finishedFilepath = path$1.join(
|
|
11827
9591
|
workshopRoot,
|
|
11828
9592
|
"exercises",
|
|
11829
9593
|
exercise.dirName,
|
|
@@ -12366,7 +10130,7 @@ const handle$3 = {
|
|
|
12366
10130
|
async function loader$b() {
|
|
12367
10131
|
ensureUndeployed();
|
|
12368
10132
|
const isAuthenticated = Boolean(await getAuthInfo());
|
|
12369
|
-
if (isAuthenticated) throw redirect("/account");
|
|
10133
|
+
if (isAuthenticated) throw redirect$1("/account");
|
|
12370
10134
|
return json$1({});
|
|
12371
10135
|
}
|
|
12372
10136
|
async function action$2() {
|
|
@@ -12552,7 +10316,7 @@ async function clearData() {
|
|
|
12552
10316
|
}
|
|
12553
10317
|
async function clearCaches() {
|
|
12554
10318
|
if (ENV.EPICSHOP_DEPLOYED) return;
|
|
12555
|
-
await fsExtra.remove(path
|
|
10319
|
+
await fsExtra.remove(path.join(workshopRoot, "node_modules", ".cache"));
|
|
12556
10320
|
await deleteCache();
|
|
12557
10321
|
}
|
|
12558
10322
|
async function startInspector() {
|
|
@@ -12588,7 +10352,7 @@ async function loader$a({ request }) {
|
|
|
12588
10352
|
(a, i, ar) => ar.findIndex((b) => a.name === b.name) === i
|
|
12589
10353
|
);
|
|
12590
10354
|
const processes = {};
|
|
12591
|
-
const
|
|
10355
|
+
const testProcesses = {};
|
|
12592
10356
|
for (const [
|
|
12593
10357
|
name,
|
|
12594
10358
|
{ port: port2, process: process2, color }
|
|
@@ -12599,13 +10363,13 @@ async function loader$a({ request }) {
|
|
|
12599
10363
|
name,
|
|
12600
10364
|
{ process: process2, exitCode }
|
|
12601
10365
|
] of getProcesses().testProcesses.entries()) {
|
|
12602
|
-
|
|
10366
|
+
testProcesses[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode };
|
|
12603
10367
|
}
|
|
12604
10368
|
return json$1(
|
|
12605
10369
|
{
|
|
12606
10370
|
apps,
|
|
12607
10371
|
processes,
|
|
12608
|
-
testProcesses
|
|
10372
|
+
testProcesses,
|
|
12609
10373
|
inspectorRunning: global.__inspector_open__
|
|
12610
10374
|
},
|
|
12611
10375
|
{
|
|
@@ -12753,7 +10517,7 @@ function AdminLayout() {
|
|
|
12753
10517
|
function Pinger({
|
|
12754
10518
|
status
|
|
12755
10519
|
}) {
|
|
12756
|
-
const
|
|
10520
|
+
const colors = {
|
|
12757
10521
|
running: {
|
|
12758
10522
|
pinger: "bg-green-400",
|
|
12759
10523
|
circle: "bg-green-500"
|
|
@@ -12771,16 +10535,16 @@ function Pinger({
|
|
|
12771
10535
|
}
|
|
12772
10536
|
}[status];
|
|
12773
10537
|
return /* @__PURE__ */ jsxs("span", { className: "relative flex h-3 w-3", children: [
|
|
12774
|
-
|
|
10538
|
+
colors.pinger ? /* @__PURE__ */ jsx(
|
|
12775
10539
|
"span",
|
|
12776
10540
|
{
|
|
12777
|
-
className: `absolute inline-flex h-full w-full animate-ping rounded-full ${
|
|
10541
|
+
className: `absolute inline-flex h-full w-full animate-ping rounded-full ${colors.pinger} opacity-75`
|
|
12778
10542
|
}
|
|
12779
10543
|
) : null,
|
|
12780
10544
|
/* @__PURE__ */ jsx(
|
|
12781
10545
|
"span",
|
|
12782
10546
|
{
|
|
12783
|
-
className: `relative inline-flex h-3 w-3 rounded-full ${
|
|
10547
|
+
className: `relative inline-flex h-3 w-3 rounded-full ${colors.circle}`
|
|
12784
10548
|
}
|
|
12785
10549
|
)
|
|
12786
10550
|
] });
|
|
@@ -13054,8 +10818,8 @@ async function getOgImg(jsx2, { request, timings }) {
|
|
|
13054
10818
|
const data = pngData.asPng();
|
|
13055
10819
|
return data;
|
|
13056
10820
|
}
|
|
13057
|
-
async function getEmoji(
|
|
13058
|
-
const emojiCode = emojiToCodePoints(
|
|
10821
|
+
async function getEmoji(emoji, { request, timings }) {
|
|
10822
|
+
const emojiCode = emojiToCodePoints(emoji);
|
|
13059
10823
|
if (!emojiCode) return null;
|
|
13060
10824
|
const emojiUrl = `https://cdn.jsdelivr.net/gh/jdecked/twemoji@15/assets/svg/${emojiCode}.svg`;
|
|
13061
10825
|
return cachified({
|
|
@@ -13070,10 +10834,10 @@ async function getEmoji(emoji2, { request, timings }) {
|
|
|
13070
10834
|
}
|
|
13071
10835
|
});
|
|
13072
10836
|
}
|
|
13073
|
-
function emojiToCodePoints(
|
|
10837
|
+
function emojiToCodePoints(emoji) {
|
|
13074
10838
|
const codePoints = [];
|
|
13075
|
-
for (let i = 0; i <
|
|
13076
|
-
const codePoint =
|
|
10839
|
+
for (let i = 0; i < emoji.length; i++) {
|
|
10840
|
+
const codePoint = emoji.codePointAt(i);
|
|
13077
10841
|
if (!codePoint) continue;
|
|
13078
10842
|
codePoints.push(codePoint.toString(16));
|
|
13079
10843
|
if (codePoint > 65535) {
|
|
@@ -13281,8 +11045,8 @@ async function action({ request }) {
|
|
|
13281
11045
|
invariantResponse(intent === "complete", "Invalid intent");
|
|
13282
11046
|
const { onboardingVideo } = getWorkshopConfig();
|
|
13283
11047
|
await markOnboardingVideoWatched(onboardingVideo);
|
|
13284
|
-
if (authInfo) throw redirect("/");
|
|
13285
|
-
else throw redirect("/login");
|
|
11048
|
+
if (authInfo) throw redirect$1("/");
|
|
11049
|
+
else throw redirect$1("/login");
|
|
13286
11050
|
}
|
|
13287
11051
|
function Onboarding() {
|
|
13288
11052
|
const data = useLoaderData();
|
|
@@ -13317,14 +11081,14 @@ async function loader$2() {
|
|
|
13317
11081
|
] of getProcesses().devProcesses.entries()) {
|
|
13318
11082
|
processes[name] = { port: port2, pid: process2.pid, color };
|
|
13319
11083
|
}
|
|
13320
|
-
const
|
|
11084
|
+
const testProcesses = {};
|
|
13321
11085
|
for (const [
|
|
13322
11086
|
name,
|
|
13323
11087
|
{ process: process2, exitCode, output }
|
|
13324
11088
|
] of getProcesses().testProcesses.entries()) {
|
|
13325
|
-
|
|
11089
|
+
testProcesses[name] = { pid: process2 == null ? void 0 : process2.pid, exitCode, output };
|
|
13326
11090
|
}
|
|
13327
|
-
return json$1({ processes, testProcesses
|
|
11091
|
+
return json$1({ processes, testProcesses });
|
|
13328
11092
|
}
|
|
13329
11093
|
const route36 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
13330
11094
|
__proto__: null,
|
|
@@ -13352,7 +11116,7 @@ const route40 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
13352
11116
|
__proto__: null,
|
|
13353
11117
|
loader
|
|
13354
11118
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
13355
|
-
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-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.$testName": { "id": "routes/_app+/app.$appName+/test.$testName", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/:testName", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test._testName-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/app.$appName+/test.epic_ws[.js]": { "id": "routes/_app+/app.$appName+/test.epic_ws[.js]", "parentId": "routes/_app+/_layout", "path": "app/:appName/test/epic_ws.js", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/test.epic_ws_.js_-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/_app+/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-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/admin+/cache": { "id": "routes/admin+/cache", "parentId": "routes/admin+/_layout", "path": "cache", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/cache-l0sNRNKZ.js", "imports": [], "css": [] }, "routes/apps": { "id": "routes/apps", "parentId": "root", "path": "apps", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/apps-DP2rzg_V.js", "imports": [], "css": [] }, "routes/diff": { "id": "routes/diff", "parentId": "root", "path": "diff", "index": void 0, "caseSensitive": void 0, "hasAction": false, "hasLoader": true, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/diff-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-DP2rzg_V.js", "imports": [], "css": [] }, "routes/video-player/index": { "id": "routes/video-player/index", "parentId": "root", "path": "video-player", "index": void 0, "caseSensitive": void 0, "hasAction": true, "hasLoader": false, "hasClientAction": false, "hasClientLoader": false, "hasErrorBoundary": false, "module": "/assets/index-K6Dvbx-E.js", "imports": [], "css": [] } }, "url": "/assets/manifest-77ab30ae.js", "version": "77ab30ae" };
|
|
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" };
|
|
13356
11120
|
const mode = "production";
|
|
13357
11121
|
const assetsBuildDirectory = "build/client";
|
|
13358
11122
|
const basename = "/";
|