From 5a479ef0240f122e00a75e59d72e2b1a20003a21 Mon Sep 17 00:00:00 2001 From: Hypnosphi Date: Tue, 18 Sep 2018 16:22:21 +0200 Subject: [PATCH 1/2] Remove snapshots part of CLI tests --- .../OpenSourceProjects_Storybook/Project.kt | 1 - .../OpenSourceProjects_Storybook_Build_2.kt | 5 + ...enSourceProjects_Storybook_CliSmokeTest.kt | 69 - .../OpenSourceProjects_Storybook_CliTest.kt | 2 + .../b1db1a3a-a4cf-46ea-8f55-98b86611f92e.kts | 39 - .../fixtures/already_has_storybook/.gitignore | 21 - .../.storybook/addons.js | 2 - .../.storybook/config.js | 7 - .../fixtures/already_has_storybook/README.md | 2156 ----------------- .../already_has_storybook/package.json | 23 - .../already_has_storybook/public/favicon.ico | Bin 3870 -> 0 bytes .../already_has_storybook/public/index.html | 40 - .../public/manifest.json | 15 - .../already_has_storybook/src/App.css | 24 - .../fixtures/already_has_storybook/src/App.js | 21 - .../already_has_storybook/src/App.test.js | 8 - .../already_has_storybook/src/index.css | 5 - .../already_has_storybook/src/index.js | 8 - .../already_has_storybook/src/logo.svg | 7 - .../src/registerServiceWorker.js | 108 - .../src/stories/index.js | 13 - lib/cli/test/run_tests.sh | 58 +- .../already_has_storybook/.gitignore | 21 - .../.storybook/addons.js | 2 - .../.storybook/config.js | 7 - .../already_has_storybook/package.json | 23 - .../already_has_storybook/public/favicon.ico | Bin 3870 -> 0 bytes .../already_has_storybook/public/index.html | 40 - .../public/manifest.json | 15 - .../already_has_storybook/src/App.css | 24 - .../already_has_storybook/src/App.js | 21 - .../already_has_storybook/src/App.test.js | 8 - .../already_has_storybook/src/index.css | 5 - .../already_has_storybook/src/index.js | 8 - .../already_has_storybook/src/logo.svg | 7 - .../src/registerServiceWorker.js | 108 - .../src/stories/index.js | 13 - .../test/snapshots/angular-cli/.editorconfig | 13 - lib/cli/test/snapshots/angular-cli/.gitignore | 40 - .../angular-cli/.storybook/addons.js | 3 - .../angular-cli/.storybook/config.js | 9 - .../snapshots/angular-cli/angular-cli.json | 67 - .../snapshots/angular-cli/e2e/app.e2e-spec.ts | 15 - .../test/snapshots/angular-cli/e2e/app.po.ts | 11 - .../snapshots/angular-cli/e2e/tsconfig.json | 16 - .../test/snapshots/angular-cli/karma.conf.js | 43 - .../test/snapshots/angular-cli/package.json | 55 - .../snapshots/angular-cli/protractor.conf.js | 32 - .../angular-cli/src/app/app.component.css | 0 .../angular-cli/src/app/app.component.html | 3 - .../angular-cli/src/app/app.component.spec.ts | 35 - .../angular-cli/src/app/app.component.ts | 10 - .../angular-cli/src/app/app.module.ts | 20 - .../snapshots/angular-cli/src/assets/.gitkeep | 0 .../src/environments/environment.prod.ts | 3 - .../src/environments/environment.ts | 8 - .../snapshots/angular-cli/src/favicon.ico | Bin 5430 -> 0 bytes .../test/snapshots/angular-cli/src/index.html | 14 - .../test/snapshots/angular-cli/src/main.ts | 10 - .../snapshots/angular-cli/src/polyfills.ts | 38 - .../angular-cli/src/stories/index.stories.ts | 46 - .../test/snapshots/angular-cli/src/styles.css | 1 - .../test/snapshots/angular-cli/src/test.ts | 32 - .../angular-cli/src/tsconfig.app.json | 13 - .../test/snapshots/angular-cli/tsconfig.json | 19 - .../test/snapshots/angular-cli/tslint.json | 116 - .../test/snapshots/marko/.storybook/addons.js | 2 - .../test/snapshots/marko/.storybook/config.js | 9 - lib/cli/test/snapshots/marko/package.json | 20 - .../stories/components/welcome/index.marko | 46 - .../snapshots/marko/stories/index.stories.js | 4 - lib/cli/test/snapshots/meteor/.babelrc | 6 - lib/cli/test/snapshots/meteor/.gitignore | 1 - .../meteor/.meteor/.finished-upgraders | 17 - .../test/snapshots/meteor/.meteor/.gitignore | 1 - lib/cli/test/snapshots/meteor/.meteor/.id | 7 - .../test/snapshots/meteor/.meteor/packages | 21 - .../test/snapshots/meteor/.meteor/platforms | 2 - lib/cli/test/snapshots/meteor/.meteor/release | 1 - .../test/snapshots/meteor/.meteor/versions | 75 - .../snapshots/meteor/.storybook/addons.js | 2 - .../snapshots/meteor/.storybook/config.js | 9 - lib/cli/test/snapshots/meteor/client/main.css | 1 - .../test/snapshots/meteor/client/main.html | 25 - lib/cli/test/snapshots/meteor/client/main.js | 22 - lib/cli/test/snapshots/meteor/package.json | 26 - lib/cli/test/snapshots/meteor/server/main.js | 5 - .../snapshots/meteor/stories/index.stories.js | 19 - .../snapshots/mithril/.storybook/addons.js | 2 - .../snapshots/mithril/.storybook/config.js | 9 - lib/cli/test/snapshots/mithril/package.json | 22 - .../test/snapshots/mithril/stories/Button.js | 23 - .../test/snapshots/mithril/stories/Welcome.js | 179 -- .../mithril/stories/index.stories.js | 25 - .../snapshots/polymer/.storybook/config.js | 9 - lib/cli/test/snapshots/polymer/package.json | 20 - .../polymer/src/stories/index.stories.js | 1 - lib/cli/test/snapshots/react/.babelrc | 4 - .../test/snapshots/react/.storybook/addons.js | 2 - .../test/snapshots/react/.storybook/config.js | 9 - lib/cli/test/snapshots/react/index.html | 11 - lib/cli/test/snapshots/react/index.js | 7 - lib/cli/test/snapshots/react/package.json | 30 - lib/cli/test/snapshots/react/rollup.config.js | 22 - .../snapshots/react/stories/index.stories.js | 19 - lib/cli/test/snapshots/react_babel_6/.babelrc | 4 - .../react_babel_6/.storybook/addons.js | 2 - .../react_babel_6/.storybook/config.js | 9 - .../test/snapshots/react_babel_6/index.html | 11 - lib/cli/test/snapshots/react_babel_6/index.js | 7 - .../test/snapshots/react_babel_6/package.json | 30 - .../snapshots/react_babel_6/rollup.config.js | 22 - .../react_babel_6/stories/index.stories.js | 19 - .../.storybook/config.js | 9 - .../react_babel_config_js/babel.config.js | 3 - .../react_babel_config_js/package.json | 20 - .../stories/index.stories.js | 12 - .../react_babel_custom_preset/.babelrc | 3 - .../.storybook/config.js | 9 - .../babel-preset-custom/index.js | 3 - .../react_babel_custom_preset/package.json | 20 - .../stories/index.stories.js | 12 - .../react_babel_pkg_json/.storybook/config.js | 9 - .../react_babel_pkg_json/package.json | 23 - .../stories/index.stories.js | 12 - lib/cli/test/snapshots/react_babelrc/.babelrc | 3 - .../react_babelrc/.storybook/config.js | 9 - .../test/snapshots/react_babelrc/package.json | 20 - .../react_babelrc/stories/index.stories.js | 12 - .../snapshots/react_babelrc_js/.babelrc.js | 3 - .../react_babelrc_js/.storybook/config.js | 9 - .../snapshots/react_babelrc_js/package.json | 20 - .../react_babelrc_js/stories/index.stories.js | 12 - lib/cli/test/snapshots/react_native/.babelrc | 3 - .../test/snapshots/react_native/.buckconfig | 6 - .../test/snapshots/react_native/.flowconfig | 45 - .../snapshots/react_native/.gitattributes | 1 - .../test/snapshots/react_native/.gitignore | 53 - .../snapshots/react_native/.watchmanconfig | 1 - .../react_native/__tests__/index.android.js | 12 - .../react_native/__tests__/index.ios.js | 12 - .../snapshots/react_native/android/app/BUCK | 65 - .../react_native/android/app/build.gradle | 146 -- .../android/app/proguard-rules.pro | 70 - .../android/app/src/main/AndroidManifest.xml | 32 - .../java/com/react_native/MainActivity.java | 15 - .../com/react_native/MainApplication.java | 40 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3418 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2206 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4842 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7718 -> 0 bytes .../app/src/main/res/values/strings.xml | 3 - .../app/src/main/res/values/styles.xml | 8 - .../react_native/android/build.gradle | 24 - .../react_native/android/gradle.properties | 20 - .../android/gradle/wrapper/gradle-wrapper.jar | Bin 52266 -> 0 bytes .../gradle/wrapper/gradle-wrapper.properties | 5 - .../snapshots/react_native/android/gradlew | 164 -- .../react_native/android/gradlew.bat | 90 - .../react_native/android/keystores/BUCK | 8 - .../keystores/debug.keystore.properties | 4 - .../react_native/android/settings.gradle | 3 - lib/cli/test/snapshots/react_native/app.json | 4 - .../snapshots/react_native/index.android.js | 53 - .../test/snapshots/react_native/index.ios.js | 53 - .../ios/react_native-tvOS/Info.plist | 54 - .../ios/react_native-tvOSTests/Info.plist | 24 - .../react_native.xcodeproj/project.pbxproj | 1251 ---------- .../xcschemes/react_native-tvOS.xcscheme | 129 - .../xcschemes/react_native.xcscheme | 129 - .../ios/react_native/AppDelegate.h | 16 - .../ios/react_native/AppDelegate.m | 37 - .../react_native/Base.lproj/LaunchScreen.xib | 42 - .../AppIcon.appiconset/Contents.json | 38 - .../react_native/ios/react_native/Info.plist | 56 - .../react_native/ios/react_native/main.m | 18 - .../ios/react_nativeTests/Info.plist | 24 - .../ios/react_nativeTests/react_nativeTests.m | 70 - .../test/snapshots/react_native/package.json | 31 - .../react_native/storybook/addons.js | 2 - .../react_native/storybook/index.android.js | 3 - .../react_native/storybook/index.ios.js | 3 - .../snapshots/react_native/storybook/index.js | 3 - .../storybook/stories/Button/index.android.js | 17 - .../storybook/stories/Button/index.ios.js | 17 - .../storybook/stories/CenterView/index.js | 16 - .../storybook/stories/CenterView/style.js | 8 - .../storybook/stories/Welcome/index.js | 57 - .../react_native/storybook/stories/index.js | 25 - .../react_native/storybook/storybook.js | 24 - .../snapshots/react_native_scripts/.babelrc | 8 - .../react_native_scripts/.flowconfig | 63 - .../snapshots/react_native_scripts/.gitignore | 3 - .../react_native_scripts/.watchmanconfig | 1 - .../snapshots/react_native_scripts/App.js | 23 - .../react_native_scripts/App.test.js | 9 - .../snapshots/react_native_scripts/app.json | 5 - .../react_native_scripts/package.json | 35 - .../react_native_scripts/storybook/addons.js | 2 - .../react_native_scripts/storybook/index.js | 24 - .../storybook/stories/Button/index.android.js | 17 - .../storybook/stories/Button/index.ios.js | 17 - .../storybook/stories/CenterView/index.js | 12 - .../storybook/stories/CenterView/style.js | 8 - .../storybook/stories/Welcome/index.js | 54 - .../storybook/stories/index.js | 25 - lib/cli/test/snapshots/react_project/.babelrc | 3 - .../react_project/.storybook/addons.js | 2 - .../react_project/.storybook/config.js | 9 - lib/cli/test/snapshots/react_project/index.js | 6 - .../test/snapshots/react_project/package.json | 29 - .../react_project/stories/index.stories.js | 19 - .../test/snapshots/react_scripts/.gitignore | 21 - .../react_scripts/.storybook/addons.js | 2 - .../react_scripts/.storybook/config.js | 7 - .../test/snapshots/react_scripts/package.json | 26 - .../react_scripts/public/favicon.ico | Bin 3870 -> 0 bytes .../snapshots/react_scripts/public/index.html | 40 - .../react_scripts/public/manifest.json | 15 - .../test/snapshots/react_scripts/src/App.css | 24 - .../test/snapshots/react_scripts/src/App.js | 21 - .../snapshots/react_scripts/src/App.test.js | 8 - .../snapshots/react_scripts/src/index.css | 5 - .../test/snapshots/react_scripts/src/index.js | 8 - .../test/snapshots/react_scripts/src/logo.svg | 7 - .../src/registerServiceWorker.js | 108 - .../react_scripts/src/stories/index.js | 19 - lib/cli/test/snapshots/react_static/.babelrc | 3 - .../test/snapshots/react_static/.gitignore | 20 - .../react_static/.storybook/addons.js | 2 - .../react_static/.storybook/config.js | 9 - .../test/snapshots/react_static/package.json | 31 - .../snapshots/react_static/public/robots.txt | 1 - .../test/snapshots/react_static/src/App.js | 23 - .../test/snapshots/react_static/src/app.css | 41 - .../test/snapshots/react_static/src/index.js | 19 - .../test/snapshots/react_static/src/logo.png | Bin 53334 -> 0 bytes .../snapshots/react_static/static.config.js | 3 - .../react_static/stories/index.stories.js | 19 - .../test/snapshots/react_static_next/.babelrc | 3 - .../snapshots/react_static_next/.gitignore | 20 - .../react_static_next/.storybook/addons.js | 2 - .../react_static_next/.storybook/config.js | 9 - .../snapshots/react_static_next/package.json | 32 - .../react_static_next/public/robots.txt | 1 - .../snapshots/react_static_next/src/App.js | 23 - .../snapshots/react_static_next/src/app.css | 41 - .../snapshots/react_static_next/src/index.js | 19 - .../snapshots/react_static_next/src/logo.png | Bin 53334 -> 0 bytes .../react_static_next/static.config.js | 3 - .../stories/index.stories.js | 19 - lib/cli/test/snapshots/riot/.editorconfig | 12 - lib/cli/test/snapshots/riot/.gitignore | 4 - .../test/snapshots/riot/.storybook/addons.js | 2 - .../test/snapshots/riot/.storybook/config.js | 9 - lib/cli/test/snapshots/riot/package.json | 46 - .../snapshots/riot/public/assets/css/app.css | 0 .../riot/public/assets/images/logo.png | Bin 51738 -> 0 bytes .../snapshots/riot/public/assets/js/app.js | 0 lib/cli/test/snapshots/riot/public/index.html | 15 - lib/cli/test/snapshots/riot/src/App.tag | 30 - .../snapshots/riot/src/components/Hello.tag | 18 - lib/cli/test/snapshots/riot/src/main.js | 5 - .../test/snapshots/riot/stories/MyButton.tag | 24 - .../test/snapshots/riot/stories/Welcome.tag | 93 - .../snapshots/riot/stories/index.stories.js | 23 - lib/cli/test/snapshots/riot/webpack.config.js | 22 - lib/cli/test/snapshots/sfc_vue/.babelrc | 19 - lib/cli/test/snapshots/sfc_vue/.editorconfig | 9 - lib/cli/test/snapshots/sfc_vue/.gitignore | 13 - .../snapshots/sfc_vue/.storybook/addons.js | 2 - .../snapshots/sfc_vue/.storybook/config.js | 9 - .../test/snapshots/sfc_vue/config/dev.env.js | 6 - .../test/snapshots/sfc_vue/config/index.js | 38 - .../test/snapshots/sfc_vue/config/prod.env.js | 3 - lib/cli/test/snapshots/sfc_vue/index.html | 11 - lib/cli/test/snapshots/sfc_vue/package.json | 67 - lib/cli/test/snapshots/sfc_vue/src/App.vue | 28 - .../snapshots/sfc_vue/src/assets/logo.png | Bin 6849 -> 0 bytes .../sfc_vue/src/components/Hello.vue | 53 - lib/cli/test/snapshots/sfc_vue/src/main.js | 13 - .../sfc_vue/src/stories/MyButton.vue | 29 - .../snapshots/sfc_vue/src/stories/Welcome.vue | 120 - .../sfc_vue/src/stories/index.stories.js | 36 - .../test/snapshots/sfc_vue/static/.gitkeep | 0 .../update_package_organisations/.gitignore | 18 - .../.storybook/config.js | 7 - .../update_package_organisations/package.json | 23 - .../public/favicon.ico | Bin 24838 -> 0 bytes .../public/index.html | 31 - .../public/manifest.json | 15 - .../update_package_organisations/src/App.css | 24 - .../update_package_organisations/src/App.js | 21 - .../src/App.test.js | 8 - .../src/index.css | 5 - .../update_package_organisations/src/index.js | 9 - .../update_package_organisations/src/logo.svg | 7 - .../src/registerServiceWorker.js | 108 - .../stories/Button.js | 27 - .../stories/Welcome.js | 72 - .../stories/index.js | 17 - lib/cli/test/snapshots/vue/.editorconfig | 12 - lib/cli/test/snapshots/vue/.gitignore | 4 - .../test/snapshots/vue/.storybook/addons.js | 2 - .../test/snapshots/vue/.storybook/config.js | 9 - lib/cli/test/snapshots/vue/package.json | 44 - .../snapshots/vue/public/assets/css/app.css | 0 .../vue/public/assets/images/logo.png | Bin 2799 -> 0 bytes .../snapshots/vue/public/assets/js/app.js | 0 lib/cli/test/snapshots/vue/public/index.html | 15 - lib/cli/test/snapshots/vue/rollup.config.js | 55 - lib/cli/test/snapshots/vue/src/App.vue | 34 - .../snapshots/vue/src/components/Hello.vue | 23 - lib/cli/test/snapshots/vue/src/main.js | 8 - .../test/snapshots/vue/stories/MyButton.js | 29 - lib/cli/test/snapshots/vue/stories/Welcome.js | 121 - .../snapshots/vue/stories/index.stories.js | 36 - lib/cli/test/snapshots/webpack_react/.babelrc | 4 - .../webpack_react/.storybook/config.js | 9 - .../.storybook/webpack.config.js | 18 - .../test/snapshots/webpack_react/index.html | 11 - lib/cli/test/snapshots/webpack_react/index.js | 7 - .../test/snapshots/webpack_react/package.json | 27 - .../webpack_react/stories/index.stories.js | 19 - .../snapshots/webpack_react/webpack.config.js | 19 - lib/cli/test/test_latest_cra.sh | 2 +- package.json | 1 - 327 files changed, 12 insertions(+), 10358 deletions(-) delete mode 100644 .teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliSmokeTest.kt delete mode 100644 .teamcity/OpenSourceProjects_Storybook/patches/buildTypes/b1db1a3a-a4cf-46ea-8f55-98b86611f92e.kts delete mode 100644 lib/cli/test/fixtures/already_has_storybook/.gitignore delete mode 100644 lib/cli/test/fixtures/already_has_storybook/.storybook/addons.js delete mode 100644 lib/cli/test/fixtures/already_has_storybook/.storybook/config.js delete mode 100644 lib/cli/test/fixtures/already_has_storybook/README.md delete mode 100644 lib/cli/test/fixtures/already_has_storybook/package.json delete mode 100644 lib/cli/test/fixtures/already_has_storybook/public/favicon.ico delete mode 100644 lib/cli/test/fixtures/already_has_storybook/public/index.html delete mode 100644 lib/cli/test/fixtures/already_has_storybook/public/manifest.json delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/App.css delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/App.js delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/App.test.js delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/index.css delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/index.js delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/logo.svg delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/registerServiceWorker.js delete mode 100644 lib/cli/test/fixtures/already_has_storybook/src/stories/index.js delete mode 100644 lib/cli/test/snapshots/already_has_storybook/.gitignore delete mode 100644 lib/cli/test/snapshots/already_has_storybook/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/already_has_storybook/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/already_has_storybook/package.json delete mode 100644 lib/cli/test/snapshots/already_has_storybook/public/favicon.ico delete mode 100644 lib/cli/test/snapshots/already_has_storybook/public/index.html delete mode 100644 lib/cli/test/snapshots/already_has_storybook/public/manifest.json delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/App.css delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/App.js delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/App.test.js delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/index.css delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/index.js delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/logo.svg delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/registerServiceWorker.js delete mode 100644 lib/cli/test/snapshots/already_has_storybook/src/stories/index.js delete mode 100644 lib/cli/test/snapshots/angular-cli/.editorconfig delete mode 100644 lib/cli/test/snapshots/angular-cli/.gitignore delete mode 100644 lib/cli/test/snapshots/angular-cli/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/angular-cli/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/angular-cli/angular-cli.json delete mode 100644 lib/cli/test/snapshots/angular-cli/e2e/app.e2e-spec.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/e2e/app.po.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/e2e/tsconfig.json delete mode 100644 lib/cli/test/snapshots/angular-cli/karma.conf.js delete mode 100644 lib/cli/test/snapshots/angular-cli/package.json delete mode 100644 lib/cli/test/snapshots/angular-cli/protractor.conf.js delete mode 100644 lib/cli/test/snapshots/angular-cli/src/app/app.component.css delete mode 100644 lib/cli/test/snapshots/angular-cli/src/app/app.component.html delete mode 100644 lib/cli/test/snapshots/angular-cli/src/app/app.component.spec.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/app/app.component.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/app/app.module.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/assets/.gitkeep delete mode 100644 lib/cli/test/snapshots/angular-cli/src/environments/environment.prod.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/environments/environment.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/favicon.ico delete mode 100644 lib/cli/test/snapshots/angular-cli/src/index.html delete mode 100644 lib/cli/test/snapshots/angular-cli/src/main.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/polyfills.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/stories/index.stories.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/styles.css delete mode 100644 lib/cli/test/snapshots/angular-cli/src/test.ts delete mode 100644 lib/cli/test/snapshots/angular-cli/src/tsconfig.app.json delete mode 100644 lib/cli/test/snapshots/angular-cli/tsconfig.json delete mode 100644 lib/cli/test/snapshots/angular-cli/tslint.json delete mode 100644 lib/cli/test/snapshots/marko/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/marko/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/marko/package.json delete mode 100644 lib/cli/test/snapshots/marko/stories/components/welcome/index.marko delete mode 100644 lib/cli/test/snapshots/marko/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/meteor/.babelrc delete mode 100644 lib/cli/test/snapshots/meteor/.gitignore delete mode 100644 lib/cli/test/snapshots/meteor/.meteor/.finished-upgraders delete mode 100644 lib/cli/test/snapshots/meteor/.meteor/.gitignore delete mode 100644 lib/cli/test/snapshots/meteor/.meteor/.id delete mode 100644 lib/cli/test/snapshots/meteor/.meteor/packages delete mode 100644 lib/cli/test/snapshots/meteor/.meteor/platforms delete mode 100644 lib/cli/test/snapshots/meteor/.meteor/release delete mode 100644 lib/cli/test/snapshots/meteor/.meteor/versions delete mode 100644 lib/cli/test/snapshots/meteor/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/meteor/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/meteor/client/main.css delete mode 100644 lib/cli/test/snapshots/meteor/client/main.html delete mode 100644 lib/cli/test/snapshots/meteor/client/main.js delete mode 100644 lib/cli/test/snapshots/meteor/package.json delete mode 100644 lib/cli/test/snapshots/meteor/server/main.js delete mode 100644 lib/cli/test/snapshots/meteor/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/mithril/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/mithril/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/mithril/package.json delete mode 100644 lib/cli/test/snapshots/mithril/stories/Button.js delete mode 100644 lib/cli/test/snapshots/mithril/stories/Welcome.js delete mode 100644 lib/cli/test/snapshots/mithril/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/polymer/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/polymer/package.json delete mode 100644 lib/cli/test/snapshots/polymer/src/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react/.babelrc delete mode 100644 lib/cli/test/snapshots/react/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react/index.html delete mode 100644 lib/cli/test/snapshots/react/index.js delete mode 100644 lib/cli/test/snapshots/react/package.json delete mode 100644 lib/cli/test/snapshots/react/rollup.config.js delete mode 100644 lib/cli/test/snapshots/react/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_babel_6/.babelrc delete mode 100644 lib/cli/test/snapshots/react_babel_6/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react_babel_6/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_babel_6/index.html delete mode 100644 lib/cli/test/snapshots/react_babel_6/index.js delete mode 100644 lib/cli/test/snapshots/react_babel_6/package.json delete mode 100644 lib/cli/test/snapshots/react_babel_6/rollup.config.js delete mode 100644 lib/cli/test/snapshots/react_babel_6/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_babel_config_js/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_babel_config_js/babel.config.js delete mode 100644 lib/cli/test/snapshots/react_babel_config_js/package.json delete mode 100644 lib/cli/test/snapshots/react_babel_config_js/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_babel_custom_preset/.babelrc delete mode 100644 lib/cli/test/snapshots/react_babel_custom_preset/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_babel_custom_preset/babel-preset-custom/index.js delete mode 100644 lib/cli/test/snapshots/react_babel_custom_preset/package.json delete mode 100644 lib/cli/test/snapshots/react_babel_custom_preset/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_babel_pkg_json/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_babel_pkg_json/package.json delete mode 100644 lib/cli/test/snapshots/react_babel_pkg_json/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_babelrc/.babelrc delete mode 100644 lib/cli/test/snapshots/react_babelrc/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_babelrc/package.json delete mode 100644 lib/cli/test/snapshots/react_babelrc/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_babelrc_js/.babelrc.js delete mode 100644 lib/cli/test/snapshots/react_babelrc_js/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_babelrc_js/package.json delete mode 100644 lib/cli/test/snapshots/react_babelrc_js/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_native/.babelrc delete mode 100644 lib/cli/test/snapshots/react_native/.buckconfig delete mode 100644 lib/cli/test/snapshots/react_native/.flowconfig delete mode 100644 lib/cli/test/snapshots/react_native/.gitattributes delete mode 100644 lib/cli/test/snapshots/react_native/.gitignore delete mode 100644 lib/cli/test/snapshots/react_native/.watchmanconfig delete mode 100644 lib/cli/test/snapshots/react_native/__tests__/index.android.js delete mode 100644 lib/cli/test/snapshots/react_native/__tests__/index.ios.js delete mode 100644 lib/cli/test/snapshots/react_native/android/app/BUCK delete mode 100644 lib/cli/test/snapshots/react_native/android/app/build.gradle delete mode 100644 lib/cli/test/snapshots/react_native/android/app/proguard-rules.pro delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/AndroidManifest.xml delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainActivity.java delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainApplication.java delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/res/values/strings.xml delete mode 100644 lib/cli/test/snapshots/react_native/android/app/src/main/res/values/styles.xml delete mode 100644 lib/cli/test/snapshots/react_native/android/build.gradle delete mode 100644 lib/cli/test/snapshots/react_native/android/gradle.properties delete mode 100644 lib/cli/test/snapshots/react_native/android/gradle/wrapper/gradle-wrapper.jar delete mode 100644 lib/cli/test/snapshots/react_native/android/gradle/wrapper/gradle-wrapper.properties delete mode 100755 lib/cli/test/snapshots/react_native/android/gradlew delete mode 100644 lib/cli/test/snapshots/react_native/android/gradlew.bat delete mode 100644 lib/cli/test/snapshots/react_native/android/keystores/BUCK delete mode 100644 lib/cli/test/snapshots/react_native/android/keystores/debug.keystore.properties delete mode 100644 lib/cli/test/snapshots/react_native/android/settings.gradle delete mode 100644 lib/cli/test/snapshots/react_native/app.json delete mode 100644 lib/cli/test/snapshots/react_native/index.android.js delete mode 100644 lib/cli/test/snapshots/react_native/index.ios.js delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native-tvOS/Info.plist delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native-tvOSTests/Info.plist delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/project.pbxproj delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native-tvOS.xcscheme delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native.xcscheme delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.h delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.m delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native/Base.lproj/LaunchScreen.xib delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native/Info.plist delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_native/main.m delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_nativeTests/Info.plist delete mode 100644 lib/cli/test/snapshots/react_native/ios/react_nativeTests/react_nativeTests.m delete mode 100644 lib/cli/test/snapshots/react_native/package.json delete mode 100644 lib/cli/test/snapshots/react_native/storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/index.android.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/index.ios.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/index.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/stories/Button/index.android.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/stories/Button/index.ios.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/stories/CenterView/index.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/stories/CenterView/style.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/stories/Welcome/index.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/stories/index.js delete mode 100644 lib/cli/test/snapshots/react_native/storybook/storybook.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/.babelrc delete mode 100644 lib/cli/test/snapshots/react_native_scripts/.flowconfig delete mode 100644 lib/cli/test/snapshots/react_native_scripts/.gitignore delete mode 100644 lib/cli/test/snapshots/react_native_scripts/.watchmanconfig delete mode 100644 lib/cli/test/snapshots/react_native_scripts/App.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/App.test.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/app.json delete mode 100644 lib/cli/test/snapshots/react_native_scripts/package.json delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/index.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.android.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.ios.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/index.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/style.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/stories/Welcome/index.js delete mode 100644 lib/cli/test/snapshots/react_native_scripts/storybook/stories/index.js delete mode 100644 lib/cli/test/snapshots/react_project/.babelrc delete mode 100644 lib/cli/test/snapshots/react_project/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react_project/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_project/index.js delete mode 100644 lib/cli/test/snapshots/react_project/package.json delete mode 100644 lib/cli/test/snapshots/react_project/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_scripts/.gitignore delete mode 100644 lib/cli/test/snapshots/react_scripts/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react_scripts/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_scripts/package.json delete mode 100644 lib/cli/test/snapshots/react_scripts/public/favicon.ico delete mode 100644 lib/cli/test/snapshots/react_scripts/public/index.html delete mode 100644 lib/cli/test/snapshots/react_scripts/public/manifest.json delete mode 100644 lib/cli/test/snapshots/react_scripts/src/App.css delete mode 100644 lib/cli/test/snapshots/react_scripts/src/App.js delete mode 100644 lib/cli/test/snapshots/react_scripts/src/App.test.js delete mode 100644 lib/cli/test/snapshots/react_scripts/src/index.css delete mode 100644 lib/cli/test/snapshots/react_scripts/src/index.js delete mode 100644 lib/cli/test/snapshots/react_scripts/src/logo.svg delete mode 100644 lib/cli/test/snapshots/react_scripts/src/registerServiceWorker.js delete mode 100644 lib/cli/test/snapshots/react_scripts/src/stories/index.js delete mode 100644 lib/cli/test/snapshots/react_static/.babelrc delete mode 100644 lib/cli/test/snapshots/react_static/.gitignore delete mode 100644 lib/cli/test/snapshots/react_static/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react_static/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_static/package.json delete mode 100644 lib/cli/test/snapshots/react_static/public/robots.txt delete mode 100644 lib/cli/test/snapshots/react_static/src/App.js delete mode 100644 lib/cli/test/snapshots/react_static/src/app.css delete mode 100644 lib/cli/test/snapshots/react_static/src/index.js delete mode 100644 lib/cli/test/snapshots/react_static/src/logo.png delete mode 100644 lib/cli/test/snapshots/react_static/static.config.js delete mode 100644 lib/cli/test/snapshots/react_static/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/react_static_next/.babelrc delete mode 100644 lib/cli/test/snapshots/react_static_next/.gitignore delete mode 100644 lib/cli/test/snapshots/react_static_next/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/react_static_next/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/react_static_next/package.json delete mode 100644 lib/cli/test/snapshots/react_static_next/public/robots.txt delete mode 100644 lib/cli/test/snapshots/react_static_next/src/App.js delete mode 100644 lib/cli/test/snapshots/react_static_next/src/app.css delete mode 100644 lib/cli/test/snapshots/react_static_next/src/index.js delete mode 100644 lib/cli/test/snapshots/react_static_next/src/logo.png delete mode 100644 lib/cli/test/snapshots/react_static_next/static.config.js delete mode 100644 lib/cli/test/snapshots/react_static_next/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/riot/.editorconfig delete mode 100644 lib/cli/test/snapshots/riot/.gitignore delete mode 100644 lib/cli/test/snapshots/riot/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/riot/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/riot/package.json delete mode 100644 lib/cli/test/snapshots/riot/public/assets/css/app.css delete mode 100644 lib/cli/test/snapshots/riot/public/assets/images/logo.png delete mode 100644 lib/cli/test/snapshots/riot/public/assets/js/app.js delete mode 100644 lib/cli/test/snapshots/riot/public/index.html delete mode 100644 lib/cli/test/snapshots/riot/src/App.tag delete mode 100644 lib/cli/test/snapshots/riot/src/components/Hello.tag delete mode 100644 lib/cli/test/snapshots/riot/src/main.js delete mode 100644 lib/cli/test/snapshots/riot/stories/MyButton.tag delete mode 100644 lib/cli/test/snapshots/riot/stories/Welcome.tag delete mode 100644 lib/cli/test/snapshots/riot/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/riot/webpack.config.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/.babelrc delete mode 100644 lib/cli/test/snapshots/sfc_vue/.editorconfig delete mode 100644 lib/cli/test/snapshots/sfc_vue/.gitignore delete mode 100644 lib/cli/test/snapshots/sfc_vue/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/config/dev.env.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/config/index.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/config/prod.env.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/index.html delete mode 100644 lib/cli/test/snapshots/sfc_vue/package.json delete mode 100644 lib/cli/test/snapshots/sfc_vue/src/App.vue delete mode 100644 lib/cli/test/snapshots/sfc_vue/src/assets/logo.png delete mode 100644 lib/cli/test/snapshots/sfc_vue/src/components/Hello.vue delete mode 100644 lib/cli/test/snapshots/sfc_vue/src/main.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/src/stories/MyButton.vue delete mode 100644 lib/cli/test/snapshots/sfc_vue/src/stories/Welcome.vue delete mode 100644 lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/sfc_vue/static/.gitkeep delete mode 100644 lib/cli/test/snapshots/update_package_organisations/.gitignore delete mode 100644 lib/cli/test/snapshots/update_package_organisations/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/update_package_organisations/package.json delete mode 100644 lib/cli/test/snapshots/update_package_organisations/public/favicon.ico delete mode 100644 lib/cli/test/snapshots/update_package_organisations/public/index.html delete mode 100644 lib/cli/test/snapshots/update_package_organisations/public/manifest.json delete mode 100644 lib/cli/test/snapshots/update_package_organisations/src/App.css delete mode 100644 lib/cli/test/snapshots/update_package_organisations/src/App.js delete mode 100644 lib/cli/test/snapshots/update_package_organisations/src/App.test.js delete mode 100644 lib/cli/test/snapshots/update_package_organisations/src/index.css delete mode 100644 lib/cli/test/snapshots/update_package_organisations/src/index.js delete mode 100644 lib/cli/test/snapshots/update_package_organisations/src/logo.svg delete mode 100644 lib/cli/test/snapshots/update_package_organisations/src/registerServiceWorker.js delete mode 100644 lib/cli/test/snapshots/update_package_organisations/stories/Button.js delete mode 100644 lib/cli/test/snapshots/update_package_organisations/stories/Welcome.js delete mode 100644 lib/cli/test/snapshots/update_package_organisations/stories/index.js delete mode 100644 lib/cli/test/snapshots/vue/.editorconfig delete mode 100644 lib/cli/test/snapshots/vue/.gitignore delete mode 100644 lib/cli/test/snapshots/vue/.storybook/addons.js delete mode 100644 lib/cli/test/snapshots/vue/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/vue/package.json delete mode 100644 lib/cli/test/snapshots/vue/public/assets/css/app.css delete mode 100644 lib/cli/test/snapshots/vue/public/assets/images/logo.png delete mode 100644 lib/cli/test/snapshots/vue/public/assets/js/app.js delete mode 100644 lib/cli/test/snapshots/vue/public/index.html delete mode 100644 lib/cli/test/snapshots/vue/rollup.config.js delete mode 100644 lib/cli/test/snapshots/vue/src/App.vue delete mode 100644 lib/cli/test/snapshots/vue/src/components/Hello.vue delete mode 100644 lib/cli/test/snapshots/vue/src/main.js delete mode 100644 lib/cli/test/snapshots/vue/stories/MyButton.js delete mode 100644 lib/cli/test/snapshots/vue/stories/Welcome.js delete mode 100644 lib/cli/test/snapshots/vue/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/webpack_react/.babelrc delete mode 100644 lib/cli/test/snapshots/webpack_react/.storybook/config.js delete mode 100644 lib/cli/test/snapshots/webpack_react/.storybook/webpack.config.js delete mode 100644 lib/cli/test/snapshots/webpack_react/index.html delete mode 100644 lib/cli/test/snapshots/webpack_react/index.js delete mode 100644 lib/cli/test/snapshots/webpack_react/package.json delete mode 100644 lib/cli/test/snapshots/webpack_react/stories/index.stories.js delete mode 100644 lib/cli/test/snapshots/webpack_react/webpack.config.js diff --git a/.teamcity/OpenSourceProjects_Storybook/Project.kt b/.teamcity/OpenSourceProjects_Storybook/Project.kt index 18c53c0a45dc..b20affdbf82a 100644 --- a/.teamcity/OpenSourceProjects_Storybook/Project.kt +++ b/.teamcity/OpenSourceProjects_Storybook/Project.kt @@ -25,7 +25,6 @@ object Project : Project({ buildType(OpenSourceProjects_Storybook_Docs) buildType(OpenSourceProjects_Storybook_Build_2) buildType(OpenSourceProjects_Storybook_CliTest) - buildType(OpenSourceProjects_Storybook_CliSmokeTest) buildType(OpenSourceProjects_Storybook_Test) buildType(OpenSourceProjects_Storybook_Lint) buildType(OpenSourceProjects_Storybook_Lint_Warnings) diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt index 68dc96964fae..89161b6f3982 100644 --- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt +++ b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt @@ -106,5 +106,10 @@ object OpenSourceProjects_Storybook_Build_2 : BuildType({ onDependencyCancel = FailureAction.ADD_PROBLEM } } + dependency(OpenSourceProjects_Storybook.buildTypes.OpenSourceProjects_Storybook_CliTest) { + snapshot { + onDependencyCancel = FailureAction.ADD_PROBLEM + } + } } }) diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliSmokeTest.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliSmokeTest.kt deleted file mode 100644 index 0acd4f01de34..000000000000 --- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliSmokeTest.kt +++ /dev/null @@ -1,69 +0,0 @@ -package OpenSourceProjects_Storybook.buildTypes - -import jetbrains.buildServer.configs.kotlin.v2017_2.* -import jetbrains.buildServer.configs.kotlin.v2017_2.buildFeatures.commitStatusPublisher -import jetbrains.buildServer.configs.kotlin.v2017_2.buildSteps.script -import jetbrains.buildServer.configs.kotlin.v2017_2.triggers.vcs -import jetbrains.buildServer.configs.kotlin.v2017_2.triggers.retryBuild -import jetbrains.buildServer.configs.kotlin.v2017_2.triggers.VcsTrigger - -object OpenSourceProjects_Storybook_CliSmokeTest : BuildType({ - uuid = "b1db1a3a-a4cf-46ea-8f55-98b86611f92f" - id = "OpenSourceProjects_Storybook_CliSmokeTest" - name = "CLI smoke tests" - - vcs { - root(OpenSourceProjects_Storybook.vcsRoots.OpenSourceProjects_Storybook_HttpsGithubComStorybooksStorybookRefsHeadsMaster) - - } - - steps { - script { - name = "Bootstrap" - scriptContent = """ - yarn - yarn bootstrap --core - """.trimIndent() - dockerImage = "andthensome/docker-node-rsync" - } - script { - name = "Test" - scriptContent = "yarn --cwd lib/cli test -s" - dockerImage = "andthensome/docker-node-rsync" - } - } - - triggers { - vcs { - quietPeriodMode = VcsTrigger.QuietPeriodMode.USE_DEFAULT - triggerRules = "-:comment=^TeamCity change:**" - branchFilter = """ - +:pull/* - +:release/* - +:master - +:dependencies.io-* - """.trimIndent() - } - retryBuild {} - } - - features { - commitStatusPublisher { - publisher = github { - githubUrl = "https://api.github.com" - authType = personalToken { - token = "credentialsJSON:5ffe2d7e-531e-4f6f-b1fc-a41bfea26eaa" - } - } - param("github_oauth_user", "Hypnosphi") - } - } - - requirements { - doesNotContain("env.OS", "Windows") - } - - cleanup { - artifacts(days = 1) - } -}) diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt index 8749a7ebada8..4978c2f034e2 100644 --- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt +++ b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt @@ -21,6 +21,8 @@ object OpenSourceProjects_Storybook_CliTest : BuildType({ script { name = "Bootstrap" scriptContent = """ + set -e -x + yarn yarn bootstrap --core """.trimIndent() diff --git a/.teamcity/OpenSourceProjects_Storybook/patches/buildTypes/b1db1a3a-a4cf-46ea-8f55-98b86611f92e.kts b/.teamcity/OpenSourceProjects_Storybook/patches/buildTypes/b1db1a3a-a4cf-46ea-8f55-98b86611f92e.kts deleted file mode 100644 index 93f7797869c5..000000000000 --- a/.teamcity/OpenSourceProjects_Storybook/patches/buildTypes/b1db1a3a-a4cf-46ea-8f55-98b86611f92e.kts +++ /dev/null @@ -1,39 +0,0 @@ -package OpenSourceProjects_Storybook.patches.buildTypes - -import jetbrains.buildServer.configs.kotlin.v2017_2.* -import jetbrains.buildServer.configs.kotlin.v2017_2.buildSteps.ScriptBuildStep -import jetbrains.buildServer.configs.kotlin.v2017_2.buildSteps.script -import jetbrains.buildServer.configs.kotlin.v2017_2.ui.* - -/* -This patch script was generated by TeamCity on settings change in UI. -To apply the patch, change the buildType with uuid = 'b1db1a3a-a4cf-46ea-8f55-98b86611f92e' (id = 'OpenSourceProjects_Storybook_CliTest') -accordingly, and delete the patch script. -*/ -changeBuildType("b1db1a3a-a4cf-46ea-8f55-98b86611f92e") { - expectSteps { - script { - name = "Bootstrap" - scriptContent = """ - yarn - yarn bootstrap --core - """.trimIndent() - dockerImage = "andthensome/docker-node-rsync" - } - script { - name = "Test" - scriptContent = "yarn test --cli" - dockerImage = "andthensome/docker-node-rsync" - } - } - steps { - update(0) { - scriptContent = """ - set -e -x - - yarn - yarn bootstrap --core - """.trimIndent() - } - } -} diff --git a/lib/cli/test/fixtures/already_has_storybook/.gitignore b/lib/cli/test/fixtures/already_has_storybook/.gitignore deleted file mode 100644 index d30f40ef4422..000000000000 --- a/lib/cli/test/fixtures/already_has_storybook/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/lib/cli/test/fixtures/already_has_storybook/.storybook/addons.js b/lib/cli/test/fixtures/already_has_storybook/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/fixtures/already_has_storybook/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/fixtures/already_has_storybook/.storybook/config.js b/lib/cli/test/fixtures/already_has_storybook/.storybook/config.js deleted file mode 100644 index 35430210ce65..000000000000 --- a/lib/cli/test/fixtures/already_has_storybook/.storybook/config.js +++ /dev/null @@ -1,7 +0,0 @@ -import { configure } from '@storybook/react'; - -function loadStories() { - require('../src/stories'); -} - -configure(loadStories, module); diff --git a/lib/cli/test/fixtures/already_has_storybook/README.md b/lib/cli/test/fixtures/already_has_storybook/README.md deleted file mode 100644 index d58456fd2396..000000000000 --- a/lib/cli/test/fixtures/already_has_storybook/README.md +++ /dev/null @@ -1,2156 +0,0 @@ -This project was bootstrapped with [Create React App](https://github.com/facebookincubator/create-react-app). - -Below you will find some information on how to perform common tasks.
-You can find the most recent version of this guide [here](https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md). - -## Table of Contents - -- [Updating to New Releases](#updating-to-new-releases) -- [Sending Feedback](#sending-feedback) -- [Folder Structure](#folder-structure) -- [Available Scripts](#available-scripts) - - [npm start](#npm-start) - - [npm test](#npm-test) - - [npm run build](#npm-run-build) - - [npm run eject](#npm-run-eject) -- [Supported Language Features and Polyfills](#supported-language-features-and-polyfills) -- [Syntax Highlighting in the Editor](#syntax-highlighting-in-the-editor) -- [Displaying Lint Output in the Editor](#displaying-lint-output-in-the-editor) -- [Debugging in the Editor](#debugging-in-the-editor) - - [Visual Studio Code](#visual-studio-code) - - [WebStorm](#webstorm) -- [Formatting Code Automatically](#formatting-code-automatically) -- [Changing the Page <title>](#changing-the-page-title) -- [Installing a Dependency](#installing-a-dependency) -- [Importing a Component](#importing-a-component) - - [Button.js](#buttonjs) - - [DangerButton.js](#dangerbuttonjs) -- [Code Splitting](#code-splitting) - - [moduleA.js](#moduleajs) - - [App.js](#appjs) - - [With React Router](#with-react-router) -- [Adding a Stylesheet](#adding-a-stylesheet) - - [Button.css](#buttoncss) - - [Button.js](#buttonjs-1) -- [Post-Processing CSS](#post-processing-css) -- [Adding a CSS Preprocessor (Sass, Less etc.)](#adding-a-css-preprocessor-sass-less-etc) -- [Adding Images, Fonts, and Files](#adding-images-fonts-and-files) -- [Using the public Folder](#using-the-public-folder) - - [Changing the HTML](#changing-the-html) - - [Adding Assets Outside of the Module System](#adding-assets-outside-of-the-module-system) - - [When to Use the public Folder](#when-to-use-the-public-folder) -- [Using Global Variables](#using-global-variables) -- [Adding Bootstrap](#adding-bootstrap) - - [Using a Custom Theme](#using-a-custom-theme) -- [Adding Flow](#adding-flow) -- [Adding Custom Environment Variables](#adding-custom-environment-variables) - - [Referencing Environment Variables in the HTML](#referencing-environment-variables-in-the-html) - - [Adding Temporary Environment Variables In Your Shell](#adding-temporary-environment-variables-in-your-shell) - - [Adding Development Environment Variables In .env](#adding-development-environment-variables-in-env) -- [Can I Use Decorators?](#can-i-use-decorators) -- [Integrating with an API Backend](#integrating-with-an-api-backend) - - [Node](#node) - - [Ruby on Rails](#ruby-on-rails) -- [Proxying API Requests in Development](#proxying-api-requests-in-development) - - ["Invalid Host Header" Errors After Configuring Proxy](#invalid-host-header-errors-after-configuring-proxy) - - [Configuring the Proxy Manually](#configuring-the-proxy-manually) - - [Configuring a WebSocket Proxy](#configuring-a-websocket-proxy) -- [Using HTTPS in Development](#using-https-in-development) -- [Generating Dynamic <meta> Tags on the Server](#generating-dynamic-meta-tags-on-the-server) -- [Pre-Rendering into Static HTML Files](#pre-rendering-into-static-html-files) -- [Injecting Data from the Server into the Page](#injecting-data-from-the-server-into-the-page) -- [Running Tests](#running-tests) - - [Filename Conventions](#filename-conventions) - - [Command Line Interface](#command-line-interface) - - [Version Control Integration](#version-control-integration) - - [Writing Tests](#writing-tests) - - [Testing Components](#testing-components) - - [Using Third Party Assertion Libraries](#using-third-party-assertion-libraries) - - [Initializing Test Environment](#initializing-test-environment) - - [Focusing and Excluding Tests](#focusing-and-excluding-tests) - - [Coverage Reporting](#coverage-reporting) - - [Continuous Integration](#continuous-integration) - - [On CI servers](#on-ci-servers) - - [On your own environment](#on-your-own-environment) - - [Disabling jsdom](#disabling-jsdom) - - [Snapshot Testing](#snapshot-testing) - - [Editor Integration](#editor-integration) -- [Developing Components in Isolation](#developing-components-in-isolation) - - [Getting Started with Storybook](#getting-started-with-storybook) - - [Getting Started with Styleguidist](#getting-started-with-styleguidist) -- [Making a Progressive Web App](#making-a-progressive-web-app) - - [Opting Out of Caching](#opting-out-of-caching) - - [Offline-First Considerations](#offline-first-considerations) - - [Progressive Web App Metadata](#progressive-web-app-metadata) -- [Analyzing the Bundle Size](#analyzing-the-bundle-size) -- [Deployment](#deployment) - - [Static Server](#static-server) - - [Other Solutions](#other-solutions) - - [Serving Apps with Client-Side Routing](#serving-apps-with-client-side-routing) - - [Building for Relative Paths](#building-for-relative-paths) - - [Azure](#azure) - - [Firebase](#firebase) - - [GitHub Pages](#github-pages) - - [Heroku](#heroku) - - [Netlify](#netlify) - - [Now](#now) - - [S3 and CloudFront](#s3-and-cloudfront) - - [Surge](#surge) -- [Advanced Configuration](#advanced-configuration) -- [Troubleshooting](#troubleshooting) - - [npm start doesn’t detect changes](#npm-start-doesnt-detect-changes) - - [npm test hangs on macOS Sierra](#npm-test-hangs-on-macos-sierra) - - [npm run build exits too early](#npm-run-build-exits-too-early) - - [npm run build fails on Heroku](#npm-run-build-fails-on-heroku) - - [Moment.js locales are missing](#momentjs-locales-are-missing) - - [npm run build fails to minify](#npm-run-build-fails-to-minify) -- [Something Missing?](#something-missing) - -## Updating to New Releases - -Create React App is divided into two packages: - -- `create-react-app` is a global command-line utility that you use to create new projects. -- `react-scripts` is a development dependency in the generated projects (including this one). - -You almost never need to update `create-react-app` itself: it delegates all the setup to `react-scripts`. - -When you run `create-react-app`, it always creates the project with the latest version of `react-scripts` so you’ll get all the new features and improvements in newly created apps automatically. - -To update an existing project to a new version of `react-scripts`, [open the changelog](https://github.com/facebookincubator/create-react-app/blob/master/CHANGELOG.md), find the version you’re currently on (check `package.json` in this folder if you’re not sure), and apply the migration instructions for the newer versions. - -In most cases bumping the `react-scripts` version in `package.json` and running `npm install` in this folder should be enough, but it’s good to consult the [changelog](https://github.com/facebookincubator/create-react-app/blob/master/CHANGELOG.md) for potential breaking changes. - -We commit to keeping the breaking changes minimal so you can upgrade `react-scripts` painlessly. - -## Sending Feedback - -We are always open to [your feedback](https://github.com/facebookincubator/create-react-app/issues). - -## Folder Structure - -After creation, your project should look like this: - - my-app/ - README.md - node_modules/ - package.json - public/ - index.html - favicon.ico - src/ - App.css - App.js - App.test.js - index.css - index.js - logo.svg - -For the project to build, **these files must exist with exact filenames**: - -- `public/index.html` is the page template; -- `src/index.js` is the JavaScript entry point. - -You can delete or rename the other files. - -You may create subdirectories inside `src`. For faster rebuilds, only files inside `src` are processed by Webpack.
-You need to **put any JS and CSS files inside `src`**, otherwise Webpack won’t see them. - -Only files inside `public` can be used from `public/index.html`.
-Read instructions below for using assets from JavaScript and HTML. - -You can, however, create more top-level directories.
-They will not be included in the production build so you can use them for things like documentation. - -## Available Scripts - -In the project directory, you can run: - -### `npm start` - -Runs the app in the development mode.
-Open to view it in the browser. - -The page will reload if you make edits.
-You will also see any lint errors in the console. - -### `npm test` - -Launches the test runner in the interactive watch mode.
-See the section about [running tests](#running-tests) for more information. - -### `npm run build` - -Builds the app for production to the `build` folder.
-It correctly bundles React in production mode and optimizes the build for the best performance. - -The build is minified and the filenames include the hashes.
-Your app is ready to be deployed! - -See the section about [deployment](#deployment) for more information. - -### `npm run eject` - -**Note: this is a one-way operation. Once you `eject`, you can’t go back!** - -If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. - -Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. - -You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. - -## Supported Language Features and Polyfills - -This project supports a superset of the latest JavaScript standard.
-In addition to [ES6](https://github.com/lukehoban/es6features) syntax features, it also supports: - -- [Exponentiation Operator](https://github.com/rwaldron/exponentiation-operator) (ES2016). -- [Async/await](https://github.com/tc39/ecmascript-asyncawait) (ES2017). -- [Object Rest/Spread Properties](https://github.com/sebmarkbage/ecmascript-rest-spread) (stage 3 proposal). -- [Dynamic import()](https://github.com/tc39/proposal-dynamic-import) (stage 3 proposal) -- [Class Fields and Static Properties](https://github.com/tc39/proposal-class-public-fields) (stage 2 proposal). -- [JSX](https://facebook.github.io/react/docs/introducing-jsx.html) and [Flow](https://flowtype.org/) syntax. - -Learn more about [different proposal stages](https://babeljs.io/docs/plugins/#presets-stage-x-experimental-presets-). - -While we recommend to use experimental proposals with some caution, Facebook heavily uses these features in the product code, so we intend to provide [codemods](https://medium.com/@cpojer/effective-javascript-codemods-5a6686bb46fb) if any of these proposals change in the future. - -Note that **the project only includes a few ES6 [polyfills](https://en.wikipedia.org/wiki/Polyfill)**: - -- [`Object.assign()`](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) via [`object-assign`](https://github.com/sindresorhus/object-assign). -- [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) via [`promise`](https://github.com/then/promise). -- [`fetch()`](https://developer.mozilla.org/en/docs/Web/API/Fetch_API) via [`whatwg-fetch`](https://github.com/github/fetch). - -If you use any other ES6+ features that need **runtime support** (such as `Array.from()` or `Symbol`), make sure you are including the appropriate polyfills manually, or that the browsers you are targeting already support them. - -## Syntax Highlighting in the Editor - -To configure the syntax highlighting in your favorite text editor, head to the [relevant Babel documentation page](https://babeljs.io/docs/editors) and follow the instructions. Some of the most popular editors are covered. - -## Displaying Lint Output in the Editor - -> Note: this feature is available with `react-scripts@0.2.0` and higher.
-> It also only works with npm 3 or higher. - -Some editors, including Sublime Text, Atom, and Visual Studio Code, provide plugins for ESLint. - -They are not required for linting. You should see the linter output right in your terminal as well as the browser console. However, if you prefer the lint results to appear right in your editor, there are some extra steps you can do. - -You would need to install an ESLint plugin for your editor first. Then, add a file called `.eslintrc` to the project root: - -```js -{ - "extends": "react-app" -} -``` - -Now your editor should report the linting warnings. - -Note that even if you edit your `.eslintrc` file further, these changes will **only affect the editor integration**. They won’t affect the terminal and in-browser lint output. This is because Create React App intentionally provides a minimal set of rules that find common mistakes. - -If you want to enforce a coding style for your project, consider using [Prettier](https://github.com/jlongster/prettier) instead of ESLint style rules. - -## Debugging in the Editor - -**This feature is currently only supported by [Visual Studio Code](https://code.visualstudio.com) and [WebStorm](https://www.jetbrains.com/webstorm/).** - -Visual Studio Code and WebStorm support debugging out of the box with Create React App. This enables you as a developer to write and debug your React code without leaving the editor, and most importantly it enables you to have a continuous development workflow, where context switching is minimal, as you don’t have to switch between tools. - -### Visual Studio Code - -You would need to have the latest version of [VS Code](https://code.visualstudio.com) and VS Code [Chrome Debugger Extension](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) installed. - -Then add the block below to your `launch.json` file and put it inside the `.vscode` folder in your app’s root directory. - -```json -{ - "version": "0.2.0", - "configurations": [{ - "name": "Chrome", - "type": "chrome", - "request": "launch", - "url": "http://localhost:3000", - "webRoot": "${workspaceRoot}/src", - "userDataDir": "${workspaceRoot}/.vscode/chrome", - "sourceMapPathOverrides": { - "webpack:///src/*": "${webRoot}/*" - } - }] -} -``` - -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). - -Start your app by running `npm start`, and start debugging in VS Code by pressing `F5` or by clicking the green debug icon. You can now write code, set breakpoints, make changes to the code, and debug your newly modified code—all from your editor. - -### WebStorm - -You would need to have [WebStorm](https://www.jetbrains.com/webstorm/) and [JetBrains IDE Support](https://chrome.google.com/webstore/detail/jetbrains-ide-support/hmhgeddbohgjknpmjagkdomcpobmllji) Chrome extension installed. - -In the WebStorm menu `Run` select `Edit Configurations...`. Then click `+` and select `JavaScript Debug`. Paste `http://localhost:3000` into the URL field and save the configuration. - -> Note: the URL may be different if you've made adjustments via the [HOST or PORT environment variables](#advanced-configuration). - -Start your app by running `npm start`, then press `^D` on macOS or `F9` on Windows and Linux or click the green debug icon to start debugging in WebStorm. - -The same way you can debug your application in IntelliJ IDEA Ultimate, PhpStorm, PyCharm Pro, and RubyMine. - -## Formatting Code Automatically - -Prettier is an opinionated code formatter with support for JavaScript, CSS and JSON. With Prettier you can format the code you write automatically to ensure a code style within your project. See the [Prettier's GitHub page](https://github.com/prettier/prettier) for more information, and look at this [page to see it in action](https://prettier.github.io/prettier/). - -To format our code whenever we make a commit in git, we need to install the following dependencies: - -```sh -npm install --save husky lint-staged prettier -``` - -Alternatively you may use `yarn`: - -```sh -yarn add husky lint-staged prettier -``` - -- `husky` makes it easy to use githooks as if they are npm scripts. -- `lint-staged` allows us to run scripts on staged files in git. See this [blog post about lint-staged to learn more about it](https://medium.com/@okonetchnikov/make-linting-great-again-f3890e1ad6b8). -- `prettier` is the JavaScript formatter we will run before commits. - -Now we can make sure every file is formatted correctly by adding a few lines to the `package.json` in the project root. - -Add the following line to `scripts` section: - -```diff - "scripts": { -+ "precommit": "lint-staged", - "start": "react-scripts start", - "build": "react-scripts build", -``` - -Next we add a 'lint-staged' field to the `package.json`, for example: - -```diff - "dependencies": { - // ... - }, -+ "lint-staged": { -+ "src/**/*.{js,jsx,json,css}": [ -+ "prettier --single-quote --write", -+ "git add" -+ ] -+ }, - "scripts": { -``` - -Now, whenever you make a commit, Prettier will format the changed files automatically. You can also run `./node_modules/.bin/prettier --single-quote --write "src/**/*.{js,jsx}"` to format your entire project for the first time. - -Next you might want to integrate Prettier in your favorite editor. Read the section on [Editor Integration](https://github.com/prettier/prettier#editor-integration) on the Prettier GitHub page. - -## Changing the Page `` - -You can find the source HTML file in the `public` folder of the generated project. You may edit the `<title>` tag in it to change the title from “React App” to anything else. - -Note that normally you wouldn’t edit files in the `public` folder very often. For example, [adding a stylesheet](#adding-a-stylesheet) is done without touching the HTML. - -If you need to dynamically update the page title based on the content, you can use the browser [`document.title`](https://developer.mozilla.org/en-US/docs/Web/API/Document/title) API. For more complex scenarios when you want to change the title from React components, you can use [React Helmet](https://github.com/nfl/react-helmet), a third party library. - -If you use a custom server for your app in production and want to modify the title before it gets sent to the browser, you can follow advice in [this section](#generating-dynamic-meta-tags-on-the-server). Alternatively, you can pre-build each page as a static HTML file which then loads the JavaScript bundle, which is covered [here](#pre-rendering-into-static-html-files). - -## Installing a Dependency - -The generated project includes React and ReactDOM as dependencies. It also includes a set of scripts used by Create React App as a development dependency. You may install other dependencies (for example, React Router) with `npm`: - -```sh -npm install --save react-router -``` - -Alternatively you may use `yarn`: - -```sh -yarn add react-router -``` - -This works for any library, not just `react-router`. - -## Importing a Component - -This project setup supports ES6 modules thanks to Babel.<br> -While you can still use `require()` and `module.exports`, we encourage you to use [`import` and `export`](http://exploringjs.com/es6/ch_modules.html) instead. - -For example: - -### `Button.js` - -```js -import React, { Component } from 'react'; - -class Button extends Component { - render() { - // ... - } -} - -export default Button; // Don’t forget to use export default! -``` - -### `DangerButton.js` - -```js -import React, { Component } from 'react'; -import Button from './Button'; // Import a component from another file - -class DangerButton extends Component { - render() { - return <Button color="red" />; - } -} - -export default DangerButton; -``` - -Be aware of the [difference between default and named exports](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281). It is a common source of mistakes. - -We suggest that you stick to using default imports and exports when a module only exports a single thing (for example, a component). That’s what you get when you use `export default Button` and `import Button from './Button'`. - -Named exports are useful for utility modules that export several functions. A module may have at most one default export and as many named exports as you like. - -Learn more about ES6 modules: - -- [When to use the curly braces?](http://stackoverflow.com/questions/36795819/react-native-es-6-when-should-i-use-curly-braces-for-import/36796281#36796281) -- [Exploring ES6: Modules](http://exploringjs.com/es6/ch_modules.html) -- [Understanding ES6: Modules](https://leanpub.com/understandinges6/read#leanpub-auto-encapsulating-code-with-modules) - -## Code Splitting - -Instead of downloading the entire app before users can use it, code splitting allows you to split your code into small chunks which you can then load on demand. - -This project setup supports code splitting via [dynamic `import()`](http://2ality.com/2017/01/import-operator.html#loading-code-on-demand). Its [proposal](https://github.com/tc39/proposal-dynamic-import) is in stage 3. The `import()` function-like form takes the module name as an argument and returns a [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) which always resolves to the namespace object of the module. - -Here is an example: - -### `moduleA.js` - -```js -const moduleA = 'Hello'; - -export { moduleA }; -``` - -### `App.js` - -```js -import React, { Component } from 'react'; - -class App extends Component { - handleClick = () => { - import('./moduleA') - .then(({ moduleA }) => { - // Use moduleA - }) - .catch(err => { - // Handle failure - }); - }; - - render() { - return ( - <div> - <button onClick={this.handleClick}>Load</button> - </div> - ); - } -} - -export default App; -``` - -This will make `moduleA.js` and all its unique dependencies as a separate chunk that only loads after the user clicks the 'Load' button. - -You can also use it with `async` / `await` syntax if you prefer it. - -### With React Router - -If you are using React Router check out [this tutorial](http://serverless-stack.com/chapters/code-splitting-in-create-react-app.html) on how to use code splitting with it. You can find the companion GitHub repository [here](https://github.com/AnomalyInnovations/serverless-stack-demo-client/tree/code-splitting-in-create-react-app). - -## Adding a Stylesheet - -This project setup uses [Webpack](https://webpack.js.org/) for handling all assets. Webpack offers a custom way of “extending” the concept of `import` beyond JavaScript. To express that a JavaScript file depends on a CSS file, you need to **import the CSS from the JavaScript file**: - -### `Button.css` - -```css -.Button { - padding: 20px; -} -``` - -### `Button.js` - -```js -import React, { Component } from 'react'; -import './Button.css'; // Tell Webpack that Button.js uses these styles - -class Button extends Component { - render() { - // You can use them as regular CSS styles - return <div className="Button" />; - } -} -``` - -**This is not required for React** but many people find this feature convenient. You can read about the benefits of this approach [here](https://medium.com/seek-ui-engineering/block-element-modifying-your-javascript-components-d7f99fcab52b). However you should be aware that this makes your code less portable to other build tools and environments than Webpack. - -In development, expressing dependencies this way allows your styles to be reloaded on the fly as you edit them. In production, all CSS files will be concatenated into a single minified `.css` file in the build output. - -If you are concerned about using Webpack-specific semantics, you can put all your CSS right into `src/index.css`. It would still be imported from `src/index.js`, but you could always remove that import if you later migrate to a different build tool. - -## Post-Processing CSS - -This project setup minifies your CSS and adds vendor prefixes to it automatically through [Autoprefixer](https://github.com/postcss/autoprefixer) so you don’t need to worry about it. - -For example, this: - -```css -.App { - display: flex; - flex-direction: row; - align-items: center; -} -``` - -becomes this: - -```css -.App { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: horizontal; - -webkit-box-direction: normal; - -ms-flex-direction: row; - flex-direction: row; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} -``` - -If you need to disable autoprefixing for some reason, [follow this section](https://github.com/postcss/autoprefixer#disabling). - -## Adding a CSS Preprocessor (Sass, Less etc.) - -Generally, we recommend that you don’t reuse the same CSS classes across different components. For example, instead of using a `.Button` CSS class in `<AcceptButton>` and `<RejectButton>` components, we recommend creating a `<Button>` component with its own `.Button` styles, that both `<AcceptButton>` and `<RejectButton>` can render (but [not inherit](https://facebook.github.io/react/docs/composition-vs-inheritance.html)). - -Following this rule often makes CSS preprocessors less useful, as features like mixins and nesting are replaced by component composition. You can, however, integrate a CSS preprocessor if you find it valuable. In this walkthrough, we will be using Sass, but you can also use Less, or another alternative. - -First, let’s install the command-line interface for Sass: - -```sh -npm install --save node-sass-chokidar -``` - -Alternatively you may use `yarn`: - -```sh -yarn add node-sass-chokidar -``` - -Then in `package.json`, add the following lines to `scripts`: - -```diff - "scripts": { -+ "build-css": "node-sass-chokidar src/ -o src/", -+ "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive", - "start": "react-scripts start", - "build": "react-scripts build", - "test": "react-scripts test --env=jsdom", -``` - -> Note: To use a different preprocessor, replace `build-css` and `watch-css` commands according to your preprocessor’s documentation. - -Now you can rename `src/App.css` to `src/App.scss` and run `npm run watch-css`. The watcher will find every Sass file in `src` subdirectories, and create a corresponding CSS file next to it, in our case overwriting `src/App.css`. Since `src/App.js` still imports `src/App.css`, the styles become a part of your application. You can now edit `src/App.scss`, and `src/App.css` will be regenerated. - -To share variables between Sass files, you can use Sass imports. For example, `src/App.scss` and other component style files could include `@import "./shared.scss";` with variable definitions. - -To enable importing files without using relative paths, you can add the `--include-path` option to the command in `package.json`. - - "build-css": "node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/", - "watch-css": "npm run build-css && node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/ --watch --recursive", - -This will allow you to do imports like - -```scss -@import 'styles/_colors.scss'; // assuming a styles directory under src/ -@import 'nprogress/nprogress'; // importing a css file from the nprogress node module -``` - -At this point you might want to remove all CSS files from the source control, and add `src/**/*.css` to your `.gitignore` file. It is generally a good practice to keep the build products outside of the source control. - -As a final step, you may find it convenient to run `watch-css` automatically with `npm start`, and run `build-css` as a part of `npm run build`. You can use the `&&` operator to execute two scripts sequentially. However, there is no cross-platform way to run two scripts in parallel, so we will install a package for this: - -```sh -npm install --save npm-run-all -``` - -Alternatively you may use `yarn`: - -```sh -yarn add npm-run-all -``` - -Then we can change `start` and `build` scripts to include the CSS preprocessor commands: - -```diff - "scripts": { - "build-css": "node-sass-chokidar src/ -o src/", - "watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive", -- "start": "react-scripts start", -- "build": "react-scripts build", -+ "start-js": "react-scripts start", -+ "start": "npm-run-all -p watch-css start-js", -+ "build": "npm run build-css && react-scripts build", - "test": "react-scripts test --env=jsdom", - "eject": "react-scripts eject" - } -``` - -Now running `npm start` and `npm run build` also builds Sass files. - -**Why `node-sass-chokidar`?** - -`node-sass` has been reported as having the following issues: - -- `node-sass --watch` has been reported to have _performance issues_ in certain conditions when used in a virtual machine or with docker. - -- Infinite styles compiling [#1939](https://github.com/facebookincubator/create-react-app/issues/1939) - -- `node-sass` has been reported as having issues with detecting new files in a directory [#1891](https://github.com/sass/node-sass/issues/1891) - - `node-sass-chokidar` is used here as it addresses these issues. - -## Adding Images, Fonts, and Files - -With Webpack, using static assets like images and fonts works similarly to CSS. - -You can **`import` a file right in a JavaScript module**. This tells Webpack to include that file in the bundle. Unlike CSS imports, importing a file gives you a string value. This value is the final path you can reference in your code, e.g. as the `src` attribute of an image or the `href` of a link to a PDF. - -To reduce the number of requests to the server, importing images that are less than 10,000 bytes returns a [data URI](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) instead of a path. This applies to the following file extensions: bmp, gif, jpg, jpeg, and png. SVG files are excluded due to [#1153](https://github.com/facebookincubator/create-react-app/issues/1153). - -Here is an example: - -```js -import React from 'react'; -import logo from './logo.png'; // Tell Webpack this JS file uses this image - -console.log(logo); // /logo.84287d09.png - -function Header() { - // Import result is the URL of your image - return <img src={logo} alt="Logo" />; -} - -export default Header; -``` - -This ensures that when the project is built, Webpack will correctly move the images into the build folder, and provide us with correct paths. - -This works in CSS too: - -```css -.Logo { - background-image: url(./logo.png); -} -``` - -Webpack finds all relative module references in CSS (they start with `./`) and replaces them with the final paths from the compiled bundle. If you make a typo or accidentally delete an important file, you will see a compilation error, just like when you import a non-existent JavaScript module. The final filenames in the compiled bundle are generated by Webpack from content hashes. If the file content changes in the future, Webpack will give it a different name in production so you don’t need to worry about long-term caching of assets. - -Please be advised that this is also a custom feature of Webpack. - -**It is not required for React** but many people enjoy it (and React Native uses a similar mechanism for images).<br> -An alternative way of handling static assets is described in the next section. - -## Using the `public` Folder - -> Note: this feature is available with `react-scripts@0.5.0` and higher. - -### Changing the HTML - -The `public` folder contains the HTML file so you can tweak it, for example, to [set the page title](#changing-the-page-title). -The `<script>` tag with the compiled code will be added to it automatically during the build process. - -### Adding Assets Outside of the Module System - -You can also add other assets to the `public` folder. - -Note that we normally encourage you to `import` assets in JavaScript files instead. -For example, see the sections on [adding a stylesheet](#adding-a-stylesheet) and [adding images and fonts](#adding-images-fonts-and-files). -This mechanism provides a number of benefits: - -- Scripts and stylesheets get minified and bundled together to avoid extra network requests. -- Missing files cause compilation errors instead of 404 errors for your users. -- Result filenames include content hashes so you don’t need to worry about browsers caching their old versions. - -However there is an **escape hatch** that you can use to add an asset outside of the module system. - -If you put a file into the `public` folder, it will **not** be processed by Webpack. Instead it will be copied into the build folder untouched. To reference assets in the `public` folder, you need to use a special variable called `PUBLIC_URL`. - -Inside `index.html`, you can use it like this: - -```html -<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico"> -``` - -Only files inside the `public` folder will be accessible by `%PUBLIC_URL%` prefix. If you need to use a file from `src` or `node_modules`, you’ll have to copy it there to explicitly specify your intention to make this file a part of the build. - -When you run `npm run build`, Create React App will substitute `%PUBLIC_URL%` with a correct absolute path so your project works even if you use client-side routing or host it at a non-root URL. - -In JavaScript code, you can use `process.env.PUBLIC_URL` for similar purposes: - -```js -render() { - // Note: this is an escape hatch and should be used sparingly! - // Normally we recommend using `import` for getting asset URLs - // as described in “Adding Images and Fonts” above this section. - return <img src={process.env.PUBLIC_URL + '/img/logo.png'} />; -} -``` - -Keep in mind the downsides of this approach: - -- None of the files in `public` folder get post-processed or minified. -- Missing files will not be called at compilation time, and will cause 404 errors for your users. -- Result filenames won’t include content hashes so you’ll need to add query arguments or rename them every time they change. - -### When to Use the `public` Folder - -Normally we recommend importing [stylesheets](#adding-a-stylesheet), [images, and fonts](#adding-images-fonts-and-files) from JavaScript. -The `public` folder is useful as a workaround for a number of less common cases: - -- You need a file with a specific name in the build output, such as [`manifest.webmanifest`](https://developer.mozilla.org/en-US/docs/Web/Manifest). -- You have thousands of images and need to dynamically reference their paths. -- You want to include a small script like [`pace.js`](http://github.hubspot.com/pace/docs/welcome/) outside of the bundled code. -- Some library may be incompatible with Webpack and you have no other option but to include it as a `<script>` tag. - -Note that if you add a `<script>` that declares global variables, you also need to read the next section on using them. - -## Using Global Variables - -When you include a script in the HTML file that defines global variables and try to use one of these variables in the code, the linter will complain because it cannot see the definition of the variable. - -You can avoid this by reading the global variable explicitly from the `window` object, for example: - -```js -const $ = window.$; -``` - -This makes it obvious you are using a global variable intentionally rather than because of a typo. - -Alternatively, you can force the linter to ignore any line by adding `// eslint-disable-line` after it. - -## Adding Bootstrap - -You don’t have to use [React Bootstrap](https://react-bootstrap.github.io) together with React but it is a popular library for integrating Bootstrap with React apps. If you need it, you can integrate it with Create React App by following these steps: - -Install React Bootstrap and Bootstrap from npm. React Bootstrap does not include Bootstrap CSS so this needs to be installed as well: - -```sh -npm install --save react-bootstrap bootstrap@3 -``` - -Alternatively you may use `yarn`: - -```sh -yarn add react-bootstrap bootstrap@3 -``` - -Import Bootstrap CSS and optionally Bootstrap theme CSS in the beginning of your `src/index.js` file: - -```js -import 'bootstrap/dist/css/bootstrap.css'; -import 'bootstrap/dist/css/bootstrap-theme.css'; -// Put any other imports below so that CSS from your -// components takes precedence over default styles. -``` - -Import required React Bootstrap components within `src/App.js` file or your custom component files: - -```js -import { Navbar, Jumbotron, Button } from 'react-bootstrap'; -``` - -Now you are ready to use the imported React Bootstrap components within your component hierarchy defined in the render method. Here is an example [`App.js`](https://gist.githubusercontent.com/gaearon/85d8c067f6af1e56277c82d19fd4da7b/raw/6158dd991b67284e9fc8d70b9d973efe87659d72/App.js) redone using React Bootstrap. - -### Using a Custom Theme - -Sometimes you might need to tweak the visual styles of Bootstrap (or equivalent package).<br> -We suggest the following approach: - -- Create a new package that depends on the package you wish to customize, e.g. Bootstrap. -- Add the necessary build steps to tweak the theme, and publish your package on npm. -- Install your own theme npm package as a dependency of your app. - -Here is an example of adding a [customized Bootstrap](https://medium.com/@tacomanator/customizing-create-react-app-aa9ffb88165) that follows these steps. - -## Adding Flow - -Flow is a static type checker that helps you write code with fewer bugs. Check out this [introduction to using static types in JavaScript](https://medium.com/@preethikasireddy/why-use-static-types-in-javascript-part-1-8382da1e0adb) if you are new to this concept. - -Recent versions of [Flow](http://flowtype.org/) work with Create React App projects out of the box. - -To add Flow to a Create React App project, follow these steps: - -1. Run `npm install --save flow-bin` (or `yarn add flow-bin`). -2. Add `"flow": "flow"` to the `scripts` section of your `package.json`. -3. Run `npm run flow init` (or `yarn flow init`) to create a [`.flowconfig` file](https://flowtype.org/docs/advanced-configuration.html) in the root directory. -4. Add `// @flow` to any files you want to type check (for example, to `src/App.js`). - -Now you can run `npm run flow` (or `yarn flow`) to check the files for type errors. -You can optionally use an IDE like [Nuclide](https://nuclide.io/docs/languages/flow/) for a better integrated experience. -In the future we plan to integrate it into Create React App even more closely. - -To learn more about Flow, check out [its documentation](https://flowtype.org/). - -## Adding Custom Environment Variables - -> Note: this feature is available with `react-scripts@0.2.3` and higher. - -Your project can consume variables declared in your environment as if they were declared locally in your JS files. By -default you will have `NODE_ENV` defined for you, and any other environment variables starting with -`REACT_APP_`. - -**The environment variables are embedded during the build time**. Since Create React App produces a static HTML/CSS/JS bundle, it can’t possibly read them at runtime. To read them at runtime, you would need to load HTML into memory on the server and replace placeholders in runtime, just like [described here](#injecting-data-from-the-server-into-the-page). Alternatively you can rebuild the app on the server anytime you change them. - -> Note: You must create custom environment variables beginning with `REACT_APP_`. Any other variables except `NODE_ENV` will be ignored to avoid accidentally [exposing a private key on the machine that could have the same name](https://github.com/facebookincubator/create-react-app/issues/865#issuecomment-252199527). Changing any environment variables will require you to restart the development server if it is running. - -These environment variables will be defined for you on `process.env`. For example, having an environment -variable named `REACT_APP_SECRET_CODE` will be exposed in your JS as `process.env.REACT_APP_SECRET_CODE`. - -There is also a special built-in environment variable called `NODE_ENV`. You can read it from `process.env.NODE_ENV`. When you run `npm start`, it is always equal to `'development'`, when you run `npm test` it is always equal to `'test'`, and when you run `npm run build` to make a production bundle, it is always equal to `'production'`. **You cannot override `NODE_ENV` manually.** This prevents developers from accidentally deploying a slow development build to production. - -These environment variables can be useful for displaying information conditionally based on where the project is -deployed or consuming sensitive data that lives outside of version control. - -First, you need to have environment variables defined. For example, let’s say you wanted to consume a secret defined -in the environment inside a `<form>`: - -```jsx -render() { - return ( - <div> - <small>You are running this application in <b>{process.env.NODE_ENV}</b> mode.</small> - <form> - <input type="hidden" defaultValue={process.env.REACT_APP_SECRET_CODE} /> - </form> - </div> - ); -} -``` - -During the build, `process.env.REACT_APP_SECRET_CODE` will be replaced with the current value of the `REACT_APP_SECRET_CODE` environment variable. Remember that the `NODE_ENV` variable will be set for you automatically. - -When you load the app in the browser and inspect the `<input>`, you will see its value set to `abcdef`, and the bold text will show the environment provided when using `npm start`: - -```html -<div> - <small>You are running this application in <b>development</b> mode.</small> - <form> - <input type="hidden" value="abcdef" /> - </form> -</div> -``` - -The above form is looking for a variable called `REACT_APP_SECRET_CODE` from the environment. In order to consume this -value, we need to have it defined in the environment. This can be done using two ways: either in your shell or in -a `.env` file. Both of these ways are described in the next few sections. - -Having access to the `NODE_ENV` is also useful for performing actions conditionally: - -```js -if (process.env.NODE_ENV !== 'production') { - analytics.disable(); -} -``` - -When you compile the app with `npm run build`, the minification step will strip out this condition, and the resulting bundle will be smaller. - -### Referencing Environment Variables in the HTML - -> Note: this feature is available with `react-scripts@0.9.0` and higher. - -You can also access the environment variables starting with `REACT_APP_` in the `public/index.html`. For example: - -```html -<title>%REACT_APP_WEBSITE_NAME% -``` - -Note that the caveats from the above section apply: - -- Apart from a few built-in variables (`NODE_ENV` and `PUBLIC_URL`), variable names must start with `REACT_APP_` to work. -- The environment variables are injected at build time. If you need to inject them at runtime, [follow this approach instead](#generating-dynamic-meta-tags-on-the-server). - -### Adding Temporary Environment Variables In Your Shell - -Defining environment variables can vary between OSes. It’s also important to know that this manner is temporary for the -life of the shell session. - -#### Windows (cmd.exe) - -```cmd -set REACT_APP_SECRET_CODE=abcdef&&npm start -``` - -(Note: the lack of whitespace is intentional.) - -#### Linux, macOS (Bash) - -```bash -REACT_APP_SECRET_CODE=abcdef npm start -``` - -### Adding Development Environment Variables In `.env` - -> Note: this feature is available with `react-scripts@0.5.0` and higher. - -To define permanent environment variables, create a file called `.env` in the root of your project: - - REACT_APP_SECRET_CODE=abcdef - -`.env` files **should be** checked into source control (with the exclusion of `.env*.local`). - -#### What other `.env` files are can be used? - -> Note: this feature is **available with `react-scripts@1.0.0` and higher**. - -- `.env`: Default. -- `.env.local`: Local overrides. **This file is loaded for all environments except test.** -- `.env.development`, `.env.test`, `.env.production`: Environment-specific settings. -- `.env.development.local`, `.env.test.local`, `.env.production.local`: Local overrides of environment-specific settings. - -Files on the left have more priority than files on the right: - -- `npm start`: `.env.development.local`, `.env.development`, `.env.local`, `.env` -- `npm run build`: `.env.production.local`, `.env.production`, `.env.local`, `.env` -- `npm test`: `.env.test.local`, `.env.test`, `.env` (note `.env.local` is missing) - -These variables will act as the defaults if the machine does not explicitly set them.
-Please refer to the [dotenv documentation](https://github.com/motdotla/dotenv) for more details. - -> Note: If you are defining environment variables for development, your CI and/or hosting platform will most likely need -> these defined as well. Consult their documentation how to do this. For example, see the documentation for [Travis CI](https://docs.travis-ci.com/user/environment-variables/) or [Heroku](https://devcenter.heroku.com/articles/config-vars). - -## Can I Use Decorators? - -Many popular libraries use [decorators](https://medium.com/google-developers/exploring-es7-decorators-76ecb65fb841) in their documentation.
-Create React App doesn’t support decorator syntax at the moment because: - -- It is an experimental proposal and is subject to change. -- The current specification version is not officially supported by Babel. -- If the specification changes, we won’t be able to write a codemod because we don’t use them internally at Facebook. - -However in many cases you can rewrite decorator-based code without decorators just as fine.
-Please refer to these two threads for reference: - -- [#214](https://github.com/facebookincubator/create-react-app/issues/214) -- [#411](https://github.com/facebookincubator/create-react-app/issues/411) - -Create React App will add decorator support when the specification advances to a stable stage. - -## Integrating with an API Backend - -These tutorials will help you to integrate your app with an API backend running on another port, -using `fetch()` to access it. - -### Node - -Check out [this tutorial](https://www.fullstackreact.com/articles/using-create-react-app-with-a-server/). -You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo). - -### Ruby on Rails - -Check out [this tutorial](https://www.fullstackreact.com/articles/how-to-get-create-react-app-to-work-with-your-rails-api/). -You can find the companion GitHub repository [here](https://github.com/fullstackreact/food-lookup-demo-rails). - -## Proxying API Requests in Development - -> Note: this feature is available with `react-scripts@0.2.3` and higher. - -People often serve the front-end React app from the same host and port as their backend implementation.
-For example, a production setup might look like this after the app is deployed: - - / - static server returns index.html with React app - /todos - static server returns index.html with React app - /api/todos - server handles any /api/* requests using the backend implementation - -Such setup is **not** required. However, if you **do** have a setup like this, it is convenient to write requests like `fetch('/api/todos')` without worrying about redirecting them to another host or port during development. - -To tell the development server to proxy any unknown requests to your API server in development, add a `proxy` field to your `package.json`, for example: - -```js - "proxy": "http://localhost:4000", -``` - -This way, when you `fetch('/api/todos')` in development, the development server will recognize that it’s not a static asset, and will proxy your request to `http://localhost:4000/api/todos` as a fallback. The development server will only attempt to send requests without a `text/html` accept header to the proxy. - -Conveniently, this avoids [CORS issues](http://stackoverflow.com/questions/21854516/understanding-ajax-cors-and-security-considerations) and error messages like this in development: - - Fetch API cannot load http://localhost:4000/api/todos. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. - -Keep in mind that `proxy` only has effect in development (with `npm start`), and it is up to you to ensure that URLs like `/api/todos` point to the right thing in production. You don’t have to use the `/api` prefix. Any unrecognized request without a `text/html` accept header will be redirected to the specified `proxy`. - -The `proxy` option supports HTTP, HTTPS and WebSocket connections.
-If the `proxy` option is **not** flexible enough for you, alternatively you can: - -- [Configure the proxy yourself](#configuring-the-proxy-manually) -- Enable CORS on your server ([here’s how to do it for Express](http://enable-cors.org/server_expressjs.html)). -- Use [environment variables](#adding-custom-environment-variables) to inject the right server host and port into your app. - -### "Invalid Host Header" Errors After Configuring Proxy - -When you enable the `proxy` option, you opt into a more strict set of host checks. This is necessary because leaving the backend open to remote hosts makes your computer vulnerable to DNS rebinding attacks. The issue is explained in [this article](https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a) and [this issue](https://github.com/webpack/webpack-dev-server/issues/887). - -This shouldn’t affect you when developing on `localhost`, but if you develop remotely like [described here](https://github.com/facebookincubator/create-react-app/issues/2271), you will see this error in the browser after enabling the `proxy` option: - -> Invalid Host header - -To work around it, you can specify your public development host in a file called `.env.development` in the root of your project: - - HOST=mypublicdevhost.com - -If you restart the development server now and load the app from the specified host, it should work. - -If you are still having issues or if you’re using a more exotic environment like a cloud editor, you can bypass the host check completely by adding a line to `.env.development.local`. **Note that this is dangerous and exposes your machine to remote code execution from malicious websites:** - - # NOTE: THIS IS DANGEROUS! - # It exposes your machine to attacks from the websites you visit. - DANGEROUSLY_DISABLE_HOST_CHECK=true - -We don’t recommend this approach. - -### Configuring the Proxy Manually - -> Note: this feature is available with `react-scripts@1.0.0` and higher. - -If the `proxy` option is **not** flexible enough for you, you can specify an object in the following form (in `package.json`).
-You may also specify any configuration value [`http-proxy-middleware`](https://github.com/chimurai/http-proxy-middleware#options) or [`http-proxy`](https://github.com/nodejitsu/node-http-proxy#options) supports. - -```js -{ - // ... - "proxy": { - "/api": { - "target": "", - "ws": true - // ... - } - } - // ... -} -``` - -All requests matching this path will be proxies, no exceptions. This includes requests for `text/html`, which the standard `proxy` option does not proxy. - -If you need to specify multiple proxies, you may do so by specifying additional entries. -You may also narrow down matches using `*` and/or `**`, to match the path exactly or any subpath. - -```js -{ - // ... - "proxy": { - // Matches any request starting with /api - "/api": { - "target": "", - "ws": true - // ... - }, - // Matches any request starting with /foo - "/foo": { - "target": "", - "ssl": true, - "pathRewrite": { - "^/foo": "/foo/beta" - } - // ... - }, - // Matches /bar/abc.html but not /bar/sub/def.html - "/bar/*.html": { - "target": "", - // ... - }, - // Matches /baz/abc.html and /baz/sub/def.html - "/baz/**/*.html": { - "target": "" - // ... - } - } - // ... -} -``` - -### Configuring a WebSocket Proxy - -When setting up a WebSocket proxy, there are a some extra considerations to be aware of. - -If you’re using a WebSocket engine like [Socket.io](https://socket.io/), you must have a Socket.io server running that you can use as the proxy target. Socket.io will not work with a standard WebSocket server. Specifically, don't expect Socket.io to work with [the websocket.org echo test](http://websocket.org/echo.html). - -There’s some good documentation available for [setting up a Socket.io server](https://socket.io/docs/). - -Standard WebSockets **will** work with a standard WebSocket server as well as the websocket.org echo test. You can use libraries like [ws](https://github.com/websockets/ws) for the server, with [native WebSockets in the browser](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket). - -Either way, you can proxy WebSocket requests manually in `package.json`: - -```js -{ - // ... - "proxy": { - "/socket": { - // Your compatible WebSocket server - "target": "ws://", - // Tell http-proxy-middleware that this is a WebSocket proxy. - // Also allows you to proxy WebSocket requests without an additional HTTP request - // https://github.com/chimurai/http-proxy-middleware#external-websocket-upgrade - "ws": true - // ... - } - } - // ... -} -``` - -## Using HTTPS in Development - -> Note: this feature is available with `react-scripts@0.4.0` and higher. - -You may require the dev server to serve pages over HTTPS. One particular case where this could be useful is when using [the "proxy" feature](#proxying-api-requests-in-development) to proxy requests to an API server when that API server is itself serving HTTPS. - -To do this, set the `HTTPS` environment variable to `true`, then start the dev server as usual with `npm start`: - -#### Windows (cmd.exe) - -```cmd -set HTTPS=true&&npm start -``` - -(Note: the lack of whitespace is intentional.) - -#### Linux, macOS (Bash) - -```bash -HTTPS=true npm start -``` - -Note that the server will use a self-signed certificate, so your web browser will almost definitely display a warning upon accessing the page. - -## Generating Dynamic `` Tags on the Server - -Since Create React App doesn’t support server rendering, you might be wondering how to make `` tags dynamic and reflect the current URL. To solve this, we recommend to add placeholders into the HTML, like this: - -```html - - - - - -``` - -Then, on the server, regardless of the backend you use, you can read `index.html` into memory and replace `__OG_TITLE__`, `__OG_DESCRIPTION__`, and any other placeholders with values depending on the current URL. Just make sure to sanitize and escape the interpolated values so that they are safe to embed into HTML! - -If you use a Node server, you can even share the route matching logic between the client and the server. However duplicating it also works fine in simple cases. - -## Pre-Rendering into Static HTML Files - -If you’re hosting your `build` with a static hosting provider you can use [react-snapshot](https://www.npmjs.com/package/react-snapshot) to generate HTML pages for each route, or relative link, in your application. These pages will then seamlessly become active, or “hydrated”, when the JavaScript bundle has loaded. - -There are also opportunities to use this outside of static hosting, to take the pressure off the server when generating and caching routes. - -The primary benefit of pre-rendering is that you get the core content of each page _with_ the HTML payload—regardless of whether or not your JavaScript bundle successfully downloads. It also increases the likelihood that each route of your application will be picked up by search engines. - -You can read more about [zero-configuration pre-rendering (also called snapshotting) here](https://medium.com/superhighfives/an-almost-static-stack-6df0a2791319). - -## Injecting Data from the Server into the Page - -Similarly to the previous section, you can leave some placeholders in the HTML that inject global variables, for example: - -```js - - - - -``` - -Then, on the server, you can replace `__SERVER_DATA__` with a JSON of real data right before sending the response. The client code can then read `window.SERVER_DATA` to use it. **Make sure to [sanitize the JSON before sending it to the client](https://medium.com/node-security/the-most-common-xss-vulnerability-in-react-js-applications-2bdffbcc1fa0) as it makes your app vulnerable to XSS attacks.** - -## Running Tests - -> Note: this feature is available with `react-scripts@0.3.0` and higher.
-> [Read the migration guide to learn how to enable it in older projects!](https://github.com/facebookincubator/create-react-app/blob/master/CHANGELOG.md#migrating-from-023-to-030) - -Create React App uses [Jest](https://facebook.github.io/jest/) as its test runner. To prepare for this integration, we did a [major revamp](https://facebook.github.io/jest/blog/2016/09/01/jest-15.html) of Jest so if you heard bad things about it years ago, give it another try. - -Jest is a Node-based runner. This means that the tests always run in a Node environment and not in a real browser. This lets us enable fast iteration speed and prevent flakiness. - -While Jest provides browser globals such as `window` thanks to [jsdom](https://github.com/tmpvar/jsdom), they are only approximations of the real browser behavior. Jest is intended to be used for unit tests of your logic and your components rather than the DOM quirks. - -We recommend that you use a separate tool for browser end-to-end tests if you need them. They are beyond the scope of Create React App. - -### Filename Conventions - -Jest will look for test files with any of the following popular naming conventions: - -- Files with `.js` suffix in `__tests__` folders. -- Files with `.test.js` suffix. -- Files with `.spec.js` suffix. - -The `.test.js` / `.spec.js` files (or the `__tests__` folders) can be located at any depth under the `src` top level folder. - -We recommend to put the test files (or `__tests__` folders) next to the code they are testing so that relative imports appear shorter. For example, if `App.test.js` and `App.js` are in the same folder, the test just needs to `import App from './App'` instead of a long relative path. Colocation also helps find tests more quickly in larger projects. - -### Command Line Interface - -When you run `npm test`, Jest will launch in the watch mode. Every time you save a file, it will re-run the tests, just like `npm start` recompiles the code. - -The watcher includes an interactive command-line interface with the ability to run all tests, or focus on a search pattern. It is designed this way so that you can keep it open and enjoy fast re-runs. You can learn the commands from the “Watch Usage” note that the watcher prints after every run: - -![Jest watch mode](http://facebook.github.io/jest/img/blog/15-watch.gif) - -### Version Control Integration - -By default, when you run `npm test`, Jest will only run the tests related to files changed since the last commit. This is an optimization designed to make your tests run fast regardless of how many tests you have. However it assumes that you don’t often commit the code that doesn’t pass the tests. - -Jest will always explicitly mention that it only ran tests related to the files changed since the last commit. You can also press `a` in the watch mode to force Jest to run all tests. - -Jest will always run all tests on a [continuous integration](#continuous-integration) server or if the project is not inside a Git or Mercurial repository. - -### Writing Tests - -To create tests, add `it()` (or `test()`) blocks with the name of the test and its code. You may optionally wrap them in `describe()` blocks for logical grouping but this is neither required nor recommended. - -Jest provides a built-in `expect()` global function for making assertions. A basic test could look like this: - -```js -import sum from './sum'; - -it('sums numbers', () => { - expect(sum(1, 2)).toEqual(3); - expect(sum(2, 2)).toEqual(4); -}); -``` - -All `expect()` matchers supported by Jest are [extensively documented here](http://facebook.github.io/jest/docs/expect.html).
-You can also use [`jest.fn()` and `expect(fn).toBeCalled()`](http://facebook.github.io/jest/docs/expect.html#tohavebeencalled) to create “spies” or mock functions. - -### Testing Components - -There is a broad spectrum of component testing techniques. They range from a “smoke test” verifying that a component renders without throwing, to shallow rendering and testing some of the output, to full rendering and testing component lifecycle and state changes. - -Different projects choose different testing tradeoffs based on how often components change, and how much logic they contain. If you haven’t decided on a testing strategy yet, we recommend that you start with creating simple smoke tests for your components: - -```js -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); -``` - -This test mounts a component and makes sure that it didn’t throw during rendering. Tests like this provide a lot value with very little effort so they are great as a starting point, and this is the test you will find in `src/App.test.js`. - -When you encounter bugs caused by changing components, you will gain a deeper insight into which parts of them are worth testing in your application. This might be a good time to introduce more specific tests asserting specific expected output or behavior. - -If you’d like to test components in isolation from the child components they render, we recommend using [`shallow()` rendering API](http://airbnb.io/enzyme/docs/api/shallow.html) from [Enzyme](http://airbnb.io/enzyme/). To install it, run: - -```sh -npm install --save enzyme react-test-renderer -``` - -Alternatively you may use `yarn`: - -```sh -yarn add enzyme react-test-renderer -``` - -You can write a smoke test with it too: - -```js -import React from 'react'; -import { shallow } from 'enzyme'; -import App from './App'; - -it('renders without crashing', () => { - shallow(); -}); -``` - -Unlike the previous smoke test using `ReactDOM.render()`, this test only renders `` and doesn’t go deeper. For example, even if `` itself renders a `) - .add('with some emoji', () => ); diff --git a/lib/cli/test/run_tests.sh b/lib/cli/test/run_tests.sh index 96cb637b6134..a44f911ebf76 100755 --- a/lib/cli/test/run_tests.sh +++ b/lib/cli/test/run_tests.sh @@ -11,28 +11,12 @@ function cleanup { } trap cleanup EXIT -update=0 -update_only=0 -skip=0 fixtures_dir='fixtures' # parse command-line options -# `-u` turns on snapshot update mode -# `-o` does the same, plus skips the smoke tests -# `-s` skips snapshot testing # '-f' sets fixtures directory while getopts ":uosf:" opt; do case $opt in - u) - update=1 - ;; - o) - update_only=1 - update=1 - ;; - s) - skip=1 - ;; f) fixtures_dir=$OPTARG ;; @@ -55,35 +39,6 @@ done cd .. -# snapshot tests run only on node >= 6 -../node_modules/.bin/check-node-version --node '>=6' || exit 0 - - -if [ $update -eq 1 ] - then - # copy `run` directory contents to `snapshots`, skipping irrelevant files - rm -rf snapshots - rsync -r --exclude={node_modules**,.DS_Store,*.md,yarn-error.log} run/ snapshots - else if [ $skip -eq 0 ] - then - # check if there is any difference between `run` and `snapshots` directories, - # skipping irrelevant files - declare diff=`diff -r -x node_modules** -x .DS_Store -x *.md -x yarn-error.log run snapshots` - if [[ $diff ]] - then - # if there is some diff, output it to stderr along with a clarifying message - echo "$diff" 1>&2 - echo "Snapshots don't match. Inspect your code changes or run 'yarn test --cli --update' to update them" 1>&2 - exit 1 - fi - fi - fi - -if [ $update_only -eq 1 ] - then - exit 0 - fi - # install all the dependencies in a single run cd ../../.. yarn install --non-interactive --silent --pure-lockfile @@ -92,13 +47,8 @@ cd ${test_root}/run for dir in * do # check that storybook starts without errors - # smoke-test option may be unknown in earlier storybook versions, - # so skip `already_has_storybook` here - if [ $dir != "already_has_storybook" ] - then - cd $dir - echo "Running smoke test in $dir" - yarn storybook --smoke-test - cd .. - fi + cd $dir + echo "Running smoke test in $dir" + yarn storybook --smoke-test + cd .. done diff --git a/lib/cli/test/snapshots/already_has_storybook/.gitignore b/lib/cli/test/snapshots/already_has_storybook/.gitignore deleted file mode 100644 index d30f40ef4422..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/lib/cli/test/snapshots/already_has_storybook/.storybook/addons.js b/lib/cli/test/snapshots/already_has_storybook/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/already_has_storybook/.storybook/config.js b/lib/cli/test/snapshots/already_has_storybook/.storybook/config.js deleted file mode 100644 index 35430210ce65..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/.storybook/config.js +++ /dev/null @@ -1,7 +0,0 @@ -import { configure } from '@storybook/react'; - -function loadStories() { - require('../src/stories'); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/already_has_storybook/package.json b/lib/cli/test/snapshots/already_has_storybook/package.json deleted file mode 100644 index 444c3434c0f8..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "already-has-storybook-fixture", - "version": "0.1.0", - "private": true, - "scripts": { - "build": "react-scripts build", - "build-storybook": "build-storybook -s public", - "eject": "react-scripts eject", - "start": "react-scripts start", - "storybook": "start-storybook -p 9009 -s public", - "test": "react-scripts test --env=jsdom" - }, - "dependencies": { - "react": "^15.6.1", - "react-dom": "^15.6.1", - "react-scripts": "1.0.12" - }, - "devDependencies": { - "@storybook/addon-actions": "^3.2.6", - "@storybook/addon-links": "^3.2.6", - "@storybook/react": "^3.2.8" - } -} diff --git a/lib/cli/test/snapshots/already_has_storybook/public/favicon.ico b/lib/cli/test/snapshots/already_has_storybook/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/lib/cli/test/snapshots/already_has_storybook/public/index.html b/lib/cli/test/snapshots/already_has_storybook/public/index.html deleted file mode 100644 index 7bee027101eb..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/public/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - React App - - - -
- - - diff --git a/lib/cli/test/snapshots/already_has_storybook/public/manifest.json b/lib/cli/test/snapshots/already_has_storybook/public/manifest.json deleted file mode 100644 index be607e417719..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "192x192", - "type": "image/png" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/lib/cli/test/snapshots/already_has_storybook/src/App.css b/lib/cli/test/snapshots/already_has_storybook/src/App.css deleted file mode 100644 index 15adfdc710ca..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/App.css +++ /dev/null @@ -1,24 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - animation: App-logo-spin infinite 20s linear; - height: 80px; -} - -.App-header { - background-color: #222; - height: 150px; - padding: 20px; - color: white; -} - -.App-intro { - font-size: large; -} - -@keyframes App-logo-spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} diff --git a/lib/cli/test/snapshots/already_has_storybook/src/App.js b/lib/cli/test/snapshots/already_has_storybook/src/App.js deleted file mode 100644 index d7d52a7f38a3..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/App.js +++ /dev/null @@ -1,21 +0,0 @@ -import React, { Component } from 'react'; -import logo from './logo.svg'; -import './App.css'; - -class App extends Component { - render() { - return ( -
-
- logo -

Welcome to React

-
-

- To get started, edit src/App.js and save to reload. -

-
- ); - } -} - -export default App; diff --git a/lib/cli/test/snapshots/already_has_storybook/src/App.test.js b/lib/cli/test/snapshots/already_has_storybook/src/App.test.js deleted file mode 100644 index b84af98d7203..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/App.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); diff --git a/lib/cli/test/snapshots/already_has_storybook/src/index.css b/lib/cli/test/snapshots/already_has_storybook/src/index.css deleted file mode 100644 index b4cc7250b98c..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/index.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - margin: 0; - padding: 0; - font-family: sans-serif; -} diff --git a/lib/cli/test/snapshots/already_has_storybook/src/index.js b/lib/cli/test/snapshots/already_has_storybook/src/index.js deleted file mode 100644 index fae3e3500cf0..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import registerServiceWorker from './registerServiceWorker'; - -ReactDOM.render(, document.getElementById('root')); -registerServiceWorker(); diff --git a/lib/cli/test/snapshots/already_has_storybook/src/logo.svg b/lib/cli/test/snapshots/already_has_storybook/src/logo.svg deleted file mode 100644 index 6b60c1042f58..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/lib/cli/test/snapshots/already_has_storybook/src/registerServiceWorker.js b/lib/cli/test/snapshots/already_has_storybook/src/registerServiceWorker.js deleted file mode 100644 index 4a3ccf02124e..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/registerServiceWorker.js +++ /dev/null @@ -1,108 +0,0 @@ -// In production, we register a service worker to serve assets from local cache. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on the "N+1" visit to a page, since previously -// cached resources are updated in the background. - -// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. -// This link also includes instructions on opting out of this behavior. - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.1/8 is considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -); - -export default function register() { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location); - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 - return; - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; - - if (!isLocalhost) { - // Is not local host. Just register service worker - registerValidSW(swUrl); - } else { - // This is running on localhost. Lets check if a service worker still exists or not. - checkValidServiceWorker(swUrl); - } - }); - } -} - -function registerValidSW(swUrl) { - navigator.serviceWorker - .register(swUrl) - .then(registration => { - registration.onupdatefound = () => { - const installingWorker = registration.installing; - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the old content will have been purged and - // the fresh content will have been added to the cache. - // It's the perfect time to display a "New content is - // available; please refresh." message in your web app. - console.log('New content is available; please refresh.'); - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); - } - } - }; - }; - }) - .catch(error => { - console.error('Error during service worker registration:', error); - }); -} - -function checkValidServiceWorker(swUrl) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl) - .then(response => { - // Ensure service worker exists, and that we really are getting a JS file. - if ( - response.status === 404 || - response.headers.get('content-type').indexOf('javascript') === -1 - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { - registration.unregister().then(() => { - window.location.reload(); - }); - }); - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl); - } - }) - .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); - }); -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready.then(registration => { - registration.unregister(); - }); - } -} diff --git a/lib/cli/test/snapshots/already_has_storybook/src/stories/index.js b/lib/cli/test/snapshots/already_has_storybook/src/stories/index.js deleted file mode 100644 index 9214f65c7bb5..000000000000 --- a/lib/cli/test/snapshots/already_has_storybook/src/stories/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ); diff --git a/lib/cli/test/snapshots/angular-cli/.editorconfig b/lib/cli/test/snapshots/angular-cli/.editorconfig deleted file mode 100644 index 6e87a003da89..000000000000 --- a/lib/cli/test/snapshots/angular-cli/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# Editor configuration, see http://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -max_line_length = off -trim_trailing_whitespace = false diff --git a/lib/cli/test/snapshots/angular-cli/.gitignore b/lib/cli/test/snapshots/angular-cli/.gitignore deleted file mode 100644 index fe6f8a76b049..000000000000 --- a/lib/cli/test/snapshots/angular-cli/.gitignore +++ /dev/null @@ -1,40 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp - -# dependencies -/node_modules - -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json - -# misc -/.sass-cache -/connect.lock -/coverage/* -/libpeerconnection.log -npm-debug.log -testem.log -/typings - -# e2e -/e2e/*.js -/e2e/*.map - -#System Files -.DS_Store -Thumbs.db diff --git a/lib/cli/test/snapshots/angular-cli/.storybook/addons.js b/lib/cli/test/snapshots/angular-cli/.storybook/addons.js deleted file mode 100644 index 47eabe0ce400..000000000000 --- a/lib/cli/test/snapshots/angular-cli/.storybook/addons.js +++ /dev/null @@ -1,3 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; -import '@storybook/addon-notes/register'; diff --git a/lib/cli/test/snapshots/angular-cli/.storybook/config.js b/lib/cli/test/snapshots/angular-cli/.storybook/config.js deleted file mode 100644 index 88f8a5326e45..000000000000 --- a/lib/cli/test/snapshots/angular-cli/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/angular'; - -// automatically import all files ending in *.stories.ts -const req = require.context('../src/stories', true, /.stories.ts$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/angular-cli/angular-cli.json b/lib/cli/test/snapshots/angular-cli/angular-cli.json deleted file mode 100644 index 1f27f27e71e2..000000000000 --- a/lib/cli/test/snapshots/angular-cli/angular-cli.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "project": { - "version": "1.0.0-beta.28.3", - "name": "fixture" - }, - "apps": [ - { - "root": "src", - "outDir": "dist", - "assets": [ - "assets", - "favicon.ico" - ], - "index": "index.html", - "main": "main.ts", - "polyfills": "polyfills.ts", - "test": "test.ts", - "tsconfig": "tsconfig.json", - "prefix": "app", - "styles": [ - "styles.css" - ], - "scripts": [], - "environments": { - "source": "environments/environment.ts", - "dev": "environments/environment.ts", - "prod": "environments/environment.prod.ts" - } - } - ], - "e2e": { - "protractor": { - "config": "./protractor.conf.js" - } - }, - "lint": [ - { - "files": "src/**/*.ts", - "project": "src/tsconfig.json" - }, - { - "files": "e2e/**/*.ts", - "project": "e2e/tsconfig.json" - } - ], - "test": { - "karma": { - "config": "./karma.conf.js" - } - }, - "defaults": { - "styleExt": "css", - "prefixInterfaces": false, - "inline": { - "style": false, - "template": false - }, - "spec": { - "class": false, - "component": true, - "directive": true, - "module": false, - "pipe": true, - "service": true - } - } -} diff --git a/lib/cli/test/snapshots/angular-cli/e2e/app.e2e-spec.ts b/lib/cli/test/snapshots/angular-cli/e2e/app.e2e-spec.ts deleted file mode 100644 index 6793d0584d9c..000000000000 --- a/lib/cli/test/snapshots/angular-cli/e2e/app.e2e-spec.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { FixturePage } from './app.po'; -import 'jasmine'; - -describe('fixture App', function() { - let page: FixturePage; - - beforeEach(() => { - page = new FixturePage(); - }); - - it('should display message saying app works', () => { - page.navigateTo(); - expect(page.getParagraphText()).toEqual('app works!'); - }); -}); diff --git a/lib/cli/test/snapshots/angular-cli/e2e/app.po.ts b/lib/cli/test/snapshots/angular-cli/e2e/app.po.ts deleted file mode 100644 index a06ac1a971de..000000000000 --- a/lib/cli/test/snapshots/angular-cli/e2e/app.po.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { browser, element, by } from 'protractor'; - -export class FixturePage { - navigateTo() { - return browser.get('/'); - } - - getParagraphText() { - return element(by.css('app-root h1')).getText(); - } -} diff --git a/lib/cli/test/snapshots/angular-cli/e2e/tsconfig.json b/lib/cli/test/snapshots/angular-cli/e2e/tsconfig.json deleted file mode 100644 index 656bdb14ff14..000000000000 --- a/lib/cli/test/snapshots/angular-cli/e2e/tsconfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "declaration": false, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "module": "commonjs", - "moduleResolution": "node", - "outDir": "../dist/out-tsc-e2e", - "sourceMap": true, - "target": "es5", - "typeRoots": [ - "../node_modules/@types" - ] - } -} diff --git a/lib/cli/test/snapshots/angular-cli/karma.conf.js b/lib/cli/test/snapshots/angular-cli/karma.conf.js deleted file mode 100644 index 1f2613a34697..000000000000 --- a/lib/cli/test/snapshots/angular-cli/karma.conf.js +++ /dev/null @@ -1,43 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/0.13/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', 'angular-cli'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-remap-istanbul'), - require('angular-cli/plugins/karma') - ], - files: [ - { pattern: './src/test.ts', watched: false } - ], - preprocessors: { - './src/test.ts': ['angular-cli'] - }, - mime: { - 'text/x-typescript': ['ts','tsx'] - }, - remapIstanbulReporter: { - reports: { - html: 'coverage', - lcovonly: './coverage/coverage.lcov' - } - }, - angularCli: { - config: './angular-cli.json', - environment: 'dev' - }, - reporters: config.angularCli && config.angularCli.codeCoverage - ? ['progress', 'karma-remap-istanbul'] - : ['progress'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false - }); -}; diff --git a/lib/cli/test/snapshots/angular-cli/package.json b/lib/cli/test/snapshots/angular-cli/package.json deleted file mode 100644 index edd374c8beaf..000000000000 --- a/lib/cli/test/snapshots/angular-cli/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "ng-fixture", - "version": "0.0.0", - "private": true, - "license": "MIT", - "scripts": { - "pree2e": "webdriver-manager update --standalone false --gecko false", - "e2e": "protractor", - "ng": "ng", - "start": "ng serve", - "test": "ng test", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "@angular/common": "4.0.0", - "@angular/compiler": "4.0.0", - "@angular/core": "4.0.0", - "@angular/forms": "4.0.0", - "@angular/http": "4.0.0", - "@angular/platform-browser": "4.0.0", - "@angular/platform-browser-dynamic": "4.0.0", - "@angular/router": "4.0.0", - "core-js": "^2.4.1", - "rxjs": "^5.0.1", - "ts-helpers": "^1.1.1", - "zone.js": "^0.7.2" - }, - "devDependencies": { - "@angular/compiler-cli": "4.0.0", - "@types/jasmine": "2.5.38", - "@types/node": "^6.0.42", - "angular-cli": "1.0.0-beta.28.3", - "codelyzer": "~2.0.0-beta.1", - "jasmine-core": "2.5.2", - "jasmine-spec-reporter": "2.5.0", - "karma": "1.2.0", - "karma-chrome-launcher": "^2.0.0", - "karma-cli": "^1.0.1", - "karma-jasmine": "^1.0.2", - "karma-remap-istanbul": "^0.2.1", - "protractor": "~5.1.0", - "ts-node": "1.2.1", - "tslint": "^4.3.0", - "typescript": "~2.4.0", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2", - "@storybook/angular": "^4.0.0-alpha.21", - "@storybook/addon-notes": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21" - }, - "angular-cli": {} -} diff --git a/lib/cli/test/snapshots/angular-cli/protractor.conf.js b/lib/cli/test/snapshots/angular-cli/protractor.conf.js deleted file mode 100644 index ffded70180a2..000000000000 --- a/lib/cli/test/snapshots/angular-cli/protractor.conf.js +++ /dev/null @@ -1,32 +0,0 @@ -// Protractor configuration file, see link for more information -// https://github.com/angular/protractor/blob/master/lib/config.ts - -/*global jasmine */ -var SpecReporter = require('jasmine-spec-reporter'); - -exports.config = { - allScriptsTimeout: 11000, - specs: [ - './e2e/**/*.e2e-spec.ts' - ], - capabilities: { - 'browserName': 'chrome' - }, - directConnect: true, - baseUrl: 'http://localhost:4200/', - framework: 'jasmine', - jasmineNodeOpts: { - showColors: true, - defaultTimeoutInterval: 30000, - print: function() {} - }, - useAllAngular2AppRoots: true, - beforeLaunch: function() { - require('ts-node').register({ - project: 'e2e' - }); - }, - onPrepare: function() { - jasmine.getEnv().addReporter(new SpecReporter()); - } -}; diff --git a/lib/cli/test/snapshots/angular-cli/src/app/app.component.css b/lib/cli/test/snapshots/angular-cli/src/app/app.component.css deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/lib/cli/test/snapshots/angular-cli/src/app/app.component.html b/lib/cli/test/snapshots/angular-cli/src/app/app.component.html deleted file mode 100644 index b6931b538a2c..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/app/app.component.html +++ /dev/null @@ -1,3 +0,0 @@ -

- {{title}} -

diff --git a/lib/cli/test/snapshots/angular-cli/src/app/app.component.spec.ts b/lib/cli/test/snapshots/angular-cli/src/app/app.component.spec.ts deleted file mode 100644 index 960622ed0f8b..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/app/app.component.spec.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* tslint:disable:no-unused-variable */ - -import { TestBed, async } from '@angular/core/testing'; -import { AppComponent } from './app.component'; -import 'jasmine'; - -describe('AppComponent', () => { - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [ - AppComponent - ], - }); - TestBed.compileComponents(); - }); - - it('should create the app', async(() => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.debugElement.componentInstance; - expect(app).toBeTruthy(); - })); - - it(`should have as title 'app works!'`, async(() => { - const fixture = TestBed.createComponent(AppComponent); - const app = fixture.debugElement.componentInstance; - expect(app.title).toEqual('app works!'); - })); - - it('should render title in a h1 tag', async(() => { - const fixture = TestBed.createComponent(AppComponent); - fixture.detectChanges(); - const compiled = fixture.debugElement.nativeElement; - expect(compiled.querySelector('h1').textContent).toContain('app works!'); - })); -}); diff --git a/lib/cli/test/snapshots/angular-cli/src/app/app.component.ts b/lib/cli/test/snapshots/angular-cli/src/app/app.component.ts deleted file mode 100644 index ff63e0504887..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/app/app.component.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] -}) -export class AppComponent { - title = 'app works!'; -} diff --git a/lib/cli/test/snapshots/angular-cli/src/app/app.module.ts b/lib/cli/test/snapshots/angular-cli/src/app/app.module.ts deleted file mode 100644 index 67ae49119baa..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/app/app.module.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { HttpModule } from '@angular/http'; - -import { AppComponent } from './app.component'; - -@NgModule({ - declarations: [ - AppComponent - ], - imports: [ - BrowserModule, - FormsModule, - HttpModule - ], - providers: [], - bootstrap: [AppComponent] -}) -export class AppModule { } diff --git a/lib/cli/test/snapshots/angular-cli/src/assets/.gitkeep b/lib/cli/test/snapshots/angular-cli/src/assets/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/lib/cli/test/snapshots/angular-cli/src/environments/environment.prod.ts b/lib/cli/test/snapshots/angular-cli/src/environments/environment.prod.ts deleted file mode 100644 index 3612073bc31c..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/environments/environment.prod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export const environment = { - production: true -}; diff --git a/lib/cli/test/snapshots/angular-cli/src/environments/environment.ts b/lib/cli/test/snapshots/angular-cli/src/environments/environment.ts deleted file mode 100644 index 00313f16648e..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/environments/environment.ts +++ /dev/null @@ -1,8 +0,0 @@ -// The file contents for the current environment will overwrite these during build. -// The build system defaults to the dev environment which uses `environment.ts`, but if you do -// `ng build --env=prod` then `environment.prod.ts` will be used instead. -// The list of which env maps to which file can be found in `angular-cli.json`. - -export const environment = { - production: false -}; diff --git a/lib/cli/test/snapshots/angular-cli/src/favicon.ico b/lib/cli/test/snapshots/angular-cli/src/favicon.ico deleted file mode 100644 index 8081c7ceaf2be08bf59010158c586170d9d2d517..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5430 zcmc(je{54#6vvCoAI3i*G5%$U7!sA3wtMZ$fH6V9C`=eXGJb@R1%(I_{vnZtpD{6n z5Pl{DmxzBDbrB>}`90e12m8T*36WoeDLA&SD_hw{H^wM!cl_RWcVA!I+x87ee975; z@4kD^=bYPn&pmG@(+JZ`rqQEKxW<}RzhW}I!|ulN=fmjVi@x{p$cC`)5$a!)X&U+blKNvN5tg=uLvuLnuqRM;Yc*swiexsoh#XPNu{9F#c`G zQLe{yWA(Y6(;>y|-efAy11k<09(@Oo1B2@0`PtZSkqK&${ zgEY}`W@t{%?9u5rF?}Y7OL{338l*JY#P!%MVQY@oqnItpZ}?s z!r?*kwuR{A@jg2Chlf0^{q*>8n5Ir~YWf*wmsh7B5&EpHfd5@xVaj&gqsdui^spyL zB|kUoblGoO7G(MuKTfa9?pGH0@QP^b#!lM1yHWLh*2iq#`C1TdrnO-d#?Oh@XV2HK zKA{`eo{--^K&MW66Lgsktfvn#cCAc*(}qsfhrvOjMGLE?`dHVipu1J3Kgr%g?cNa8 z)pkmC8DGH~fG+dlrp(5^-QBeEvkOvv#q7MBVLtm2oD^$lJZx--_=K&Ttd=-krx(Bb zcEoKJda@S!%%@`P-##$>*u%T*mh+QjV@)Qa=Mk1?#zLk+M4tIt%}wagT{5J%!tXAE;r{@=bb%nNVxvI+C+$t?!VJ@0d@HIyMJTI{vEw0Ul ze(ha!e&qANbTL1ZneNl45t=#Ot??C0MHjjgY8%*mGisN|S6%g3;Hlx#fMNcL<87MW zZ>6moo1YD?P!fJ#Jb(4)_cc50X5n0KoDYfdPoL^iV`k&o{LPyaoqMqk92wVM#_O0l z09$(A-D+gVIlq4TA&{1T@BsUH`Bm=r#l$Z51J-U&F32+hfUP-iLo=jg7Xmy+WLq6_tWv&`wDlz#`&)Jp~iQf zZP)tu>}pIIJKuw+$&t}GQuqMd%Z>0?t%&BM&Wo^4P^Y z)c6h^f2R>X8*}q|bblAF?@;%?2>$y+cMQbN{X$)^R>vtNq_5AB|0N5U*d^T?X9{xQnJYeU{ zoZL#obI;~Pp95f1`%X3D$Mh*4^?O?IT~7HqlWguezmg?Ybq|7>qQ(@pPHbE9V?f|( z+0xo!#m@Np9PljsyxBY-UA*{U*la#8Wz2sO|48_-5t8%_!n?S$zlGe+NA%?vmxjS- zHE5O3ZarU=X}$7>;Okp(UWXJxI%G_J-@IH;%5#Rt$(WUX?6*Ux!IRd$dLP6+SmPn= z8zjm4jGjN772R{FGkXwcNv8GBcZI#@Y2m{RNF_w8(Z%^A*!bS*!}s6sh*NnURytky humW;*g7R+&|Ledvc- - - - - Fixture - - - - - - - Loading... - - diff --git a/lib/cli/test/snapshots/angular-cli/src/main.ts b/lib/cli/test/snapshots/angular-cli/src/main.ts deleted file mode 100644 index 46c1c73e209e..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/main.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; -import { enableProdMode } from '@angular/core'; -import { environment } from './environments/environment'; -import { AppModule } from './app/app.module'; - -if (environment.production) { - enableProdMode(); -} - -platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/lib/cli/test/snapshots/angular-cli/src/polyfills.ts b/lib/cli/test/snapshots/angular-cli/src/polyfills.ts deleted file mode 100644 index 1bdd4d3c6ef2..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/polyfills.ts +++ /dev/null @@ -1,38 +0,0 @@ -// This file includes polyfills needed by Angular and is loaded before the app. -// You can add your own extra polyfills to this file. -import 'core-js/es6/symbol'; -import 'core-js/es6/object'; -import 'core-js/es6/function'; -import 'core-js/es6/parse-int'; -import 'core-js/es6/parse-float'; -import 'core-js/es6/number'; -import 'core-js/es6/math'; -import 'core-js/es6/string'; -import 'core-js/es6/date'; -import 'core-js/es6/array'; -import 'core-js/es6/regexp'; -import 'core-js/es6/map'; -import 'core-js/es6/set'; -import 'core-js/es6/reflect'; - -import 'core-js/es7/reflect'; -import 'zone.js/dist/zone'; - -// If you need to support the browsers/features below, uncomment the import -// and run `npm install import-name-here'; -// Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html - -// Needed for: IE9 -// import 'classlist.js'; - -// Animations -// Needed for: All but Chrome and Firefox, Not supported in IE9 -// import 'web-animations-js'; - -// Date, currency, decimal and percent pipes -// Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10 -// import 'intl'; - -// NgClass on SVG elements -// Needed for: IE10, IE11 -// import 'classlist.js'; diff --git a/lib/cli/test/snapshots/angular-cli/src/stories/index.stories.ts b/lib/cli/test/snapshots/angular-cli/src/stories/index.stories.ts deleted file mode 100644 index 61a8cd2e997f..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/stories/index.stories.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { storiesOf } from '@storybook/angular'; -import { withNotes } from '@storybook/addon-notes'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Welcome, Button } from '@storybook/angular/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ({ - component: Welcome, - props: {}, -})); - -storiesOf('Button', module) - .add('with text', () => ({ - component: Button, - props: { - text: 'Hello Button', - }, - })) - .add( - 'with some emoji', - withNotes({ text: 'My notes on a button with emojis' })(() => ({ - component: Button, - props: { - text: '😀 😎 👍 💯', - }, - })) - ) - .add( - 'with some emoji and action', - withNotes({ text: 'My notes on a button with emojis' })(() => ({ - component: Button, - props: { - text: '😀 😎 👍 💯', - onClick: action('This was clicked OMG'), - }, - })) - ); - -storiesOf('Another Button', module).add('button with link to another story', () => ({ - component: Button, - props: { - text: 'Go to Welcome Story', - onClick: linkTo('Welcome'), - }, -})); diff --git a/lib/cli/test/snapshots/angular-cli/src/styles.css b/lib/cli/test/snapshots/angular-cli/src/styles.css deleted file mode 100644 index 90d4ee0072ce..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/styles.css +++ /dev/null @@ -1 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ diff --git a/lib/cli/test/snapshots/angular-cli/src/test.ts b/lib/cli/test/snapshots/angular-cli/src/test.ts deleted file mode 100644 index 9bf72267e9b1..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/test.ts +++ /dev/null @@ -1,32 +0,0 @@ -// This file is required by karma.conf.js and loads recursively all the .spec and framework files - -import 'zone.js/dist/long-stack-trace-zone'; -import 'zone.js/dist/proxy.js'; -import 'zone.js/dist/sync-test'; -import 'zone.js/dist/jasmine-patch'; -import 'zone.js/dist/async-test'; -import 'zone.js/dist/fake-async-test'; -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -// Unfortunately there's no typing for the `__karma__` variable. Just declare it as any. -declare var __karma__: any; -declare var require: any; - -// Prevent Karma from running prematurely. -__karma__.loaded = function () {}; - -// First, initialize the Angular testing environment. -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting() -); -// Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/); -// And load the modules. -context.keys().map(context); -// Finally, start Karma to run the tests. -__karma__.start(); diff --git a/lib/cli/test/snapshots/angular-cli/src/tsconfig.app.json b/lib/cli/test/snapshots/angular-cli/src/tsconfig.app.json deleted file mode 100644 index 39ba8dbacbbe..000000000000 --- a/lib/cli/test/snapshots/angular-cli/src/tsconfig.app.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "../tsconfig.json", - "compilerOptions": { - "outDir": "../out-tsc/app", - "baseUrl": "./", - "module": "es2015", - "types": [] - }, - "exclude": [ - "test.ts", - "**/*.spec.ts" - ] -} diff --git a/lib/cli/test/snapshots/angular-cli/tsconfig.json b/lib/cli/test/snapshots/angular-cli/tsconfig.json deleted file mode 100644 index a6c016bf38ad..000000000000 --- a/lib/cli/test/snapshots/angular-cli/tsconfig.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "target": "es5", - "typeRoots": [ - "node_modules/@types" - ], - "lib": [ - "es2017", - "dom" - ] - } -} diff --git a/lib/cli/test/snapshots/angular-cli/tslint.json b/lib/cli/test/snapshots/angular-cli/tslint.json deleted file mode 100644 index 86bc1841f39a..000000000000 --- a/lib/cli/test/snapshots/angular-cli/tslint.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "rulesDirectory": [ - "node_modules/codelyzer" - ], - "rules": { - "callable-types": true, - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "curly": true, - "eofline": true, - "forin": true, - "import-blacklist": [true, "rxjs"], - "import-spacing": true, - "indent": [ - true, - "spaces" - ], - "interface-over-type-literal": true, - "label-position": true, - "max-line-length": [ - true, - 140 - ], - "member-access": false, - "member-ordering": [ - true, - "static-before-instance", - "variables-before-functions" - ], - "no-arg": true, - "no-bitwise": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-variable": true, - "no-empty": false, - "no-empty-interface": true, - "no-eval": true, - "no-inferrable-types": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": true, - "no-unused-expression": true, - "no-use-before-declare": true, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "one-line": [ - true, - "check-open-brace", - "check-catch", - "check-else", - "check-whitespace" - ], - "prefer-const": true, - "quotemark": [ - true, - "single" - ], - "radix": true, - "semicolon": [ - "always" - ], - "triple-equals": [ - true, - "allow-null-check" - ], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - } - ], - "typeof-compare": true, - "unified-signatures": true, - "variable-name": false, - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ], - - "directive-selector": [true, "attribute", "app", "camelCase"], - "component-selector": [true, "element", "app", "kebab-case"], - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-input-rename": true, - "no-output-rename": true, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "component-class-suffix": true, - "directive-class-suffix": true, - "no-access-missing-member": true, - "templates-use-public": true, - "invoke-injectable": true - } -} diff --git a/lib/cli/test/snapshots/marko/.storybook/addons.js b/lib/cli/test/snapshots/marko/.storybook/addons.js deleted file mode 100644 index 218bf7a5e667..000000000000 --- a/lib/cli/test/snapshots/marko/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-knobs/register'; diff --git a/lib/cli/test/snapshots/marko/.storybook/config.js b/lib/cli/test/snapshots/marko/.storybook/config.js deleted file mode 100644 index 9dc1390d6262..000000000000 --- a/lib/cli/test/snapshots/marko/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/marko'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/marko/package.json b/lib/cli/test/snapshots/marko/package.json deleted file mode 100644 index 17edb1b434f7..000000000000 --- a/lib/cli/test/snapshots/marko/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "marko-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "index.js", - "dependencies": { - "marko": "^4.9.7" - }, - "devDependencies": { - "@storybook/marko": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-knobs": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - }, - "scripts": { - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - } -} diff --git a/lib/cli/test/snapshots/marko/stories/components/welcome/index.marko b/lib/cli/test/snapshots/marko/stories/components/welcome/index.marko deleted file mode 100644 index 09d5824d4c0b..000000000000 --- a/lib/cli/test/snapshots/marko/stories/components/welcome/index.marko +++ /dev/null @@ -1,46 +0,0 @@ - -class { - onCreate() {} -} - -style { - #app { - font-family: 'Avenir', Helvetica, Arial, sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - text-align: center; - color: #2c3e50; - margin-top: 60px; - } - - .logo { - background-image:url('data:image/png;base64,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'); - background-repeat:no-repeat; - display:inline-block; - width: 365px; - height: 200px; - } - - h1, h2 { - font-weight: normal; - } - - ul { - list-style-type: none; - padding: 0; - } - - li { - display: inline-block; - margin: 0 10px; - } - - a { - color: #42b983; - } -} - - -

Welcome to Storybook for Marko

- - diff --git a/lib/cli/test/snapshots/marko/stories/index.stories.js b/lib/cli/test/snapshots/marko/stories/index.stories.js deleted file mode 100644 index 61ad73dd902e..000000000000 --- a/lib/cli/test/snapshots/marko/stories/index.stories.js +++ /dev/null @@ -1,4 +0,0 @@ -import { storiesOf } from '@storybook/marko'; -import Welcome from './components/welcome/index.marko'; - -storiesOf('Welcome', module).add('welcome', () => Welcome.renderSync({})); diff --git a/lib/cli/test/snapshots/meteor/.babelrc b/lib/cli/test/snapshots/meteor/.babelrc deleted file mode 100644 index 0960c0126dc3..000000000000 --- a/lib/cli/test/snapshots/meteor/.babelrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "presets": [ - "@babel/preset-env", - "@babel/preset-react" - ] -} \ No newline at end of file diff --git a/lib/cli/test/snapshots/meteor/.gitignore b/lib/cli/test/snapshots/meteor/.gitignore deleted file mode 100644 index c2658d7d1b31..000000000000 --- a/lib/cli/test/snapshots/meteor/.gitignore +++ /dev/null @@ -1 +0,0 @@ -node_modules/ diff --git a/lib/cli/test/snapshots/meteor/.meteor/.finished-upgraders b/lib/cli/test/snapshots/meteor/.meteor/.finished-upgraders deleted file mode 100644 index 910574ce2df9..000000000000 --- a/lib/cli/test/snapshots/meteor/.meteor/.finished-upgraders +++ /dev/null @@ -1,17 +0,0 @@ -# This file contains information which helps Meteor properly upgrade your -# app when you run 'meteor update'. You should check it into version control -# with your project. - -notices-for-0.9.0 -notices-for-0.9.1 -0.9.4-platform-file -notices-for-facebook-graph-api-2 -1.2.0-standard-minifiers-package -1.2.0-meteor-platform-split -1.2.0-cordova-changes -1.2.0-breaking-changes -1.3.0-split-minifiers-package -1.4.0-remove-old-dev-bundle-link -1.4.1-add-shell-server-package -1.4.3-split-account-service-packages -1.5-add-dynamic-import-package diff --git a/lib/cli/test/snapshots/meteor/.meteor/.gitignore b/lib/cli/test/snapshots/meteor/.meteor/.gitignore deleted file mode 100644 index 40830374235d..000000000000 --- a/lib/cli/test/snapshots/meteor/.meteor/.gitignore +++ /dev/null @@ -1 +0,0 @@ -local diff --git a/lib/cli/test/snapshots/meteor/.meteor/.id b/lib/cli/test/snapshots/meteor/.meteor/.id deleted file mode 100644 index 4a7850520ed0..000000000000 --- a/lib/cli/test/snapshots/meteor/.meteor/.id +++ /dev/null @@ -1,7 +0,0 @@ -# This file contains a token that is unique to your project. -# Check it into your repository along with the rest of this directory. -# It can be used for purposes such as: -# - ensuring you don't accidentally deploy one app on top of another -# - providing package authors with aggregated statistics - -z9nshtsc5s3c33e5ya diff --git a/lib/cli/test/snapshots/meteor/.meteor/packages b/lib/cli/test/snapshots/meteor/.meteor/packages deleted file mode 100644 index 2e315c9062f1..000000000000 --- a/lib/cli/test/snapshots/meteor/.meteor/packages +++ /dev/null @@ -1,21 +0,0 @@ -# Meteor packages used by this project, one per line. -# Check this file (and the other files in this directory) into your repository. -# -# 'meteor add' and 'meteor remove' will edit this file for you, -# but you can also edit it by hand. - -meteor-base@1.1.0 # Packages every Meteor app needs to have -mobile-experience@1.0.4 # Packages for a great mobile UX -mongo@1.1.19 # The database Meteor supports right now -blaze-html-templates@1.0.4 # Compile .html files into Meteor Blaze views -reactive-var@1.0.11 # Reactive variable for tracker -tracker@1.1.3 # Meteor's client-side reactive programming library - -standard-minifier-css@1.3.4 # CSS minifier run for production mode -standard-minifier-js@2.1.1 # JS minifier run for production mode -es5-shim@4.6.15 # ECMAScript 5 compatibility for older browsers -ecmascript@0.8.1 # Enable ECMAScript2015+ syntax in app code -shell-server@0.2.4 # Server-side component of the `meteor shell` command - -autopublish@1.0.7 # Publish all data to the clients (for prototyping) -insecure@1.0.7 # Allow all DB writes from clients (for prototyping) diff --git a/lib/cli/test/snapshots/meteor/.meteor/platforms b/lib/cli/test/snapshots/meteor/.meteor/platforms deleted file mode 100644 index efeba1b50c75..000000000000 --- a/lib/cli/test/snapshots/meteor/.meteor/platforms +++ /dev/null @@ -1,2 +0,0 @@ -server -browser diff --git a/lib/cli/test/snapshots/meteor/.meteor/release b/lib/cli/test/snapshots/meteor/.meteor/release deleted file mode 100644 index 1e7fc5b564cc..000000000000 --- a/lib/cli/test/snapshots/meteor/.meteor/release +++ /dev/null @@ -1 +0,0 @@ -METEOR@1.5.1 diff --git a/lib/cli/test/snapshots/meteor/.meteor/versions b/lib/cli/test/snapshots/meteor/.meteor/versions deleted file mode 100644 index 3fc4415bc7fc..000000000000 --- a/lib/cli/test/snapshots/meteor/.meteor/versions +++ /dev/null @@ -1,75 +0,0 @@ -allow-deny@1.0.6 -autopublish@1.0.7 -autoupdate@1.3.12 -babel-compiler@6.19.4 -babel-runtime@1.0.1 -base64@1.0.10 -binary-heap@1.0.10 -blaze@2.3.2 -blaze-html-templates@1.1.2 -blaze-tools@1.0.10 -boilerplate-generator@1.1.1 -caching-compiler@1.1.9 -caching-html-compiler@1.1.2 -callback-hook@1.0.10 -check@1.2.5 -ddp@1.3.0 -ddp-client@2.0.0 -ddp-common@1.2.9 -ddp-server@2.0.0 -deps@1.0.12 -diff-sequence@1.0.7 -dynamic-import@0.1.1 -ecmascript@0.8.2 -ecmascript-runtime@0.4.1 -ecmascript-runtime-client@0.4.3 -ecmascript-runtime-server@0.4.1 -ejson@1.0.13 -es5-shim@4.6.15 -fastclick@1.0.13 -geojson-utils@1.0.10 -hot-code-push@1.0.4 -html-tools@1.0.11 -htmljs@1.0.11 -http@1.2.12 -id-map@1.0.9 -insecure@1.0.7 -jquery@1.11.10 -launch-screen@1.1.1 -livedata@1.0.18 -logging@1.1.17 -meteor@1.7.0 -meteor-base@1.1.0 -minifier-css@1.2.16 -minifier-js@2.1.1 -minimongo@1.2.1 -mobile-experience@1.0.4 -mobile-status-bar@1.0.14 -modules@0.9.2 -modules-runtime@0.8.0 -mongo@1.1.19 -mongo-id@1.0.6 -npm-mongo@2.2.24 -observe-sequence@1.0.16 -ordered-dict@1.0.9 -promise@0.8.9 -random@1.0.10 -reactive-var@1.0.11 -reload@1.1.11 -retry@1.0.9 -routepolicy@1.0.12 -shell-server@0.2.4 -spacebars@1.0.15 -spacebars-compiler@1.1.2 -standard-minifier-css@1.3.4 -standard-minifier-js@2.1.1 -templating@1.3.2 -templating-compiler@1.3.2 -templating-runtime@1.3.2 -templating-tools@1.1.2 -tracker@1.1.3 -ui@1.0.13 -underscore@1.0.10 -url@1.1.0 -webapp@1.3.17 -webapp-hashing@1.0.9 diff --git a/lib/cli/test/snapshots/meteor/.storybook/addons.js b/lib/cli/test/snapshots/meteor/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/meteor/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/meteor/.storybook/config.js b/lib/cli/test/snapshots/meteor/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/meteor/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/meteor/client/main.css b/lib/cli/test/snapshots/meteor/client/main.css deleted file mode 100644 index b6b4052b43de..000000000000 --- a/lib/cli/test/snapshots/meteor/client/main.css +++ /dev/null @@ -1 +0,0 @@ -/* CSS declarations go here */ diff --git a/lib/cli/test/snapshots/meteor/client/main.html b/lib/cli/test/snapshots/meteor/client/main.html deleted file mode 100644 index c02933842c8a..000000000000 --- a/lib/cli/test/snapshots/meteor/client/main.html +++ /dev/null @@ -1,25 +0,0 @@ - - meteor - - - -

Welcome to Meteor!

- - {{> hello}} - {{> info}} - - - - - diff --git a/lib/cli/test/snapshots/meteor/client/main.js b/lib/cli/test/snapshots/meteor/client/main.js deleted file mode 100644 index ecb3282a2f40..000000000000 --- a/lib/cli/test/snapshots/meteor/client/main.js +++ /dev/null @@ -1,22 +0,0 @@ -import { Template } from 'meteor/templating'; -import { ReactiveVar } from 'meteor/reactive-var'; - -import './main.html'; - -Template.hello.onCreated(function helloOnCreated() { - // counter starts at 0 - this.counter = new ReactiveVar(0); -}); - -Template.hello.helpers({ - counter() { - return Template.instance().counter.get(); - }, -}); - -Template.hello.events({ - 'click button'(event, instance) { - // increment the counter when button is clicked - instance.counter.set(instance.counter.get() + 1); - }, -}); diff --git a/lib/cli/test/snapshots/meteor/package.json b/lib/cli/test/snapshots/meteor/package.json deleted file mode 100644 index 56acf5d04e95..000000000000 --- a/lib/cli/test/snapshots/meteor/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "meteor-fixture", - "version": "1.0.0", - "private": true, - "scripts": { - "start": "meteor run", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "@babel/runtime": "7.0.0-rc.2", - "meteor-node-stubs": "~0.2.4", - "react": "^16.5.1", - "react-dom": "^16.5.1" - }, - "devDependencies": { - "@babel/preset-env": "^7.0.0", - "@babel/preset-react": "^7.0.0", - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - } -} diff --git a/lib/cli/test/snapshots/meteor/server/main.js b/lib/cli/test/snapshots/meteor/server/main.js deleted file mode 100644 index 31a9e0e2d6cb..000000000000 --- a/lib/cli/test/snapshots/meteor/server/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import { Meteor } from 'meteor/meteor'; - -Meteor.startup(() => { - // code to run on server at startup -}); diff --git a/lib/cli/test/snapshots/meteor/stories/index.stories.js b/lib/cli/test/snapshots/meteor/stories/index.stories.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/meteor/stories/index.stories.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/mithril/.storybook/addons.js b/lib/cli/test/snapshots/mithril/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/mithril/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/mithril/.storybook/config.js b/lib/cli/test/snapshots/mithril/.storybook/config.js deleted file mode 100644 index b225ac671762..000000000000 --- a/lib/cli/test/snapshots/mithril/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/mithril'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/mithril/package.json b/lib/cli/test/snapshots/mithril/package.json deleted file mode 100644 index 808188b4509a..000000000000 --- a/lib/cli/test/snapshots/mithril/package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "name": "mithril-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "index.js", - "scripts": { - "build": "webpack -p dist", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "mithril": "^1.1.6" - }, - "devDependencies": { - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "@storybook/mithril": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - } -} diff --git a/lib/cli/test/snapshots/mithril/stories/Button.js b/lib/cli/test/snapshots/mithril/stories/Button.js deleted file mode 100644 index edec915a04b1..000000000000 --- a/lib/cli/test/snapshots/mithril/stories/Button.js +++ /dev/null @@ -1,23 +0,0 @@ -/** @jsx m */ - -import m from 'mithril'; - -const style = { - border: '1px solid #eee', - borderRadius: '3px', - backgroundColor: '#FFFFFF', - cursor: 'pointer', - fontSize: '15px', - padding: '3px 10px', - margin: '10px', -}; - -const Button = { - view: vnode => ( - - ), -}; - -export default Button; diff --git a/lib/cli/test/snapshots/mithril/stories/Welcome.js b/lib/cli/test/snapshots/mithril/stories/Welcome.js deleted file mode 100644 index cef0d3127fd3..000000000000 --- a/lib/cli/test/snapshots/mithril/stories/Welcome.js +++ /dev/null @@ -1,179 +0,0 @@ -/** @jsx m */ - -import m from 'mithril'; -import { linkTo, hrefTo } from '@storybook/addon-links'; - -const Main = { - view: vnode => ( -
- {vnode.children} -
- ), -}; - -const Title = { - view: vnode =>

{vnode.children}

, -}; - -const Note = { - view: vnode => ( -

- {vnode.children} -

- ), -}; - -const InlineCode = { - view: vnode => ( - - {vnode.children} - - ), -}; - -const Link = { - view: vnode => ( -
- {vnode.children} - - ), -}; - -const NavButton = { - view: vnode => ( - - ), -}; - -const StoryLink = { - oninit: vnode => { - // eslint-disable-next-line no-param-reassign - vnode.state.href = '/'; - // eslint-disable-next-line no-param-reassign - vnode.state.onclick = () => { - linkTo(vnode.attrs.kind, vnode.attrs.story)(); - return false; - }; - StoryLink.updateHref(vnode); - }, - updateHref: async vnode => { - const href = await hrefTo(vnode.attrs.kind, vnode.attrs.story); - // eslint-disable-next-line no-param-reassign - vnode.state.href = href; - m.redraw(); - }, - view: vnode => ( - - {vnode.children} - - ), -}; - -const Welcome = { - view: vnode => ( -
- Welcome to storybook -

This is a UI component dev environment for your app.

-

- We've added some basic stories inside the src/stories directory. -
A story is a single state of one or more UI components. You can have as many stories - as you want. -
- (Basically a story is like a visual test case.) -

-

- See these sample{' '} - {vnode.attrs.showApp ? ( - stories - ) : ( - - stories - - )}{' '} - for a component called Button. -

-

- Just like that, you can add your own components as stories. -
- You can also edit those components and see changes right away. -
- (Try editing the Button stories located at{' '} - src/stories/index.js - .) -

-

- Usually we create stories with smaller UI components in the app. -
- Have a look at the{' '} - - Writing Stories - {' '} - section in our documentation. -

- - NOTE: -
- Have a look at the .storybook/webpack.config.js to add webpack - loaders and plugins you are using in this project. -
-
- ), -}; - -export default Welcome; diff --git a/lib/cli/test/snapshots/mithril/stories/index.stories.js b/lib/cli/test/snapshots/mithril/stories/index.stories.js deleted file mode 100644 index b74304a3b135..000000000000 --- a/lib/cli/test/snapshots/mithril/stories/index.stories.js +++ /dev/null @@ -1,25 +0,0 @@ -import m from 'mithril'; - -import { storiesOf } from '@storybook/mithril'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import Button from './Button'; -import Welcome from './Welcome'; - -storiesOf('Welcome', module).add('to Storybook', () => ({ - view: () => m(Welcome, { showApp: linkTo('Button') }), -})); - -storiesOf('Button', module) - .add('with text', () => ({ - view: () => m(Button, { onclick: action('clicked') }, 'Hello Button'), - })) - .add('with some emoji', () => ({ - view: () => - m( - Button, - { onclick: action('clicked') }, - m('span', { role: 'img', ariaLabel: 'so cool' }, '😀 😎 👍 💯') - ), - })); diff --git a/lib/cli/test/snapshots/polymer/.storybook/config.js b/lib/cli/test/snapshots/polymer/.storybook/config.js deleted file mode 100644 index ea20a9f493ba..000000000000 --- a/lib/cli/test/snapshots/polymer/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/polymer'; - -// automatically import all files ending in *.stories.js -const req = require.context('../src/stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/polymer/package.json b/lib/cli/test/snapshots/polymer/package.json deleted file mode 100644 index cb0dc0d18189..000000000000 --- a/lib/cli/test/snapshots/polymer/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "polymer-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "index.js", - "scripts": { - "build": "webpack -p dist", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "@polymer/polymer": "^2.2.0" - }, - "devDependencies": { - "@storybook/polymer": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2", - "polymer-webpack-loader": "^2.0.3" - } -} diff --git a/lib/cli/test/snapshots/polymer/src/stories/index.stories.js b/lib/cli/test/snapshots/polymer/src/stories/index.stories.js deleted file mode 100644 index 88f773136073..000000000000 --- a/lib/cli/test/snapshots/polymer/src/stories/index.stories.js +++ /dev/null @@ -1 +0,0 @@ -// TODO: add demo stories diff --git a/lib/cli/test/snapshots/react/.babelrc b/lib/cli/test/snapshots/react/.babelrc deleted file mode 100644 index e636022c817b..000000000000 --- a/lib/cli/test/snapshots/react/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["@babel/preset-react"], - "plugins": ["@babel/plugin-external-helpers"] -} diff --git a/lib/cli/test/snapshots/react/.storybook/addons.js b/lib/cli/test/snapshots/react/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react/.storybook/config.js b/lib/cli/test/snapshots/react/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react/index.html b/lib/cli/test/snapshots/react/index.html deleted file mode 100644 index bcb2f9489a6f..000000000000 --- a/lib/cli/test/snapshots/react/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Hello world - - -
- - - \ No newline at end of file diff --git a/lib/cli/test/snapshots/react/index.js b/lib/cli/test/snapshots/react/index.js deleted file mode 100644 index 8e5bb96fc9cd..000000000000 --- a/lib/cli/test/snapshots/react/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; - -ReactDOM.render( -

Hello, world!

, - document.getElementById('root') -); diff --git a/lib/cli/test/snapshots/react/package.json b/lib/cli/test/snapshots/react/package.json deleted file mode 100644 index 5aa79647c56b..000000000000 --- a/lib/cli/test/snapshots/react/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "react-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "index.js", - "scripts": { - "build": "rollup -c", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^15.6.1", - "react-dom": "^15.6.1" - }, - "devDependencies": { - "@babel/plugin-external-helpers": "7.0.0-rc.2", - "@babel/preset-react": "7.0.0-rc.2", - "rollup": "^0.49.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-commonjs": "^8.2.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^1.1.1", - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - } -} diff --git a/lib/cli/test/snapshots/react/rollup.config.js b/lib/cli/test/snapshots/react/rollup.config.js deleted file mode 100644 index 2f0639d761fe..000000000000 --- a/lib/cli/test/snapshots/react/rollup.config.js +++ /dev/null @@ -1,22 +0,0 @@ -import replace from 'rollup-plugin-replace'; -import commonjs from 'rollup-plugin-commonjs'; -import resolve from 'rollup-plugin-node-resolve'; -import babel from 'rollup-plugin-babel'; - -export default { - input: 'index.js', - output: { - file: 'dist/bundle.js', - format: 'iife' - }, - plugins: [ - replace({ - 'process.env.NODE_ENV': JSON.stringify('production') - }), - commonjs(), - resolve(), - babel({ - exclude: 'node_modules/**' // only transpile our source code - }) - ] -}; diff --git a/lib/cli/test/snapshots/react/stories/index.stories.js b/lib/cli/test/snapshots/react/stories/index.stories.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/react/stories/index.stories.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/react_babel_6/.babelrc b/lib/cli/test/snapshots/react_babel_6/.babelrc deleted file mode 100644 index f93c98353c11..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["react"], - "plugins": ["external-helpers"] -} diff --git a/lib/cli/test/snapshots/react_babel_6/.storybook/addons.js b/lib/cli/test/snapshots/react_babel_6/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react_babel_6/.storybook/config.js b/lib/cli/test/snapshots/react_babel_6/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_babel_6/index.html b/lib/cli/test/snapshots/react_babel_6/index.html deleted file mode 100644 index bcb2f9489a6f..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Hello world - - -
- - - \ No newline at end of file diff --git a/lib/cli/test/snapshots/react_babel_6/index.js b/lib/cli/test/snapshots/react_babel_6/index.js deleted file mode 100644 index 8e5bb96fc9cd..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; - -ReactDOM.render( -

Hello, world!

, - document.getElementById('root') -); diff --git a/lib/cli/test/snapshots/react_babel_6/package.json b/lib/cli/test/snapshots/react_babel_6/package.json deleted file mode 100644 index 28ece5248826..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "react-babel-6-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "index.js", - "scripts": { - "build": "rollup -c", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^15.6.1", - "react-dom": "^15.6.1" - }, - "devDependencies": { - "babel-core": "^6.26.3", - "babel-plugin-external-helpers": "^6.22.0", - "babel-preset-react": "^6.24.1", - "rollup": "^0.49.1", - "rollup-plugin-babel": "^3.0.2", - "rollup-plugin-commonjs": "^8.2.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-replace": "^1.1.1", - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "babel-loader": "^7.1.5" - } -} diff --git a/lib/cli/test/snapshots/react_babel_6/rollup.config.js b/lib/cli/test/snapshots/react_babel_6/rollup.config.js deleted file mode 100644 index 2f0639d761fe..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/rollup.config.js +++ /dev/null @@ -1,22 +0,0 @@ -import replace from 'rollup-plugin-replace'; -import commonjs from 'rollup-plugin-commonjs'; -import resolve from 'rollup-plugin-node-resolve'; -import babel from 'rollup-plugin-babel'; - -export default { - input: 'index.js', - output: { - file: 'dist/bundle.js', - format: 'iife' - }, - plugins: [ - replace({ - 'process.env.NODE_ENV': JSON.stringify('production') - }), - commonjs(), - resolve(), - babel({ - exclude: 'node_modules/**' // only transpile our source code - }) - ] -}; diff --git a/lib/cli/test/snapshots/react_babel_6/stories/index.stories.js b/lib/cli/test/snapshots/react_babel_6/stories/index.stories.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/react_babel_6/stories/index.stories.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/react_babel_config_js/.storybook/config.js b/lib/cli/test/snapshots/react_babel_config_js/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_babel_config_js/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_babel_config_js/babel.config.js b/lib/cli/test/snapshots/react_babel_config_js/babel.config.js deleted file mode 100644 index a66725f62b55..000000000000 --- a/lib/cli/test/snapshots/react_babel_config_js/babel.config.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - plugins: ['@babel/plugin-proposal-optional-chaining'], -}; diff --git a/lib/cli/test/snapshots/react_babel_config_js/package.json b/lib/cli/test/snapshots/react_babel_config_js/package.json deleted file mode 100644 index e17644ff667c..000000000000 --- a/lib/cli/test/snapshots/react_babel_config_js/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "react-babel-config-js-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "stories/index.stories.js", - "scripts": { - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^16.4.2", - "react-dom": "^16.4.2" - }, - "devDependencies": { - "@babel/plugin-proposal-optional-chaining": "7.0.0-rc.3", - "@babel/core": "7.0.0-rc.3", - "babel-loader": "8.0.0-beta.6", - "@storybook/react": "^4.0.0-alpha.17" - } -} diff --git a/lib/cli/test/snapshots/react_babel_config_js/stories/index.stories.js b/lib/cli/test/snapshots/react_babel_config_js/stories/index.stories.js deleted file mode 100644 index 3734505550ee..000000000000 --- a/lib/cli/test/snapshots/react_babel_config_js/stories/index.stories.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; - -const data = { - user: { - name: 'Joe', - }, -}; - -storiesOf('My Component', module) - .add('state', () => Hello {data.user?.name}) diff --git a/lib/cli/test/snapshots/react_babel_custom_preset/.babelrc b/lib/cli/test/snapshots/react_babel_custom_preset/.babelrc deleted file mode 100644 index 658c5d96fecc..000000000000 --- a/lib/cli/test/snapshots/react_babel_custom_preset/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["./babel-preset-custom"] -} diff --git a/lib/cli/test/snapshots/react_babel_custom_preset/.storybook/config.js b/lib/cli/test/snapshots/react_babel_custom_preset/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_babel_custom_preset/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_babel_custom_preset/babel-preset-custom/index.js b/lib/cli/test/snapshots/react_babel_custom_preset/babel-preset-custom/index.js deleted file mode 100644 index 77e27006de0f..000000000000 --- a/lib/cli/test/snapshots/react_babel_custom_preset/babel-preset-custom/index.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = () => ({ - plugins: ['@babel/plugin-proposal-optional-chaining'], -}); diff --git a/lib/cli/test/snapshots/react_babel_custom_preset/package.json b/lib/cli/test/snapshots/react_babel_custom_preset/package.json deleted file mode 100644 index 207a33b47e9d..000000000000 --- a/lib/cli/test/snapshots/react_babel_custom_preset/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "react-babel-custom-preset-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "stories/index.stories.js", - "scripts": { - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^16.4.2", - "react-dom": "^16.4.2" - }, - "devDependencies": { - "@babel/plugin-proposal-optional-chaining": "7.0.0-rc.3", - "@babel/core": "7.0.0-rc.3", - "babel-loader": "8.0.0-beta.6", - "@storybook/react": "^4.0.0-alpha.17" - } -} diff --git a/lib/cli/test/snapshots/react_babel_custom_preset/stories/index.stories.js b/lib/cli/test/snapshots/react_babel_custom_preset/stories/index.stories.js deleted file mode 100644 index 3734505550ee..000000000000 --- a/lib/cli/test/snapshots/react_babel_custom_preset/stories/index.stories.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; - -const data = { - user: { - name: 'Joe', - }, -}; - -storiesOf('My Component', module) - .add('state', () => Hello {data.user?.name}) diff --git a/lib/cli/test/snapshots/react_babel_pkg_json/.storybook/config.js b/lib/cli/test/snapshots/react_babel_pkg_json/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_babel_pkg_json/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_babel_pkg_json/package.json b/lib/cli/test/snapshots/react_babel_pkg_json/package.json deleted file mode 100644 index 806122a0c41c..000000000000 --- a/lib/cli/test/snapshots/react_babel_pkg_json/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "react-babel-pkg-json-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "stories/index.stories.js", - "scripts": { - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^16.4.2", - "react-dom": "^16.4.2" - }, - "devDependencies": { - "@babel/plugin-proposal-optional-chaining": "7.0.0-rc.3", - "@babel/core": "7.0.0-rc.3", - "babel-loader": "8.0.0-beta.6", - "@storybook/react": "^4.0.0-alpha.17" - }, - "babel": { - "plugins": ["@babel/plugin-proposal-optional-chaining"] - } -} diff --git a/lib/cli/test/snapshots/react_babel_pkg_json/stories/index.stories.js b/lib/cli/test/snapshots/react_babel_pkg_json/stories/index.stories.js deleted file mode 100644 index 3734505550ee..000000000000 --- a/lib/cli/test/snapshots/react_babel_pkg_json/stories/index.stories.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; - -const data = { - user: { - name: 'Joe', - }, -}; - -storiesOf('My Component', module) - .add('state', () => Hello {data.user?.name}) diff --git a/lib/cli/test/snapshots/react_babelrc/.babelrc b/lib/cli/test/snapshots/react_babelrc/.babelrc deleted file mode 100644 index ff2de720cc5e..000000000000 --- a/lib/cli/test/snapshots/react_babelrc/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["@babel/plugin-proposal-optional-chaining"] -} diff --git a/lib/cli/test/snapshots/react_babelrc/.storybook/config.js b/lib/cli/test/snapshots/react_babelrc/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_babelrc/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_babelrc/package.json b/lib/cli/test/snapshots/react_babelrc/package.json deleted file mode 100644 index a48f62f80f98..000000000000 --- a/lib/cli/test/snapshots/react_babelrc/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "react-babelrc-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "stories/index.stories.js", - "scripts": { - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^16.4.2", - "react-dom": "^16.4.2" - }, - "devDependencies": { - "@babel/plugin-proposal-optional-chaining": "7.0.0-rc.3", - "@babel/core": "7.0.0-rc.3", - "babel-loader": "8.0.0-beta.6", - "@storybook/react": "^4.0.0-alpha.17" - } -} diff --git a/lib/cli/test/snapshots/react_babelrc/stories/index.stories.js b/lib/cli/test/snapshots/react_babelrc/stories/index.stories.js deleted file mode 100644 index 3734505550ee..000000000000 --- a/lib/cli/test/snapshots/react_babelrc/stories/index.stories.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; - -const data = { - user: { - name: 'Joe', - }, -}; - -storiesOf('My Component', module) - .add('state', () => Hello {data.user?.name}) diff --git a/lib/cli/test/snapshots/react_babelrc_js/.babelrc.js b/lib/cli/test/snapshots/react_babelrc_js/.babelrc.js deleted file mode 100644 index a66725f62b55..000000000000 --- a/lib/cli/test/snapshots/react_babelrc_js/.babelrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - plugins: ['@babel/plugin-proposal-optional-chaining'], -}; diff --git a/lib/cli/test/snapshots/react_babelrc_js/.storybook/config.js b/lib/cli/test/snapshots/react_babelrc_js/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_babelrc_js/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_babelrc_js/package.json b/lib/cli/test/snapshots/react_babelrc_js/package.json deleted file mode 100644 index a8c9bb6e3b99..000000000000 --- a/lib/cli/test/snapshots/react_babelrc_js/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "react-babelrc-js-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "stories/index.stories.js", - "scripts": { - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^16.4.2", - "react-dom": "^16.4.2" - }, - "devDependencies": { - "@babel/plugin-proposal-optional-chaining": "7.0.0-rc.3", - "@babel/core": "7.0.0-rc.3", - "babel-loader": "8.0.0-beta.6", - "@storybook/react": "^4.0.0-alpha.17" - } -} diff --git a/lib/cli/test/snapshots/react_babelrc_js/stories/index.stories.js b/lib/cli/test/snapshots/react_babelrc_js/stories/index.stories.js deleted file mode 100644 index 3734505550ee..000000000000 --- a/lib/cli/test/snapshots/react_babelrc_js/stories/index.stories.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; - -const data = { - user: { - name: 'Joe', - }, -}; - -storiesOf('My Component', module) - .add('state', () => Hello {data.user?.name}) diff --git a/lib/cli/test/snapshots/react_native/.babelrc b/lib/cli/test/snapshots/react_native/.babelrc deleted file mode 100644 index a9ce1369e617..000000000000 --- a/lib/cli/test/snapshots/react_native/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["react-native"] -} diff --git a/lib/cli/test/snapshots/react_native/.buckconfig b/lib/cli/test/snapshots/react_native/.buckconfig deleted file mode 100644 index 934256cb29d4..000000000000 --- a/lib/cli/test/snapshots/react_native/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/lib/cli/test/snapshots/react_native/.flowconfig b/lib/cli/test/snapshots/react_native/.flowconfig deleted file mode 100644 index 83461209da06..000000000000 --- a/lib/cli/test/snapshots/react_native/.flowconfig +++ /dev/null @@ -1,45 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore unexpected extra "@providesModule" -.*/node_modules/.*/node_modules/fbjs/.* - -; Ignore duplicate module providers -; For RN Apps installed via npm, "Libraries" folder is inside -; "node_modules/react-native" but in the source repo it is in the root -.*/Libraries/react-native/React.js -.*/Libraries/react-native/ReactNative.js - -[include] - -[libs] -node_modules/react-native/Libraries/react-native/react-native-interface.js -node_modules/react-native/flow -flow/ - -[options] -emoji=true - -module.system=haste - -munge_underscores=true - -module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FixMe - -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ -suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy -suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError - -unsafe.enable_getters_and_setters=true - -[version] -^0.49.1 diff --git a/lib/cli/test/snapshots/react_native/.gitattributes b/lib/cli/test/snapshots/react_native/.gitattributes deleted file mode 100644 index d42ff18354df..000000000000 --- a/lib/cli/test/snapshots/react_native/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.pbxproj -text diff --git a/lib/cli/test/snapshots/react_native/.gitignore b/lib/cli/test/snapshots/react_native/.gitignore deleted file mode 100644 index 10be19751feb..000000000000 --- a/lib/cli/test/snapshots/react_native/.gitignore +++ /dev/null @@ -1,53 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -project.xcworkspace - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# BUCK -buck-out/ -\.buckd/ -*.keystore - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md - -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots diff --git a/lib/cli/test/snapshots/react_native/.watchmanconfig b/lib/cli/test/snapshots/react_native/.watchmanconfig deleted file mode 100644 index 9e26dfeeb6e6..000000000000 --- a/lib/cli/test/snapshots/react_native/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/lib/cli/test/snapshots/react_native/__tests__/index.android.js b/lib/cli/test/snapshots/react_native/__tests__/index.android.js deleted file mode 100644 index b49b9087f416..000000000000 --- a/lib/cli/test/snapshots/react_native/__tests__/index.android.js +++ /dev/null @@ -1,12 +0,0 @@ -import 'react-native'; -import React from 'react'; -import Index from '../index.android.js'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - const tree = renderer.create( - - ); -}); diff --git a/lib/cli/test/snapshots/react_native/__tests__/index.ios.js b/lib/cli/test/snapshots/react_native/__tests__/index.ios.js deleted file mode 100644 index ba7c5b5e1679..000000000000 --- a/lib/cli/test/snapshots/react_native/__tests__/index.ios.js +++ /dev/null @@ -1,12 +0,0 @@ -import 'react-native'; -import React from 'react'; -import Index from '../index.ios.js'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - const tree = renderer.create( - - ); -}); diff --git a/lib/cli/test/snapshots/react_native/android/app/BUCK b/lib/cli/test/snapshots/react_native/android/app/BUCK deleted file mode 100644 index 0086489176c1..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/BUCK +++ /dev/null @@ -1,65 +0,0 @@ -# To learn about Buck see [Docs](https://buckbuild.com/). -# To run your application with Buck: -# - install Buck -# - `npm start` - to start the packager -# - `cd android` -# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` -# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck -# - `buck install -r android/app` - compile, install and run application -# - -lib_deps = [] - -for jarfile in glob(['libs/*.jar']): - name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] - lib_deps.append(':' + name) - prebuilt_jar( - name = name, - binary_jar = jarfile, - ) - -for aarfile in glob(['libs/*.aar']): - name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] - lib_deps.append(':' + name) - android_prebuilt_aar( - name = name, - aar = aarfile, - ) - -android_library( - name = "all-libs", - exported_deps = lib_deps, -) - -android_library( - name = "app-code", - srcs = glob([ - "src/main/java/**/*.java", - ]), - deps = [ - ":all-libs", - ":build_config", - ":res", - ], -) - -android_build_config( - name = "build_config", - package = "com.react_native", -) - -android_resource( - name = "res", - package = "com.react_native", - res = "src/main/res", -) - -android_binary( - name = "app", - keystore = "//android/keystores:debug", - manifest = "src/main/AndroidManifest.xml", - package_type = "debug", - deps = [ - ":app-code", - ], -) diff --git a/lib/cli/test/snapshots/react_native/android/app/build.gradle b/lib/cli/test/snapshots/react_native/android/app/build.gradle deleted file mode 100644 index 79f42dbb943d..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/build.gradle +++ /dev/null @@ -1,146 +0,0 @@ -apply plugin: "com.android.application" - -import com.android.build.OutputFile - -/** - * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets - * and bundleReleaseJsAndAssets). - * These basically call `react-native bundle` with the correct arguments during the Android build - * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the - * bundle directly from the development server. Below you can see all the possible configurations - * and their defaults. If you decide to add a configuration block, make sure to add it before the - * `apply from: "../../node_modules/react-native/react.gradle"` line. - * - * project.ext.react = [ - * // the name of the generated asset file containing your JS bundle - * bundleAssetName: "index.android.bundle", - * - * // the entry file for bundle generation - * entryFile: "index.android.js", - * - * // whether to bundle JS and assets in debug mode - * bundleInDebug: false, - * - * // whether to bundle JS and assets in release mode - * bundleInRelease: true, - * - * // whether to bundle JS and assets in another build variant (if configured). - * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants - * // The configuration property can be in the following formats - * // 'bundleIn${productFlavor}${buildType}' - * // 'bundleIn${buildType}' - * // bundleInFreeDebug: true, - * // bundleInPaidRelease: true, - * // bundleInBeta: true, - * - * // whether to disable dev mode in custom build variants (by default only disabled in release) - * // for example: to disable dev mode in the staging build type (if configured) - * devDisabledInStaging: true, - * // The configuration property can be in the following formats - * // 'devDisabledIn${productFlavor}${buildType}' - * // 'devDisabledIn${buildType}' - * - * // the root of your project, i.e. where "package.json" lives - * root: "../../", - * - * // where to put the JS bundle asset in debug mode - * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", - * - * // where to put the JS bundle asset in release mode - * jsBundleDirRelease: "$buildDir/intermediates/assets/release", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in debug mode - * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in release mode - * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", - * - * // by default the gradle tasks are skipped if none of the JS files or assets change; this means - * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to - * // date; if you have any other folders that you want to ignore for performance reasons (gradle - * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ - * // for example, you might want to remove it from here. - * inputExcludes: ["android/**", "ios/**"], - * - * // override which node gets called and with what additional arguments - * nodeExecutableAndArgs: ["node"], - * - * // supply additional arguments to the packager - * extraPackagerArgs: [] - * ] - */ - -apply from: "../../node_modules/react-native/react.gradle" - -/** - * Set this to true to create two separate APKs instead of one: - * - An APK that only works on ARM devices - * - An APK that only works on x86 devices - * The advantage is the size of the APK is reduced by about 4MB. - * Upload all the APKs to the Play Store and people will download - * the correct one based on the CPU architecture of their device. - */ -def enableSeparateBuildPerCPUArchitecture = false - -/** - * Run Proguard to shrink the Java bytecode in release builds. - */ -def enableProguardInReleaseBuilds = false - -android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" - - defaultConfig { - applicationId "com.react_native" - minSdkVersion 16 - targetSdkVersion 22 - versionCode 1 - versionName "1.0" - ndk { - abiFilters "armeabi-v7a", "x86" - } - } - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include "armeabi-v7a", "x86" - } - } - buildTypes { - release { - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits - def versionCodes = ["armeabi-v7a":1, "x86":2] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - versionCodes.get(abi) * 1048576 + defaultConfig.versionCode - } - } - } -} - -dependencies { - compile fileTree(dir: "libs", include: ["*.jar"]) - compile "com.android.support:appcompat-v7:23.0.1" - compile "com.facebook.react:react-native:+" // From node_modules -} - -// Run this once to be able to run the application with BUCK -// puts all compile dependencies into folder libs for BUCK to use -task copyDownloadableDepsToLibs(type: Copy) { - from configurations.compile - into 'libs' -} diff --git a/lib/cli/test/snapshots/react_native/android/app/proguard-rules.pro b/lib/cli/test/snapshots/react_native/android/app/proguard-rules.pro deleted file mode 100644 index 6e8516c8d6dd..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/proguard-rules.pro +++ /dev/null @@ -1,70 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Disabling obfuscation is useful if you collect stack traces from production crashes -# (unless you are using a system that supports de-obfuscate the stack traces). --dontobfuscate - -# React Native - -# Keep our interfaces so they can be used by other ProGuard rules. -# See http://sourceforge.net/p/proguard/bugs/466/ --keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip --keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters --keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip - -# Do not strip any method/class that is annotated with @DoNotStrip --keep @com.facebook.proguard.annotations.DoNotStrip class * --keep @com.facebook.common.internal.DoNotStrip class * --keepclassmembers class * { - @com.facebook.proguard.annotations.DoNotStrip *; - @com.facebook.common.internal.DoNotStrip *; -} - --keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { - void set*(***); - *** get*(); -} - --keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } --keep class * extends com.facebook.react.bridge.NativeModule { *; } --keepclassmembers,includedescriptorclasses class * { native ; } --keepclassmembers class * { @com.facebook.react.uimanager.UIProp ; } --keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp ; } --keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup ; } - --dontwarn com.facebook.react.** - -# TextLayoutBuilder uses a non-public Android constructor within StaticLayout. -# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. --dontwarn android.text.StaticLayout - -# okhttp - --keepattributes Signature --keepattributes *Annotation* --keep class okhttp3.** { *; } --keep interface okhttp3.** { *; } --dontwarn okhttp3.** - -# okio - --keep class sun.misc.Unsafe { *; } --dontwarn java.nio.file.* --dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement --dontwarn okio.** diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/AndroidManifest.xml b/lib/cli/test/snapshots/react_native/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index c5e88afe95f6..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainActivity.java b/lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainActivity.java deleted file mode 100644 index 9587cecbe3ab..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainActivity.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.react_native; - -import com.facebook.react.ReactActivity; - -public class MainActivity extends ReactActivity { - - /** - * Returns the name of the main component registered from JavaScript. - * This is used to schedule rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "react_native"; - } -} diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainApplication.java b/lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainApplication.java deleted file mode 100644 index 093602e57d26..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/src/main/java/com/react_native/MainApplication.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.react_native; - -import android.app.Application; - -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.shell.MainReactPackage; -import com.facebook.soloader.SoLoader; - -import java.util.Arrays; -import java.util.List; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List getPackages() { - return Arrays.asList( - new MainReactPackage() - ); - } - }; - - @Override - public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; - } - - @Override - public void onCreate() { - super.onCreate(); - SoLoader.init(this, /* native exopackage */ false); - } -} diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index cde69bcccec65160d92116f20ffce4fce0b5245c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3418 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 diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index bfa42f0e7b91d006d22352c9ff2f134e504e3c1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4842 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 diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/lib/cli/test/snapshots/react_native/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 324e72cdd7480cb983fa1bcc7ce686e51ef87fe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7718 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 diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/res/values/strings.xml b/lib/cli/test/snapshots/react_native/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 4e998e085e75..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - react_native - diff --git a/lib/cli/test/snapshots/react_native/android/app/src/main/res/values/styles.xml b/lib/cli/test/snapshots/react_native/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 319eb0ca100b..000000000000 --- a/lib/cli/test/snapshots/react_native/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - diff --git a/lib/cli/test/snapshots/react_native/android/build.gradle b/lib/cli/test/snapshots/react_native/android/build.gradle deleted file mode 100644 index eed9972b5c13..000000000000 --- a/lib/cli/test/snapshots/react_native/android/build.gradle +++ /dev/null @@ -1,24 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - repositories { - jcenter() - } - dependencies { - classpath 'com.android.tools.build:gradle:2.2.3' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - mavenLocal() - jcenter() - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url "$rootDir/../node_modules/react-native/android" - } - } -} diff --git a/lib/cli/test/snapshots/react_native/android/gradle.properties b/lib/cli/test/snapshots/react_native/android/gradle.properties deleted file mode 100644 index 1fd964e90b1c..000000000000 --- a/lib/cli/test/snapshots/react_native/android/gradle.properties +++ /dev/null @@ -1,20 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -android.useDeprecatedNdk=true diff --git a/lib/cli/test/snapshots/react_native/android/gradle/wrapper/gradle-wrapper.jar b/lib/cli/test/snapshots/react_native/android/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index b5166dad4d90021f6a0b45268c0755719f1d5cd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52266 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 z 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 diff --git a/lib/cli/test/snapshots/react_native/android/gradle/wrapper/gradle-wrapper.properties b/lib/cli/test/snapshots/react_native/android/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index dbdc05d274d7..000000000000 --- a/lib/cli/test/snapshots/react_native/android/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,5 +0,0 @@ -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip diff --git a/lib/cli/test/snapshots/react_native/android/gradlew b/lib/cli/test/snapshots/react_native/android/gradlew deleted file mode 100755 index 91a7e269e19d..000000000000 --- a/lib/cli/test/snapshots/react_native/android/gradlew +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/lib/cli/test/snapshots/react_native/android/gradlew.bat b/lib/cli/test/snapshots/react_native/android/gradlew.bat deleted file mode 100644 index 8a0b282aa688..000000000000 --- a/lib/cli/test/snapshots/react_native/android/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/lib/cli/test/snapshots/react_native/android/keystores/BUCK b/lib/cli/test/snapshots/react_native/android/keystores/BUCK deleted file mode 100644 index 88e4c31b28d4..000000000000 --- a/lib/cli/test/snapshots/react_native/android/keystores/BUCK +++ /dev/null @@ -1,8 +0,0 @@ -keystore( - name = "debug", - properties = "debug.keystore.properties", - store = "debug.keystore", - visibility = [ - "PUBLIC", - ], -) diff --git a/lib/cli/test/snapshots/react_native/android/keystores/debug.keystore.properties b/lib/cli/test/snapshots/react_native/android/keystores/debug.keystore.properties deleted file mode 100644 index 121bfb49f0df..000000000000 --- a/lib/cli/test/snapshots/react_native/android/keystores/debug.keystore.properties +++ /dev/null @@ -1,4 +0,0 @@ -key.store=debug.keystore -key.alias=androiddebugkey -key.store.password=android -key.alias.password=android diff --git a/lib/cli/test/snapshots/react_native/android/settings.gradle b/lib/cli/test/snapshots/react_native/android/settings.gradle deleted file mode 100644 index 9a04978fa752..000000000000 --- a/lib/cli/test/snapshots/react_native/android/settings.gradle +++ /dev/null @@ -1,3 +0,0 @@ -rootProject.name = 'react_native' - -include ':app' diff --git a/lib/cli/test/snapshots/react_native/app.json b/lib/cli/test/snapshots/react_native/app.json deleted file mode 100644 index f61f27bc9b6d..000000000000 --- a/lib/cli/test/snapshots/react_native/app.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "react_native", - "displayName": "react_native" -} \ No newline at end of file diff --git a/lib/cli/test/snapshots/react_native/index.android.js b/lib/cli/test/snapshots/react_native/index.android.js deleted file mode 100644 index 676f7c398b1e..000000000000 --- a/lib/cli/test/snapshots/react_native/index.android.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * @flow - */ - -import React, { Component } from 'react'; -import { - AppRegistry, - StyleSheet, - Text, - View -} from 'react-native'; - -export default class react_native extends Component { - render() { - return ( - - - Welcome to React Native! - - - To get started, edit index.android.js - - - Double tap R on your keyboard to reload,{'\n'} - Shake or press menu button for dev menu - - - ); - } -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: '#F5FCFF', - }, - welcome: { - fontSize: 20, - textAlign: 'center', - margin: 10, - }, - instructions: { - textAlign: 'center', - color: '#333333', - marginBottom: 5, - }, -}); - -AppRegistry.registerComponent('react_native', () => react_native); diff --git a/lib/cli/test/snapshots/react_native/index.ios.js b/lib/cli/test/snapshots/react_native/index.ios.js deleted file mode 100644 index 9ed22824ea69..000000000000 --- a/lib/cli/test/snapshots/react_native/index.ios.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * @flow - */ - -import React, { Component } from 'react'; -import { - AppRegistry, - StyleSheet, - Text, - View -} from 'react-native'; - -export default class react_native extends Component { - render() { - return ( - - - Welcome to React Native! - - - To get started, edit index.ios.js - - - Press Cmd+R to reload,{'\n'} - Cmd+D or shake for dev menu - - - ); - } -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: '#F5FCFF', - }, - welcome: { - fontSize: 20, - textAlign: 'center', - margin: 10, - }, - instructions: { - textAlign: 'center', - color: '#333333', - marginBottom: 5, - }, -}); - -AppRegistry.registerComponent('react_native', () => react_native); diff --git a/lib/cli/test/snapshots/react_native/ios/react_native-tvOS/Info.plist b/lib/cli/test/snapshots/react_native/ios/react_native-tvOS/Info.plist deleted file mode 100644 index 2fb6a11c2c33..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native-tvOS/Info.plist +++ /dev/null @@ -1,54 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - NSLocationWhenInUseUsageDescription - - NSAppTransportSecurity - - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - - diff --git a/lib/cli/test/snapshots/react_native/ios/react_native-tvOSTests/Info.plist b/lib/cli/test/snapshots/react_native/ios/react_native-tvOSTests/Info.plist deleted file mode 100644 index 886825ccc9bf..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native-tvOSTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/project.pbxproj b/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/project.pbxproj deleted file mode 100644 index 8b3c518421ec..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1251 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; - 00E356F31AD99517003FC87E /* react_nativeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* react_nativeTests.m */; }; - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */; }; - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; - 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3EA31DF850E9000B6D8A /* libReact.a */; }; - 2DCD954D1E0B4F2C00145EB5 /* react_nativeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* react_nativeTests.m */; }; - 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTActionSheet; - }; - 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTGeolocation; - }; - 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5115D1A9E6B3D00147676; - remoteInfo = RCTImage; - }; - 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B511DB1A9E6C8500147676; - remoteInfo = RCTNetwork; - }; - 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; - remoteInfo = RCTVibration; - }; - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = react_native; - }; - 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTSettings; - }; - 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3C86DF461ADF2C930047B81A; - remoteInfo = RCTWebSocket; - }; - 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; - remoteInfo = React; - }; - 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; - remoteInfo = "react_native-tvOS"; - }; - 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; - remoteInfo = "RCTImage-tvOS"; - }; - 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28471D9B043800D4039D; - remoteInfo = "RCTLinking-tvOS"; - }; - 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28541D9B044C00D4039D; - remoteInfo = "RCTNetwork-tvOS"; - }; - 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28611D9B046600D4039D; - remoteInfo = "RCTSettings-tvOS"; - }; - 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A287B1D9B048500D4039D; - remoteInfo = "RCTText-tvOS"; - }; - 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28881D9B049200D4039D; - remoteInfo = "RCTWebSocket-tvOS"; - }; - 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28131D9B038B00D4039D; - remoteInfo = "React-tvOS"; - }; - 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C059A1DE3340900C268FA; - remoteInfo = yoga; - }; - 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C06751DE3340C00C268FA; - remoteInfo = "yoga-tvOS"; - }; - 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; - remoteInfo = cxxreact; - }; - 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; - remoteInfo = "cxxreact-tvOS"; - }; - 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; - remoteInfo = jschelpers; - }; - 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; - remoteInfo = "jschelpers-tvOS"; - }; - 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTAnimation; - }; - 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28201D9B03D100D4039D; - remoteInfo = "RCTAnimation-tvOS"; - }; - 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTLinking; - }; - 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5119B1A9E6C1200147676; - remoteInfo = RCTText; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = ""; }; - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = ""; }; - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = ""; }; - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = ""; }; - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = ""; }; - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = ""; }; - 00E356EE1AD99517003FC87E /* react_nativeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = react_nativeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 00E356F21AD99517003FC87E /* react_nativeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = react_nativeTests.m; sourceTree = ""; }; - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = ""; }; - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = ""; }; - 13B07F961A680F5B00A75B9A /* react_native.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = react_native.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = react_native/AppDelegate.h; sourceTree = ""; }; - 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = react_native/AppDelegate.m; sourceTree = ""; }; - 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = react_native/Images.xcassets; sourceTree = ""; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = react_native/Info.plist; sourceTree = ""; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = react_native/main.m; sourceTree = ""; }; - 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = ""; }; - 2D02E47B1E0B4A5D006451C7 /* react_native-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "react_native-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D02E4901E0B4A5D006451C7 /* react_native-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "react_native-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = ""; }; - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = ""; }; - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 146834051AC3E58100842450 /* libReact.a in Frameworks */, - 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4C91E0B4AEC006451C7 /* libReact.a in Frameworks */, - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation-tvOS.a in Frameworks */, - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00C302A81ABCB8CE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302B61ABCB90400DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302BC1ABCB91800DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302D41ABCB9D200DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 00C302E01ABCB9EE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, - ); - name = Products; - sourceTree = ""; - }; - 00E356EF1AD99517003FC87E /* react_nativeTests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* react_nativeTests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = react_nativeTests; - sourceTree = ""; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 139105B71AF99BAD00B5F7CC /* Products */ = { - isa = PBXGroup; - children = ( - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 139FDEE71B06529A00C62182 /* Products */ = { - isa = PBXGroup; - children = ( - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 13B07FAE1A68108700A75B9A /* react_native */ = { - isa = PBXGroup; - children = ( - 008F07F21AC5B25A0029DE68 /* main.jsbundle */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = react_native; - sourceTree = ""; - }; - 146834001AC3E56700842450 /* Products */ = { - isa = PBXGroup; - children = ( - 146834041AC3E56700842450 /* libReact.a */, - 3DAD3EA31DF850E9000B6D8A /* libReact.a */, - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, - ); - name = Products; - sourceTree = ""; - }; - 5E91572E1DD0AC6500FF2AA8 /* Products */ = { - isa = PBXGroup; - children = ( - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 78C398B11ACF4ADC00677621 /* Products */ = { - isa = PBXGroup; - children = ( - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, - 146833FF1AC3E56700842450 /* React.xcodeproj */, - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, - ); - name = Libraries; - sourceTree = ""; - }; - 832341B11AAA6A8300B99B32 /* Products */ = { - isa = PBXGroup; - children = ( - 832341B51AAA6A8300B99B32 /* libRCTText.a */, - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, - ); - name = Products; - sourceTree = ""; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* react_native */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* react_nativeTests */, - 83CBBA001A601CBA00E9B192 /* Products */, - ); - indentWidth = 2; - sourceTree = ""; - tabWidth = 2; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* react_native.app */, - 00E356EE1AD99517003FC87E /* react_nativeTests.xctest */, - 2D02E47B1E0B4A5D006451C7 /* react_native-tvOS.app */, - 2D02E4901E0B4A5D006451C7 /* react_native-tvOSTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* react_nativeTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "react_nativeTests" */; - buildPhases = ( - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = react_nativeTests; - productName = react_nativeTests; - productReference = 00E356EE1AD99517003FC87E /* react_nativeTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 13B07F861A680F5B00A75B9A /* react_native */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "react_native" */; - buildPhases = ( - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = react_native; - productName = "Hello World"; - productReference = 13B07F961A680F5B00A75B9A /* react_native.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E47A1E0B4A5D006451C7 /* react_native-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "react_native-tvOS" */; - buildPhases = ( - 2D02E4771E0B4A5D006451C7 /* Sources */, - 2D02E4781E0B4A5D006451C7 /* Frameworks */, - 2D02E4791E0B4A5D006451C7 /* Resources */, - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "react_native-tvOS"; - productName = "react_native-tvOS"; - productReference = 2D02E47B1E0B4A5D006451C7 /* react_native-tvOS.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E48F1E0B4A5D006451C7 /* react_native-tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "react_native-tvOSTests" */; - buildPhases = ( - 2D02E48C1E0B4A5D006451C7 /* Sources */, - 2D02E48D1E0B4A5D006451C7 /* Frameworks */, - 2D02E48E1E0B4A5D006451C7 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, - ); - name = "react_native-tvOSTests"; - productName = "react_native-tvOSTests"; - productReference = 2D02E4901E0B4A5D006451C7 /* react_native-tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0610; - ORGANIZATIONNAME = Facebook; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 2D02E47A1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - }; - 2D02E48F1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - TestTargetID = 2D02E47A1E0B4A5D006451C7; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "react_native" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; - ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - }, - { - ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; - ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - }, - { - ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; - ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - }, - { - ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; - ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - }, - { - ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; - ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - }, - { - ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; - ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - }, - { - ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; - ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - }, - { - ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; - ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - }, - { - ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; - ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - }, - { - ProductGroup = 139FDEE71B06529A00C62182 /* Products */; - ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - }, - { - ProductGroup = 146834001AC3E56700842450 /* Products */; - ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* react_native */, - 00E356ED1AD99517003FC87E /* react_nativeTests */, - 2D02E47A1E0B4A5D006451C7 /* react_native-tvOS */, - 2D02E48F1E0B4A5D006451C7 /* react_native-tvOSTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTActionSheet.a; - remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTGeolocation.a; - remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTImage.a; - remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTNetwork.a; - remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTVibration.a; - remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTSettings.a; - remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTWebSocket.a; - remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 146834041AC3E56700842450 /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTImage-tvOS.a"; - remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTLinking-tvOS.a"; - remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTNetwork-tvOS.a"; - remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTSettings-tvOS.a"; - remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTText-tvOS.a"; - remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTWebSocket-tvOS.a"; - remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTAnimation-tvOS.a"; - remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTLinking.a; - remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTText.a; - remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4791E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48E1E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; - }; - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native Code And Images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* react_nativeTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4771E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48C1E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DCD954D1E0B4F2C00145EB5 /* react_nativeTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* react_native */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D02E47A1E0B4A5D006451C7 /* react_native-tvOS */; - targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 13B07FB21A68108700A75B9A /* Base */, - ); - name = LaunchScreen.xib; - path = react_native; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = react_nativeTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/react_native.app/react_native"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = react_nativeTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/react_native.app/react_native"; - }; - name = Release; - }; - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = NO; - INFOPLIST_FILE = react_native/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = react_native; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - INFOPLIST_FILE = react_native/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = react_native; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 2D02E4971E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "react_native-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.react_native-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Debug; - }; - 2D02E4981E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "react_native-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.react_native-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Release; - }; - 2D02E4991E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "react_native-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.react_native-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/react_native-tvOS.app/react_native-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Debug; - }; - 2D02E49A1E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "react_native-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.react_native-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/react_native-tvOS.app/react_native-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "react_nativeTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "react_native" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "react_native-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4971E0B4A5E006451C7 /* Debug */, - 2D02E4981E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "react_native-tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4991E0B4A5E006451C7 /* Debug */, - 2D02E49A1E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "react_native" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native-tvOS.xcscheme b/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native-tvOS.xcscheme deleted file mode 100644 index 396dd475c7c4..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native-tvOS.xcscheme +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native.xcscheme b/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native.xcscheme deleted file mode 100644 index fc2b62f48be5..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native.xcodeproj/xcshareddata/xcschemes/react_native.xcscheme +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.h b/lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.h deleted file mode 100644 index a9654d5e01b1..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -@interface AppDelegate : UIResponder - -@property (nonatomic, strong) UIWindow *window; - -@end diff --git a/lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.m b/lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.m deleted file mode 100644 index c50c0f2fbd5d..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native/AppDelegate.m +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "AppDelegate.h" - -#import -#import - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - NSURL *jsCodeLocation; - - jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index.ios" fallbackResource:nil]; - - RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation - moduleName:@"react_native" - initialProperties:nil - launchOptions:launchOptions]; - rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -@end diff --git a/lib/cli/test/snapshots/react_native/ios/react_native/Base.lproj/LaunchScreen.xib b/lib/cli/test/snapshots/react_native/ios/react_native/Base.lproj/LaunchScreen.xib deleted file mode 100644 index c6f2b0ae32d0..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/lib/cli/test/snapshots/react_native/ios/react_native/Images.xcassets/AppIcon.appiconset/Contents.json b/lib/cli/test/snapshots/react_native/ios/react_native/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 118c98f7461b..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/lib/cli/test/snapshots/react_native/ios/react_native/Info.plist b/lib/cli/test/snapshots/react_native/ios/react_native/Info.plist deleted file mode 100644 index ccb175f0ab58..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native/Info.plist +++ /dev/null @@ -1,56 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - react_native - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - NSLocationWhenInUseUsageDescription - - NSAppTransportSecurity - - - NSExceptionDomains - - localhost - - NSExceptionAllowsInsecureHTTPLoads - - - - - - diff --git a/lib/cli/test/snapshots/react_native/ios/react_native/main.m b/lib/cli/test/snapshots/react_native/ios/react_native/main.m deleted file mode 100644 index 3d767fcbb9fc..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_native/main.m +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/lib/cli/test/snapshots/react_native/ios/react_nativeTests/Info.plist b/lib/cli/test/snapshots/react_native/ios/react_nativeTests/Info.plist deleted file mode 100644 index 886825ccc9bf..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_nativeTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/lib/cli/test/snapshots/react_native/ios/react_nativeTests/react_nativeTests.m b/lib/cli/test/snapshots/react_native/ios/react_nativeTests/react_nativeTests.m deleted file mode 100644 index c8f1114e2ea7..000000000000 --- a/lib/cli/test/snapshots/react_native/ios/react_nativeTests/react_nativeTests.m +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import -#import - -#import -#import - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React Native!" - -@interface react_nativeTests : XCTestCase - -@end - -@implementation react_nativeTests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; - RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - - RCTSetLogFunction(RCTDefaultLogFunction); - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - - -@end diff --git a/lib/cli/test/snapshots/react_native/package.json b/lib/cli/test/snapshots/react_native/package.json deleted file mode 100644 index 8b0561a96e5f..000000000000 --- a/lib/cli/test/snapshots/react_native/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "react-native-fixture", - "version": "0.0.1", - "private": true, - "scripts": { - "start": "node node_modules/react-native/local-cli/cli.js start", - "test": "jest", - "storybook": "storybook start -p 7007" - }, - "jest": { - "preset": "react-native" - }, - "dependencies": { - "react": "16.0.0-alpha.12", - "react-native": "0.47.2" - }, - "devDependencies": { - "babel-jest": "20.0.3", - "babel-preset-react-native": "3.0.1", - "jest": "20.0.4", - "react-test-renderer": "16.0.0-alpha.12", - "@storybook/react-native": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "babel-core": "^6.26.3", - "babel-runtime": "^6.26.0", - "react-dom": "16.0.0-alpha.12", - "prop-types": "^15.6.2" - } -} diff --git a/lib/cli/test/snapshots/react_native/storybook/addons.js b/lib/cli/test/snapshots/react_native/storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react_native/storybook/index.android.js b/lib/cli/test/snapshots/react_native/storybook/index.android.js deleted file mode 100644 index f0513c5a8651..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/index.android.js +++ /dev/null @@ -1,3 +0,0 @@ -import StorybookUI from './storybook'; - -export default StorybookUI; diff --git a/lib/cli/test/snapshots/react_native/storybook/index.ios.js b/lib/cli/test/snapshots/react_native/storybook/index.ios.js deleted file mode 100644 index f0513c5a8651..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/index.ios.js +++ /dev/null @@ -1,3 +0,0 @@ -import StorybookUI from './storybook'; - -export default StorybookUI; diff --git a/lib/cli/test/snapshots/react_native/storybook/index.js b/lib/cli/test/snapshots/react_native/storybook/index.js deleted file mode 100644 index f0513c5a8651..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import StorybookUI from './storybook'; - -export default StorybookUI; diff --git a/lib/cli/test/snapshots/react_native/storybook/stories/Button/index.android.js b/lib/cli/test/snapshots/react_native/storybook/stories/Button/index.android.js deleted file mode 100644 index 3c4c405180da..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/stories/Button/index.android.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { TouchableNativeFeedback } from 'react-native'; - -export default function Button({ onPress, children }) { - return {children}; -} - -Button.defaultProps = { - children: null, - onPress: () => {}, -}; - -Button.propTypes = { - children: PropTypes.node, - onPress: PropTypes.func, -}; diff --git a/lib/cli/test/snapshots/react_native/storybook/stories/Button/index.ios.js b/lib/cli/test/snapshots/react_native/storybook/stories/Button/index.ios.js deleted file mode 100644 index 37c8437e72e4..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/stories/Button/index.ios.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { TouchableHighlight } from 'react-native'; - -export default function Button({ onPress, children }) { - return {children}; -} - -Button.defaultProps = { - children: null, - onPress: () => {}, -}; - -Button.propTypes = { - children: PropTypes.node, - onPress: PropTypes.func, -}; diff --git a/lib/cli/test/snapshots/react_native/storybook/stories/CenterView/index.js b/lib/cli/test/snapshots/react_native/storybook/stories/CenterView/index.js deleted file mode 100644 index 29732b27ab24..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/stories/CenterView/index.js +++ /dev/null @@ -1,16 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { View } from 'react-native'; -import style from './style'; - -export default function CenterView({ children }) { - return {children}; -} - -CenterView.defaultProps = { - children: null, -}; - -CenterView.propTypes = { - children: PropTypes.node, -}; diff --git a/lib/cli/test/snapshots/react_native/storybook/stories/CenterView/style.js b/lib/cli/test/snapshots/react_native/storybook/stories/CenterView/style.js deleted file mode 100644 index ff347fd9841f..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/stories/CenterView/style.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - main: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: '#F5FCFF', - }, -}; diff --git a/lib/cli/test/snapshots/react_native/storybook/stories/Welcome/index.js b/lib/cli/test/snapshots/react_native/storybook/stories/Welcome/index.js deleted file mode 100644 index 119401fc78e6..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/stories/Welcome/index.js +++ /dev/null @@ -1,57 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { View, Text } from 'react-native'; - -export default class Welcome extends React.Component { - styles = { - wrapper: { - flex: 1, - padding: 24, - justifyContent: 'center', - }, - header: { - fontSize: 18, - marginBottom: 18, - }, - content: { - fontSize: 12, - marginBottom: 10, - lineHeight: 18, - }, - }; - - showApp = event => { - const { showApp } = this.props; - event.preventDefault(); - - if (showApp) { - showApp(); - } - }; - - render() { - return ( - - Welcome to React Native Storybook - - This is a UI Component development environment for your React Native app. Here you can - display and interact with your UI components as stories. A story is a single state of one - or more UI components. You can have as many stories as you want. In other words a story is - like a visual test case. - - - We have added some stories inside the "storybook/stories" directory for examples. Try - editing the "storybook/stories/Welcome.js" file to edit this message. - - - ); - } -} - -Welcome.defaultProps = { - showApp: null, -}; - -Welcome.propTypes = { - showApp: PropTypes.func, -}; diff --git a/lib/cli/test/snapshots/react_native/storybook/stories/index.js b/lib/cli/test/snapshots/react_native/storybook/stories/index.js deleted file mode 100644 index 63f1a6266717..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/stories/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react'; -import { Text } from 'react-native'; - -import { storiesOf } from '@storybook/react-native'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import Button from './Button'; -import CenterView from './CenterView'; -import Welcome from './Welcome'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .addDecorator(getStory => {getStory()}) - .add('with text', () => ( - - )) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/react_native/storybook/storybook.js b/lib/cli/test/snapshots/react_native/storybook/storybook.js deleted file mode 100644 index c77ad96c5838..000000000000 --- a/lib/cli/test/snapshots/react_native/storybook/storybook.js +++ /dev/null @@ -1,24 +0,0 @@ -import React, { Component } from 'react'; -import { AppRegistry } from 'react-native'; -import { getStorybookUI, configure } from '@storybook/react-native'; - -// import stories -configure(() => { - require('./stories'); -}, module); - -// This assumes that storybook is running on the same host as your RN packager, -// to set manually use, e.g. host: 'localhost' option -const StorybookUIRoot = getStorybookUI({ port: 7007, onDeviceUI: true }); - -// react-native hot module loader must take in a Class - https://github.com/facebook/react-native/issues/10991 -// https://github.com/storybooks/storybook/issues/2081 -// eslint-disable-next-line react/prefer-stateless-function -class StorybookUIHMRRoot extends Component { - render() { - return ; - } -} - -AppRegistry.registerComponent('react_native', () => StorybookUIHMRRoot); -export default StorybookUIHMRRoot; diff --git a/lib/cli/test/snapshots/react_native_scripts/.babelrc b/lib/cli/test/snapshots/react_native_scripts/.babelrc deleted file mode 100644 index 2bcd546dbfd2..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/.babelrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "presets": ["babel-preset-expo"], - "env": { - "development": { - "plugins": ["transform-react-jsx-source"] - } - } -} diff --git a/lib/cli/test/snapshots/react_native_scripts/.flowconfig b/lib/cli/test/snapshots/react_native_scripts/.flowconfig deleted file mode 100644 index 96d526a688ad..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/.flowconfig +++ /dev/null @@ -1,63 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -/\.buckd/ - -; Ignore unexpected extra "@providesModule" -.*/node_modules/.*/node_modules/fbjs/.* - -; Ignore duplicate module providers -; For RN Apps installed via npm, "Libraries" folder is inside -; "node_modules/react-native" but in the source repo it is in the root -.*/Libraries/react-native/React.js -.*/Libraries/react-native/ReactNative.js - -; Additional create-react-native-app ignores - -; Ignore duplicate module providers -.*/node_modules/fbemitter/lib/* - -; Ignore misbehaving dev-dependencies -.*/node_modules/xdl/build/* -.*/node_modules/reqwest/tests/* - -; Ignore missing expo-sdk dependencies (temporarily) -; https://github.com/expo/expo/issues/162 -.*/node_modules/expo/src/* - -; Ignore react-native-fbads dependency of the expo sdk -.*/node_modules/react-native-fbads/* - -[include] - -[libs] -node_modules/react-native/Libraries/react-native/react-native-interface.js -node_modules/react-native/flow -flow/ - -[options] -module.system=haste - -emoji=true - -experimental.strict_type_args=true - -munge_underscores=true - -module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FixMe - -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(4[0-9]\\|[1-3][0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ -suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy -suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError - -unsafe.enable_getters_and_setters=true - -[version] -^0.49.1 diff --git a/lib/cli/test/snapshots/react_native_scripts/.gitignore b/lib/cli/test/snapshots/react_native_scripts/.gitignore deleted file mode 100644 index 1025e17bd3c6..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules/ -.expo/ -npm-debug.* diff --git a/lib/cli/test/snapshots/react_native_scripts/.watchmanconfig b/lib/cli/test/snapshots/react_native_scripts/.watchmanconfig deleted file mode 100644 index 0967ef424bce..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/lib/cli/test/snapshots/react_native_scripts/App.js b/lib/cli/test/snapshots/react_native_scripts/App.js deleted file mode 100644 index 8d6286cdaf72..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/App.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react'; -import { StyleSheet, Text, View } from 'react-native'; - -export default class App extends React.Component { - render() { - return ( - - Open up App.js to start working on your app! - Changes you make will automatically reload. - Shake your phone to open the developer menu. - - ); - } -} - -const styles = StyleSheet.create({ - container: { - flex: 1, - backgroundColor: '#fff', - alignItems: 'center', - justifyContent: 'center', - }, -}); diff --git a/lib/cli/test/snapshots/react_native_scripts/App.test.js b/lib/cli/test/snapshots/react_native_scripts/App.test.js deleted file mode 100644 index fc6f975ef8fe..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/App.test.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import App from './App'; - -import renderer from 'react-test-renderer'; - -it('renders without crashing', () => { - const rendered = renderer.create().toJSON(); - expect(rendered).toBeTruthy(); -}); diff --git a/lib/cli/test/snapshots/react_native_scripts/app.json b/lib/cli/test/snapshots/react_native_scripts/app.json deleted file mode 100644 index 642f2126a040..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/app.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "expo": { - "sdkVersion": "20.0.0" - } -} diff --git a/lib/cli/test/snapshots/react_native_scripts/package.json b/lib/cli/test/snapshots/react_native_scripts/package.json deleted file mode 100644 index d2c0ccb8481a..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "react-native-scripts-fixture", - "version": "0.1.0", - "private": true, - "main": "./node_modules/react-native-scripts/build/bin/crna-entry.js", - "scripts": { - "android": "react-native-scripts android", - "eject": "react-native-scripts eject", - "ios": "react-native-scripts ios", - "start": "react-native-scripts start", - "test": "node node_modules/jest/bin/jest.js --watch", - "storybook": "storybook start -p 7007" - }, - "jest": { - "preset": "jest-expo" - }, - "dependencies": { - "expo": "^20.0.0", - "react": "16.0.0-alpha.12", - "react-native": "^0.47.0" - }, - "devDependencies": { - "jest-expo": "~20.0.0", - "react-native-scripts": "1.3.1", - "react-test-renderer": "16.0.0-alpha.12", - "@storybook/react-native": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "babel-core": "^6.26.3", - "babel-runtime": "^6.26.0", - "react-dom": "16.0.0-alpha.12", - "prop-types": "^15.6.2" - } -} diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/addons.js b/lib/cli/test/snapshots/react_native_scripts/storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/index.js b/lib/cli/test/snapshots/react_native_scripts/storybook/index.js deleted file mode 100644 index 7670ee12cd53..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/index.js +++ /dev/null @@ -1,24 +0,0 @@ -import React, { Component } from 'react'; -import { AppRegistry } from 'react-native'; -import { getStorybookUI, configure } from '@storybook/react-native'; - -// import stories -configure(() => { - require('./stories'); -}, module); - -// This assumes that storybook is running on the same host as your RN packager, -// to set manually use, e.g. host: 'localhost' option -const StorybookUIRoot = getStorybookUI({ port: 7007, onDeviceUI: true }); - -// react-native hot module loader must take in a Class - https://github.com/facebook/react-native/issues/10991 -// https://github.com/storybooks/storybook/issues/2081 -// eslint-disable-next-line react/prefer-stateless-function -class StorybookUIHMRRoot extends Component { - render() { - return ; - } -} - -AppRegistry.registerComponent('%APP_NAME%', () => StorybookUIHMRRoot); -export default StorybookUIHMRRoot; diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.android.js b/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.android.js deleted file mode 100644 index 911f458f6437..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.android.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { TouchableNativeFeedback } from 'react-native'; - -const Button = ({ onPress, children }) => ( - {children} -); - -Button.propTypes = { - children: PropTypes.node.isRequired, - onPress: PropTypes.func, -}; -Button.defaultProps = { - onPress: () => {}, -}; - -export { Button as default }; diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.ios.js b/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.ios.js deleted file mode 100644 index 3cfae492f0e4..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Button/index.ios.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { TouchableHighlight } from 'react-native'; - -const Button = ({ onPress, children }) => ( - {children} -); - -Button.propTypes = { - children: PropTypes.node.isRequired, - onPress: PropTypes.func, -}; -Button.defaultProps = { - onPress: () => {}, -}; - -export { Button as default }; diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/index.js b/lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/index.js deleted file mode 100644 index 4d459f1cbae3..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/index.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { View } from 'react-native'; -import style from './style'; - -const CenterView = ({ children }) => {children}; - -CenterView.propTypes = { - children: PropTypes.node.isRequired, -}; - -export { CenterView as default }; diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/style.js b/lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/style.js deleted file mode 100644 index ff347fd9841f..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/CenterView/style.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - main: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: '#F5FCFF', - }, -}; diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Welcome/index.js b/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Welcome/index.js deleted file mode 100644 index c9236b2031f2..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/Welcome/index.js +++ /dev/null @@ -1,54 +0,0 @@ -import React from 'react'; -import { View, Text } from 'react-native'; -import PropTypes from 'prop-types'; - -export default class Welcome extends React.Component { - styles = { - wrapper: { - flex: 1, - padding: 24, - justifyContent: 'center', - }, - header: { - fontSize: 18, - marginBottom: 18, - }, - content: { - fontSize: 12, - marginBottom: 10, - lineHeight: 18, - }, - }; - - showApp = event => { - const { showApp } = this.props; - - event.preventDefault(); - showApp(); - }; - - render() { - return ( - - Welcome to React Native Storybook - - This is a UI Component development environment for your React Native app. Here you can - display and interact with your UI components as stories. A story is a single state of one - or more UI components. You can have as many stories as you want. In other words a story is - like a visual test case. - - - We have added some stories inside the "storybook/stories" directory for examples. Try - editing the "storybook/stories/Welcome.js" file to edit this message. - - - ); - } -} - -Welcome.propTypes = { - showApp: PropTypes.func, -}; -Welcome.defaultProps = { - showApp: () => {}, -}; diff --git a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/index.js b/lib/cli/test/snapshots/react_native_scripts/storybook/stories/index.js deleted file mode 100644 index 63f1a6266717..000000000000 --- a/lib/cli/test/snapshots/react_native_scripts/storybook/stories/index.js +++ /dev/null @@ -1,25 +0,0 @@ -import React from 'react'; -import { Text } from 'react-native'; - -import { storiesOf } from '@storybook/react-native'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import Button from './Button'; -import CenterView from './CenterView'; -import Welcome from './Welcome'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .addDecorator(getStory => {getStory()}) - .add('with text', () => ( - - )) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/react_project/.babelrc b/lib/cli/test/snapshots/react_project/.babelrc deleted file mode 100644 index 2b7bafa5fa47..000000000000 --- a/lib/cli/test/snapshots/react_project/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["@babel/preset-env", "@babel/preset-react"] -} diff --git a/lib/cli/test/snapshots/react_project/.storybook/addons.js b/lib/cli/test/snapshots/react_project/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react_project/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react_project/.storybook/config.js b/lib/cli/test/snapshots/react_project/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_project/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_project/index.js b/lib/cli/test/snapshots/react_project/index.js deleted file mode 100644 index a24e6149ec7b..000000000000 --- a/lib/cli/test/snapshots/react_project/index.js +++ /dev/null @@ -1,6 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; - -export default function Welcome(props) { - return

Hello, {props.name}

; -} diff --git a/lib/cli/test/snapshots/react_project/package.json b/lib/cli/test/snapshots/react_project/package.json deleted file mode 100644 index 435e6834640d..000000000000 --- a/lib/cli/test/snapshots/react_project/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "react-project-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "index.js", - "scripts": { - "build": "babel index.js -d dist", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "devDependencies": { - "@babel/cli": "7.0.0-rc.2", - "@babel/preset-env": "7.0.0-rc.2", - "@babel/preset-react": "7.0.0-rc.2", - "react": "^15.6.1", - "react-dom": "^15.6.1", - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - }, - "peerDependencies": { - "react": "*", - "react-dom": "*" - }, - "dependencies": {} -} diff --git a/lib/cli/test/snapshots/react_project/stories/index.stories.js b/lib/cli/test/snapshots/react_project/stories/index.stories.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/react_project/stories/index.stories.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/react_scripts/.gitignore b/lib/cli/test/snapshots/react_scripts/.gitignore deleted file mode 100644 index d30f40ef4422..000000000000 --- a/lib/cli/test/snapshots/react_scripts/.gitignore +++ /dev/null @@ -1,21 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/lib/cli/test/snapshots/react_scripts/.storybook/addons.js b/lib/cli/test/snapshots/react_scripts/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react_scripts/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react_scripts/.storybook/config.js b/lib/cli/test/snapshots/react_scripts/.storybook/config.js deleted file mode 100644 index 35430210ce65..000000000000 --- a/lib/cli/test/snapshots/react_scripts/.storybook/config.js +++ /dev/null @@ -1,7 +0,0 @@ -import { configure } from '@storybook/react'; - -function loadStories() { - require('../src/stories'); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_scripts/package.json b/lib/cli/test/snapshots/react_scripts/package.json deleted file mode 100644 index 1f37e6181f79..000000000000 --- a/lib/cli/test/snapshots/react_scripts/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "react-scripts-fixture", - "version": "0.1.0", - "private": true, - "scripts": { - "build": "react-scripts build", - "eject": "react-scripts eject", - "start": "react-scripts start", - "test": "react-scripts test --env=jsdom", - "storybook": "start-storybook -p 9009 -s public", - "build-storybook": "build-storybook -s public" - }, - "dependencies": { - "react": "^15.6.1", - "react-dom": "^15.6.1", - "react-scripts": "1.0.13" - }, - "devDependencies": { - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - } -} diff --git a/lib/cli/test/snapshots/react_scripts/public/favicon.ico b/lib/cli/test/snapshots/react_scripts/public/favicon.ico deleted file mode 100644 index a11777cc471a4344702741ab1c8a588998b1311a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/lib/cli/test/snapshots/react_scripts/public/index.html b/lib/cli/test/snapshots/react_scripts/public/index.html deleted file mode 100644 index 7bee027101eb..000000000000 --- a/lib/cli/test/snapshots/react_scripts/public/index.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - React App - - - -
- - - diff --git a/lib/cli/test/snapshots/react_scripts/public/manifest.json b/lib/cli/test/snapshots/react_scripts/public/manifest.json deleted file mode 100644 index be607e417719..000000000000 --- a/lib/cli/test/snapshots/react_scripts/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "192x192", - "type": "image/png" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/lib/cli/test/snapshots/react_scripts/src/App.css b/lib/cli/test/snapshots/react_scripts/src/App.css deleted file mode 100644 index 15adfdc710ca..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/App.css +++ /dev/null @@ -1,24 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - animation: App-logo-spin infinite 20s linear; - height: 80px; -} - -.App-header { - background-color: #222; - height: 150px; - padding: 20px; - color: white; -} - -.App-intro { - font-size: large; -} - -@keyframes App-logo-spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} diff --git a/lib/cli/test/snapshots/react_scripts/src/App.js b/lib/cli/test/snapshots/react_scripts/src/App.js deleted file mode 100644 index d7d52a7f38a3..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/App.js +++ /dev/null @@ -1,21 +0,0 @@ -import React, { Component } from 'react'; -import logo from './logo.svg'; -import './App.css'; - -class App extends Component { - render() { - return ( -
-
- logo -

Welcome to React

-
-

- To get started, edit src/App.js and save to reload. -

-
- ); - } -} - -export default App; diff --git a/lib/cli/test/snapshots/react_scripts/src/App.test.js b/lib/cli/test/snapshots/react_scripts/src/App.test.js deleted file mode 100644 index b84af98d7203..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/App.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); diff --git a/lib/cli/test/snapshots/react_scripts/src/index.css b/lib/cli/test/snapshots/react_scripts/src/index.css deleted file mode 100644 index b4cc7250b98c..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/index.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - margin: 0; - padding: 0; - font-family: sans-serif; -} diff --git a/lib/cli/test/snapshots/react_scripts/src/index.js b/lib/cli/test/snapshots/react_scripts/src/index.js deleted file mode 100644 index fae3e3500cf0..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/index.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import registerServiceWorker from './registerServiceWorker'; - -ReactDOM.render(, document.getElementById('root')); -registerServiceWorker(); diff --git a/lib/cli/test/snapshots/react_scripts/src/logo.svg b/lib/cli/test/snapshots/react_scripts/src/logo.svg deleted file mode 100644 index 6b60c1042f58..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/lib/cli/test/snapshots/react_scripts/src/registerServiceWorker.js b/lib/cli/test/snapshots/react_scripts/src/registerServiceWorker.js deleted file mode 100644 index 4a3ccf02124e..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/registerServiceWorker.js +++ /dev/null @@ -1,108 +0,0 @@ -// In production, we register a service worker to serve assets from local cache. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on the "N+1" visit to a page, since previously -// cached resources are updated in the background. - -// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. -// This link also includes instructions on opting out of this behavior. - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.1/8 is considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -); - -export default function register() { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location); - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 - return; - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; - - if (!isLocalhost) { - // Is not local host. Just register service worker - registerValidSW(swUrl); - } else { - // This is running on localhost. Lets check if a service worker still exists or not. - checkValidServiceWorker(swUrl); - } - }); - } -} - -function registerValidSW(swUrl) { - navigator.serviceWorker - .register(swUrl) - .then(registration => { - registration.onupdatefound = () => { - const installingWorker = registration.installing; - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the old content will have been purged and - // the fresh content will have been added to the cache. - // It's the perfect time to display a "New content is - // available; please refresh." message in your web app. - console.log('New content is available; please refresh.'); - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); - } - } - }; - }; - }) - .catch(error => { - console.error('Error during service worker registration:', error); - }); -} - -function checkValidServiceWorker(swUrl) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl) - .then(response => { - // Ensure service worker exists, and that we really are getting a JS file. - if ( - response.status === 404 || - response.headers.get('content-type').indexOf('javascript') === -1 - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { - registration.unregister().then(() => { - window.location.reload(); - }); - }); - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl); - } - }) - .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); - }); -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready.then(registration => { - registration.unregister(); - }); - } -} diff --git a/lib/cli/test/snapshots/react_scripts/src/stories/index.js b/lib/cli/test/snapshots/react_scripts/src/stories/index.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/react_scripts/src/stories/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/react_static/.babelrc b/lib/cli/test/snapshots/react_static/.babelrc deleted file mode 100644 index 167eaf5c61e9..000000000000 --- a/lib/cli/test/snapshots/react_static/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "react-static/.babelrc" -} diff --git a/lib/cli/test/snapshots/react_static/.gitignore b/lib/cli/test/snapshots/react_static/.gitignore deleted file mode 100644 index dc353a145faf..000000000000 --- a/lib/cli/test/snapshots/react_static/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# dependencies -/node_modules - -# testing -/coverage - -# production -/dist -/tmp - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* \ No newline at end of file diff --git a/lib/cli/test/snapshots/react_static/.storybook/addons.js b/lib/cli/test/snapshots/react_static/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react_static/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react_static/.storybook/config.js b/lib/cli/test/snapshots/react_static/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_static/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_static/package.json b/lib/cli/test/snapshots/react_static/package.json deleted file mode 100644 index 99fcefd96d90..000000000000 --- a/lib/cli/test/snapshots/react_static/package.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "name": "react-static-fixture", - "version": "1.0.1", - "main": "index.js", - "license": "MIT", - "scripts": { - "start": "react-static start", - "stage": "react-static build --staging", - "build": "react-static build", - "serve": "serve dist -p 3000", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "axios": "^0.16.2", - "react": "^16.0.0", - "react-dom": "^16.0.0", - "react-router": "^4.2.0", - "react-static": "^5" - }, - "devDependencies": { - "babel-core": "^6.26.3", - "eslint-config-react-tools": "1.x.x", - "serve": "^6.1.0", - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "babel-loader": "^7.1.5" - } -} diff --git a/lib/cli/test/snapshots/react_static/public/robots.txt b/lib/cli/test/snapshots/react_static/public/robots.txt deleted file mode 100644 index 7d329b1db3f0..000000000000 --- a/lib/cli/test/snapshots/react_static/public/robots.txt +++ /dev/null @@ -1 +0,0 @@ -User-agent: * diff --git a/lib/cli/test/snapshots/react_static/src/App.js b/lib/cli/test/snapshots/react_static/src/App.js deleted file mode 100644 index 5675adb22297..000000000000 --- a/lib/cli/test/snapshots/react_static/src/App.js +++ /dev/null @@ -1,23 +0,0 @@ -import React, { Component } from 'react' -import { hot } from 'react-hot-loader' -// -import './app.css' -import logo from './logo.png' - -class App extends Component { - render () { - return ( -
-
- logo -

Welcome to React-Static

-
-

- To get started, edit src/App.js and save to reload. -

-
- ) - } -} - -export default hot(module)(App) diff --git a/lib/cli/test/snapshots/react_static/src/app.css b/lib/cli/test/snapshots/react_static/src/app.css deleted file mode 100644 index cc6998a42b2f..000000000000 --- a/lib/cli/test/snapshots/react_static/src/app.css +++ /dev/null @@ -1,41 +0,0 @@ -body { - font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, - 'Lucida Grande', sans-serif; - font-weight: 300; - font-size: 16px; - margin: 0; - padding: 0; -} - -.App { - text-align: center; -} - -.App-logo { - animation: App-logo-spin infinite 20s linear; - height: 120px; -} - -.App-header { - background-color: #ddd; - height: 170px; - padding: 20px; - color: black; -} - -.App-title { - font-size: 1.5em; -} - -.App-intro { - font-size: large; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/lib/cli/test/snapshots/react_static/src/index.js b/lib/cli/test/snapshots/react_static/src/index.js deleted file mode 100644 index c43c07252a20..000000000000 --- a/lib/cli/test/snapshots/react_static/src/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom' - -// Your top level component -import App from './App' - -// Export your top level component as JSX (for static rendering) -export default App - -// Render your app -if (typeof document !== 'undefined') { - const renderMethod = module.hot ? ReactDOM.render : ReactDOM.hydrate || ReactDOM.render - const render = Comp => { - renderMethod(, document.getElementById('root')) - } - - // Render! - render(App) -} diff --git a/lib/cli/test/snapshots/react_static/src/logo.png b/lib/cli/test/snapshots/react_static/src/logo.png deleted file mode 100644 index 3d30eaad75d6d0db2d2c9478902dbc23023ed568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53334 zcmce7WmlWg)-6u(0L9%c6o&%E-HJn?NT9e&ad)>O#ak%u?(R-;_d;NNC>kH%c@TQmeu)5hv zx4cnJTbW#4Y;TQG{}&bPEY~Sq#Me0KA63V-cHCsYJ5d+4w3X^qctOOtL?mf`g1@s} zrv!gLQ|<(G=i00vqEXQ$*jNgPv|OjdXMVgPdcH%UO{j+m(pvTvh+TP+SDi)abJQ7>5h9{?`ssklvTbkh{hp z$Pf9U=Ontvw66j~jEig{&V85ZVunY%!LkRN**5o8^U7U@{2OGcSJe)&D!DwSt7Nj1 zzZ9(bou6?(X%5TR+Y`J{)H>e*B_|43)h=s`gJVKIQSGA8mem$65YL{M>|9Zt=ve!d zO>CSL-chBj8kWUwfa1Ct`R;}WS~yD9n-5RyHH6C>I%Pbd=0ZKBz<&&6nXo^Uf- z1!kencrTMl2Os$Edr`WlA)=8^uyv^(;Yo=n(Z6@*Hfj;z-T%f>@p?3_>_}jIU4?n? zJZ1GvXGpZDA;7?z%*hye=L8Pw5t49DW4=B`f6s0QV!i*CU%kZ?7ho?*YhPfUFo-Wk za}4OsLYGsG@0Fo2%Xf;y-q*A&80w;+W#xOZcswj@GCnf6_rDN>q=D~Fp zKl&%Ot_-w9n4cF#o}|1L%{X|mSEzr7mBAsYbz`j)WAZL!kn@^wara#a(!%QGOTW~r zeX5rUO+mq(>ez$`e6N-Ra7g5f)jek-efC|%B{YF`Pf4AzaYGZ@zCRu4G;YYVFc_vm z>jJc05$Lu`m)pe5W z6{66DgLy@JkM?3;>i3(H>)fbx18epnfj{%C-pTl84cgNSTU@_O?>h|JvB{>MGw6nl zLuKC2yu>5rM+By`%4k_oAzeEFO_ECjke(Vxtpq|6_KPI@*di;7g z;5oySn#*&<*<*BKGuz6;IrC``pgx0`H~61THCG*X3VU>cX6`EA9jF1d&2>h_qKYj6 zRBHH=IP8pWy#$^B)yrkI$ZD2n$035*<|0AjN7j@|Kb)wKzc0U^Jo{UA zB>E%v39pui>yE2*{N%iRhcpM?jfNm~wR5Ib>?|2Aek1Oi1F?tK-s&zvXi3S-ltie> z12Qpl`eU#Ur9E@pdUs)-eYxwi|#}_nUJ>abPBd%t75^nd5RL=Bn-PK-l{g?M_O4ucr7fZ>_PPsM|bdgr+Z88 zTY%pFV7snyz_7ZN4-?XNNS=0Y-|ETus60e{94!_Wth zwo6(&RzKF3V?*5%RT3`$ahpHOt3Pcjsil$E-eYz}kQE`5mu^^^9Z+z;E37H2z@Dh< zc#)DFzmULvFT{Wb|KM%8Y?Wei_tkqc%KaiKqg{X;e_~+8;L+HsG@j-cz7%t`z&VEX z!B$X`NGQO`$0vZNdZEvTyFh!@CNh%Vwf-G?1)t3OhV>vW8_v5d_D==& zC=SLK4mxj3ty#!^oa9@&6sZlLB+m#KbHqk_0G}$oX<54RV5NhzWHs z?|YMd_c3nqPAb7x$mOVJ(4U*4*{a?CHz;gq@GU1bVimHouI>B_caps9^u70J7kf(H z=@5&%DO~oq^hoKyC4xg>3u9H&W-uJ%7GaQpr}$cJ|9obCnM^M8j_>4SWk2kFI9mkx z!rpbIt_G-C3xxIEDuUTP?Xd7k#n#Vh##ZqVYDRWpEmguEO6T>op-p(uGeDqu(S%tE z<%#Pc4hYK-{R#}Mq}VlF8!=MY@DCY-5{>^b$X^RdZDkza*s%JLEmhM~_HQS9;5}ok z6ZrRW?uG_jJBL3-B-XQR0{9lpE9s=aXOXa5OxdEjf>YazcwhXNF+pho1Ths;J%^u9 zZmy7w=P=iJIekCV4mW?xwrWRIy)_7_lTU|S1YXgt_96SWPsAk5S5jR1gPupfeR3GK z5Zsh+e~l1g`|O=>6dAKbluBY|%k}N^S>qsct*;DWKSIn-@$<}hBWBHUc@=sx)8BYU?9d0k+=%D_n~nn+q-@~Oh%S)SU1T6iF;=?ZPl28-{F1e_MRj* zcKkj`|B&$);;kR~?xOsddi|)g6Y+e?SLl*~VNsxSY-QJg>{$o4E1=QZ3r?qY;A1$;ro=`@&O5Jsh+>2IWFJ$1O~xScO-|et=$k+X4um(9aNS@8t>PDp@%; zF;Ly}C$L>AwJ$7)P@GQ^$hW$}w}14R!%^XKD+6^;95RV@TJ06=pMF^-h7pE3r2E{5 zg}Yng!yaE|#Huar_3oRD_7knkdQ+1H4!JN-vFC;CUf6>Lf3QD6Ev9Tn+LiOHaWJVn;$qB z@*E`4gUz@=HEEph2U_{sCC#g%!V>Cr{gf?i84K?yQ=e2pYpWHRHA4S*8L@NnPunkM z4rwvVPg$Jhm(JGDaKX<8&Oc9wRh zR86h9Y3KZTxJyk_t@)x2r@`_{V2bE!Qjtj7Hug#h=Q9H6t#T^7)wyrR{5d1RQ0R@H z$QPPAILms)HTae!wmlBCm5M??Gh%*I&rm*>S3(#AQX6^U$sl5=hk93w z11=OY2ZsT;_~B81q=;o59J;GOqI`ZjK75wf017vpX@=)1p4$t=aqHwkA5^m7l;Z?h zYa~n>xPcK3A8I%!B-O@lNgHGAX`??Etr=`Z!N&UOaBA*Q()-Z)m(fmeP4TA8itbQZ zo)kZq|L~=!4+Yo55?enBD7>_eti({F_j9*d^)VR(;nq*&JHFl0sco=N_xv3j^U%dM z6=3UH>#tvi4{b}HnEva1+A|6{w+~Q{7(SWw>4TYPS}dY3RK7;g3wx+)+tDynZuQ!@ z8K~K^c#qEPLB$oeBuN@jKkJY!I*osJJ@781ngPwh`kCK+J!f`V1Ze1Iu7}(9Db?Co zx-flF#_A3rN8^L`=@15>5w$g;{9W{zGU9X*i=9r-ih}k5!{+Co52r_ zjuiR)nAN;caC6S%Js)$a=kk}+SloLMN!{-2&arxO@pl438SVCSRB^;(NUn}&!(4+hZ6ha3bM zCmF++n%$}1@}CKvdL7>Otq&$0OnsW6$tHcelRf819{NCAuPqXK^U#H}qU)hsGPoP; z5gxOiQ5ZCTx0;(39sWbij?r9})k9^Wp_&wigT|E?@_^cI$R~w*;fRP~j|!=Ae;dXv z?3q-X-`XS5H284TExS}%17yvJCM63eqegSr}#6Dao~38wWvJ?$7$I z7OjY1O(fx_OtCCrbUu`6KzlVedauCd(4M0+2LP)3Xx0S%gikqc99f;n1r4vG7St{&?VYC;?XenSf#W$EOfeJg66p5mu6OA!3YSueBM}}1<$^8q z)<6=AtZ(i)NK6Pa-+cKA1#c#(d{f%+-$-8n43DPBy+5*?0aP{6y`=WAT9uu4c=lk?&(Me=?g(0N^i$ zZtJhkWbvk0uP?r?ZeittqlOBpD};iFM1t;-^UF+Dm*{`ly)E_ZF3TyezkD*uefq)J zpkMhLn{q1pUh%9u_yp-*qB?rx=z3%9K^Nb&)`Zv}w+&m<-iWPPnJRAY2PJw12{}f} zEpLV&77d(#_qkYSxQaQYM9^#aDh_%7cSM{YR*`jTUAgAOR()G)(Qhum@X$?A6QnLEqbCLObn#7)>pSvS?Jov?!S>mUP{94CN{_=W-*7lo`w3W`r%hnK0Fg|?(MxOh&y8n_b7r;* zu-SWT-&SFAqqd;D#pEAS|GtqI3*~il&6SN5THsqIx^);b+#Gk-i)zwZcN9~I9E6Dn znL}3P#>BGnjVMoz)6`n#cofaOIyKu_W7V?hPBp8a$)D-WR;o&ct}mUx^RUq<1z~fO z$K>yQ0aANAJ3n|iveZYM#i&Ij&u6_wLA#d3X`cNxw|vCwN;YTr=qahCwWQZ=-sH@S zVcbFKMmQ}VYkD)cs?x55mpw>Y0pmO85)V7nQoxVYkWV-|nAn3I(g8&JOSz{@P41O2 zXqi$UawsK;7t^Qc#H#v@N8SUax8nl9=XWqQR$vW16|_=FSzzS{P!DRipp^YhsKJribL##AfvJ^ooO7*wyRgBV*?e!b;gn0B2s^!znbwlOLL-K#U7{X(Nq&jbf zAy@Pr72%}3^h%&RjJzl+h^Mn61{;v1?fp3aVJW%2`qLHX_m!_>F%vBjJ1?T%A*lnq z9b%0E__8|n2(^-|e78OpItW9vEG&0i@bs*Xben7QJBrFZdhskO=PWaE8RroWGK zFPx*i$HWV{q8@@NROE9F)vl`5pQe`8HJ*LEUx?RbTt9HV<1dK!NO+RmFXT%c4u8mD zV~bedfFr}nFGpT>3tFX~W+F$%I{bb>{qB@omt&}=ba1nyf4W2BrzQ*6LnDD}DC$9vNsmkZnE zz>gx;(bIfL&$?-xtm+StncA;4;rl&_sUMC);pE?TUJ=)QEk3XyUtd^or(445Nk(== zji&lMm2+Bse~DWzw2`LY{1NIX!A`gsQ=(Vlq#UU~!^vOXZETEbTF3(l%?7;95;}?C212wt;S5nGkMH4B3hV)Ml$S>Bjko~D%O|AGdeX60V!u6&q~+}e$bBY(9RJ0>>qfgfga;rl^_c(Qv< zi64wRak9t~_125kcS8ogQ0?khcS_Lswt4NoPhBId<6mGzMk#&hoMZUSA?OG*(ITNf zIJR=;a#?G}NyPVs-ds=ABw=ZqsM|zoe|h?4skWR&L{YWpuzrrHXUq*DRX@$NihP6o z_e}2<-e9DR8Q_!o{YpELOL6yLnB3(xT>+)sc3A z1+T~V)<-Y@PEvt(=go01Owq;&i0`@-ahqxvwfHS7`+pZ*v}m=z>(B6^Ta0_avA7#G z@#dtHZvKY^>4-(%c!sKrfKqpvV%u?9LwfVYE{n6GMMcw$1&wDa-G^INj-hhNqac=G zoF%1BAI-&HFlGv>zt(@R+Vz?9J=Ppl9ae@7$$((9>q>|0)eg5W~ma8+{ zODABXJHFmrJTwf=9m{aip9ixW&M*+I@y*J>RY`HwN-F^-F_*yu;=mu3>m_~^Ot6Dp zt}h#UAq|-IDO$qCU#{4U@3HW0-En}WBtIrGYn;QF1YVLkYN4~R9E)pRP@4nn3GN*j zjr&(8wyqUO5^@(AhVVAUJ&NRuE#ZVG07w|^A3a7UG;DpDof7!&B%dgDJUR3Eq+ZvA zdU_4^!@_;M@IVxa5+q1T$i-(`M0cT;nq&a@!?zrzm*k5^EpsW#jD*51!!dXn>^zkT)%T8${S}tYdV!vB zZ1}yKdG*&xNjciE^f}|t@BJ5U z({o%5O&?On^j!kh3tnn1x3>^ZJM#4nI$jF6d@jDTn3Sdj?17#GwGN!TNNl-BPgWW@ zOT`1h&8}X>&-i7abKgElf-_4S37WtBN&WUVo8Th1Ktk-Q>DOo>^IAB>mC4afQ#DZU!Y)ofi z+No=@xJRUWq9ghF0{WlIdpi#W6c&Hzv8#@x2<4HWSI%3E+-91Fz6*!9p6lcuh5o)W zx^-n_e)Id{+%vniTVbeKOzzt&cAZn|q=cA7<)x3C?8d{9$%emF%UiF#O`@Gg<)e4t z%tORoD)uv#k%IK?Q`&w$uyVix1SZ{cCe}M~*D5RvoK<0NGNehNrpFsCBvJQ7_)9p8 zD0^I|7+@j8pFlV2E+C2c)gXVPK8i)&taU5MlF$O{E@LE9Vn!q$S@W!ltkvSrekj}% zQxzD3rAd*-+l6&SRjJMhaDTQ7-eL>qfqkNRjhTg*hJCCjLfnyw6u{y&U3f|Dco$}^ zDv+P)$bE#;Re=T;zDa2@tOi+L)#B-uOdnGv5%>;cQs~+GnD})WLd1fVuzpqq3xP6P znetOfzn`o?L^4_efg8av_5i^SU436`s+sTC@mM~##?nkhi*!9(5(9eEGrn%9yC{&s zN!=>OtsBs!Yw*|dgi83e9qPAxl^b1AwmFuw zRQ-_?vm0O-q!8DQJ6O7WYWml>cfMgJ`+Wp(La8`+Qor4LX)I~oUK*vyCGaAnWsKR? zeEr)LfiA;swQGX%A{Dcydk%8aLY8-Vip^@|9ss`Ohue-}_2s*MTodK;@Y!z@E#o1~ z2QG*(Yav%|e_OO-#7j6+M(SO>gn)q)||omD>%q<&L1 zSh&31>l5os(ojw!7|>47vE(4@s?EX6ZakLF^Wk@u&xtt;} zosOTo$W_ExCL`6@Ykqf-*t(0UbI<(+PU;7lwZ*W|FjEtGJ-&niQ~?Thf~P&1E?^N! zap#C0L0?JvBmWaD@cw+79_cW@Ww#V)p4a|FekH9HRJdVS-Y6WseOn*~vzOLhwCB3e zr98@0{0B0lUy{x62>2?!h}p)L%0kgy?O#dRB z^>=gq^QYhwr!f9B1_ln^Aadv-3T8hCLOp~v2)R78WGJxL&-a~2HPgUu&-@_baUJIe zBsrFaC#UV*v5Qg)4EGpCGic8I-C9Adgc${xtDXDv#y&pTk+-n~XfcTzF^E9+AoS@u zFVc3*0aKPqS^)A7zryO4`~)2XByFCwCW=+em}Gf;xO#y~Mk%TIwWoo59neGes69B|uGNPO$Pj2NjrXsKE@nj7lXK zmLq1w&nNrW5);9tg#B+C)mHsPs!-F~Io=ff2`8!zds(j3lq*>eKp@lLGc}VK4vt~0 zI*10nPT$<#i<@`yP z^i(VMh2A%6Bw}$vgVM@DgY!nVrA)@f+#Z(Z(?QBTO4qG_riXC#D8Idaoxh9dzxoyO z^hTFckMHi0W-Jj;B%NvGB${_kN8zkuo>-J#!r*WTW0pP(9XD6o{#=fB+C6|Ju>qM6YB$|-X^$q$F zw~WI<#*z6tA-Uw_?%BH-px&)A5D6n5*V#AQ?1e+}piDP~)>gjVvfxfk_rA&7$RKqR z|E~VzsEzia?KrPTlKJc-@L&dsP}YxR%P8RJy#K%UWhVhxYOlFUz15zklhRh)DHv1d zAk*}dEpjiJ303T}o{v3O+2>jUJ|691BW6%Qbk|F{_d(ebEt~HP8@fd!aphcw)IFpu z2E(LE@kT-?MPcWl>MU730TAagGKLST@g^fDw*z<%ES7#MaBepJB*RFZ*7If62p6UP zZd7uFAA32S(}*eZYy7eIqn}prt#( z57Yv;bT4Mj8yGYij^b<_Az#(DU zn{PcAJtP&PLflodOh=>5rUoishDFb4z?UL(4nFBTqyO6>VfYWm)r-KxD854yF$}#giF`X@HL7*G;^u=sg-rp=Te~(N z7;Ue4DTvyPlmFhFpuu|wD325jX)?}h)`$ANi|=tU)*d=ju8-P7Gt&LH)AxrNt2a9> zn7S9~2<0;kRON)?MgX4x3b@7<<1bdP9ty7Bj^QO+K_kIHyAL}jV&z!Ciz{cEWY~nH zWor*JsTn5?fz7pf?l%*DM-|L-x}iUI1x%|AZIFC~nDoFJi6hjHx+<0@>gsg{m-Xey z0V5BPQDJ%6uC({6#}CyGh3mxEi=8-=t0@}512en!^zTMmJ5qZZ>iNTZg9P+k;k~5m zOI+)`M-vLna;GR#zADtv;$xx#2e**QA3CO^hZiIp6HexE(A~XMs+(K_wY^ehNFEGG ziQC&rS94TqdSI^hVQo)-v55KlSuGObF_&UcYV(##QO#a z&B>{z)yz3__O9uW4?N@-2n;0ZYsm@j|2t1I`#==|SBiut`j#sfjUxQv`D#F!Pb%NFjJ z=8#LzraDt_e#+oQPWQsA-YN(-3@TA}$QY!Xd=}nC1GP7!lnXjz_ns(Tz@{>OH7QXS zAqzk4=70<~$eXa4exeyQ>A(U{YQp^N&;^0s5VU<_1M9cCiC8bKZIZgz)%jG#NF>5| zi*Up+Gy|!c%?}9cQr=a>pi~lVJ=!HXE;GLq=^PpiCU=O4h+!2cGL4x~4QW5%I<%x+#?(E9xCfx2MKn?_T2 zYX@Tn6=&mo!&eV<+0t?J!Hc2?%J&991g9&XdlnUAo^jFtj8l9F^YRB-j%$8fT)h(N zLYzAZ4z5i;7|W?Wz$9iJGM}Y*yki8*Q8f-9R2W9R9{kYWwSJ|Txzh?>B7hODP4`p^ zu1zB*p0%Ox^XUjNqDJ})J)Z+;%$)hmqCFJ%0`MhGKX3`-AJ_HSUN?^^lS&4jM}bi4 z0W?*8pgv{G%a;a`qo@!tI}M9aDM5N&WRFVm0sn2_ zHztS@aq+V+F&b+kwMaU87v|4=3(WYN6WEczPb%jLH0h#qxBHjL2z5DDQs(^xWaV%X zocK?AV93nK)%6C9n=U~}Nik!6o!uDF=E-*SFf-42dBSb`CgGmb++xs0P zjEXRg`(~RDxv9kWA_}gVCzVFDI}bN2PG%1uxj9570X?pmMDeirLd((~8tB#Y%gWKr zdKCO|kFPx#!WMxXK4z$CO;z6HDw|O^kq40L1l9bzzF2E&yvWO9w?K_g`u`Z< zyp5lnWKGX%K$#s?PtCzsma}fyOJ5;93zk2kOlN0l>dg^VPWSbsfnw86v-F0;6aix zn{F3Of@K((-KlK6YuJ2w`6vMgGVLUIG7qEc4@ex^Vm=&6WWFHlviMz$$LCq8b-Z=H9!Ln1@IJ@DVQCX0Krm=OkJDI5@jTUgizB zJ)-0~4mj~VAAwt5+)N0>O`HVZBx+4y`iqamE& z#-MQ|;pB3kh4w$H6RhFJo>&-=X`zOO+B8>sUTUz9ojT?2%xr{`G=>O zDAZdL$R~_ib)u~7gLr^ITOK;$i5V2;CbR#d`Cm@i7i>}{xdEG!enR)t^UeKh1Pafd zs$RObv#XS!C`cN5mEi8msn_xIGK)m;>=1b2NO9k5tW_OvhZ6;WU=yIE)y)u>KroIy z_#PyW39N+sFjS0n}Pqyjy_2fn`^*FMeDV)16)}$+a#i<)xb3EB+eHLAb&x_ z(H4!{72?8AlQ&v8%SqH!Bo=vaM#6pPBxA)>)JP?55?_%eAh6_3tOa-GN_=y!bGwe? zrZepf6OP@#p~3Pmo&Z zFc44KMXNFm1q76=p$#i3>4LA`_ftGPSEt-H#~!%DP`YlY=(u)`1|9L2C@#0>6? z2Zl@-n1l%>(%(Cx`Rlxfo+8%~k61V@+GJSP{~2}SJ$=mT;rMYUx48v2|d~ zL``eLVao8KXRrlG!u==o;73;@D{KVTJUoxlPLHMq&)Z-gYcly?w0+h7H2zsCWAr}H zhn4HRyEX%%$uJ$Gy=SQ^ZmU0VH#Ms$fe}f(_(*&asQsfk_SLBY;a<%FZnnsWh^7r0 z)_YFkoT()%KQj%JNVjBlSjvcWEGVK)qb}Pqb8CXtZS$Ep(uVwOP1jw0;v_{d*eob* zmXM_vE#@s-zYQERM}C%s160EM90G2$2QBIJctan{r!W_In}6fy|Ht-0Mbb3xNp&`s z&v$!4Do5FKAM1D*cIXl0_H%uzdiztOAlEr6O^IY2mS-BY;tqpQUmKOBquvRNJ+Ya1kUAyXv-kAT}5tUsh^=4}VO5 zcipcBHvWrryHz{#e2~aCdDF^$zlL|_kGoPPh?t?L#SWOV+WBx9PH;6`8sLcP+Q`I7j`I3>+9>H2$B*_d4@^N}zPZ!7MEw6mK3E?x#p% z8M#S?J2f}hcwPjXmp8QY&Yb(;@4a;4>Co);^rvSGZtLv^2oFyQt9`q59Ba8yx*m;@ zICYc=0Q5&R&1lN51)-H=p`Tchdg}K0Q13so-N#q5iA_~H~hT2@J_7wb6&*o z+6h2i9j(#`qhhAW$2It|yvASp&)ky@EDi%*ikpCeJ1(JxbyH=ZuQ&+I6(OqhX^r>N zivsuhs9w~QB;}S)s>rjL_vL)xp}YKjOt9b~&pPhNjj~nH`&ivRxxE0@{g?4!KBj4J zrE)iB8n~(>Bg!N`PFz~dxCEw})4jOKWJd;Rfq&jF_8W`pl9h%dPU};CKt(za8W*w{ z-?@RQGlrHF6J)~_9@Fwg*$kPJuBIYHqKP`9 z#Ys_&NF|0(;vjU1kx`YwlG&GWPw|k4sDmK$XDF6tNAUk9II(ToAx%`}*-3?0NyjzY zzULe?ZLQ){Yv!rxrC1v6S&`7sdDo~%SP-6dF%23jKVf)&ftov|(DHL7y!Wky#^W z$tb9;vO+non>mOf)V({IxS=<>h8uYr)u60q5U~v>z)QOQtflz(x~5^S4>3}jyCu_S z10s&6Go|`nSZuD;pNC;NKgc8tr3eQNV~$hgR`P~^NX{F*5hp)9_(3){o5tu5Z4|P< zL+_*4JlgVi1ju{}!w|G?{>7N#lz>%JZSSSoWyT_n)b2`rTOSAc>fAB%B5BpQ_VH0T zo>m$;RJU375A)e($YVK}(%U>o*YeLmVK6%MsXinTCf0s%qfan~r#1;EdMBhE3?~IU zw=de=72`jBJ-{K8g8E$X*>Ht_zEUWKdN6)QlK<>m{%7=7N4}J)t=b$cu^FZJZ9KM7@%!+U_rXEMW z);OyswI(d4LDULRTelj5de2p3dU z(ISi0rnbzl=F_|5YLd=gMahn3{2NvgKbw4vxIw;|7mhDi6sc5dR>r8HvOC1^b{w?F z_th1Y&#&~WepG(X9rJ@^!H|{aeT4_#o6I#;#aN$rqXxfLRbFMh?70-3f`t2J&XuX~ z3FrAfHRt9MKY^W;;vaZzm~>%b;c%ea{9-9CECV{SzV*%OzI;S2^$y)@(j@1k3>ztY zaB)sr@ClgfH2Wa-1tukMM7TLV&)qQd!k^)Tiv=|YLFfj=ubA;TSHQVZ zmzAy5p$m1Ddy?2>T4{JbtwnTt%w0~Z>`x?=Y#=CcI9DVyqMDO_tQ+q8G1 zxN=u-caeJ5S$p##a3E7aksNX~Sb8^+oI^Q_FD1`#vnhGOcY{sS5Sp2I{s6s?-84h> zLy@baRr=%i>e0n@>iC{i!EtKc=UlLR$c$=44ZB?XI!b<0r4jF!cG2YpKScna3E5|D z7J6qhdx8-4L~ZtrKZ`DOX*ds4wC-b9-}2Fy6s?+X?nUD4yjp2LPD)p$t@Kf88VXn8 z^e&6&#bAc#5yu+PNY?xkh{T+{sIlUEOH{zGukdFtQ+{@70XTg-SHijJb{S_KzjgA%Q-As{RUDelL#-_S2(F0bPt-fPc6O+EWdr> zBoeB^J`~Q%TWSdNc#|i8NNP4Jarx-k_|wEh>WN+?^{xO-KGk0`%$ivr z>7FjFf7Y4L8s)ok8FB1vv%gxNPshtW)$A2t->0I)rLa19NuEHz0+BO9`HYvXgJI^* zpq@uI6x*6;9FTjnLPxZ^)qDFQM_+Zx)L9+RuPBmkJKeHKwj!&jxPIXdQ0K<7n4sRs zFYM6o1kX=#p>9QV-+z-X_! z>eu3(SCdM}yyJtw`ZVD`MzmnZ^!RRT%gqcWh=_JOgfrc4v`1po8 z{nxu1jW7`=-^4lZDuO0DxgTR6AW#AhqmF3R2=k;PCVMMU{${m%I11z)e_A6)lTY)R zF_GXL1%i;?kw80{;t2J9!WZ|xcIlE_>h(ZWLBpL)$3f`ILu;Q(JoOvo*4@DvqH3-0 zE?S(5s*%*-2HZ_+p+7X^NhiT7>hguSE1dOK@Z7|hvTbiQM|dBy#=>6fjvnsQ<2%&l z9-fmSa5L1NC?Ow1W2aC7+HaDyz4WC(BUJb=K+Ol$Ob5;RZ>+%vxU484CdhJ(A8BY` zKQzBVyZYYOn8sP;JJ4ce?W4QemDUa01BcNJ{WG&h&=}gqaFbHrSbRVm`*Z1KC3o1X zKXKVaK{TvT4{6NAYsSzRf7s6!mj8ZinRV}|ZMsC>;iwJm7U-3i`#e1^NNmt+>Qs1~ z>}y(vmuzqAxu?p$L}erFQn5dxCtuRMJA!mW)JvYoUvEh*J856T9nuRJ)pDdsSQKQ%vgyN8o!+IaAPi zwU6#F7Np+Cuxg9(;=80X6gZ*4Aj;UG>(TlS1Ia68avjWcWg*|!0sVfp)U|vhvzX~1EINqD% zma_EkbjVn@Xtm0PD9(47M|9d_t(^p&5M$UDsz|-WDeeEF4cKJGNTO!8-E=dj= zZ4U%vd|AOfNqIi`hp~6wu`U*dWt-jso#;zxXY9unfsnW-`rttTBYWrX+Ul^@Fp{vJ zh?3!65i#F|RgRi}334sHsur%*Y<0Q08PgMsf35M|9*oh|FGPSGBF^emW0N$E$$5O6YZB5car@}XpX#ZW$mwQ|urL#odYng&u7N*rnkub6Vb{j+1 zE%#V*)B+3Ze-!&r6Yk5}YufTM*0dI)m&o4PTzI2Tx$9A+Cz)&3juoI>ZUdj>mk#Sj z27EnyWTX>!l|Km$g4rg5FPL_i%ha=c+JaIg*5b_Nb4GmO@U&s90~aS2r8K{dW7BXP zGU0bfe<^A+6u{`yeBp>Thc0V-IN;uSZ~ky!pbUrKK?l61uRs5&^6|~PMV-gL6ROn^ zXCJkPk0#^d=~OzuT|+IzKh9P3gs_-&SZ&%-QD9%qn2jPR)2>>tm!waK zmZ+ipih=ME`JqSJp1_?d({0xegQ8XCfkj}hGlD7Ad0WtCeqCw4sB&##vOHH4mCvvs zmeiPJI98o-!|Gm{o*-!#k4ZmP1mI_Q<}4%a)0f&@e*3YBwSq!eA3hOO1vzu^`Dq*z zp`cacqFj@YldQkS@KuW35hI|Dp<@nId{w+q>`mDFb32lf5j=>=s3TUEWp~dwUFO32 z@ncnXY9>O8(qzkB`7Fcv1{(b`DjBK0T~Q(#+B)O&o8a61ow%`g+jjfxEy`iG{RiyF zWvJgYhCdh-#I{t&_RE#R#}}jE&9GYDpMMFFdC*wbh2l#$sgkQAl}k*v9vL+{ueqyK zxtHjqRNj~dFTDMn-qFk|8TwXP>b(5U`L!>Sxl3@woS{-@3l|IV$ELn=Lpp>2Hyzwt z&A^9t7>C*`QHU<@h0ajh!l+y09t45@Cf62w(v9yO?4&cr)j2r)$ zh>xeeR&;&Y8BW10q<3dxb){szaOqZDy{2z~vsmYe#bMTjWOM^1#5)+30?8#-A{Rdc zvZj8UESj9r_C{;f{6vvlpf$Mog7VviR{#9(IE^=BtWJnwsW*`IL5R@rqmvpfiB)Or zjtcDHa<$fYzeVGfGxzSY^trnN2+l;Z*oWKE8ArVsz~Za)?mrbGi({4TmsHi*u7;ED zU;^RuYBU*Kd>=&Y{?bltnAW!iy`{RUeJjAsXuwEo?@Ct zx&KCySznb&J4~_$6a=(t6|Lu|!LK+(SI|)^$iF>6C7Yj2cwdQ~Uc=1!J(T(p!&&uq zue3j3!b`l0KB>Ic=JIH6USztX;3oRZu^lV;bo-ot_W^kK9buK|N7WV4F=#2Q=~6Bu z-b38&EL0RpDukWVeQkGe06h}O7Rvrn@`Y#y>%o+ewKkfTd+51i^dN%-x8ml>)>ghD z(hPn_Ux}cSEXs=JhUk&v(76jd2W-e@MbEP0YVB*-uKl#oJe^ZY>2=h28Hde?yaul5 z9YdleCU04A=@2xzErZKrYTb7^0&aY1+8w5E-{F3+~?G;=q)VM-0( zXV4q;CHaT4e+3!iYqsNK#$f~5QSd>sH{;h{v`og$6ah#`nI_9FG+GsPR`^p42DUW9be1ZWoe-RQDdkZALLir~HJ829b*>V3no_S(OFtl(8JdO|9rS9#uGeJ01r z@ffg?Q;gpITc1I^6#{`Xm>h#M=-qXP0IRph_CRt|vm##UZn9C@R|wToo~l+mEcg}V z_!T9bLK{3s_G8uUH|KH-Xqst>5sOx{&#~%=CKuGpn>61pxKMB&g@hWsrp%Ay?iblA zN{Zsqbk0{p(-J+12z$picj4(VB%W_v{U)wn)ly69(NKC8Dwtb>2j$87`4oOy3Ef64 z#|tp<5ky9(>Y@*@&NAK{{IqSy5c+pBiv|-g=pWr-S9f!n^FBgGi{GAO!L*l(@bBqsfZ1SA_17YYDeqg z{5ZCNqUR!G*WyQ~>qV=u+Ku}-ne!D~5Zie-96~V5fyRcaCatGq>)D8PnmpyF#gSYj zL`eN?RlTRoXPt%fl&&;7ReBdbB5gKbg}%|GFA;&u8$LtIye4#J!KnAWOkOpa_8M?c>Q@W&v?s5=G>4pL66c7PXq)Tc9q`Q%L z&-44gAK(jXG51>M?0sMRiap>#abFI^>J_!~{wd#8S}dB(7r57~6JV<>{~QasWw1tC zS&Ey-*t&w69#>BO%}yRY>$dA|@;YdnJ+V`PQvhobp4dZ%rmYCEskjh=%O2;yB=W_8 zse&`wF(YJ;L8n!=gSA51O;Lj{2LG8exImvwj1#dw5?czs7+CJG&s%=67HDefBjk5` zte7`j@|)H`k%i|IwSOqDU%b{{UjmciXZ|nbVDR$0KY{kMw=QVv-X88t8E5~{x>LA* zw*hU%C>)}gW{3Iovoqi=k1qiiCgKs&rc`JyY8D36M84N(ZCR~>d|4lMsa87sJ1k$G zURA={%S9ToH7)LkG^02e4qmp0ATs!)m>Q#rYjsKMZCl)|7YR4EfC(mSEe}&J4fhZ% z((-W>_PeSf^i(;fOTVh~yPY$mu@Kd&UyIA#00srwK7RqS^uw=ZWYYTguUg;CGCXra zWj0(4u=L;*M3IO-znLG$4L3Zxw=+{5>&Ek>&8iu-1^Qz2=B=QP5awrF; zNn$@Ht{86|_b2pLfVxnPO~s{yQQUc~lM9?4nvN@8G?k+Q_={ny#v7Ed7!&TWh<_NY zsY}%r3^4*_V&Np7cRV+Lw1UEtu;=#!q_jM>hhHs=EoY#Xkk-4@hwY&HF*~Juz+sD_&3{Jdp4XZcrq)AnQEu|8PMxx>DY^n4zqsJDQ|3sQQs1 zXHb(^V==3Owbrb^dSyziuI_hqJ|w>NaBXDnOgB3-W7js)C&U*`2+4T=bHwE}f{MY% zaHU)2F}nG}N))L?|K-grlCb_1`$5U^AsO<*7ZH!T<(>SG`v`J_S}Xe(p{2@vBz0~w zTkHv&4!@NPHEm8Zau{$!O9jYc2T!@>+j3 zINA;hZ1<~ExwTuTsSRe`DYl)}Tgte4O4(xt!*GZQ6l~5vU@DY5Jx~+D1N=n8F-Yog z*^Qh*t_X0N*1v{S(A?F2VB*)#!@dzzFW>tVvEOsK6=*KZJy(*g_+yk$r_d+rs;I-&LASH>q(p9Xw98*HI4QU6I_{?wD4h83w( zie$~jr1*JSTdxyb+{FkhL?i(fb3K;(u}X+Qjj@P9=U6eofE|NS*>>CL+cB3?z<&mE zl%Cd7|LLBU5f&V>Sqq?6&lj0_RHph!*AU+57CPM;=-V`}X2Yj}sjYZDJFsj| zrxbPz(j&2K`Z@~?bx@t(#yl^Ej5miw=u> z99)Wsy;0Npz~upvq+cBznojxrcS4 zw1t1P{+Z*?SU6roUOxu%KY?~!97iuz_=n#uMMvMKta*JBNH~sYI1QZ`_GZwxjl7=8 zC7et$t;&Y9iXLKyzr~VSkN6px4WJC{D^w9yQ%kWtO3FRs4zzmxF!CEM8{T(dFo9df zx8RAt@xzoSZ^kEwIw=zm(MqyALKYX?4PSbQpVJh4 z=t9{lEvq##xl9XvlirLOq!Xir&p?6Hjw@ab8J(o<>FWCR8|%(c_4f4;52IF%ZUkE? z1~tKw`l9UoAXkUC(~vYYBlbEb>puLm5(bhCyU=i|CJFxlJ7Y9SsC2-6r*QG$SyUp~ zL!HJamGKk;sYkw&R$Jjk@t)@6(AL8?jJfrmzY)9?tjW5eDqq%$lOq^~#OS8=? z*QSeqel(LyhrbQn@S~!UM#FXg=830?9^8fFxj|-KagDp&6Bx&}^%jcU(o4|VE2Uqw zZ+uyBM?{ot%ZW()97C?xI*74DSZ?%FHu4Lxg>Cu4bFvkZT62z-Um_Z+FT^QM#z)Wl z8b{j|O|9_jqkTnsj7s4hKh91I|sKBwi+? zz2_qpL~Wt$pe!9Pu3#!<<;q8nSwVs~$`eOsn>A1;rniT}(EOdE zrnt7f?!=)iI^AS_MHZ|32Cv(SV5i~MrLrf1pE1Wvb>o?L?H7|}kx}k!8=h%bO@2nf z{&&AtS52b4UZnx_i@sQ%kXD!gnkV!RIh4%1v7sQLpKx`!0!MH=+v+j&m^i7DDNKk`N5(tU7Q;_0Ymv zkfphr7vH)_09h;E2s-x;EV5V5D_Z45MjGu{RnTJ6yTI?Lz~wRfM`>colija|Ak)Y4 zFd69v>AJqHTi^FUbr;e_uSkb!iP}s{%l<8KKRk2J;Qu!{`&nY;nLndC+_d2&hD(s9 z^q<2ktc}Q=gE^~kmO}*&42vEHrjo=O;o12bj85!YiE`OG=_(|3it;@s0%=Xj7JW>s zs$KN=BzSpyqtv3eqEa9nwuOiS+2@WA)5@Yc1xk`8hEkU;%Y@7(ojGDmC8UL1VZl)? zDmb2@T921K#>itROZylE)hPHd^s~LV{dIUOT@ex0=b!Q}{3(42#N{IvVdjriWaNr* zTkL^H8Q2EhRGbqGYMw+;E37*Hn`VH<$z@g2?Lcv9_~PrkZomnh{jbz3^-^|{ViCj#RIr>}!uK4U4w z?_OGJ5YjvG(x!l3aK^*cQuRWJvXXrIeuF)UYma_0@3v2hN&MM+Cp=kYwpgso# zW_>;N@$Axkw8zZ=h*DkSxCXt@-FIE26rIo!Qj?fy}x=( z!rorrMQR^dWGt9!0Ck1|I`)u;lMQ7?rjy_i)%%v9y^|zsTpv#zXXK)%#v+f#B4w6o zxqMU)aTs$!gnzI?>ZCVTgHzm(Cs_E#96X|S8nEG!Ki+zLwULnuRc9jUqpJB4$`vY? z*oGWH?w0W;al$$zEan)XhQi7FU$Yf+2#lmK@=twA{ggOgpC(0c5V1RJeN9zAI&0=z zUz|9fPkpS7G5f1Bp@&aiOaX(bvVXQ)v? zj0?t{x3G4|198;80-%3t-Asr<>X!zZ0Yofl;rlOHYN;Ah^~3=TYKHZklpCIv8!^Y|Q&8zu^(tq~lE`t^ac4=dUiUdA#au=$HKT@`$neM(NbzZ%$Du{4RB6E+H_C~9swmCQ290CqzhY5L&$TEf zMLtJQ12-!C=o2`d3KsrJDal$q9sRafTGubhaIG;+(t-OBJefNLV)}FhKF{J_*$ZPC*E5DTz87BQk`OP$}*&vZ!ACPT( zNs5GzW#Ud#!9A^!-5WerYC^6S{3K%o6z}rYb@Fd3-=Z$p3czDF(BZ9`=g|redD+-6 z7|e&YJ8 zUCy@B;`I|@cLLNwzD?&z(C0bSUyTzT-lXm^9`sOwxE6;=PfFHQ!_ZQy&t``3SYK->S`s>F7J;YlBuh)8n57JWsKdJK?4 z#AL|&A7p$5@N0Dy%xeCdW1lh{XBAD`A-_~ek`9l+B}^4D@Zi;u{XrN(Rqrn`sVX+> zb9kjBZRo0Z4oB4(Dc14xFUK~A!@_8CsH=OyS8wgbD1TTdrDJ7J(3wR`k<{w-*TWmj_Q&cqP$C~@s3S=nH_|71!XZ3FD0z%Eddao^2($gnnH^wv)@s zGK*Gm9hxSXy<1o-e-d#KdJ?k!F`>2BoEj~3AXN3~`%02ni?MTxQN`ANXl~CNAB5n* z-Bn6RjY(ON=`n|q8r;f&b7cRq=WPwUvpf!;!A@+_^QxzGJ+80Be;tY! z8bh02`#QIg>396qb5h^fV3-Yfn>aN;#CT&ul5pU+dsZ!tD?G=_xHXIP&p0Mp=T0l> zh%HOzbDWvs_}PwZDXBk0VuBr_Fd>8$XZ@p9s7(?!A7;fS7u3J{bWFb`-~{6uW4T^YJyV@Q3a+F5f95v<-4ffep^n0VS86DN3ki!8MSbg z_P?tHll;uhLMBIh3KcIuS{)e>a3Ya%n%;)fQ+#{!D`KUHiN73^JB*Yc3@7$^m^u1F zX~E5v+h)!7j=(KB69br}1&!+lma$r9IEl{g*`RyU?_qu-m8Snkdq6%=mSY)Q5&jyy zic2ktz$7z-H^T#Vm3Psmy=U2o1BA8ocd`9AfL_!Q^xLB~An-WFZy%a>tZymd$a3dI zG*xnKPv9<0q{=8}pZnt4TW8B<+MZ($qpS7fm?&iIPm;h@;EyuM?MbmcWhXb)3d2hM zOQY;`>i?vb=v|PtHKVLN-QJhpc%^v?6tqL~gw`k) ztw&DS?iE6%lC186Q@LK3KXn^>%bzv{UAgx6eGyqb;!xD>t@x(%d&WluiU$a8IE?Uy%SiI7FKQFv*)yEa``)jrGu|eD7PNY0=N8M$YEehO%nZ;)E;%FG6{dkF**#0NY3-5SlQ&MwZ@jNP z(UXc!BRd3J@n|#7or}LT5a&4Ll#O%u8ur z#afy4@7qgy1O+00{u6!kYo5*X&Mw{)6hFY*B zF|Ah7j-1gB&=!iE#Gi_u)GURd$nR(43=WuW8g4>WZ(UVgGt+_7i*#bkar?o&O6>Dr1yU5{Q^0S;Mz*#TxeWaGsf|1WYhbHo@Mjb2AJ6Z zhGe(*5^`h`uw6s|)qlIi?uLb4Xy7e&wejqr^_H!eDM4Rsp!vUHt-9wc6<-qw3uqwA zxnj7L4}F*^^L(XIN*`bI^st{!-M>{W^UGlj!KkYnC1p44+76s@CwL{tv}ZOVH%iNF zP@n+sfQV?*C&qqa#wcG3MGi(|2n=EvC6zyoQEB!){$rLd3!NgJ60|5|Vd;pJ3qVuX z9mwD)pvClth)~O?TOl!9THqxxN(AK&7GV!b&t!0^!Bt>Z<-;e0T{xCkzV>vo!uX9i z&ap|1yuFhjQW|6x;`VcQ&JcGYe8KfzHKCIs#+=K z))xK1N^dg2E)ji$0#atp4YS8uiVsnU#NNpBbFgj(_!!pr=e^00WB)-Zs@w|bJ@0;v zJ})!F7Rv84g4(JAEg80_8htW-PF<#73Z3h|?^uk=rT^=*(rp_^BdQ-`b-Hg?a2oX5 zwL!ng7^pho0h8`S$)lt!FImmKOszgGCjk(`DNjLz!Ni zR;9lbG3ijiu_%$;XARY-0C7yZeIMc2JkN{fZVFJa4M3+gZO3TQ$lm-l(#zx<$-`TD z^S5w_I$VXfi&*8~@ZLTF3nk}>6loS7ogo@biF-@u_nAUK0I;%xLYkb((7FZ9h76w< z+?k>UtVaW?h(V94Pd~n2rp>Z(nME+)`{`w1SnKkoR|tlz>%^%3?RxOPD7^h2e>wPG zVFvh{nI8EJgKBx{Oj{f-u00r8@R)po&64LPN6|O7zt31cqAivWOd5zLT-a7F7!s?< zo=&LVgdiG0pWEKLz=4dJ-S@xuSg-l|Fb0si++wr*E%3iTq~4%^e_}Qn2I%UTUQ`qB z5Mo|;CmLZ5O4*v_JHx6t%XjMTi^NRy1Q7>SSe-@Pqo2m+gg$4~~k7%yoajLS%=MG}J}xjid{5A#EIKOcds5<^Ki+J}V;e zKWMjH*L2d2!i17an~&+g$pB6fyT*2QK|HcnZ*_!}0}IQ0ngN@<*hB3GWbYYGpb^|U z;kj!$n){{%@7@{C-E;jGvpYc|j;b-bKauGC>n?b(FFxxzGEwet4|Zd=Vy7}vUsQvO zQU9*b&?Q~A1)=Vi{M&V808>-z;N;oNVUOmtEWIE;&!>cW%!EaA(+BeS{o+WkA4;&| z;(6g+E@9 zEAcr@#_0BA?0fAbCBc;d>;yYw{NrJ~%0ty_Igke_nUA3S2i3~B>a7Cx2H&lp$=EJY zM7Su9f-#d!pZ}Z0STMbg>{tMhy4)Io)U4;4movOoyx7KUCyAN zVrY?>v|v%Z9X|=vdo;F)Uo422eHR&TK}(M~D6e&=fn{lu-(Vxs=;hzQySN!{UcCA8 zJVoqXn1b#6^%6~sxnir|T ztX!r)Ap6wOwKnz$;Fmr!90toQ2_bt4hVEWbV-(dUXR)A5ngmGwOI*e;fj!RBhgGUS z*9)(iHa3LszPf6xfJ92-NRNAeQq|{j-_$B39mrIJ`y-1rwvgVHXCD;FvV|taa?)&Y zxIPr^Vck!#8duq1J==&C5s4{OQq&rm_3q2aWVLZr`gYlNvlt3(V;L|}^+R}(SPb3i zelWcVBeoA``44+s-Va~SB6jFvD}~l9D%ErxCtqwtF~zQvolPxIA&10m+%QD%^y1~s zasi$jMKufJ_!H}$i0YBvR*hO}N1|iyGBpLXRxHRlXpohVlf}3RF?JGZw^Wklp4j4! zT4OY4GZ=uyY(C7sw670Y`A7b}WFU`SEWwKY8XZ>KA?2ra6n#RB`^o*=1jh=Ex?!Px zwuc!$N!=SYus_C>3dl=HKJZ%=@>c29`rq1FTb}*~A(>Jb8GFH=%UnNoD7j>bvjRm4 zi$lHEV-+-ZOzt6+kmaZV7!}P>B2PVtVRZ!R`v!#5f=0=sz3A5WuQHj%KiD~QWgjtt zfiopSQGvE8?7U7#tSD5WQc|GUpe6Bn^XYOep@Nne*NS|Ul!Oy8^1KttY}yGK)s0^I zq^1eRXZTd|Vo|(9*>AqYb#Ak`FBy6@tk&r&9iPLDD|>v zhLo#ExEp4Lx5p1s%}WOS8xBDwdj!#KHT225lOM7kBAFj33tT$5d`Xj7q;4vzy=3?L zJj-uOY`pHewY1`F9nsAVx=6wlcq9BrNqHVGDSfC2nrOm%Uu6cW{LHoTLQB$an8Fc_ z8;t8kWjB$TM|9W=*CxYIs5DQm%Ea2Nh$|4VoIW;vGQ33Hy046l zoG2i}LxM6t^b_GmNWGy{3&%dWsrcm9B)^xJ;*G}9uNx=PQZI{pjjuTSYRFwrIdLE; zB7QPkAcZU)ZwjR(+DZKJc2w1M_R#fMt4Q27*kw5*-oQyPvN+ni!ODL7j|V7obs$q7}SIn!)vs$w0i+C{W(udB=jexdYXt_6$Dh>|m26A-sNGQ#MrM zkG=7gVlZ*!=~1W;zDlX;MXfPL28i)DvpBHk_I1m~?5U6&;f|r9p@UsM7g~&?@hKPj z-vWm^_{EerhM8Px$^dI;9cKNDh$O^VV>${(XcAM9;bwyqUZWo69Gw~Rtn&R+bBX_; z)%aPSo8tbpRiU5Zr4J{4xZ-GR!o{>Dx2oEa2X;`LKX57o*9wJFpl!AW>>^x3Fc{cJ z#b^Y)OT)q1QO5_gQLYUuJLU@tXCD9JSvP- z;!6!5`ab@x->349lS+)A{{y@6NrFp2{fME3+oYhV49XHafxowL((U;R?Ah0qxJuav z1i(a_wS`h3`Pn?kjuj*hJS62U7jI6)iTcL86}LhHI0z=#eDTLS$BJ)?UvO%lbXlB6 z!i2I!ThKf>DLA=+1i7(=SvsLc1#)gF53r^=A{72`&?tWthqME zkrJ(l5RsB1mvdWa%RQ(Ix!+oiesvNzoO-9Am>A92RUr~1a7=)o}eH??@Ppn z3sZwTI+rYdNZ)HqP|^_?oz50sL7yWgpjl9pYp^0O@0#M`K7x?2O~L@{q}b*~rwkQF zy^w>&8$J%Tc_(Uhmn1TLrQ|eB}Gi!gMOpLg+aP^B4*fvVYpw$;v z!D@E)8QrF{2PV9^_MFoWkn_A36ZF6 z=3d*eb>V$w$Iy+-v521RO#%8<{C8yy7T$sHG1@oPg)tghlJ%)?dGO-CVk*2UzO{^) zX#7lkellsfeISQS?1%vx|JOL7^Ji=zl~D!GVtlwY0jgDsCu_#PVT#!JBI3I-mNjdX zxDoVp)rx$ly=N0R*E9@LZDXjMrCI~w8IZWby%n2nN)T4m`sEMKO}SVfzD9?$46rf3 zc*eoJH~=hl*_)Q=ks*E4U$pt6eBKOLZJ~<`8hJHNsR+E9LBMzZ&>PXPua3ZK8c(fH z2ydMz<&ko^`}HOMEt|SrT(78sn@7z_I3up(z3D?y0LK{-r%%U2?B4CpZ&~h&P!Ua# zY6CnboO^8u1vkv$vw+%}acWT!cD9hxP?L#3Sj?BXS{ix=?;EvtzUGho11=w|hO2W2 zLA7*WPXPuCV93)&{pYu} zNYm(CD`pti179@F@xY;+(KeH&#_-NoEo7IAApU&JZ!Q{z0RU=)ahpkPS-$5&7E}xO z03=FPFy+AP#P|FA#Zj@)5xX-9l*D1gaU2efp5KgW(`)ajMDNhi$EyCGbLcB38-f86 z{f!Be+%>xjcPwaR$*_J^fvi_Jy4$nCsvPcGBJtyyzu1mRm^s5duFu_(5C|je{}<@^?~NegRAm}zLa%+C%XE;v zd;0eCe-7$6A#Py5>9>qh{gaNkePscZikX4p>E$(K(YTRheJLi|`ZEp>1D?LC)a94- z2I8^>WF&Q(ZbT-7w2Gtj1Anl|Y<7OUQzwoEsg7c`&9o2zyp>E0>cZTS4D&Zow0F>) z71k0(5-=m)ju(hKL779a0|JDaYYR8<0zKR6X@{cx(^FW(%Y zL>8xFyZ<)5Eg<59!Lu$)Et5L9PfZ@@$&luHW#UEgZ>0tPJ)%H@iB|(EVr&dsF;;sW zG^&9qqzt0*U$_QQj1jX#E6R+Kg*MB+f>zCAuxPak>m(7|4;wdRdH#gmw1JmY6+KQCS&WWQo9%09(g z@p?m@^d|KDy?=QeIoUEC9bHk+!EPFKMxva+l44Hkh>BFgO_c%pO05cfKID5prxtt> zMXrwPRC79`8dc)Ds;us#z%0y82BX6$ea4X7j*7E~B>}5M!g`BUB6b1j@D#g#L%7yj zvVtI#9WW@CUKw^iYQ5E)z;*q~#9{>Yz0)XC3Aq49{N;bNh8P+~K;ze&)Zw41AD(T&2ZuJwThZ>#{{_vus?Jf9ND>*9K}goys-XPKO|6c1!!#t%DB(0Cn!eZ zAmP7&$i|plKv{cqmp-)^6W89J~H{O_jA0`=C zlbNDC+9n*CXy+uhh{%)+@R5JQk-H=uQ%?J^tp%*T`f}RmZMdqL{;Kmv;Aaa3?eT~~y8%gq zePA$!T-ZR5ubII_o8vY>*i8=@eAU3af*iI^a#kn2lV@`g@;WfT%w9l;IsSt^Uuhcx zSNytd^Iu8gl3#f}K5zXTkSKACZ5bhZvi!f>M>|3+6iw%MBu!Pg^D14J^QD_F3LVMF_=FHO?&p@eanN>yGuA`-QXe9ikoKRqs>I9^ zr9Up_`JxPgI>DuxjggxBwq@0KQY536 z`XER_=mB$FcAXte$C10LRzq<>x`q5J2FN+pg3asSqbJ&V%CeN6U`$0qkh(p9p zI#Yo#C;h}!a8p1$VSRuU?z@&J;2LC9;Mj~l>li?@FoC`C8wJ(sLXMvb<|pk0Bbliv zrBB-FjEmy50|Z>Si|#qTkezEmkzcS4*eC{Up_q7un+4lxNV3u&cD%_4P9!sS>|B$7 z2?Sj$N)D0IR)40c5UTqe6StMT~Z?UVE1Mm1IWffr6Nr{xb;@2OOd z(Tq#H;<wPDTt@p-uOAN)s8e^B}A`b(x1ANU!PIAB#e<&UY=@ptt;oj;YTHZ1&D z4c6mU9(?@MZz|7w7K5Xfv_Q;_x$g08l!^aB>3%z%2|R!<#lR9n9>*ro1Kg}GCrM}O z3k!j5v-B%0>Ib3Ak!Xi7wW6EzyQBnsm(ayo={*aLn}-ppoE93}kT~VY!)ZioNhEot zeKvOJ?NHs{_hLQB!?0u}kUoCP9Sp~jY3K&%Y-no^CmF8Y5?CVFqj_^qShJvHKYOjJ z(D)*IxlArfe-@(_RnlatHT&x+j%SG0W4E>B<7zNNQ0bh7Y|Z~1&A`9tZbH@fP#tyr zFFe8sV81V!h}z1DRyV~$TX74En4>8q=aowJ5pjS3U%7g9DpdTR_c42O!ImF6y7Kk+ z!rL#)gVcqT9FCK0h#kz>Bc?Q7aCqsfGW?LguLiF%=OF=-HMmYC(FDTR(u^@?Vo^%_ zOG%BowH79&k}EyioARnj2p>Mbc+5f^&md_qI}cr^a5k?P9kzto*w=(mxIel7F8fVx z4oA4$A_O`dB|m9y3?vl;%%uaxii5W;LC+kRhgjvt$!s6ViLLwmdk{*PJ7Tp!jzNhG zff;JiJ@_Li<0o3=nv@i>H>vVZ!y@(OXX9-wIZ} zCbuX(4!wt50WNTu1)Yj0AW0te63k_q(&}MAovioYjv5J$!rV^2kk+lB5?Fc=OZ9t- ztsw(|t|)d?BEAdt8F?UqrN~zygqP*vb%@A}8qn2j=#6(r4i@tv1=olv&@cZ7DI#21 zabR37tkK~U9rG!D2{eXfKd8P!)ok%kq2jnUz1`zmUOc?zz)G$T+11O@89=dBS82rm z=T!cD%yF=0NWOjszn7Ey%#U9$2jLR=U;!Kn#1Y_x_ws9WKQL+&4o<|i0A}l(LT|() z*(%t)*X6iHHu{t&mL}TjJ-f=maP;;sAdhLRaqgQ(;k~9>ME|FdtT)7`4lw)y+S@-S z00Cxi3LCSkkAE31Fpb^=aRd*wVbTd!x!{$RdMyUYKwQ86NSd?1snhXnTwin$@iidj zN_kt)QquaTL2>p*@fX&mF`bECvECz8%Xvb~4mw9PYVgIIn)K+I5$gyb?hJuiYuf&9 zOaVGj^NtBA-5Y&HDtHxz#cUeHxy0}E*gSS-rObWDK`EL29F=D-~9nUa%jb41s3#@&ivU2^sK zKUQOx2=HX%!yKSAK zpzTR|{D)hk-=LaQX)qe)+7)Li?C^03^*n_Dk%!E=He*g3Z%)OAU9F^a)99loFbxKC zW=;QQxk((WP*wQCFT>BCJs$whu8g`%CGU;f(djJxqdb#GuZzW9#Qo3RCHZ5WYy7I3 zs~sSCL6L&L=M8f0Zt&M+I;44TO~^2$--faFl%wKxj6+eefi~MailYQd8(&5V*qe#uVT9GXa=Vo(s8jnNgbUF4 z0_`BwPs9IQ_A7j`E^=aBsmN1D;yFmHlaeEz|@sv9Fl7P>wZ4% zl0aO~2|9Ck?KaRocsrneQxh)8iOCQseSXaXoibOl2NHm#Q|8IzeAWA_2W-X~R;Kw% zkgCD6F!g8$p<{^{=>|2mh3+T$uA3t{w#VvUIsrAq7@RlA*K}GiPg~MPqD0M($^?Y}q+l?WZZK<#ZR?)SOQ&=3%wLTQLi>-)M-q=(;RQ zT$V~;H?>l8BvWF(dUUZTv`qnQj(Go#06sqCPv4Ij^X`edy7c94m!&*A*ZNT|4rJ*J zyGA2y;tFrK{>Z*^3f^e4?tH55{Ka~>;ahzA7s5%icqYMQq>=gHwj~7RFW^*HFy2~2 zQMsM@?2NF>!GIgppsx zym+#7Yp{T=)ew%A{&+unGKeDcI^WlwTnN9=HsNd)%Y5OROqR9Czrm7XBoN@GoUS#I zt?7-;l5{bWAd0wv&LbwPRsYix41Y7~#!|Co?f@9=`@|YOG5e});NvR6Y){^a;W`VV zmye0`d1m2E|9Ki0<^YIaKNWKb#LH`b(-g4lZyZ(uP90bJ=z1K(5L^&NLri z2k8;3q*!^?PEzI8DPZ~tl)|N#V{rIZWteKYf7r1{npM=%+{!fbI#)w#0dVa$lOE#B zxF}om=#r;1FfB;THB=QZA<`y~X$Tk!Eh;e!DFN$Fn7E5jyn)pT{6mt`C%d;A+vb8v z>6Ms~U^0FEDKf@gm%tCxrlCUF>HSgb49A{y0%!^iWY&rQ<1Msmwi2U0aVRi_QyQdV z@1e%q0_3`x9y3+A8lcRUGGk&8yRhozq_)$L;jJ)m)?t%rH4sHB)2f2vmIDah-0VM( z!pM4e?3__PdiZwT1NO5Y2gf?$FL4}i`38dC8ON!7_^d8xSZ9UIRTXS1TPV+Vhi%Zp zYy``3lM_gdyYl4=DPCEBYeAZ@g$#5@sJ;t_4t-M$%}X`@h{gCpdgF+fv`gJ>VY~xKrvsc-j{$0k zeljM&;A#&Ad>c;dNWVc_SWmTH#lbdLrc>YNxHC9bB|%~eEl9nEAs1jjdceTc=;6=1 zcY9ZSCG*!N4dAj};VS(Q5u41xrzOCyN?AO6ts45Q6Vc?k+RSrZk#1*q7c&f%?fJ0e z)tNKl+4WKBiMBWi-;1(lyjb(iokTQmUP**Wj5C+qJ1^d86U6sNLD4e(k~z-$k5&Fu z;qHk}=^P|=6D&sdAibD-;$%jJ>di_X-Cw;|8sCa1r(O+I8Q^e`7foNRupQYJvv8SF{g&3s-b_Ar~jxK*S)`w`S zcVBb2u78}-)r}iT(T$RqZt<-W_-6&n(MQFc4^|y5deJ>;esU0j?5i61SPYJJ5cxsE zIa(qu9{|}p!OeL`($)4k%+SB5z5%>2k|><~dNZSL5G9mha;~m3QqI%n9RU=1qxJnD z$oe@$ef7V*EM+us>Lw_f_uM$FhT#}3w{|NrZ?>D(eIn5;hBSLlJ}@<}nQ4^zP@~an zF`0D#*wMm()_tkw5`}2|)zmW4!|Kgk8HcCgzartRuXncEbJ()wAw*q#1MC0)3&wR$I1C@iYX8AW@F9Oo1AOF);b#9m~+}5@Bn8H){2_;9Du39fnKH7_BrcS3Y zKlB2r-E^4EKP}h#uP*@rnxNDN;z9$8i{8jS*KA1;PsY@JAmyg&=kI{s{pkjhLN;=v zt9|Nyp3T3-KPeX3jKntKv;!3L0C&fk0X=isdf=E1)td^IN^$bD+J~#tKh88Z>VIzR z)P3ym@ZV5)?j#whm04aJ;PxohW-%IK{Uf440<-BH2xl?b284c$Ny%`U!(eC)Y?F)A z$_D1Zvj6h{QsNIq<{kLcdVy*M?AK^HlZnJ~rq8O|%}PGyX@d-HsVF{ySqgwmU5&F` zJ*-N}Sm2O11_0eyRCV6!4Sk?#pOVV#wQIT-HOde(2-eTgU;Q;<`f;2x>9s9Rc}h9H zF`JcUh_pt-9kamJu7ff1!J3aO0i8_&NP}0ix$SfB&ZqV@b>mK__7xhtKkU8>!2p6D zPJnO&?Li8$1@JM`i?^hzS^WY-S}mwt2-YYp?-7D{eeHCP&|h^gp4KtZ3HyZ5Eh7r# zLFh$dOrJN3s9Ka=UVm?n;Ck@kU^^6`BGG=)8GHW#IKzrQ1vA?f3IbCR`+`6Ew}h+j z@v44z5^3dz8T>-1=67Fl_Qf4FaMYA#8oELggPhBiGP;ogE4Vn1NSroKqfWb|hRy8} zE%}gZGYrP@?*62mu&^|7zUSaX`&)P=y1q~gPwmwe+$(js6o`tV1x2O@ObZ^Wv#C95 zE*CyXVBZUmC1M;&uY?Saok9Db(NP$d6dKuy9j=xpPSD2UV+*EYYI)CJ79 zS{Jh_9l1}`p&B1wv^-CS{kA3lHOzpk#H9b+p$OVEv&Z$+apVD}zk9$?O`VbK%hxU0 zdMHZT(i@&{k}r=6U&xU&)5SEr(aBa6ebY9cD02$x4DyUSjN*9}qI8_Nn4tt(_V@naYAhKe~)lTFyR~tBu)hVX!q3`y2c#O3+Uij_;)uXENJH^iaJF8s z(HnOePcP160*DOs3ycFWBp8hC`@QFkiwX`-chHtD0#;}2KCl|3`-J{)K@es7zp3BU7xv2@g2cKYHMpW8|qbI1u(!{~R#-IEyG7_t2IS4Pg0t>I8;f zBB)*uu(LTC%V?o}*ny1BIg0V6Q{MJ4Q}x?)=HOmBEYUX+56|GMk+)#@%V0e_MP1rP z9R$`gfY-1B(B)CSh2OO@r#^AmgskRWb zkdFQCtuBUi#JSGe5`by*mTJ}*r%{_g@&>yC-^c!B^6!bH24ep87>V1-=c*FF)1Vq? zJkxTm{@{Ymt(hi~gC=0tzr&#yr`tOETV&C+Toey8X6%>IFC?k!@IWKxd&R$`{NiVE ziniKllut<~ki%iZ;av6KM%=!Q>?PmSRgC|X3!BakTHPEAhj5rkiy$%sBD+sFD;Q1v ziy)}&nB!QavRSo52YL?=+xs!V*E@7;J1R6-;fpzpUCs6}@^yRc!A|~O8}F9RWlc)N zpHV`h#|<}u5a@BxJ#%Y9yn+b?do=|swP@J1t|?jZQ6_ln(!QluhI2*c>aZLw;iXXE>qWh)*%ujw)Um+@qnj9+(9 zX{31Z1c}vM9{#w_fi-(U>PB7P*h5OnO)EPL5VMHSTcv`J`{KMoSfNIMF_dJ7Bvxf- z-03~!So;vu4t+4Z{r6}^SoEqKeEF18ez-1^{fx9hYOu`Ulk&@$=%f;=S_a5xp|(PO z=ALyD+z8;ctIKz3{(m%mbv&K_|31bvM-S7}Of$_9)7@Rurt|3T>6#eBw4=MbV`{pY zjyam&{r-F(zw3_t zh-!3VgkEm1STPeH>f zDrLBR$0(nPd!_+aeifI+0yOL0ZbrS2-~g!p`0a2!ezz7G#SI@>P}nagDP?dz z2(ooO=aLAx+lW=cFh(?k4BFlmV@1$Yg=0@TP6O5ZQlJHHI;OhRVP=6UvC1G^&hgER zk82Kz=cVG&_g{)(A}r9-B|-5@2?a8j81^nL%=islJb!?~CtGcrbs#LsuQ_pr~d?|`hhQ>`V z=rZSG>O@wVRWzTTJ2)Q)RGIBN@~_y6HjC2f7iw?udre^H=99fkVAd`p7q`Ct#1qz@ z!~1om3hLIzvU5nPFh{oD%swrQDNX4Xl)y~cVHP1Ps*x<_0n`IZlZgz9v^t)AT027M zK9ZrP#%l~8zUJoJX>>hF-}KcLBj?Xj3K=ixMto6#UeUN=%cSv1B?q&hrpeK3iDxSo z0g87Z^C(9Gl{t;J<42}Sa~Y*C801KTp8*q;;T3lL&wEZ4N_?D`0BMN%f!TIP1x=Ef z_VBhB-&6Mc9DLfl*HjrzW-G}tw`86k#C(~3nN6U50$ez(si`QDaL#w|(B>(S-((?M zMNa2(b^CA+^#~M%0OYq9!{TBs(LY^PNJMk>B%liQdD`Q#mB9LiwGw^q9ov7Q$oy69 z6}do4J>rYRamerwG%8QF9+Fvi)U?5P4U71$BojE|Q}w^<^AZvM@GqK;JFij08e|x} zeH}QW>7W{fEO#qQ@h=AC{LS$~Rae9 zrU`UDqVkbV)ntd~{jB`V&P`n~#X^Td<>W~!s<=5xeY;>t)N(E!I70vRFr!Mp`3k<3 z-|BEuDN@Vw>;v9xUJg+xZ=WbL_4Y^m(1S?O!TR)%ASZA_d}-eozLJQM&&NL7aOgybWM!l6$rS6wIST6pj<)Wv+{gMV0G;ntbO|6vP+0yXeJIZ@q zcfT|Qwp(<1sn!z2zDIYtq^0S4r>IGN6=YIK^U(iWr02@9#+II0U|%d?fPe)Q^}|e} z@MgP>;#B1y=0Y66FB$WjlQb+3Qa;e#w)lEy3si)Y$4&pf47QPz;AWCNZGV)(=;HA^ zV%IMq$Z4GG>dcA%7G!PcO89!&z5EROapk>K{tbat>$~`GpT6?<95z4x-YM(S&;eEuqs3Hl zCaA<9s-2XP|20BvE$7m_rlDwc@ww;&9T zc^JF^mR`w#b6O8G`|6N9aA~e|I)V*Fd>2RpevfAG=07h6L~nxrXc4m179(T*;VoXt zVCzb$Tn{;n2{9&EkAD6uKk6lYuomMvG}}ZH$F`CCFG4Km*6V=VQ3-->wqJ}<#-m#QO>#vmIT;MHsXj?&U9 z=OJM(j9O?Uyb-#$jx+R6egL0_rih%}UG{8>u_0(fU8vlYad#2H-?vYe{{CjRIe%z4 zeV{Q_51D*ZrfEu4aJNgYD_NQ-MsYgz?q1*dL~%nY8vY*ia7w_MB8t##BcE$*`C{Qg2tJqTS0S$?N`N4>lT|R!`2zC%?XhKf zTj^Sn_EPa^q(Q^<)CAuK#bJs_$dMc{I|V2bMYl8R5$sCOOqy_0Kpv+DOz}7zPyV-Cg4xQeZJ570M-lOA7P&vKaoysvq}d9SC(DjLacyVpup|UZE~fGDnuq zZc8CUIAfo^{X<0R$Ta_nYlp3G9C+*S^EB<%gWET$h%}O^GzS?pznmaY8WI-8`mX^G zUv5BueX04bV})}XaWgaAPYvCYtF%);44#o)Ix)G2HWET`#OhTvnaUm1tY+q@mVLf2 zgZix6W>2Xuc9^mR-pf0SKIVw9QhE<|O{x*C4HHzb%$UVxgzn(2+0pxUP|w`4j@`u9 z8FVpnM~8QSGe%Ww9l9IGi^wcyAL!S}QB*IMX~kL^;_2 zzFhg5$I$i97ML*d6LHf$IzxTUhv`Dxc>(Qsy54&-z{P~FJI3+Sj2T&@K|%Y>v86LT z%t}jEfzq~?;BH9lAaIn>^zC!oqUlTm`YSV?&V%K5sj5w&S(W*lJ-P}%F{ST(2XMf^ z)FXQO^DpMD?Ap6u(bXg3(pM|U{VsX>cO@g$hQLL?=?O3KuJ9@Rwlo!YYsaZAPN45! z;d_0(v{GXYXkwa4H7Wt;f-*MU6Tl}RN>df^+f6g&LEU6#pAWW8OD>)`GP8(5*%uO6 zw~Ky{vXW`?h1?I1%G|N~RVGK?ho(7R!oskHt3Fe;DhdsSzD%zJ==fv^llzukLWeWs za}l;U`wL4DT)&L_o2%!@i{RL1>~h~^ttvXYal-I6>Ze@Z+vfOW?QMF*ZWj6swmGkHRKa?_E0i5%;MNQM!>>p+y zH6;nkN0_i%i5o#?1YP<@V58CZd2sA5@Uiamx>$i`(AL9D_(vzob8Vl029UvTj%;&Cb_3XzxV z-SxF*_@=sUsz?MJ{(Aw=meG9`%SCk6eC?CINt{%&{}S9VhA5A> zed^Xu2IE)?kkhhCrPe~RhE+Dd#!RCjn*bR_`Pef5i80?qy}`M0;|^bb#dqA`#|c__ zD0Bw(m97^S@9^U!qzGx2m^e~I?6g8O_B&BV63nwGnqQ$xfP@LtZ(%dCBSd^Z-<++J zksWVMq5s!UKnkzMag0XTgu2(4K%0W!6I`XKjNI#;%l^j$pq{N1PL$$*Qvt)fLZ^Ii<1YgC+i7IZ1fO z54}pb6?AbRZy?A9=KWiggvcU#lJy?G+18AyjDJRZi-9^7jCd?@DqX7}ypwHHgbJWX z7AZ*n>u@)*hE@|ins5ZV6%b@>5A4Yv{`%>lqXz$z;R~_|_j;XPU>4GUhGdv6t={vl zqo3TFT#%v+Mo>70S-p-_Rs=zv8oxn^f;5}N;#1|rC?1edbsNarK-7h^IaAbE!(m)X zBaxFInkei zjKO|*o(F$9_Pdatj^CQ^A9i-2vrVLmuNW(&LISjEW3m5$f>X)c0iftpI+=IG8)_*6 z6(#AE3g1JX#JrV?lArj`@DSfDrA8BkFzdudQqEATH={LOQZ();21Rmw&&xoiRnlw@m947&kOJ{eo`?riFim^0Z5yy~dzsD|j0!uG$ zN@Pre^+Z!>yE-Wxr_0%Hl}A$fsRg#v%;;m34i941kItMd=3$24`Lo6V8vgdK(qBfh zJeS%l*W0hsR?&_O0q733`ecjxilmR<1BVl-`R+$Gm!WyDvKHE_qt_ZAfxlY6=caH+%*E>M6PbvJlo8rO~c?dJvgO{OWATxx&qjv#wp-S5$f~L3m6KjBPBw!C>a!MxViyRr*(I<mo>KFvbAOs6>N`p)S>@z@jwgvI9I2=Gs(pIM2pDdtze7mE*3}^=JYy77BukaLEE_{k{#8_7D0Gu*GtAs4!DmI|XT%bet z#bR(+*7iZuv&3oy&;r_^uT*>Qk9hYxT2{C-O{6+fi~<5AK+72Vft?8O z0|Ru{2c;4^f^c5|f*ujO7|Y7oHNpo0N66;fJMy%3wjmXD;TO0G)i|Pp+J3R z?iHiNL9znaSy@=+tCzf4ygcJ4nG(MY*1Lp3t1x1d;%~oy5?M_WRT~9hy2VK53ydLkfl@yJ)>)^|cl* zNW`fKW_KTK>IWHjrUh=)UAFQNt?m{V8ws8!5X*B6z`a=gZl#t0#Dq-@@RVy3~&275EFFD7az%J8g-T8s727;4bdxU`bw%U#A@IjL&7I zCs;6o^5RheEo;!iO!+bjF=i#y`E_K?cA4enS0zGe^huK<$D$}oqV=Hon8;^9D5wRP zCrK&Q$C@9*pgFtPEJK3)P%kkadF6`TDC?erE$86T_XRD2$8WPcVN^=hZa$^F;-vJA;)M!`vBOfWVvZvG@4H*!=HQzV56s?xl~qiC z9g1@-uQBn81U#7`0XICeU&_@0IjjK88Amj^L+s6cy(e^6nrCP?R7npx@h&j7nz))nWJ})U!bE3+j0nkbpJV z9|8u>G{IHo4c&l?v=E%neC3mnW__p45GhvE`;ETPF(vw~LrZFuKd8d0v~7KEPb~j{ zl0m`SiB0P4N3Gy&w&d5ko2;k3C6R-HAgRRrr(|^u#+KqaECH;t2t5*3VK<*I$o{>BvClf*OaA3uhuHQp(p2WT1t(v?_ZPDP|y!_^h~fNS#W@{*@CU=S7Wy z61^>yyQ{1DY*rm=onvC{Buxoiav`#|pMO5xS}T5rZ{6@>+h$}~!Xd^lWP3aP@ei&k zb-VAIC|G7aa;Ax485ERRd$)jGVw;NQaF*xr4>P1^+F$2IdhD{Qha6^Ob~A_nqf1iM zWRh>^YW$2GJg9lA27m?mDd`I&Uun4m`2TO&`q z==6@%UFAF8HeBbWD|Qu7v*s1IS5G)N{nW{T{+5c?#&GO}>=nI&QL=I~h>W3CwH2O~ zctJFXd@@z1y&YomhYQZ^sK4f}BQtvTWJJ|W9p-+Co-Hq|PtQ^G9MZ0HGt`#$Pb^L+ zbvKL#(t7`I#9Z|A_L1SPU%f|#wRPvCTXhf|T+#H;s!wO_ zvN9>WheDDEFsbC+`pw{hp8dcT!!@YeVZs;p1v&|^puwMHFMRmenV>0bq@KBDjZBfL9>EbN5h%6V{O-;RU29`M;m&fVQ=rl1wuh& zp?LSPNxpBs;^a|nWdk>Tp}wPL-!L^Z=fh_>xFyu0_8#w|(2t1om})BlayieEgJbh~W^GF(B~ zs)QyA)6U1_!52f~M~R2_?gPT@4*?0+A5RqK73KsRZs}n*p@De>hu#z{a8I&MJ&$$s zqs{KVNvowhZA1nl{I!p5#5;`r)iO-ii}lZT$Dv1bpGF9+hgPG@CE@l7?0?E@yfgA5l|=1cL$ka+?U%sm=IjsBjrO9=$9&O9QZi{lw-lHh_XCHb% zRNXGmZ|P@F?zX4gY-QeLk1`gGVqNOzL>6^br-{s80 zAolmOgepVMMi*wbB-#D*H?1`sd*yAohkaROL1I5%ZSPHX_>;1hpTYAs>e(88A-0W0 z)@gh&!OG5MD@6&C8-bZsBmY)+K_UNg(J zxu(|8J27D{A9`VEk~f zEAxKJtXw$9E5Bf0%VxFOZqTT`5|x)Wshzs<#Nrbi+-dZcBo)**jL9ZHwk_E6`|JU7 zY9mo2gqOKsG+tS*N#+yM?2<&0b3n@SI!p2bV@rLl6++w<+&DuME?#Bn=Fy`So0`Fz66txG zWyR9%ko+DEmj_(eZ!Vg$;wrP6AIHjrdD6h7pj50QKWoP%+kde*p)-==P)D$1>KTZu zj#1nRLUe5Ficwf(RUPbXUy62IJuhlpyg!bF@oXcO>E*nE3kam5Bj~VFSV=$1V<{_` z>#UpFy~X`o+=gRD`k}U&f{Cd(Dr6U9ue+c57JvoNrEp}hWNB+mCu#OksESHw<>+#_34k7@)}j=5q=}gm(}x^N*{Ja z$8-*fF4lLbkl5*H;1ooA^<{cqdDC#hisYj;v}9{1tT2 zVxeG4WrZ^-SK%%vI*+MYl;06qoGQ0+d--R}rf$O_L{oMb5b!#^B>c1A0c&2b`;}Da z1D*|}Uo5MVZaM;KI%K}>M~~s5D)9i!9Op(NjQPg3u1rv#?(9#0d~%^OEHyw`*l5Fe z5f-M__NJ&&G*$NJT893zbNJ{&`&l?wBd7NJZs{A8xb^IN$_*U>hI&cW(p5h^oc%s7{O0Y<$Un-(sbI4ec*ZQIi zm6Gtornf~vV6U`lvaVa|-@b|yOL$(i$T5|KEw4S9fzt@C*$&8Pj^5i21SuZ$Y4pTRip14O$bMt9HEE@3x%Tv3k2R^r;qtFEXsvT)rJhbZ0YuiD?Z z&(G!0pNNZJnO1O#As}ToT*&fg=ZLatT$%}_lf<8~E9uI|{c)TQ+Ku&JOm5-!@r#1K zoi3npD8skrxwzZ#-)PPVb_RmT{T+)}+IC;B4KUT0bB~d6hP$ZSZ z>0pNm58SGZOS%+hs9Celc(lyv7Sunpe9xGbOeNCO zuW|Cx3d{+#`AJ(*-(g?_$(6g}IU)Xx^6m9yYIiYS ztYUf8dW|g{)CR6QeU4&?5OXkY#7s(w@a$jd+P)qq48?3P`6mS*+v_>YI-5FYjibtP zj-)}4sE$9fnRi7;Ih@MNN4mIeCaC3!aiKHmpWSQIpH}OsAca4AR2Br;Wa~edicg^A zawhlwGp#k>XeEEa!C}KIkmiMI*XXy_MAUVo%@z8nS)61tHAb)$zV)PbdzGB2mO?4k znZo1CD~hd~Z4Pj-!{z<*9a)h09b6-)KdKKzX2)}M37b`c^cz)ZMAwwzkvJ1iYg-eO z!_+~U8cNXKEk&&&I+XwtoEHk&8z%zU0oc2bEfMxk2LrR%q+}h;GexLBMiC1@o;tZ- zeXI>vo(rA3=$)}E*lj^*yx;kIHQ+8W(mmhI@`!+VJl&9{cZ$AVivXD&m zH4r-y#DtMiW#ndkkfa1fW{nsDvnZ*gm5-Rl4O@NrU@Y$@%%~McSm!ixhX#WsMm=kd z?dOkx(PN5x#+4E2S~ePFh2_kKey6nfgbLh1FHm5WrOsFemalj(Y@08)#+>4jr@Cxpc=A>LYEqFLVN=nm zBP`N`PtKtW=kF7%=6TtqE{j{|Ob(_(YGeHKY4D9pEm2wxvM|K$-=w6YE)U!iH=GXl zg;JMHTY~H*_m>lnXjmSOa610;KTY?d1mIX;a?VRyHr!z)-^9W$4)HYnHRx_k_M9cR z`gkVn)4PVc#i;xSX0jRtnvrq+q0?Qlrkn4>uWNE+({xYZ2BM~f!XXkKvIY_SJ=s*T z`>4}TAlP5OQlhXEB*~V3Q$AK4Q%-ENO4^c{UX8W#^9ln-7QEJ|zgaH!#f9+LI90Z> z(H2AR<>kirf=Y75FVeMTMtB?=E0|MFOO&AbCWsk~h%h7gYqE1|rn8{J@gy@}Dd!aL z%%{e(LTNm{P^Z-Pa$b?DKDHxJWChRYY{Bqi2H~*I_7wH~ve@>he^(VLBo$I2pi_w! zpjfhI!~zZWG5ve8)M@%?4R%9-y8w09U!b;=f7{R|X=6mQo}r8rZkt;A1`5t__%*qr zBlIs>CKmVB<0YSkrT-_an;^8`&uQXF)0d5A%dGc0y}e!hgWtj$#Sd9|lKs8{ zDGls{CIqGD&i2rL2%W`4^INPS!1Tp2TP99&11rBIk_LqG&qUT?W0#dAIQ3tgVCUD` z101s|l}a&5iF>@Id^fhRmKd4vJ95mhQ~@y*z>wZ`lX+iD{J0G>aW?x5iLxr zCh&zjGu1nkid+;#1caFCBOoq@ntFhk%)cG|hRuX#$ZL>p-J_{y4nm5YMVTeFW;5s; zv7AiVo@VPiTC3I)$8bFYsW?MM2s)bIe&!q)Nl*^#8NII&=HmS7>t5Fqn6WYf zRhuazJ@Vu_tK(!m<%`{VEBd*Ds9kfYXm*!Ezu?pb%>E+Cu6z;E_=7*Jnl>GatTr~V z`^bnAgtC#)3gmQ5$#Kru5}%T1?9rWnh)zsJSm?Y2oo>9Aw9fun2hzj4WhX6tfk2n} z=+`IORNg#sltJapNxmc5#x&;nRa_91sdI#_H@y4EhY|$Rnfc)dm-qBZJWMCK&k0-0 zqE;NteoafPb^Bi0<~mA>XYA99b8gN&%RfEu6d%!=sXHU>?yR>2Tz&fo+*sk z2+ZW$a+}=Xsxm+pDUBPY*p^c?i0Zjm+12^6e%=t}O~!0(a7#=1oJdGuH<%K%_L`{e zb5h#wrkmwd95^7VRI80^)~R+nkyVg|lsNxA1%|wA=j|k38xP`E2!MEmgo+VfEuSZlaao+vtRf-=sM>Ln^Rd#HaS32p*HITW_ zr~`NRIcWL0Hg{&Ay zS63Dr7p20UdrgzXs^_szjMHWsYzpfpsMc0f8ONpFmEXltgHRN37VvIGicatCIZ4I` z3|DqO!Q-iCzXauR?^@v%-Rq~+1SBy&GUsQ_S2Bwmxz`OhFM@(IT>>ae9*!Mi>(Qy9 z%lF6a!_B6^xIF?XS~S657S-ikQosTsv3t8zN~s$WaX~|a5ROfmPguhiVq|B_icMQf zS(VhzLz^*OxA;c_Mf~JPBH3NY%1*q%(Z|F_Mc5)bBQ(+v1-{#@M*S~syJ5cTJbT9m)d^+V z83bUR>vOLa93@mt8%gVbKo=&_p2A~|G`93DGI1XPY;pxCfJinUt($T<&lX**i{EcL z)9SF;@SZif=XB(PFv_&r!lzgVZalW7LolcD@5ge~7ti{>>ATJuq8Q+LumNGrc*JcD z_vt$m8|0fsr+EK0Db=hIa2UTpQKNzHf7_GF{T*^v&h z&PqN@{N7JXwlmy87mQj_fa|#0x;!2J1<^(R79l9GyKHFZR&$x(co18wNA9|*M&>ZK zJ9ty3 z{8Z4{f;vB41=f*>!p8LB9!z!E7x=R#+pB{(Cg)?VZ`mz@VqNpG|4dq%#=OYUSm1(? zD519P37Ty*_bJ3+6WN@cUbCv))&sl(*TCB0=z71JIheMTqpJ4+R))3V&*hlsNrAW8 z!CbCV@BW@Rv`gl0JbKgqhhTugqW`nw?SM(&!;UaUh)~YvJVhsI1;2M(*=yO|JXQ0f zJ37aM3t~!sHHW&7;D}ML1)Pk%>kKMGNPk?S+z@P47iy%?|)CETa|%t!BJZ8>fdq~ z`=B3G*6l;q^$0Ax%&Grwtqe*_a0#nIzYWBfQtp9kR3d~Ambo&UG|?-_QB!S;PW>N~jQvK(m< zf5%yRaJL+6{X)?-iL2;hga2>t#E6j6Ci6fFCYiO}wjzm#NyvmxwdD01&Sj#`5kM0f z}%NK|R1}zeyF|!}Rq)tTn#;H3{CS);_AR~~@v8;)E z5AxXV)Ca^vtR@ax#ZMxxS5<##Wl5G(liLy2dXsQirpC61sUzmw26o;??qiS_>N zQ2KDznXW{)zb6%~m5OKehdjobkWs_ol%ete{m%Vf*K)72%~EaV1)2Sf=d0_T*H|%b zxaLR_F88^H33294zo;r(?&BIT>Lf9NOV>EZ`7uG{h(EzCr)n+Q3_?q?&~7tx zbGw{wx%v*VLYVtFIy!F*h+jwdREye{RRRALE8qR2`vJE$QDjWg5B77PDvsX03gs(vyfD#55N{yf3+J zP{%PG$>UsBdwY8pXuq1PZN-T|WNrciIwndC_IAn5AoW;Ga*OUMcm9bo^}n>KOXdv& z@q@Pd72}jrzZp+!w$Ex@t}?j?j43?BF~N7JG|-ce_+LRYJ-zI{AS@I*HhtyU#QTgj zf{5iWK0#qrP@~UA4@IGp_Dm6=GF7DxM)%@%S5XIGT!e?p8!0Pe^ zw2D6(BlM{&fv$L?Ap~}9<;->Rs3Nbxkg#%|51y-d#LvO@oWA;=_l%yXFaS%$d={;?z=1*YHxL=)v_$uwTra{_dA7G)4qOq4s19oWN-+0v)Hj>5& zFL)(7R6xr7;4eqf<|dNa(lU zzSqZvLZ}14LwGQz5tTZ=Kx`eTct1yH<-BiXKzQ&|H;HntZeonqO$<&df|){qV+B)n>2Bm41fyLgAZy)7v>5X z5?6_IYJc=YT^vntR>$t?za>64>ip@NO5UKV4-P|8f6VK@6*o9-_+w$N*4@_s>$=~s zbFddroy#=;NHKN;n}@cbQ+!&&6T|{tT3XT*nl#($b}Kz`$seEWCa;(Ux zMq8K2Y(c&rtbTMmqxxF^Tnsz}?L)1L^9_Z&b81!-jE3l-V{lyl@o=>>C==1s13Omb zOes6Y#Jss4g8dx{MKBnNkd##am{r#98T{v4BDc^b!dUxp2d(3zQEO|uNf3dKK~$&S zw>b%t77lCnw(5Hh9foIc{o5LB_%~?*)97K4MGRVm9Ps;^42-(Z8YkvPZ2Z0$n@FoZnRNr z(FASh>v7-79cE3FwngEh0Q1jFp8j*o6d{?c$_q44M{C3W}KU%DNs35=r(>>8TiPKK);P4=fe zbH?AS^ZyHV=GQSX6LS`ko;>fuqViqCi?u+fZ`O!KUN2+A*O(cJ*0uUJf z_XJi)-epamYxWd^v!@^TxS3=k{w5{@Ju&)t4E0pjyZVgB(?a+|zSLo^A8Rl8l-8ys zOimxI$=Is6!;rXEe4QI^(fZQE$OXb8;hJ1N$+%R1@>VSJX#0hLC?_bRaq24B&pr`| zjo{k7D=75uXD=A9bsL!qaUA@?tLaanZ!7xaLwv&WI$gb=;RF0SrADbxWWzIY-nV&> z3gmoRX?rvbM;jvJpPspbZ)I0~xg98_g$G&|rcFWB&a7C2#05w8lt)IIW{In>hnfnc z8sadwF4BkE<^00nPHWKqzUTDr`wjD6> zr;KeT5xwt_`0fcQYlx^KUc$%APIqU&*M4_Zahe|K(8FsV2Y;m>U$KlA#c2<0{H3LK zBKZ|5=MpVUa*ATWP&ecG7X!k!?I}j-syqn&Q`JC%iM%9X)`IOLUX9Bu-f>MXOOw6< z<8=rtJ}@z$qBumax?0!2n>CV%Fj2P&sv|6t_gLp{-36I5&09DdPJ3uHC?bvu>ei#* z*;kt^>3Zez^?2|{%aZ3RK2Te3F#1#y+OK$IRJ5*eR1lMgn8`rr??&K637H>7TjkU@D*5L^`I{qg*vGk+}L{BMATxX>RkxzA5>(E$+S>_hdlGJO3@ilF_Xch6}>wtCnLI+u-_q&<=~M@o2knEE+n1 z_IxK`uFL=aAVBqAep4uxZ!F;#n0q;-otSAJE-&bbzkPCuk_SC}E5u2KeIN{M0VDQ; zBGAcv!)*&C_l=GeK~?{k(J#NME4!atPG5U~`JPAB%oJ%mTzl^3BSog@uU1RKRtLUb zC!_ai&yO_r@kj)KMLEwk7e{G`(f7F5H;-OD}p8*~Rv;B{jB zuHZ9!r^}P>ef#p5zxwF?$x>l<1tnQZmUj;k3q=)``-O%Ck(HB7|lrYQ2OdTwl%Xk`;3SdvK`{10<9s0xa9s6np zg+qB;yqFjfKT9HF=U`H$hBcZJ2{rs+K|#aCc$(r|BD>f-8BW*4LMTbRd`A4qMBXKR zy`mvvXs`-y3qLaw4Xrdy9H1pksEg#IK z*D~jcrA6j{CzMNXj5t3b$C#qU1XU~}UzKH>>4tt_j@1Nbs< z7oBrgJLj^Q>TNXsA>r%XD9Y^T{v;&HK|C-{C7SFpd-vg@7aiw9990@ePb~Q4KakPC z>v=;&xG|X;5~UL2Ik@~a^cI@<#!7{1i5J`lsa%)T_NGR7tY0GNE68knpO@xv~n&YXSL3;}I5XMPbCj=S@<*o?GqWCU?GtHy4{AoF%p(108%w?N-e6 z1z{!GGBt36t-0ygtu_IfA3Qay4W?<UV@X4sQ-jqvlpakf=|#ck#41-h6bW2c70AtKw^}@3WBdcNR>TzrzVN zU7VnB#cRZTll6OYeB7Ym4uWkt^L8e-ER&wI4IzK$iEHKf&TA{SE7NdUR?#eqf&R7f z^dod%V{s~J6l*Bo%JhM5!20Eg&ti|L8UO+B>4e<>wyOIfoNK>ooTL#4CAJgr&K)F(6a4>!f)>Q_;W8!c5yX z&#Aob)!O(+Z2e>fIP)Tf95zbu@0Go+Nf%v~Fo}8I&F@PGcL09{&48ick$2e_sdt~8H7R~|1t;E;ZKxFzgCd7}2N7*g6$4a}WjdLI4Ag9d%gP2+EIaFED)FlICM%}> z{az%`kOFTD+VVAtyyvvJFtk42Ys-P<`Kb({My$rv~f5U_y~C%JQ0nj6Jo-Ey|;e(#!;DmG&iQP$@~1ZH627s zlD;NGYyYn}LXJ8rklKbt5Keb5q1mvz)w~gF>Yr&PMeQN>tR@06W;A@H{xVn#77u$w zq|hFb-iwie*tVW!L(#z2MSfq1S{v<2i`i1hK)vDbvHP)zDQV+^O;fOOT-ahsKXpNE z@IdihV8rKxX8S(WsM^~B(3=Y#_&lrBm|%~Irs!1tdHEJeNkjzHjVCUrab+Tsk#joV zD@gK+0A9k{P-!@o*%%BB1VwEV@Hd7(?Hlq515P*8H&@wb!lw^TAjgUg-a=4l5-_2r<8SfBHi zN6v=%b$`C^kz&&WT^G7sk6ILA{XSm&HN%ZxN;DtssEPD0FqoQ33npk>OB7L)8iyKh z7}OVGRRCu3-DoCIH1)d-RG5gYCb#dhH4p#1$1WuBD+c@y1+S5zVh{N^OK@Fl)HLfQ z93xp&p+-F}btPen$WE1ja38@ojR<0(|m{cts!L@&}vQRJzK zS?nFVQvfr|kC46r(?QxxYVs_IM{9ix$AX7zb9)8c$OY(d^h7fMbHOPQ4sh*ALgXN5 zxUJ!lYx)zxhU^0!l$E(w#gaL0pe4b2V*vx$cJ`d*jQOjRY2K*5znl{PH2izepuXbf zP#!=pyF}{GCpa<=E4&#*FgFf^yWIL+t$=2V^n_qc)R6hy8g1nM9w&%X(}rM5J=RHc z-v||l6N9aORVfr??jSuaFK_L6pWChnH&mDzjNV)3H7Qs!fl~EsFy2@Z-JlA0JsZY- zooH?RKMF*+=0b&Nw4Gz}F#E@sKNnhVjF2%N4MQ2p+^4n&q_>hg7XeaKsd#<}^%OcH zLT_j{t!o0)2oB9tJU@PGxHc_KDB$WYI2$`<9{reI#5*8qLuy9YkpZs$o0h2>mKpdn zc`tjjfkLVtb4xEjhd}ez0!$OO{~KehT~j)-y{v(uwY&2x=V0{TuUX1WwOK)t4r^T9 z^N-b3C%Fs|JRC)C3@$3iQTF>c#Hg!knM9Jy1qKxyaY$dD;g55V%diZ21NPDi8BLj& zF+DXG$B1nY-{pr_iPg4_uQH*Gwcj%i_XW13TO_eFT`~2{eLY!_SbU{mg-ZT~pnK0? z6xcCv7%+I!_kO-(O&%^skro#T9&+?pzvLn%iYaO+7f8n<*VpA$iF$a5rz~*3?6t#~ zAy2o6IV4Yz8_tW`EGyU(fQgHIh$~z?&t9NX*7V~RZs;Vp_Ur}EK=P2r1 zjfy)2M#9gItFq)1e&MPkd~6MnVE1;0yYfK$y_uRg7SU$;k(8gQbQv#kh^lV6lG^p# z5Wa`ldQ3oM7u)m36Q6Pw(#j5z1LaZv)K+pNO1x&YJvU&c5 z#HF5;Ji)k#B;N0geF`&cfwGg(^(EnN?KO~cUI_q!a*EtKNu!$d!?c)Fq^03TcBy6higsnCkn{V|ydsbk)%$^umTA#m@Yww`P*5Cn}< zBvfKpLZCFBLiSW3Ro{gJdEhx}>Z_Jl^QMEe9VWM>gMtOS+~KmhtSym@gX6K{8m3{Z z$IlarcH-B#P6t5VFq2l4Yg|HlD|rDw3CX+&Jm1&nayo#GyzvCaJmu&Bp%A0MyaH~t ztw@6V&IP#Q>BN5XNcL|_#^^Qw)h!BJiQX|%KiJ?F?qeyixZ#ZAWx3950DgtLpugZf zbQF4X8~kf&93P3enaH!M{=LN$yE zT=0%V-P>o!SrV~0l>SFTIZf%BSV6@|hc4~ZgxM1}ve~@-QJ<7TuU(ocHgGTyge@CJ z4`flioN|5!38$<^YQWMWnFblo^F~q0L$cfEe{p(-_ z7v}+hqV+=Iro}dgktYrQd84xaHg#6pceHG5n&$uYcJBX7_ir3GXJ*2jnZt6YSx5G^qP=mlASG>foOQsG3QMix#FWQ z9qjxUzj+EkchZ*8YltNOruia4*|Lg@vmQW7>+9Xy(qsaZXp!!f@mlG!?3|Nt(o|lJ zU1)kVND$l9@e0m~T=wk&vbOe^kxli5soSwAZB1M>6f00b)&h^I^6}3K;rovP`x_F$ zS)@+bF=4~70#m(fQT6(Vd*N`=?bcfvwsrFrF3(j9TM*d61IYE{N%?e$ak932fbsaG z3+C1?&6~*cQ1y68lYrV`)0a!X<{FbPln^$Z7HV(mC??vBE(B>t`i2B%KdGW z*}IFyZFs2G0>4jE_ur8G9u)we5$nrSc2GD1OPcj-gYCuW3tyR;J#Ji}OBm^+$FCNO zO;iFp{W0iWl0Wf?_w~D;^OsAcq-$ipmG)41&on<4=(}QC@j(e=mh3rpoRsFT`lMl0 z7TstbADqDa7-sn9J1MrK*d3!+QWs**+YRPD{eB2bYdz*>#(F1sfBQ)BP>nx9m^Paa z!DXPEe-CbU7h`Lmu#!Z3f6W~G(-t8$dX<)&Gt>BXAgWWl%@EMXinpFYjOk;U9A%ny zeAZq*zd+o)75_8xy_mweq#CZyp98g}Es=BkfH|&g(X8Ot#Xk=(;!)0~La#DJ!xB78 ztvKYZ#EoA?xOsi0nqH{lK0%Bu*s^iF&aLK%kq7U#Zz04c&?aVcbUfwK#d4Tr*m0vX zM0mY*Y|jB?oq9Anvka|{ED=IOau3OWiw@qq8h$7$5c-Lh_HdiotJa2VUC)b2uyTO6 z;sl^79`;+$GUq(%3Ys-&qWwdq?nz1Zn*;xBSjf#fflf@#(noSiNhK@vre*ROov<#^ z(u>UYkbMey9r%6LCKBo_gNG!XDfzc|QePqY;QjKj8%bG;Gi*Z!VprV51$e)MasY5y zW^I8t8?`@Fh3|3Il_zA#s`~g|y!TWUv3e#KZ%{o?n{f#9+_pnB9!-mk)o}{bQ3KKf zNY0$R>bW>7eMs` zI?hR{xC~!u2n^Mm&>6&^jr-MV!vI$_njiO6OH-{)ukwMMe_=KvaL088v?nD<#y$>? zp-gKdDJHMB|4|}Z+>mi4%NY|dMQ)kx*=8*hr#xu9MGM9!{2AgJl4)WDA2d|)K{m{- zOxI$H7h`$gD30UXY~Rh4;j%YKdR>)6GcJ7diJ_&Mq9TF9%?#dk25Z14!&L&;l-cGU z77dMWNaS8WfLB%CT1zxqGC+3#1{-}MdAeK_x?k1Ju8!DEQy-Tg{&#~*ZLUm#AyBfiBj+l}9lQ_D zYdq;AEI+ZK4K=R~P$}f0!hZg6GOPslfU8YR8!~AJ`rR=4seog(xn?fS(ZGfCT1*4QDJPg*vp-{B zqB^}N;kll?qNrhe#=RkAD0e8P42#iG_3@sNMOTAb&!P8}!o7t-!&OAM@8WRT6kkB+>nT_`HsXTT)TmAT|5qVtSCoI?DAAtp;uS!)vVb8|G(TAASwar zi?JQO7;^>n;HaO$Glx8{PiFj~`CQ)#?h}hZfv~f;Gh;q@+!mau%s1G z#7LCydR~1*kJ`tkewQ=fzL6`K)sl^yVvo2I zn)>!lrDGawZ_1Y1in2>+fMbCXt>?HWN&*?}`l|6k#_O4m7wOqG0I#>Z5GfdrYm4nb zWp!^eshY1&g*Rac49TOFt-aT|d}7xZ@OWFgwuy-T@2L>+?U^sXNHa@&R&zU!#cvQp zFVH8!1y*_%*VLW|bN8#4IbzBV%SgQ3#iFp6PZhMbfmz+2X-+aLT;qO@A(ItIV7Zv4 zPCmR8%AO5X@B#h%%BVprufOJgp@u`>llIN`agTdI#esJ0a0AbO+%S*+ z-kE3-gWN)^%RXNEwR1|!2rHI0Vk@q29++Bm(Cz;Km|w^> diff --git a/lib/cli/test/snapshots/react_static/static.config.js b/lib/cli/test/snapshots/react_static/static.config.js deleted file mode 100644 index 8c2623407af2..000000000000 --- a/lib/cli/test/snapshots/react_static/static.config.js +++ /dev/null @@ -1,3 +0,0 @@ -// Though this file is optional, there are SO MANY COOL THINGS you can do here. -// Read the docs at https://github.com/nozzle/react-static/blob/master/README.md to learn more! -export default {} diff --git a/lib/cli/test/snapshots/react_static/stories/index.stories.js b/lib/cli/test/snapshots/react_static/stories/index.stories.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/react_static/stories/index.stories.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/react_static_next/.babelrc b/lib/cli/test/snapshots/react_static_next/.babelrc deleted file mode 100644 index 167eaf5c61e9..000000000000 --- a/lib/cli/test/snapshots/react_static_next/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "react-static/.babelrc" -} diff --git a/lib/cli/test/snapshots/react_static_next/.gitignore b/lib/cli/test/snapshots/react_static_next/.gitignore deleted file mode 100644 index dc353a145faf..000000000000 --- a/lib/cli/test/snapshots/react_static_next/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# dependencies -/node_modules - -# testing -/coverage - -# production -/dist -/tmp - -# misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* \ No newline at end of file diff --git a/lib/cli/test/snapshots/react_static_next/.storybook/addons.js b/lib/cli/test/snapshots/react_static_next/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/react_static_next/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/react_static_next/.storybook/config.js b/lib/cli/test/snapshots/react_static_next/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/react_static_next/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/react_static_next/package.json b/lib/cli/test/snapshots/react_static_next/package.json deleted file mode 100644 index c68b5d5fcac9..000000000000 --- a/lib/cli/test/snapshots/react_static_next/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "react-static-next-fixture", - "version": "1.0.1", - "main": "index.js", - "license": "MIT", - "scripts": { - "start": "react-static start", - "stage": "react-static build --staging", - "build": "react-static build", - "serve": "serve dist -p 3000", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "axios": "^0.16.2", - "react": "^16.0.0", - "react-dom": "^16.0.0", - "react-hot-loader": "^4.3.6", - "react-router": "^4.2.0", - "react-static": "^6.0.0-beta.21" - }, - "devDependencies": { - "eslint-config-react-tools": "1.x.x", - "serve": "^6.1.0", - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - } -} diff --git a/lib/cli/test/snapshots/react_static_next/public/robots.txt b/lib/cli/test/snapshots/react_static_next/public/robots.txt deleted file mode 100644 index 7d329b1db3f0..000000000000 --- a/lib/cli/test/snapshots/react_static_next/public/robots.txt +++ /dev/null @@ -1 +0,0 @@ -User-agent: * diff --git a/lib/cli/test/snapshots/react_static_next/src/App.js b/lib/cli/test/snapshots/react_static_next/src/App.js deleted file mode 100644 index 5675adb22297..000000000000 --- a/lib/cli/test/snapshots/react_static_next/src/App.js +++ /dev/null @@ -1,23 +0,0 @@ -import React, { Component } from 'react' -import { hot } from 'react-hot-loader' -// -import './app.css' -import logo from './logo.png' - -class App extends Component { - render () { - return ( -
-
- logo -

Welcome to React-Static

-
-

- To get started, edit src/App.js and save to reload. -

-
- ) - } -} - -export default hot(module)(App) diff --git a/lib/cli/test/snapshots/react_static_next/src/app.css b/lib/cli/test/snapshots/react_static_next/src/app.css deleted file mode 100644 index cc6998a42b2f..000000000000 --- a/lib/cli/test/snapshots/react_static_next/src/app.css +++ /dev/null @@ -1,41 +0,0 @@ -body { - font-family: 'HelveticaNeue-Light', 'Helvetica Neue Light', 'Helvetica Neue', Helvetica, Arial, - 'Lucida Grande', sans-serif; - font-weight: 300; - font-size: 16px; - margin: 0; - padding: 0; -} - -.App { - text-align: center; -} - -.App-logo { - animation: App-logo-spin infinite 20s linear; - height: 120px; -} - -.App-header { - background-color: #ddd; - height: 170px; - padding: 20px; - color: black; -} - -.App-title { - font-size: 1.5em; -} - -.App-intro { - font-size: large; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/lib/cli/test/snapshots/react_static_next/src/index.js b/lib/cli/test/snapshots/react_static_next/src/index.js deleted file mode 100644 index c43c07252a20..000000000000 --- a/lib/cli/test/snapshots/react_static_next/src/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react' -import ReactDOM from 'react-dom' - -// Your top level component -import App from './App' - -// Export your top level component as JSX (for static rendering) -export default App - -// Render your app -if (typeof document !== 'undefined') { - const renderMethod = module.hot ? ReactDOM.render : ReactDOM.hydrate || ReactDOM.render - const render = Comp => { - renderMethod(, document.getElementById('root')) - } - - // Render! - render(App) -} diff --git a/lib/cli/test/snapshots/react_static_next/src/logo.png b/lib/cli/test/snapshots/react_static_next/src/logo.png deleted file mode 100644 index 3d30eaad75d6d0db2d2c9478902dbc23023ed568..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53334 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 diff --git a/lib/cli/test/snapshots/react_static_next/static.config.js b/lib/cli/test/snapshots/react_static_next/static.config.js deleted file mode 100644 index 8c2623407af2..000000000000 --- a/lib/cli/test/snapshots/react_static_next/static.config.js +++ /dev/null @@ -1,3 +0,0 @@ -// Though this file is optional, there are SO MANY COOL THINGS you can do here. -// Read the docs at https://github.com/nozzle/react-static/blob/master/README.md to learn more! -export default {} diff --git a/lib/cli/test/snapshots/react_static_next/stories/index.stories.js b/lib/cli/test/snapshots/react_static_next/stories/index.stories.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/react_static_next/stories/index.stories.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/riot/.editorconfig b/lib/cli/test/snapshots/riot/.editorconfig deleted file mode 100644 index c0e747256502..000000000000 --- a/lib/cli/test/snapshots/riot/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/lib/cli/test/snapshots/riot/.gitignore b/lib/cli/test/snapshots/riot/.gitignore deleted file mode 100644 index 250733808b79..000000000000 --- a/lib/cli/test/snapshots/riot/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -node_modules/ -dist/ -npm-debug.log diff --git a/lib/cli/test/snapshots/riot/.storybook/addons.js b/lib/cli/test/snapshots/riot/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/riot/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/riot/.storybook/config.js b/lib/cli/test/snapshots/riot/.storybook/config.js deleted file mode 100644 index 8afd1fe584da..000000000000 --- a/lib/cli/test/snapshots/riot/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/riot'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/riot/package.json b/lib/cli/test/snapshots/riot/package.json deleted file mode 100644 index 119c6a6e2ca6..000000000000 --- a/lib/cli/test/snapshots/riot/package.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "riot-fixture", - "version": "1.0.0", - "private": true, - "description": "A riot.js project", - "author": "hypnos ", - "scripts": { - "build:js": "cross-env NODE_ENV=production webpack", - "dev": "cross-env NODE_ENV=development webpack", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "riot": "^3.11.2" - }, - "devDependencies": { - "common-tags": "^1.8.0", - "global": "^4.3.2", - "style-loader": "^0.22.1", - "css-loader": "^1.0.0", - "raw-loader": "^0.5.1", - "moment": "^2.22.2", - "riot-hot-reload": "^1.0.0", - "riot-compiler": "^3.5.1", - "storybook-addon-jsx": "latest", - "storybook-readme": "latest", - "riot": "latest", - "webpack": "latest", - "webpack-cli": "latest", - "uglifyjs-webpack-plugin": "latest", - "webpack-bundle-analyzer": "latest", - "packer-webpack-plugin": "latest", - "babel-loader": "latest", - "babel-preset-env": "latest", - "babel-register": "latest", - "@storybook/riot": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "riot-tag-loader": "^2.1.0", - "@babel/core": "^7.0.1" - }, - "peerDependencies": { - "babel-loader": "^7.0.0 || ^8.0.0 || ^8.0.0-beta.6" - } -} diff --git a/lib/cli/test/snapshots/riot/public/assets/css/app.css b/lib/cli/test/snapshots/riot/public/assets/css/app.css deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/lib/cli/test/snapshots/riot/public/assets/images/logo.png b/lib/cli/test/snapshots/riot/public/assets/images/logo.png deleted file mode 100644 index 65e6a956f5396a080bfb6e4804547983a27b7754..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51738 zcmV*bKvchpP)*-;+$)jsFm+pX@F)M}we3lI{r0ul%#12O_3 zgK;plz(Ii_VBis+wn>PAjD%n?9+=2Hj4dY_HjIpclh_U~+hB{B#{fr;Eif1dgAEd( zfRO?c0wJk|y4A0HPvys&RrOV^IoDcypVQsvian*5^w#J9@2WzG@5n*%?_faTlTH`1;4)w!oUc#YT=C6^Sg&BihyYr%7i zG1p`qwd#n>qervHd&>f-*S5;A7WkK(rShtCM+;@m0Y~!Hc|Bcw*!BX#NY_K~TT3u& zx>i0t{FdhQ+7b>uUAO4Hg!NKjTbg^suP^&$z^^C!Xzp4Y#ofvq07M5|*0SYNP#y)8 z5rB2V*FTL}~F!BLl+b)R5UIc!J=(11SI(Lol zMe4DSJ&*X!`z||vqe5&+heKlXZj`N-n6D8P=~tX1MYt_x&+}x|k(`G#)2~OXmsEOl zd;Lol(3(7>KBluqb5zCD#js}AQQy+SV@yUoZ0<$lx704$=a%TLVYpP4_UybwuXpXD zFuMqvNBqu5b4kw8wNb2El4&=p?nV=AaUP;royUqS8Es1<8qMtmoUPft=Wt6-xJ8zw zzBL@Sv|b@#f7fV^FsiQ)m2IuD?n?`R+ePEIME@e@U4&dCKRU1O7nyjO=0(ms;CIbHbZJ*)*S8w1j$Nv9m+1Dcjkc;=c2hlm_4SA* z&l~L?s?2p&+SYagWwW zzP04ORkj|Fo(=ZFd`YGwe)Bm!JuVA=qvSh^QCnkVubuXUuR`_!9aY6O81?8gJ^njV zrU%#-g-6@c+Sd#4hw#|ax2D@#J0wXg(b+m~3m(12y>HvHaM$|Q<}S@y^4Trptgnt8 z1-~_2mXc(zZ{%nD@YoU$M(v2-
iUMlZ$kHMvH~$ouqwRbBzxw~v+UjoT9R*W}we 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

5fZ5(dKJ# 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 Xko0Bf^%%Mv00000NkvXXu0mjf$Z{8k diff --git a/lib/cli/test/snapshots/riot/public/assets/js/app.js b/lib/cli/test/snapshots/riot/public/assets/js/app.js deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/lib/cli/test/snapshots/riot/public/index.html b/lib/cli/test/snapshots/riot/public/index.html deleted file mode 100644 index 3b322dfad26c..000000000000 --- a/lib/cli/test/snapshots/riot/public/index.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - riot - - - -

- - - diff --git a/lib/cli/test/snapshots/riot/src/App.tag b/lib/cli/test/snapshots/riot/src/App.tag deleted file mode 100644 index 7e4624a63440..000000000000 --- a/lib/cli/test/snapshots/riot/src/App.tag +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/lib/cli/test/snapshots/riot/src/components/Hello.tag b/lib/cli/test/snapshots/riot/src/components/Hello.tag deleted file mode 100644 index e0600dcf7287..000000000000 --- a/lib/cli/test/snapshots/riot/src/components/Hello.tag +++ /dev/null @@ -1,18 +0,0 @@ - diff --git a/lib/cli/test/snapshots/riot/src/main.js b/lib/cli/test/snapshots/riot/src/main.js deleted file mode 100644 index 39d5541ab25d..000000000000 --- a/lib/cli/test/snapshots/riot/src/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import App from './App.tag' -import Hello from './components/Hello.tag' // eslint-disable-line no-unused-vars -import { mount } from 'riot' - -mount('#app', 'app', {}) diff --git a/lib/cli/test/snapshots/riot/stories/MyButton.tag b/lib/cli/test/snapshots/riot/stories/MyButton.tag deleted file mode 100644 index c2ce1c5892ce..000000000000 --- a/lib/cli/test/snapshots/riot/stories/MyButton.tag +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - diff --git a/lib/cli/test/snapshots/riot/stories/Welcome.tag b/lib/cli/test/snapshots/riot/stories/Welcome.tag deleted file mode 100644 index 0866a54e125b..000000000000 --- a/lib/cli/test/snapshots/riot/stories/Welcome.tag +++ /dev/null @@ -1,93 +0,0 @@ - -
-

Welcome to STORYBOOK

-

- This is a UI component dev environment for your app. -

-

- We've added some basic stories inside the -
- src/stories -
directory. -
A story is a single state of one or more UI components. You can have as many stories as you want. -
(Basically a story is like a visual test case.) -

-

- See these sample -
-
stories -
for a component called -
- Button . -

-

- Just like that, you can add your own components as stories. -
You can also edit those components and see changes right away. -
(Try editing the - Button component located at - src/stories/Button.js.) -

-

- This is just one thing you can do with Storybook. -
Have a look at the -
- - Storybook - -
repo for more information. -

-

- NOTE: -
Have a look at the -
- .storybook/webpack.config.js -
to add webpack loaders and plugins you are using in this project. -

-
- - - - - -
diff --git a/lib/cli/test/snapshots/riot/stories/index.stories.js b/lib/cli/test/snapshots/riot/stories/index.stories.js deleted file mode 100644 index ffc636bfab05..000000000000 --- a/lib/cli/test/snapshots/riot/stories/index.stories.js +++ /dev/null @@ -1,23 +0,0 @@ -import { mount, storiesOf } from '@storybook/riot'; -import { linkTo } from '@storybook/addon-links'; - -/* eslint-disable-next-line import/no-webpack-loader-syntax */ -import MyButtonRaw from 'raw-loader!./MyButton.tag'; -import './MyButton.tag'; -import './Welcome.tag'; - -storiesOf('Welcome', module).add('to Storybook', () => - mount('welcome', { showApp: () => linkTo('Button') }) -); - -storiesOf('Button', module) - .add('with text', () => ({ - tags: ['Hello Button'], - })) - .add('with scenario', () => ({ - tags: [{ content: MyButtonRaw, boundAs: 'MyButton' }], - template: 'With scenario', - })) - .add('with some emoji', () => ({ - tags: ['😀 😎 👍 💯'], - })); diff --git a/lib/cli/test/snapshots/riot/webpack.config.js b/lib/cli/test/snapshots/riot/webpack.config.js deleted file mode 100644 index 1a25fa802d7c..000000000000 --- a/lib/cli/test/snapshots/riot/webpack.config.js +++ /dev/null @@ -1,22 +0,0 @@ -module.exports = { - target: 'web', - mode: 'production', - module: { - rules: [ - { - test: /\.tag$/, - use: { - loader: 'riot-tag-loader' - } - }, - { - test: /\.js$/, - use: { - loader: 'babel-loader', - }, - exclude: /node_modules/, - }, - { test: /\.css$/, use: [{ loader: 'style-loader' }, { loader: 'css-loader', options: { sourceMap: true } }] }, - ], - }, -} diff --git a/lib/cli/test/snapshots/sfc_vue/.babelrc b/lib/cli/test/snapshots/sfc_vue/.babelrc deleted file mode 100644 index 32df804ee902..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/.babelrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "presets": [ - ["@babel/preset-env", { - "modules": false, - "targets": { - "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] - } - }], - ], - "plugins": ["@babel/plugin-transform-runtime"], - "env": { - "test": { - "presets": [ - "@babel/preset-env" - ], - "plugins": ["istanbul"] - } - } -} diff --git a/lib/cli/test/snapshots/sfc_vue/.editorconfig b/lib/cli/test/snapshots/sfc_vue/.editorconfig deleted file mode 100644 index 9d08a1a828a3..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/.editorconfig +++ /dev/null @@ -1,9 +0,0 @@ -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/lib/cli/test/snapshots/sfc_vue/.gitignore b/lib/cli/test/snapshots/sfc_vue/.gitignore deleted file mode 100644 index 1622bc4c1c03..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -.DS_Store -node_modules/ -dist/ -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -*.suo -*.ntvs* -*.njsproj -*.sln diff --git a/lib/cli/test/snapshots/sfc_vue/.storybook/addons.js b/lib/cli/test/snapshots/sfc_vue/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/sfc_vue/.storybook/config.js b/lib/cli/test/snapshots/sfc_vue/.storybook/config.js deleted file mode 100644 index 07280e8efae1..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/vue'; - -// automatically import all files ending in *.stories.js -const req = require.context('../src/stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/sfc_vue/config/dev.env.js b/lib/cli/test/snapshots/sfc_vue/config/dev.env.js deleted file mode 100644 index efead7c840a1..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/config/dev.env.js +++ /dev/null @@ -1,6 +0,0 @@ -var merge = require('webpack-merge') -var prodEnv = require('./prod.env') - -module.exports = merge(prodEnv, { - NODE_ENV: '"development"' -}) diff --git a/lib/cli/test/snapshots/sfc_vue/config/index.js b/lib/cli/test/snapshots/sfc_vue/config/index.js deleted file mode 100644 index 196da1fa7da0..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/config/index.js +++ /dev/null @@ -1,38 +0,0 @@ -// see http://vuejs-templates.github.io/webpack for documentation. -var path = require('path') - -module.exports = { - build: { - env: require('./prod.env'), - index: path.resolve(__dirname, '../dist/index.html'), - assetsRoot: path.resolve(__dirname, '../dist'), - assetsSubDirectory: 'static', - assetsPublicPath: '/', - productionSourceMap: true, - // Gzip off by default as many popular static hosts such as - // Surge or Netlify already gzip all static assets for you. - // Before setting to `true`, make sure to: - // npm install --save-dev compression-webpack-plugin - productionGzip: false, - productionGzipExtensions: ['js', 'css'], - // Run the build command with an extra argument to - // View the bundle analyzer report after build finishes: - // `npm run build --report` - // Set to `true` or `false` to always turn it on or off - bundleAnalyzerReport: process.env.npm_config_report - }, - dev: { - env: require('./dev.env'), - port: 8080, - autoOpenBrowser: true, - assetsSubDirectory: 'static', - assetsPublicPath: '/', - proxyTable: {}, - // CSS Sourcemaps off by default because relative paths are "buggy" - // with this option, according to the CSS-Loader README - // (https://github.com/webpack/css-loader#sourcemaps) - // In our experience, they generally work as expected, - // just be aware of this issue when enabling this option. - cssSourceMap: false - } -} diff --git a/lib/cli/test/snapshots/sfc_vue/config/prod.env.js b/lib/cli/test/snapshots/sfc_vue/config/prod.env.js deleted file mode 100644 index 773d263d3126..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/config/prod.env.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - NODE_ENV: '"production"' -} diff --git a/lib/cli/test/snapshots/sfc_vue/index.html b/lib/cli/test/snapshots/sfc_vue/index.html deleted file mode 100644 index aa86473e44c1..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - sfc_vue - - -
- - - diff --git a/lib/cli/test/snapshots/sfc_vue/package.json b/lib/cli/test/snapshots/sfc_vue/package.json deleted file mode 100644 index effbb8d5b0ad..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "sfc-vue-fixture", - "version": "1.0.0", - "private": true, - "description": "A Vue.js project", - "author": "hypnos ", - "scripts": { - "build": "node build/build.js", - "dev": "node build/dev-server.js", - "start": "node build/dev-server.js", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "vue": "^2.4.3" - }, - "devDependencies": { - "@babel/core": "7.0.0-rc.2", - "@babel/plugin-transform-runtime": "7.0.0-rc.2", - "@babel/preset-env": "7.0.0-rc.2", - "@babel/preset-stage-2": "7.0.0-rc.2", - "@babel/register": "7.0.0-rc.2", - "autoprefixer": "^7.1.2", - "babel-core": "^7.0.0-bridge.0", - "babel-loader": "8.0.0-beta.6", - "chalk": "^2.0.1", - "connect-history-api-fallback": "^1.3.0", - "copy-webpack-plugin": "^4.0.1", - "css-loader": "^0.28.0", - "cssnano": "^3.10.0", - "eventsource-polyfill": "^0.9.6", - "express": "^4.14.1", - "extract-text-webpack-plugin": "^2.0.0", - "file-loader": "^0.11.1", - "friendly-errors-webpack-plugin": "^1.1.3", - "html-webpack-plugin": "^2.28.0", - "http-proxy-middleware": "^0.17.3", - "opn": "^5.1.0", - "optimize-css-assets-webpack-plugin": "^2.0.0", - "ora": "^1.2.0", - "rimraf": "^2.6.0", - "semver": "^5.3.0", - "shelljs": "^0.7.6", - "url-loader": "^0.5.8", - "vue-loader": "^13.0.4", - "vue-style-loader": "^3.0.1", - "vue-template-compiler": "^2.4.3", - "webpack": "^2.6.1", - "webpack-bundle-analyzer": "^2.2.1", - "webpack-dev-middleware": "^1.10.0", - "webpack-hot-middleware": "^2.18.0", - "webpack-merge": "^4.1.0", - "@storybook/vue": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21" - }, - "engines": { - "node": ">= 4.0.0", - "npm": ">= 3.0.0" - }, - "browserslist": [ - "> 1%", - "last 2 versions", - "not ie <= 8" - ] -} diff --git a/lib/cli/test/snapshots/sfc_vue/src/App.vue b/lib/cli/test/snapshots/sfc_vue/src/App.vue deleted file mode 100644 index a4dd50d719c1..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/src/App.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - - - diff --git a/lib/cli/test/snapshots/sfc_vue/src/assets/logo.png b/lib/cli/test/snapshots/sfc_vue/src/assets/logo.png deleted file mode 100644 index f3d2503fc2a44b5053b0837ebea6e87a2d339a43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6849 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 -
-

{{ msg }}

-

Essential Links

- -

Ecosystem

- -
- - - - - - diff --git a/lib/cli/test/snapshots/sfc_vue/src/main.js b/lib/cli/test/snapshots/sfc_vue/src/main.js deleted file mode 100644 index 7b7fec763bdf..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/src/main.js +++ /dev/null @@ -1,13 +0,0 @@ -// The Vue build version to load with the `import` command -// (runtime-only or standalone) has been set in webpack.base.conf with an alias. -import Vue from 'vue' -import App from './App' - -Vue.config.productionTip = false - -/* eslint-disable no-new */ -new Vue({ - el: '#app', - template: '', - components: { App } -}) diff --git a/lib/cli/test/snapshots/sfc_vue/src/stories/MyButton.vue b/lib/cli/test/snapshots/sfc_vue/src/stories/MyButton.vue deleted file mode 100644 index 4ad8ff85f08c..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/src/stories/MyButton.vue +++ /dev/null @@ -1,29 +0,0 @@ - - - - - diff --git a/lib/cli/test/snapshots/sfc_vue/src/stories/Welcome.vue b/lib/cli/test/snapshots/sfc_vue/src/stories/Welcome.vue deleted file mode 100644 index afdf3b3a26a3..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/src/stories/Welcome.vue +++ /dev/null @@ -1,120 +0,0 @@ - - - - - diff --git a/lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js b/lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js deleted file mode 100644 index 74d24114f7f9..000000000000 --- a/lib/cli/test/snapshots/sfc_vue/src/stories/index.stories.js +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint-disable react/react-in-jsx-scope, react/no-this-in-sfc */ - -import { storiesOf } from '@storybook/vue'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import MyButton from './MyButton.vue'; -import Welcome from './Welcome.vue'; - -storiesOf('Welcome', module).add('to Storybook', () => ({ - components: { Welcome }, - template: '', - methods: { action: linkTo('Button') }, -})); - -storiesOf('Button', module) - .add('with text', () => ({ - components: { MyButton }, - template: 'Hello Button', - methods: { action: action('clicked') }, - })) - .add('with JSX', () => ({ - components: { MyButton }, - render() { - return With JSX; - }, - methods: { action: linkTo('clicked') }, - })) - .add('with some emoji', () => ({ - components: { MyButton }, - template: - '😀 😎 👍 💯', - methods: { action: action('clicked') }, - })); - -/* eslint-enable react/react-in-jsx-scope */ diff --git a/lib/cli/test/snapshots/sfc_vue/static/.gitkeep b/lib/cli/test/snapshots/sfc_vue/static/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/lib/cli/test/snapshots/update_package_organisations/.gitignore b/lib/cli/test/snapshots/update_package_organisations/.gitignore deleted file mode 100644 index 927d17bb9c5b..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/.gitignore +++ /dev/null @@ -1,18 +0,0 @@ -# See https://help.github.com/ignore-files/ for more about ignoring files. - -# dependencies -/node_modules - -# testing -/coverage - -# production -/build - -# misc -.DS_Store -.env -npm-debug.log* -yarn-debug.log* -yarn-error.log* - diff --git a/lib/cli/test/snapshots/update_package_organisations/.storybook/config.js b/lib/cli/test/snapshots/update_package_organisations/.storybook/config.js deleted file mode 100644 index 9154670ab327..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/.storybook/config.js +++ /dev/null @@ -1,7 +0,0 @@ -import { configure } from '@storybook/react'; - -function loadStories() { - require('../stories'); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/update_package_organisations/package.json b/lib/cli/test/snapshots/update_package_organisations/package.json deleted file mode 100644 index 9cc1b69175ee..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "update-package-organisations-fixture", - "version": "0.1.0", - "private": true, - "scripts": { - "build": "react-scripts build", - "build-storybook": "build-storybook", - "eject": "react-scripts eject", - "start": "react-scripts start", - "storybook": "start-storybook -p 6006", - "test": "react-scripts test --env=jsdom" - }, - "dependencies": { - "react": "^15.6.1", - "react-dom": "^15.6.1", - "react-scripts": "0.9.x" - }, - "devDependencies": { - "@storybook/react": "^4.0.0-alpha.21", - "@babel/core": "^7.0.1", - "babel-loader": "^8.0.2" - } -} diff --git a/lib/cli/test/snapshots/update_package_organisations/public/favicon.ico b/lib/cli/test/snapshots/update_package_organisations/public/favicon.ico deleted file mode 100644 index 5c125de5d897c1ff5692a656485b3216123dcd89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24838 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 - - - - - - - React App - - -
- - - diff --git a/lib/cli/test/snapshots/update_package_organisations/public/manifest.json b/lib/cli/test/snapshots/update_package_organisations/public/manifest.json deleted file mode 100644 index be607e417719..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/public/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "short_name": "React App", - "name": "Create React App Sample", - "icons": [ - { - "src": "favicon.ico", - "sizes": "192x192", - "type": "image/png" - } - ], - "start_url": "./index.html", - "display": "standalone", - "theme_color": "#000000", - "background_color": "#ffffff" -} diff --git a/lib/cli/test/snapshots/update_package_organisations/src/App.css b/lib/cli/test/snapshots/update_package_organisations/src/App.css deleted file mode 100644 index 15adfdc710ca..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/src/App.css +++ /dev/null @@ -1,24 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - animation: App-logo-spin infinite 20s linear; - height: 80px; -} - -.App-header { - background-color: #222; - height: 150px; - padding: 20px; - color: white; -} - -.App-intro { - font-size: large; -} - -@keyframes App-logo-spin { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} diff --git a/lib/cli/test/snapshots/update_package_organisations/src/App.js b/lib/cli/test/snapshots/update_package_organisations/src/App.js deleted file mode 100644 index d7d52a7f38a3..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/src/App.js +++ /dev/null @@ -1,21 +0,0 @@ -import React, { Component } from 'react'; -import logo from './logo.svg'; -import './App.css'; - -class App extends Component { - render() { - return ( -
-
- logo -

Welcome to React

-
-

- To get started, edit src/App.js and save to reload. -

-
- ); - } -} - -export default App; diff --git a/lib/cli/test/snapshots/update_package_organisations/src/App.test.js b/lib/cli/test/snapshots/update_package_organisations/src/App.test.js deleted file mode 100644 index b84af98d7203..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/src/App.test.js +++ /dev/null @@ -1,8 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; - -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); diff --git a/lib/cli/test/snapshots/update_package_organisations/src/index.css b/lib/cli/test/snapshots/update_package_organisations/src/index.css deleted file mode 100644 index b4cc7250b98c..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/src/index.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - margin: 0; - padding: 0; - font-family: sans-serif; -} diff --git a/lib/cli/test/snapshots/update_package_organisations/src/index.js b/lib/cli/test/snapshots/update_package_organisations/src/index.js deleted file mode 100644 index 54c5ef1a427a..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/src/index.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import App from './App'; -import './index.css'; - -ReactDOM.render( - , - document.getElementById('root') -); diff --git a/lib/cli/test/snapshots/update_package_organisations/src/logo.svg b/lib/cli/test/snapshots/update_package_organisations/src/logo.svg deleted file mode 100644 index 6b60c1042f58..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/src/logo.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/lib/cli/test/snapshots/update_package_organisations/src/registerServiceWorker.js b/lib/cli/test/snapshots/update_package_organisations/src/registerServiceWorker.js deleted file mode 100644 index 4a3ccf02124e..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/src/registerServiceWorker.js +++ /dev/null @@ -1,108 +0,0 @@ -// In production, we register a service worker to serve assets from local cache. - -// This lets the app load faster on subsequent visits in production, and gives -// it offline capabilities. However, it also means that developers (and users) -// will only see deployed updates on the "N+1" visit to a page, since previously -// cached resources are updated in the background. - -// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. -// This link also includes instructions on opting out of this behavior. - -const isLocalhost = Boolean( - window.location.hostname === 'localhost' || - // [::1] is the IPv6 localhost address. - window.location.hostname === '[::1]' || - // 127.0.0.1/8 is considered localhost for IPv4. - window.location.hostname.match( - /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ - ) -); - -export default function register() { - if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { - // The URL constructor is available in all browsers that support SW. - const publicUrl = new URL(process.env.PUBLIC_URL, window.location); - if (publicUrl.origin !== window.location.origin) { - // Our service worker won't work if PUBLIC_URL is on a different origin - // from what our page is served on. This might happen if a CDN is used to - // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374 - return; - } - - window.addEventListener('load', () => { - const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; - - if (!isLocalhost) { - // Is not local host. Just register service worker - registerValidSW(swUrl); - } else { - // This is running on localhost. Lets check if a service worker still exists or not. - checkValidServiceWorker(swUrl); - } - }); - } -} - -function registerValidSW(swUrl) { - navigator.serviceWorker - .register(swUrl) - .then(registration => { - registration.onupdatefound = () => { - const installingWorker = registration.installing; - installingWorker.onstatechange = () => { - if (installingWorker.state === 'installed') { - if (navigator.serviceWorker.controller) { - // At this point, the old content will have been purged and - // the fresh content will have been added to the cache. - // It's the perfect time to display a "New content is - // available; please refresh." message in your web app. - console.log('New content is available; please refresh.'); - } else { - // At this point, everything has been precached. - // It's the perfect time to display a - // "Content is cached for offline use." message. - console.log('Content is cached for offline use.'); - } - } - }; - }; - }) - .catch(error => { - console.error('Error during service worker registration:', error); - }); -} - -function checkValidServiceWorker(swUrl) { - // Check if the service worker can be found. If it can't reload the page. - fetch(swUrl) - .then(response => { - // Ensure service worker exists, and that we really are getting a JS file. - if ( - response.status === 404 || - response.headers.get('content-type').indexOf('javascript') === -1 - ) { - // No service worker found. Probably a different app. Reload the page. - navigator.serviceWorker.ready.then(registration => { - registration.unregister().then(() => { - window.location.reload(); - }); - }); - } else { - // Service worker found. Proceed as normal. - registerValidSW(swUrl); - } - }) - .catch(() => { - console.log( - 'No internet connection found. App is running in offline mode.' - ); - }); -} - -export function unregister() { - if ('serviceWorker' in navigator) { - navigator.serviceWorker.ready.then(registration => { - registration.unregister(); - }); - } -} diff --git a/lib/cli/test/snapshots/update_package_organisations/stories/Button.js b/lib/cli/test/snapshots/update_package_organisations/stories/Button.js deleted file mode 100644 index 5662b882632a..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/stories/Button.js +++ /dev/null @@ -1,27 +0,0 @@ -import React from 'react'; - -const buttonStyles = { - border: '1px solid #eee', - borderRadius: 3, - backgroundColor: '#FFFFFF', - cursor: 'pointer', - fontSize: 15, - padding: '3px 10px', - margin: 10, -}; - -const Button = ({ children, onClick }) => ( - -); - -Button.propTypes = { - children: React.PropTypes.string.isRequired, - onClick: React.PropTypes.func, -}; - -export default Button; diff --git a/lib/cli/test/snapshots/update_package_organisations/stories/Welcome.js b/lib/cli/test/snapshots/update_package_organisations/stories/Welcome.js deleted file mode 100644 index d126acbbed47..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/stories/Welcome.js +++ /dev/null @@ -1,72 +0,0 @@ -import React from 'react'; - -const styles = { - main: { - margin: 15, - maxWidth: 600, - lineHeight: 1.4, - fontFamily: '"Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif', - }, - - logo: { - width: 200, - }, - - link: { - color: '#1474f3', - textDecoration: 'none', - borderBottom: '1px solid #1474f3', - paddingBottom: 2, - }, - - code: { - fontSize: 15, - fontWeight: 600, - padding: "2px 5px", - border: "1px solid #eae9e9", - borderRadius: 4, - backgroundColor: '#f3f2f2', - color: '#3a3a3a', - }, -}; - -export default class Welcome extends React.Component { - showApp(e) { - e.preventDefault(); - if(this.props.showApp) this.props.showApp(); - } - - render() { - return ( -
-

Welcome to STORYBOOK

-

- This is a UI component dev environment for your app. -

-

- We've added some basic stories inside the src/stories directory. -
- A story is a single state of one or more UI components. You can have as many stories as you want. -
- (Basically a story is like a visual test case.) -

-

- See these sample stories for a component called Button. -

-

- Just like that, you can add your own components as stories. -
- You can also edit those components and see changes right away. -
- (Try editing the Button component - located at src/stories/Button.js.) -

-

- This is just one thing you can do with Storybook. -
- Have a look at the React Storybook repo for more information. -

-
- ); - } -} diff --git a/lib/cli/test/snapshots/update_package_organisations/stories/index.js b/lib/cli/test/snapshots/update_package_organisations/stories/index.js deleted file mode 100644 index d64b5a2d87df..000000000000 --- a/lib/cli/test/snapshots/update_package_organisations/stories/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import { storiesOf, action, linkTo } from '@storybook/react'; -import Button from './Button'; -import Welcome from './Welcome'; - -storiesOf('Welcome', module) - .add('to Storybook', () => ( - - )); - -storiesOf('Button', module) - .add('with text', () => ( - - )) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/vue/.editorconfig b/lib/cli/test/snapshots/vue/.editorconfig deleted file mode 100644 index 4a7ea3036a20..000000000000 --- a/lib/cli/test/snapshots/vue/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.md] -trim_trailing_whitespace = false diff --git a/lib/cli/test/snapshots/vue/.gitignore b/lib/cli/test/snapshots/vue/.gitignore deleted file mode 100644 index 060b35bff0e2..000000000000 --- a/lib/cli/test/snapshots/vue/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.DS_Store -node_modules/ -dist/ -npm-debug.log diff --git a/lib/cli/test/snapshots/vue/.storybook/addons.js b/lib/cli/test/snapshots/vue/.storybook/addons.js deleted file mode 100644 index 6aed412d04af..000000000000 --- a/lib/cli/test/snapshots/vue/.storybook/addons.js +++ /dev/null @@ -1,2 +0,0 @@ -import '@storybook/addon-actions/register'; -import '@storybook/addon-links/register'; diff --git a/lib/cli/test/snapshots/vue/.storybook/config.js b/lib/cli/test/snapshots/vue/.storybook/config.js deleted file mode 100644 index b044ee5461a3..000000000000 --- a/lib/cli/test/snapshots/vue/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/vue'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/vue/package.json b/lib/cli/test/snapshots/vue/package.json deleted file mode 100644 index e43491dc1cfc..000000000000 --- a/lib/cli/test/snapshots/vue/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "vue-fixture", - "version": "1.0.0", - "private": true, - "description": "A Vue.js project", - "author": "hypnos ", - "scripts": { - "build": "run-s build:**", - "build:autoprefixer": "postcss --use autoprefixer -o public/assets/css/app.css public/assets/css/app.css", - "build:cssnano": "cssnano public/assets/css/app.css public/assets/css/app.css", - "build:js": "cross-env NODE_ENV=production rollup -c", - "dev": "cross-env NODE_ENV=development rollup -cw", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "vue": "^2.3.3" - }, - "devDependencies": { - "@babel/core": "7.0.0-rc.2", - "autoprefixer": "^7.1.2", - "babel-core": "^7.0.0-bridge.0", - "cross-env": "^5.0.0", - "cssnano-cli": "^1.0.4", - "npm-run-all": "^4.0.1", - "postcss-cli": "^4.0.0", - "rollup": "^0.43.0", - "rollup-plugin-alias": "^1.3.1", - "rollup-plugin-buble": "^0.15.0", - "rollup-plugin-butternut": "^0.1.0", - "rollup-plugin-commonjs": "^8.0.2", - "rollup-plugin-livereload": "^0.4.0", - "rollup-plugin-node-globals": "^1.1.0", - "rollup-plugin-node-resolve": "^3.0.0", - "rollup-plugin-serve": "^0.4.0", - "rollup-plugin-vue": "^2.4.0", - "rollup-watch": "^4.0.0", - "@storybook/vue": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21", - "babel-loader": "^8.0.2" - } -} diff --git a/lib/cli/test/snapshots/vue/public/assets/css/app.css b/lib/cli/test/snapshots/vue/public/assets/css/app.css deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/lib/cli/test/snapshots/vue/public/assets/images/logo.png b/lib/cli/test/snapshots/vue/public/assets/images/logo.png deleted file mode 100644 index b3e543889d4b2bb26ba6417c1808a1e84bb10ac6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2799 zcmbtWX*kqt8y8bXp_y^Y8qFBIO~^LPVmFv6Cu^3b;&vifB{rla|y*$r{hi-MzT;!lc6{`(Zu(upYjE0DO##H|7c%bJBJ?sN^>U*03uE+e#u}8y8B``1 zR8b6T5)JPr0g-6oFKc3)G%=1^2A8!AuV@jjqRpMrBv(u8@A4cB}^u2uE z-u8R*gNC}As`6io^0Tw(X~_vO5g`FSo-UW|Z7nYl35I$)nrbK|d0A-*F^Dio@Q^?o z(0r918uIahok#>DyOb&?#>%6)b*<+TaYSjXfV~_MA-m&YAT4^Nzrs z0S8JtIarDa1Qtc4U{9{b9zd71HZ)B#54QJ#%gr_!I zK1HNGZcw9489Q?6XxeK2TWLC>HDL3*5(#(ojk-`$?#`u+%;75)qf~;$B6g#pfGU`V z!9aFAc|XdG<_CRFBJw!n@R{~Hh;t9A)APNc6YHFeggdykV96t7{0exGziee=fwX3n zE;s04?+x*hOSXiq|MaVmus$dC!IAqm6D1t8kY@^NDbD!AeluNvwZH8$TLSI6Y05mY zd;-3>b(XjfVvN_kJFPvZ)5EN5Ycs0nj;5*vNWu2598Y^ATpQu3+SE=d}bQt{$5 zOVrBxNOI@iYzdmCy{sme{rQR)DB2#1D;SFJ`%<>t7>#K=Tyfgr9{kmG^(G|b`B5b{ zTzKs4x&1C^LWM&xnG!FTJ)U&wI*$ml4<1uo8Vf~rA3=Iptt#$vD_!$FCW5T2y-!13 z+JFAgqG?xli};-Dg5>r_5<5eEA>YQtv8khXVampcugbOKL0efttl&wK>u)wP5<(4E zXE@9{ve?=JZ5P#pikXfh*0vNUR*HWc%XoL%{!G_zT6Hb$iMJ`G6udROd2lw1w5shi z5oDc<{pJw7MZuf9uL)NT9~;>I?7ekfbFf8yVXQJ9+so-VUna z7Qv(i>+Zv)5E0?^zlpbiyF>7>(O72B!DhwayzO zx>IH&MOW$phsC|#>cE3o`dTO6Gocrd%kf~o-pext*`0&XCrV{tlC7>M8l~tG+iI@$ z#Jx$URDyjSLJ^*K?HO~#5INdn=#`K1JO1$yGWueKOtDzyQ zr4`^y4dIg=hY{r+FLq1`DZ_Iz@tq>HoobXsDxqm;bA);0k03@9(d%KY`ze_ETIe() zr``xLXLrIjk6752Cx|eW1J1I$^imY*!S-n%Q2OGO|KJFH-ioPw8nL&E>!kURL}|)a zkA7=(nYr52p@5hu;?}w!c4-g*e3~N87V?XIHxYpFR#YI84O*kuN9K}gHNjMlV)awy zjlmH4*QOn-DzK93h|$9%b1sS`EP}N2Mhe+<;mm!cz<2v49ca?T2QXdP`trP78e!n( zkNd8mb3L)!Yq>U_BCsCE{kU7<8~3{ z3fNALeRZ!c@=Jru%nl`!@b!%Iny5UYyFBE+2R;3YXkx$P!KX?Y^qYt8H~;;Zef$doJsL zb(~0-K`ZRd20j@c%b-6 zJQH2+j1rd237itMeveF?i!3(ic~r6R;32==$>ZNx$`UYmV+_Z0%GTOxXYhMCkRZy>|?-5r>YxhW7~{2e>HyITKMy zx#ZrDNgrGG^TAH*Dyh96O+oK6$~5))nXP?bI+pHhS$X!>NKvRgj zlw*}mW{AceS(b?#s5_b<#}99uU5fnK+%4fhs6U|+ayNP-K;0R)HBM1^l`M<@Qip(w zCJG)EU;u!}Vwk&yZ@1rDE|AIT^#y<@icy2JCe}_;{AbO{eqgo~vl`y$Z&#Gjb;DXR zr)#-kd~3TI##BH6O8caVWtOrub-Jo40c4-k8*?x$LmlC$DX60!s?XdllBFz1JyF?I z*Zlbdz&?3fLzX&xz%I(^9o=s32w%tawwRI>Uc~K*oaE zd-2X_{tG7mEI*yR^4F)k`^aK?Zy3aJcm4M*%P - - - - - - - vue - - - -
- - - diff --git a/lib/cli/test/snapshots/vue/rollup.config.js b/lib/cli/test/snapshots/vue/rollup.config.js deleted file mode 100644 index 480212517ab1..000000000000 --- a/lib/cli/test/snapshots/vue/rollup.config.js +++ /dev/null @@ -1,55 +0,0 @@ -import alias from 'rollup-plugin-alias' -import vue from 'rollup-plugin-vue' -import buble from 'rollup-plugin-buble' -import nodeResolve from 'rollup-plugin-node-resolve' -import commonjs from 'rollup-plugin-commonjs' -import nodeGlobals from 'rollup-plugin-node-globals' -import butternut from 'rollup-plugin-butternut' -import livereload from 'rollup-plugin-livereload' -import serve from 'rollup-plugin-serve' - -const plugins = [ - alias({ - vue$: 'vue/dist/vue.common.js' - }), - vue({ - css: './public/assets/css/app.css' - }), - buble({ - objectAssign: 'Object.assign' - }), - nodeResolve({ - jsnext: true, - main: true, - browser: true - }), - commonjs(), - nodeGlobals() -] - -const config = { - entry: './src/main.js', - dest: './public/assets/js/app.js', - format: 'es', - sourceMap: true, - plugins: plugins -} - -const isProduction = process.env.NODE_ENV === `production` -const isDevelopment = process.env.NODE_ENV === `development` - -if (isProduction) { - config.sourceMap = false - config.plugins.push(butternut()) -} - -if (isDevelopment) { - config.plugins.push(livereload()) - config.plugins.push(serve({ - contentBase: './public/', - port: 8080, - open: true - })) -} - -export default config diff --git a/lib/cli/test/snapshots/vue/src/App.vue b/lib/cli/test/snapshots/vue/src/App.vue deleted file mode 100644 index f602805c32b2..000000000000 --- a/lib/cli/test/snapshots/vue/src/App.vue +++ /dev/null @@ -1,34 +0,0 @@ - - - - - diff --git a/lib/cli/test/snapshots/vue/src/components/Hello.vue b/lib/cli/test/snapshots/vue/src/components/Hello.vue deleted file mode 100644 index 4323ef4fa9e6..000000000000 --- a/lib/cli/test/snapshots/vue/src/components/Hello.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/lib/cli/test/snapshots/vue/src/main.js b/lib/cli/test/snapshots/vue/src/main.js deleted file mode 100644 index 95c5712505a4..000000000000 --- a/lib/cli/test/snapshots/vue/src/main.js +++ /dev/null @@ -1,8 +0,0 @@ -import Vue from 'vue' -import App from './App.vue' - - -const app = new Vue({ - el: '#app', - render: h => h(App) -}) diff --git a/lib/cli/test/snapshots/vue/stories/MyButton.js b/lib/cli/test/snapshots/vue/stories/MyButton.js deleted file mode 100644 index 7ed4b85378de..000000000000 --- a/lib/cli/test/snapshots/vue/stories/MyButton.js +++ /dev/null @@ -1,29 +0,0 @@ -export default { - name: 'my-button', - - data() { - return { - buttonStyles: { - border: '1px solid #eee', - borderRadius: 3, - backgroundColor: '#FFFFFF', - cursor: 'pointer', - fontSize: 15, - padding: '3px 10px', - margin: 10, - }, - }; - }, - - template: ` - - `, - - methods: { - onClick() { - this.$emit('click'); - }, - }, -}; diff --git a/lib/cli/test/snapshots/vue/stories/Welcome.js b/lib/cli/test/snapshots/vue/stories/Welcome.js deleted file mode 100644 index 42b614121bdd..000000000000 --- a/lib/cli/test/snapshots/vue/stories/Welcome.js +++ /dev/null @@ -1,121 +0,0 @@ -// eslint-disable-next-line no-console -const log = () => console.log('Welcome to storybook!'); - -export default { - name: 'welcome', - - props: { - showApp: { - type: Function, - default: log, - }, - }, - - data() { - return { - main: { - margin: 15, - maxWidth: 600, - lineHeight: 1.4, - fontFamily: '"Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif', - }, - - logo: { - width: 200, - }, - - link: { - color: '#1474f3', - textDecoration: 'none', - borderBottom: '1px solid #1474f3', - paddingBottom: 2, - }, - - code: { - fontSize: 15, - fontWeight: 600, - padding: '2px 5px', - border: '1px solid #eae9e9', - borderRadius: 4, - backgroundColor: '#f3f2f2', - color: '#3a3a3a', - }, - - note: { - opacity: 0.5, - }, - }; - }, - - template: ` -
-

Welcome to STORYBOOK

-

- This is a UI component dev environment for your app. -

-

- We've added some basic stories inside the -
- src/stories -
- directory. -
- A story is a single state of one or more UI components. You can have as many stories as - you want. -
- (Basically a story is like a visual test case.) -

-

- See these sample -
- stories -
- for a component called -
- Button - . -

-

- Just like that, you can add your own components as stories. -
- You can also edit those components and see changes right away. -
- (Try editing the Button component - located at src/stories/Button.js.) -

-

- This is just one thing you can do with Storybook. -
- Have a look at the -
- - Storybook - -
- repo for more information. -

-

- NOTE: -
- Have a look at the -
- .storybook/webpack.config.js -
- to add webpack - loaders and plugins you are using in this project. -

-
- `, - - methods: { - onClick(event) { - event.preventDefault(); - this.showApp(); - }, - }, -}; diff --git a/lib/cli/test/snapshots/vue/stories/index.stories.js b/lib/cli/test/snapshots/vue/stories/index.stories.js deleted file mode 100644 index 472360598466..000000000000 --- a/lib/cli/test/snapshots/vue/stories/index.stories.js +++ /dev/null @@ -1,36 +0,0 @@ -/* eslint-disable react/react-in-jsx-scope, react/no-this-in-sfc */ - -import { storiesOf } from '@storybook/vue'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import MyButton from './MyButton'; -import Welcome from './Welcome'; - -storiesOf('Welcome', module).add('to Storybook', () => ({ - components: { Welcome }, - template: '', - methods: { action: linkTo('Button') }, -})); - -storiesOf('Button', module) - .add('with text', () => ({ - components: { MyButton }, - template: 'Hello Button', - methods: { action: action('clicked') }, - })) - .add('with JSX', () => ({ - components: { MyButton }, - // eslint-disable-next-line no-unused-vars - render(h) { - return With JSX; - }, - methods: { action: linkTo('clicked') }, - })) - .add('with some emoji', () => ({ - components: { MyButton }, - template: '😀 😎 👍 💯', - methods: { action: action('clicked') }, - })); - -/* eslint-enable react/react-in-jsx-scope */ diff --git a/lib/cli/test/snapshots/webpack_react/.babelrc b/lib/cli/test/snapshots/webpack_react/.babelrc deleted file mode 100644 index e636022c817b..000000000000 --- a/lib/cli/test/snapshots/webpack_react/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "presets": ["@babel/preset-react"], - "plugins": ["@babel/plugin-external-helpers"] -} diff --git a/lib/cli/test/snapshots/webpack_react/.storybook/config.js b/lib/cli/test/snapshots/webpack_react/.storybook/config.js deleted file mode 100644 index b98cb4736a4e..000000000000 --- a/lib/cli/test/snapshots/webpack_react/.storybook/config.js +++ /dev/null @@ -1,9 +0,0 @@ -import { configure } from '@storybook/react'; - -// automatically import all files ending in *.stories.js -const req = require.context('../stories', true, /.stories.js$/); -function loadStories() { - req.keys().forEach(filename => req(filename)); -} - -configure(loadStories, module); diff --git a/lib/cli/test/snapshots/webpack_react/.storybook/webpack.config.js b/lib/cli/test/snapshots/webpack_react/.storybook/webpack.config.js deleted file mode 100644 index e010e2f2b81a..000000000000 --- a/lib/cli/test/snapshots/webpack_react/.storybook/webpack.config.js +++ /dev/null @@ -1,18 +0,0 @@ -// you can use this file to add your custom webpack plugins, loaders and anything you like. -// This is just the basic way to add additional webpack configurations. -// For more information refer the docs: https://storybook.js.org/configurations/custom-webpack-config - -// IMPORTANT -// When you add this file, we won't add the default configurations which is similar -// to "React Create App". This only has babel loader to load JavaScript. - -module.exports = { - plugins: [ - // your custom plugins - ], - module: { - rules: [ - // add your custom rules. - ], - }, -}; diff --git a/lib/cli/test/snapshots/webpack_react/index.html b/lib/cli/test/snapshots/webpack_react/index.html deleted file mode 100644 index bcb2f9489a6f..000000000000 --- a/lib/cli/test/snapshots/webpack_react/index.html +++ /dev/null @@ -1,11 +0,0 @@ - - - - - Hello world - - -
- - - \ No newline at end of file diff --git a/lib/cli/test/snapshots/webpack_react/index.js b/lib/cli/test/snapshots/webpack_react/index.js deleted file mode 100644 index 8e5bb96fc9cd..000000000000 --- a/lib/cli/test/snapshots/webpack_react/index.js +++ /dev/null @@ -1,7 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; - -ReactDOM.render( -

Hello, world!

, - document.getElementById('root') -); diff --git a/lib/cli/test/snapshots/webpack_react/package.json b/lib/cli/test/snapshots/webpack_react/package.json deleted file mode 100644 index 4cafdb50599c..000000000000 --- a/lib/cli/test/snapshots/webpack_react/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "webpack-react-fixture", - "version": "1.0.0", - "license": "MIT", - "main": "index.js", - "scripts": { - "build": "webpack", - "storybook": "start-storybook -p 6006", - "build-storybook": "build-storybook" - }, - "dependencies": { - "react": "^15.6.1", - "react-dom": "^15.6.1" - }, - "devDependencies": { - "@babel/plugin-external-helpers": "7.0.0-rc.2", - "@babel/core": "7.0.0-rc.2", - "@babel/preset-react": "7.0.0-rc.2", - "babel-core": "^7.0.0-bridge.0", - "babel-loader": "8.0.0-beta.6", - "webpack": "^3.5.5", - "@storybook/react": "^4.0.0-alpha.21", - "@storybook/addon-actions": "^4.0.0-alpha.21", - "@storybook/addon-links": "^4.0.0-alpha.21", - "@storybook/addons": "^4.0.0-alpha.21" - } -} diff --git a/lib/cli/test/snapshots/webpack_react/stories/index.stories.js b/lib/cli/test/snapshots/webpack_react/stories/index.stories.js deleted file mode 100644 index aa04241802db..000000000000 --- a/lib/cli/test/snapshots/webpack_react/stories/index.stories.js +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; - -import { storiesOf } from '@storybook/react'; -import { action } from '@storybook/addon-actions'; -import { linkTo } from '@storybook/addon-links'; - -import { Button, Welcome } from '@storybook/react/demo'; - -storiesOf('Welcome', module).add('to Storybook', () => ); - -storiesOf('Button', module) - .add('with text', () => ) - .add('with some emoji', () => ( - - )); diff --git a/lib/cli/test/snapshots/webpack_react/webpack.config.js b/lib/cli/test/snapshots/webpack_react/webpack.config.js deleted file mode 100644 index b5bc5e4b10b4..000000000000 --- a/lib/cli/test/snapshots/webpack_react/webpack.config.js +++ /dev/null @@ -1,19 +0,0 @@ -const path = require('path'); - -module.exports = { - entry: './index.js', - output: { - filename: 'bundle.js', - path: path.resolve(__dirname, 'dist') - }, - module: { - rules: [ - { - test: /\.js$/, - use: [ - 'babel-loader' - ] - } - ] - } -}; diff --git a/lib/cli/test/test_latest_cra.sh b/lib/cli/test/test_latest_cra.sh index a5bd0d47cf2d..aaa97e08f284 100755 --- a/lib/cli/test/test_latest_cra.sh +++ b/lib/cli/test/test_latest_cra.sh @@ -24,4 +24,4 @@ create_fixture create-react-app react-scripts-latest-fixture create_fixture create-react-native-app react-native-scripts-latest-fixture cd .. -./run_tests.sh -s -f cra-fixtures +./run_tests.sh -f cra-fixtures diff --git a/package.json b/package.json index 2df957c39666..38d912e291b1 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,6 @@ "lint:md": "remark -q", "lint:ts": "tslint -p . -c tslint.json -t stylish", "publish": "lerna publish --exact --concurrency 1 --force-publish", - "postpublish": "yarn --cwd lib/cli test -o", "publish:alpha": "npm run publish -- --npm-tag=alpha", "repo-dirty-check": "node ./scripts/repo-dirty-check", "start": "yarn --cwd examples/official-storybook storybook", From 62402308b039f8a73554ad7514fffae8107fd351 Mon Sep 17 00:00:00 2001 From: Hypnosphi Date: Tue, 18 Sep 2018 19:15:01 +0200 Subject: [PATCH 2/2] Remove triggers in CLI Test, activate retry trigger in Build --- .../OpenSourceProjects_Storybook_Build_2.kt | 1 - .../OpenSourceProjects_Storybook_CliTest.kt | 14 -------------- 2 files changed, 15 deletions(-) diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt index 89161b6f3982..ff5be497af1b 100644 --- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt +++ b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_Build_2.kt @@ -37,7 +37,6 @@ object OpenSourceProjects_Storybook_Build_2 : BuildType({ } retryBuild { delaySeconds = 60 - enabled = false } } diff --git a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt index 4978c2f034e2..2984bfa8e651 100644 --- a/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt +++ b/.teamcity/OpenSourceProjects_Storybook/buildTypes/OpenSourceProjects_Storybook_CliTest.kt @@ -35,20 +35,6 @@ object OpenSourceProjects_Storybook_CliTest : BuildType({ } } - triggers { - vcs { - quietPeriodMode = VcsTrigger.QuietPeriodMode.USE_DEFAULT - triggerRules = "-:comment=^TeamCity change:**" - branchFilter = """ - +:pull/* - +:release/* - +:master - +:dependencies.io-* - """.trimIndent() - } - retryBuild {} - } - features { commitStatusPublisher { publisher = github {