)\n ]\n }),\n \u002F\u002F TypeScript type checking\n useTypeScript &&\n new ForkTsCheckerWebpackPlugin({\n typescript: resolve.sync('typescript', {\n basedir: paths.appNodeModules\n }),\n async: isEnvDevelopment,\n useTypescriptIncrementalApi: true,\n checkSyntacticErrors: true,\n resolveModuleNameModule: process.versions.pnp\n ? `${__dirname}\u002FpnpTs.js`\n : undefined,\n resolveTypeReferenceDirectiveModule: process.versions.pnp\n ? `${__dirname}\u002FpnpTs.js`\n : undefined,\n tsconfig: paths.appTsConfig,\n reportFiles: [\n '**',\n '!**\u002F__tests__\u002F**',\n '!**\u002F?(*.)(spec|test).*',\n '!**\u002Fsrc\u002FsetupProxy.*',\n '!**\u002Fsrc\u002FsetupTests.*'\n ],\n watch: paths.appSrc,\n silent: true,\n \u002F\u002F The formatter is invoked directly in WebpackDevServerUtils during development\n formatter: isEnvProduction ? typescriptFormatter : undefined\n })\n ].filter(Boolean),\n \u002F\u002F Some libraries import Node modules but don't use them in the browser.\n \u002F\u002F Tell Webpack to provide empty mocks for them so importing them works.\n node: {\n module: 'empty',\n dgram: 'empty',\n dns: 'mock',\n fs: 'empty',\n http2: 'empty',\n net: 'empty',\n tls: 'empty',\n child_process: 'empty'\n },\n \u002F\u002F Turn off performance processing because we utilize\n \u002F\u002F our own hints via the FileSizeReporter\n performance: false\n };\n};\n","directory_shortid":"BkTIAdXfr","id":"0cc03b1d-c67d-45f7-87a0-d2138cb53601","inserted_at":"2019-07-22T18:20:05","is_binary":false,"sha":null,"shortid":"ry2p80OQGB","source_id":"f4383241-686b-4488-b946-849ecc3cadc3","title":"webpack.config.js","updated_at":"2019-07-22T18:20:05","upload_id":null},{"code":"'use strict';\n\nconst errorOverlayMiddleware = require('react-dev-utils\u002FerrorOverlayMiddleware');\nconst evalSourceMapMiddleware = require('react-dev-utils\u002FevalSourceMapMiddleware');\nconst noopServiceWorkerMiddleware = require('react-dev-utils\u002FnoopServiceWorkerMiddleware');\nconst ignoredFiles = require('react-dev-utils\u002FignoredFiles');\nconst paths = require('.\u002Fpaths');\nconst fs = require('fs');\n\nconst protocol = process.env.HTTPS === 'true' ? 'https' : 'http';\nconst host = process.env.HOST || '0.0.0.0';\n\nmodule.exports = function(proxy, allowedHost) {\n return {\n \u002F\u002F WebpackDevServer 2.4.3 introduced a security fix that prevents remote\n \u002F\u002F websites from potentially accessing local content through DNS rebinding:\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Fwebpack\u002Fwebpack-dev-server\u002Fissues\u002F887\n \u002F\u002F https:\u002F\u002Fmedium.com\u002Fwebpack\u002Fwebpack-dev-server-middleware-security-issues-1489d950874a\n \u002F\u002F However, it made several existing use cases such as development in cloud\n \u002F\u002F environment or subdomains in development significantly more complicated:\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app\u002Fissues\u002F2271\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app\u002Fissues\u002F2233\n \u002F\u002F While we're investigating better solutions, for now we will take a\n \u002F\u002F compromise. Since our WDS configuration only serves files in the `public`\n \u002F\u002F folder we won't consider accessing them a vulnerability. However, if you\n \u002F\u002F use the `proxy` feature, it gets more dangerous because it can expose\n \u002F\u002F remote code execution vulnerabilities in backends like Django and Rails.\n \u002F\u002F So we will disable the host check normally, but enable it if you have\n \u002F\u002F specified the `proxy` setting. Finally, we let you override it if you\n \u002F\u002F really know what you're doing with a special environment variable.\n disableHostCheck:\n !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true',\n \u002F\u002F Enable gzip compression of generated files.\n compress: true,\n \u002F\u002F Silence WebpackDevServer's own logs since they're generally not useful.\n \u002F\u002F It will still show compile warnings and errors with this setting.\n clientLogLevel: 'none',\n \u002F\u002F By default WebpackDevServer serves physical files from current directory\n \u002F\u002F in addition to all the virtual build products that it serves from memory.\n \u002F\u002F This is confusing because those files won’t automatically be available in\n \u002F\u002F production build folder unless we copy them. However, copying the whole\n \u002F\u002F project directory is dangerous because we may expose sensitive files.\n \u002F\u002F Instead, we establish a convention that only files in `public` directory\n \u002F\u002F get served. Our build script will copy `public` into the `build` folder.\n \u002F\u002F In `index.html`, you can get URL of `public` folder with %PUBLIC_URL%:\n \u002F\u002F \u003Clink rel=\"shortcut icon\" href=\"%PUBLIC_URL%\u002Ffavicon.ico\"\u003E\n \u002F\u002F In JavaScript code, you can access it with `process.env.PUBLIC_URL`.\n \u002F\u002F Note that we only recommend to use `public` folder as an escape hatch\n \u002F\u002F for files like `favicon.ico`, `manifest.json`, and libraries that are\n \u002F\u002F for some reason broken when imported through Webpack. If you just want to\n \u002F\u002F use an image, put it in `src` and `import` it from JavaScript instead.\n contentBase: paths.appPublic,\n \u002F\u002F By default files from `contentBase` will not trigger a page reload.\n watchContentBase: true,\n \u002F\u002F Enable hot reloading server. It will provide \u002Fsockjs-node\u002F endpoint\n \u002F\u002F for the WebpackDevServer client so it can learn when the files were\n \u002F\u002F updated. The WebpackDevServer client is included as an entry point\n \u002F\u002F in the Webpack development configuration. Note that only changes\n \u002F\u002F to CSS are currently hot reloaded. JS changes will refresh the browser.\n hot: true,\n \u002F\u002F It is important to tell WebpackDevServer to use the same \"root\" path\n \u002F\u002F as we specified in the config. In development, we always serve from \u002F.\n publicPath: '\u002F',\n \u002F\u002F WebpackDevServer is noisy by default so we emit custom message instead\n \u002F\u002F by listening to the compiler events with `compiler.hooks[...].tap` calls above.\n quiet: true,\n \u002F\u002F Reportedly, this avoids CPU overload on some systems.\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app\u002Fissues\u002F293\n \u002F\u002F src\u002Fnode_modules is not ignored to support absolute imports\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app\u002Fissues\u002F1065\n watchOptions: {\n ignored: ignoredFiles(paths.appSrc),\n },\n \u002F\u002F Enable HTTPS if the HTTPS environment variable is set to 'true'\n https: protocol === 'https',\n host,\n overlay: false,\n historyApiFallback: {\n \u002F\u002F Paths with dots should still use the history fallback.\n \u002F\u002F See https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app\u002Fissues\u002F387.\n disableDotRule: true,\n },\n public: allowedHost,\n proxy,\n before(app, server) {\n if (fs.existsSync(paths.proxySetup)) {\n \u002F\u002F This registers user provided middleware for proxy reasons\n require(paths.proxySetup)(app);\n }\n\n \u002F\u002F This lets us fetch source contents from webpack for the error overlay\n app.use(evalSourceMapMiddleware(server));\n \u002F\u002F This lets us open files from the runtime error overlay.\n app.use(errorOverlayMiddleware());\n\n \u002F\u002F This service worker file is effectively a 'no-op' that will reset any\n \u002F\u002F previous service worker registered for the same host:port combination.\n \u002F\u002F We do this in development to avoid hitting the production cache if\n \u002F\u002F it used the same host and port.\n \u002F\u002F https:\u002F\u002Fgithub.com\u002Ffacebook\u002Fcreate-react-app\u002Fissues\u002F2272#issuecomment-302832432\n app.use(noopServiceWorkerMiddleware());\n },\n };\n};\n","directory_shortid":"BkTIAdXfr","id":"c8af8bf7-f0a1-4596-b513-cee90541013b","inserted_at":"2019-07-22T18:20:05","is_binary":false,"sha":null,"shortid":"S16a8C_QGH","source_id":"f4383241-686b-4488-b946-849ecc3cadc3","title":"webpackDevServer.config.js","updated_at":"2019-07-22T18:20:05","upload_id":null},{"code":"{\n \"name\": \"demo-react-rdserver-client\",\n \"version\": \"0.1.0\",\n \"private\": true,\n \"dependencies\": {\n \"@babel\u002Fcore\": \"7.4.3\",\n \"@devexpress\u002Fanalytics-core\": \"^19.1.3\",\n \"@svgr\u002Fwebpack\": \"4.1.0\",\n \"@typescript-eslint\u002Feslint-plugin\": \"1.6.0\",\n \"@typescript-eslint\u002Fparser\": \"1.6.0\",\n \"babel-eslint\": \"10.0.1\",\n \"babel-jest\": \"^24.8.0\",\n \"babel-loader\": \"8.0.5\",\n \"babel-plugin-named-asset-import\": \"^0.3.2\",\n \"babel-preset-react-app\": \"^9.0.0\",\n \"camelcase\": \"^5.2.0\",\n \"case-sensitive-paths-webpack-plugin\": \"2.2.0\",\n \"css-loader\": \"2.1.1\",\n \"devexpress-dashboard\": \"^19.1.3\",\n \"devexpress-reporting\": \"^19.1.4\",\n \"devextreme\": \"^19.1.3\",\n \"devextreme-react\": \"^19.1.3\",\n \"dotenv\": \"6.2.0\",\n \"dotenv-expand\": \"4.2.0\",\n \"eslint\": \"^5.16.0\",\n \"eslint-config-react-app\": \"^4.0.1\",\n \"eslint-loader\": \"2.1.2\",\n \"eslint-plugin-flowtype\": \"2.50.1\",\n \"eslint-plugin-import\": \"2.16.0\",\n \"eslint-plugin-jsx-a11y\": \"6.2.1\",\n \"eslint-plugin-react\": \"7.12.4\",\n \"eslint-plugin-react-hooks\": \"^1.5.0\",\n \"file-loader\": \"3.0.1\",\n \"fs-extra\": \"7.0.1\",\n \"html-webpack-plugin\": \"4.0.0-beta.5\",\n \"identity-obj-proxy\": \"3.0.0\",\n \"is-wsl\": \"^1.1.0\",\n \"jest\": \"24.7.1\",\n \"jest-environment-jsdom-fourteen\": \"0.1.0\",\n \"jest-resolve\": \"24.7.1\",\n \"jest-watch-typeahead\": \"0.3.0\",\n \"knockout\": \"^3.5.0\",\n \"mini-css-extract-plugin\": \"0.5.0\",\n \"optimize-css-assets-webpack-plugin\": \"5.0.1\",\n \"pnp-webpack-plugin\": \"1.2.1\",\n \"postcss-flexbugs-fixes\": \"4.1.0\",\n \"postcss-loader\": \"3.0.0\",\n \"postcss-normalize\": \"7.0.1\",\n \"postcss-preset-env\": \"6.6.0\",\n \"postcss-safe-parser\": \"4.0.1\",\n \"react\": \"^16.8.6\",\n \"react-app-polyfill\": \"^1.0.1\",\n \"react-dev-utils\": \"^9.0.1\",\n \"react-dom\": \"^16.8.6\",\n \"resolve\": \"1.10.0\",\n \"sass-loader\": \"7.1.0\",\n \"semver\": \"6.0.0\",\n \"style-loader\": \"0.23.1\",\n \"terser-webpack-plugin\": \"1.2.3\",\n \"ts-pnp\": \"1.1.2\",\n \"url-loader\": \"1.1.2\",\n \"url-search-params-polyfill\": \"^7.0.0\",\n \"webpack\": \"4.29.6\",\n \"webpack-dev-server\": \"3.2.1\",\n \"webpack-manifest-plugin\": \"2.0.4\",\n \"workbox-webpack-plugin\": \"4.2.0\"\n },\n \"scripts\": {\n \"start\": \"node scripts\u002Fstart.js\",\n \"build\": \"node scripts\u002Fbuild.js\",\n \"test\": \"node scripts\u002Ftest.js\"\n },\n \"eslintConfig\": {\n \"extends\": \"react-app\"\n },\n \"browserslist\": {\n \"production\": [\n \"\u003E0.2%\",\n \"not dead\",\n \"not op_mini all\"\n ],\n \"development\": [\n \"\u003E0.2%\",\n \"not dead\",\n \"not op_mini all\",\n \"ie 11\"\n ]\n },\n \"jest\": {\n \"collectCoverageFrom\": [\n \"src\u002F**\u002F*.{js,jsx,ts,tsx}\",\n \"!src\u002F**\u002F*.d.ts\"\n ],\n \"setupFiles\": [\n \"react-app-polyfill\u002Fjsdom\"\n ],\n \"setupFilesAfterEnv\": [],\n \"testMatch\": [\n \"\u003CrootDir\u003E\u002Fsrc\u002F**\u002F__tests__\u002F**\u002F*.{js,jsx,ts,tsx}\",\n \"\u003CrootDir\u003E\u002Fsrc\u002F**\u002F*.{spec,test}.{js,jsx,ts,tsx}\"\n ],\n \"testEnvironment\": \"jest-environment-jsdom-fourteen\",\n \"transform\": {\n \"^.+\\\\.(js|jsx|ts|tsx)$\": \"\u003CrootDir\u003E\u002Fnode_modules\u002Fbabel-jest\",\n \"^.+\\\\.css$\": \"\u003CrootDir\u003E\u002Fconfig\u002Fjest\u002FcssTransform.js\",\n \"^(?!.*\\\\.(js|jsx|ts|tsx|css|json)$)\": \"\u003CrootDir\u003E\u002Fconfig\u002Fjest\u002FfileTransform.js\"\n },\n \"transformIgnorePatterns\": [\n \"[\u002F\\\\\\\\]node_modules[\u002F\\\\\\\\].+\\\\.(js|jsx|ts|tsx)$\",\n \"^.+\\\\.module\\\\.(css|sass|scss)$\"\n ],\n \"modulePaths\": [],\n \"moduleNameMapper\": {\n \"^react-native$\": \"react-native-web\",\n \"^.+\\\\.module\\\\.(css|sass|scss)$\": \"identity-obj-proxy\"\n },\n \"moduleFileExtensions\": [\n \"web.js\",\n \"js\",\n \"web.ts\",\n \"ts\",\n \"web.tsx\",\n \"tsx\",\n \"json\",\n \"web.jsx\",\n \"jsx\",\n \"node\"\n ],\n \"watchPlugins\": [\n \"jest-watch-typeahead\u002Ffilename\",\n \"jest-watch-typeahead\u002Ftestname\"\n ]\n },\n \"babel\": {\n \"presets\": [\n \"react-app\"\n ]\n }\n}\n","directory_shortid":null,"id":"95bd2e07-a5fc-449d-bef4-590b4ed03067","inserted_at":"2019-07-22T18:20:05","is_binary":false,"sha":null,"shortid":"SyApLAuXzH","source_id":"f4383241-686b-4488-b946-849ecc3cadc3","title":"package.json","updated_at":"2019-07-22T18:20:05","upload_id":null},{"code":"https:\u002F\u002Frawcdn.githack.com\u002Foliversturm\u002Fdemo-react-rdserver-client\u002F9e7f9ddb9752d88f3829f98f45960502c4f9f4f9\u002Fpublic\u002Ffavicon.ico","directory_shortid":"By-aIAd7zH","id":"c1d9577f-a262-4d4a-b545-e7373204a801","inserted_at":"2019-07-22T18:20:05","is_binary":true,"sha":null,"shortid":"HkkepI0dmMr","source_id":"f4383241-686b-4488-b946-849ecc3cadc3","title":"favicon.ico","updated_at":"2019-07-22T18:20:05","upload_id":null},{"code":"\u003C!DOCTYPE html\u003E\n\u003Chtml lang=\"en\"\u003E\n \u003Chead\u003E\n \u003Cmeta charset=\"utf-8\" \u002F\u003E\n \u003Clink rel=\"shortcut icon\" href=\"%PUBLIC_URL%\u002Ffavicon.ico\" \u002F\u003E\n \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \u002F\u003E\n \u003Cmeta name=\"theme-color\" content=\"#000000\" \u002F\u003E\n \u003C!--\n manifest.json provides metadata used when your web app is installed on a\n user's mobile device or desktop. See https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ffundamentals\u002Fweb-app-manifest\u002F\n --\u003E\n \u003Clink rel=\"manifest\" href=\"%PUBLIC_URL%\u002Fmanifest.json\" \u002F\u003E\n \u003C!--\n Notice the use of %PUBLIC_URL% in the tags above.\n It will be replaced with the URL of the `public` folder during the build.\n Only files inside the `public` folder can be referenced from the HTML.\n\n Unlike \"\u002Ffavicon.ico\" or \"favicon.ico\", \"%PUBLIC_URL%\u002Ffavicon.ico\" will\n work correctly both with client-side routing and a non-root public URL.\n Learn how to configure a non-root public URL by running `npm run build`.\n --\u003E\n \u003Ctitle\u003EReact App\u003C\u002Ftitle\u003E\n \u003C\u002Fhead\u003E\n \u003Cbody\u003E\n \u003Cnoscript\u003EYou need to enable JavaScript to run this app.\u003C\u002Fnoscript\u003E\n \u003Cdiv id=\"root\"\u003E\u003C\u002Fdiv\u003E\n \u003C!--\n This HTML file is a template.\n If you open it directly in the browser, you will see an empty page.\n\n You can add webfonts, meta tags, or analytics to this file.\n The build step will place the bundled scripts into the \u003Cbody\u003E tag.\n\n To begin the development, run `npm start` or `yarn start`.\n To create a production bundle, use `npm run build` or `yarn build`.\n --\u003E\n \u003C\u002Fbody\u003E\n\u003C\u002Fhtml\u003E\n","directory_shortid":"By-aIAd7zH","id":"9adfe72f-3dda-4cea-87cb-05a7bc93d634","inserted_at":"2019-07-22T18:20:05","is_binary":false,"sha":null,"shortid":"rylx6UCOmfS","source_id":"f4383241-686b-4488-b946-849ecc3cadc3","title":"index.html","updated_at":"2019-07-22T18:20:05","upload_id":null}],"screenshot_url":"https:\u002F\u002Fcodesandbox.io\u002Fstatic\u002Fimg\u002Fbanner.png","original_git":null,"alias":"demo-react-rdserver-client-ntjs3","is_frozen":false,"forked_from_sandbox":null,"git":{"branch":"master","commit_sha":"9e7f9ddb9752d88f3829f98f45960502c4f9f4f9","path":"","repo":"demo-react-rdserver-client","username":"oliversturm"},"room_id":null,"updated_at":"2020-01-29T15:54:52","description":null,"owned":false,"forked_template_sandbox":null,"base_git":null,"pr_number":null,"privacy":0,"tags":[],"title":"demo-react-rdserver-client","preview_secret":null,"permissions":{"prevent_sandbox_export":false,"prevent_sandbox_leaving":false},"feature_flags":{"comments":false,"container_lsp":false},"forked_template":null,"always_on":false,"custom_template":null,"source_id":"f4383241-686b-4488-b946-849ecc3cadc3","team":null,"like_count":0,"user_liked":false,"template":"node","version":3,"inserted_at":"2019-07-02T10:44:52","entry":"src\u002Findex.js","external_resources":[]};