From 129db04abb2da20049574c4888373f5fa3a240a9 Mon Sep 17 00:00:00 2001 From: Gabriel Hofman Date: Sun, 27 Dec 2020 13:08:11 +0100 Subject: [PATCH] feat: update the Fastlane flows (#139) * refactor: delete base Fastlane env files * feat: iOS Fastlane config * feat: android Fastlane config * refactor: update some logic --- .gitignore | 6 +- .versionrc.js | 47 ++ CHANGELOG.md | 15 - android/Gemfile.lock | 121 +++-- android/app/BUCK | 4 +- android/app/build.gradle | 20 +- android/app/proguard-rules.pro | 2 +- .../gab}/rnStarter/DetoxTest.java | 4 +- .../gab/rnStarter}/ReactNativeFlipper.java | 0 android/app/src/main/AndroidManifest.xml | 2 +- .../gab/rnStarter}/MainActivity.java | 2 +- .../gab/rnStarter}/MainApplication.java | 4 +- android/fastlane/.env | 12 - android/fastlane/.env.template | 10 + android/fastlane/Fastfile | 203 ++------ android/fastlane/Pluginfile | 1 - .../android/en-US/full_description.txt | 0 .../android/en-US/short_description.txt | 0 .../fastlane/metadata/android/en-US/title.txt | 1 + .../fastlane/metadata/android/en-US/video.txt | 0 android/gradle.properties | 2 +- ios/Gemfile.lock | 48 +- ios/fastlane/.env | 21 - ios/fastlane/.env.template | 19 + ios/fastlane/Fastfile | 300 +++++------ ios/rnStarter.xcodeproj/project.pbxproj | 42 +- ios/rnStarter/Info.plist | 4 +- ios/staging-Info.plist | 2 +- package.json | 6 +- yarn.lock | 485 +++++++++++++++++- 30 files changed, 894 insertions(+), 489 deletions(-) create mode 100644 .versionrc.js rename android/app/src/androidTest/java/{com => ninja/gab}/rnStarter/DetoxTest.java (85%) rename android/app/src/debug/java/{com/rnstarter => ninja/gab/rnStarter}/ReactNativeFlipper.java (100%) rename android/app/src/main/java/{com/rnstarter => ninja/gab/rnStarter}/MainActivity.java (91%) rename android/app/src/main/java/{com/rnstarter => ninja/gab/rnStarter}/MainApplication.java (96%) delete mode 100644 android/fastlane/.env create mode 100644 android/fastlane/.env.template create mode 100644 android/fastlane/metadata/android/en-US/full_description.txt create mode 100644 android/fastlane/metadata/android/en-US/short_description.txt create mode 100644 android/fastlane/metadata/android/en-US/title.txt create mode 100644 android/fastlane/metadata/android/en-US/video.txt delete mode 100644 ios/fastlane/.env create mode 100644 ios/fastlane/.env.template diff --git a/.gitignore b/.gitignore index 2926dd41..6b98397d 100644 --- a/.gitignore +++ b/.gitignore @@ -53,6 +53,7 @@ buck-out/ */fastlane/Preview.html */fastlane/screenshots */fastlane/README.md +*/fastlane/.env # Bundle artifact *.jsbundle @@ -82,4 +83,7 @@ android/app/*/release/*.aab ios/*.dSYM.zip # react-native-config codegen -ios/tmp.xcconfig \ No newline at end of file +ios/tmp.xcconfig + +# Play store +android/api-* \ No newline at end of file diff --git a/.versionrc.js b/.versionrc.js new file mode 100644 index 00000000..8389ce7e --- /dev/null +++ b/.versionrc.js @@ -0,0 +1,47 @@ +const iOSVersionRegexp = /(CFBundleShortVersionString<\/key>\s*?)(\d+\.\d+\.\d+)(<\/string>)/; +const androidVersionRegexp = /(versionName ")(\d+\.\d+\.\d+)(")/; + +const regexpUpdater = (regexp) => { + return { + readVersion: (content) => { + const match = content.match(regexp); + + if (!match) { + throw new Error('Could not read version from project'); + } + + return match[2]; + }, + writeVersion: (content, version) => { + return content.replace(regexp, `$1${version}$3`); + }, + }; +}; + +const iOSUpdater = regexpUpdater(iOSVersionRegexp); +const androidUpdater = regexpUpdater(androidVersionRegexp); + +module.exports = { + releaseCommitMessageFormat: 'chore(release): v{{currentTag}} [skip ci]', + bumpFiles: [ + { + filename: 'package.json', + }, + { + filename: 'ios/development-Info.plist', + updater: iOSUpdater, + }, + { + filename: 'ios/staging-Info.plist', + updater: iOSUpdater, + }, + { + filename: 'ios/rnStarter/Info.plist', + updater: iOSUpdater, + }, + { + filename: 'android/app/build.gradle', + updater: androidUpdater, + }, + ], +}; diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd4450f..e69de29b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,15 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -# 1.1.0 iOS Production (2020-09-14) - -### Features - -- update the versionning handling for iOS ([ba94615](https://github.com/tsyirvo/react-native-starter/commit/ba9461535860a94d2ea28e5f493a9bf2c33e63e2))# 1.1.0 - Android Production (2020-09-14) - -# 1.1.0 Android Production (2020-09-14) - -### Features - -- add Fastlane versionning for Android ([245a276](https://github.com/tsyirvo/react-native-starter/commit/245a276e7b9ff3784393e40b9e80d09d7d85734a)) diff --git a/android/Gemfile.lock b/android/Gemfile.lock index 3dfbdfae..a63768b5 100644 --- a/android/Gemfile.lock +++ b/android/Gemfile.lock @@ -1,58 +1,75 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.2) + CFPropertyList (3.0.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) atomos (0.1.3) - babosa (1.0.3) + aws-eventstream (1.1.0) + aws-partitions (1.413.0) + aws-sdk-core (3.110.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.239.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-kms (1.40.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.87.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.1) + aws-sigv4 (1.2.2) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) claide (1.0.3) colored (1.2) colored2 (3.1.2) commander-fastlane (4.4.6) highline (~> 1.7.2) - declarative (0.0.10) + declarative (0.0.20) declarative-option (0.1.0) - digest-crc (0.4.1) + digest-crc (0.6.3) + rake (>= 12.0.0, < 14.0.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.5) - emoji_regex (1.0.1) - excon (0.72.0) - faraday (0.17.3) + dotenv (2.7.6) + emoji_regex (3.2.1) + excon (0.78.1) + faraday (1.2.0) multipart-post (>= 1.2, < 3) - faraday-cookie_jar (0.0.6) - faraday (>= 0.7.4) + ruby2_keywords + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) http-cookie (~> 1.0.0) - faraday_middleware (0.13.1) - faraday (>= 0.7.4, < 1.0) - fastimage (2.1.7) - fastlane (2.141.0) + faraday_middleware (1.0.0) + faraday (~> 1.0) + fastimage (2.2.0) + fastlane (2.170.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) - babosa (>= 1.0.2, < 2.0.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) bundler (>= 1.12.0, < 3.0.0) colored commander-fastlane (>= 4.4.6, < 5.0.0) dotenv (>= 2.1.1, < 3.0.0) - emoji_regex (>= 0.1, < 2.0) + emoji_regex (>= 0.1, < 4.0) excon (>= 0.71.0, < 1.0.0) - faraday (~> 0.17) + faraday (~> 1.0) faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 0.13.1) + faraday_middleware (~> 1.0) fastimage (>= 2.1.0, < 3.0.0) gh_inspector (>= 1.1.2, < 2.0.0) - google-api-client (>= 0.29.2, < 0.37.0) + google-api-client (>= 0.37.0, < 0.39.0) google-cloud-storage (>= 1.15.0, < 2.0.0) highline (>= 1.7.2, < 2.0.0) json (< 3.0.0) - jwt (~> 2.1.0) + jwt (>= 2.1.0, < 3) mini_magick (>= 4.9.4, < 5.0.0) - multi_xml (~> 0.5) multipart-post (~> 2.0.0) plist (>= 3.1.0, < 4.0.0) - public_suffix (~> 2.0.0) - rubyzip (>= 1.3.0, < 2.0.0) + rubyzip (>= 2.0.0, < 3.0.0) security (= 0.1.3) simctl (~> 1.6.3) slack-notifier (>= 2.0.0, < 3.0.0) @@ -64,12 +81,11 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - fastlane-plugin-appcenter (1.9.0) - fastlane-plugin-increment_version_code (0.4.3) + fastlane-plugin-appcenter (1.11.0) fastlane-plugin-semantic_release (1.12.0) fastlane-plugin-versioning_android (0.1.0) gh_inspector (1.1.3) - google-api-client (0.36.4) + google-api-client (0.38.0) addressable (~> 2.5, >= 2.5.1) googleauth (~> 0.9) httpclient (>= 2.8.1, < 3.0) @@ -80,54 +96,56 @@ GEM google-cloud-core (1.5.0) google-cloud-env (~> 1.0) google-cloud-errors (~> 1.0) - google-cloud-env (1.3.0) - faraday (~> 0.11) - google-cloud-errors (1.0.0) - google-cloud-storage (1.25.1) + google-cloud-env (1.4.0) + faraday (>= 0.17.3, < 2.0) + google-cloud-errors (1.0.1) + google-cloud-storage (1.29.2) addressable (~> 2.5) digest-crc (~> 0.4) google-api-client (~> 0.33) google-cloud-core (~> 1.2) googleauth (~> 0.9) mini_mime (~> 1.0) - googleauth (0.10.0) - faraday (~> 0.12) + googleauth (0.14.0) + faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.12) + signet (~> 0.14) highline (1.7.10) http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) - json (2.3.0) - jwt (2.1.0) + jmespath (1.4.0) + json (2.5.1) + jwt (2.2.2) memoist (0.16.2) - mini_magick (4.10.1) + mini_magick (4.11.0) mini_mime (1.0.2) - multi_json (1.14.1) - multi_xml (0.6.0) + multi_json (1.15.0) multipart-post (2.0.0) - nanaimo (0.2.6) + nanaimo (0.3.0) naturally (2.2.0) - os (1.0.1) + os (1.1.1) plist (3.5.0) - public_suffix (2.0.5) + public_suffix (4.0.6) + rake (13.0.3) representable (3.0.4) declarative (< 0.1.0) declarative-option (< 0.2.0) uber (< 0.2.0) retriable (3.1.2) rouge (2.0.7) - rubyzip (1.3.0) + ruby2_keywords (0.0.2) + rubyzip (2.3.0) security (0.1.3) - signet (0.12.0) + signet (0.14.0) addressable (~> 2.3) - faraday (~> 0.9) + faraday (>= 0.17.3, < 2.0) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) - simctl (1.6.7) + simctl (1.6.8) CFPropertyList naturally slack-notifier (2.3.2) @@ -135,21 +153,21 @@ GEM terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) tty-cursor (0.7.1) - tty-screen (0.7.1) + tty-screen (0.8.1) tty-spinner (0.9.3) tty-cursor (~> 0.7) uber (0.1.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) - unicode-display_width (1.6.1) + unf_ext (0.0.7.7) + unicode-display_width (1.7.0) word_wrap (1.0.0) - xcodeproj (1.14.0) + xcodeproj (1.19.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) - nanaimo (~> 0.2.6) + nanaimo (~> 0.3.0) xcpretty (0.3.0) rouge (~> 2.0.7) xcpretty-travis-formatter (1.0.0) @@ -161,9 +179,8 @@ PLATFORMS DEPENDENCIES fastlane fastlane-plugin-appcenter - fastlane-plugin-increment_version_code fastlane-plugin-semantic_release fastlane-plugin-versioning_android BUNDLED WITH - 2.1.4 + 2.2.3 diff --git a/android/app/BUCK b/android/app/BUCK index 4f31f225..c6768d8c 100644 --- a/android/app/BUCK +++ b/android/app/BUCK @@ -35,12 +35,12 @@ android_library( android_build_config( name = "build_config", - package = "com.rnstarter", + package = "ninja.gab.rnStarter", ) android_resource( name = "res", - package = "com.rnstarter", + package = "ninja.gab.rnStarter", res = "src/main/res", ) diff --git a/android/app/build.gradle b/android/app/build.gradle index 74d6fb2c..11b7608c 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -130,12 +130,6 @@ def jscFlavor = 'org.webkit:android-jsc-intl:+' */ def enableHermes = project.ext.react.get("enableHermes", false); -def verName = "1.0.0" - -if (project.hasProperty("vname")) { - verName = vname -} - android { compileSdkVersion rootProject.ext.compileSdkVersion @@ -147,14 +141,14 @@ android { } defaultConfig { - applicationId "com.rnstarter" + applicationId "ninja.gab.rnStarter" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 1 - versionName verName + versionCode 26817803 + versionName "1.0.0" multiDexEnabled true - resValue "string", "build_config_package", "com.rnstarter" + resValue "string", "build_config_package", "ninja.gab.rnStarter" // Detox config testBuildType System.getProperty('testBuildType', 'debug') // This will later be used to control the test apk build type @@ -187,17 +181,17 @@ android { productFlavors { development { applicationIdSuffix 'development' - resValue "string", "build_config_package", "com.rnstarter" + resValue "string", "build_config_package", "ninja.gab.rnStarter" resValue "string", "CodePushDeploymentKey", project.env.get("ANDROID_CODEPUSH_KEY", "") } staging { applicationIdSuffix 'staging' - resValue "string", "build_config_package", "com.rnstarter" + resValue "string", "build_config_package", "ninja.gab.rnStarter" resValue "string", "CodePushDeploymentKey", project.env.get("ANDROID_CODEPUSH_KEY", "") } production { applicationIdSuffix '' - resValue "string", "build_config_package", "com.rnstarter" + resValue "string", "build_config_package", "ninja.gab.rnStarter" resValue "string", "CodePushDeploymentKey", project.env.get("ANDROID_CODEPUSH_KEY", "") } } diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index c730a8e4..58d28085 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -10,5 +10,5 @@ # Add any project specific keep options here: -keep class com.facebook.hermes.unicode.** { *; } -keep class com.facebook.jni.** { *; } --keep class com.rnstarter.BuildConfig { *; } +-keep class ninja.gab.rnStarter.BuildConfig { *; } -keepresources string/build_config_package \ No newline at end of file diff --git a/android/app/src/androidTest/java/com/rnStarter/DetoxTest.java b/android/app/src/androidTest/java/ninja/gab/rnStarter/DetoxTest.java similarity index 85% rename from android/app/src/androidTest/java/com/rnStarter/DetoxTest.java rename to android/app/src/androidTest/java/ninja/gab/rnStarter/DetoxTest.java index 0c47630d..789fc547 100644 --- a/android/app/src/androidTest/java/com/rnStarter/DetoxTest.java +++ b/android/app/src/androidTest/java/ninja/gab/rnStarter/DetoxTest.java @@ -1,4 +1,4 @@ -package com.rnstarter; +package ninja.gab.rnStarter; import com.wix.detox.Detox; import com.wix.detox.config.DetoxConfig; @@ -23,7 +23,7 @@ public void runDetoxTests() { DetoxConfig detoxConfig = new DetoxConfig(); detoxConfig.idlePolicyConfig.masterTimeoutSec = 90; detoxConfig.idlePolicyConfig.idleResourceTimeoutSec = 60; - detoxConfig.rnContextLoadTimeoutSec = (com.rnstarter.BuildConfig.DEBUG ? 180 : 60); + detoxConfig.rnContextLoadTimeoutSec = (ninja.gab.rnStarter.BuildConfig.DEBUG ? 180 : 60); Detox.runTests(mActivityRule, detoxConfig); } diff --git a/android/app/src/debug/java/com/rnstarter/ReactNativeFlipper.java b/android/app/src/debug/java/ninja/gab/rnStarter/ReactNativeFlipper.java similarity index 100% rename from android/app/src/debug/java/com/rnstarter/ReactNativeFlipper.java rename to android/app/src/debug/java/ninja/gab/rnStarter/ReactNativeFlipper.java diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index ad951114..b2eeae7c 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ diff --git a/android/app/src/main/java/com/rnstarter/MainActivity.java b/android/app/src/main/java/ninja/gab/rnStarter/MainActivity.java similarity index 91% rename from android/app/src/main/java/com/rnstarter/MainActivity.java rename to android/app/src/main/java/ninja/gab/rnStarter/MainActivity.java index 044bc232..0c2cff94 100644 --- a/android/app/src/main/java/com/rnstarter/MainActivity.java +++ b/android/app/src/main/java/ninja/gab/rnStarter/MainActivity.java @@ -1,4 +1,4 @@ -package com.rnstarter; +package ninja.gab.rnStarter; import com.facebook.react.ReactActivity; diff --git a/android/app/src/main/java/com/rnstarter/MainApplication.java b/android/app/src/main/java/ninja/gab/rnStarter/MainApplication.java similarity index 96% rename from android/app/src/main/java/com/rnstarter/MainApplication.java rename to android/app/src/main/java/ninja/gab/rnStarter/MainApplication.java index c8f1718e..775009ca 100644 --- a/android/app/src/main/java/com/rnstarter/MainApplication.java +++ b/android/app/src/main/java/ninja/gab/rnStarter/MainApplication.java @@ -1,4 +1,4 @@ -package com.rnstarter; +package ninja.gab.rnStarter; import android.content.Context; import com.facebook.react.PackageList; @@ -69,7 +69,7 @@ private static void initializeFlipper( We use reflection here to pick up the class that initializes Flipper, since Flipper library is not available in release mode */ - Class aClass = Class.forName("com.rnstarter.ReactNativeFlipper"); + Class aClass = Class.forName("ninja.gab.rnStarter.ReactNativeFlipper"); aClass .getMethod("initializeFlipper", Context.class, ReactInstanceManager.class) .invoke(null, context, reactInstanceManager); diff --git a/android/fastlane/.env b/android/fastlane/.env deleted file mode 100644 index 66df4c04..00000000 --- a/android/fastlane/.env +++ /dev/null @@ -1,12 +0,0 @@ -### ANDROID CONFIG ### -ANDROID_PACKAGE_ID='com.rnstarter.staging' -ANDROID_JSON_KEY='' - -### APP CENTER ### -APPCENTER_API_TOKEN='' -APPCENTER_OWNER_TYPE='user' ## user or organization' -APPCENTER_OWNER_NAME='' -APPCENTER_APP_NAME='' ## URL of the app in App Center - -### GIT CONFIG ### -GIT_URL='https://github.com/tsyirvo/react-native-starter/commit' \ No newline at end of file diff --git a/android/fastlane/.env.template b/android/fastlane/.env.template new file mode 100644 index 00000000..c1537c74 --- /dev/null +++ b/android/fastlane/.env.template @@ -0,0 +1,10 @@ +### ANDROID CONFIG ### +ANDROID_PACKAGE_ID='ninja.gab.rnStarter' +ANDROID_JSON_KEY='' + +### APP CENTER ### +APPCENTER_API_TOKEN='' +APPCENTER_OWNER_TYPE='' ## user or organization +APPCENTER_OWNER_NAME='' ## URL of the account in App Center +APPCENTER_APP_NAME='' ## URL of the app in App Center +APPCENTER_DISTRIBUTE_FILE='app/build/outputs/apk/staging/release/app-staging-release.apk' ## Path of the apk to upload \ No newline at end of file diff --git a/android/fastlane/Fastfile b/android/fastlane/Fastfile index fd01737d..de77614b 100644 --- a/android/fastlane/Fastfile +++ b/android/fastlane/Fastfile @@ -1,169 +1,80 @@ default_platform(:android) platform :android do - ### - ### Setup correct options based on target env and apk type - ### - before_all do |command, options| - case options[:env] - when "prod" - ENV["FLAVOR"] = "production" - ENV["TRACK"] = "alpha" - ENV["TAG"] = "android/prod*" - ENV["ENV"] = "prod" - ENV["TITLE"] = "Android Production" - when "staging" - ENV["FLAVOR"] = "staging" - ENV["TRACK"] = "alpha" - ENV["TAG"] = "android/staging*" - ENV["ENV"] = "staging" - ENV["TITLE"] = "Android Staging" - else - UI.error "No env was specified" - next - end + ############################################## + #### Utilities ### + ############################################## - case options[:binary] - when "aab" - ENV["TASK"] = "bundle" - else - ENV["TASK"] = "assemble" - end - end - - ### - ### Verify is this release has added features since the last one - ### - private_lane :verify do |options| + desc "Verify that the current build has new user facing features" + private_lane :verify do analyze_commits( - match: ENV["TAG"] + match: "*" ) end - ### - ### Releases steps - ### - private_lane :check_git_status do |options| - ensure_git_branch( - branch: "^master|develop$", - ) - ensure_git_status_clean - end + ############################################## + #### Build steps ### + ############################################## + desc "Util to build the app for all flavors" private_lane :build do |options| - ENV["NEXT_VERSION"] = lane_context[SharedValues::RELEASE_NEXT_VERSION] - - increment_version_code - gradle( - task: "clean", - print_command_output: false, - ) - gradle( - task: ENV["TASK"], - flavor: ENV["FLAVOR"], - build_type: "Release", - properties: { - "vname" => ENV["NEXT_VERSION"] - } - ) - end - - private_lane :deploy_appCenter do |options| - appcenter_upload( - api_token: ENV["APPCENTER_API_TOKEN"], - owner_type: ENV["APPCENTER_OWNER_TYPE"], - owner_name: ENV["APPCENTER_OWNER_NAME"], - app_name: ENV["APPCENTER_APP_NAME"], - notify_testers: false, - ) - end - - private_lane :deploy_playStore do |options| - upload_to_play_store( - track: ENV["TRACK"], - release_status: "draft", - skip_upload_apk: true, - ) + if options[:task] + android_set_version_code( + version_code: Time.now.to_i / 60, + ) + gradle( + tasks: ["clean", options[:task]], + ) + else + UI.error "`task` option is required" + exit + end end - ### - ### Releases management - ### - lane :beta do |options| - # check_git_status + ############################################## + #### CI steps ### + ############################################## + desc "Create and upload a Staging build" + lane :release_staging do if verify - build - deploy_appCenter - post_deploy + build( + task: "assembleStagingRelease", + ) + appcenter_upload( + api_token: ENV["APPCENTER_API_TOKEN"], + owner_type: ENV["APPCENTER_OWNER_TYPE"], + owner_name: ENV["APPCENTER_OWNER_NAME"], + app_name: ENV["APPCENTER_APP_NAME"], + notify_testers: false, + release_notes: sh( + log: false, + command: "yarn --silent version:changelog", + ), + ) else - UI.error "No user facing changes since the last release !" + UI.error "No user facing changes since the last release!" end end - lane :release do |options| - # check_git_status - + desc "Create and upload a Production build" + lane :release_production do if verify - build - deploy_playStore - post_deploy + build( + task: "bundleProductionRelease", + ) + upload_to_play_store( + track: "alpha", + release_status: "draft", + skip_upload_apk: true, + skip_upload_metadata: true, + skip_upload_changelogs: true, + skip_upload_images: true, + skip_upload_screenshots: true, + json_key: ENV["ANDROID_JSON_KEY"], + ) else - UI.error "No user facing changes since the last release !" + UI.error "No user facing changes since the last release!" end end - - ### - ### Tracks promotions - ### - lane :promote_alpha_to_beta do - upload_to_play_store( - track: "alpha", - track_promote_to: "beta", - ) - end - - lane :promote_beta_to_production do - upload_to_play_store( - track: "beta", - track_promote_to: "production", - ) - end - - ### - ### Versionning utilities - ### - lane :get_android_version_code do |options| - google_play_track_version_codes( - package_name: ENV["ANDROID_PACKAGE_ID"], - track: options[:track], - ) - end - - lane :get_android_release_names do |options| - google_play_track_release_names( - package_name: ENV["ANDROID_PACKAGE_ID"], - track: options[:track], - ) - end - - ### - ### Post deploy steps - ### - private_lane :post_deploy do |options| - notes = conventional_changelog( - title: ENV["TITLE"], - format: "markdown", - commit_url: ENV["GIT_URL"], - ) - build_number = android_get_version_code - - add_git_tag( - tag: "android/#{ENV["ENV"]}/#{ENV["NEXT_VERSION"]}/#{build_number}" - ) - push_git_tags - - File.open("../../CHANGELOG.md", "a") { |file| file.write notes} - push_to_git_remote - end end \ No newline at end of file diff --git a/android/fastlane/Pluginfile b/android/fastlane/Pluginfile index 784d5e92..d091ce75 100644 --- a/android/fastlane/Pluginfile +++ b/android/fastlane/Pluginfile @@ -5,4 +5,3 @@ gem 'fastlane-plugin-appcenter' gem 'fastlane-plugin-versioning_android' gem 'fastlane-plugin-semantic_release' -gem 'fastlane-plugin-increment_version_code' diff --git a/android/fastlane/metadata/android/en-US/full_description.txt b/android/fastlane/metadata/android/en-US/full_description.txt new file mode 100644 index 00000000..e69de29b diff --git a/android/fastlane/metadata/android/en-US/short_description.txt b/android/fastlane/metadata/android/en-US/short_description.txt new file mode 100644 index 00000000..e69de29b diff --git a/android/fastlane/metadata/android/en-US/title.txt b/android/fastlane/metadata/android/en-US/title.txt new file mode 100644 index 00000000..6b211669 --- /dev/null +++ b/android/fastlane/metadata/android/en-US/title.txt @@ -0,0 +1 @@ +RN Starter \ No newline at end of file diff --git a/android/fastlane/metadata/android/en-US/video.txt b/android/fastlane/metadata/android/en-US/video.txt new file mode 100644 index 00000000..e69de29b diff --git a/android/gradle.properties b/android/gradle.properties index 833e89ac..94dc8ada 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -28,6 +28,6 @@ android.enableJetifier=true FLIPPER_VERSION=0.54.0 MYAPP_UPLOAD_STORE_FILE=release.keystore -MYAPP_UPLOAD_KEY_ALIAS=rnstarter-key +MYAPP_UPLOAD_KEY_ALIAS=rnstarter-key-alias MYAPP_UPLOAD_STORE_PASSWORD= MYAPP_UPLOAD_KEY_PASSWORD= \ No newline at end of file diff --git a/ios/Gemfile.lock b/ios/Gemfile.lock index 9c774c68..66d6aaca 100644 --- a/ios/Gemfile.lock +++ b/ios/Gemfile.lock @@ -1,27 +1,27 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.2) + CFPropertyList (3.0.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) atomos (0.1.3) aws-eventstream (1.1.0) - aws-partitions (1.368.0) - aws-sdk-core (3.105.0) + aws-partitions (1.413.0) + aws-sdk-core (3.110.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) jmespath (~> 1.0) - aws-sdk-kms (1.37.0) - aws-sdk-core (~> 3, >= 3.99.0) + aws-sdk-kms (1.40.0) + aws-sdk-core (~> 3, >= 3.109.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.80.0) - aws-sdk-core (~> 3, >= 3.104.3) + aws-sdk-s3 (1.87.0) + aws-sdk-core (~> 3, >= 3.109.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) aws-sigv4 (1.2.2) aws-eventstream (~> 1, >= 1.0.2) - babosa (1.0.3) + babosa (1.0.4) claide (1.0.3) colored (1.2) colored2 (3.1.2) @@ -29,22 +29,23 @@ GEM highline (~> 1.7.2) declarative (0.0.20) declarative-option (0.1.0) - digest-crc (0.6.1) - rake (~> 13.0) + digest-crc (0.6.3) + rake (>= 12.0.0, < 14.0.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) dotenv (2.7.6) - emoji_regex (3.0.0) - excon (0.76.0) - faraday (1.0.1) + emoji_regex (3.2.1) + excon (0.78.1) + faraday (1.2.0) multipart-post (>= 1.2, < 3) + ruby2_keywords faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) http-cookie (~> 1.0.0) faraday_middleware (1.0.0) faraday (~> 1.0) fastimage (2.2.0) - fastlane (2.159.0) + fastlane (2.170.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) aws-sdk-s3 (~> 1.0) @@ -80,7 +81,7 @@ GEM xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) - fastlane-plugin-appcenter (1.9.0) + fastlane-plugin-appcenter (1.11.0) fastlane-plugin-semantic_release (1.12.0) fastlane-plugin-versioning (0.4.4) gh_inspector (1.1.3) @@ -95,17 +96,17 @@ GEM google-cloud-core (1.5.0) google-cloud-env (~> 1.0) google-cloud-errors (~> 1.0) - google-cloud-env (1.3.3) + google-cloud-env (1.4.0) faraday (>= 0.17.3, < 2.0) google-cloud-errors (1.0.1) - google-cloud-storage (1.28.0) + google-cloud-storage (1.29.2) addressable (~> 2.5) digest-crc (~> 0.4) google-api-client (~> 0.33) google-cloud-core (~> 1.2) googleauth (~> 0.9) mini_mime (~> 1.0) - googleauth (0.13.1) + googleauth (0.14.0) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) @@ -117,10 +118,10 @@ GEM domain_name (~> 0.5) httpclient (2.8.3) jmespath (1.4.0) - json (2.3.1) + json (2.5.1) jwt (2.2.2) memoist (0.16.2) - mini_magick (4.10.1) + mini_magick (4.11.0) mini_mime (1.0.2) multi_json (1.15.0) multipart-post (2.0.0) @@ -129,13 +130,14 @@ GEM os (1.1.1) plist (3.5.0) public_suffix (4.0.6) - rake (13.0.1) + rake (13.0.3) representable (3.0.4) declarative (< 0.1.0) declarative-option (< 0.2.0) uber (< 0.2.0) retriable (3.1.2) rouge (2.0.7) + ruby2_keywords (0.0.2) rubyzip (2.3.0) security (0.1.3) signet (0.14.0) @@ -160,7 +162,7 @@ GEM unf_ext (0.0.7.7) unicode-display_width (1.7.0) word_wrap (1.0.0) - xcodeproj (1.18.0) + xcodeproj (1.19.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) @@ -181,4 +183,4 @@ DEPENDENCIES fastlane-plugin-versioning BUNDLED WITH - 2.1.4 + 2.2.3 diff --git a/ios/fastlane/.env b/ios/fastlane/.env deleted file mode 100644 index 7596d41d..00000000 --- a/ios/fastlane/.env +++ /dev/null @@ -1,21 +0,0 @@ -### IOS CONFIG ### -IOS_APP_ID='ninja.gab.rnStarter' -IOS_TEAM_ID='' -IOS_ITC_TEAM_NAME='' -IOS_APPLE_ID='' - -### IOS PROJECT ### -IOS_WORKSPACE='rnStarter.xcworkspace' -IOS_XCODEPROJ='rnStarter.xcodeproj' - -### IOS MATCH ### -MATCH_GIT_URL='' - -### APP CENTER ### -APPCENTER_API_TOKEN='' -APPCENTER_OWNER_TYPE='user' ## user or organization' -APPCENTER_OWNER_NAME='' -APPCENTER_APP_NAME='' ## URL of the app in App Center - -### GIT CONFIG ### -GIT_URL='https://github.com/tsyirvo/react-native-starter/commit' \ No newline at end of file diff --git a/ios/fastlane/.env.template b/ios/fastlane/.env.template new file mode 100644 index 00000000..3a11fb6b --- /dev/null +++ b/ios/fastlane/.env.template @@ -0,0 +1,19 @@ +### IOS CONFIG ### +IOS_APP_ID='ninja.gab.rnStarter' ## The app base Bundle ID +IOS_APPLE_ID='' ## Email address associated to the Apple account +IOS_TEAM_ID='' ## App Store Connect Team ID +IOS_ITC_TEAM_NAME='' ## Developer Portal Team ID + +### IOS PROJECT ### +IOS_WORKSPACE='rnStarter.xcworkspace' +IOS_XCODEPROJ='rnStarter.xcodeproj' + +### IOS MATCH ### +MATCH_GIT_URL='' ## Repo storing the Code Signing +MATCH_PASSWORD='' ## Passphrase securing the repo + +### APP CENTER ### +APPCENTER_API_TOKEN='' +APPCENTER_OWNER_TYPE='' ## user or organization +APPCENTER_OWNER_NAME='' ## URL of the account in App Center +APPCENTER_APP_NAME='' ## URL of the app in App Center diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile index 21a267ad..bb86e7c7 100644 --- a/ios/fastlane/Fastfile +++ b/ios/fastlane/Fastfile @@ -1,217 +1,173 @@ default_platform(:ios) platform :ios do - ### - ### Setup correct options based on the passed params - ### - before_all do |command, options| + ############################################## + #### Certificates ### + ############################################## + + desc "Util to pull the correct certificates" + private_lane :match_pull do |options| case options[:env] - when "prod" - ENV["BUNDLE_ID_SUFFIX"] = "" - ENV["SCHEME"] = "rnStarter-production" - ENV["TAG"] = "ios/prod*" - ENV["ENV"] = "prod" - ENV["TITLE"] = "iOS Production" + when "production" + options[:app_identifier] = ENV["IOS_APP_ID"] + options[:type] = "appstore" when "staging" - ENV["BUNDLE_ID_SUFFIX"] = ".staging" - ENV["SCHEME"] = "rnStarter-staging" - ENV["TAG"] = "ios/staging*" - ENV["ENV"] = "staging" - ENV["TITLE"] = "iOS Staging" + options[:app_identifier] = "#{ENV["IOS_APP_ID"]}.staging" + options[:type] = "adhoc" + when "development" + options[:app_identifier] = "#{ENV["IOS_APP_ID"]}.development" + options[:type] = "development" else - UI.error "No env was specified" - next + UI.error "`env` option is required" + exit end - end - - ### - ### Register new devices to the Apple portal - ### - lane :add_testers do |options| - register_devices( - devices_file: "./fastlane/devices.txt", - ) - match( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], - team_id: ENV["IOS_TEAM_ID"], - type: "development", - force_for_new_devices: true, - ) - match( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], - team_id: ENV["IOS_TEAM_ID"], - type: "appstore", - force_for_new_devices: true, - ) - match( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], - team_id: ENV["IOS_TEAM_ID"], - type: "adhoc", - force_for_new_devices: true, - ) - end - ### - ### Get the latest Certificates - ### - lane :match_pull_all do |options| - if options[:readonly].nil? - options[:readonly] = true + if options[:readonly] == false + options[:force_for_new_devices] = true end match( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], - team_id: ENV["IOS_TEAM_ID"], - type: "development", + app_identifier: options[:app_identifier], + type: options[:type], readonly: options[:readonly], + force_for_new_devices: options[:force_for_new_devices], ) - match_pull_app_store - match_pull_ad_hoc end - lane :match_pull_ad_hoc do |options| - match( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], - team_id: ENV["IOS_TEAM_ID"], - type: "adhoc", - readonly: options[:readonly], - ) + desc "Pull all Certificates for every schemes" + lane :match_pull_all do + ["production", "staging", "development"].each do |env| + match_pull( + env: env, + readonly: true, + ) + end end - lane :match_pull_app_store do |options| - match( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], - team_id: ENV["IOS_TEAM_ID"], - type: "appstore", - readonly: options[:readonly], + desc "Create new Certificates when adding new testers UDID" + lane :add_testers do + register_devices( + devices_file: "./fastlane/devices.txt", ) + + ["staging", "development"].each do |env| + match_pull( + env: env, + readonly: false, + ) + end end - ### - ### Renew the push certificate - ### + desc "Create a new Push Certificate if needed" lane :pem_check do |options| + case options[:env] + when "production" + options[:app_identifier] = ENV["IOS_APP_ID"] + when "staging" + options[:app_identifier] = "#{ENV["IOS_APP_ID"]}.staging" + when "development" + options[:app_identifier] = "#{ENV["IOS_APP_ID"]}.development" + else + exit + end + pem( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], + app_identifier: options[:app_identifier], generate_p12: true, save_private_key: true, - team_id: ENV["IOS_TEAM_ID"], ) end - ### - ### Verify is this release has added features since the last one - ### - private_lane :verify do |options| + ############################################## + #### Utilities ### + ############################################## + + desc "Verify that the current build has new user facing features" + private_lane :verify do analyze_commits( - match: ENV["TAG"] + match: "*" ) end - ### - ### Releases steps - ### - private_lane :check_git_status do |options| - ensure_git_branch( - branch: "^master|develop$", - ) - ensure_git_status_clean - end + ############################################## + #### Build steps ### + ############################################## + desc "Util to build the app for all schemes" private_lane :build do |options| - ENV["NEXT_VERSION"] = lane_context[SharedValues::RELEASE_NEXT_VERSION] - - increment_version_number_in_plist( - version_number: ENV["NEXT_VERSION"], - xcodeproj: ENV["IOS_XCODEPROJ"], - scheme: ENV["SCHEME"], - ) - increment_build_number_in_plist( - xcodeproj: ENV["IOS_XCODEPROJ"], - scheme: ENV["SCHEME"], - ) - gym( - workspace: ENV["IOS_WORKSPACE"], - configuration: "Release", - scheme: ENV["SCHEME"], - export_method: ENV["METHOD"], - silent: true, - clean: true, - ) - end - - private_lane :deploy_app_center do |options| - appcenter_upload( - api_token: ENV["APPCENTER_API_TOKEN"], - owner_type: ENV["APPCENTER_OWNER_TYPE"], - owner_name: ENV["APPCENTER_OWNER_NAME"], - app_name: ENV["APPCENTER_APP_NAME"], - notify_testers: false, - ) - end - - private_lane :deploy_apple_connect do |options| - pilot( - app_identifier: ENV["IOS_APP_ID"] + ENV["BUNDLE_ID_SUFFIX"], - team_id: ENV["IOS_TEAM_ID"], - skip_waiting_for_build_processing: true, - ) + if options[:method] && options[:scheme] + increment_build_number_in_plist( + xcodeproj: ENV["IOS_XCODEPROJ"], + scheme: options[:scheme], + build_number: Time.now.utc.strftime("%Y%m%d.%H%M.%S"), + ) + build_app( + workspace: ENV["IOS_WORKSPACE"], + configuration: "Release", + scheme: options[:scheme], + export_method: options[:method], + silent: true, + clean: true, + ) + else + UI.error "`method` and `scheme` options are required" + exit + end end - ### - ### Releases management - ### - lane :beta do |options| - ENV["METHOD"] = "ad-hoc" - - # check_git_status + ############################################## + #### CI steps ### + ############################################## + desc "Create and upload a Staging build" + lane :release_staging do if verify - match_pull_ad_hoc - build - deploy_app_center - post_deploy + match_pull( + env: "staging", + readonly: true, + ) + build( + method: "ad-hoc", + scheme: "rnStarter-staging", + ) + appcenter_upload( + api_token: ENV["APPCENTER_API_TOKEN"], + owner_type: ENV["APPCENTER_OWNER_TYPE"], + owner_name: ENV["APPCENTER_OWNER_NAME"], + app_name: ENV["APPCENTER_APP_NAME"], + notify_testers: false, + release_notes: sh( + log: false, + command: "yarn --silent version:changelog", + ), + ) else - UI.error "No user facing changes since the last release !" + UI.error "No user facing changes since the last release!" end end - lane :release do |options| - ENV["METHOD"] = "app-store" - - # check_git_status - + desc "Create and upload a Production build" + lane :release_production do if verify - match_pull_app_store - build - deploy_apple_connect - post_deploy + match_pull( + env: "production", + readonly: true, + ) + build( + method: "app-store", + scheme: "rnStarter-production", + ) + upload_to_testflight( + app_identifier: ENV["IOS_APP_ID"], + team_id: ENV["IOS_TEAM_ID"], + skip_waiting_for_build_processing: true, + changelog: sh( + log: false, + command: "yarn --silent version:changelog", + ), + ) else - UI.error "No user facing changes since the last release !" + UI.error "No user facing changes since the last release!" end - end - - ### - ### Post deploy steps - ### - private_lane :post_deploy do |options| - notes = conventional_changelog( - title: ENV["TITLE"], - format: "markdown", - commit_url: ENV["GIT_URL"], - ) - build_number = get_build_number_from_plist( - xcodeproj: ENV["IOS_XCODEPROJ"], - scheme: ENV["SCHEME"], - build_configuration_name: 'Release', - ) - - add_git_tag( - tag: "ios/#{ENV["ENV"]}/#{ENV["NEXT_VERSION"]}/#{build_number}" - ) - push_git_tags - - File.open("../../CHANGELOG.md", "a") { |file| file.write notes} - push_to_git_remote - end + end end diff --git a/ios/rnStarter.xcodeproj/project.pbxproj b/ios/rnStarter.xcodeproj/project.pbxproj index fdd962aa..00093a08 100644 --- a/ios/rnStarter.xcodeproj/project.pbxproj +++ b/ios/rnStarter.xcodeproj/project.pbxproj @@ -232,6 +232,14 @@ LastUpgradeCheck = 1160; ORGANIZATIONNAME = ""; TargetAttributes = { + B6FB16A624EC92100035A6B9 = { + DevelopmentTeam = G5GA4WNLS9; + ProvisioningStyle = Manual; + }; + B6FB16B924EC92610035A6B9 = { + DevelopmentTeam = G5GA4WNLS9; + ProvisioningStyle = Manual; + }; B6FB16CC24EC92760035A6B9 = { DevelopmentTeam = G5GA4WNLS9; ProvisioningStyle = Manual; @@ -688,8 +696,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = G5GA4WNLS9; INFOPLIST_FILE = "$(SRCROOT)/development-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited) @executable_path/Frameworks"; @@ -700,8 +710,9 @@ "-lc++", ); OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/React/React-Core.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.rnstarter.development; + PRODUCT_BUNDLE_IDENTIFIER = ninja.gab.rnStarter.development; PRODUCT_NAME = Starter_Dev; + PROVISIONING_PROFILE_SPECIFIER = "match Development ninja.gab.rnStarter.development"; SWIFT_INCLUDE_PATHS = ""; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; @@ -719,7 +730,9 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = G5GA4WNLS9; INFOPLIST_FILE = "$(SRCROOT)/development-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited) @executable_path/Frameworks"; @@ -730,8 +743,9 @@ "-lc++", ); OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/React/React-Core.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/SSZipArchive/SSZipArchive.modulemap\" -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/yoga/Yoga.modulemap\""; - PRODUCT_BUNDLE_IDENTIFIER = com.rnstarter.development; + PRODUCT_BUNDLE_IDENTIFIER = ninja.gab.rnStarter.development; PRODUCT_NAME = Starter_Dev; + PROVISIONING_PROFILE_SPECIFIER = "match Development ninja.gab.rnStarter.development"; SWIFT_INCLUDE_PATHS = ""; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; @@ -748,8 +762,11 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; + DEVELOPMENT_TEAM = G5GA4WNLS9; INFOPLIST_FILE = "$(SRCROOT)/staging-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -759,8 +776,9 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rnstarter.staging; + PRODUCT_BUNDLE_IDENTIFIER = ninja.gab.rnStarter.staging; PRODUCT_NAME = Starter_Staging; + PROVISIONING_PROFILE_SPECIFIER = "match AdHoc ninja.gab.rnStarter.staging"; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -777,7 +795,10 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Distribution"; + CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = G5GA4WNLS9; INFOPLIST_FILE = "$(SRCROOT)/staging-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -787,8 +808,9 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rnstarter.staging; + PRODUCT_BUNDLE_IDENTIFIER = ninja.gab.rnStarter.staging; PRODUCT_NAME = Starter_Staging; + PROVISIONING_PROFILE_SPECIFIER = "match AdHoc ninja.gab.rnStarter.staging"; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; @@ -804,7 +826,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEAD_CODE_STRIPPING = YES; @@ -818,9 +840,9 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rnstarter; + PRODUCT_BUNDLE_IDENTIFIER = ninja.gab.rnStarter; PRODUCT_NAME = Starter; - PROVISIONING_PROFILE_SPECIFIER = "match Development ninja.gab.rnStarter"; + PROVISIONING_PROFILE_SPECIFIER = "match AppStore ninja.gab.rnStarter"; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -837,7 +859,7 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_TEAM = G5GA4WNLS9; @@ -850,9 +872,9 @@ "-ObjC", "-lc++", ); - PRODUCT_BUNDLE_IDENTIFIER = com.rnstarter; + PRODUCT_BUNDLE_IDENTIFIER = ninja.gab.rnStarter; PRODUCT_NAME = Starter; - PROVISIONING_PROFILE_SPECIFIER = "match Development ninja.gab.rnStarter"; + PROVISIONING_PROFILE_SPECIFIER = "match AppStore ninja.gab.rnStarter"; SWIFT_INSTALL_OBJC_HEADER = NO; SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_PRECOMPILE_BRIDGING_HEADER = NO; diff --git a/ios/rnStarter/Info.plist b/ios/rnStarter/Info.plist index 23b55028..6d2b4aa5 100644 --- a/ios/rnStarter/Info.plist +++ b/ios/rnStarter/Info.plist @@ -17,11 +17,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - $(MARKETING_VERSION) + 1.0.0 CFBundleSignature ???? CFBundleVersion - $(CURRENT_PROJECT_VERSION) + 20201227.0900.08 CODEPUSH_KEY $(IOS_CODEPUSH_KEY) LSRequiresIPhoneOS diff --git a/ios/staging-Info.plist b/ios/staging-Info.plist index 3111ce56..ce3570f4 100644 --- a/ios/staging-Info.plist +++ b/ios/staging-Info.plist @@ -21,7 +21,7 @@ CFBundleSignature ???? CFBundleVersion - $(CURRENT_PROJECT_VERSION) + 20201227.0849.49 CODEPUSH_KEY $(IOS_CODEPUSH_KEY) LSRequiresIPhoneOS diff --git a/package.json b/package.json index c17f33fc..848ed133 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,10 @@ "generate:fc": "npx hygen generators fc", "generate:class": "npx hygen generators class", "prestorybook": "rnstl", - "storybook": "(adb reverse tcp:7007 tcp:7007 || true) && start-storybook" + "storybook": "(adb reverse tcp:7007 tcp:7007 || true) && start-storybook", + "version:bump": "standard-version --skip.commit --skip.changelog --skip.tag", + "version:changelog": "standard-version --skip.commit --skip.tag --dry-run --silent --bumpFiles \"package.json\" | awk 'NR > 5 { print }' | sed \"s/(\\[.*$//\" | sed \"s/[^[:alnum:][:punct:][:space:]]//g\"", + "version:tag": "standard-version" }, "husky": { "hooks": { @@ -127,6 +130,7 @@ "react-native-storybook-loader": "2.0.2", "react-test-renderer": "16.13.1", "sharp": "0.26.0", + "standard-version": "9.0.0", "ts-jest": "25.5.1", "typescript": "4.0.2" } diff --git a/yarn.lock b/yarn.lock index 6c0ca905..00f7361e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3317,6 +3317,11 @@ acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c" integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w== +add-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/add-stream/-/add-stream-1.0.0.tgz#6a7990437ca736d5e1288db92bd3266d5f5cb2aa" + integrity sha1-anmQQ3ynNtXhKI25K9MmbV9csqo= + address@1.1.2, address@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" @@ -4870,6 +4875,15 @@ camelcase-keys@^2.0.0: camelcase "^2.0.0" map-obj "^1.0.0" +camelcase-keys@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77" + integrity sha1-oqpfsa9oh1glnDLBQUJteJI7m3c= + dependencies: + camelcase "^4.1.0" + map-obj "^2.0.0" + quick-lru "^1.0.0" + camelcase-keys@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" @@ -4889,6 +4903,11 @@ camelcase@^2.0.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= + camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -5444,6 +5463,16 @@ concat-stream@^1.4.6, concat-stream@^1.4.7, concat-stream@^1.5.0, concat-stream@ readable-stream "^2.2.2" typedarray "^0.0.6" +concat-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" + integrity sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.0.2" + typedarray "^0.0.6" + confusing-browser-globals@^1.0.9: version "1.0.9" resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" @@ -5512,6 +5541,33 @@ conventional-changelog-angular@^5.0.0: compare-func "^2.0.0" q "^1.5.1" +conventional-changelog-angular@^5.0.11: + version "5.0.12" + resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-5.0.12.tgz#c979b8b921cbfe26402eb3da5bbfda02d865a2b9" + integrity sha512-5GLsbnkR/7A89RyHLvvoExbiGbd9xKdKqDTrArnPbOqBqG/2wIosu0fHwpeIRI8Tl94MhVNBXcLJZl92ZQ5USw== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-atom@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-atom/-/conventional-changelog-atom-2.0.8.tgz#a759ec61c22d1c1196925fca88fe3ae89fd7d8de" + integrity sha512-xo6v46icsFTK3bb7dY/8m2qvc8sZemRgdqLb/bjpBsH2UyOS8rKNTgcb5025Hri6IpANPApbXMg15QLb1LJpBw== + dependencies: + q "^1.5.1" + +conventional-changelog-codemirror@^2.0.7: + version "2.0.8" + resolved "https://registry.yarnpkg.com/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.8.tgz#398e9530f08ce34ec4640af98eeaf3022eb1f7dc" + integrity sha512-z5DAsn3uj1Vfp7po3gpt2Boc+Bdwmw2++ZHa5Ak9k0UKsYAO5mH1UBTN0qSCuJZREIhX6WU4E1p3IW2oRCNzQw== + dependencies: + q "^1.5.1" + +conventional-changelog-config-spec@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-config-spec/-/conventional-changelog-config-spec-2.1.0.tgz#874a635287ef8b581fd8558532bf655d4fb59f2d" + integrity sha512-IpVePh16EbbB02V+UA+HQnnPIohgXvJRxHcS5+Uwk4AT5LjzCZJm5sp/yqs5C6KZJ1jMsV4paEV13BN1pvDuxQ== + conventional-changelog-conventionalcommits@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.3.0.tgz#c4205a659f7ca9d7881f29ee78a4e7d6aeb8b3c2" @@ -5521,6 +5577,127 @@ conventional-changelog-conventionalcommits@4.3.0: lodash "^4.17.15" q "^1.5.1" +conventional-changelog-conventionalcommits@4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.4.0.tgz#8d96687141c9bbd725a89b95c04966d364194cd4" + integrity sha512-ybvx76jTh08tpaYrYn/yd0uJNLt5yMrb1BphDe4WBredMlvPisvMghfpnJb6RmRNcqXeuhR6LfGZGewbkRm9yA== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-changelog-conventionalcommits@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.5.0.tgz#a02e0b06d11d342fdc0f00c91d78265ed0bc0a62" + integrity sha512-buge9xDvjjOxJlyxUnar/+6i/aVEVGA7EEh4OafBCXPlLUQPGbRUBhBUveWRxzvR8TEjhKEP4BdepnpG2FSZXw== + dependencies: + compare-func "^2.0.0" + lodash "^4.17.15" + q "^1.5.1" + +conventional-changelog-core@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/conventional-changelog-core/-/conventional-changelog-core-4.2.1.tgz#f811ad98ab2ff080becafc61407509420c9b447d" + integrity sha512-8cH8/DEoD3e5Q6aeogdR5oaaKs0+mG6+f+Om0ZYt3PNv7Zo0sQhu4bMDRsqAF+UTekTAtP1W/C41jH/fkm8Jtw== + dependencies: + add-stream "^1.0.0" + conventional-changelog-writer "^4.0.18" + conventional-commits-parser "^3.2.0" + dateformat "^3.0.0" + get-pkg-repo "^1.0.0" + git-raw-commits "2.0.0" + git-remote-origin-url "^2.0.0" + git-semver-tags "^4.1.1" + lodash "^4.17.15" + normalize-package-data "^3.0.0" + q "^1.5.1" + read-pkg "^3.0.0" + read-pkg-up "^3.0.0" + shelljs "^0.8.3" + through2 "^4.0.0" + +conventional-changelog-ember@^2.0.8: + version "2.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-ember/-/conventional-changelog-ember-2.0.9.tgz#619b37ec708be9e74a220f4dcf79212ae1c92962" + integrity sha512-ulzIReoZEvZCBDhcNYfDIsLTHzYHc7awh+eI44ZtV5cx6LVxLlVtEmcO+2/kGIHGtw+qVabJYjdI5cJOQgXh1A== + dependencies: + q "^1.5.1" + +conventional-changelog-eslint@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.9.tgz#689bd0a470e02f7baafe21a495880deea18b7cdb" + integrity sha512-6NpUCMgU8qmWmyAMSZO5NrRd7rTgErjrm4VASam2u5jrZS0n38V7Y9CzTtLT2qwz5xEChDR4BduoWIr8TfwvXA== + dependencies: + q "^1.5.1" + +conventional-changelog-express@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/conventional-changelog-express/-/conventional-changelog-express-2.0.6.tgz#420c9d92a347b72a91544750bffa9387665a6ee8" + integrity sha512-SDez2f3iVJw6V563O3pRtNwXtQaSmEfTCaTBPCqn0oG0mfkq0rX4hHBq5P7De2MncoRixrALj3u3oQsNK+Q0pQ== + dependencies: + q "^1.5.1" + +conventional-changelog-jquery@^3.0.10: + version "3.0.11" + resolved "https://registry.yarnpkg.com/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.11.tgz#d142207400f51c9e5bb588596598e24bba8994bf" + integrity sha512-x8AWz5/Td55F7+o/9LQ6cQIPwrCjfJQ5Zmfqi8thwUEKHstEn4kTIofXub7plf1xvFA2TqhZlq7fy5OmV6BOMw== + dependencies: + q "^1.5.1" + +conventional-changelog-jshint@^2.0.8: + version "2.0.9" + resolved "https://registry.yarnpkg.com/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.9.tgz#f2d7f23e6acd4927a238555d92c09b50fe3852ff" + integrity sha512-wMLdaIzq6TNnMHMy31hql02OEQ8nCQfExw1SE0hYL5KvU+JCTuPaDO+7JiogGT2gJAxiUGATdtYYfh+nT+6riA== + dependencies: + compare-func "^2.0.0" + q "^1.5.1" + +conventional-changelog-preset-loader@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz#14a855abbffd59027fd602581f1f34d9862ea44c" + integrity sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g== + +conventional-changelog-writer@^4.0.18: + version "4.0.18" + resolved "https://registry.yarnpkg.com/conventional-changelog-writer/-/conventional-changelog-writer-4.0.18.tgz#10b73baa59c7befc69b360562f8b9cd19e63daf8" + integrity sha512-mAQDCKyB9HsE8Ko5cCM1Jn1AWxXPYV0v8dFPabZRkvsiWUul2YyAqbIaoMKF88Zf2ffnOPSvKhboLf3fnjo5/A== + dependencies: + compare-func "^2.0.0" + conventional-commits-filter "^2.0.7" + dateformat "^3.0.0" + handlebars "^4.7.6" + json-stringify-safe "^5.0.1" + lodash "^4.17.15" + meow "^8.0.0" + semver "^6.0.0" + split "^1.0.0" + through2 "^4.0.0" + +conventional-changelog@3.1.23: + version "3.1.23" + resolved "https://registry.yarnpkg.com/conventional-changelog/-/conventional-changelog-3.1.23.tgz#d696408021b579a3814aba79b38729ed86478aea" + integrity sha512-sScUu2NHusjRC1dPc5p8/b3kT78OYr95/Bx7Vl8CPB8tF2mG1xei5iylDTRjONV5hTlzt+Cn/tBWrKdd299b7A== + dependencies: + conventional-changelog-angular "^5.0.11" + conventional-changelog-atom "^2.0.7" + conventional-changelog-codemirror "^2.0.7" + conventional-changelog-conventionalcommits "^4.4.0" + conventional-changelog-core "^4.2.0" + conventional-changelog-ember "^2.0.8" + conventional-changelog-eslint "^3.0.8" + conventional-changelog-express "^2.0.5" + conventional-changelog-jquery "^3.0.10" + conventional-changelog-jshint "^2.0.8" + conventional-changelog-preset-loader "^2.3.4" + +conventional-commits-filter@^2.0.6, conventional-commits-filter@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/conventional-commits-filter/-/conventional-commits-filter-2.0.7.tgz#f8d9b4f182fce00c9af7139da49365b136c8a0b3" + integrity sha512-ASS9SamOP4TbCClsRHxIHXRfcGCnIoQqkvAzCSbZzTFLfcTqJVugB0agRgsEELsqaeWgsXv513eS116wnlSSPA== + dependencies: + lodash.ismatch "^4.4.0" + modify-values "^1.0.0" + conventional-commits-parser@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz#10140673d5e7ef5572633791456c5d03b69e8be4" @@ -5534,6 +5711,33 @@ conventional-commits-parser@^3.0.0: through2 "^3.0.0" trim-off-newlines "^1.0.0" +conventional-commits-parser@^3.1.0, conventional-commits-parser@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.0.tgz#9e261b139ca4b7b29bcebbc54460da36894004ca" + integrity sha512-XmJiXPxsF0JhAKyfA2Nn+rZwYKJ60nanlbSWwwkGwLQFbugsc0gv1rzc7VbbUWAzJfR1qR87/pNgv9NgmxtBMQ== + dependencies: + JSONStream "^1.0.4" + is-text-path "^1.0.1" + lodash "^4.17.15" + meow "^8.0.0" + split2 "^2.0.0" + through2 "^4.0.0" + trim-off-newlines "^1.0.0" + +conventional-recommended-bump@6.0.10: + version "6.0.10" + resolved "https://registry.yarnpkg.com/conventional-recommended-bump/-/conventional-recommended-bump-6.0.10.tgz#ac2fb3e31bad2aeda80086b345bf0c52edd1d1b3" + integrity sha512-2ibrqAFMN3ZA369JgVoSbajdD/BHN6zjY7DZFKTHzyzuQejDUCjQ85S5KHxCRxNwsbDJhTPD5hOKcis/jQhRgg== + dependencies: + concat-stream "^2.0.0" + conventional-changelog-preset-loader "^2.3.4" + conventional-commits-filter "^2.0.6" + conventional-commits-parser "^3.1.0" + git-raw-commits "2.0.0" + git-semver-tags "^4.1.0" + meow "^7.0.0" + q "^1.5.1" + convert-source-map@^1.4.0, convert-source-map@^1.5.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" @@ -5915,6 +6119,13 @@ danger@10.4.0: require-from-string "^2.0.2" supports-hyperlinks "^1.0.1" +dargs@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" + integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= + dependencies: + number-is-nan "^1.0.0" + dargs@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" @@ -5950,6 +6161,11 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +dateformat@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" + integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== + dayjs@^1.8.15: version "1.8.33" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.33.tgz#18bc4a2b6c1c6f4d67b4c4f2536c0b97e5b766f7" @@ -5983,7 +6199,7 @@ debug@^3.0.0, debug@^3.1.0, debug@^3.2.5: dependencies: ms "^2.1.1" -decamelize-keys@^1.1.0: +decamelize-keys@^1.0.0, decamelize-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.0.tgz#d171a87933252807eb3cb61dc1c1445d078df2d9" integrity sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk= @@ -6207,12 +6423,17 @@ destroy@~1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= +detect-indent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + detect-libc@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -detect-newline@^3.0.0: +detect-newline@^3.0.0, detect-newline@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== @@ -6470,6 +6691,14 @@ dotenv@^8.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== +dotgitignore@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/dotgitignore/-/dotgitignore-2.1.0.tgz#a4b15a4e4ef3cf383598aaf1dfa4a04bcc089b7b" + integrity sha512-sCm11ak2oY6DglEPpCB8TixLjWAxd3kJTs6UIcSasNYxXdFPV+YKlye92c8H4kKFqV5qYMIh7d+cYecEg0dIkA== + dependencies: + find-up "^3.0.0" + minimatch "^3.0.4" + download-status@^2.0.0, download-status@^2.0.1: version "2.2.1" resolved "https://registry.yarnpkg.com/download-status/-/download-status-2.2.1.tgz#28f3c5bcdb00d74ab00602f50888aa66b77ccaf9" @@ -7521,7 +7750,7 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -figures@^3.0.0, figures@^3.2.0: +figures@^3.0.0, figures@^3.1.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== @@ -7815,6 +8044,13 @@ front-matter@^4.0.2: dependencies: js-yaml "^3.13.1" +fs-access@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + integrity sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o= + dependencies: + null-check "^1.0.0" + fs-constants@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" @@ -8000,6 +8236,17 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-pkg-repo@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz#c73b489c06d80cc5536c2c853f9e05232056972d" + integrity sha1-xztInAbYDMVTbCyFP54FIyBWly0= + dependencies: + hosted-git-info "^2.1.4" + meow "^3.3.0" + normalize-package-data "^2.3.0" + parse-github-repo-url "^1.3.0" + through2 "^2.0.0" + get-port@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/get-port/-/get-port-2.1.0.tgz#8783f9dcebd1eea495a334e1a6a251e78887ab1a" @@ -8074,6 +8321,17 @@ git-config-path@^1.0.1: fs-exists-sync "^0.1.0" homedir-polyfill "^1.0.0" +git-raw-commits@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.0.tgz#d92addf74440c14bcc5c83ecce3fb7f8a79118b5" + integrity sha512-w4jFEJFgKXMQJ0H0ikBk2S+4KP2VEjhCvLCNqbNRQC8BgGWgLKNCO7a9K9LI+TVT7Gfoloje502sEnctibffgg== + dependencies: + dargs "^4.0.1" + lodash.template "^4.0.2" + meow "^4.0.0" + split2 "^2.0.0" + through2 "^2.0.0" + git-raw-commits@^2.0.0: version "2.0.7" resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.7.tgz#02e9357727a9755efa8e14dd5e59b381c29068fb" @@ -8085,6 +8343,29 @@ git-raw-commits@^2.0.0: split2 "^2.0.0" through2 "^3.0.0" +git-remote-origin-url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/git-remote-origin-url/-/git-remote-origin-url-2.0.0.tgz#5282659dae2107145a11126112ad3216ec5fa65f" + integrity sha1-UoJlna4hBxRaERJhEq0yFuxfpl8= + dependencies: + gitconfiglocal "^1.0.0" + pify "^2.3.0" + +git-semver-tags@^4.0.0, git-semver-tags@^4.1.0, git-semver-tags@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/git-semver-tags/-/git-semver-tags-4.1.1.tgz#63191bcd809b0ec3e151ba4751c16c444e5b5780" + integrity sha512-OWyMt5zBe7xFs8vglMmhM9lRQzCWL3WjHtxNNfJTMngGym7pC1kh8sP6jevfydJ6LP3ZvGxfb6ABYgPUM0mtsA== + dependencies: + meow "^8.0.0" + semver "^6.0.0" + +gitconfiglocal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gitconfiglocal/-/gitconfiglocal-1.0.0.tgz#41d045f3851a5ea88f03f24ca1c6178114464b9b" + integrity sha1-QdBF84UaXqiPA/JMocYXgRRGS5s= + dependencies: + ini "^1.3.2" + github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" @@ -8357,6 +8638,18 @@ handlebars@3.0.0: optionalDependencies: uglify-js "~2.3" +handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" @@ -8560,6 +8853,13 @@ hosted-git-info@^2.1.4: resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== +hosted-git-info@^3.0.6: + version "3.0.7" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.7.tgz#a30727385ea85acfcee94e0aad9e368c792e036c" + integrity sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ== + dependencies: + lru-cache "^6.0.0" + html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" @@ -8969,6 +9269,11 @@ inherits@2.0.3: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= +ini@^1.3.2: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" @@ -10636,7 +10941,7 @@ json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@~5.0.1: +json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= @@ -11042,6 +11347,11 @@ lodash.isinteger@^4.0.4: resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" integrity sha1-YZwK89A/iwTDH1iChAt3sRzWg0M= +lodash.ismatch@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" + integrity sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc= + lodash.isnumber@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz#3ce76810c5928d03352301ac287317f11c0b1ffc" @@ -11249,6 +11559,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + macos-release@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.4.1.tgz#64033d0ec6a5e6375155a74b1a1eba8e509820ac" @@ -11291,6 +11608,11 @@ map-obj@^1.0.0, map-obj@^1.0.1: resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= +map-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz#a65cd29087a92598b8791257a523e021222ac1f9" + integrity sha1-plzSkIepJZi4eRJXpSPgISIqwfk= + map-obj@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz#b91221b542734b9f14256c0132c897c5d7256fd5" @@ -11396,6 +11718,21 @@ meow@^3.1.0, meow@^3.3.0, meow@^3.5.0: redent "^1.0.0" trim-newlines "^1.0.0" +meow@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" + integrity sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A== + dependencies: + camelcase-keys "^4.0.0" + decamelize-keys "^1.0.0" + loud-rejection "^1.0.0" + minimist "^1.1.3" + minimist-options "^3.0.1" + normalize-package-data "^2.3.4" + read-pkg-up "^3.0.0" + redent "^2.0.0" + trim-newlines "^2.0.0" + meow@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/meow/-/meow-7.1.0.tgz#50ecbcdafa16f8b58fb7eb9675b933f6473b3a59" @@ -11413,6 +11750,23 @@ meow@^7.0.0: type-fest "^0.13.1" yargs-parser "^18.1.3" +meow@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.0.tgz#0fcaa267e35e4d58584b8205923df6021ddcc7ba" + integrity sha512-fNWkgM1UVMey2kf24yLiccxLihc5W+6zVus3/N0b+VfnJgxV99E9u04X6NAiKdg6ED7DAQBX5sy36NM0QJZkWA== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" @@ -11959,6 +12313,14 @@ minimist-options@4.1.0: is-plain-obj "^1.1.0" kind-of "^6.0.3" +minimist-options@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz#fba4c8191339e13ecf4d61beb03f070103f3d954" + integrity sha512-FyBrT/d0d4+uiZRbqznPXqw3IpZZG3gl3wKWiX784FycUKVwBt0uLBFkQrtE4tZOrgo78nZp2jnKz3L65T5LdQ== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -12033,6 +12395,11 @@ mkdirp@0.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: dependencies: minimist "^1.2.5" +modify-values@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/modify-values/-/modify-values-1.0.1.tgz#b3939fa605546474e3e3e3c63d64bd43b4ee6022" + integrity sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw== + moment@^2.19.3: version "2.27.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" @@ -12136,7 +12503,7 @@ negotiator@0.6.2: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -12276,7 +12643,7 @@ noop-logger@^0.1.1: resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: +normalize-package-data@^2.3.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -12286,6 +12653,16 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package- semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" +normalize-package-data@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz#1f8a7c423b3d2e85eb36985eaf81de381d01301a" + integrity sha512-6lUjEI0d3v6kFrtgA/lOx4zHCWULXsFNIjHolnZCKCTLA6m/G625cdn3O7eNmT0iD3jfo6HZ9cdImGZwf21prw== + dependencies: + hosted-git-info "^3.0.6" + resolve "^1.17.0" + semver "^7.3.2" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -12358,6 +12735,11 @@ nth-check@~1.0.1: dependencies: boolbase "~1.0.0" +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + integrity sha1-l33/1xdgErnsMNKjnbXPcqBDnt0= + nullthrows@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1" @@ -12851,6 +13233,11 @@ parse-git-config@^2.0.3: git-config-path "^1.0.1" ini "^1.3.5" +parse-github-repo-url@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/parse-github-repo-url/-/parse-github-repo-url-1.4.1.tgz#9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50" + integrity sha1-nn2LslKmy2ukJZUGC3v23z28H1A= + parse-github-url@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-github-url/-/parse-github-url-1.0.2.tgz#242d3b65cbcdda14bb50439e3242acf6971db395" @@ -13067,7 +13454,7 @@ picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.2.1: resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== -pify@^2.0.0: +pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= @@ -13670,6 +14057,11 @@ querystringify@^2.1.1: resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== +quick-lru@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz#4360b17c61136ad38078397ff11416e186dcfbb8" + integrity sha1-Q2CxfGETatOAeDl/8RQW4Ybc+7g= + quick-lru@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" @@ -14204,6 +14596,14 @@ read-pkg-up@^2.0.0: find-up "^2.0.0" read-pkg "^2.0.0" +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= + dependencies: + find-up "^2.0.0" + read-pkg "^3.0.0" + read-pkg-up@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" @@ -14281,7 +14681,7 @@ readable-stream@1.1.x, readable-stream@^1.0.27-1: isarray "0.0.1" string_decoder "~0.10.x" -"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +"readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -14911,6 +15311,13 @@ semver@^4.0.3: resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" integrity sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto= +semver@^7.1.1: + version "7.3.4" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" + integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + dependencies: + lru-cache "^6.0.0" + send@0.17.1: version "0.17.1" resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" @@ -15402,6 +15809,13 @@ split2@^2.0.0: dependencies: through2 "^2.0.2" +split@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -15470,6 +15884,27 @@ stacktrace-parser@^0.1.3: dependencies: type-fest "^0.7.1" +standard-version@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/standard-version/-/standard-version-9.0.0.tgz#814055add91eec8679a773768927f927183fc818" + integrity sha512-eRR04IscMP3xW9MJTykwz13HFNYs8jS33AGuDiBKgfo5YrO0qX0Nxb4rjupVwT5HDYL/aR+MBEVLjlmVFmFEDQ== + dependencies: + chalk "^2.4.2" + conventional-changelog "3.1.23" + conventional-changelog-config-spec "2.1.0" + conventional-changelog-conventionalcommits "4.4.0" + conventional-recommended-bump "6.0.10" + detect-indent "^6.0.0" + detect-newline "^3.1.0" + dotgitignore "^2.1.0" + figures "^3.1.0" + find-up "^4.1.0" + fs-access "^1.0.1" + git-semver-tags "^4.0.0" + semver "^7.1.1" + stringify-package "^1.0.1" + yargs "^15.3.1" + static-extend@^0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" @@ -15663,6 +16098,11 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" +stringify-package@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stringify-package/-/stringify-package-1.0.1.tgz#e5aa3643e7f74d0f28628b72f3dad5cecfc3ba85" + integrity sha512-sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg== + strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" @@ -16198,7 +16638,14 @@ through2@^3.0.0: inherits "^2.0.4" readable-stream "2 || 3" -"through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3.4: +through2@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== + dependencies: + readable-stream "3" + +through@2, "through@>=2.2.7 <3", through@^2.3.6, through@^2.3.8, through@~2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= @@ -16343,6 +16790,11 @@ trim-newlines@^1.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= +trim-newlines@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz#b403d0b91be50c331dfc4b82eeceb22c3de16d20" + integrity sha1-tAPQuRvlDDMd/EuC7s6yLD3hbSA= + trim-newlines@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz#79726304a6a898aa8373427298d54c2ee8b1cb30" @@ -16459,6 +16911,11 @@ type-fest@^0.13.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -16517,6 +16974,11 @@ uglify-es@^3.1.9: commander "~2.13.0" source-map "~0.6.1" +uglify-js@^3.1.4: + version "3.12.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.3.tgz#bb26c4abe0e68c55e9776bca9bed99a4df73facf" + integrity sha512-feZzR+kIcSVuLi3s/0x0b2Tx4Iokwqt+8PJM7yRHKuldg4MLdam4TCFeICv+lgDtuYiCtdmrtIP+uN9LWvDasw== + uglify-js@~2.3: version "2.3.6" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" @@ -17358,6 +17820,11 @@ yargs-parser@^15.0.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^20.2.3: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + yargs@^13.0.0: version "13.3.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd"