diff --git a/.github/ISSUE_TEMPLATE/ask-question.yml b/.github/ISSUE_TEMPLATE/ask-question.yml
index dce598c6..f5ad8501 100644
--- a/.github/ISSUE_TEMPLATE/ask-question.yml
+++ b/.github/ISSUE_TEMPLATE/ask-question.yml
@@ -1,7 +1,7 @@
name: 🙋♂️ Ask a question
description: Tell us what's on your mind
-title: "[question]: "
-labels: ["question"]
+title: '[question]: '
+labels: ['question']
# assignees:
# - OneSignal/ios-sdk
body:
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yml b/.github/ISSUE_TEMPLATE/bug-report.yml
index a80fde12..2c8e9351 100644
--- a/.github/ISSUE_TEMPLATE/bug-report.yml
+++ b/.github/ISSUE_TEMPLATE/bug-report.yml
@@ -1,7 +1,7 @@
name: 🪳 Bug report
description: File a bug report
-title: "[Bug]: "
-labels: ["bug", "triage"]
+title: '[Bug]: '
+labels: ['bug', 'triage']
# assignees:
# - OneSignal/ios-sdk
body:
diff --git a/.github/ISSUE_TEMPLATE/general-feedback.yml b/.github/ISSUE_TEMPLATE/general-feedback.yml
index fbada335..0776fab6 100644
--- a/.github/ISSUE_TEMPLATE/general-feedback.yml
+++ b/.github/ISSUE_TEMPLATE/general-feedback.yml
@@ -1,7 +1,7 @@
name: 📣 General feedback
description: Tell us what's on your mind
-title: "[Feedback]: "
-labels: ["triage"]
+title: '[Feedback]: '
+labels: ['triage']
# assignees:
# - OneSignal/ios-sdk
body:
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 1ce9a81a..ad828eb8 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,60 +1,75 @@
+
# READ AND DELETE THIS SECTION BEFORE SUBMITTING PR
-* **Fill out each _REQUIRED_ section**
-* **Fill out _OPTIONAL_ sections, remove section if it doesn't apply to your PR**
-* **Read and fill out each of the checklists below**
-* **Remove this section after reading**
+
+- **Fill out each _REQUIRED_ section**
+- **Fill out _OPTIONAL_ sections, remove section if it doesn't apply to your PR**
+- **Read and fill out each of the checklists below**
+- **Remove this section after reading**
# Description
+
## One Line Summary
+
**REQUIRED** - Very short description that summaries the changes in this PR.
## Details
### Motivation
+
**REQUIRED -** Why is this code change being made? Or what is the goal of this PR? Examples: Fixes a specific bug, provides additional logging to debug future issues, feature to allow X.
### Scope
+
**RECOMMEND - OPTIONAL -** What is intended to be effected. What is known not to change. Example: Notifications are grouped when parameter X is set, not enabled by default.
### OPTIONAL - Other
+
**OPTIONAL -** Feel free to add any other sections or sub-sections that can explain your PR better.
# Testing
+
## Unit testing
-**OPTIONAL -** Explain unit tests added, if not clear in the code.
+
+**OPTIONAL -** Explain unit tests added, if not clear in the code.
## Manual testing
+
**RECOMMEND - OPTIONAL -** Explain what scenarios were tested and the environment.
Example: Tested opening a notification while the app was foregrounded, app build with Android Studio 2020.3 with a fresh install of the OneSignal example app on a Pixel 6 with Android 12.
# Affected code checklist
- - [ ] Notifications
- - [ ] Display
- - [ ] Open
- - [ ] Push Processing
- - [ ] Confirm Deliveries
- - [ ] Outcomes
- - [ ] Sessions
- - [ ] In-App Messaging
- - [ ] REST API requests
- - [ ] Public API changes
+
+- [ ] Notifications
+ - [ ] Display
+ - [ ] Open
+ - [ ] Push Processing
+ - [ ] Confirm Deliveries
+- [ ] Outcomes
+- [ ] Sessions
+- [ ] In-App Messaging
+- [ ] REST API requests
+- [ ] Public API changes
# Checklist
+
## Overview
- - [ ] I have filled out all **REQUIRED** sections above
- - [ ] PR does one thing
- - If it is hard to explain how any codes changes are related to each other then it most likely needs to be more than one PR
- - [ ] Any Public API changes are explained in the PR details and conform to existing APIs
+
+- [ ] I have filled out all **REQUIRED** sections above
+- [ ] PR does one thing
+ - If it is hard to explain how any codes changes are related to each other then it most likely needs to be more than one PR
+- [ ] Any Public API changes are explained in the PR details and conform to existing APIs
## Testing
- - [ ] I have included test coverage for these changes, or explained why they are not needed
- - [ ] All automated tests pass, or I explained why that is not possible
- - [ ] I have personally tested this on my device, or explained why that is not possible
+
+- [ ] I have included test coverage for these changes, or explained why they are not needed
+- [ ] All automated tests pass, or I explained why that is not possible
+- [ ] I have personally tested this on my device, or explained why that is not possible
## Final pass
- - [ ] Code is as readable as possible.
- - Simplify with less code, followed by splitting up code into well named functions and variables, followed by adding comments to the code.
- - [ ] I have reviewed this PR myself, ensuring it meets each checklist item
- - WIP (Work In Progress) is ok, but explain what is still in progress and what you would like feedback on. Start the PR title with "WIP" to indicate this.
\ No newline at end of file
+
+- [ ] Code is as readable as possible.
+ - Simplify with less code, followed by splitting up code into well named functions and variables, followed by adding comments to the code.
+- [ ] I have reviewed this PR myself, ensuring it meets each checklist item
+ - WIP (Work In Progress) is ok, but explain what is still in progress and what you would like feedback on. Start the PR title with "WIP" to indicate this.
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
index a7a42bde..5591cb45 100644
--- a/.github/release-drafter.yml
+++ b/.github/release-drafter.yml
@@ -6,9 +6,9 @@ categories:
- title: 🐛 Bug Fixes
label: Bug
- title: 🧰 Improvements
- label: Improvement
+ label: Improvement
- title: down arrow Dependency Updates
- label: Dependencies
+ label: Dependencies
change-template: '- $TITLE (#$NUMBER)'
version-resolver:
major:
@@ -23,5 +23,5 @@ version-resolver:
default: patch
template: |
## Other Changes
-
+
$CHANGES
diff --git a/.github/workflows/Zapier.yml b/.github/workflows/Zapier.yml
index 3665dd58..5aab0bbf 100644
--- a/.github/workflows/Zapier.yml
+++ b/.github/workflows/Zapier.yml
@@ -7,7 +7,7 @@ on:
# Triggers the workflow on push or pull request events but only for the "main" branch
issues:
types: [closed]
-
+
permissions:
issues: read
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index af204294..eac8cfbf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -2,20 +2,20 @@ name: Test
on:
pull_request:
- branches: "**"
+ branches: '**'
jobs:
build:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- - name: "[Setup] Node"
+ - name: '[Setup] Node'
uses: actions/setup-node@v3
with:
node-version: 16
- - name: "[Setup] Dependencies"
+ - name: '[Setup] Dependencies'
run: yarn
- - name: "[Test] Linting"
+ - name: '[Test] Linting'
run: yarn lint
- name: Unit tests results
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
new file mode 100644
index 00000000..cad67cef
--- /dev/null
+++ b/.github/workflows/codeql.yml
@@ -0,0 +1,82 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches: [ "main", "major_release_5.0.0" ]
+ pull_request:
+ # The branches below must be a subset of the branches above
+ branches: [ "main", "major_release_5.0.0" ]
+ schedule:
+ - cron: '37 19 * * 4'
+
+jobs:
+ analyze:
+ name: Analyze
+ # Runner size impacts CodeQL analysis time. To learn more, please see:
+ # - https://gh.io/recommended-hardware-resources-for-running-codeql
+ # - https://gh.io/supported-runners-and-hardware-resources
+ # - https://gh.io/using-larger-runners
+ # Consider using larger runners for possible analysis time improvements.
+ runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
+ timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'javascript-typescript' ]
+ # CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
+ # Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
+ # Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
+ # Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v2
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+
+ # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
+ # queries: security-extended,security-and-quality
+
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, Go, Java, or Swift).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v2
+
+ # ℹ️ Command-line programs to run using the OS shell.
+ # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
+
+ # If the Autobuild fails above, remove it and uncomment the following three lines.
+ # modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
+
+ # - run: |
+ # echo "Run, Build Application using script"
+ # ./location_of_script_within_repo/buildscript.sh
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v2
+ with:
+ category: "/language:${{matrix.language}}"
diff --git a/.github/workflows/npm_deploy.yml b/.github/workflows/npm_deploy.yml
new file mode 100644
index 00000000..71d014cd
--- /dev/null
+++ b/.github/workflows/npm_deploy.yml
@@ -0,0 +1,18 @@
+name: NPM Publish
+
+on:
+ release:
+ types: [created]
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 18
+ - name: Publish package
+ uses: JS-DevTools/npm-publish@v1
+ with:
+ token: ${{ secrets.NPM }}
diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml
index a64b3721..82e66d26 100644
--- a/.github/workflows/release-drafter.yml
+++ b/.github/workflows/release-drafter.yml
@@ -1,4 +1,3 @@
-
name: Release Drafter
on:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index e13790dd..282a6ee1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,6 +3,7 @@
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
### How to Contribute
+
We love the open source community and enjoy the support and contributions of many of our users. We ask that any potential contributors to the SDK Follow the following guidelines:
If your proposed contribution is a small bug fix, please feel free to create your own fork of the repository and create a pull request.
@@ -10,13 +11,15 @@ If your proposed contribution is a small bug fix, please feel free to create you
If your contribution would _break_ or _change_ the functionality of the SDK, please reach out to us on (contact) before you put in a lot of effort into a change we may not be able to use. We try our best to make sure that the SDK remains stable so that developers do not have to continually change their code, however some breaking changes _are_ desirable, so please get in touch to discuss your idea before you put in a lot of effort.
#### Reporting Bugs
-If you have found a bug with the SDK, please feel free to open an Issue.
+
+If you have found a bug with the SDK, please feel free to open an Issue.
If you are pretty certain that the issue is only related to the native iOS SDK, please open the issue in our [native iOS SDK repository](https://github.com/OneSignal/OneSignal-iOS-SDK).
If you are certain the issue is contained to the Android SDK, please open the issue in our [Android SDK repository](https://github.com/OneSignal/OneSignal-Android-SDK)
#### Before Submitting A Bug Report
+
Before creating bug reports, please check this list of steps to follow.
1. Make sure that you are actually encountering an _issue_ and not a _question_. If you simply have a question about the SDK, we would be more than happy to assist you in our Support section on the web (https://www.onesignal.com - click the Message button at the bottom right)
@@ -24,10 +27,10 @@ Before creating bug reports, please check this list of steps to follow.
> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
-
#### How Do I Submit a Good Bug Report
-* **Use a clear and descriptive title** for the issue to identify the problem.
-* **Include Reproducibility** It is nearly always a good idea to include steps to reproduct the issue. If you cannot reliably reproduce the issue yourself, that's ok, but reproducible steps help best.
-* **Describe your environment**, tell us what version of react-native your app is using, what version of the react-native-onesignal SDK you're using, how you added it to your project, and so on.
-* **Include a Stack Trace** If your issue involves a crash/exception, ***PLEASE*** post the stack trace to help us identify the root issue.
-* **Include an Example Project** This isn't required, but if you want your issue fixed quickly, it's often a good idea to include an example project as a zip and include it with the issue. You can also download the Demo project (included in the `/examples` folder of this repo) and set up an example project with this code as a starting point.
+
+- **Use a clear and descriptive title** for the issue to identify the problem.
+- **Include Reproducibility** It is nearly always a good idea to include steps to reproduct the issue. If you cannot reliably reproduce the issue yourself, that's ok, but reproducible steps help best.
+- **Describe your environment**, tell us what version of react-native your app is using, what version of the react-native-onesignal SDK you're using, how you added it to your project, and so on.
+- **Include a Stack Trace** If your issue involves a crash/exception, **_PLEASE_** post the stack trace to help us identify the root issue.
+- **Include an Example Project** This isn't required, but if you want your issue fixed quickly, it's often a good idea to include an example project as a zip and include it with the issue. You can also download the Demo project (included in the `/examples` folder of this repo) and set up an example project with this code as a starting point.
diff --git a/MIGRATION_GUIDE.md b/MIGRATION_GUIDE.md
new file mode 100644
index 00000000..41136a4b
--- /dev/null
+++ b/MIGRATION_GUIDE.md
@@ -0,0 +1,409 @@
+# React Native v5.0.0 Migration Guide
+
+# Intro
+
+In this release, we are making a significant shift from a device-centered model to a user-centered model. A user-centered model allows for more powerful omni-channel integrations within the OneSignal platform.
+
+To facilitate this change, the `externalId` approach for identifying users is being replaced by the `login` and `logout` methods. In addition, the SDK now makes use of namespaces such as `User`, `Notifications`, and `InAppMessages` to better separate code.
+
+This migration guide will walk you through the React Native SDK changes as a result of this shift.
+
+# Overview
+
+Under the user-centered model, the concept of a "player" is being replaced with three new concepts: **users**, **subscriptions**, and **aliases**.
+
+## Users
+
+A user is a new concept which is meant to represent your end-user. A user has zero or more subscriptions and can be uniquely identified by one or more aliases. In addition to subscriptions, a user can have **data tags** which allows for user attribution.
+
+## Subscription
+
+A subscription refers to the method in which an end-user can receive various communications sent by OneSignal, including push notifications, SMS, and email. In previous versions of the OneSignal platform, each of these channels was referred to as a “player”. A subscription is in fact identical to the legacy “player” concept. Each subscription has a **subscription_id** (previously, player_id) to uniquely identify that communication channel.
+
+## Aliases
+
+Aliases are a concept evolved from [external user ids](https://documentation.onesignal.com/docs/external-user-ids) which allows the unique identification of a user within a OneSignal application. Aliases are a key-value pair made up of an **alias label** (the key) and an **alias id** (the value). The **alias label** can be thought of as a consistent keyword across all users, while the **alias id** is a value specific to each user for that particular label. The combined **alias label** and **alias id** provide uniqueness to successfully identify a user.
+
+OneSignal uses a built-in **alias label** called `external_id` which supports existing use of [external user ids](https://documentation.onesignal.com/docs/external-user-ids). `external_id` is also used as the identification method when a user identifies themselves to the OneSignal SDK via `OneSignal.login`. Multiple aliases can be created for each user to allow for your own application's unique identifier as well as identifiers from other integrated applications.
+
+# Migration Guide (v4 to v5)
+
+The React Native SDK accesses the OneSignal native iOS and Android SDKs. For this update, all SDK versions are aligning across OneSignal’s suite of client SDKs. As such, the native iOS SDK is making the jump from `v3` to `v5`. See existing install instructions [here](https://documentation.onesignal.com/docs/react-native-sdk-setup) for more information.
+
+## iOS
+### Notification Service Extension Changes
+
+In your Project Root > ios > Podfile, update the notification service extension:
+
+```
+ // 4.x.x
+ target 'OneSignalNotificationServiceExtension' do
+ pod 'OneSignalXCFramework', '>= 3.0', '< 4.0'
+ end
+
+ // 5.x.x
+ target 'OneSignalNotificationServiceExtension' do
+ pod 'OneSignalXCFramework', '>= 5.0', '< 6.0'
+ end
+```
+
+Close Xcode. While still in the ios directory, run `pod install --repo-update`.
+
+# API Changes
+
+## Namespaces
+
+The OneSignal SDK has been updated to be more modular in nature. The SDK has been split into namespaces, and functionality previously in the static `OneSignal` class has been moved to the appropriate namespace. The namespaces and how to access them in code are as follows:
+
+| **Namespace** | **Access Pattern** |
+| -------------- | -------------------------- |
+| Debug | `OneSignal.Debug` |
+| InAppMessages | `OneSignal.InAppMessages` |
+| LiveActivities | `OneSignal.LiveActivities` |
+| Location | `OneSignal.Location` |
+| Notifications | `OneSignal.Notifications` |
+| Session | `OneSignal.Session` |
+| User | `OneSignal.User` |
+
+## Initialization
+
+Initialization of the OneSignal SDK is now completed through the `initialize` method. A typical initialization now looks similar to below.
+
+Navigate to your index.ts file, or the first Javascript file that loads with your app.
+
+Replace the following:
+
+```typescript
+OneSignal.setAppId('YOUR_ONESIGNAL_APP_ID');
+```
+
+To the match the new initialization:
+
+```typescript
+OneSignal.initialize('YOUR_ONESIGNAL_APP_ID');
+```
+
+**for iOS:** Remove any usages of `setLaunchURLsInApp` as the method and functionality has been removed.
+
+If your integration is **not** user-centric, there is no additional startup code required. A device-scoped user _(please see definition of “**device-scoped user**” below in Glossary)_ is automatically created as part of the push subscription creation, both of which are only accessible from the current device or through the OneSignal dashboard.
+
+If your integration is user-centric, or you want the ability to identify the user beyond the current device, the `login` method should be called to identify the user:
+
+```typescript
+OneSignal.login('USER_EXTERNAL_ID');
+```
+
+The `login` method will associate the device’s push subscription to the user that can be identified via the alias `externalId=USER_EXTERNAL_ID`. If that user doesn’t already exist, it will be created. If the user does already exist, the user will be updated to own the device’s push subscription. Note that the push subscription for the device will always be transferred to the newly logged in user, as that user is the current owner of that push subscription.
+
+Once (or if) the user is no longer identifiable in your app (i.e. they logged out), the `logout` method should be called:
+
+```typescript
+OneSignal.logout();
+```
+
+Logging out has the affect of reverting to a device-scoped user, which is the new owner of the device’s push subscription.
+
+## Subscriptions
+
+In previous versions of the SDK, a “player” could have up to one email address and up to one phone number for SMS. In the user-centered model, a user can own the current device’s **Push Subscription** along with the ability to have **zero or more** email subscriptions and **zero or more** SMS subscriptions. Note: If a new user logs in via the `login` method, the previous user will no longer own that push subscription.
+
+### **Push Subscription**
+
+The current device’s push subscription can be retrieved via:
+
+```typescript
+const id: string = OneSignal.User.pushSubscription.getPushSubscriptionId();
+const token: string = OneSignal.User.pushSubscription.getPushSubscriptionToken();
+const optedIn: boolean = OneSignal.User.pushSubscription.getOptedIn();
+```
+
+### **Opting In and Out of Push Notifications**
+
+To receive push notifications on the device, call the push subscription’s `optIn()` method. If needed, this method will prompt the user for push notifications permission.
+
+Note: For greater control over prompting for push notification permission, you may use the `OneSignal.Notifications.requestPermission` method detailed below in the API Reference.
+
+```typescript
+OneSignal.User.pushSubscription.optIn();
+```
+
+If at any point you want the user to stop receiving push notifications on the current device (regardless of system-level permission status), you can use the push subscription to opt out:
+
+```typescript
+OneSignal.User.pushSubscription.optOut();
+```
+
+To resume receiving of push notifications (driving the native permission prompt if permissions are not available), you can opt back in with the `optIn` method from above.
+
+### **Email/SMS Subscriptions**
+
+Email and/or SMS subscriptions can be added or removed via the following methods. The remove methods will result in a no-op if the specified email or SMS number does not exist on the user within the SDK, and no request will be made.
+
+```typescript
+// Add email subscription
+OneSignal.User.addEmail('customer@company.com');
+// Remove previously added email subscription
+OneSignal.User.removeEmail('customer@company.com');
+
+// Add SMS subscription
+OneSignal.User.addSms('+15558675309');
+// Remove previously added SMS subscription
+OneSignal.User.removeSms('+15558675309');
+```
+
+# API Reference
+
+Below is a comprehensive reference to the `5.0.0` OneSignal React Native SDK.
+
+## OneSignal
+
+The SDK is still accessible via a `OneSignal` static class. It provides access to higher level functionality and is a gateway to each subspace of the SDK.
+
+| **React Native** | **Description** |
+| ----------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `OneSignal.initialize("YOUR_ONESIGNAL_APP_ID")` | _Initializes the OneSignal SDK. This should be called during startup of the application._ |
+| `OneSignal.login("USER_EXTERNAL_ID")` | _Login to OneSignal under the user identified by the [externalId] provided. The act of logging a user into the OneSignal SDK will switch the [user] context to that specific user. - If the [externalId] exists, the user will be retrieved and the context will be set from that user information. If operations have already been performed under a device-scoped user, they **_will not_** be applied to the now logged in user (they will be lost). - If the [externalId] does not exist the user, the user will be created and the context set from the current local state. If operations have already been performed under a device-scoped user, those operations **_will_** be applied to the newly created user. **_Push Notifications and In App Messaging_** Logging in a new user will automatically transfer the push notification and in app messaging subscription from the current user (if there is one) to the newly logged in user. This is because both push notifications and in-app messages are owned by the device._ |
+| `OneSignal.logout()` | _Logout the user previously logged in via [login]. The [user] property now references a new device-scoped user. A device-scoped user has no user identity that can later be retrieved, except through this device as long as the app remains installed and the app data is not cleared._ |
+| `OneSignal.setConsentGiven(true)` | _Indicates whether privacy consent has been granted. This field is only relevant when the application has opted into data privacy protections. See [requiresPrivacyConsent]._ |
+| `OneSignal.setConsentRequired(true)` | _Determines whether a user must consent to privacy prior to their user data being sent up to OneSignal. This should be set to `true` prior to the invocation of `initialize` to ensure compliance._
+
+## Live Activities Namespace
+
+Live Activities are a type of interactive push notification. Apple introduced them in October 2022 to enable iOS apps to provide real-time updates to their users that are visible from the lock screen and the dynamic island.
+
+Please refer to OneSignal’s guide on [Live Activities](https://documentation.onesignal.com/docs/live-activities), the [Live Activities Quickstart](https://documentation.onesignal.com/docs/live-activities-quickstart) tutorial, and the [existing SDK reference](https://documentation.onesignal.com/docs/live-activities-sdk-methods) on Live Activities.
+
+| **React Native** | **Description** |
+| ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `OneSignal.LiveActivities.enter("ACTIVITY_ID", "TOKEN")` **_See below for usage of callbacks_** | _Entering a Live Activity associates an `activityId` with a live activity temporary push `token` on OneSignal's server. The activityId is then used with the OneSignal REST API to update one or multiple Live Activities at one time._ |
+| `OneSignal.LiveActivities.exit("ACTIVITY_ID")` **_See below for usage of callbacks_** | _Exiting a Live activity deletes the association between a customer defined `activityId` with a Live Activity temporary push `token` on OneSignal's server._ |
+
+```typescript
+// Enter a Live Activity
+OneSignal.LiveActivities.enter('ACTIVITY_ID', 'TOKEN', (results) => {
+ console.log('Results of entering live activity');
+ console.log(results);
+});
+
+// Exit a Live Activity
+OneSignal.LiveActivities.exit('ACTIVITY_ID', (results) => {
+ console.log('Results of exiting live activity');
+ console.log(results);
+});
+```
+
+## User Namespace
+
+The User namespace is accessible via `OneSignal.User` and provides access to user-scoped functionality.
+
+| **React Native** | **Description** |
+| ------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `OneSignal.User.setLanguage("en")` | _Set the 2-character language for this user._ |
+| `OneSignal.User.addAlias("ALIAS_LABEL", "ALIAS_ID")` | _Set an alias for the current user. If this alias label already exists on this user, it will be overwritten with the new alias id._ |
+| `OneSignal.User.addAliases({ALIAS_LABEL_01: "ALIAS_ID_01", ALIAS_LABEL_02: "ALIAS_ID_02"})` | _Set aliases for the current user. If any alias already exists, it will be overwritten to the new values._ |
+| `OneSignal.User.removeAlias("ALIAS_LABEL")` | _Remove an alias from the current user._ |
+| `OneSignal.User.removeAliases(["ALIAS_LABEL_01", "ALIAS_LABEL_02"]])` | _Remove aliases from the current user._ |
+| `OneSignal.User.addEmail("customer@company.com")` | _Add a new email subscription to the current user._ |
+| `OneSignal.User.removeEmail("customer@company.com")` | _Results in a no-op if the specified email does not exist on the user within the SDK, and no request will be made._ |
+| `OneSignal.User.addSms("+15558675309")` | _Add a new SMS subscription to the current user._ |
+| `OneSignal.User.removeSms("+15558675309")` | _Results in a no-op if the specified phone number does not exist on the user within the SDK, and no request will be made.._ |
+| `OneSignal.User.addTag("KEY", "VALUE")` | _Add a tag for the current user. Tags are key:value pairs used as building blocks for targeting specific users and/or personalizing messages. If the tag key already exists, it will be replaced with the value provided here._ |
+| `OneSignal.User.addTags({"KEY_01": "VALUE_01", "KEY_02": "VALUE_02"})` | _Add multiple tags for the current user. Tags are key:value pairs used as building blocks for targeting specific users and/or personalizing messages. If the tag key already exists, it will be replaced with the value provided here._ |
+| `OneSignal.User.removeTag("KEY")` | _Remove the data tag with the provided key from the current user._ |
+| `OneSignal.User.removeTags(["KEY_01", "KEY_02"])` | _Remove multiple tags with the provided keys from the current user._ |
+| `OneSignal.User.getTags()` | _Returns the local tags for the current user._|
+| `OneSignal.User.addEventListener("change", (event: UserChangedState) => void)` **_See below for usage_** | _Add a User State callback which contains the nullable onesignalId and externalId. The listener will be fired when these values change._|
+| `await OneSignal.User.getOnesignalId()` | _Returns the OneSignal ID for the current user, which can be null if it is not yet available._|
+| `await OneSignal.User.getExternalId()` | _Returns the External ID for the current user, which can be null if not set._|
+
+### User State Listener
+
+```typescript
+ const listener = (event: UserChangedState) => {
+ console.log("User changed: " + (event));
+ };
+
+ OneSignal.User.addEventListener("change", listener);
+ // Remove the listener
+ OneSignal.User.removeEventListener("change", listener);
+```
+
+## Push Subscription Namespace
+
+The Push Subscription namespace is accessible via `OneSignal.User.pushSubscription` and provides access to push subscription-scoped functionality.
+
+| **React Native** | **Description** |
+| --------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `OneSignal.User.pushSubscription.getPushSubscriptionId()` | _**DEPRECATED** use `getIdAsync`._ |
+| `OneSignal.User.pushSubscription.getPushSubscriptionToken()` | _**DEPRECATED** use `getTokenAsync`_ |
+| `OneSignal.User.pushSubscription.getOptedIn()` | _**DEPRECATED** use `getOptedInAsync`_ |
+| `await OneSignal.User.pushSubscription.getIdAsync()` | _The readonly push subscription ID._ |
+| `await OneSignal.User.pushSubscription.getTokenAsync()` | _The readonly push token._ |
+| `await OneSignal.User.pushSubscription.getOptedInAsync()` | _Gets a boolean value indicating whether the current user is opted in to push notifications. This returns `true` when the app has notifications permission and `optedOut` is called. **_Note:_** Does not take into account the existence of the subscription ID and push token. This boolean may return `true` but push notifications may still not be received by the user._ |
+| `OneSignal.User.pushSubscription.optIn()` | _Call this method to receive push notifications on the device or to resume receiving of push notifications after calling `optOut`. If needed, this method will prompt the user for push notifications permission._ |
+| `OneSignal.User.pushSubscription.optOut()` | _If at any point you want the user to stop receiving push notifications on the current device (regardless of system-level permission status), you can call this method to opt out._ |
+| `OneSignal.User.pushSubscription.addEventListener('change', listener: (event) => void)` **_See below for usage_** | _Adds the listener to run when the push subscription changes._ |
+| `OneSignal.User.pushSubscription.removeEventListener('change', listener)` **_See below for usage_** | _Remove a push subscription listener that has been previously added._ |
+
+### Push Subscription Observer
+
+```typescript
+// Create an observer
+OneSignal.User.pushSubscription.addEventListener('change', (subscription) => {
+ console.log('OneSignal: subscription changed:', subscription);
+});
+
+// Removes the previously added observer
+OneSignal.User.pushSubscription.removeEventListener('change', subscription);
+```
+
+## Session Namespace
+
+The Session namespace is accessible via `OneSignal.Session` and provides access to session-scoped functionality.
+
+| **React Native** | **Description** |
+| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
+| `OneSignal.Session.addOutcome("OUTCOME_NAME")` | _Add an outcome with the provided name, captured against the current session._ |
+| `OneSignal.Session.addUniqueOutcome("OUTCOME_NAME")` | _Add a unique outcome with the provided name, captured against the current session._ |
+| `OneSignal.Session.addOutcomeWithValue("OUTCOME_NAME", 1)` | _Add an outcome with the provided name and value, captured against the current session._ |
+
+## Notifications Namespace
+
+The Notifications namespace is accessible via `OneSignal.Notifications` and provides access to notification-scoped functionality.
+
+| **React Native** | **Description** |
+|--------------------------------------- | --------------- |
+| `OneSignal.Notifications.hasPermission()` | _**DEPRECATED** use `getPermissionAsync()`_ |
+| `OneSignal.Notifications.getPermissionAsync()` | _Whether this app has push notification permission._ |
+| `await OneSignal.Notifications.canRequestPermission()` | _Whether attempting to request notification permission will show a prompt. Returns `true` if the device has not been prompted for push notification permission already._ |
+| `await OneSignal.Notifications.permissionNative()` | _(ios only) Returns the enum for the native permission of the device. It will be one of: NotDetermined, Denied, Authorized, Provisional (only available in iOS 12), Ephemeral (only available in iOS 14)_ |
+| `OneSignal.Notifications.clearAll();` | _Removes all OneSignal notifications._ |
+| `OneSignal.Notifications.removeNotification(32432)` | _(Android only) Cancels a single OneSignal notification based on its Android notification integer ID. Use instead of Android's [android.app.NotificationManager.cancel], otherwise the notification will be restored when your app is restarted._ |
+| `OneSignal.Notifications.removeGroupedNotifications("GROUP_KEY")` | _(Android only) Cancels a group of OneSignal notifications with the provided group key. Grouping notifications is a OneSignal concept, there is no [android.app.NotificationManager] equivalent._ |
+| `await OneSignal.Notifications.requestPermission(fallbackToSettings: boolean)` **_See below for usage_** | _Prompt the user for permission to receive push notifications. This will display the native system prompt to request push notification permission._ |
+| `OneSignal.Notifications.registerForProvisionalAuthorization()` | _(iOS only) Instead of having to prompt the user for permission to send them push notifications, your app can request provisional authorization._ |
+| `OneSignal.Notifications.addEventListener("permissionChange", (observer) => {});` **_See below for usage_** | _This method will fire when a notification permission setting changes. This happens when the user enables or disables notifications for your app from the system settings outside of your app._ |
+| `OneSignal.Notifications.removeEventListener("permissionChange", (observer) => {});` **_See below for usage_** | _Remove a push permission observer that has been previously added._ |
+| `OneSignal.Notifications.addEventListener("foregroundWillDisplay", (event) => {};)` **_See below for usage_** | _Sets the handler to run before displaying a notification while the app is in focus. Use this handler to read notification data and change it or decide if the notification **_should_** show or not. **_Note:_** this runs **_after_** the [Notification Service Extension](https://documentation.onesignal.com/docs/service-extensions) which can be used to modify the notification before showing it._ |
+| `OneSignal.Notifications.addEventListener("click", (event) => {};)` **_See below for usage_** | _Sets a handler that will run whenever a notification is opened by the user._ |
+
+### Prompt for Push Notification Permission
+
+```typescript
+OneSignal.Notifications.requestPermission(true).then(accepted => {
+ console.log('User accepted notifications: ' + accepted);
+});
+```
+
+### Permission Observer
+
+Add an observer when permission status changes. You can call `removeEventListener` to remove any existing listeners.
+
+```typescript
+// Add an observer
+OneSignal.Notifications.addEventListener('permissionChange', (granted: boolean) => {
+ console.log('OneSignal: permission changed:', granted);
+});
+
+// Remove previously added observer
+OneSignal.Notifications.removeEventListener('permissionChange', observer);
+```
+
+### Notification Lifecycle Listener
+
+```typescript
+OneSignal.Notifications.addEventListener('foregroundWillDisplay', (event: NotificationWillDisplayEvent) => {
+ event.preventDefault();
+ // some async work
+
+ // Use display() to display the notification after some async work
+ event.getNotification().display();
+});
+```
+
+### Notification Click Listener
+
+```typescript
+OneSignal.Notifications.addEventListener('click', (event: NotificationClickEvent) => {
+ console.log('OneSignal: notification clicked: ' + event);
+});
+```
+
+## Location Namespace
+
+The Location namespace is accessible via `OneSignal.Location` and provide access to location-scoped functionality.
+
+| **React Native** | **Description** |
+| ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `OneSignal.Location.setShared(shared: boolean)` | _Set whether location is currently shared with OneSignal._ |
+| `await OneSignal.Location.isShared()` | _Whether location is currently shared with OneSignal._ |
+| `OneSignal.Location.requestPermission()` | _Use this method to manually prompt the user for location permissions. This allows for geotagging so you send notifications to users based on location._ |
+
+## InAppMessages Namespace
+
+The In App Messages namespace is accessible via `OneSignal.InAppMessages` and provide access to in app messages-scoped functionality.
+
+| **React Native** | **Description** |
+| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `await OneSignal.InAppMessages.getPaused()` `OneSignal.InAppMessages.setPaused(true)` | _Whether in-app messaging is currently paused. When set to `true`, no IAM will be presented to the user regardless of whether they qualify for them. When set to `false`, any IAMs the user qualifies for will be presented to the user at the appropriate time._ |
+| `OneSignal.InAppMessages.addTrigger("triggerKey", "triggerValue")` | _Add a trigger for the current user. Triggers are currently explicitly used to determine whether a specific IAM should be displayed to the user. See [Triggers](https://documentation.onesignal.com/docs/iam-triggers). If the trigger key already exists, it will be replaced with the value provided here. Note that triggers are not persisted to the backend. They only exist on the local device and are applicable to the current user._ |
+| `OneSignal.InAppMessages.addTriggers({"triggerKey1":"triggerValue", "triggerKey2": "triggerValue"})` | _Add multiple triggers for the current user. Triggers are currently explicitly used to determine whether a specific IAM should be displayed to the user. See [Triggers](https://documentation.onesignal.com/docs/iam-triggers). If any trigger key already exists, it will be replaced with the value provided here. Note that triggers are not persisted to the backend. They only exist on the local device and are applicable to the current user._ |
+| `OneSignal.InAppMessages.removeTrigger("triggerKey")` | _Remove the trigger with the provided key from the current user._ |
+| `OneSignal.InAppMessages.removeTriggers(["triggerKey1", "triggerKey2"])` | _Remove multiple triggers from the current user._ |
+| `OneSignal.InAppMessages.clearTriggers()` | _Clear all triggers from the current user._ |
+| ` OneSignal.InAppMessages.setLifecycleHandler(handlerObject)` **_See below for usage_** | _Set the in-app message lifecycle handler._ |
+| `OneSignal.InAppMessages.setClickHandler(handler)` **_See below for usage_** | _Set the in-app message click handler._ |
+
+### In-App Message Click Listener
+
+```typescript
+OneSignal.InAppMessages.addEventListener('click', (event) => {
+ console.log('OneSignal IAM clicked: ' + event);
+});
+```
+
+### In-App Message Lifecycle Listeners
+
+```typescript
+OneSignal.InAppMessages.addEventListener('willDisplay', (event) => {
+ console.log('OneSignal: will display IAM: ', event);
+});
+
+OneSignal.InAppMessages.addEventListener('didDisplay', (event) => {
+ console.log('OneSignal: did display IAM: ', event);
+});
+
+OneSignal.InAppMessages.addEventListener('willDismiss', (event) => {
+ console.log('OneSignal: will dismiss IAM: ', event);
+});
+
+OneSignal.InAppMessages.addEventListener('didDismiss', (event) => {
+ console.log('OneSignal: did dismiss IAM: ', event);
+});
+```
+
+## Debug Namespace
+
+The Debug namespace is accessible via `OneSignal.Debug` and provide access to debug-scoped functionality.
+
+| **React Native** | **Description** |
+| ---------------------------------- | -------------------------------------------------------------------------- |
+| `OneSignal.Debug.setLogLevel(LogLevel.Verbose)` | _Sets the log level the OneSignal SDK should be writing to the Xcode log._ |
+| `OneSignal.Debug.setAlertLevel(LogLevel.Verbose)` | _Sets the logging level to show as alert dialogs._ |
+
+# Glossary
+
+**device-scoped user**
+
+> An anonymous user with no aliases that cannot be retrieved except through the current device or OneSignal dashboard. On app install, the OneSignal SDK is initialized with a _device-scoped user_. A _device-scoped user_ can be upgraded to an identified user by calling `OneSignal.login("USER_EXTERNAL_ID")` to identify the user by the specified external user ID.
+
+# Limitations
+
+- Changing app IDs is not supported.
+- Any `User` namespace calls must be invoked **after** initialization. Example: `OneSignal.User.addTag("tag", "2")`
+- In the SDK, the user state is only refreshed from the server when a new session is started (cold start or backgrounded for over 30 seconds) or when the user is logged in. This is by design.
+
+# Known issues
+
+- Identity Verification
+ - We will be introducing Identity Verification using JWT in a follow up release
diff --git a/README.md b/README.md
index eac166ec..8afe8682 100755
--- a/README.md
+++ b/README.md
@@ -3,6 +3,7 @@
### React Native OneSignal SDK
+
[![npm version](https://img.shields.io/npm/v/react-native-onesignal.svg)](https://www.npmjs.com/package/react-native-onesignal) [![npm downloads](https://img.shields.io/npm/dm/react-native-onesignal.svg)](https://www.npmjs.com/package/react-native-onesignal)
---
@@ -10,18 +11,18 @@
[OneSignal](https://onesignal.com/) is a free email, sms, push notification, and in-app message service for mobile apps. This SDK makes it easy to integrate your native React-Native iOS and/or Android apps with OneSignal.
#### Installation
+
See the [Setup Guide](https://documentation.onesignal.com/docs/react-native-sdk-setup) for setup instructions.
#### Change Log
+
See this repository's [release tags](https://github.com/OneSignal/react-native-onesignal/releases) for a complete change log of every released version.
#### Support
+
Please visit this repository's [Github issue tracker](https://github.com/OneSignal/react-native-onesignal/issues) for feature requests and bug reports related specifically to the SDK.
For account issues and support please contact OneSignal support from the [OneSignal.com](https://onesignal.com) dashboard.
#### Demo Project
-To make things easier, we have published demo projects in the `/examples` folder of this repository.
-#### Supports:
-* Tested from iOS 7 to iOS 13
-* Tested from Android 4.0.3 (API level 15) to Android 9 (28)
+To make things easier, we have published demo projects in the `/examples` folder of this repository.
diff --git a/android/build.gradle b/android/build.gradle
index 0f67a28a..5f78813d 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -26,21 +26,12 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "com.facebook.react:react-native:${safeExtGet('reactNativeVersion', '+')}"
+ implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4"
+ implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4"
// api is used instead of implementation so the parent :app project can access any of the OneSignal Java
// classes if needed. Such as com.onesignal.NotificationExtenderService
- api 'com.onesignal:OneSignal:4.8.6'
-
+ api 'com.onesignal:OneSignal:5.1.6'
+
testImplementation 'junit:junit:4.12'
-}
-
-// Add the following to the top (Line 1) of your app/build.gradle if you run into any issues with duplicate classes.
-// Such as the following error
-// Error: more than one library with package name 'com.google.android.gms.license'
-
-/*
-plugins {
- id 'com.onesignal.androidsdk.onesignal-gradle-plugin' version '0.8.1'
-}
-apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
-*/
+}
\ No newline at end of file
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 04e285f3..dbdc05d2 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,4 +1,3 @@
-#Mon Dec 28 10:00:20 PST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
diff --git a/android/gradlew b/android/gradlew
old mode 100644
new mode 100755
diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml
index 473b6666..99d753b3 100644
--- a/android/src/main/AndroidManifest.xml
+++ b/android/src/main/AndroidManifest.xml
@@ -1,3 +1,3 @@
+ package="com.onesignal.rnonesignalandroid">
diff --git a/android/src/main/java/com/geektime/rnonesignalandroid/RNOneSignal.java b/android/src/main/java/com/geektime/rnonesignalandroid/RNOneSignal.java
deleted file mode 100644
index 68d4e3ed..00000000
--- a/android/src/main/java/com/geektime/rnonesignalandroid/RNOneSignal.java
+++ /dev/null
@@ -1,869 +0,0 @@
-/*
-Modified MIT License
-
-Copyright 2020 OneSignal
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-1. The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-2. All copies of substantial portions of the Software may only be used in connection
-with services provided by OneSignal.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-Authors:
- - Avishay Bar (creator) - 1/31/16
- - Brad Hesse
- - Josh Kasten
- - Rodrigo Gomez-Palacio
- - Michael DiCioccio
-*/
-
-package com.geektime.rnonesignalandroid;
-
-import android.content.Context;
-import android.content.pm.ApplicationInfo;
-import android.os.Bundle;
-import android.util.Log;
-
-import com.facebook.react.bridge.Callback;
-import com.facebook.react.bridge.LifecycleEventListener;
-import com.facebook.react.bridge.Promise;
-import com.facebook.react.bridge.ReactApplicationContext;
-import com.facebook.react.bridge.ReactContext;
-import com.facebook.react.bridge.ReactContextBaseJavaModule;
-import com.facebook.react.bridge.ReactMethod;
-import com.facebook.react.bridge.ReadableArray;
-import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.modules.core.DeviceEventManagerModule;
-import com.onesignal.OSDeviceState;
-import com.onesignal.OSEmailSubscriptionObserver;
-import com.onesignal.OSEmailSubscriptionStateChanges;
-import com.onesignal.OSInAppMessageAction;
-import com.onesignal.OSNotification;
-import com.onesignal.OSNotificationOpenedResult;
-import com.onesignal.OSNotificationReceivedEvent;
-import com.onesignal.OSOutcomeEvent;
-import com.onesignal.OSPermissionObserver;
-import com.onesignal.OSPermissionStateChanges;
-import com.onesignal.OSSMSSubscriptionObserver;
-import com.onesignal.OSSMSSubscriptionStateChanges;
-import com.onesignal.OSSubscriptionObserver;
-import com.onesignal.OSSubscriptionStateChanges;
-import com.onesignal.OneSignal;
-import com.onesignal.OneSignal.EmailUpdateError;
-import com.onesignal.OneSignal.EmailUpdateHandler;
-import com.onesignal.OneSignal.OSInAppMessageClickHandler;
-import com.onesignal.OSInAppMessageLifecycleHandler;
-import com.onesignal.OSInAppMessage;
-import com.onesignal.OneSignal.OSNotificationOpenedHandler;
-import com.onesignal.OneSignal.OutcomeCallback;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.HashMap;
-
-public class RNOneSignal extends ReactContextBaseJavaModule
- implements
- OSPermissionObserver,
- OSSubscriptionObserver,
- OSNotificationOpenedHandler,
- OSEmailSubscriptionObserver,
- LifecycleEventListener,
- OSInAppMessageClickHandler,
- OSSMSSubscriptionObserver {
-
- public static final String HIDDEN_MESSAGE_KEY = "hidden";
-
- private ReactApplicationContext mReactApplicationContext;
- private ReactContext mReactContext;
-
- private boolean oneSignalInitDone;
-
- private OSInAppMessageAction inAppMessageActionResult;
-
- private HashMap notificationReceivedEventCache;
-
- private boolean hasSetInAppClickedHandler = false;
- private boolean hasSetSubscriptionObserver = false;
- private boolean hasSetEmailSubscriptionObserver = false;
- private boolean hasSetSMSSubscriptionObserver = false;
- private boolean hasSetPermissionObserver = false;
-
- // A native module is supposed to invoke its callback only once. It can, however, store the callback and invoke it later.
- // It is very important to highlight that the callback is not invoked immediately after the native function completes
- // - remember that bridge communication is asynchronous, and this too is tied to the run loop.
- // Once you have done invoke() on the callback, you cannot use it again. Store it here.
- private Callback pendingGetTagsCallback;
-
- private String appIdFromManifest(ReactApplicationContext context) {
- try {
- ApplicationInfo ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), context.getPackageManager().GET_META_DATA);
- Bundle bundle = ai.metaData;
- return bundle.getString("onesignal_app_id");
- } catch (Throwable t) {
- t.printStackTrace();
- return null;
- }
- }
-
- private void removeObservers() {
- this.removeEmailSubscriptionObserver();
- this.removePermissionObserver();
- this.removeSubscriptionObserver();
- this.removeSMSSubscriptionObserver();
- }
-
- private void removeHandlers() {
- OneSignal.setInAppMessageClickHandler(null);
- OneSignal.setNotificationOpenedHandler(null);
- OneSignal.setNotificationWillShowInForegroundHandler(null);
- OneSignal.setInAppMessageLifecycleHandler(null);
- }
-
- private void sendEvent(String eventName, Object params) {
- mReactContext
- .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
- .emit(eventName, params);
- }
-
- private JSONObject jsonFromErrorMessageString(String errorMessage) throws JSONException {
- return new JSONObject().put("error", errorMessage);
- }
-
- public RNOneSignal(ReactApplicationContext reactContext) {
- super(reactContext);
- mReactApplicationContext = reactContext;
- mReactContext = reactContext;
- mReactContext.addLifecycleEventListener(this);
- notificationReceivedEventCache = new HashMap();
- }
-
- // Initialize OneSignal only once when an Activity is available.
- // React creates an instance of this class to late for OneSignal to get the current Activity
- // based on registerActivityLifecycleCallbacks it uses to listen for the first Activity.
- // However it seems it is also to soon to call getCurrentActivity() from the reactContext as well.
- // This will normally succeed when onHostResume fires instead.
- private void initOneSignal() {
- OneSignal.sdkType = "react";
- Context context = mReactApplicationContext.getCurrentActivity();
-
- if (oneSignalInitDone) {
- Log.e("OneSignal", "Already initialized the OneSignal React-Native SDK");
- return;
- }
-
- oneSignalInitDone = true;
-
-
- if (context == null) {
- // in some cases, especially when react-native-navigation is installed,
- // the activity can be null, so we can initialize with the context instead
- context = mReactApplicationContext.getApplicationContext();
- }
-
- OneSignal.setInAppMessageClickHandler(this);
- OneSignal.initWithContext(context);
- }
-
- @ReactMethod
- public void setAppId(String appId) {
- OneSignal.setAppId(appId);
- }
-
- /* Observers */
- @Override
- public void onOSPermissionChanged(OSPermissionStateChanges stateChanges) {
- Log.i("OneSignal", "sending permission change event");
- sendEvent("OneSignal-permissionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
- }
-
- @Override
- public void onOSSubscriptionChanged(OSSubscriptionStateChanges stateChanges) {
- Log.i("OneSignal", "sending subscription change event");
- sendEvent("OneSignal-subscriptionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
- }
-
- @Override
- public void onOSEmailSubscriptionChanged(OSEmailSubscriptionStateChanges stateChanges) {
- Log.i("OneSignal", "sending email subscription change event");
- sendEvent("OneSignal-emailSubscriptionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
- }
-
- @Override
- public void onSMSSubscriptionChanged(OSSMSSubscriptionStateChanges stateChanges) {
- Log.i("OneSignal", "sending SMS subscription change event");
- sendEvent("OneSignal-smsSubscriptionChanged", RNUtils.jsonToWritableMap(stateChanges.toJSONObject()));
- }
-
- @ReactMethod
- public void addPermissionObserver() {
- if (!hasSetPermissionObserver) {
- OneSignal.addPermissionObserver(this);
- hasSetPermissionObserver = true;
- }
- }
-
- @ReactMethod
- public void removePermissionObserver() {
- if (hasSetPermissionObserver) {
- OneSignal.removePermissionObserver(this);
- hasSetPermissionObserver = false;
- }
- }
-
- @ReactMethod
- public void addSubscriptionObserver() {
- if (!hasSetSubscriptionObserver) {
- OneSignal.addSubscriptionObserver(this);
- hasSetSubscriptionObserver = true;
- }
- }
-
- @ReactMethod
- public void removeSubscriptionObserver() {
- if (hasSetSubscriptionObserver) {
- OneSignal.removeSubscriptionObserver(this);
- hasSetSubscriptionObserver = false;
- }
- }
-
- @ReactMethod
- public void addEmailSubscriptionObserver() {
- if (!hasSetEmailSubscriptionObserver) {
- OneSignal.addEmailSubscriptionObserver(this);
- hasSetEmailSubscriptionObserver = true;
- }
- }
-
- @ReactMethod
- public void removeEmailSubscriptionObserver() {
- if (hasSetEmailSubscriptionObserver) {
- OneSignal.removeEmailSubscriptionObserver(this);
- hasSetEmailSubscriptionObserver = false;
- }
- }
-
- @ReactMethod
- public void addSMSSubscriptionObserver() {
- if (!hasSetSMSSubscriptionObserver) {
- OneSignal.addSMSSubscriptionObserver(this);
- hasSetSMSSubscriptionObserver = true;
- }
- }
-
- @ReactMethod
- public void removeSMSSubscriptionObserver() {
- if (hasSetSMSSubscriptionObserver) {
- OneSignal.removeSMSSubscriptionObserver(this);
- hasSetSMSSubscriptionObserver = false;
- }
- }
-
- /* Other methods */
-
- @ReactMethod
- public void getDeviceState(Promise promise) {
- OSDeviceState state = OneSignal.getDeviceState();
- if (state == null) {
- Log.e("OneSignal", "getDeviceState: OSDeviceState is null");
- promise.reject("Null OSDeviceState", "OSDeviceState is null");
- return;
- }
- promise.resolve(RNUtils.jsonToWritableMap(state.toJSONObject()));
- }
-
- @ReactMethod
- public void setLanguage(String language, final Callback successCallback, final Callback failureCallback) {
- OneSignal.setLanguage(language, new OneSignal.OSSetLanguageCompletionHandler() {
- final Callback[] callbackArr = new Callback[]{ successCallback, failureCallback };
- @Override
- public void onSuccess(String results) {
- if (callbackArr[0] != null) {
- if (results == null) {
- results = "{'success' : 'true', 'message' : 'Successfully set language.'}";
- }
- callbackArr[0].invoke(results);
- callbackArr[0] = null;
- callbackArr[1] = null; // prevent other callback from being invoked by another channel
- }
- }
-
- @Override
- public void onFailure(OneSignal.OSLanguageError error) {
- try {
- if (callbackArr[1] != null) {
- String errorMessage = error.getMessage();
- if (errorMessage == null) {
- errorMessage = "Failed to set language.";
- }
- callbackArr[1].invoke(RNUtils.jsonToWritableMap(jsonFromErrorMessageString(errorMessage)));
- callbackArr[0] = null;
- callbackArr[1] = null;
- }
- } catch (JSONException exception) {
- exception.printStackTrace();
- }
- }
- });
- }
-
- @ReactMethod
- public void disablePush(boolean disable) {
- OneSignal.disablePush(disable);
- }
-
- @ReactMethod
- public void unsubscribeWhenNotificationsAreDisabled(boolean unsubscribe) {
- OneSignal.unsubscribeWhenNotificationsAreDisabled(unsubscribe);
- }
-
- @ReactMethod
- public void sendTag(String key, String value) {
- OneSignal.sendTag(key, value);
- }
-
- @ReactMethod
- public void sendTags(ReadableMap tags) {
- OneSignal.sendTags(RNUtils.readableMapToJson(tags));
- }
-
- @ReactMethod
- public void deleteTags(ReadableArray tagKeys) {
- OneSignal.deleteTags(RNUtils.convertReableArrayIntoStringCollection(tagKeys));
- }
-
- @ReactMethod
- public void getTags(final Callback callback) {
- if (pendingGetTagsCallback == null)
- pendingGetTagsCallback = callback;
-
- OneSignal.getTags(new OneSignal.OSGetTagsHandler() {
- @Override
- public void tagsAvailable(JSONObject tags) {
- if (pendingGetTagsCallback != null)
- pendingGetTagsCallback.invoke(RNUtils.jsonToWritableMap(tags));
-
- pendingGetTagsCallback = null;
- }
- });
- }
-
- @ReactMethod
- public void setEmail(String email, String emailAuthToken, final Callback callback) {
- final Callback[] callbackArr = new Callback[]{ callback };
- OneSignal.setEmail(email, emailAuthToken, new EmailUpdateHandler() {
- @Override
- public void onSuccess() {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke();
- callbackArr[0] = null;
- }
- }
-
- @Override
- public void onFailure(EmailUpdateError error) {
- try {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(jsonFromErrorMessageString(error.getMessage())));
- callbackArr[0] = null;
- }
- } catch (JSONException exception) {
- exception.printStackTrace();
- }
- }
- });
- }
-
- @ReactMethod
- public void logoutEmail(final Callback callback) {
- final Callback[] callbackArr = new Callback[]{ callback };
- OneSignal.logoutEmail(new EmailUpdateHandler() {
- @Override
- public void onSuccess() {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke();
- callbackArr[0] = null;
- }
- }
-
- @Override
- public void onFailure(EmailUpdateError error) {
- try {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(jsonFromErrorMessageString(error.getMessage())));
- callbackArr[0] = null;
- }
- } catch (JSONException exception) {
- exception.printStackTrace();
- }
- }
- });
- }
-
- @ReactMethod
- public void setSMSNumber(String smsNumber, String smsAuthToken, final Callback callback) {
- final Callback[] callbackArr = new Callback[]{ callback };
- OneSignal.setSMSNumber(smsNumber, smsAuthToken, new OneSignal.OSSMSUpdateHandler() {
- @Override
- public void onSuccess(JSONObject result) {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(result));
- callbackArr[0] = null;
- }
- }
-
- @Override
- public void onFailure(OneSignal.OSSMSUpdateError error) {
- try {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(jsonFromErrorMessageString(error.getMessage())));
- callbackArr[0] = null;
- }
- } catch (JSONException exception) {
- exception.printStackTrace();
- }
- }
- });
- }
-
- @ReactMethod
- public void logoutSMSNumber(final Callback callback) {
- final Callback[] callbackArr = new Callback[]{ callback };
- OneSignal.logoutSMSNumber(new OneSignal.OSSMSUpdateHandler() {
- @Override
- public void onSuccess(JSONObject result) {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(result));
- callbackArr[0] = null;
- }
- }
-
- @Override
- public void onFailure(OneSignal.OSSMSUpdateError error) {
- try {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(jsonFromErrorMessageString(error.getMessage())));
- callbackArr[0] = null;
- }
- } catch (JSONException exception) {
- exception.printStackTrace();
- }
- }
- });
- }
-
- @ReactMethod
- public void promptForPushNotificationsWithUserResponse(final boolean fallbackToSettings, final Callback callback) {
- final Callback[] callbackArr = new Callback[]{ callback };
- OneSignal.promptForPushNotifications(fallbackToSettings, new OneSignal.PromptForPushNotificationPermissionResponseHandler() {
- @Override
- public void response(boolean accepted) {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(accepted);
- callbackArr[0] = null;
- }
- }
- });
- }
-
- @ReactMethod
- public void promptLocation() {
- OneSignal.promptLocation();
- }
-
- @ReactMethod
- public void setLogLevel(int logLevel, int visualLogLevel) {
- OneSignal.setLogLevel(logLevel, visualLogLevel);
- }
-
- @ReactMethod
- public void isLocationShared(Promise promise) {
- promise.resolve(OneSignal.isLocationShared());
- }
-
- @ReactMethod
- public void setLocationShared(Boolean shared) {
- OneSignal.setLocationShared(shared);
- }
-
- @ReactMethod
- public void postNotification(String jsonObjectString, final Callback successCallback, final Callback failureCallback) {
- final Callback[] callbackArr = new Callback[]{ successCallback, failureCallback };
- OneSignal.postNotification(
- jsonObjectString,
- new OneSignal.PostNotificationResponseHandler() {
- @Override
- public void onSuccess(JSONObject response) {
- Log.i("OneSignal", "postNotification Success: " + response.toString());
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(response));
- callbackArr[0] = null;
- }
- }
-
- @Override
- public void onFailure(JSONObject response) {
- Log.e("OneSignal", "postNotification Failure: " + response.toString());
- if (callbackArr[1] != null) {
- callbackArr[1].invoke(RNUtils.jsonToWritableMap(response));
- callbackArr[1] = null;
- }
- }
- }
- );
- }
-
- @ReactMethod
- public void clearOneSignalNotifications() {
- OneSignal.clearOneSignalNotifications();
- }
-
- @ReactMethod
- public void removeNotification(int id) {
- OneSignal.removeNotification(id);
- }
-
- @ReactMethod
- public void removeGroupedNotifications(String id) {
- OneSignal.removeGroupedNotifications(id);
- }
-
- @ReactMethod
- public void requiresUserPrivacyConsent(Promise promise) {
- promise.resolve(OneSignal.requiresUserPrivacyConsent());
- }
-
- @ReactMethod
- public void setRequiresUserPrivacyConsent(Boolean required) {
- OneSignal.setRequiresUserPrivacyConsent(required);
- }
-
- @ReactMethod
- public void provideUserConsent(Boolean granted) {
- OneSignal.provideUserConsent(granted);
- }
-
- @ReactMethod
- public void userProvidedPrivacyConsent(Promise promise) {
- promise.resolve(OneSignal.userProvidedPrivacyConsent());
- }
-
- @ReactMethod
- public void setExternalUserId(final String externalId, final String authHashToken, final Callback callback) {
- final Callback[] callbackArr = new Callback[]{ callback };
- OneSignal.setExternalUserId(externalId, authHashToken, new OneSignal.OSExternalUserIdUpdateCompletionHandler() {
- @Override
- public void onSuccess(JSONObject results) {
- Log.i("OneSignal", "Completed setting external user id: " + externalId + "with results: " + results.toString());
-
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(results));
- callbackArr[0] = null;
- }
- }
-
- @Override
- public void onFailure(OneSignal.ExternalIdError error) {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(error.getMessage());
- callbackArr[0] = null;
- }
- }
- });
- }
-
- @ReactMethod
- public void removeExternalUserId(final Callback callback) {
- final Callback[] callbackArr = new Callback[]{ callback };
- OneSignal.removeExternalUserId(new OneSignal.OSExternalUserIdUpdateCompletionHandler() {
- @Override
- public void onSuccess(JSONObject results) {
- Log.i("OneSignal", "Completed removing external user id with results: " + results.toString());
-
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(RNUtils.jsonToWritableMap(results));
- callbackArr[0] = null;
- }
- }
-
- @Override
- public void onFailure(OneSignal.ExternalIdError error) {
- if (callbackArr[0] != null) {
- callbackArr[0].invoke(error.getMessage());
- callbackArr[0] = null;
- }
- }
- });
- }
-
- /* notification opened / received */
-
- @ReactMethod
- public void setNotificationOpenedHandler() {
- OneSignal.setNotificationOpenedHandler(this);
- }
-
- @Override
- public void notificationOpened(OSNotificationOpenedResult result) {
- sendEvent("OneSignal-remoteNotificationOpened", RNUtils.jsonToWritableMap(result.toJSONObject()));
- }
-
- @ReactMethod
- public void setNotificationWillShowInForegroundHandler() {
- OneSignal.setNotificationWillShowInForegroundHandler(new OneSignal.OSNotificationWillShowInForegroundHandler() {
- @Override
- public void notificationWillShowInForeground(OSNotificationReceivedEvent notificationReceivedEvent) {
- OSNotification notification = notificationReceivedEvent.getNotification();
- String notificationId = notification.getNotificationId();
- notificationReceivedEventCache.put(notificationId, notificationReceivedEvent);
-
- sendEvent("OneSignal-notificationWillShowInForeground", RNUtils.jsonToWritableMap(notification.toJSONObject()));
- }
- });
- }
-
- @ReactMethod
- public void completeNotificationEvent(final String uuid, final boolean shouldDisplay) {
- OSNotificationReceivedEvent receivedEvent = notificationReceivedEventCache.get(uuid);
-
- if (receivedEvent == null) {
- Log.e("OneSignal", "(java): could not find cached notification received event with id "+uuid);
- return;
- }
-
- if (shouldDisplay) {
- receivedEvent.complete(receivedEvent.getNotification());
- } else {
- receivedEvent.complete(null);
- }
-
- notificationReceivedEventCache.remove(uuid);
- }
-
- /**
- * In-App Messaging
- */
-
- /* triggers */
-
- @ReactMethod
- public void addTrigger(String key, Object object) {
- OneSignal.addTrigger(key, object);
- }
-
- @ReactMethod
- public void addTriggers(ReadableMap triggers) {
- OneSignal.addTriggers(triggers.toHashMap());
- }
-
- @ReactMethod
- public void removeTriggerForKey(String key) {
- OneSignal.removeTriggerForKey(key);
- }
-
- @ReactMethod
- public void removeTriggersForKeys(ReadableArray keys) {
- OneSignal.removeTriggersForKeys(RNUtils.convertReableArrayIntoStringCollection(keys));
- }
-
- @ReactMethod
- public void getTriggerValueForKey(String key, Promise promise) {
- Object val = OneSignal.getTriggerValueForKey(key);
- if (val == null) {
- Log.e("OneSignal", "getTriggerValueForKey: There was no value for the key: " + key);
- promise.reject("No Value", "There was no value for the key: " + key);
- return;
- }
- promise.resolve(val);
- }
-
- /* in app message click */
-
- @ReactMethod
- public void setInAppMessageClickHandler() {
- OneSignal.setInAppMessageClickHandler(new OneSignal.OSInAppMessageClickHandler() {
- @Override
- public void inAppMessageClicked(OSInAppMessageAction result) {
- if (!hasSetInAppClickedHandler) {
- inAppMessageActionResult = result;
- return;
- }
- sendEvent("OneSignal-inAppMessageClicked", RNUtils.jsonToWritableMap(result.toJSONObject()));
- }
- });
- }
-
- @ReactMethod
- public void initInAppMessageClickHandlerParams() {
- this.hasSetInAppClickedHandler = true;
- if (this.inAppMessageActionResult != null) {
- this.inAppMessageClicked(this.inAppMessageActionResult);
- this.inAppMessageActionResult = null;
- }
- }
-
- @Override
- public void inAppMessageClicked(OSInAppMessageAction result) {
- if (!this.hasSetInAppClickedHandler) {
- this.inAppMessageActionResult = result;
- return;
- }
- this.sendEvent("OneSignal-inAppMessageClicked", RNUtils.jsonToWritableMap(result.toJSONObject()));
- }
-
- /* in app message lifecycle */
-
- @ReactMethod
- public void setInAppMessageLifecycleHandler() {
- OneSignal.setInAppMessageLifecycleHandler(new OSInAppMessageLifecycleHandler() {
- @Override
- public void onWillDisplayInAppMessage(OSInAppMessage message) {
- sendEvent("OneSignal-inAppMessageWillDisplay",
- RNUtils.jsonToWritableMap(message.toJSONObject()));
- }
- @Override
- public void onDidDisplayInAppMessage(OSInAppMessage message) {
- sendEvent("OneSignal-inAppMessageDidDisplay",
- RNUtils.jsonToWritableMap(message.toJSONObject()));
- }
- @Override
- public void onWillDismissInAppMessage(OSInAppMessage message) {
- sendEvent("OneSignal-inAppMessageWillDismiss",
- RNUtils.jsonToWritableMap(message.toJSONObject()));
- }
- @Override
- public void onDidDismissInAppMessage(OSInAppMessage message) {
- sendEvent("OneSignal-inAppMessageDidDismiss",
- RNUtils.jsonToWritableMap(message.toJSONObject()));
- }
- });
- }
-
- /* other IAM functions */
-
- @ReactMethod
- public void pauseInAppMessages(Boolean pause) {
- OneSignal.pauseInAppMessages(pause);
- }
-
- /**
- * Outcomes
- */
-
- @ReactMethod
- public void sendOutcome(final String name, final Callback callback) {
- OneSignal.sendOutcome(name, new OutcomeCallback() {
- @Override
- public void onSuccess(OSOutcomeEvent outcomeEvent) {
- if (outcomeEvent != null) {
- try {
- callback.invoke(RNUtils.jsonToWritableMap(outcomeEvent.toJSONObject()));
- } catch (JSONException e) {
- Log.e("OneSignal", "sendOutcome with name: " + name + ", failed with message: " + e.getMessage());
- }
- return;
- }
-
- Log.e("OneSignal", "sendOutcome OSOutcomeEvent is null");
- }
- });
- }
-
- @ReactMethod
- public void sendUniqueOutcome(final String name, final Callback callback) {
- OneSignal.sendUniqueOutcome(name, new OutcomeCallback() {
- @Override
- public void onSuccess(OSOutcomeEvent outcomeEvent) {
- if (outcomeEvent != null) {
- try {
- callback.invoke(RNUtils.jsonToWritableMap(outcomeEvent.toJSONObject()));
- } catch (JSONException e) {
- Log.e("OneSignal", "sendUniqueOutcome with name: " + name + ", failed with message: " + e.getMessage());
- }
- return;
- }
-
- Log.e("OneSignal", "sendUniqueOutcome OSOutcomeEvent is null");
- }
- });
- }
-
- @ReactMethod
- public void sendOutcomeWithValue(final String name, final float value, final Callback callback) {
- OneSignal.sendOutcomeWithValue(name, value, new OutcomeCallback() {
- @Override
- public void onSuccess(OSOutcomeEvent outcomeEvent) {
- if (outcomeEvent != null) {
- try {
- callback.invoke(RNUtils.jsonToWritableMap(outcomeEvent.toJSONObject()));
- } catch (JSONException e) {
- Log.e("OneSignal", "sendOutcomeWithValue with name: " + name + " and value: " + value + ", failed with message: " + e.getMessage());
- }
- return;
- }
-
- Log.e("OneSignal", "sendOutcomeWithValue OSOutcomeEvent is null");
- }
- });
- }
-
- /**
- * Native Module Overrides
- */
-
- @Override
- public String getName() {
- return "OneSignal";
- }
-
- @Override
- public void onHostDestroy() {
- removeHandlers();
- removeObservers();
- }
-
- @Override
- public void onHostPause() {
-
- }
-
- @Override
- public void onHostResume() {
- initOneSignal();
- }
-
- @Override
- public void onCatalystInstanceDestroy() {
- removeHandlers();
- removeObservers();
- }
-
- /**
- * Added for NativeEventEmitter
- */
-
- @ReactMethod
- public void addListener(String eventName) {
- // Keep: Required for RN built in Event Emitter Calls.
- }
-
- @ReactMethod
- public void removeListeners(int count) {
- // Keep: Required for RN built in Event Emitter Calls.
- }
-}
diff --git a/android/src/main/java/com/geektime/rnonesignalandroid/RNUtils.java b/android/src/main/java/com/geektime/rnonesignalandroid/RNUtils.java
deleted file mode 100644
index 9af5a25d..00000000
--- a/android/src/main/java/com/geektime/rnonesignalandroid/RNUtils.java
+++ /dev/null
@@ -1,180 +0,0 @@
-package com.geektime.rnonesignalandroid;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import com.facebook.react.bridge.ReadableMap;
-import com.facebook.react.bridge.ReadableMapKeySetIterator;
-import com.facebook.react.bridge.ReadableType;
-import com.facebook.react.bridge.WritableArray;
-import com.facebook.react.bridge.ReadableArray;
-import com.facebook.react.bridge.WritableMap;
-import com.facebook.react.bridge.WritableNativeArray;
-import com.facebook.react.bridge.WritableNativeMap;
-import com.onesignal.OSInAppMessage;
-
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
-
-import java.util.Iterator;
-
-import javax.annotation.Nullable;
-
-/**
- * Created by danpeleg on 15/02/16.
- * Copyright (c) GlobeKeeper 2014-2015
- */
-public class RNUtils {
-
- /**
- * Converts a react native readable map into a JSON object.
- *
- * @param readableMap map to convert to JSON Object
- * @return JSON Object that contains the readable map properties
- */
- @Nullable
- public static JSONObject readableMapToJson(ReadableMap readableMap) {
- JSONObject jsonObject = new JSONObject();
-
- if (readableMap == null) {
- return null;
- }
-
- ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
- if (!iterator.hasNextKey()) {
- return null;
- }
-
- while (iterator.hasNextKey()) {
- String key = iterator.nextKey();
- ReadableType readableType = readableMap.getType(key);
-
- try {
- switch (readableType) {
- case Null:
- jsonObject.put(key, null);
- break;
- case Boolean:
- jsonObject.put(key, readableMap.getBoolean(key));
- break;
- case Number:
- // Can be int or double.
- jsonObject.put(key, readableMap.getInt(key));
- break;
- case String:
- jsonObject.put(key, readableMap.getString(key));
- break;
- case Map:
- jsonObject.put(key, readableMapToJson(readableMap.getMap(key)));
- break;
- case Array:
- jsonObject.put(key, readableMap.getArray(key));
- default:
- // Do nothing and fail silently
- }
- } catch (JSONException ex) {
- // Do nothing and fail silently
- }
- }
-
- return jsonObject;
- }
-
- @Nullable
- public static WritableMap jsonToWritableMap(JSONObject jsonObject) {
- WritableMap writableMap = new WritableNativeMap();
-
- if (jsonObject == null) {
- return null;
- }
-
-
- Iterator iterator = jsonObject.keys();
- if (!iterator.hasNext()) {
- return null;
- }
-
- while (iterator.hasNext()) {
- String key = iterator.next();
-
- try {
- Object value = jsonObject.get(key);
-
- if (value == null) {
- writableMap.putNull(key);
- } else if (value instanceof Boolean) {
- writableMap.putBoolean(key, (Boolean) value);
- } else if (value instanceof Integer) {
- writableMap.putInt(key, (Integer) value);
- } else if (value instanceof Double || value instanceof Long || value instanceof Float) {
- String str = String.valueOf(value);
- writableMap.putDouble(key, Double.parseDouble(str));
- } else if (value instanceof String) {
- writableMap.putString(key, value.toString());
- } else if (value instanceof JSONObject) {
- writableMap.putMap(key, jsonToWritableMap((JSONObject) value));
- } else if (value instanceof JSONArray) {
- writableMap.putArray(key, jsonArrayToWritableArray((JSONArray) value));
- } else if (value.getClass().isEnum()) {
- writableMap.putString(key, value.toString());
- }
- } catch (JSONException ex) {
- // Do nothing and fail silently
- }
- }
-
- return writableMap;
- }
-
- @Nullable
- public static WritableArray jsonArrayToWritableArray(JSONArray jsonArray) {
- WritableArray writableArray = new WritableNativeArray();
-
- if (jsonArray == null) {
- return null;
- }
-
- if (jsonArray.length() <= 0) {
- return null;
- }
-
- for (int i = 0 ; i < jsonArray.length(); i++) {
- try {
- Object value = jsonArray.get(i);
-
- if (value == null) {
- writableArray.pushNull();
- } else if (value instanceof Boolean) {
- writableArray.pushBoolean((Boolean) value);
- } else if (value instanceof Integer) {
- writableArray.pushInt((Integer) value);
- } else if (value instanceof Double || value instanceof Long || value instanceof Float) {
- String str = String.valueOf(value);
- writableArray.pushDouble(Double.parseDouble(str));
- } else if (value instanceof String) {
- writableArray.pushString(value.toString());
- } else if (value instanceof JSONObject) {
- writableArray.pushMap(jsonToWritableMap((JSONObject) value));
- } else if (value instanceof JSONArray) {
- writableArray.pushArray(jsonArrayToWritableArray((JSONArray) value));
- } else if (value.getClass().isEnum()) {
- writableArray.pushString(value.toString());
- }
- } catch (JSONException e) {
- // Do nothing and fail silently
- }
- }
-
- return writableArray;
- }
-
- public static Collection convertReableArrayIntoStringCollection(ReadableArray readableArray) {
- ArrayList strings = new ArrayList<>();
- for (Object object : readableArray.toArrayList()) {
- if (object instanceof String)
- strings.add((String) object);
- }
- return strings;
- }
-}
diff --git a/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java
new file mode 100644
index 00000000..790bcd0f
--- /dev/null
+++ b/android/src/main/java/com/onesignal/rnonesignalandroid/RNOneSignal.java
@@ -0,0 +1,742 @@
+/*
+Modified MIT License
+
+Copyright 2023 OneSignal
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+1. The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+2. All copies of substantial portions of the Software may only be used in connection
+with services provided by OneSignal.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+Authors:
+ - Avishay Bar (creator) - 1/31/16
+ - Brad Hesse
+ - Josh Kasten
+ - Rodrigo Gomez-Palacio
+ - Michael DiCioccio
+ - Ruslan Kesheshian
+*/
+
+package com.onesignal.rnonesignalandroid;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.os.Bundle;
+import android.util.Log;
+import com.facebook.react.bridge.Callback;
+import com.facebook.react.bridge.LifecycleEventListener;
+import com.facebook.react.bridge.Promise;
+import com.facebook.react.bridge.ReactApplicationContext;
+import com.facebook.react.bridge.ReactContext;
+import com.facebook.react.bridge.ReactContextBaseJavaModule;
+import com.facebook.react.bridge.ReactMethod;
+import com.facebook.react.bridge.ReadableArray;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.modules.core.DeviceEventManagerModule;
+import com.facebook.react.bridge.WritableMap;
+import com.facebook.react.bridge.Arguments;
+import com.onesignal.Continue;
+import com.onesignal.OneSignal;
+import com.onesignal.debug.LogLevel;
+import com.onesignal.common.OneSignalWrapper;
+import com.onesignal.inAppMessages.IInAppMessage;
+import com.onesignal.inAppMessages.IInAppMessageClickListener;
+import com.onesignal.inAppMessages.IInAppMessageClickEvent;
+import com.onesignal.inAppMessages.IInAppMessageClickResult;
+import com.onesignal.inAppMessages.IInAppMessageLifecycleListener;
+import com.onesignal.inAppMessages.IInAppMessageWillDisplayEvent;
+import com.onesignal.inAppMessages.IInAppMessageDidDisplayEvent;
+import com.onesignal.inAppMessages.IInAppMessageWillDismissEvent;
+import com.onesignal.inAppMessages.IInAppMessageDidDismissEvent;
+import com.onesignal.notifications.INotification;
+import com.onesignal.notifications.INotificationClickListener;
+import com.onesignal.notifications.INotificationClickEvent;
+import com.onesignal.notifications.INotificationLifecycleListener;
+import com.onesignal.notifications.INotificationWillDisplayEvent;
+import com.onesignal.notifications.IPermissionObserver;
+import com.onesignal.user.subscriptions.IPushSubscription;
+import com.onesignal.user.subscriptions.IPushSubscriptionObserver;
+import com.onesignal.user.subscriptions.PushSubscriptionState;
+import com.onesignal.user.subscriptions.PushSubscriptionChangedState;
+import com.onesignal.user.state.UserState;
+import com.onesignal.user.state.UserChangedState;
+import com.onesignal.user.state.IUserStateObserver;
+import org.json.JSONException;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class RNOneSignal extends ReactContextBaseJavaModule implements
+ IPushSubscriptionObserver,
+ IPermissionObserver,
+ IUserStateObserver,
+ LifecycleEventListener,
+ INotificationLifecycleListener{
+ private ReactApplicationContext mReactApplicationContext;
+ private ReactContext mReactContext;
+
+ private boolean oneSignalInitDone;
+ private boolean hasSetPermissionObserver = false;
+ private boolean hasSetPushSubscriptionObserver = false;
+ private boolean hasSetUserStateObserver = false;
+
+ private HashMap notificationWillDisplayCache;
+ private HashMap preventDefaultCache;
+
+ private boolean hasAddedNotificationForegroundListener = false;
+ private boolean hasAddedInAppMessageLifecycleListener = false;
+ private boolean hasAddedNotificationClickListener = false;
+ private boolean hasAddedInAppMessageClickListener = false;
+
+ private IInAppMessageClickListener rnInAppClickListener = new IInAppMessageClickListener() {
+ @Override
+ public void onClick(IInAppMessageClickEvent event) {
+ try {
+ sendEvent("OneSignal-inAppMessageClicked", RNUtils.convertHashMapToWritableMap(RNUtils.convertInAppMessageClickEventToMap(event)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ };
+
+ private IInAppMessageLifecycleListener rnInAppLifecycleListener = new IInAppMessageLifecycleListener() {
+ @Override
+ public void onWillDisplay(IInAppMessageWillDisplayEvent event) {
+ try {
+ sendEvent("OneSignal-inAppMessageWillDisplay", RNUtils.convertHashMapToWritableMap(RNUtils.convertInAppMessageWillDisplayEventToMap(event)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onDidDisplay(IInAppMessageDidDisplayEvent event) {
+ try {
+ sendEvent("OneSignal-inAppMessageDidDisplay", RNUtils.convertHashMapToWritableMap(RNUtils.convertInAppMessageDidDisplayEventToMap(event)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onWillDismiss(IInAppMessageWillDismissEvent event) {
+ try {
+ sendEvent("OneSignal-inAppMessageWillDismiss", RNUtils.convertHashMapToWritableMap(RNUtils.convertInAppMessageWillDismissEventToMap(event)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void onDidDismiss(IInAppMessageDidDismissEvent event) {
+ try {
+ sendEvent("OneSignal-inAppMessageDidDismiss", RNUtils.convertHashMapToWritableMap(RNUtils.convertInAppMessageDidDismissEventToMap(event)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ };
+
+ private INotificationClickListener rnNotificationClickListener = new INotificationClickListener() {
+ @Override
+ public void onClick(INotificationClickEvent event) {
+ try {
+ sendEvent("OneSignal-notificationClicked", RNUtils.convertHashMapToWritableMap(RNUtils.convertNotificationClickEventToMap(event)));
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+ };
+
+ private void removeObservers() {
+ this.removePermissionObserver();
+ this.removePushSubscriptionObserver();
+ this.removeUserStateObserver();
+ }
+
+ private void removeHandlers() {
+ if(!oneSignalInitDone) {
+ Log.i("OneSignal", "OneSignal React-Native SDK not initialized yet. Could not remove handlers.");
+ return;
+ }
+
+ OneSignal.getInAppMessages().removeClickListener(rnInAppClickListener);
+ hasAddedInAppMessageClickListener = false;
+ OneSignal.getInAppMessages().removeLifecycleListener(rnInAppLifecycleListener);
+ hasAddedInAppMessageLifecycleListener = false;
+ OneSignal.getNotifications().removeClickListener(rnNotificationClickListener);
+ hasAddedNotificationClickListener = false;
+ OneSignal.getNotifications().removeForegroundLifecycleListener(this);
+ hasAddedNotificationForegroundListener = false;
+ }
+
+ private void sendEvent(String eventName, Object params) {
+ mReactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class).emit(eventName, params);
+ }
+
+ public RNOneSignal(ReactApplicationContext reactContext) {
+ super(reactContext);
+ mReactApplicationContext = reactContext;
+ mReactContext = reactContext;
+ mReactContext.addLifecycleEventListener(this);
+ notificationWillDisplayCache = new HashMap();
+ preventDefaultCache = new HashMap();
+ }
+
+
+ /** Native Module Overrides */
+ @Override
+ public String getName() {
+ return "OneSignal";
+ }
+
+ @Override
+ public void onHostDestroy() {
+ removeHandlers();
+ removeObservers();
+ }
+
+ @Override
+ public void onHostPause() {}
+
+ @Override
+ public void onHostResume() {}
+
+ @Override
+ public void onCatalystInstanceDestroy() {
+ removeHandlers();
+ removeObservers();
+ }
+
+ // OneSignal namespace methods
+ @ReactMethod
+ public void initialize(String appId) {
+ Context context = mReactApplicationContext.getCurrentActivity();
+ OneSignalWrapper.setSdkType("reactnative");
+ OneSignalWrapper.setSdkVersion("050100");
+
+ if (oneSignalInitDone) {
+ Log.e("OneSignal", "Already initialized the OneSignal React-Native SDK");
+ return;
+ }
+
+ oneSignalInitDone = true;
+
+ if (context == null) {
+ // in some cases, especially when react-native-navigation is installed,
+ // the activity can be null, so we can initialize with the context instead
+ context = mReactApplicationContext.getApplicationContext();
+ }
+
+ OneSignal.initWithContext(context, appId);
+ }
+
+ @ReactMethod
+ public void setPrivacyConsentGiven(Boolean value) {
+ OneSignal.setConsentGiven(value);
+ }
+
+ @ReactMethod
+ public void setPrivacyConsentRequired(Boolean required) {
+ OneSignal.setConsentRequired(required);
+ }
+
+
+ // OneSignal.Debug namespace methods
+ @ReactMethod
+ public void setLogLevel(int logLevel) {
+ OneSignal.getDebug().setLogLevel(LogLevel.fromInt(logLevel));
+ }
+
+ @ReactMethod
+ public void setAlertLevel(int logLevel) {
+ OneSignal.getDebug().setAlertLevel(LogLevel.fromInt(logLevel));
+ }
+
+
+ // OneSignal.InAppMessages namespace methods
+ @ReactMethod
+ public void addInAppMessageClickListener() {
+ if (!hasAddedInAppMessageClickListener) {
+ OneSignal.getInAppMessages().addClickListener(rnInAppClickListener);
+ hasAddedInAppMessageClickListener = true;
+ }
+ }
+
+ @ReactMethod
+ public void addInAppMessagesLifecycleListener() {
+ if (!hasAddedInAppMessageLifecycleListener) {
+ OneSignal.getInAppMessages().addLifecycleListener(rnInAppLifecycleListener);
+ hasAddedInAppMessageLifecycleListener = true;
+ }
+ }
+
+ @ReactMethod
+ public void getPaused(Promise promise) {
+ promise.resolve(OneSignal.getInAppMessages().getPaused());
+ }
+
+ @ReactMethod
+ public void paused(Boolean pause) {
+ OneSignal.getInAppMessages().setPaused(pause);
+ }
+
+ @ReactMethod
+ public void addTrigger(String key, String value) {
+ OneSignal.getInAppMessages().addTrigger(key, value);
+ }
+
+ @ReactMethod
+ public void addTriggers(ReadableMap triggers) {
+ OneSignal.getInAppMessages().addTriggers(RNUtils.convertReadableMapIntoStringMap(triggers));
+ }
+
+ @ReactMethod
+ public void removeTrigger(String key) {
+ OneSignal.getInAppMessages().removeTrigger(key);
+ }
+
+ @ReactMethod
+ public void removeTriggers(ReadableArray keys) {
+ OneSignal.getInAppMessages().removeTriggers(RNUtils.convertReadableArrayIntoStringCollection(keys));
+ }
+
+ @ReactMethod
+ public void clearTriggers() {
+ OneSignal.getInAppMessages().clearTriggers();
+ }
+
+
+ // OneSignal.Location namespace methods
+ @ReactMethod
+ public void requestLocationPermission() {
+ OneSignal.getLocation().requestPermission(Continue.none());
+ }
+
+ @ReactMethod
+ public void isLocationShared(Promise promise) {
+ promise.resolve(OneSignal.getLocation().isShared());
+ }
+
+ @ReactMethod
+ public void setLocationShared(Boolean shared) {
+ OneSignal.getLocation().setShared(shared);
+ }
+
+
+ // OneSignal.Notifications namespace methods
+ @ReactMethod
+ public void addNotificationClickListener() {
+ if (this.hasAddedNotificationClickListener) {
+ return;
+ }
+
+ OneSignal.getNotifications().addClickListener(rnNotificationClickListener);
+ hasAddedNotificationClickListener = true;
+ }
+
+ @ReactMethod
+ public void addNotificationForegroundLifecycleListener() {
+ if (this.hasAddedNotificationForegroundListener) {
+ return;
+ }
+
+ OneSignal.getNotifications().addForegroundLifecycleListener(this);
+ hasAddedNotificationForegroundListener = true;
+ }
+
+ @Override
+ public void onWillDisplay(INotificationWillDisplayEvent event) {
+ if (!this.hasAddedNotificationForegroundListener) {
+ event.getNotification().display();
+ }
+
+ INotification notification = event.getNotification();
+ String notificationId = notification.getNotificationId();
+ notificationWillDisplayCache.put(notificationId, (INotificationWillDisplayEvent) event);
+ event.preventDefault();
+
+ try {
+ sendEvent("OneSignal-notificationWillDisplayInForeground",
+ RNUtils.convertHashMapToWritableMap(
+ RNUtils.convertNotificationToMap(notification)));
+
+ try {
+ synchronized (event) {
+ while (preventDefaultCache.containsKey(notificationId)) {
+ event.wait();
+ }
+ }
+ } catch(InterruptedException e){
+ Log.e("InterruptedException" + e.toString(), null);
+ }
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @ReactMethod
+ private void displayNotification(String notificationId){
+ INotificationWillDisplayEvent event = notificationWillDisplayCache.get(notificationId);
+ if (event == null) {
+ Log.e("Could not find onWillDisplayNotification event for notification with id: " + notificationId, null);
+ return;
+ }
+ event.getNotification().display();
+ }
+
+ @ReactMethod
+ private void preventDefault(String notificationId) {
+ INotificationWillDisplayEvent event = notificationWillDisplayCache.get(notificationId);
+ if (event == null) {
+ Log.e("Could not find onWillDisplayNotification event for notification with id: " + notificationId, null);
+ return;
+ }
+ event.preventDefault();
+ this.preventDefaultCache.put(notificationId, event);
+ }
+
+ @ReactMethod
+ public void addPermissionObserver() {
+ if (!hasSetPermissionObserver) {
+ OneSignal.getNotifications().addPermissionObserver(this);
+ hasSetPermissionObserver = true;
+ }
+ }
+
+ @ReactMethod
+ public void removePermissionObserver() {
+ if (hasSetPermissionObserver) {
+ OneSignal.getNotifications().removePermissionObserver(this);
+ hasSetPermissionObserver = false;
+ }
+ }
+
+ @Override
+ public void onNotificationPermissionChange(boolean permission) {
+ try {
+ sendEvent("OneSignal-permissionChanged", RNUtils.convertHashMapToWritableMap(RNUtils.convertPermissionToMap(permission)));
+ Log.i("OneSignal", "sending permission change event");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @ReactMethod
+ public void requestNotificationPermission(final boolean fallbackToSettings, Promise promise) {
+ // if permission already exists, return early as the method call will not resolve
+ if (OneSignal.getNotifications().getPermission()) {
+ promise.resolve(true);
+ return;
+ }
+
+ OneSignal.getNotifications().requestPermission(fallbackToSettings, Continue.with(result -> {
+ if (result.isSuccess()) {
+ promise.resolve(result.getData());
+ } else {
+ promise.reject(result.getThrowable().getMessage());
+ }
+ }));
+ }
+
+ @ReactMethod
+ public void hasNotificationPermission(Promise promise) {
+ promise.resolve(OneSignal.getNotifications().getPermission());
+ }
+
+ @ReactMethod
+ public void permissionNative(Promise promise) {
+ if (OneSignal.getNotifications().getPermission()) {
+ promise.resolve(2);
+ }
+ else {
+ promise.resolve(1);
+ }
+ }
+
+ @ReactMethod
+ public void canRequestNotificationPermission(Promise promise) {
+ promise.resolve(OneSignal.getNotifications().getCanRequestPermission());
+ }
+
+ @ReactMethod
+ public void clearAllNotifications() {
+ OneSignal.getNotifications().clearAllNotifications();
+ }
+
+ @ReactMethod
+ public void removeNotification(int id) {
+ OneSignal.getNotifications().removeNotification(id);
+ }
+
+ @ReactMethod
+ public void removeGroupedNotifications(String id) {
+ OneSignal.getNotifications().removeGroupedNotifications(id);
+ }
+
+
+ // OneSignal.User.pushSubscription namespace methods
+ @ReactMethod
+ public void getPushSubscriptionId(Promise promise) {
+ IPushSubscription pushSubscription = OneSignal.getUser().getPushSubscription();
+ String pushId = pushSubscription.getId();
+ if (pushId != null && !pushId.isEmpty()){
+ promise.resolve(pushId);
+ } else {
+ promise.resolve(null);
+ }
+ }
+
+ @ReactMethod
+ public void getPushSubscriptionToken(Promise promise) {
+ IPushSubscription pushSubscription = OneSignal.getUser().getPushSubscription();
+ String pushToken = pushSubscription.getToken();
+ if (pushToken != null && !pushToken.isEmpty()) {
+ promise.resolve(pushToken);
+ } else {
+ promise.resolve(null);
+ }
+ }
+
+ @ReactMethod
+ public void getOptedIn(Promise promise) {
+ IPushSubscription pushSubscription = OneSignal.getUser().getPushSubscription();
+ promise.resolve(pushSubscription.getOptedIn());
+ }
+
+ @ReactMethod
+ public void optIn() {
+ IPushSubscription pushSubscription = OneSignal.getUser().getPushSubscription();
+ pushSubscription.optIn();
+ }
+
+ @ReactMethod
+ public void optOut() {
+ IPushSubscription pushSubscription = OneSignal.getUser().getPushSubscription();
+ pushSubscription.optOut();
+ }
+
+ @ReactMethod
+ public void addPushSubscriptionObserver() {
+ if (!hasSetPushSubscriptionObserver) {
+ OneSignal.getUser().getPushSubscription().addObserver(this);
+ hasSetPushSubscriptionObserver = true;
+ }
+ }
+
+ @Override
+ public void onPushSubscriptionChange(PushSubscriptionChangedState pushSubscriptionChangedState) {
+ try {
+ sendEvent("OneSignal-subscriptionChanged",
+ RNUtils.convertHashMapToWritableMap(
+ RNUtils.convertPushSubscriptionChangedStateToMap(pushSubscriptionChangedState)));
+ Log.i("OneSignal", "sending subscription change event");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @ReactMethod
+ public void removePushSubscriptionObserver() {
+ if (hasSetPushSubscriptionObserver) {
+ OneSignal.getUser().getPushSubscription().removeObserver(this);
+ hasSetPushSubscriptionObserver = false;
+ }
+ }
+
+ // OneSignal.Session namespace methods
+ @ReactMethod
+ public void addOutcome(String name) {
+ OneSignal.getSession().addOutcome(name);
+ }
+
+ @ReactMethod
+ public void addUniqueOutcome(String name) {
+ OneSignal.getSession().addUniqueOutcome(name);
+ }
+
+ @ReactMethod
+ public void addOutcomeWithValue(String name, float value) {
+ OneSignal.getSession().addOutcomeWithValue(name, value);
+ }
+
+ // OneSignal.User namespace methods
+ @ReactMethod
+ public void login(String externalUserId) {
+ OneSignal.login(externalUserId);
+ }
+
+ @ReactMethod
+ public void logout() {
+ OneSignal.logout();
+ }
+
+ @ReactMethod
+ public void setLanguage(String language) {
+ OneSignal.getUser().setLanguage(language);
+ }
+
+ @ReactMethod
+ public void addTag(String key, String value) {
+ OneSignal.getUser().addTag(key, value);
+ }
+
+ @ReactMethod
+ public void removeTag(String key) {
+ OneSignal.getUser().removeTag(key);
+ }
+
+ @ReactMethod
+ public void addTags(ReadableMap tags) {
+ OneSignal.getUser().addTags(RNUtils.convertReadableMapIntoStringMap(tags));
+ }
+
+ @ReactMethod
+ public void removeTags(ReadableArray tagKeys) {
+ OneSignal.getUser().removeTags(RNUtils.convertReadableArrayIntoStringCollection(tagKeys));
+ }
+
+ @ReactMethod
+ public void getTags(Promise promise) {
+ Map tags = OneSignal.getUser().getTags();
+ WritableMap writableTags = Arguments.createMap();
+ for (Map.Entry entry : tags.entrySet()) {
+ writableTags.putString(entry.getKey(), entry.getValue());
+ }
+ promise.resolve(writableTags);
+ }
+
+ @ReactMethod
+ public void addEmail(String email, Promise promise) {
+ try {
+ OneSignal.getUser().addEmail(email);
+ promise.resolve(null);
+ } catch (Throwable t) {
+ promise.reject(t.getMessage());
+ }
+ }
+
+ @ReactMethod
+ public void removeEmail(String email, Promise promise) {
+ try {
+ OneSignal.getUser().removeEmail(email);
+ promise.resolve(null);
+ } catch (Throwable t) {
+ promise.reject(t.getMessage());
+ }
+ }
+
+ @ReactMethod
+ public void addSms(String smsNumber, Promise promise) {
+ try {
+ OneSignal.getUser().addSms(smsNumber);
+ promise.resolve(null);
+ } catch (Throwable t) {
+ promise.reject(t.getMessage());
+ }
+ }
+
+ @ReactMethod
+ public void removeSms(String smsNumber, Promise promise) {
+ try {
+ OneSignal.getUser().removeSms(smsNumber);
+ promise.resolve(null);
+ } catch (Throwable t) {
+ promise.reject(t.getMessage());
+ }
+ }
+
+ @ReactMethod
+ public void addAlias(String label, String id) {
+ OneSignal.getUser().addAlias(label, id);
+ }
+
+ @ReactMethod
+ public void removeAlias(String label) {
+ OneSignal.getUser().removeAlias(label);
+ }
+
+ @ReactMethod
+ public void addAliases(ReadableMap aliases) {
+ OneSignal.getUser().addAliases(RNUtils.convertReadableMapIntoStringMap(aliases));
+ }
+
+ @ReactMethod
+ public void removeAliases(ReadableArray aliasLabels) {
+ OneSignal.getUser().removeAliases(RNUtils.convertReadableArrayIntoStringCollection(aliasLabels));
+ }
+
+ @ReactMethod
+ public void getOnesignalId(Promise promise) {
+ String onesignalId = OneSignal.getUser().getOnesignalId();
+ if (onesignalId.isEmpty()) {
+ onesignalId = null;
+ }
+ promise.resolve(onesignalId);
+
+ }
+
+ @ReactMethod
+ public void getExternalId(Promise promise) {
+ String externalId = OneSignal.getUser().getExternalId();
+ if (externalId.isEmpty()) {
+ externalId = null;
+ }
+ promise.resolve(externalId);
+ }
+
+ @ReactMethod
+ public void addUserStateObserver() {
+ if (!hasSetUserStateObserver) {
+ OneSignal.getUser().addObserver(this);
+ hasSetUserStateObserver = true;
+ }
+ }
+
+ @Override
+ public void onUserStateChange(UserChangedState state) {
+ try {
+ sendEvent("OneSignal-userStateChanged",
+ RNUtils.convertHashMapToWritableMap(
+ RNUtils.convertUserChangedStateToMap(state)));
+ Log.i("OneSignal", "sending user state change event");
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ }
+
+ @ReactMethod
+ public void removeUserStateObserver() {
+ if (hasSetUserStateObserver) {
+ OneSignal.getUser().removeObserver(this);
+ hasSetUserStateObserver = false;
+ }
+ }
+
+ /** Added for NativeEventEmitter */
+ @ReactMethod
+ public void addListener(String eventName) {
+ // Keep: Required for RN built in Event Emitter Calls.
+ }
+
+ @ReactMethod
+ public void removeListeners(int count) {
+ // Keep: Required for RN built in Event Emitter Calls.
+ }
+}
diff --git a/android/src/main/java/com/onesignal/rnonesignalandroid/RNUtils.java b/android/src/main/java/com/onesignal/rnonesignalandroid/RNUtils.java
new file mode 100644
index 00000000..e9989b76
--- /dev/null
+++ b/android/src/main/java/com/onesignal/rnonesignalandroid/RNUtils.java
@@ -0,0 +1,311 @@
+package com.onesignal.rnonesignalandroid;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import com.facebook.react.bridge.Arguments;
+import com.facebook.react.bridge.ReadableArray;
+import com.facebook.react.bridge.ReadableMap;
+import com.facebook.react.bridge.ReadableMapKeySetIterator;
+import com.facebook.react.bridge.ReadableType;
+import com.facebook.react.bridge.WritableArray;
+import com.facebook.react.bridge.WritableMap;
+import com.facebook.react.bridge.WritableNativeArray;
+import com.facebook.react.bridge.WritableNativeMap;
+
+import com.onesignal.inAppMessages.IInAppMessage;
+import com.onesignal.inAppMessages.IInAppMessageClickEvent;
+import com.onesignal.inAppMessages.IInAppMessageClickResult;
+import com.onesignal.inAppMessages.IInAppMessageWillDisplayEvent;
+import com.onesignal.inAppMessages.IInAppMessageDidDisplayEvent;
+import com.onesignal.inAppMessages.IInAppMessageWillDismissEvent;
+import com.onesignal.inAppMessages.IInAppMessageDidDismissEvent;
+import com.onesignal.notifications.INotification;
+import com.onesignal.notifications.INotificationWillDisplayEvent;
+import com.onesignal.notifications.INotificationClickEvent;
+import com.onesignal.notifications.INotificationClickResult;
+import com.onesignal.notifications.INotificationReceivedEvent;
+import com.onesignal.user.subscriptions.IPushSubscription;
+import com.onesignal.user.subscriptions.PushSubscriptionState;
+import com.onesignal.user.subscriptions.PushSubscriptionChangedState;
+import com.onesignal.user.state.UserState;
+import com.onesignal.user.state.UserChangedState;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.List;
+import javax.annotation.Nullable;
+
+public class RNUtils {
+ public static WritableMap convertHashMapToWritableMap(HashMap hashMap) throws JSONException {
+ WritableMap writableMap = Arguments.createMap();
+ for (Map.Entry entry : hashMap.entrySet()) {
+ String key = entry.getKey();
+ Object value = entry.getValue();
+
+ if (value instanceof String) {
+ writableMap.putString(key, (String) value);
+ } else if (value instanceof Boolean) {
+ writableMap.putBoolean(key, (Boolean) value);
+ } else if (value instanceof Integer) {
+ writableMap.putInt(key, (Integer) value);
+ } else if (value instanceof Double) {
+ writableMap.putDouble(key, (Double) value);
+ } else if (value instanceof Float) {
+ writableMap.putDouble(key, ((Float) value).doubleValue());
+ } else if (value instanceof Long) {
+ writableMap.putDouble(key, ((Long) value).doubleValue());
+ } else if (value instanceof HashMap) {
+ writableMap.putMap(key, convertHashMapToWritableMap((HashMap) value));
+ } else {
+ writableMap.putNull(key);
+ }
+ }
+ return writableMap;
+ }
+
+ public static HashMap convertNotificationClickEventToMap(INotificationClickEvent event) throws JSONException {
+ HashMap clickResultHash = new HashMap<>();
+ HashMap hash = new HashMap<>();
+ HashMap notificationHash = convertNotificationToMap(event.getNotification());
+ INotificationClickResult clickResult = event.getResult();
+
+ clickResultHash.put("actionId", clickResult.getActionId());
+ clickResultHash.put("url", clickResult.getUrl());
+
+ hash.put("notification", notificationHash);
+ hash.put("result", clickResultHash);
+
+ return hash;
+ }
+
+ public static HashMap convertNotificationToMap(INotification notification) throws JSONException {
+ HashMap notificationHash = new HashMap<>();
+ notificationHash.put("androidNotificationId", notification.getAndroidNotificationId());
+
+ if (notification.getGroupedNotifications() != null) {
+ notificationHash.put("groupKey", notification.getGroupKey());
+ notificationHash.put("groupMessage", notification.getGroupMessage());
+ notificationHash.put("groupedNotifications", notification.getGroupedNotifications());
+ }
+
+ notificationHash.put("notificationId", notification.getNotificationId());
+ notificationHash.put("title", notification.getTitle());
+
+ if (notification.getBody() != null)
+ notificationHash.put("body", notification.getBody());
+ if (notification.getSmallIcon() != null)
+ notificationHash.put("smallIcon", notification.getSmallIcon());
+ if (notification.getLargeIcon() != null)
+ notificationHash.put("largeIcon", notification.getLargeIcon());
+ if (notification.getBigPicture() != null)
+ notificationHash.put("bigPicture", notification.getBigPicture());
+ if (notification.getSmallIconAccentColor() != null)
+ notificationHash.put("smallIconAccentColor", notification.getSmallIconAccentColor());
+ if (notification.getLaunchURL() != null)
+ notificationHash.put("launchUrl", notification.getLaunchURL());
+ if (notification.getSound() != null)
+ notificationHash.put("sound", notification.getSound());
+ if (notification.getLedColor() != null)
+ notificationHash.put("ledColor", notification.getLedColor());
+ notificationHash.put("lockScreenVisibility", notification.getLockScreenVisibility());
+ if (notification.getGroupKey() != null)
+ notificationHash.put("groupKey", notification.getGroupKey());
+ if (notification.getGroupMessage() != null)
+ notificationHash.put("groupMessage", notification.getGroupMessage());
+ if (notification.getFromProjectNumber() != null)
+ notificationHash.put("fromProjectNumber", notification.getFromProjectNumber());
+ if (notification.getCollapseId() != null)
+ notificationHash.put("collapseId", notification.getCollapseId());
+ notificationHash.put("priority", notification.getPriority());
+ if (notification.getAdditionalData() != null && notification.getAdditionalData().length() > 0)
+ notificationHash.put("additionalData", convertJSONObjectToHashMap(notification.getAdditionalData()));
+ if (notification.getActionButtons() != null) {
+ notificationHash.put("actionButtons", notification.getActionButtons());
+ }
+ notificationHash.put("rawPayload", notification.getRawPayload());
+
+ return notificationHash;
+ }
+
+ private static HashMap convertInAppMessageToMap(IInAppMessage message) {
+ HashMap hash = new HashMap<>();
+ hash.put("messageId", message.getMessageId());
+
+ return hash;
+ }
+
+ public static HashMap convertInAppMessageWillDisplayEventToMap(IInAppMessageWillDisplayEvent event) {
+ HashMap hash = new HashMap<>();
+ hash.put("message", convertInAppMessageToMap(event.getMessage()));
+
+ return hash;
+ }
+
+ public static HashMap convertInAppMessageDidDisplayEventToMap(IInAppMessageDidDisplayEvent event) {
+ HashMap hash = new HashMap<>();
+ hash.put("message", convertInAppMessageToMap(event.getMessage()));
+
+ return hash;
+ }
+
+ public static HashMap convertInAppMessageWillDismissEventToMap(IInAppMessageWillDismissEvent event) {
+ HashMap hash = new HashMap<>();
+ hash.put("message", convertInAppMessageToMap(event.getMessage()));
+
+ return hash;
+ }
+
+ public static HashMap convertInAppMessageDidDismissEventToMap(IInAppMessageDidDismissEvent event) {
+ HashMap hash = new HashMap<>();
+ hash.put("message", convertInAppMessageToMap(event.getMessage()));
+
+ return hash;
+ }
+
+ public static HashMap convertInAppMessageClickEventToMap(IInAppMessageClickEvent event) {
+ HashMap resultHash = new HashMap<>();
+ HashMap hash = new HashMap<>();
+ IInAppMessageClickResult result = event.getResult();
+
+ resultHash.put("actionId", result.getActionId());
+ resultHash.put("urlTarget", result.getUrlTarget());
+ resultHash.put("url", result.getUrl());
+ resultHash.put("closingMessage", result.getClosingMessage());
+
+ hash.put("result", resultHash);
+ hash.put("message", convertInAppMessageToMap(event.getMessage()));
+
+ return hash;
+ }
+
+ public static HashMap convertPushSubscriptionStateToMap(PushSubscriptionState state) {
+ HashMap hash = new HashMap<>();
+ if (state.getToken() != null && !state.getToken().isEmpty()) {
+ hash.put("token", state.getToken());
+ } else {
+ hash.put("token", JSONObject.NULL);
+ }
+ if (state.getId() != null && !state.getId().isEmpty()) {
+ hash.put("id", state.getId());
+ } else {
+ hash.put("id", JSONObject.NULL);
+ }
+ hash.put("optedIn", state.getOptedIn());
+
+ return hash;
+ }
+
+ public static HashMap convertUserStateToMap(UserState user) {
+ HashMap hash = new HashMap<>();
+
+ if (user.getExternalId() != null && !user.getExternalId().isEmpty()) {
+ hash.put("externalId", user.getExternalId());
+ }
+ else {
+ hash.put("externalId", JSONObject.NULL);
+ }
+ if (user.getOnesignalId() != null && !user.getOnesignalId().isEmpty()) {
+ hash.put("onesignalId", user.getOnesignalId());
+ }
+ else {
+ hash.put("onesignalId", JSONObject.NULL);
+ }
+
+ return hash;
+ }
+
+ public static HashMap convertPushSubscriptionChangedStateToMap(PushSubscriptionChangedState state) {
+ HashMap hash = new HashMap<>();
+ hash.put("current", convertPushSubscriptionStateToMap(state.getCurrent()));
+ hash.put("previous", convertPushSubscriptionStateToMap(state.getPrevious()));
+
+ return hash;
+ }
+
+ public static HashMap convertUserChangedStateToMap(UserChangedState state) {
+ HashMap hash = new HashMap<>();
+ hash.put("current", convertUserStateToMap(state.getCurrent()));
+
+ return hash;
+ }
+
+ public static HashMap convertJSONObjectToHashMap(JSONObject object) throws JSONException {
+ HashMap hash = new HashMap<>();
+
+ if (object == null || object == JSONObject.NULL)
+ return hash;
+
+ Iterator keys = object.keys();
+
+ while (keys.hasNext()) {
+ String key = keys.next();
+
+ if (object.isNull(key))
+ continue;
+
+ Object val = object.get(key);
+
+ if (val instanceof JSONArray) {
+ val = convertJSONArrayToList((JSONArray)val);
+ } else if (val instanceof JSONObject) {
+ val = convertJSONObjectToHashMap((JSONObject)val);
+ }
+
+ hash.put(key, val);
+ }
+
+ return hash;
+ }
+
+ public static Collection convertReadableArrayIntoStringCollection(ReadableArray readableArray) {
+ ArrayList strings = new ArrayList<>();
+ for (Object object : readableArray.toArrayList()) {
+ if (object instanceof String)
+ strings.add((String) object);
+ }
+ return strings;
+ }
+
+ public static HashMap convertReadableMapIntoStringMap(ReadableMap readableMap) {
+ HashMap stringMap = new HashMap<>();
+ ReadableMapKeySetIterator iter = readableMap.keySetIterator();
+
+ while (iter.hasNextKey()) {
+ String propKey = iter.nextKey();
+ if (readableMap.getType(propKey) == ReadableType.String) {
+ stringMap.put(propKey, readableMap.getString(propKey));
+ }
+ }
+
+ return stringMap;
+ }
+
+ public static HashMap convertPermissionToMap(boolean granted) {
+ HashMap hash = new HashMap<>();
+
+ hash.put("permission", granted);
+
+ return hash;
+ }
+
+ private static List convertJSONArrayToList(JSONArray array) throws JSONException {
+ List list = new ArrayList<>();
+
+ for (int i = 0; i < array.length(); i++) {
+ Object val = array.get(i);
+
+ if (val instanceof JSONArray)
+ val = RNUtils.convertJSONArrayToList((JSONArray)val);
+ else if (val instanceof JSONObject)
+ val = convertJSONObjectToHashMap((JSONObject)val);
+
+ list.add(val);
+ }
+
+ return list;
+ }
+}
diff --git a/android/src/main/java/com/geektime/rnonesignalandroid/ReactNativeOneSignalPackage.java b/android/src/main/java/com/onesignal/rnonesignalandroid/ReactNativeOneSignalPackage.java
similarity index 72%
rename from android/src/main/java/com/geektime/rnonesignalandroid/ReactNativeOneSignalPackage.java
rename to android/src/main/java/com/onesignal/rnonesignalandroid/ReactNativeOneSignalPackage.java
index 3fd4426a..2ef245d2 100644
--- a/android/src/main/java/com/geektime/rnonesignalandroid/ReactNativeOneSignalPackage.java
+++ b/android/src/main/java/com/onesignal/rnonesignalandroid/ReactNativeOneSignalPackage.java
@@ -1,4 +1,4 @@
-package com.geektime.rnonesignalandroid;
+package com.onesignal.rnonesignalandroid;
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
@@ -9,21 +9,12 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Arrays;
-/**
- * Created by Avishay on 1/31/16.
- */
public class ReactNativeOneSignalPackage implements ReactPackage {
-
- RNOneSignal mRNPushNotification;
-
@Override
public List createNativeModules(ReactApplicationContext reactContext) {
- List modules = new ArrayList<>();
- mRNPushNotification = new RNOneSignal(reactContext);
-
- modules.add(mRNPushNotification);
- return modules;
+ return Arrays.asList(new RNOneSignal(reactContext));
}
// Deprecated RN 0.47
diff --git a/examples/RNOneSignalTS/.watchmanconfig b/examples/RNOneSignalTS/.watchmanconfig
index 9e26dfee..0967ef42 100644
--- a/examples/RNOneSignalTS/.watchmanconfig
+++ b/examples/RNOneSignalTS/.watchmanconfig
@@ -1 +1 @@
-{}
\ No newline at end of file
+{}
diff --git a/examples/RNOneSignalTS/android/app/build.gradle b/examples/RNOneSignalTS/android/app/build.gradle
index 7694cd28..506f58ca 100644
--- a/examples/RNOneSignalTS/android/app/build.gradle
+++ b/examples/RNOneSignalTS/android/app/build.gradle
@@ -178,6 +178,12 @@ android {
}
}
+
+ // This is a workaround for problem with multiple occurrences of the same file `coroutines.pro`.
+ packagingOptions {
+ exclude 'META-INF/com.android.tools/proguard/coroutines.pro'
+ exclude 'META-INF/kotlinx_coroutines_core.version'
+ }
}
dependencies {
diff --git a/examples/RNOneSignalTS/app.json b/examples/RNOneSignalTS/app.json
index 078c507b..2fc9ba3f 100644
--- a/examples/RNOneSignalTS/app.json
+++ b/examples/RNOneSignalTS/app.json
@@ -1,4 +1,4 @@
{
"name": "RNOneSignalTS",
"displayName": "RNOneSignalTS"
-}
\ No newline at end of file
+}
diff --git a/examples/RNOneSignalTS/ios/Podfile b/examples/RNOneSignalTS/ios/Podfile
index 544ab825..b33e170b 100644
--- a/examples/RNOneSignalTS/ios/Podfile
+++ b/examples/RNOneSignalTS/ios/Podfile
@@ -1,7 +1,7 @@
require_relative '../node_modules/react-native/scripts/react_native_pods'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
-platform :ios, '10.0'
+platform :ios, '11.0'
target 'RNOneSignalTS' do
config = use_native_modules!
@@ -31,3 +31,11 @@ target 'RNOneSignalTS-tvOS' do
# Pods for testing
end
end
+
+post_install do |installer|
+ installer.pods_project.targets.each do |target|
+ target.build_configurations.each do |config|
+ config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
+ end
+ end
+end
diff --git a/examples/RNOneSignalTS/ios/Podfile.lock b/examples/RNOneSignalTS/ios/Podfile.lock
index 7145de48..09fdf3c2 100644
--- a/examples/RNOneSignalTS/ios/Podfile.lock
+++ b/examples/RNOneSignalTS/ios/Podfile.lock
@@ -1,25 +1,39 @@
PODS:
- boost-for-react-native (1.63.0)
- DoubleConversion (1.1.6)
- - FBLazyVector (0.64.1)
- - FBReactNativeSpec (0.64.1):
+ - FBLazyVector (0.64.4)
+ - FBReactNativeSpec (0.64.4):
- RCT-Folly (= 2020.01.13.00)
- - RCTRequired (= 0.64.1)
- - RCTTypeSafety (= 0.64.1)
- - React-Core (= 0.64.1)
- - React-jsi (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
+ - RCTRequired (= 0.64.4)
+ - RCTTypeSafety (= 0.64.4)
+ - React-Core (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
- glog (0.3.5)
- - OneSignalXCFramework (3.12.3):
- - OneSignalXCFramework/OneSignalCore (= 3.12.3)
- - OneSignalXCFramework/OneSignalExtension (= 3.12.3)
- - OneSignalXCFramework/OneSignalOutcomes (= 3.12.3)
- - OneSignalXCFramework/OneSignalCore (3.12.3)
- - OneSignalXCFramework/OneSignalExtension (3.12.3):
+ - OneSignalXCFramework (5.0.0-beta-01):
+ - OneSignalXCFramework/OneSignalCore (= 5.0.0-beta-01)
+ - OneSignalXCFramework/OneSignalExtension (= 5.0.0-beta-01)
+ - OneSignalXCFramework/OneSignalNotifications (= 5.0.0-beta-01)
+ - OneSignalXCFramework/OneSignalOSCore (= 5.0.0-beta-01)
+ - OneSignalXCFramework/OneSignalOutcomes (= 5.0.0-beta-01)
+ - OneSignalXCFramework/OneSignalUser (= 5.0.0-beta-01)
+ - OneSignalXCFramework/OneSignalCore (5.0.0-beta-01)
+ - OneSignalXCFramework/OneSignalExtension (5.0.0-beta-01):
- OneSignalXCFramework/OneSignalCore
- OneSignalXCFramework/OneSignalOutcomes
- - OneSignalXCFramework/OneSignalOutcomes (3.12.3):
+ - OneSignalXCFramework/OneSignalNotifications (5.0.0-beta-01):
- OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalExtension
+ - OneSignalXCFramework/OneSignalOutcomes
+ - OneSignalXCFramework/OneSignalOSCore (5.0.0-beta-01):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalOutcomes (5.0.0-beta-01):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalUser (5.0.0-beta-01):
+ - OneSignalXCFramework/OneSignalCore
+ - OneSignalXCFramework/OneSignalNotifications
+ - OneSignalXCFramework/OneSignalOSCore
+ - OneSignalXCFramework/OneSignalOutcomes
- RCT-Folly (2020.01.13.00):
- boost-for-react-native
- DoubleConversion
@@ -29,257 +43,257 @@ PODS:
- boost-for-react-native
- DoubleConversion
- glog
- - RCTRequired (0.64.1)
- - RCTTypeSafety (0.64.1):
- - FBLazyVector (= 0.64.1)
+ - RCTRequired (0.64.4)
+ - RCTTypeSafety (0.64.4):
+ - FBLazyVector (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - RCTRequired (= 0.64.1)
- - React-Core (= 0.64.1)
- - React (0.64.1):
- - React-Core (= 0.64.1)
- - React-Core/DevSupport (= 0.64.1)
- - React-Core/RCTWebSocket (= 0.64.1)
- - React-RCTActionSheet (= 0.64.1)
- - React-RCTAnimation (= 0.64.1)
- - React-RCTBlob (= 0.64.1)
- - React-RCTImage (= 0.64.1)
- - React-RCTLinking (= 0.64.1)
- - React-RCTNetwork (= 0.64.1)
- - React-RCTSettings (= 0.64.1)
- - React-RCTText (= 0.64.1)
- - React-RCTVibration (= 0.64.1)
- - React-callinvoker (0.64.1)
- - React-Core (0.64.1):
+ - RCTRequired (= 0.64.4)
+ - React-Core (= 0.64.4)
+ - React (0.64.4):
+ - React-Core (= 0.64.4)
+ - React-Core/DevSupport (= 0.64.4)
+ - React-Core/RCTWebSocket (= 0.64.4)
+ - React-RCTActionSheet (= 0.64.4)
+ - React-RCTAnimation (= 0.64.4)
+ - React-RCTBlob (= 0.64.4)
+ - React-RCTImage (= 0.64.4)
+ - React-RCTLinking (= 0.64.4)
+ - React-RCTNetwork (= 0.64.4)
+ - React-RCTSettings (= 0.64.4)
+ - React-RCTText (= 0.64.4)
+ - React-RCTVibration (= 0.64.4)
+ - React-callinvoker (0.64.4)
+ - React-Core (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-Core/Default (= 0.64.1)
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-Core/Default (= 0.64.4)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/CoreModulesHeaders (0.64.1):
+ - React-Core/CoreModulesHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/Default (0.64.1):
+ - React-Core/Default (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/DevSupport (0.64.1):
+ - React-Core/DevSupport (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-Core/Default (= 0.64.1)
- - React-Core/RCTWebSocket (= 0.64.1)
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-jsinspector (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-Core/Default (= 0.64.4)
+ - React-Core/RCTWebSocket (= 0.64.4)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-jsinspector (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTActionSheetHeaders (0.64.1):
+ - React-Core/RCTActionSheetHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTAnimationHeaders (0.64.1):
+ - React-Core/RCTAnimationHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTBlobHeaders (0.64.1):
+ - React-Core/RCTBlobHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTImageHeaders (0.64.1):
+ - React-Core/RCTImageHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTLinkingHeaders (0.64.1):
+ - React-Core/RCTLinkingHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTNetworkHeaders (0.64.1):
+ - React-Core/RCTNetworkHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTSettingsHeaders (0.64.1):
+ - React-Core/RCTSettingsHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTTextHeaders (0.64.1):
+ - React-Core/RCTTextHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTVibrationHeaders (0.64.1):
+ - React-Core/RCTVibrationHeaders (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- React-Core/Default
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-Core/RCTWebSocket (0.64.1):
+ - React-Core/RCTWebSocket (0.64.4):
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-Core/Default (= 0.64.1)
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsiexecutor (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-Core/Default (= 0.64.4)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsiexecutor (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga
- - React-CoreModules (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
+ - React-CoreModules (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.64.1)
- - React-Core/CoreModulesHeaders (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-RCTImage (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-cxxreact (0.64.1):
+ - RCTTypeSafety (= 0.64.4)
+ - React-Core/CoreModulesHeaders (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-RCTImage (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-cxxreact (0.64.4):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-callinvoker (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-jsinspector (= 0.64.1)
- - React-perflogger (= 0.64.1)
- - React-runtimeexecutor (= 0.64.1)
- - React-jsi (0.64.1):
+ - React-callinvoker (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-jsinspector (= 0.64.4)
+ - React-perflogger (= 0.64.4)
+ - React-runtimeexecutor (= 0.64.4)
+ - React-jsi (0.64.4):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-jsi/Default (= 0.64.1)
- - React-jsi/Default (0.64.1):
+ - React-jsi/Default (= 0.64.4)
+ - React-jsi/Default (0.64.4):
- boost-for-react-native (= 1.63.0)
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-jsiexecutor (0.64.1):
+ - React-jsiexecutor (0.64.4):
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-perflogger (= 0.64.1)
- - React-jsinspector (0.64.1)
- - react-native-onesignal (4.4.1):
- - OneSignalXCFramework (= 3.12.3)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-perflogger (= 0.64.4)
+ - React-jsinspector (0.64.4)
+ - react-native-onesignal (4.5.0):
+ - OneSignalXCFramework (= 5.0.0-beta-01)
- React (< 1.0.0, >= 0.13.0)
- - React-perflogger (0.64.1)
- - React-RCTActionSheet (0.64.1):
- - React-Core/RCTActionSheetHeaders (= 0.64.1)
- - React-RCTAnimation (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
+ - React-perflogger (0.64.4)
+ - React-RCTActionSheet (0.64.4):
+ - React-Core/RCTActionSheetHeaders (= 0.64.4)
+ - React-RCTAnimation (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.64.1)
- - React-Core/RCTAnimationHeaders (= 0.64.1)
- - React-jsi (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-RCTBlob (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
+ - RCTTypeSafety (= 0.64.4)
+ - React-Core/RCTAnimationHeaders (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-RCTBlob (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - React-Core/RCTBlobHeaders (= 0.64.1)
- - React-Core/RCTWebSocket (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-RCTNetwork (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-RCTImage (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
+ - React-Core/RCTBlobHeaders (= 0.64.4)
+ - React-Core/RCTWebSocket (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-RCTNetwork (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-RCTImage (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.64.1)
- - React-Core/RCTImageHeaders (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-RCTNetwork (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-RCTLinking (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
- - React-Core/RCTLinkingHeaders (= 0.64.1)
- - React-jsi (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-RCTNetwork (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
+ - RCTTypeSafety (= 0.64.4)
+ - React-Core/RCTImageHeaders (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-RCTNetwork (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-RCTLinking (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
+ - React-Core/RCTLinkingHeaders (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-RCTNetwork (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.64.1)
- - React-Core/RCTNetworkHeaders (= 0.64.1)
- - React-jsi (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-RCTSettings (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
+ - RCTTypeSafety (= 0.64.4)
+ - React-Core/RCTNetworkHeaders (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-RCTSettings (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - RCTTypeSafety (= 0.64.1)
- - React-Core/RCTSettingsHeaders (= 0.64.1)
- - React-jsi (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-RCTText (0.64.1):
- - React-Core/RCTTextHeaders (= 0.64.1)
- - React-RCTVibration (0.64.1):
- - FBReactNativeSpec (= 0.64.1)
+ - RCTTypeSafety (= 0.64.4)
+ - React-Core/RCTSettingsHeaders (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-RCTText (0.64.4):
+ - React-Core/RCTTextHeaders (= 0.64.4)
+ - React-RCTVibration (0.64.4):
+ - FBReactNativeSpec (= 0.64.4)
- RCT-Folly (= 2020.01.13.00)
- - React-Core/RCTVibrationHeaders (= 0.64.1)
- - React-jsi (= 0.64.1)
- - ReactCommon/turbomodule/core (= 0.64.1)
- - React-runtimeexecutor (0.64.1):
- - React-jsi (= 0.64.1)
- - ReactCommon/turbomodule/core (0.64.1):
+ - React-Core/RCTVibrationHeaders (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - ReactCommon/turbomodule/core (= 0.64.4)
+ - React-runtimeexecutor (0.64.4):
+ - React-jsi (= 0.64.4)
+ - ReactCommon/turbomodule/core (0.64.4):
- DoubleConversion
- glog
- RCT-Folly (= 2020.01.13.00)
- - React-callinvoker (= 0.64.1)
- - React-Core (= 0.64.1)
- - React-cxxreact (= 0.64.1)
- - React-jsi (= 0.64.1)
- - React-perflogger (= 0.64.1)
+ - React-callinvoker (= 0.64.4)
+ - React-Core (= 0.64.4)
+ - React-cxxreact (= 0.64.4)
+ - React-jsi (= 0.64.4)
+ - React-perflogger (= 0.64.4)
- Yoga (1.14.0)
DEPENDENCIES:
@@ -383,36 +397,36 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
DoubleConversion: cf9b38bf0b2d048436d9a82ad2abe1404f11e7de
- FBLazyVector: 7b423f9e248eae65987838148c36eec1dbfe0b53
- FBReactNativeSpec: 24caa029596b15294bf7ac235d35b59765ae5469
+ FBLazyVector: fa8275d5086566e22a26ddc385ab5772e7f9b1bd
+ FBReactNativeSpec: 799cb1402acc2a3e73cb23b36dae1513cd34e35d
glog: 73c2498ac6884b13ede40eda8228cb1eee9d9d62
- OneSignalXCFramework: 75844c29607ca95e6176f6f21257b4382c7fdbfb
+ OneSignalXCFramework: 7d3eb90c3e78908b0d72aa88600bfdab694460ec
RCT-Folly: ec7a233ccc97cc556cf7237f0db1ff65b986f27c
- RCTRequired: ec2ebc96b7bfba3ca5c32740f5a0c6a014a274d2
- RCTTypeSafety: 22567f31e67c3e088c7ac23ea46ab6d4779c0ea5
- React: a241e3dbb1e91d06332f1dbd2b3ab26e1a4c4b9d
- React-callinvoker: da4d1c6141696a00163960906bc8a55b985e4ce4
- React-Core: 46ba164c437d7dac607b470c83c8308b05799748
- React-CoreModules: 217bd14904491c7b9940ff8b34a3fe08013c2f14
- React-cxxreact: 0090588ae6660c4615d3629fdd5c768d0983add4
- React-jsi: 5de8204706bd872b78ea646aee5d2561ca1214b6
- React-jsiexecutor: 124e8f99992490d0d13e0649d950d3e1aae06fe9
- React-jsinspector: 500a59626037be5b3b3d89c5151bc3baa9abf1a9
- react-native-onesignal: 422286fc3ac6db94e7d568a1b41d9db411a1d3c7
- React-perflogger: aad6d4b4a267936b3667260d1f649b6f6069a675
- React-RCTActionSheet: fc376be462c9c8d6ad82c0905442fd77f82a9d2a
- React-RCTAnimation: ba0a1c3a2738be224a08092fa7f1b444ab77d309
- React-RCTBlob: f758d4403fc5828a326dc69e27b41e1a92f34947
- React-RCTImage: ce57088705f4a8d03f6594b066a59c29143ba73e
- React-RCTLinking: 852a3a95c65fa63f657a4b4e2d3d83a815e00a7c
- React-RCTNetwork: 9d7ccb8a08d522d71700b4fb677d9fa28cccd118
- React-RCTSettings: d8aaf4389ff06114dee8c42ef5f0f2915946011e
- React-RCTText: 809c12ed6b261796ba056c04fcd20d8b90bcc81d
- React-RCTVibration: 4b99a7f5c6c0abbc5256410cc5425fb8531986e1
- React-runtimeexecutor: ff951a0c241bfaefc4940a3f1f1a229e7cb32fa6
- ReactCommon: bedc99ed4dae329c4fcf128d0c31b9115e5365ca
- Yoga: a7de31c64fe738607e7a3803e3f591a4b1df7393
+ RCTRequired: f85fa00af016059cf88b90b8f8ff9a6af9e4b6c3
+ RCTTypeSafety: 5279aaf0fb1ad715cbbbbee32d5c98c72598bc9c
+ React: ff4e89fbcb05461c9533fd4da3c0f44cda6ab618
+ React-callinvoker: 4670ac7842699e4a39b19a08b4ede02573c1e5dd
+ React-Core: ee61e8a8aea912e1504ebec230b3e07d96cf82e1
+ React-CoreModules: 8544ba0d319003b33707cdeed66e3122685d31a0
+ React-cxxreact: 668500d4ce359515bbf8f907bca0e66fd357d36f
+ React-jsi: 64f80675a66899bf0f4a58b8e3908966fa516234
+ React-jsiexecutor: 8c077bef1c64430b6034f27df1000d194551e2eb
+ React-jsinspector: d4f6973dd474357dbaaf6f52f31ffc713bf3e766
+ react-native-onesignal: 039457cc04ef4e56c30069c4f3a1f3e893986abf
+ React-perflogger: 5a890ca0911669421b7611661e9b58f91c805f5c
+ React-RCTActionSheet: bd180e0879f8424a73650c5c28fbef4f3b5b27fb
+ React-RCTAnimation: 1004d2b4be1f2cedfdc4cb2326adc95b989e6c6b
+ React-RCTBlob: 55a984137d10e4c41071e8d39374336b48656e54
+ React-RCTImage: fa346c899c2f7301eddc79860c37f836db185eb2
+ React-RCTLinking: 7af1444a261610ff29a1afeab8c1cfcb5c3280a9
+ React-RCTNetwork: fdaad596311091a2c48e0327b8431ba3e011a684
+ React-RCTSettings: a7879d48e2951d107763f53e1db80be29f462ab7
+ React-RCTText: d7e66b2600487f631531f77bb9d336e33c1187d9
+ React-RCTVibration: 761849eea2a1abc99d5e4171bae17ab3da3143ac
+ React-runtimeexecutor: 5b441857030bb6c3abaa7517f333cb01875ae499
+ ReactCommon: b4a65d2d6e9eeffd4b32dde1245962b3f43907d0
+ Yoga: d1fc3575b8b68891ff5ef3c276daa855e841eb32
-PODFILE CHECKSUM: ee2174551b18176b5f22df017388e28988664cb8
+PODFILE CHECKSUM: f9cd8e12615dff6738f284cf82df8cb563bf51cf
COCOAPODS: 1.11.3
diff --git a/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/project.pbxproj b/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/project.pbxproj
index 5feb6a7f..4ce04e86 100644
--- a/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/project.pbxproj
+++ b/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/project.pbxproj
@@ -211,7 +211,7 @@
00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */,
985973970AD5AD54BC615F13 /* [CP] Copy Pods Resources */,
- 0D3C4A67F609AD5AE123C9B5 /* [CP] Embed Pods Frameworks */,
+ 334D46447F1AE58B86D6B464 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -234,7 +234,7 @@
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
258A29E138A5D5C56B8AB2B5 /* [CP] Copy Pods Resources */,
- 680D6FE20D3CFD9E80BCC3D2 /* [CP] Embed Pods Frameworks */,
+ BF08836FBCCF6DF73FFD31DC /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -384,30 +384,6 @@
shellPath = /bin/sh;
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
};
- 0D3C4A67F609AD5AE123C9B5 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS-RNOneSignalTSTests/Pods-RNOneSignalTS-RNOneSignalTSTests-frameworks.sh",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignal.framework/OneSignal",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalCore/OneSignalCore.framework/OneSignalCore",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalExtension/OneSignalExtension.framework/OneSignalExtension",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalOutcomes/OneSignalOutcomes.framework/OneSignalOutcomes",
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignal.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalCore.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalExtension.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalOutcomes.framework",
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS-RNOneSignalTSTests/Pods-RNOneSignalTS-RNOneSignalTSTests-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
0FEF11F60825F2FC61B8C711 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -484,50 +460,56 @@
shellPath = /bin/sh;
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
};
- 557BD3371D7E9F41213BB1E8 /* [CP] Check Pods Manifest.lock */ = {
+ 334D46447F1AE58B86D6B464 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- );
inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
- outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS-RNOneSignalTSTests/Pods-RNOneSignalTS-RNOneSignalTSTests-frameworks.sh",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalFramework.framework/OneSignalFramework",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalCore/OneSignalCore.framework/OneSignalCore",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalExtension/OneSignalExtension.framework/OneSignalExtension",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalNotifications/OneSignalNotifications.framework/OneSignalNotifications",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalOSCore/OneSignalOSCore.framework/OneSignalOSCore",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalOutcomes/OneSignalOutcomes.framework/OneSignalOutcomes",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalUser/OneSignalUser.framework/OneSignalUser",
);
+ name = "[CP] Embed Pods Frameworks";
outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-RNOneSignalTS-checkManifestLockResult.txt",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalFramework.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalCore.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalExtension.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalNotifications.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalOSCore.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalOutcomes.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalUser.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS-RNOneSignalTSTests/Pods-RNOneSignalTS-RNOneSignalTSTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
- 680D6FE20D3CFD9E80BCC3D2 /* [CP] Embed Pods Frameworks */ = {
+ 557BD3371D7E9F41213BB1E8 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
+ inputFileListPaths = (
+ );
inputPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS/Pods-RNOneSignalTS-frameworks.sh",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignal.framework/OneSignal",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalCore/OneSignalCore.framework/OneSignalCore",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalExtension/OneSignalExtension.framework/OneSignalExtension",
- "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalOutcomes/OneSignalOutcomes.framework/OneSignalOutcomes",
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
+ outputFileListPaths = (
);
- name = "[CP] Embed Pods Frameworks";
outputPaths = (
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignal.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalCore.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalExtension.framework",
- "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalOutcomes.framework",
+ "$(DERIVED_FILE_DIR)/Pods-RNOneSignalTS-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS/Pods-RNOneSignalTS-frameworks.sh\"\n";
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
7C5D09C9CEB1208DFD72EAEA /* [CP] Check Pods Manifest.lock */ = {
@@ -570,6 +552,36 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS-RNOneSignalTSTests/Pods-RNOneSignalTS-RNOneSignalTSTests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
+ BF08836FBCCF6DF73FFD31DC /* [CP] Embed Pods Frameworks */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS/Pods-RNOneSignalTS-frameworks.sh",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalFramework.framework/OneSignalFramework",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalCore/OneSignalCore.framework/OneSignalCore",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalExtension/OneSignalExtension.framework/OneSignalExtension",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalNotifications/OneSignalNotifications.framework/OneSignalNotifications",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalOSCore/OneSignalOSCore.framework/OneSignalOSCore",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalOutcomes/OneSignalOutcomes.framework/OneSignalOutcomes",
+ "${PODS_XCFRAMEWORKS_BUILD_DIR}/OneSignalXCFramework/OneSignalUser/OneSignalUser.framework/OneSignalUser",
+ );
+ name = "[CP] Embed Pods Frameworks";
+ outputPaths = (
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalFramework.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalCore.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalExtension.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalNotifications.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalOSCore.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalOutcomes.framework",
+ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OneSignalUser.framework",
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RNOneSignalTS/Pods-RNOneSignalTS-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
+ };
FD10A7F022414F080027D42C /* Start Packager */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -672,7 +684,7 @@
"$(inherited)",
);
INFOPLIST_FILE = RNOneSignalTSTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
OTHER_LDFLAGS = (
"-ObjC",
@@ -693,7 +705,7 @@
COPY_PHASE_STRIP = NO;
DEVELOPMENT_TEAM = 99SW8E36CT;
INFOPLIST_FILE = RNOneSignalTSTests/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
OTHER_LDFLAGS = (
"-ObjC",
@@ -723,7 +735,7 @@
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.testapp.rodrigo;
+ PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example;
PRODUCT_NAME = RNOneSignalTS;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
@@ -747,7 +759,7 @@
"-ObjC",
"-lc++",
);
- PRODUCT_BUNDLE_IDENTIFIER = com.testapp.rodrigo;
+ PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.example;
PRODUCT_NAME = RNOneSignalTS;
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -836,7 +848,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RNOneSignalTS-tvOS.app/RNOneSignalTS-tvOS";
- TVOS_DEPLOYMENT_TARGET = 10.1;
+ TVOS_DEPLOYMENT_TARGET = 11.0;
};
name = Debug;
};
@@ -864,7 +876,7 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RNOneSignalTS-tvOS.app/RNOneSignalTS-tvOS";
- TVOS_DEPLOYMENT_TARGET = 10.1;
+ TVOS_DEPLOYMENT_TARGET = 11.0;
};
name = Release;
};
@@ -915,7 +927,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
LIBRARY_SEARCH_PATHS = (
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
@@ -968,7 +980,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
LIBRARY_SEARCH_PATHS = (
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
diff --git a/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/xcshareddata/xcschemes/RNOneSignalTS-tvOS.xcscheme b/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/xcshareddata/xcschemes/RNOneSignalTS-tvOS.xcscheme
index aa601f92..e921e283 100644
--- a/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/xcshareddata/xcschemes/RNOneSignalTS-tvOS.xcscheme
+++ b/examples/RNOneSignalTS/ios/RNOneSignalTS.xcodeproj/xcshareddata/xcschemes/RNOneSignalTS-tvOS.xcscheme
@@ -1,6 +1,6 @@
+ NSLocationAlwaysAndWhenInUseUsageDescription
+ Your message goes here
+ NSLocationAlwaysUsageDescription
+ Your message goes here
NSLocationUsageDescription
Your message goes here
NSLocationWhenInUseUsageDescription
- Your message goes here
- NSLocationAlwaysAndWhenInUseUsageDescription
Your message goes here
- NSLocationAlwaysUsageDescription
- Your message goes here
UIBackgroundModes
remote-notification
diff --git a/examples/RNOneSignalTS/package.json b/examples/RNOneSignalTS/package.json
index d2c4be78..915209a2 100644
--- a/examples/RNOneSignalTS/package.json
+++ b/examples/RNOneSignalTS/package.json
@@ -10,16 +10,17 @@
"lint": "eslint . --ext .js,.jsx,.ts,.tsx"
},
"dependencies": {
- "react": "16.13.1",
- "react-native": "0.64.1",
- "react-native-onesignal": "^4.5.2"
+ "@react-native-material/core": "^1.3.7",
+ "react": "17.0.1",
+ "react-native": "0.64.4",
+ "react-native-onesignal": "file:../../"
},
"devDependencies": {
"@babel/core": "^7.8.4",
"@babel/runtime": "^7.8.4",
"@react-native-community/eslint-config": "^1.1.0",
"@types/jest": "^25.2.3",
- "@types/react-native": "^0.63.2",
+ "@types/react-native": "^0.64.4",
"@types/react-test-renderer": "^16.9.2",
"@typescript-eslint/eslint-plugin": "^2.27.0",
"@typescript-eslint/parser": "^2.27.0",
@@ -27,7 +28,7 @@
"eslint": "^6.5.1",
"jest": "^25.1.0",
"metro-react-native-babel-preset": "^0.59.0",
- "react-test-renderer": "16.13.1",
+ "react-test-renderer": "17.0.1",
"typescript": "^3.8.3"
},
"jest": {
diff --git a/examples/RNOneSignalTS/src/App.tsx b/examples/RNOneSignalTS/src/App.tsx
index fe9efedf..d4d8beea 100644
--- a/examples/RNOneSignalTS/src/App.tsx
+++ b/examples/RNOneSignalTS/src/App.tsx
@@ -17,9 +17,7 @@ import {
StatusBar,
} from 'react-native';
-import {
- Colors
-} from 'react-native/Libraries/NewAppScreen';
+import {Colors} from 'react-native/Libraries/NewAppScreen';
import OSDemo from './OSDemo';
declare const global: {HermesInternal: null | {}};
@@ -28,55 +26,18 @@ const App = () => {
return (
<>
-
-
-
-
-
-
-
+
+
+
>
);
};
const styles = StyleSheet.create({
- scrollView: {
- backgroundColor: Colors.lighter,
- },
- engine: {
- position: 'absolute',
- right: 0,
- },
body: {
+ flex: 1,
backgroundColor: Colors.white,
- },
- sectionContainer: {
- marginTop: 32,
- paddingHorizontal: 24,
- },
- sectionTitle: {
- fontSize: 24,
- fontWeight: '600',
- color: Colors.black,
- },
- sectionDescription: {
- marginTop: 8,
- fontSize: 18,
- fontWeight: '400',
- color: Colors.dark,
- },
- highlight: {
- fontWeight: '700',
- },
- footer: {
- color: Colors.dark,
- fontSize: 12,
- fontWeight: '600',
- padding: 4,
- paddingRight: 12,
- textAlign: 'right',
+ padding: 10,
},
});
diff --git a/examples/RNOneSignalTS/src/Helpers.tsx b/examples/RNOneSignalTS/src/Helpers.tsx
index d1fd266c..43406953 100644
--- a/examples/RNOneSignalTS/src/Helpers.tsx
+++ b/examples/RNOneSignalTS/src/Helpers.tsx
@@ -1,64 +1,72 @@
import * as React from 'react';
-import { Button, View, StyleSheet, Platform, KeyboardAvoidingView, TextInput } from "react-native";
-const disabledColor = '#BEBEBE';
+import {
+ View,
+ StyleSheet,
+ Platform,
+ KeyboardAvoidingView,
+ TextInput,
+} from 'react-native';
+import {Button} from '@react-native-material/core';
-export const renderButtonView = (name: string, color: string, callback: Function) => {
- return (
-
- { callback() }}
- />
-
- );
-}
+const disabledColor = '#BEBEBE';
-export const renderFieldView = (name: string, value: string, callback: Function) => {
- return (
-
+export const renderButtonView = (name: string, callback: Function) => {
+ return (
+
+ {
+ callback();
+ }}
+ />
+
+ );
+};
-
-
- );
-}
+export const renderFieldView = (
+ name: string,
+ value: string,
+ callback: (text: string) => void,
+) => {
+ return (
+
+
+
+ );
+};
-/* S T Y L E S */
const styles = StyleSheet.create({
- buttonContainer: {
- flexDirection: 'column',
- overflow: 'hidden',
- borderRadius: 10,
- marginVertical: 10,
- marginHorizontal: 10,
- },
- textInput: {
- marginHorizontal: 10,
- height: 40,
- },
+ buttonContainer: {
+ flexDirection: 'column',
+ overflow: 'hidden',
+ borderRadius: 10,
+ marginVertical: 10,
+ marginHorizontal: 10,
+ },
+ textInput: {
+ marginHorizontal: 10,
+ height: 40,
+ },
});
diff --git a/examples/RNOneSignalTS/src/OSButtons.tsx b/examples/RNOneSignalTS/src/OSButtons.tsx
index eb6c708a..5d6d3b48 100644
--- a/examples/RNOneSignalTS/src/OSButtons.tsx
+++ b/examples/RNOneSignalTS/src/OSButtons.tsx
@@ -1,512 +1,518 @@
-import OneSignal, { OutcomeEvent } from 'react-native-onesignal';
+import {OneSignal} from 'react-native-onesignal';
import * as React from 'react';
-import { StyleSheet, View, Platform } from 'react-native';
-import { renderButtonView } from './Helpers';
-import { SubscribeFields } from './models/SubscribeFields';
+import {StyleSheet, View, Platform} from 'react-native';
+import {renderButtonView} from './Helpers';
+import {Text, Divider} from '@react-native-material/core';
export interface Props {
- subscribeFields: SubscribeFields;
- loggingFunction: Function;
- inputFieldValue: string;
+ loggingFunction: Function;
+ inputFieldValue: string;
}
-export interface State {
- isSubscribed: boolean;
- unSubscribedWhenNotificationDisabled: boolean;
- isLocationShared: boolean;
- provideUserConsent: boolean;
- requireUserConsent: boolean;
- pauseIAM: boolean;
- state: any;
-}
-
-class OSButtons extends React.Component {
- constructor(props: Props) {
- super(props);
- const subscribeFields = props.subscribeFields;
-
- this.state = {
- isSubscribed: subscribeFields.isSubscribed,
- unSubscribedWhenNotificationDisabled: true,
- isLocationShared: true,
- provideUserConsent: false,
- requireUserConsent: false,
- pauseIAM: false,
- state: {}
- };
- }
-
- async componentDidMount() {
- let state = await OneSignal.getDeviceState();
- this.setState({ state })
- }
-
- createSubscribeFields() {
- const { subscribeFields, loggingFunction } = this.props;
- const { isSubscribed } = subscribeFields;
- const { unSubscribedWhenNotificationDisabled, isLocationShared } = this.state;
- const color = '#D45653';
- const elements = [];
-
- const subscribedButton = renderButtonView(
- isSubscribed ? "Disable Push" : "Subscribe",
- color,
- () => {
- loggingFunction(`Is Push Disabled: ${isSubscribed}`);
- OneSignal.disablePush(isSubscribed);
- }
- );
-
- const unsubscribeWhenNotificationsAreDisabledButton = renderButtonView(
- unSubscribedWhenNotificationDisabled ? "Unsubscribe When Notifications Disabled" : "Subscribe when notification disabled",
- color,
- () => {
- loggingFunction(`Is application unsubscribed when notification disabled: ${unSubscribedWhenNotificationDisabled}`);
- OneSignal.unsubscribeWhenNotificationsAreDisabled(unSubscribedWhenNotificationDisabled);
- this.setState({ unSubscribedWhenNotificationDisabled : !unSubscribedWhenNotificationDisabled });
- }
+class OSButtons extends React.Component {
+ createInAppMessagesFields() {
+ const {loggingFunction} = this.props;
+
+ const getPausedButton = renderButtonView('Get paused', async () => {
+ const paused = await OneSignal.InAppMessages.getPaused();
+ loggingFunction(`Is IAM Paused: ${paused}`);
+ });
+
+ const pauseIamButton = renderButtonView('Pause IAM', () => {
+ OneSignal.InAppMessages.setPaused(true);
+ loggingFunction('IAM Paused: true');
+ });
+
+ const unPauseIamButton = renderButtonView('Unpause IAM', () => {
+ OneSignal.InAppMessages.setPaused(false);
+ loggingFunction('IAM Paused: false');
+ });
+
+ const removeTriggerButton = renderButtonView(
+ 'Remove trigger for key',
+ () => {
+ const key = this.props.inputFieldValue;
+ loggingFunction('Removing trigger for key: ', key);
+ OneSignal.InAppMessages.removeTrigger(key);
+ },
+ );
+
+ const addTriggerButton = renderButtonView(
+ 'Add trigger with key my_trigger',
+ () => {
+ const triggerValue = this.props.inputFieldValue;
+ loggingFunction(
+ `Adding trigger with key 'my_trigger' and value ${triggerValue}`,
);
-
- const promptForPush = renderButtonView(
- "Prompt for Push",
- color,
- () => {
- loggingFunction("Prompting for push with user response...");
- OneSignal.promptForPushNotificationsWithUserResponse(true, response => {
- loggingFunction(`User response: ${response}`);
- });
- }
- );
-
- const registerForProvisionalAuthorization = renderButtonView(
- "Register For Provisional Authorization",
- color,
- () => {
- loggingFunction("Register For Provisional Authorization with user response...");
- OneSignal.registerForProvisionalAuthorization(response => {
- loggingFunction(`User response: ${response}`);
- });
- }
- );
-
- const locationShared = renderButtonView("is Location Shared", color, async () => {
- const appHasLocationShared = await OneSignal.isLocationShared();
- loggingFunction(`Application has location shared active: ${appHasLocationShared}`);
- })
-
- const setLocationShared = renderButtonView(
- isLocationShared ? "Unshare Location" : "Share Location",
- color,
- () => {
- loggingFunction(`Is Location Shared: ${!isLocationShared}`);
- OneSignal.setLocationShared(!isLocationShared);
- this.setState({ isLocationShared : !isLocationShared });
- }
- );
-
- const promptLocationButton = renderButtonView(
- "Prompt Location",
- color,
- () => {
- loggingFunction("Prompting Location");
- OneSignal.promptLocation();
- }
- );
-
- elements.push(subscribedButton,
- unsubscribeWhenNotificationsAreDisabledButton,
- registerForProvisionalAuthorization, promptForPush,
- locationShared, setLocationShared, promptLocationButton);
- return elements;
- }
-
- createDeviceFields() {
- const color = "#051B2C";
- const elements = [];
- const { loggingFunction } = this.props;
-
- const deviceStateButton = renderButtonView("Get Device State", color, async () => {
- const deviceState = await OneSignal.getDeviceState();
- loggingFunction(`Device State: ${JSON.stringify(deviceState)}`);
- })
-
- const setLanguageButton = renderButtonView(
- "Set Language",
- color,
- () => {
- loggingFunction('Attempting to set language: ', this.props.inputFieldValue);
- OneSignal.setLanguage(this.props.inputFieldValue);
- }
- );
-
- const requireUserProvideConsent = renderButtonView(
- this.state.requireUserConsent ? "Remove User Privacy Consent Requirement" : "Require User Privacy Consent",
- color,
- () => {
- loggingFunction(`Require User Consent: ${!this.state.requireUserConsent}`);
- OneSignal.setRequiresUserPrivacyConsent(!this.state.requireUserConsent);
- this.setState({ requireUserConsent : !this.state.requireUserConsent });
- }
- )
-
- const appRequireUserProvideConsent = renderButtonView(
- "is Privacy Consent Required",
- color,
- async () => {
- const appRequiresUserPrivacyConsent = await OneSignal.requiresUserPrivacyConsent();
- loggingFunction(`Application requires privacy consent: ${appRequiresUserPrivacyConsent}`);
- })
-
- const provideUserConsentButton = renderButtonView(
- this.state.provideUserConsent ? "Reject User Consent" : "Provide User Consent", color, async () => {
- loggingFunction(`Provide User Consent: ${!this.state.provideUserConsent}`);
- OneSignal.provideUserConsent(!this.state.provideUserConsent);
- this.setState({ provideUserConsent: !this.state.provideUserConsent })
- })
-
- const userProvidedPrivacyConsent = renderButtonView("Did User Provide Privacy Consent", color, async () => {
- const didProvide = await OneSignal.userProvidedPrivacyConsent();
- loggingFunction(`Provided Privacy Consent: ${didProvide}`);
- })
-
- elements.push(
- deviceStateButton,
- setLanguageButton,
- requireUserProvideConsent,
- appRequireUserProvideConsent,
- provideUserConsentButton,
- userProvidedPrivacyConsent,
- );
- return elements;
- }
-
- createNotificationFields() {
- const color = "#3A3DB3";
- const elements = [];
- const { loggingFunction } = this.props;
-
- const postNotificationButton = renderButtonView(
- "Post Notification",
- color,
- async () => {
- // Property 'userId' does not exist on type 'DeviceState | null' so need to check
- const deviceState = await OneSignal.getDeviceState();
- const userId = deviceState ? deviceState.userId : "";
-
- const notificationObj = {
- contents: {en: "Message Body"},
- include_player_ids: [userId]
- };
- const json = JSON.stringify(notificationObj);
-
- loggingFunction(`Attempting to send notification to ${userId}`);
-
- OneSignal.postNotification(json, (success) => {
- loggingFunction(`Success: ${JSON.stringify(success)}`);
- }, (failure) => {
- loggingFunction(`Failure: ${JSON.stringify(failure)}`);
- });
- }
- );
-
- const removeNotificationButton = renderButtonView(
- "Remove Notification With Android ID",
- color,
- () => {
- const number: number = Number(this.props.inputFieldValue);
- loggingFunction("Removing notification with id:", number);
- OneSignal.removeNotification(number);
- }
- )
-
- const removeGroupedNotificationButton = renderButtonView(
- "Remove Grouped Notifications With Group ID",
- color,
- () => {
- const groupId: string = this.props.inputFieldValue;
- loggingFunction("Removing notification with group id:", groupId);
- OneSignal.removeGroupedNotifications(groupId);
- }
- )
-
- const sendTagWithKey = renderButtonView(
- "Send tag with key my_tag",
- color,
- async () => {
- loggingFunction("Sending tag with value: ", this.props.inputFieldValue);
- OneSignal.sendTag("my_tag", this.props.inputFieldValue);
- }
- )
-
- const getTags = renderButtonView("Get tags", color, async () => {
- loggingFunction("Privacy consent required for getting tags");
- loggingFunction("Getting tags...");
- OneSignal.getTags((tags) => {
- loggingFunction(`Tags: ${JSON.stringify(tags)}`);
- });
- });
-
- const deleteTagWithKey = renderButtonView("Delete Tag With Key", color, async () => {
- loggingFunction("Deleting tag with key: ", this.props.inputFieldValue);
- OneSignal.deleteTag(this.props.inputFieldValue);
+ OneSignal.InAppMessages.addTrigger('my_trigger', triggerValue);
+ },
+ );
+
+ const addTriggersButton = renderButtonView(
+ 'Add list of test triggers',
+ () => {
+ loggingFunction('Adding a list of test triggers');
+ OneSignal.InAppMessages.addTriggers({
+ my_trigger_1: 'my_trigger_1_value',
+ my_trigger_2: 'my_trigger_2_value',
+ my_trigger_3: 'my_trigger_3_value',
});
+ },
+ );
+
+ const removeTriggersButton = renderButtonView(
+ 'Remove list of test triggers',
+ () => {
+ loggingFunction('Removing list of test triggers');
+ OneSignal.InAppMessages.removeTriggers([
+ 'my_trigger_1',
+ 'my_trigger_2',
+ 'my_trigger_3',
+ ]);
+ },
+ );
+
+ const clearAllTriggersButton = renderButtonView(
+ 'Clear all triggers',
+ () => {
+ const triggerValue = this.props.inputFieldValue;
+ loggingFunction(`Clearing all triggers`);
+ OneSignal.InAppMessages.clearTriggers();
+ },
+ );
+
+ return [
+ getPausedButton,
+ pauseIamButton,
+ unPauseIamButton,
+ addTriggerButton,
+ removeTriggerButton,
+ addTriggersButton,
+ removeTriggersButton,
+ clearAllTriggersButton,
+ ];
+ }
- const clearOneSignalNotificationsButton = renderButtonView("Clear OneSignal Notifications", color, async () => {
- OneSignal.clearOneSignalNotifications();
- })
-
- elements.push(
- postNotificationButton,
- sendTagWithKey,
- getTags,
- deleteTagWithKey,
- removeNotificationButton,
- removeGroupedNotificationButton
- );
-
- if (Platform.OS === "android") {
- elements.push(clearOneSignalNotificationsButton);
- }
-
- return elements;
- }
-
- createSMSFields() {
- let elements = [];
- const { loggingFunction } = this.props;
- const color = "#1E8FEB";
-
- // Set SMS Button
- const setSMSButton = renderButtonView(
- "Set SMS Number",
- color,
- () => {
- loggingFunction('Attempting to set SMS number: ', this.props.inputFieldValue);
- OneSignal.setSMSNumber(this.props.inputFieldValue, undefined, (res : string) => {
- loggingFunction("setSMSNumber completed with result: ", res);
- });
- }
- );
-
- // Logout SMS Button
- const logoutSMSButton = renderButtonView(
- "Logout SMS Number",
- color,
- () => {
- loggingFunction('Attempting to logout SMS number');
- OneSignal.logoutSMSNumber((res: string) => {
- loggingFunction("logoutSMSNumber completed with result: ", res);
- });
- }
- );
+ createLocationFields() {
+ const {loggingFunction} = this.props;
+ const locationShared = renderButtonView('Is Location Shared', async () => {
+ const isLocationShared = await OneSignal.Location.isShared();
+ loggingFunction(
+ `Application has location shared active: ${isLocationShared}`,
+ );
+ });
+
+ const setLocationShared = renderButtonView('Share Location', () => {
+ loggingFunction('Sharing location');
+ OneSignal.Location.setShared(true);
+ });
+
+ const setLocationUnshared = renderButtonView('Unshare Location', () => {
+ loggingFunction('Unsharing location');
+ OneSignal.Location.setShared(false);
+ });
+
+ const requestPermissionButton = renderButtonView(
+ 'Request Location Permission',
+ () => {
+ loggingFunction('Request Location permission');
+ OneSignal.Location.requestPermission();
+ },
+ );
+
+ return [
+ locationShared,
+ setLocationShared,
+ setLocationUnshared,
+ requestPermissionButton,
+ ];
+ }
- elements.push(setSMSButton, logoutSMSButton);
- return elements;
- }
-
- createEmailFields() {
- let elements = [];
- const { loggingFunction } = this.props;
- const color = "#1E8FEB";
-
- // Set Email Button
- const setEmailButton = renderButtonView(
- "Set Email",
- color,
- () => {
- loggingFunction('Attempting to set email: ', this.props.inputFieldValue);
- OneSignal.setEmail(this.props.inputFieldValue, undefined, (res : string) => {
- loggingFunction("setEmail completed with result: ", res);
- });
- }
- );
+ createNotificationFields() {
+ const {loggingFunction} = this.props;
+
+ const hasPermissionButton = renderButtonView(
+ 'Has Notification Permission',
+ async () => {
+ const granted = await OneSignal.Notifications.getPermissionAsync();
+ loggingFunction(`Has Notification Permission: ${granted}`);
+ },
+ );
+
+ const permissionNativeButton = renderButtonView(
+ 'Permission Native',
+ async () => {
+ const granted = await OneSignal.Notifications.permissionNative();
+ loggingFunction(`Permission Native: ${granted}`);
+ },
+ );
+
+ const canRequestPermissionButton = renderButtonView(
+ 'Can Request Permission',
+ async () => {
+ const granted = await OneSignal.Notifications.canRequestPermission();
+ loggingFunction(`Can Request Permission: ${granted}`);
+ },
+ );
+
+ const requestPermissionButton = renderButtonView(
+ 'Request Permission',
+ async () => {
+ loggingFunction('Requesting notification permission');
+ const granted = await OneSignal.Notifications.requestPermission(false);
+ loggingFunction(`Notification permission granted ${granted}`);
+ },
+ );
+
+ const clearOneSignalNotificationsButton = renderButtonView(
+ 'Clear OneSignal Notifications',
+ () => {
+ loggingFunction('Clearing all OneSignal Notifications');
+ OneSignal.Notifications.clearAll();
+ },
+ );
+
+ return [
+ hasPermissionButton,
+ permissionNativeButton,
+ canRequestPermissionButton,
+ requestPermissionButton,
+ clearOneSignalNotificationsButton,
+ ];
+ }
- // Logout Email Button
- const logoutEmailButton = renderButtonView(
- "Logout Email",
- color,
- () => {
- loggingFunction('Attempting to logout email');
- OneSignal.logoutEmail((res: string) => {
- loggingFunction("logoutEmail completed with result: ", res);
- });
- }
+ createSessionFields() {
+ const {loggingFunction} = this.props;
+
+ const sendOutcomeButton = renderButtonView('Send Outcome With Name', () => {
+ loggingFunction('Sending outcome: ', this.props.inputFieldValue);
+ OneSignal.Session.addOutcome(this.props.inputFieldValue);
+ });
+
+ const sendUniqueOutcomeButton = renderButtonView(
+ 'Send Unique Outcome With Name',
+ () => {
+ loggingFunction('Sending unique outcome: ', this.props.inputFieldValue);
+ OneSignal.Session.addUniqueOutcome(this.props.inputFieldValue);
+ },
+ );
+
+ const sendOutcomeWithValueButton = renderButtonView(
+ 'Send "my_outcome" with value',
+ () => {
+ const value = Number(this.props.inputFieldValue);
+ loggingFunction(
+ 'Sending outcome of name "my_outcome" with value: ',
+ value,
);
- const externalUserIdButton = renderButtonView(
- "Set External User Id",
- color,
- () => {
- loggingFunction("Attempting to set external id: ", this.props.inputFieldValue);
- OneSignal.setExternalUserId(this.props.inputFieldValue, "aaa", (res: object) => {
- loggingFunction("setExternalUserId completed with result: ", JSON.stringify(res));
- })
- }
- )
-
- const removeExternalIdButton = renderButtonView(
- "Remove External Id",
- color,
- () => {
- loggingFunction("Removing external id...");
- OneSignal.removeExternalUserId((res: object) => {
- loggingFunction("removeExternalUserId completed with result: ", JSON.stringify(res));
- })
- }
- )
-
- elements.push(setEmailButton, logoutEmailButton, externalUserIdButton, removeExternalIdButton);
- return elements;
- }
-
- createInAppFields() {
- let elements = [];
- const { loggingFunction } = this.props;
- const color = "#FEA61D";
-
- const addTriggerButton = renderButtonView(
- "Add trigger with key my_trigger",
- color,
- () => {
- const triggerValue = this.props.inputFieldValue;
- loggingFunction(`Adding trigger with key 'my_trigger' and value ${triggerValue}`);
- OneSignal.addTrigger(`my_trigger`, triggerValue);
- }
- );
+ if (Number.isNaN(value)) {
+ console.error('Outcome with value should be a number');
+ return;
+ }
+ OneSignal.Session.addOutcomeWithValue('my_outcome', value);
+ },
+ );
+
+ return [
+ sendOutcomeButton,
+ sendUniqueOutcomeButton,
+ sendOutcomeWithValueButton,
+ ];
+ }
- const removeTriggerButton = renderButtonView(
- "Remove trigger for key",
- color,
- () => {
- const key = this.props.inputFieldValue;
- loggingFunction("Removing trigger for key: ", key);
- OneSignal.removeTriggerForKey(key);
- }
- )
-
- const pauseIamButton = renderButtonView(
- this.state.pauseIAM ? "Unpause IAM" : "Pause IAM",
- color,
- () => {
- const newPauseState = !this.state.pauseIAM;
- loggingFunction(`Is IAM Paused: ${newPauseState}`);
- OneSignal.pauseInAppMessages(newPauseState)
- this.setState({ pauseIAM: newPauseState })
- }
- )
-
- const getTriggerValueForKeyButton = renderButtonView(
- "Get Trigger Value For Key",
- color,
- async () => {
- try {
- const key = this.props.inputFieldValue;
- const value = await OneSignal.getTriggerValueForKey(key);
- loggingFunction(`Trigger value for key ${key}: `, value);
- } catch (e) {
- loggingFunction("Error getting trigger value: ", e.message);
- }
- }
- )
-
- elements.push(addTriggerButton, removeTriggerButton, pauseIamButton, getTriggerValueForKeyButton);
- return elements;
- }
-
- createOutcomeFields() {
- let elements = [];
- const { loggingFunction } = this.props;
- const color = "#FF36A0";
-
- const sendOutcomeButton = renderButtonView(
- "Send Outcome With Name",
- color,
- () => {
- loggingFunction("Sending outcome: ", this.props.inputFieldValue);
- OneSignal.sendOutcome(this.props.inputFieldValue, (event: OutcomeEvent) => {
- loggingFunction("Outcome Event: ", event);
- });
- }
- );
+ createUserFields() {
+ const {loggingFunction} = this.props;
+
+ const addEmailButton = renderButtonView('Add Email', () => {
+ loggingFunction('Attempting to set email: ', this.props.inputFieldValue);
+ OneSignal.User.addEmail(this.props.inputFieldValue);
+ });
+
+ const removeEmailButton = renderButtonView('Remove Email', () => {
+ loggingFunction(
+ 'Attempting to remove email: ',
+ this.props.inputFieldValue,
+ );
+ OneSignal.User.removeEmail(this.props.inputFieldValue);
+ });
+
+ const loginButton = renderButtonView('Login', () => {
+ loggingFunction(
+ 'Attempting to login a user: ',
+ this.props.inputFieldValue,
+ );
+ OneSignal.login(this.props.inputFieldValue);
+ });
+
+ const logoutButton = renderButtonView('Logout', () => {
+ loggingFunction('Attempting to logout a user: ');
+ OneSignal.logout();
+ });
+
+ const sendTagWithKeyButton = renderButtonView(
+ 'Send tag with key my_tag',
+ async () => {
+ loggingFunction('Sending tag with value: ', this.props.inputFieldValue);
+ OneSignal.User.addTag('my_tag', this.props.inputFieldValue);
+ },
+ );
+
+ const deleteTagWithKeyButton = renderButtonView(
+ 'Delete Tag With Key',
+ async () => {
+ loggingFunction('Deleting tag with key: ', this.props.inputFieldValue);
+ OneSignal.User.removeTag(this.props.inputFieldValue);
+ },
+ );
+
+ const addTagsButton = renderButtonView('Add list of tags', () => {
+ loggingFunction('Adding list of tags');
+ OneSignal.User.addTags({my_tag1: 'my_value', my_tag2: 'my_value2'});
+ });
+
+ const removeTagsButton = renderButtonView('Remove list of tags', () => {
+ loggingFunction('Removing list of tags');
+ OneSignal.User.removeTags(['my_tag1', 'my_tag2']);
+ });
+
+ const getTagsButton = renderButtonView('Get tags', async () => {
+ const tags = await OneSignal.User.getTags();
+ loggingFunction('Tags:', tags);
+ });
+
+ const setLanguageButton = renderButtonView('Set Language', () => {
+ loggingFunction(
+ 'Attempting to set language: ',
+ this.props.inputFieldValue,
+ );
+ OneSignal.User.setLanguage(this.props.inputFieldValue);
+ });
+
+ const addSmsButton = renderButtonView('Set SMS Number', () => {
+ loggingFunction(
+ 'Attempting to set SMS number: ',
+ this.props.inputFieldValue,
+ );
+ OneSignal.User.addSms(this.props.inputFieldValue);
+ });
+
+ const removeSmsButton = renderButtonView('Logout SMS Number', () => {
+ loggingFunction(
+ 'Attempting to remove SMS number: ',
+ this.props.inputFieldValue,
+ );
+ OneSignal.User.removeSms(this.props.inputFieldValue);
+ });
+
+ const addAliasButton = renderButtonView('Add my_alias with value', () => {
+ loggingFunction(
+ 'Adding my_alias alias with value: ',
+ this.props.inputFieldValue,
+ );
+ OneSignal.User.addAlias('my_alias', this.props.inputFieldValue);
+ });
+
+ const removeAliasButton = renderButtonView('Remove my_alias', () => {
+ loggingFunction('Removing my_alias');
+ OneSignal.User.removeAlias('my_alias');
+ });
+
+ const addAliasesButton = renderButtonView(
+ 'Add list of test aliases',
+ () => {
+ loggingFunction('Adding a list of test aliases ');
+ OneSignal.User.addAliases({
+ my_alias_1: 'my_alias_1_id',
+ my_alias_2: 'my_alias_2_id',
+ my_alias_3: 'my_alias_3_id',
+ });
+ },
+ );
+
+ const removeAliasesButton = renderButtonView(
+ 'Remove list of test aliases',
+ () => {
+ loggingFunction('Removing list of test aliases');
+ OneSignal.User.removeAliases([
+ 'my_alias_1',
+ 'my_alias_2',
+ 'my_alias_3',
+ ]);
+ },
+ );
+
+ const getOnesignalIdButton = renderButtonView(
+ 'Get OneSignal Id',
+ async () => {
+ const onesignalId = await OneSignal.User.getOnesignalId();
+ loggingFunction('OneSignal Id: ', onesignalId);
+ },
+ );
+
+ const getExternalIdButton = renderButtonView(
+ 'Get External Id',
+ async () => {
+ const externalId = await OneSignal.User.getExternalId();
+ loggingFunction('External Id:', externalId);
+ },
+ );
+
+ return [
+ loginButton,
+ logoutButton,
+ addEmailButton,
+ removeEmailButton,
+ sendTagWithKeyButton,
+ deleteTagWithKeyButton,
+ addTagsButton,
+ removeTagsButton,
+ getTagsButton,
+ setLanguageButton,
+ addSmsButton,
+ removeSmsButton,
+ addAliasButton,
+ removeAliasButton,
+ addAliasesButton,
+ removeAliasesButton,
+ getOnesignalIdButton,
+ getExternalIdButton,
+ ];
+ }
- const sendUniqueOutcomeButton = renderButtonView(
- "Send Unique Outcome With Name",
- color,
- () => {
- loggingFunction("Sending unique outcome: ", this.props.inputFieldValue);
- OneSignal.sendUniqueOutcome(this.props.inputFieldValue, (event: OutcomeEvent) => {
- loggingFunction("Unique Outcome Event: ", event);
- });
- }
- );
+ pushSubscriptionFields() {
+ const {loggingFunction} = this.props;
+
+ const getPushSubscriptionIdButton = renderButtonView(
+ 'Get Push Subscription Id',
+ async () => {
+ const id = await OneSignal.User.pushSubscription.getIdAsync();
+ loggingFunction('Push Subscription Id: ', id);
+ },
+ );
+
+ const getPushSubscriptionTokenButton = renderButtonView(
+ 'Get Push Subscription Token',
+ async () => {
+ const token = await OneSignal.User.pushSubscription.getTokenAsync();
+ loggingFunction('Push Subscription Token: ', token);
+ },
+ );
+
+ const getOptedInButton = renderButtonView('Is Opted In', async () => {
+ const optedIn = await OneSignal.User.pushSubscription.getOptedInAsync();
+ loggingFunction('Subscribed for the push notifications: ', optedIn);
+ });
+
+ const optInButton = renderButtonView('Opt In', () => {
+ loggingFunction('Subscribing for the push notifications');
+ OneSignal.User.pushSubscription.optIn();
+ });
+
+ const optOutButton = renderButtonView('Opt Out', () => {
+ loggingFunction('Unsubscribing from the push notifications');
+ OneSignal.User.pushSubscription.optOut();
+ });
+
+ return [
+ getPushSubscriptionIdButton,
+ getPushSubscriptionTokenButton,
+ getOptedInButton,
+ optInButton,
+ optOutButton,
+ ];
+ }
- const sendOutcomeWithValueButton = renderButtonView(
- "Send Outcome 'my_outcome' with value",
- color,
- () => {
- const value = Number(this.props.inputFieldValue);
- loggingFunction("Sending outcome of name 'my_outcome' with value: ", value);
-
- if (Number.isNaN(value)) {
- console.error("Outcome with value should be a number");
- return;
- }
- OneSignal.sendOutcomeWithValue('my_outcome', value, (event: OutcomeEvent) => {
- loggingFunction("Outcome With Value Event: ", event);
- });
- }
- );
+ privacyConsentFields() {
+ const {loggingFunction} = this.props;
+
+ const setPrivacyConsentGivenTrueButton = renderButtonView(
+ 'Set Privacy Consent to true',
+ async () => {
+ await OneSignal.setConsentGiven(true);
+ loggingFunction('Privacy Consent set to true');
+ },
+ );
+
+ const setPrivacyConsentGivenFalseButton = renderButtonView(
+ 'Set Privacy Consent to false',
+ async () => {
+ await OneSignal.setConsentGiven(false);
+ loggingFunction('Privacy Consent set to false');
+ },
+ );
+
+ const setPrivacyConsentRequiredTrueButton = renderButtonView(
+ 'Set Requiers Privacy Consent to true',
+ async () => {
+ await OneSignal.setConsentRequired(true);
+ loggingFunction('Requires Privacy Consent set to true');
+ },
+ );
+
+ const setPrivacyConsentRequiredFalseButton = renderButtonView(
+ 'Set Requiers Privacy Consent to false',
+ async () => {
+ await OneSignal.setConsentRequired(false);
+ loggingFunction('Requires Privacy Consent set to false');
+ },
+ );
+
+ return [
+ setPrivacyConsentGivenTrueButton,
+ setPrivacyConsentGivenFalseButton,
+ setPrivacyConsentRequiredTrueButton,
+ setPrivacyConsentRequiredFalseButton,
+ ];
+ }
- elements.push(sendOutcomeButton, sendUniqueOutcomeButton, sendOutcomeWithValueButton);
- return elements;
- }
-
- render() {
- return (
-
-
- { this.createSubscribeFields() }
- { this.createDeviceFields() }
- { this.createNotificationFields() }
- { this.createSMSFields() }
- { this.createEmailFields() }
- { this.createInAppFields() }
- { this.createOutcomeFields() }
-
-
- );
- }
-};
+ render() {
+ return (
+
+
+ InAppMessages
+
+ {this.createInAppMessagesFields()}
+
+
+ Location
+
+ {this.createLocationFields()}
+
+
+ Notifications
+
+ {this.createNotificationFields()}
+
+
+ Session
+
+ {this.createSessionFields()}
+
+
+ User
+
+ {this.createUserFields()}
+
+
+ Push Subscription
+
+ {this.pushSubscriptionFields()}
+
+
+ Privacy Consent
+
+ {this.privacyConsentFields()}
+
+ );
+ }
+}
-// styles
const styles = StyleSheet.create({
- root: {
- alignItems: 'center',
- alignSelf: 'center'
- },
- buttons: {
- flexDirection: 'row',
- minHeight: 70,
- alignItems: 'stretch',
- alignSelf: 'center',
- borderWidth: 5
- },
- container: {
- flex: 1,
- flexDirection: 'row',
- justifyContent: 'flex-start',
- alignItems: 'flex-start',
- backgroundColor: '#FFFFFF',
- flexWrap: 'wrap'
- },
- button: {
- flex: 1,
- paddingVertical: 0
- },
greeting: {
color: '#999',
- fontWeight: 'bold'
- }
+ fontWeight: 'bold',
+ },
});
export default OSButtons;
diff --git a/examples/RNOneSignalTS/src/OSConsole.tsx b/examples/RNOneSignalTS/src/OSConsole.tsx
index de8a6607..05f2a905 100644
--- a/examples/RNOneSignalTS/src/OSConsole.tsx
+++ b/examples/RNOneSignalTS/src/OSConsole.tsx
@@ -18,41 +18,48 @@ import {
Platform,
} from 'react-native';
-import {
- Colors
-} from 'react-native/Libraries/NewAppScreen';
+import {Colors} from 'react-native/Libraries/NewAppScreen';
export interface Props {
- value: string;
+ value: string;
}
-export interface State {
-}
+export interface State {}
class OSConsole extends React.Component {
- constructor(props: Props) {
- super(props);
- }
+ constructor(props: Props) {
+ super(props);
+ }
- scrollToEnd = () => {
- this.scrollView.scrollToEnd
- }
+ scrollToEnd = () => {
+ this.scrollView.scrollToEnd({animated: true});
+ };
- render() {
- return (
-
- { this.scrollView = scrollView }}
- onContentSizeChange={() => this.scrollView.scrollToEnd({animated: true})}>
-
- {this.props.value}
-
-
-
- );
- }
-};
+ render() {
+ return (
+
+ {
+ this.scrollView = scrollView;
+ }}
+ onContentSizeChange={() => this.scrollToEnd()}
+ >
+
+
+ {this.props.value}
+
+
+
+
+ );
+ }
+}
const styles = StyleSheet.create({
scrollView: {
@@ -60,27 +67,26 @@ const styles = StyleSheet.create({
},
body: {
backgroundColor: 'grey',
- height: 200,
flex: 1,
flexGrow: 1,
- flexDirection: 'row'
+ flexDirection: 'row',
},
console: {
flexWrap: 'wrap',
padding: 10,
- flexDirection: 'row'
+ flexDirection: 'row',
},
textIOS: {
- fontFamily: 'Courier',
- flex: 1,
- flexWrap: 'wrap',
- fontSize: 10,
+ fontFamily: 'Courier',
+ flex: 1,
+ flexWrap: 'wrap',
+ fontSize: 10,
},
textAndroid: {
- flex: 1,
- flexWrap: 'wrap',
- fontSize: 20,
- }
+ flex: 1,
+ flexWrap: 'wrap',
+ fontSize: 10,
+ },
});
export default OSConsole;
diff --git a/examples/RNOneSignalTS/src/OSDemo.tsx b/examples/RNOneSignalTS/src/OSDemo.tsx
index d8f6ba35..94f2dbf1 100644
--- a/examples/RNOneSignalTS/src/OSDemo.tsx
+++ b/examples/RNOneSignalTS/src/OSDemo.tsx
@@ -1,179 +1,187 @@
-import OneSignal from 'react-native-onesignal';
+import {LogLevel, OneSignal} from 'react-native-onesignal';
import * as React from 'react';
-import { StyleSheet, View, Text, TextInput, Alert} from 'react-native';
+import {Alert, StyleSheet, View, ScrollView, SafeAreaView} from 'react-native';
import OSButtons from './OSButtons';
-import { SubscribeFields } from './models/SubscribeFields';
import OSConsole from './OSConsole';
-import { renderButtonView } from './Helpers';
+import {renderButtonView} from './Helpers';
+import {TextInput, Text} from '@react-native-material/core';
+
+const APP_ID = '77e32082-ea27-42e3-a898-c72e141824ef';
export interface Props {
name: string;
}
export interface State {
- name: string;
- isSubscribed: boolean;
- isLocationShared: boolean;
- requiresPrivacyConsent: boolean;
- consoleValue: string;
- inputValue: string;
+ name: string;
+ consoleValue: string;
+ inputValue: string;
}
class OSDemo extends React.Component {
- constructor(props: Props) {
- super(props);
-
- this.state = {
- name: props.name,
- isSubscribed: false,
- requiresPrivacyConsent: false,
- isLocationShared: false,
- inputValue: "",
- consoleValue: ""
- }
- }
+ constructor(props: Props) {
+ super(props);
+
+ this.state = {
+ name: props.name,
+ inputValue: '',
+ consoleValue: '',
+ };
+ }
- async componentDidMount() {
- /* O N E S I G N A L S E T U P */
- OneSignal.setAppId("ce8572ae-ff57-4e77-a265-5c91f00ecc4c");
- OneSignal.setLogLevel(6, 0);
- OneSignal.setRequiresUserPrivacyConsent(this.state.requiresPrivacyConsent);
-
- /* O N E S I G N A L H A N D L E R S */
- OneSignal.setNotificationWillShowInForegroundHandler(notifReceivedEvent => {
- this.OSLog("OneSignal: notification will show in foreground:", notifReceivedEvent);
- let notif = notifReceivedEvent.getNotification();
-
- const button1 = {
- text: "Cancel",
- onPress: () => { notifReceivedEvent.complete(); },
- style: "cancel"
- };
-
- const button2 = { text: "Complete", onPress: () => { notifReceivedEvent.complete(notif); }};
-
- Alert.alert("Complete notification?", "Test", [ button1, button2], { cancelable: true });
- });
- OneSignal.setNotificationOpenedHandler(notification => {
- this.OSLog("OneSignal: notification opened:", notification);
- });
- OneSignal.setInAppMessageClickHandler(event => {
- this.OSLog("OneSignal IAM clicked:", event);
- });
- OneSignal.setInAppMessageLifecycleHandler({
- onWillDisplayInAppMessage: message => {
- this.OSLog("OneSignal: will display IAM: ", message.messageId)
- },
- onDidDisplayInAppMessage: message => {
- this.OSLog("OneSignal: did display IAM: ", message.messageId)
- },
- onWillDismissInAppMessage: message => {
- this.OSLog("OneSignal: will dismiss IAM: ", message.messageId)
- },
- onDidDismissInAppMessage: message => {
- this.OSLog("OneSignal: did dismiss IAM: ", message.messageId)
- }
- });
- OneSignal.addEmailSubscriptionObserver((event) => {
- this.OSLog("OneSignal: email subscription changed: ", event);
- });
- OneSignal.addSMSSubscriptionObserver((event) => {
- this.OSLog("OneSignal: SMS subscription changed: ", event);
- });
- OneSignal.addSubscriptionObserver(event => {
- this.OSLog("OneSignal: subscription changed:", event);
- this.setState({ isSubscribed: event.to.isSubscribed})
- });
- OneSignal.addPermissionObserver(event => {
- this.OSLog("OneSignal: permission changed:", event);
- });
- const state = await OneSignal.getDeviceState();
-
- this.setState({
- // state is possibly 'null' so need to check
- name : state? state.emailAddress : "",
- isSubscribed : state ? state.isSubscribed : false,
- });
- }
+ async componentDidMount() {
+ OneSignal.initialize(APP_ID);
+ OneSignal.Debug.setLogLevel(LogLevel.Verbose);
+
+ OneSignal.Notifications.addEventListener(
+ 'foregroundWillDisplay',
+ (event) => {
+ this.OSLog('OneSignal: notification will show in foreground:', event);
+ let notif = event.getNotification();
+
+ const cancelButton = {
+ text: 'Cancel',
+ onPress: () => {
+ event.preventDefault();
+ },
+ style: 'cancel',
+ };
+
+ const completeButton = {
+ text: 'Display',
+ onPress: () => {
+ event.getNotification().display();
+ },
+ };
+
+ Alert.alert(
+ 'Display notification?',
+ notif.title,
+ [cancelButton, completeButton],
+ {
+ cancelable: true,
+ },
+ );
+ },
+ );
+
+ OneSignal.Notifications.addEventListener('click', (event) => {
+ this.OSLog('OneSignal: notification clicked:', event);
+ });
+
+ OneSignal.InAppMessages.addEventListener('click', (event) => {
+ this.OSLog('OneSignal IAM clicked:', event);
+ });
+
+ OneSignal.InAppMessages.addEventListener('willDisplay', (event) => {
+ this.OSLog('OneSignal: will display IAM: ', event);
+ });
+
+ OneSignal.InAppMessages.addEventListener('didDisplay', (event) => {
+ this.OSLog('OneSignal: did display IAM: ', event);
+ });
+
+ OneSignal.InAppMessages.addEventListener('willDismiss', (event) => {
+ this.OSLog('OneSignal: will dismiss IAM: ', event);
+ });
+
+ OneSignal.InAppMessages.addEventListener('didDismiss', (event) => {
+ this.OSLog('OneSignal: did dismiss IAM: ', event);
+ });
+
+ OneSignal.User.pushSubscription.addEventListener(
+ 'change',
+ (subscription) => {
+ this.OSLog('OneSignal: subscription changed:', subscription);
+ },
+ );
+
+ OneSignal.Notifications.addEventListener('permissionChange', (granted) => {
+ this.OSLog('OneSignal: permission changed:', granted);
+ });
+
+ OneSignal.User.addEventListener('change', (event) => {
+ this.OSLog('OneSignal: user changed: ', event);
+ });
+ }
- componentWillUnmount() {
- OneSignal.clearHandlers();
+ OSLog = (message: string, optionalArg: any = null) => {
+ if (optionalArg !== null) {
+ message = message + JSON.stringify(optionalArg);
}
- OSLog = (message: string, optionalArg?: Object) => {
-
- if (optionalArg) {
- message = message + JSON.stringify(optionalArg);
- }
+ console.log(message);
- console.log(message);
+ let consoleValue;
- let consoleValue;
-
- if (this.state.consoleValue) {
- consoleValue = this.state.consoleValue+"\n"+message
- } else {
- consoleValue = message;
- }
- this.setState({ consoleValue });
- }
-
- inputChange = (text: string) => {
- this.setState({ inputValue: text })
- }
-
- render() {
- const subscribeFields : SubscribeFields = {
- isSubscribed : this.state.isSubscribed,
- }
-
- return (
-
- OneSignal
- {renderButtonView("Clear", 'gray', () => { this.setState({ consoleValue: "" }) })}
-
-
-
-
- );
+ if (this.state.consoleValue) {
+ consoleValue = `${this.state.consoleValue}\n${message}`;
+ } else {
+ consoleValue = message;
}
-};
+ this.setState({consoleValue});
+ };
+
+ inputChange = (text: string) => {
+ this.setState({inputValue: text});
+ };
+
+ render() {
+ return (
+
+
+ OneSignal
+
+
+ {renderButtonView('X', () => {
+ this.setState({consoleValue: ''});
+ })}
+
+
+
+
+
+
+
+ );
+ }
+}
// styles
const styles = StyleSheet.create({
- root: {
- alignItems: 'center',
- alignSelf: 'center'
- },
- title: {
- fontSize: 40
- },
- buttons: {
- flexDirection: 'row',
- minHeight: 70,
- alignItems: 'stretch',
- alignSelf: 'center',
- borderWidth: 5
- },
container: {
flex: 1,
flexDirection: 'column',
justifyContent: 'flex-start',
- alignItems: 'center',
- backgroundColor: '#FFFFFF',
+ alignItems: 'stretch',
+ backgroundColor: '#fff',
},
- button: {
- flex: 1,
- paddingVertical: 0
+ header: {
+ flex: 0.5,
+ },
+ scrollView: {
+ flex: 0.5,
+ },
+ title: {
+ fontSize: 40,
+ alignSelf: 'center',
+ paddingVertical: 10,
+ },
+ clearButton: {
+ position: 'absolute',
+ right: 0,
+ top: 70,
},
input: {
- height: 40,
- borderColor: 'gray',
- borderWidth: 2,
- borderRadius: 5,
- width: 300,
- margin: 10
- }
+ marginTop: 10,
+ },
});
export default OSDemo;
diff --git a/examples/RNOneSignalTS/src/models/SubscribeFields.tsx b/examples/RNOneSignalTS/src/models/SubscribeFields.tsx
deleted file mode 100644
index 62ed77e0..00000000
--- a/examples/RNOneSignalTS/src/models/SubscribeFields.tsx
+++ /dev/null
@@ -1,4 +0,0 @@
-
-export interface SubscribeFields {
- isSubscribed: boolean;
-}
\ No newline at end of file
diff --git a/examples/RNOneSignalTS/tsconfig.json b/examples/RNOneSignalTS/tsconfig.json
index 5c9b27a9..760dc8c4 100644
--- a/examples/RNOneSignalTS/tsconfig.json
+++ b/examples/RNOneSignalTS/tsconfig.json
@@ -1,27 +1,28 @@
-
{
"compilerOptions": {
/* Basic Options */
- "target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
- "module": "es2015", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
- "lib": ["es6"], /* Specify library files to be included in the compilation. */
- "allowJs": true, /* Allow javascript files to be compiled. */
+ "target": "esnext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */,
+ "module": "es2015" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */,
+ "lib": [
+ "es6"
+ ] /* Specify library files to be included in the compilation. */,
+ "allowJs": true /* Allow javascript files to be compiled. */,
// "checkJs": true, /* Report errors in .js files. */
- "jsx": "react-native", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
+ "jsx": "react-native" /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */,
// "declaration": true, /* Generates corresponding '.d.ts' file. */
// "sourceMap": true, /* Generates corresponding '.map' file. */
// "outFile": "./", /* Concatenate and emit output to single file. */
// "outDir": "./", /* Redirect output structure to the directory. */
// "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
// "removeComments": true, /* Do not emit comments to output. */
- "noEmit": true, /* Do not emit outputs. */
+ "noEmit": true /* Do not emit outputs. */,
// "incremental": true, /* Enable incremental compilation */
// "importHelpers": true, /* Import emit helpers from 'tslib'. */
// "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
- "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
+ "isolatedModules": true /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */,
/* Strict Type-Checking Options */
- "strict": true, /* Enable all strict type-checking options. */
+ "strict": true /* Enable all strict type-checking options. */,
// "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
// "strictNullChecks": true, /* Enable strict null checks. */
// "strictFunctionTypes": true, /* Enable strict checking of function types. */
@@ -36,14 +37,14 @@
// "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
/* Module Resolution Options */
- "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
+ "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */,
// "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
// "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
// "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
// "typeRoots": [], /* List of folders to include type definitions from. */
// "types": [], /* Type declaration files to be included in compilation. */
- "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
- "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
+ "allowSyntheticDefaultImports": true /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */,
+ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
// "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
/* Source Map Options */
@@ -57,6 +58,9 @@
// "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
},
"exclude": [
- "node_modules", "babel.config.js", "metro.config.js", "jest.config.js"
+ "node_modules",
+ "babel.config.js",
+ "metro.config.js",
+ "jest.config.js"
]
}
diff --git a/examples/RNOneSignalTS/update_example b/examples/RNOneSignalTS/update_example
new file mode 100755
index 00000000..6d049e2b
--- /dev/null
+++ b/examples/RNOneSignalTS/update_example
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+
+(cd ../../ && rm -rf dist/ && yarn)
+
+if [[ "$1" == "--fast" ]]; then
+ NODE_MODULES_FOLDER=./node_modules/react-native-onesignal
+ cp -rv ../../dist $NODE_MODULES_FOLDER
+ cp -rv ../../src $NODE_MODULES_FOLDER
+ cp -rv ../../ios $NODE_MODULES_FOLDER
+ cp -rv ../../android $NODE_MODULES_FOLDER
+else
+ yarn remove react-native-onesignal
+ yarn add file:../../
+fi
diff --git a/examples/RNOneSignalTS/yarn.lock b/examples/RNOneSignalTS/yarn.lock
deleted file mode 100644
index 6535f751..00000000
--- a/examples/RNOneSignalTS/yarn.lock
+++ /dev/null
@@ -1,7062 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@ampproject/remapping@^2.1.0":
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
- integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
- dependencies:
- "@jridgewell/gen-mapping" "^0.1.0"
- "@jridgewell/trace-mapping" "^0.3.9"
-
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
- integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
- dependencies:
- "@babel/highlight" "^7.18.6"
-
-"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733"
- integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==
-
-"@babel/core@^7.0.0", "@babel/core@^7.1.0", "@babel/core@^7.1.6", "@babel/core@^7.12.3", "@babel/core@^7.7.5", "@babel/core@^7.8.4":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113"
- integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==
- dependencies:
- "@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.5"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-module-transforms" "^7.20.2"
- "@babel/helpers" "^7.20.5"
- "@babel/parser" "^7.20.5"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.5"
- "@babel/types" "^7.20.5"
- convert-source-map "^1.7.0"
- debug "^4.1.0"
- gensync "^1.0.0-beta.2"
- json5 "^2.2.1"
- semver "^6.3.0"
-
-"@babel/generator@^7.20.5", "@babel/generator@^7.5.0":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95"
- integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==
- dependencies:
- "@babel/types" "^7.20.5"
- "@jridgewell/gen-mapping" "^0.3.2"
- jsesc "^2.5.1"
-
-"@babel/helper-annotate-as-pure@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
- integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz#acd4edfd7a566d1d51ea975dff38fd52906981bb"
- integrity sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==
- dependencies:
- "@babel/helper-explode-assignable-expression" "^7.18.6"
- "@babel/types" "^7.18.9"
-
-"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a"
- integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==
- dependencies:
- "@babel/compat-data" "^7.20.0"
- "@babel/helper-validator-option" "^7.18.6"
- browserslist "^4.21.3"
- semver "^6.3.0"
-
-"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06"
- integrity sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-member-expression-to-functions" "^7.18.9"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-replace-supers" "^7.19.1"
- "@babel/helper-split-export-declaration" "^7.18.6"
-
-"@babel/helper-create-regexp-features-plugin@^7.18.6":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca"
- integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- regexpu-core "^5.2.1"
-
-"@babel/helper-define-polyfill-provider@^0.3.3":
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
- integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
- dependencies:
- "@babel/helper-compilation-targets" "^7.17.7"
- "@babel/helper-plugin-utils" "^7.16.7"
- debug "^4.1.1"
- lodash.debounce "^4.0.8"
- resolve "^1.14.2"
- semver "^6.1.2"
-
-"@babel/helper-environment-visitor@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
- integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
-
-"@babel/helper-explode-assignable-expression@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
- integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
- integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
- dependencies:
- "@babel/template" "^7.18.10"
- "@babel/types" "^7.19.0"
-
-"@babel/helper-hoist-variables@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
- integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-member-expression-to-functions@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815"
- integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==
- dependencies:
- "@babel/types" "^7.18.9"
-
-"@babel/helper-module-imports@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
- integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712"
- integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-simple-access" "^7.20.2"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/helper-validator-identifier" "^7.19.1"
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.1"
- "@babel/types" "^7.20.2"
-
-"@babel/helper-optimise-call-expression@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
- integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.8.0":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629"
- integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==
-
-"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.19.1":
- version "7.19.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78"
- integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-member-expression-to-functions" "^7.18.9"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/traverse" "^7.19.1"
- "@babel/types" "^7.19.0"
-
-"@babel/helper-simple-access@^7.19.4", "@babel/helper-simple-access@^7.20.2":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9"
- integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==
- dependencies:
- "@babel/types" "^7.20.2"
-
-"@babel/helper-skip-transparent-expression-wrappers@^7.18.9":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
- integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
- dependencies:
- "@babel/types" "^7.20.0"
-
-"@babel/helper-split-export-declaration@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
- integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
- dependencies:
- "@babel/types" "^7.18.6"
-
-"@babel/helper-string-parser@^7.19.4":
- version "7.19.4"
- resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
- integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
-
-"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1":
- version "7.19.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
- integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
-
-"@babel/helper-validator-option@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
- integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
-
-"@babel/helpers@^7.20.5":
- version "7.20.6"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763"
- integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==
- dependencies:
- "@babel/template" "^7.18.10"
- "@babel/traverse" "^7.20.5"
- "@babel/types" "^7.20.5"
-
-"@babel/highlight@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
- integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
- dependencies:
- "@babel/helper-validator-identifier" "^7.18.6"
- chalk "^2.0.0"
- js-tokens "^4.0.0"
-
-"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.1.6", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5", "@babel/parser@^7.7.0":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8"
- integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==
-
-"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.1.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
- integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-proposal-export-default-from@^7.0.0":
- version "7.18.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-default-from/-/plugin-proposal-export-default-from-7.18.10.tgz#091f4794dbce4027c03cf4ebc64d3fb96b75c206"
- integrity sha512-5H2N3R2aQFxkV4PIBUR/i7PUSwgTZjouJKzI8eKswfIjT0PhvzkPn0t0wIS5zn6maQuvtT0t1oHtMUz61LOuow==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
- "@babel/plugin-syntax-export-default-from" "^7.18.6"
-
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.1.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
- integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-
-"@babel/plugin-proposal-object-rest-spread@^7.0.0":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz#a556f59d555f06961df1e572bb5eca864c84022d"
- integrity sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==
- dependencies:
- "@babel/compat-data" "^7.20.1"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.20.1"
-
-"@babel/plugin-proposal-optional-catch-binding@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
- integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-
-"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.1.0":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993"
- integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-
-"@babel/plugin-syntax-async-generators@^7.8.4":
- version "7.8.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
- integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-bigint@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz#4c9a6f669f5d0cdf1b90a1671e9a146be5300cea"
- integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.8.3":
- version "7.12.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
- integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.12.13"
-
-"@babel/plugin-syntax-dynamic-import@^7.0.0":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
- integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-export-default-from@^7.0.0", "@babel/plugin-syntax-export-default-from@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-default-from/-/plugin-syntax-export-default-from-7.18.6.tgz#8df076711a4818c4ce4f23e61d622b0ba2ff84bc"
- integrity sha512-Kr//z3ujSVNx6E9z9ih5xXXMqK07VVTuqPmqGe6Mss/zW5XPeLZeSDZoP9ab/hT4wPKqAgjl2PnhPrcpk8Seew==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.18.6", "@babel/plugin-syntax-flow@^7.2.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.18.6.tgz#774d825256f2379d06139be0c723c4dd444f3ca1"
- integrity sha512-LUbR+KNTBWCUAqRG9ex5Gnzu2IOkt8jRJbHHXFT9q+L9zm7M/QQbEqXyw1n1pohYvOyWC8CjeyjrSaIwiYjK7A==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-syntax-import-meta@^7.8.3":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
- integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-json-strings@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
- integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
- integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
- integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-nullish-coalescing-operator@^7.0.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
- integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-numeric-separator@^7.8.3":
- version "7.10.4"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
- integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
- dependencies:
- "@babel/helper-plugin-utils" "^7.10.4"
-
-"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
- integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
- integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-optional-chaining@^7.0.0", "@babel/plugin-syntax-optional-chaining@^7.8.3":
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
- integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.8.0"
-
-"@babel/plugin-syntax-typescript@^7.20.0":
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz#4e9a0cfc769c85689b77a2e642d24e9f697fc8c7"
- integrity sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
-
-"@babel/plugin-transform-arrow-functions@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe"
- integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-block-scoped-functions@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8"
- integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-block-scoping@^7.0.0":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz#401215f9dc13dc5262940e2e527c9536b3d7f237"
- integrity sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-classes@^7.0.0":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz#c0033cf1916ccf78202d04be4281d161f6709bb2"
- integrity sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-compilation-targets" "^7.20.0"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-optimise-call-expression" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/helper-replace-supers" "^7.19.1"
- "@babel/helper-split-export-declaration" "^7.18.6"
- globals "^11.1.0"
-
-"@babel/plugin-transform-computed-properties@^7.0.0":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e"
- integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-destructuring@^7.0.0":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz#c23741cfa44ddd35f5e53896e88c75331b8b2792"
- integrity sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-exponentiation-operator@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
- integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==
- dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.18.6":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.19.0.tgz#e9e8606633287488216028719638cbbb2f2dde8f"
- integrity sha512-sgeMlNaQVbCSpgLSKP4ZZKfsJVnFnNQlUSk6gPYzR/q7tzCgQF2t8RBKAP6cKJeZdveei7Q7Jm527xepI8lNLg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
- "@babel/plugin-syntax-flow" "^7.18.6"
-
-"@babel/plugin-transform-for-of@^7.0.0":
- version "7.18.8"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1"
- integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-function-name@^7.0.0":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
- integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
- dependencies:
- "@babel/helper-compilation-targets" "^7.18.9"
- "@babel/helper-function-name" "^7.18.9"
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-literals@^7.0.0":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
- integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-member-expression-literals@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
- integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-modules-commonjs@^7.0.0", "@babel/plugin-transform-modules-commonjs@^7.1.0":
- version "7.19.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c"
- integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==
- dependencies:
- "@babel/helper-module-transforms" "^7.19.6"
- "@babel/helper-plugin-utils" "^7.19.0"
- "@babel/helper-simple-access" "^7.19.4"
-
-"@babel/plugin-transform-object-assign@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.18.6.tgz#7830b4b6f83e1374a5afb9f6111bcfaea872cdd2"
- integrity sha512-mQisZ3JfqWh2gVXvfqYCAAyRs6+7oev+myBsTwW5RnPhYXOTuCEw2oe3YgxlXMViXUS53lG8koulI7mJ+8JE+A==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-object-super@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
- integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-replace-supers" "^7.18.6"
-
-"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.1":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz#f8f9186c681d10c3de7620c916156d893c8a019e"
- integrity sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
-
-"@babel/plugin-transform-property-literals@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
- integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-react-display-name@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415"
- integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-react-jsx-self@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz#3849401bab7ae8ffa1e3e5687c94a753fc75bda7"
- integrity sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-react-jsx-source@^7.0.0":
- version "7.19.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz#88578ae8331e5887e8ce28e4c9dc83fb29da0b86"
- integrity sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
-
-"@babel/plugin-transform-react-jsx@^7.0.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz#b3cbb7c3a00b92ec8ae1027910e331ba5c500eb9"
- integrity sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.19.0"
- "@babel/plugin-syntax-jsx" "^7.18.6"
- "@babel/types" "^7.19.0"
-
-"@babel/plugin-transform-regenerator@^7.0.0":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d"
- integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.20.2"
- regenerator-transform "^0.15.1"
-
-"@babel/plugin-transform-runtime@^7.0.0":
- version "7.19.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194"
- integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==
- dependencies:
- "@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.19.0"
- babel-plugin-polyfill-corejs2 "^0.3.3"
- babel-plugin-polyfill-corejs3 "^0.6.0"
- babel-plugin-polyfill-regenerator "^0.4.1"
- semver "^6.3.0"
-
-"@babel/plugin-transform-shorthand-properties@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
- integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-spread@^7.0.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6"
- integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==
- dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
-
-"@babel/plugin-transform-sticky-regex@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc"
- integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/plugin-transform-template-literals@^7.0.0":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
- integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.9"
-
-"@babel/plugin-transform-typescript@^7.18.6", "@babel/plugin-transform-typescript@^7.5.0":
- version "7.20.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.20.2.tgz#91515527b376fc122ba83b13d70b01af8fe98f3f"
- integrity sha512-jvS+ngBfrnTUBfOQq8NfGnSbF9BrqlR6hjJ2yVxMkmO5nL/cdifNbI30EfjRlN4g5wYWNnMPyj5Sa6R1pbLeag==
- dependencies:
- "@babel/helper-create-class-features-plugin" "^7.20.2"
- "@babel/helper-plugin-utils" "^7.20.2"
- "@babel/plugin-syntax-typescript" "^7.20.0"
-
-"@babel/plugin-transform-unicode-regex@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
- integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
-
-"@babel/preset-flow@^7.0.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-flow/-/preset-flow-7.18.6.tgz#83f7602ba566e72a9918beefafef8ef16d2810cb"
- integrity sha512-E7BDhL64W6OUqpuyHnSroLnqyRTcG6ZdOBl1OKI/QK/HJfplqK/S3sq1Cckx7oTodJ5yOXyfw7rEADJ6UjoQDQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-validator-option" "^7.18.6"
- "@babel/plugin-transform-flow-strip-types" "^7.18.6"
-
-"@babel/preset-typescript@^7.1.0":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz#ce64be3e63eddc44240c6358daefac17b3186399"
- integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.18.6"
- "@babel/helper-validator-option" "^7.18.6"
- "@babel/plugin-transform-typescript" "^7.18.6"
-
-"@babel/register@^7.0.0":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.18.9.tgz#1888b24bc28d5cc41c412feb015e9ff6b96e439c"
- integrity sha512-ZlbnXDcNYHMR25ITwwNKT88JiaukkdVj/nG7r3wnuXkOTHc60Uy05PwMCPre0hSkY68E6zK3xz+vUJSP2jWmcw==
- dependencies:
- clone-deep "^4.0.1"
- find-cache-dir "^2.0.0"
- make-dir "^2.1.0"
- pirates "^4.0.5"
- source-map-support "^0.5.16"
-
-"@babel/runtime-corejs3@^7.12.1":
- version "7.20.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz#63dae945963539ab0ad578efbf3eff271e7067ae"
- integrity sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==
- dependencies:
- core-js-pure "^3.25.1"
- regenerator-runtime "^0.13.11"
-
-"@babel/runtime@^7.8.4":
- version "7.20.6"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3"
- integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==
- dependencies:
- regenerator-runtime "^0.13.11"
-
-"@babel/template@^7.0.0", "@babel/template@^7.18.10", "@babel/template@^7.3.3":
- version "7.18.10"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
- integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
- dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/parser" "^7.18.10"
- "@babel/types" "^7.18.10"
-
-"@babel/traverse@^7.0.0", "@babel/traverse@^7.1.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.0":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133"
- integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==
- dependencies:
- "@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.5"
- "@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-hoist-variables" "^7.18.6"
- "@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.20.5"
- "@babel/types" "^7.20.5"
- debug "^4.1.0"
- globals "^11.1.0"
-
-"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.7.0":
- version "7.20.5"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84"
- integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==
- dependencies:
- "@babel/helper-string-parser" "^7.19.4"
- "@babel/helper-validator-identifier" "^7.19.1"
- to-fast-properties "^2.0.0"
-
-"@bcoe/v8-coverage@^0.2.3":
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
- integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
-
-"@cnakazawa/watch@^1.0.3":
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/@cnakazawa/watch/-/watch-1.0.4.tgz#f864ae85004d0fcab6f50be9141c4da368d1656a"
- integrity sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==
- dependencies:
- exec-sh "^0.3.2"
- minimist "^1.2.0"
-
-"@hapi/hoek@^9.0.0":
- version "9.3.0"
- resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
- integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==
-
-"@hapi/topo@^5.0.0":
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012"
- integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==
- dependencies:
- "@hapi/hoek" "^9.0.0"
-
-"@istanbuljs/load-nyc-config@^1.0.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
- integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==
- dependencies:
- camelcase "^5.3.1"
- find-up "^4.1.0"
- get-package-type "^0.1.0"
- js-yaml "^3.13.1"
- resolve-from "^5.0.0"
-
-"@istanbuljs/schema@^0.1.2":
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
- integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
-
-"@jest/console@^25.5.0":
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-25.5.0.tgz#770800799d510f37329c508a9edd0b7b447d9abb"
- integrity sha512-T48kZa6MK1Y6k4b89sexwmSF4YLeZS/Udqg3Jj3jG/cHH+N/sLFCEoXEDMOKugJQ9FxPN1osxIknvKkxt6MKyw==
- dependencies:
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- jest-message-util "^25.5.0"
- jest-util "^25.5.0"
- slash "^3.0.0"
-
-"@jest/core@^25.5.4":
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-25.5.4.tgz#3ef7412f7339210f003cdf36646bbca786efe7b4"
- integrity sha512-3uSo7laYxF00Dg/DMgbn4xMJKmDdWvZnf89n8Xj/5/AeQ2dOQmn6b6Hkj/MleyzZWXpwv+WSdYWl4cLsy2JsoA==
- dependencies:
- "@jest/console" "^25.5.0"
- "@jest/reporters" "^25.5.1"
- "@jest/test-result" "^25.5.0"
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
- ansi-escapes "^4.2.1"
- chalk "^3.0.0"
- exit "^0.1.2"
- graceful-fs "^4.2.4"
- jest-changed-files "^25.5.0"
- jest-config "^25.5.4"
- jest-haste-map "^25.5.1"
- jest-message-util "^25.5.0"
- jest-regex-util "^25.2.6"
- jest-resolve "^25.5.1"
- jest-resolve-dependencies "^25.5.4"
- jest-runner "^25.5.4"
- jest-runtime "^25.5.4"
- jest-snapshot "^25.5.1"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
- jest-watcher "^25.5.0"
- micromatch "^4.0.2"
- p-each-series "^2.1.0"
- realpath-native "^2.0.0"
- rimraf "^3.0.0"
- slash "^3.0.0"
- strip-ansi "^6.0.0"
-
-"@jest/create-cache-key-function@^26.5.0":
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-26.6.2.tgz#04cf439207a4fd12418d8aee551cddc86f9ac5f5"
- integrity sha512-LgEuqU1f/7WEIPYqwLPIvvHuc1sB6gMVbT6zWhin3txYUNYK/kGQrC1F2WR4gR34YlI9bBtViTm5z98RqVZAaw==
- dependencies:
- "@jest/types" "^26.6.2"
-
-"@jest/environment@^25.5.0":
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-25.5.0.tgz#aa33b0c21a716c65686638e7ef816c0e3a0c7b37"
- integrity sha512-U2VXPEqL07E/V7pSZMSQCvV5Ea4lqOlT+0ZFijl/i316cRMHvZ4qC+jBdryd+lmRetjQo0YIQr6cVPNxxK87mA==
- dependencies:
- "@jest/fake-timers" "^25.5.0"
- "@jest/types" "^25.5.0"
- jest-mock "^25.5.0"
-
-"@jest/fake-timers@^25.5.0":
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-25.5.0.tgz#46352e00533c024c90c2bc2ad9f2959f7f114185"
- integrity sha512-9y2+uGnESw/oyOI3eww9yaxdZyHq7XvprfP/eeoCsjqKYts2yRlsHS/SgjPDV8FyMfn2nbMy8YzUk6nyvdLOpQ==
- dependencies:
- "@jest/types" "^25.5.0"
- jest-message-util "^25.5.0"
- jest-mock "^25.5.0"
- jest-util "^25.5.0"
- lolex "^5.0.0"
-
-"@jest/globals@^25.5.2":
- version "25.5.2"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-25.5.2.tgz#5e45e9de8d228716af3257eeb3991cc2e162ca88"
- integrity sha512-AgAS/Ny7Q2RCIj5kZ+0MuKM1wbF0WMLxbCVl/GOMoCNbODRdJ541IxJ98xnZdVSZXivKpJlNPIWa3QmY0l4CXA==
- dependencies:
- "@jest/environment" "^25.5.0"
- "@jest/types" "^25.5.0"
- expect "^25.5.0"
-
-"@jest/reporters@^25.5.1":
- version "25.5.1"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-25.5.1.tgz#cb686bcc680f664c2dbaf7ed873e93aa6811538b"
- integrity sha512-3jbd8pPDTuhYJ7vqiHXbSwTJQNavczPs+f1kRprRDxETeE3u6srJ+f0NPuwvOmk+lmunZzPkYWIFZDLHQPkviw==
- dependencies:
- "@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- collect-v8-coverage "^1.0.0"
- exit "^0.1.2"
- glob "^7.1.2"
- graceful-fs "^4.2.4"
- istanbul-lib-coverage "^3.0.0"
- istanbul-lib-instrument "^4.0.0"
- istanbul-lib-report "^3.0.0"
- istanbul-lib-source-maps "^4.0.0"
- istanbul-reports "^3.0.2"
- jest-haste-map "^25.5.1"
- jest-resolve "^25.5.1"
- jest-util "^25.5.0"
- jest-worker "^25.5.0"
- slash "^3.0.0"
- source-map "^0.6.0"
- string-length "^3.1.0"
- terminal-link "^2.0.0"
- v8-to-istanbul "^4.1.3"
- optionalDependencies:
- node-notifier "^6.0.0"
-
-"@jest/source-map@^25.5.0":
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-25.5.0.tgz#df5c20d6050aa292c2c6d3f0d2c7606af315bd1b"
- integrity sha512-eIGx0xN12yVpMcPaVpjXPnn3N30QGJCJQSkEDUt9x1fI1Gdvb07Ml6K5iN2hG7NmMP6FDmtPEssE3z6doOYUwQ==
- dependencies:
- callsites "^3.0.0"
- graceful-fs "^4.2.4"
- source-map "^0.6.0"
-
-"@jest/test-result@^25.5.0":
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-25.5.0.tgz#139a043230cdeffe9ba2d8341b27f2efc77ce87c"
- integrity sha512-oV+hPJgXN7IQf/fHWkcS99y0smKLU2czLBJ9WA0jHITLst58HpQMtzSYxzaBvYc6U5U6jfoMthqsUlUlbRXs0A==
- dependencies:
- "@jest/console" "^25.5.0"
- "@jest/types" "^25.5.0"
- "@types/istanbul-lib-coverage" "^2.0.0"
- collect-v8-coverage "^1.0.0"
-
-"@jest/test-sequencer@^25.5.4":
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-25.5.4.tgz#9b4e685b36954c38d0f052e596d28161bdc8b737"
- integrity sha512-pTJGEkSeg1EkCO2YWq6hbFvKNXk8ejqlxiOg1jBNLnWrgXOkdY6UmqZpwGFXNnRt9B8nO1uWMzLLZ4eCmhkPNA==
- dependencies:
- "@jest/test-result" "^25.5.0"
- graceful-fs "^4.2.4"
- jest-haste-map "^25.5.1"
- jest-runner "^25.5.4"
- jest-runtime "^25.5.4"
-
-"@jest/transform@^25.5.1":
- version "25.5.1"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-25.5.1.tgz#0469ddc17699dd2bf985db55fa0fb9309f5c2db3"
- integrity sha512-Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==
- dependencies:
- "@babel/core" "^7.1.0"
- "@jest/types" "^25.5.0"
- babel-plugin-istanbul "^6.0.0"
- chalk "^3.0.0"
- convert-source-map "^1.4.0"
- fast-json-stable-stringify "^2.0.0"
- graceful-fs "^4.2.4"
- jest-haste-map "^25.5.1"
- jest-regex-util "^25.2.6"
- jest-util "^25.5.0"
- micromatch "^4.0.2"
- pirates "^4.0.1"
- realpath-native "^2.0.0"
- slash "^3.0.0"
- source-map "^0.6.1"
- write-file-atomic "^3.0.0"
-
-"@jest/types@^25.5.0":
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d"
- integrity sha512-OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==
- dependencies:
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^1.1.1"
- "@types/yargs" "^15.0.0"
- chalk "^3.0.0"
-
-"@jest/types@^26.6.2":
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e"
- integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==
- dependencies:
- "@types/istanbul-lib-coverage" "^2.0.0"
- "@types/istanbul-reports" "^3.0.0"
- "@types/node" "*"
- "@types/yargs" "^15.0.0"
- chalk "^4.0.0"
-
-"@jridgewell/gen-mapping@^0.1.0":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
- integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
- dependencies:
- "@jridgewell/set-array" "^1.0.0"
- "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@jridgewell/gen-mapping@^0.3.2":
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
- integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
- dependencies:
- "@jridgewell/set-array" "^1.0.1"
- "@jridgewell/sourcemap-codec" "^1.4.10"
- "@jridgewell/trace-mapping" "^0.3.9"
-
-"@jridgewell/resolve-uri@3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
- integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
-
-"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
- integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-
-"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
- version "1.4.14"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
- integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-
-"@jridgewell/trace-mapping@^0.3.9":
- version "0.3.17"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
- integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
- dependencies:
- "@jridgewell/resolve-uri" "3.1.0"
- "@jridgewell/sourcemap-codec" "1.4.14"
-
-"@react-native-community/cli-debugger-ui@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-5.0.1.tgz#6b1f3367b8e5211e899983065ea2e72c1901d75f"
- integrity sha512-5gGKaaXYOVE423BUqxIfvfAVSj5Cg1cU/TpGbeg/iqpy2CfqyWqJB3tTuVUbOOiOvR5wbU8tti6pIi1pchJ+oA==
- dependencies:
- serve-static "^1.13.1"
-
-"@react-native-community/cli-hermes@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-5.0.1.tgz#039d064bf2dcd5043beb7dcd6cdf5f5cdd51e7fc"
- integrity sha512-nD+ZOFvu5MfjLB18eDJ01MNiFrzj8SDtENjGpf0ZRFndOWASDAmU54/UlU/wj8OzTToK1+S1KY7j2P2M1gleww==
- dependencies:
- "@react-native-community/cli-platform-android" "^5.0.1"
- "@react-native-community/cli-tools" "^5.0.1"
- chalk "^3.0.0"
- hermes-profile-transformer "^0.0.6"
- ip "^1.1.5"
-
-"@react-native-community/cli-platform-android@^5.0.1", "@react-native-community/cli-platform-android@^5.0.1-alpha.0":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-5.0.1.tgz#7f761e1818e5a099877ec59a1b739553fd6a6905"
- integrity sha512-qv9GJX6BJ+Y4qvV34vgxKwwN1cnveXUdP6y2YmTW7XoAYs5YUzKqHajpY58EyucAL2y++6+573t5y4U/9IIoww==
- dependencies:
- "@react-native-community/cli-tools" "^5.0.1"
- chalk "^3.0.0"
- execa "^1.0.0"
- fs-extra "^8.1.0"
- glob "^7.1.3"
- jetifier "^1.6.2"
- lodash "^4.17.15"
- logkitty "^0.7.1"
- slash "^3.0.0"
- xmldoc "^1.1.2"
-
-"@react-native-community/cli-platform-ios@^5.0.1-alpha.0":
- version "5.0.2"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-5.0.2.tgz#62485534053c0dad28a67de188248de177f4b0fb"
- integrity sha512-IAJ2B3j2BTsQUJZ4R6cVvnTbPq0Vza7+dOgP81ISz2BKRtQ0VqNFv+VOALH2jLaDzf4t7NFlskzIXFqWqy2BLg==
- dependencies:
- "@react-native-community/cli-tools" "^5.0.1"
- chalk "^3.0.0"
- glob "^7.1.3"
- js-yaml "^3.13.1"
- lodash "^4.17.15"
- plist "^3.0.1"
- xcode "^2.0.0"
-
-"@react-native-community/cli-server-api@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-5.0.1.tgz#3cf92dac766fab766afedf77df3fe4d5f51e4d2b"
- integrity sha512-OOxL+y9AOZayQzmSW+h5T54wQe+QBc/f67Y9QlWzzJhkKJdYx+S4VOooHoD5PFJzGbYaxhu2YF17p517pcEIIA==
- dependencies:
- "@react-native-community/cli-debugger-ui" "^5.0.1"
- "@react-native-community/cli-tools" "^5.0.1"
- compression "^1.7.1"
- connect "^3.6.5"
- errorhandler "^1.5.0"
- nocache "^2.1.0"
- pretty-format "^26.6.2"
- serve-static "^1.13.1"
- ws "^1.1.0"
-
-"@react-native-community/cli-tools@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-5.0.1.tgz#9ee564dbe20448becd6bce9fbea1b59aa5797919"
- integrity sha512-XOX5w98oSE8+KnkMZZPMRT7I5TaP8fLbDl0tCu40S7Epz+Zz924n80fmdu6nUDIfPT1nV6yH1hmHmWAWTDOR+Q==
- dependencies:
- chalk "^3.0.0"
- lodash "^4.17.15"
- mime "^2.4.1"
- node-fetch "^2.6.0"
- open "^6.2.0"
- shell-quote "1.6.1"
-
-"@react-native-community/cli-types@^5.0.1":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-5.0.1.tgz#8c5db4011988b0836d27a5efe230cb34890915dc"
- integrity sha512-BesXnuFFlU/d1F3+sHhvKt8fUxbQlAbZ3hhMEImp9A6sopl8TEtryUGJ1dbazGjRXcADutxvjwT/i3LJVTIQug==
- dependencies:
- ora "^3.4.0"
-
-"@react-native-community/cli@^5.0.1-alpha.0":
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-5.0.1.tgz#1f7a66d813d5daf102e593f3c550650fa0cc8314"
- integrity sha512-9VzSYUYSEqxEH5Ib2UNSdn2eyPiYZ4T7Y79o9DKtRBuSaUIwbCUdZtIm+UUjBpLS1XYBkW26FqL8/UdZDmQvXw==
- dependencies:
- "@react-native-community/cli-debugger-ui" "^5.0.1"
- "@react-native-community/cli-hermes" "^5.0.1"
- "@react-native-community/cli-server-api" "^5.0.1"
- "@react-native-community/cli-tools" "^5.0.1"
- "@react-native-community/cli-types" "^5.0.1"
- appdirsjs "^1.2.4"
- chalk "^3.0.0"
- command-exists "^1.2.8"
- commander "^2.19.0"
- cosmiconfig "^5.1.0"
- deepmerge "^3.2.0"
- envinfo "^7.7.2"
- execa "^1.0.0"
- find-up "^4.1.0"
- fs-extra "^8.1.0"
- glob "^7.1.3"
- graceful-fs "^4.1.3"
- joi "^17.2.1"
- leven "^3.1.0"
- lodash "^4.17.15"
- metro "^0.64.0"
- metro-config "^0.64.0"
- metro-core "^0.64.0"
- metro-react-native-babel-transformer "^0.64.0"
- metro-resolver "^0.64.0"
- metro-runtime "^0.64.0"
- minimist "^1.2.0"
- mkdirp "^0.5.1"
- node-stream-zip "^1.9.1"
- ora "^3.4.0"
- pretty-format "^26.6.2"
- prompts "^2.4.0"
- semver "^6.3.0"
- serve-static "^1.13.1"
- strip-ansi "^5.2.0"
- sudo-prompt "^9.0.0"
- wcwidth "^1.0.1"
-
-"@react-native-community/eslint-config@^1.1.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-1.1.0.tgz#2dacad06dd44d13e778510864473fc6091f080c0"
- integrity sha512-hwb1hC28BhkwLwnO6vDISV6XZbipw2RIEhBVBN+pE7AUG9HjFXxoksiiOSoYgox9C8g86VJwHnKpak/3NnVBkQ==
- dependencies:
- "@react-native-community/eslint-plugin" "^1.1.0"
- "@typescript-eslint/eslint-plugin" "^2.25.0"
- "@typescript-eslint/parser" "^2.25.0"
- babel-eslint "10.1.0"
- eslint-config-prettier "^6.10.1"
- eslint-plugin-eslint-comments "^3.1.2"
- eslint-plugin-flowtype "2.50.3"
- eslint-plugin-jest "22.4.1"
- eslint-plugin-prettier "3.1.2"
- eslint-plugin-react "7.19.0"
- eslint-plugin-react-hooks "^3.0.0"
- eslint-plugin-react-native "3.8.1"
- prettier "^2.0.2"
-
-"@react-native-community/eslint-plugin@^1.1.0":
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/@react-native-community/eslint-plugin/-/eslint-plugin-1.3.0.tgz#9e558170c106bbafaa1ef502bd8e6d4651012bf9"
- integrity sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg==
-
-"@react-native/assets@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
- integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
-
-"@react-native/normalize-color@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-1.0.0.tgz#c52a99d4fe01049102d47dc45d40cbde4f720ab6"
- integrity sha512-xUNRvNmCl3UGCPbbHvfyFMnpvLPoOjDCcp5bT9m2k+TF/ZBklEQwhPZlkrxRx2NhgFh1X3a5uL7mJ7ZR+8G7Qg==
-
-"@react-native/polyfills@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-1.0.0.tgz#05bb0031533598f9458cf65a502b8df0eecae780"
- integrity sha512-0jbp4RxjYopTsIdLl+/Fy2TiwVYHy4mgeu07DG4b/LyM0OS/+lPP5c9sbnt/AMlnF6qz2JRZpPpGw1eMNS6A4w==
-
-"@sideway/address@^4.1.3":
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0"
- integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw==
- dependencies:
- "@hapi/hoek" "^9.0.0"
-
-"@sideway/formula@^3.0.0":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.0.tgz#fe158aee32e6bd5de85044be615bc08478a0a13c"
- integrity sha512-vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==
-
-"@sideway/pinpoint@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
- integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
-
-"@sinonjs/commons@^1.7.0":
- version "1.8.6"
- resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9"
- integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==
- dependencies:
- type-detect "4.0.8"
-
-"@types/babel__core@^7.1.7":
- version "7.1.20"
- resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359"
- integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
- "@types/babel__generator" "*"
- "@types/babel__template" "*"
- "@types/babel__traverse" "*"
-
-"@types/babel__generator@*":
- version "7.6.4"
- resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7"
- integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==
- dependencies:
- "@babel/types" "^7.0.0"
-
-"@types/babel__template@*":
- version "7.4.1"
- resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969"
- integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==
- dependencies:
- "@babel/parser" "^7.1.0"
- "@babel/types" "^7.0.0"
-
-"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6":
- version "7.18.3"
- resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d"
- integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==
- dependencies:
- "@babel/types" "^7.3.0"
-
-"@types/eslint-visitor-keys@^1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d"
- integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==
-
-"@types/graceful-fs@^4.1.2":
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15"
- integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==
- dependencies:
- "@types/node" "*"
-
-"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1":
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
- integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
-
-"@types/istanbul-lib-report@*":
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686"
- integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==
- dependencies:
- "@types/istanbul-lib-coverage" "*"
-
-"@types/istanbul-reports@^1.1.1":
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz#e875cc689e47bce549ec81f3df5e6f6f11cfaeb2"
- integrity sha512-P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==
- dependencies:
- "@types/istanbul-lib-coverage" "*"
- "@types/istanbul-lib-report" "*"
-
-"@types/istanbul-reports@^3.0.0":
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff"
- integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==
- dependencies:
- "@types/istanbul-lib-report" "*"
-
-"@types/jest@^25.2.3":
- version "25.2.3"
- resolved "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.3.tgz#33d27e4c4716caae4eced355097a47ad363fdcaf"
- integrity sha512-JXc1nK/tXHiDhV55dvfzqtmP4S3sy3T3ouV2tkViZgxY/zeUkcpQcQPGRlgF4KmWzWW5oiWYSZwtCB+2RsE4Fw==
- dependencies:
- jest-diff "^25.2.1"
- pretty-format "^25.2.1"
-
-"@types/json-schema@^7.0.3":
- version "7.0.11"
- resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
- integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
-
-"@types/node@*":
- version "18.11.10"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34"
- integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ==
-
-"@types/normalize-package-data@^2.4.0":
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301"
- integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==
-
-"@types/prettier@^1.19.0":
- version "1.19.1"
- resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-1.19.1.tgz#33509849f8e679e4add158959fdb086440e9553f"
- integrity sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ==
-
-"@types/prop-types@*":
- version "15.7.5"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
- integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
-
-"@types/react-native@^0.63.2":
- version "0.63.66"
- resolved "https://registry.yarnpkg.com/@types/react-native/-/react-native-0.63.66.tgz#5fefc4264d5dc52d5566c9be07edb43d5cb978c9"
- integrity sha512-YXW2LRPa6Fbv1/tmEbBml59pozewWg6xbf99eAeP1nX9GqB46jyGeZOe0CaeaHL+R4Y2sWzj5QlT+nPNURH69w==
- dependencies:
- "@types/react" "^16"
-
-"@types/react-test-renderer@^16.9.2":
- version "16.9.5"
- resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-16.9.5.tgz#edab67da470f7c3e997f58d55dcfe2643cc30a68"
- integrity sha512-C4cN7C2uSSGOYelp2XfdtJb5TsCP+QiZ+0Bm4U3ZfUswN8oN9O/l86XO/OvBSFCmWY7w75fzsQvZ50eGkFN34A==
- dependencies:
- "@types/react" "^16"
-
-"@types/react@^16":
- version "16.14.34"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-16.14.34.tgz#d129324ffda312044e1c47aab18696e4ed493282"
- integrity sha512-b99nWeGGReLh6aKBppghVqp93dFJtgtDOzc8NXM6hewD8PQ2zZG5kBLgbx+VJr7Q7WBMjHxaIl3dwpwwPIUgyA==
- dependencies:
- "@types/prop-types" "*"
- "@types/scheduler" "*"
- csstype "^3.0.2"
-
-"@types/scheduler@*":
- version "0.16.2"
- resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
- integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
-
-"@types/stack-utils@^1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e"
- integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==
-
-"@types/yargs-parser@*":
- version "21.0.0"
- resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b"
- integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==
-
-"@types/yargs@^15.0.0":
- version "15.0.14"
- resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06"
- integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ==
- dependencies:
- "@types/yargs-parser" "*"
-
-"@typescript-eslint/eslint-plugin@^2.25.0", "@typescript-eslint/eslint-plugin@^2.27.0":
- version "2.34.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz#6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9"
- integrity sha512-4zY3Z88rEE99+CNvTbXSyovv2z9PNOVffTWD2W8QF5s2prBQtwN2zadqERcrHpcR7O/+KMI3fcTAmUUhK/iQcQ==
- dependencies:
- "@typescript-eslint/experimental-utils" "2.34.0"
- functional-red-black-tree "^1.0.1"
- regexpp "^3.0.0"
- tsutils "^3.17.1"
-
-"@typescript-eslint/experimental-utils@2.34.0":
- version "2.34.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz#d3524b644cdb40eebceca67f8cf3e4cc9c8f980f"
- integrity sha512-eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==
- dependencies:
- "@types/json-schema" "^7.0.3"
- "@typescript-eslint/typescript-estree" "2.34.0"
- eslint-scope "^5.0.0"
- eslint-utils "^2.0.0"
-
-"@typescript-eslint/parser@^2.25.0", "@typescript-eslint/parser@^2.27.0":
- version "2.34.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz#50252630ca319685420e9a39ca05fe185a256bc8"
- integrity sha512-03ilO0ucSD0EPTw2X4PntSIRFtDPWjrVq7C3/Z3VQHRC7+13YB55rcJI3Jt+YgeHbjUdJPcPa7b23rXCBokuyA==
- dependencies:
- "@types/eslint-visitor-keys" "^1.0.0"
- "@typescript-eslint/experimental-utils" "2.34.0"
- "@typescript-eslint/typescript-estree" "2.34.0"
- eslint-visitor-keys "^1.1.0"
-
-"@typescript-eslint/typescript-estree@2.34.0":
- version "2.34.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz#14aeb6353b39ef0732cc7f1b8285294937cf37d5"
- integrity sha512-OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==
- dependencies:
- debug "^4.1.1"
- eslint-visitor-keys "^1.1.0"
- glob "^7.1.6"
- is-glob "^4.0.1"
- lodash "^4.17.15"
- semver "^7.3.2"
- tsutils "^3.17.1"
-
-abab@^2.0.0:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
- integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
-
-abort-controller@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
- integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
- dependencies:
- event-target-shim "^5.0.0"
-
-absolute-path@^0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7"
- integrity sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA==
-
-accepts@^1.3.7, accepts@~1.3.5, accepts@~1.3.7:
- version "1.3.8"
- resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
- integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==
- dependencies:
- mime-types "~2.1.34"
- negotiator "0.6.3"
-
-acorn-globals@^4.3.2:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7"
- integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==
- dependencies:
- acorn "^6.0.1"
- acorn-walk "^6.0.1"
-
-acorn-jsx@^5.2.0:
- version "5.3.2"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
- integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-
-acorn-walk@^6.0.1:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c"
- integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==
-
-acorn@^6.0.1:
- version "6.4.2"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
- integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
-
-acorn@^7.1.0, acorn@^7.1.1:
- version "7.4.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
- integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-
-ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3:
- version "6.12.6"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
- integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
- dependencies:
- fast-deep-equal "^3.1.1"
- fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.4.1"
- uri-js "^4.2.2"
-
-anser@^1.4.9:
- version "1.4.10"
- resolved "https://registry.yarnpkg.com/anser/-/anser-1.4.10.tgz#befa3eddf282684bd03b63dcda3927aef8c2e35b"
- integrity sha512-hCv9AqTQ8ycjpSd3upOJd7vFwW1JaoYQ7tpham03GJ1ca8/65rqn0RpaWpItOAd6ylW9wAw6luXYPJIyPFVOww==
-
-ansi-escapes@^4.2.1:
- version "4.3.2"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
- integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
- dependencies:
- type-fest "^0.21.3"
-
-ansi-fragments@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/ansi-fragments/-/ansi-fragments-0.2.1.tgz#24409c56c4cc37817c3d7caa99d8969e2de5a05e"
- integrity sha512-DykbNHxuXQwUDRv5ibc2b0x7uw7wmwOGLBUd5RmaQ5z8Lhx19vwvKV+FAsM5rEA6dEcHxX+/Ad5s9eF2k2bB+w==
- dependencies:
- colorette "^1.0.7"
- slice-ansi "^2.0.0"
- strip-ansi "^5.0.0"
-
-ansi-regex@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed"
- integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==
-
-ansi-regex@^5.0.0, ansi-regex@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
- integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
-
-ansi-styles@^3.2.0, ansi-styles@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
- integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
- dependencies:
- color-convert "^1.9.0"
-
-ansi-styles@^4.0.0, ansi-styles@^4.1.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
- integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
- dependencies:
- color-convert "^2.0.1"
-
-anymatch@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
- integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
- dependencies:
- micromatch "^3.1.4"
- normalize-path "^2.1.1"
-
-anymatch@^3.0.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
- integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
- dependencies:
- normalize-path "^3.0.0"
- picomatch "^2.0.4"
-
-appdirsjs@^1.2.4:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/appdirsjs/-/appdirsjs-1.2.7.tgz#50b4b7948a26ba6090d4aede2ae2dc2b051be3b3"
- integrity sha512-Quji6+8kLBC3NnBeo14nPDq0+2jUs5s3/xEye+udFHumHhRk4M7aAMXp/PBJqkKYGuuyR9M/6Dq7d2AViiGmhw==
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
-arr-diff@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
- integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==
-
-arr-flatten@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
- integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-union@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
- integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==
-
-array-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93"
- integrity sha512-H3LU5RLiSsGXPhN+Nipar0iR0IofH+8r89G2y1tBKxQ/agagKyAjhkAFDRBfodP2caPrNKHpAWNIM/c9yeL7uA==
-
-array-filter@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec"
- integrity sha512-VW0FpCIhjZdarWjIz8Vpva7U95fl2Jn+b+mmFFMLn8PIVscOQcAgEznwUzTEuUHuqZqIxwzRlcaN/urTFFQoiw==
-
-array-includes@^3.1.1:
- version "3.1.6"
- resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f"
- integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- get-intrinsic "^1.1.3"
- is-string "^1.0.7"
-
-array-map@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.1.tgz#d1bf3cc8813a7daaa335e5c8eb21d9d06230c1a7"
- integrity sha512-sxHIeJTGEsRC8/hYkZzdJNNPZ41EXHVys7pqMw1iwE/Kx8/hto0UbDuGQsSJ0ujPovj9qUZl6EOY/EiZ2g3d9Q==
-
-array-reduce@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b"
- integrity sha512-8jR+StqaC636u7h3ye1co3lQRefgVVUQUhuAmRbDqIMeR2yuXzRvkCNQiQ5J/wbREmoBLNtp13dhaaVpZQDRUw==
-
-array-unique@^0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
- integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==
-
-asap@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46"
- integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==
-
-asn1@~0.2.3:
- version "0.2.6"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d"
- integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==
- dependencies:
- safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
- integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
-
-assign-symbols@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
- integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==
-
-ast-types@0.14.2:
- version "0.14.2"
- resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.14.2.tgz#600b882df8583e3cd4f2df5fa20fa83759d4bdfd"
- integrity sha512-O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==
- dependencies:
- tslib "^2.0.1"
-
-astral-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
- integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
-
-async-limiter@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
- integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
-
-async@^2.4.0:
- version "2.6.4"
- resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
- integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
- dependencies:
- lodash "^4.17.14"
-
-asynckit@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
- integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
-
-atob@^2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
- integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-
-aws-sign2@~0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
- integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==
-
-aws4@^1.8.0:
- version "1.11.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
- integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
-
-babel-core@^7.0.0-bridge.0:
- version "7.0.0-bridge.0"
- resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece"
- integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==
-
-babel-eslint@10.1.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232"
- integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/parser" "^7.7.0"
- "@babel/traverse" "^7.7.0"
- "@babel/types" "^7.7.0"
- eslint-visitor-keys "^1.0.0"
- resolve "^1.12.0"
-
-babel-jest@^25.1.0, babel-jest@^25.5.1:
- version "25.5.1"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-25.5.1.tgz#bc2e6101f849d6f6aec09720ffc7bc5332e62853"
- integrity sha512-9dA9+GmMjIzgPnYtkhBg73gOo/RHqPmLruP3BaGL4KEX3Dwz6pI8auSN8G8+iuEG90+GSswyKvslN+JYSaacaQ==
- dependencies:
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
- "@types/babel__core" "^7.1.7"
- babel-plugin-istanbul "^6.0.0"
- babel-preset-jest "^25.5.0"
- chalk "^3.0.0"
- graceful-fs "^4.2.4"
- slash "^3.0.0"
-
-babel-plugin-istanbul@^6.0.0:
- version "6.1.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz#fa88ec59232fd9b4e36dbbc540a8ec9a9b47da73"
- integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.0.0"
- "@istanbuljs/load-nyc-config" "^1.0.0"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-instrument "^5.0.4"
- test-exclude "^6.0.0"
-
-babel-plugin-jest-hoist@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-25.5.0.tgz#129c80ba5c7fc75baf3a45b93e2e372d57ca2677"
- integrity sha512-u+/W+WAjMlvoocYGTwthAiQSxDcJAyHpQ6oWlHdFZaaN+Rlk8Q7iiwDPg2lN/FyJtAYnKjFxbn7xus4HCFkg5g==
- dependencies:
- "@babel/template" "^7.3.3"
- "@babel/types" "^7.3.3"
- "@types/babel__traverse" "^7.0.6"
-
-babel-plugin-polyfill-corejs2@^0.3.3:
- version "0.3.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
- integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
- dependencies:
- "@babel/compat-data" "^7.17.7"
- "@babel/helper-define-polyfill-provider" "^0.3.3"
- semver "^6.1.1"
-
-babel-plugin-polyfill-corejs3@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
- integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
- dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.3"
- core-js-compat "^3.25.1"
-
-babel-plugin-polyfill-regenerator@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
- integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
- dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.3"
-
-babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0:
- version "7.0.0-beta.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf"
- integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==
-
-babel-preset-current-node-syntax@^0.1.2:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.4.tgz#826f1f8e7245ad534714ba001f84f7e906c3b615"
- integrity sha512-5/INNCYhUGqw7VbVjT/hb3ucjgkVHKXY7lX3ZjlN4gm565VyFmJUrJ/h+h16ECVB38R/9SF6aACydpKMLZ/c9w==
- dependencies:
- "@babel/plugin-syntax-async-generators" "^7.8.4"
- "@babel/plugin-syntax-bigint" "^7.8.3"
- "@babel/plugin-syntax-class-properties" "^7.8.3"
- "@babel/plugin-syntax-import-meta" "^7.8.3"
- "@babel/plugin-syntax-json-strings" "^7.8.3"
- "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
- "@babel/plugin-syntax-numeric-separator" "^7.8.3"
- "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
- "@babel/plugin-syntax-optional-chaining" "^7.8.3"
-
-babel-preset-fbjs@^3.3.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz#38a14e5a7a3b285a3f3a86552d650dca5cf6111c"
- integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==
- dependencies:
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-syntax-class-properties" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.0.0"
- "@babel/plugin-syntax-jsx" "^7.0.0"
- "@babel/plugin-syntax-object-rest-spread" "^7.0.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoped-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-for-of" "^7.0.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-member-expression-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-object-super" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-property-literals" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-template-literals" "^7.0.0"
- babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0"
-
-babel-preset-jest@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-25.5.0.tgz#c1d7f191829487a907764c65307faa0e66590b49"
- integrity sha512-8ZczygctQkBU+63DtSOKGh7tFL0CeCuz+1ieud9lJ1WPQ9O6A1a/r+LGn6Y705PA6whHQ3T1XuB/PmpfNYf8Fw==
- dependencies:
- babel-plugin-jest-hoist "^25.5.0"
- babel-preset-current-node-syntax "^0.1.2"
-
-balanced-match@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
- integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
-
-base64-js@^1.1.2, base64-js@^1.5.1:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
- integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-
-base@^0.11.1:
- version "0.11.2"
- resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
- integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
- dependencies:
- cache-base "^1.0.1"
- class-utils "^0.3.5"
- component-emitter "^1.2.1"
- define-property "^1.0.0"
- isobject "^3.0.1"
- mixin-deep "^1.2.0"
- pascalcase "^0.1.1"
-
-bcrypt-pbkdf@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
- integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==
- dependencies:
- tweetnacl "^0.14.3"
-
-big-integer@1.6.x:
- version "1.6.51"
- resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
- integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
-
-bplist-creator@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/bplist-creator/-/bplist-creator-0.1.0.tgz#018a2d1b587f769e379ef5519103730f8963ba1e"
- integrity sha512-sXaHZicyEEmY86WyueLTQesbeoH/mquvarJaQNbjuOQO+7gbFcDEWqKmcWA4cOTLzFlfgvkiVxolk1k5bBIpmg==
- dependencies:
- stream-buffers "2.2.x"
-
-bplist-parser@0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.3.1.tgz#e1c90b2ca2a9f9474cc72f6862bbf3fee8341fd1"
- integrity sha512-PyJxiNtA5T2PlLIeBot4lbp7rj4OadzjnMZD/G5zuBNt8ei/yCU7+wW0h2bag9vr8c+/WuRWmSxbqAl9hL1rBA==
- dependencies:
- big-integer "1.6.x"
-
-brace-expansion@^1.1.7:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
- integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
- dependencies:
- balanced-match "^1.0.0"
- concat-map "0.0.1"
-
-braces@^2.3.1:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
- integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
- dependencies:
- arr-flatten "^1.1.0"
- array-unique "^0.3.2"
- extend-shallow "^2.0.1"
- fill-range "^4.0.0"
- isobject "^3.0.1"
- repeat-element "^1.1.2"
- snapdragon "^0.8.1"
- snapdragon-node "^2.0.1"
- split-string "^3.0.2"
- to-regex "^3.0.1"
-
-braces@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
- integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
- dependencies:
- fill-range "^7.0.1"
-
-browser-process-hrtime@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
- integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
-
-browser-resolve@^1.11.3:
- version "1.11.3"
- resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6"
- integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==
- dependencies:
- resolve "1.1.7"
-
-browserslist@^4.21.3, browserslist@^4.21.4:
- version "4.21.4"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
- integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
- dependencies:
- caniuse-lite "^1.0.30001400"
- electron-to-chromium "^1.4.251"
- node-releases "^2.0.6"
- update-browserslist-db "^1.0.9"
-
-bser@2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
- integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==
- dependencies:
- node-int64 "^0.4.0"
-
-buffer-from@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
- integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
-
-bytes@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
- integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==
-
-cache-base@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
- integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
- dependencies:
- collection-visit "^1.0.0"
- component-emitter "^1.2.1"
- get-value "^2.0.6"
- has-value "^1.0.0"
- isobject "^3.0.1"
- set-value "^2.0.0"
- to-object-path "^0.3.0"
- union-value "^1.0.0"
- unset-value "^1.0.0"
-
-call-bind@^1.0.0, call-bind@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
- integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
- dependencies:
- function-bind "^1.1.1"
- get-intrinsic "^1.0.2"
-
-caller-callsite@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
- integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ==
- dependencies:
- callsites "^2.0.0"
-
-caller-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
- integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A==
- dependencies:
- caller-callsite "^2.0.0"
-
-callsites@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
- integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ==
-
-callsites@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
- integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-
-camelcase@^5.0.0, camelcase@^5.3.1:
- version "5.3.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
- integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-camelcase@^6.0.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
- integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
-
-caniuse-lite@^1.0.30001400:
- version "1.0.30001435"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001435.tgz#502c93dbd2f493bee73a408fe98e98fb1dad10b2"
- integrity sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA==
-
-capture-exit@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4"
- integrity sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==
- dependencies:
- rsvp "^4.8.4"
-
-caseless@~0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
- integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==
-
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
- integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
- dependencies:
- ansi-styles "^3.2.1"
- escape-string-regexp "^1.0.5"
- supports-color "^5.3.0"
-
-chalk@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
- integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-chalk@^4.0.0, chalk@^4.1.0:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
- integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
- dependencies:
- ansi-styles "^4.1.0"
- supports-color "^7.1.0"
-
-chardet@^0.7.0:
- version "0.7.0"
- resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
- integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
-
-ci-info@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
- integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
-
-class-utils@^0.3.5:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
- integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
- dependencies:
- arr-union "^3.1.0"
- define-property "^0.2.5"
- isobject "^3.0.0"
- static-extend "^0.1.1"
-
-cli-cursor@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
- integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==
- dependencies:
- restore-cursor "^2.0.0"
-
-cli-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307"
- integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==
- dependencies:
- restore-cursor "^3.1.0"
-
-cli-spinners@^2.0.0:
- version "2.7.0"
- resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.7.0.tgz#f815fd30b5f9eaac02db604c7a231ed7cb2f797a"
- integrity sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==
-
-cli-width@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6"
- integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==
-
-cliui@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
- integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
- dependencies:
- string-width "^4.2.0"
- strip-ansi "^6.0.0"
- wrap-ansi "^6.2.0"
-
-clone-deep@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
- integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==
- dependencies:
- is-plain-object "^2.0.4"
- kind-of "^6.0.2"
- shallow-clone "^3.0.0"
-
-clone@^1.0.2:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
- integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
-
-collect-v8-coverage@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
- integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==
-
-collection-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
- integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==
- dependencies:
- map-visit "^1.0.0"
- object-visit "^1.0.0"
-
-color-convert@^1.9.0:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
- integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
- dependencies:
- color-name "1.1.3"
-
-color-convert@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
- integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
- dependencies:
- color-name "~1.1.4"
-
-color-name@1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
- integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
-
-color-name@~1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
- integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-colorette@^1.0.7:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40"
- integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==
-
-colors@^1.1.2:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
- integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
-
-combined-stream@^1.0.6, combined-stream@~1.0.6:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
- integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
- dependencies:
- delayed-stream "~1.0.0"
-
-command-exists@^1.2.8:
- version "1.2.9"
- resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69"
- integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==
-
-commander@^2.19.0:
- version "2.20.3"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
- integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
-commander@~2.13.0:
- version "2.13.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c"
- integrity sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==
-
-commondir@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
- integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
-
-component-emitter@^1.2.1:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
- integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-compressible@~2.0.16:
- version "2.0.18"
- resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba"
- integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==
- dependencies:
- mime-db ">= 1.43.0 < 2"
-
-compression@^1.7.1:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
- integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
- dependencies:
- accepts "~1.3.5"
- bytes "3.0.0"
- compressible "~2.0.16"
- debug "2.6.9"
- on-headers "~1.0.2"
- safe-buffer "5.1.2"
- vary "~1.1.2"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
- integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-
-connect@^3.6.5:
- version "3.7.0"
- resolved "https://registry.yarnpkg.com/connect/-/connect-3.7.0.tgz#5d49348910caa5e07a01800b030d0c35f20484f8"
- integrity sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==
- dependencies:
- debug "2.6.9"
- finalhandler "1.1.2"
- parseurl "~1.3.3"
- utils-merge "1.0.1"
-
-convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
- integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
-
-copy-descriptor@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
- integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==
-
-core-js-compat@^3.25.1:
- version "3.26.1"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.1.tgz#0e710b09ebf689d719545ac36e49041850f943df"
- integrity sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==
- dependencies:
- browserslist "^4.21.4"
-
-core-js-pure@^3.25.1:
- version "3.26.1"
- resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.26.1.tgz#653f4d7130c427820dcecd3168b594e8bb095a33"
- integrity sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==
-
-core-util-is@1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
- integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==
-
-core-util-is@~1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
- integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
-
-cosmiconfig@^5.0.5, cosmiconfig@^5.1.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
- integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
- dependencies:
- import-fresh "^2.0.0"
- is-directory "^0.3.1"
- js-yaml "^3.13.1"
- parse-json "^4.0.0"
-
-cross-spawn@^6.0.0, cross-spawn@^6.0.5:
- version "6.0.5"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
- integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
- dependencies:
- nice-try "^1.0.4"
- path-key "^2.0.1"
- semver "^5.5.0"
- shebang-command "^1.2.0"
- which "^1.2.9"
-
-cross-spawn@^7.0.0:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
- integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
- dependencies:
- path-key "^3.1.0"
- shebang-command "^2.0.0"
- which "^2.0.1"
-
-cssom@^0.4.1:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
- integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==
-
-cssom@~0.3.6:
- version "0.3.8"
- resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
- integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
-
-cssstyle@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
- integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
- dependencies:
- cssom "~0.3.6"
-
-csstype@^3.0.2:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9"
- integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==
-
-dashdash@^1.12.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
- integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==
- dependencies:
- assert-plus "^1.0.0"
-
-data-urls@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe"
- integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==
- dependencies:
- abab "^2.0.0"
- whatwg-mimetype "^2.2.0"
- whatwg-url "^7.0.0"
-
-dayjs@^1.8.15:
- version "1.11.6"
- resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb"
- integrity sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==
-
-debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
- version "2.6.9"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
- integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
- dependencies:
- ms "2.0.0"
-
-debug@^4.0.1, debug@^4.1.0, debug@^4.1.1:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
- integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
- dependencies:
- ms "2.1.2"
-
-decamelize@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
- integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
-
-decode-uri-component@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
- integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==
-
-deep-is@~0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
- integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
-
-deepmerge@^3.2.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7"
- integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==
-
-deepmerge@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
- integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
-
-defaults@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a"
- integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==
- dependencies:
- clone "^1.0.2"
-
-define-properties@^1.1.3, define-properties@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1"
- integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
- dependencies:
- has-property-descriptors "^1.0.0"
- object-keys "^1.1.1"
-
-define-property@^0.2.5:
- version "0.2.5"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
- integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==
- dependencies:
- is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
- integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==
- dependencies:
- is-descriptor "^1.0.0"
-
-define-property@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
- integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
- dependencies:
- is-descriptor "^1.0.2"
- isobject "^3.0.1"
-
-delayed-stream@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
- integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
-
-denodeify@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631"
- integrity sha512-KNTihKNmQENUZeKu5fzfpzRqR5S2VMp4gl9RFHiWzj9DfvYQPMJ6XHKNaQxaGCXwPk6y9yme3aUoaiAe+KX+vg==
-
-depd@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
- integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==
-
-destroy@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
- integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==
-
-detect-newline@^3.0.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==
-
-diff-sequences@^25.2.6:
- version "25.2.6"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd"
- integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==
-
-doctrine@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
- integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==
- dependencies:
- esutils "^2.0.2"
-
-doctrine@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
- integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
- dependencies:
- esutils "^2.0.2"
-
-domexception@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90"
- integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==
- dependencies:
- webidl-conversions "^4.0.2"
-
-ecc-jsbn@~0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
- integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==
- dependencies:
- jsbn "~0.1.0"
- safer-buffer "^2.1.0"
-
-ee-first@1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
- integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
-
-electron-to-chromium@^1.4.251:
- version "1.4.284"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592"
- integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==
-
-emoji-regex@^7.0.1:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
- integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
-emoji-regex@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
- integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
-
-encodeurl@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
- integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
-
-end-of-stream@^1.1.0:
- version "1.4.4"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
- integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
- dependencies:
- once "^1.4.0"
-
-envinfo@^7.7.2:
- version "7.8.1"
- resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475"
- integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==
-
-error-ex@^1.3.1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
-
-error-stack-parser@^2.0.6:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286"
- integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==
- dependencies:
- stackframe "^1.3.4"
-
-errorhandler@^1.5.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91"
- integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==
- dependencies:
- accepts "~1.3.7"
- escape-html "~1.0.3"
-
-es-abstract@^1.19.0, es-abstract@^1.20.4:
- version "1.20.4"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
- integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
- dependencies:
- call-bind "^1.0.2"
- es-to-primitive "^1.2.1"
- function-bind "^1.1.1"
- function.prototype.name "^1.1.5"
- get-intrinsic "^1.1.3"
- get-symbol-description "^1.0.0"
- has "^1.0.3"
- has-property-descriptors "^1.0.0"
- has-symbols "^1.0.3"
- internal-slot "^1.0.3"
- is-callable "^1.2.7"
- is-negative-zero "^2.0.2"
- is-regex "^1.1.4"
- is-shared-array-buffer "^1.0.2"
- is-string "^1.0.7"
- is-weakref "^1.0.2"
- object-inspect "^1.12.2"
- object-keys "^1.1.1"
- object.assign "^4.1.4"
- regexp.prototype.flags "^1.4.3"
- safe-regex-test "^1.0.0"
- string.prototype.trimend "^1.0.5"
- string.prototype.trimstart "^1.0.5"
- unbox-primitive "^1.0.2"
-
-es-to-primitive@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
- integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
- dependencies:
- is-callable "^1.1.4"
- is-date-object "^1.0.1"
- is-symbol "^1.0.2"
-
-escalade@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
- integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-
-escape-html@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
- integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==
-
-escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
- integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
-
-escape-string-regexp@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344"
- integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==
-
-escodegen@^1.11.1:
- version "1.14.3"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503"
- integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==
- dependencies:
- esprima "^4.0.1"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.6.1"
-
-eslint-config-prettier@^6.10.1:
- version "6.15.0"
- resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.15.0.tgz#7f93f6cb7d45a92f1537a70ecc06366e1ac6fed9"
- integrity sha512-a1+kOYLR8wMGustcgAjdydMsQ2A/2ipRPwRKUmfYaSxc9ZPcrku080Ctl6zrZzZNs/U82MjSv+qKREkoq3bJaw==
- dependencies:
- get-stdin "^6.0.0"
-
-eslint-plugin-eslint-comments@^3.1.2:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-eslint-comments/-/eslint-plugin-eslint-comments-3.2.0.tgz#9e1cd7b4413526abb313933071d7aba05ca12ffa"
- integrity sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==
- dependencies:
- escape-string-regexp "^1.0.5"
- ignore "^5.0.5"
-
-eslint-plugin-flowtype@2.50.3:
- version "2.50.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.3.tgz#61379d6dce1d010370acd6681740fd913d68175f"
- integrity sha512-X+AoKVOr7Re0ko/yEXyM5SSZ0tazc6ffdIOocp2fFUlWoDt7DV0Bz99mngOkAFLOAWjqRA5jPwqUCbrx13XoxQ==
- dependencies:
- lodash "^4.17.10"
-
-eslint-plugin-jest@22.4.1:
- version "22.4.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz#a5fd6f7a2a41388d16f527073b778013c5189a9c"
- integrity sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==
-
-eslint-plugin-prettier@3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba"
- integrity sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==
- dependencies:
- prettier-linter-helpers "^1.0.0"
-
-eslint-plugin-react-hooks@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-3.0.0.tgz#9e80c71846eb68dd29c3b21d832728aa66e5bd35"
- integrity sha512-EjxTHxjLKIBWFgDJdhKKzLh5q+vjTFrqNZX36uIxWS4OfyXe5DawqPj3U5qeJ1ngLwatjzQnmR0Lz0J0YH3kxw==
-
-eslint-plugin-react-native-globals@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz#ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2"
- integrity sha512-9aEPf1JEpiTjcFAmmyw8eiIXmcNZOqaZyHO77wgm0/dWfT/oxC1SrIq8ET38pMxHYrcB6Uew+TzUVsBeczF88g==
-
-eslint-plugin-react-native@3.8.1:
- version "3.8.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.8.1.tgz#92811e37191ecb0d29c0f0a0c9e5c943ee573821"
- integrity sha512-6Z4s4nvgFRdda/1s1+uu4a6EMZwEjjJ9Bk/1yBImv0fd9U2CsGu2cUakAtV83cZKhizbWhSouXoaK4JtlScdFg==
- dependencies:
- eslint-plugin-react-native-globals "^0.1.1"
-
-eslint-plugin-react@7.19.0:
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666"
- integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==
- dependencies:
- array-includes "^3.1.1"
- doctrine "^2.1.0"
- has "^1.0.3"
- jsx-ast-utils "^2.2.3"
- object.entries "^1.1.1"
- object.fromentries "^2.0.2"
- object.values "^1.1.1"
- prop-types "^15.7.2"
- resolve "^1.15.1"
- semver "^6.3.0"
- string.prototype.matchall "^4.0.2"
- xregexp "^4.3.0"
-
-eslint-scope@^5.0.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
- integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
- dependencies:
- esrecurse "^4.3.0"
- estraverse "^4.1.1"
-
-eslint-utils@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
- integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==
- dependencies:
- eslint-visitor-keys "^1.1.0"
-
-eslint-utils@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
- integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
- dependencies:
- eslint-visitor-keys "^1.1.0"
-
-eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
- integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
-
-eslint@^6.5.1:
- version "6.8.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb"
- integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- ajv "^6.10.0"
- chalk "^2.1.0"
- cross-spawn "^6.0.5"
- debug "^4.0.1"
- doctrine "^3.0.0"
- eslint-scope "^5.0.0"
- eslint-utils "^1.4.3"
- eslint-visitor-keys "^1.1.0"
- espree "^6.1.2"
- esquery "^1.0.1"
- esutils "^2.0.2"
- file-entry-cache "^5.0.1"
- functional-red-black-tree "^1.0.1"
- glob-parent "^5.0.0"
- globals "^12.1.0"
- ignore "^4.0.6"
- import-fresh "^3.0.0"
- imurmurhash "^0.1.4"
- inquirer "^7.0.0"
- is-glob "^4.0.0"
- js-yaml "^3.13.1"
- json-stable-stringify-without-jsonify "^1.0.1"
- levn "^0.3.0"
- lodash "^4.17.14"
- minimatch "^3.0.4"
- mkdirp "^0.5.1"
- natural-compare "^1.4.0"
- optionator "^0.8.3"
- progress "^2.0.0"
- regexpp "^2.0.1"
- semver "^6.1.2"
- strip-ansi "^5.2.0"
- strip-json-comments "^3.0.1"
- table "^5.2.3"
- text-table "^0.2.0"
- v8-compile-cache "^2.0.3"
-
-espree@^6.1.2:
- version "6.2.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
- integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
- dependencies:
- acorn "^7.1.1"
- acorn-jsx "^5.2.0"
- eslint-visitor-keys "^1.1.0"
-
-esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-esquery@^1.0.1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
- integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
- dependencies:
- estraverse "^5.1.0"
-
-esrecurse@^4.3.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
- integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
- dependencies:
- estraverse "^5.2.0"
-
-estraverse@^4.1.1, estraverse@^4.2.0:
- version "4.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
- integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-estraverse@^5.1.0, estraverse@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
- integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
-
-esutils@^2.0.2:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
- integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-etag@~1.8.1:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
- integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==
-
-event-target-shim@^5.0.0, event-target-shim@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
- integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
-
-exec-sh@^0.3.2:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc"
- integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==
-
-execa@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
- integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
- dependencies:
- cross-spawn "^6.0.0"
- get-stream "^4.0.0"
- is-stream "^1.1.0"
- npm-run-path "^2.0.0"
- p-finally "^1.0.0"
- signal-exit "^3.0.0"
- strip-eof "^1.0.0"
-
-execa@^3.2.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89"
- integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==
- dependencies:
- cross-spawn "^7.0.0"
- get-stream "^5.0.0"
- human-signals "^1.1.1"
- is-stream "^2.0.0"
- merge-stream "^2.0.0"
- npm-run-path "^4.0.0"
- onetime "^5.1.0"
- p-finally "^2.0.0"
- signal-exit "^3.0.2"
- strip-final-newline "^2.0.0"
-
-exit@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c"
- integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==
-
-expand-brackets@^2.1.4:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
- integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==
- dependencies:
- debug "^2.3.3"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- posix-character-classes "^0.1.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-expect@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-25.5.0.tgz#f07f848712a2813bb59167da3fb828ca21f58bba"
- integrity sha512-w7KAXo0+6qqZZhovCaBVPSIqQp7/UTcx4M9uKt2m6pd2VB1voyC8JizLRqeEqud3AAVP02g+hbErDu5gu64tlA==
- dependencies:
- "@jest/types" "^25.5.0"
- ansi-styles "^4.0.0"
- jest-get-type "^25.2.6"
- jest-matcher-utils "^25.5.0"
- jest-message-util "^25.5.0"
- jest-regex-util "^25.2.6"
-
-extend-shallow@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
- integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==
- dependencies:
- is-extendable "^0.1.0"
-
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
- integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==
- dependencies:
- assign-symbols "^1.0.0"
- is-extendable "^1.0.1"
-
-extend@~3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
- integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-external-editor@^3.0.3:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
- integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
- dependencies:
- chardet "^0.7.0"
- iconv-lite "^0.4.24"
- tmp "^0.0.33"
-
-extglob@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
- integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
- dependencies:
- array-unique "^0.3.2"
- define-property "^1.0.0"
- expand-brackets "^2.1.4"
- extend-shallow "^2.0.1"
- fragment-cache "^0.2.1"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-extsprintf@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
- integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
-
-extsprintf@^1.2.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
- integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
-
-fast-deep-equal@^3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
- integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-
-fast-diff@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
- integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
-
-fast-json-stable-stringify@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
- integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-
-fast-levenshtein@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
- integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
-
-fb-watchman@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c"
- integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==
- dependencies:
- bser "2.1.1"
-
-figures@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af"
- integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==
- dependencies:
- escape-string-regexp "^1.0.5"
-
-file-entry-cache@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c"
- integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==
- dependencies:
- flat-cache "^2.0.1"
-
-fill-range@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
- integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==
- dependencies:
- extend-shallow "^2.0.1"
- is-number "^3.0.0"
- repeat-string "^1.6.1"
- to-regex-range "^2.1.0"
-
-fill-range@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
- integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
- dependencies:
- to-regex-range "^5.0.1"
-
-finalhandler@1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
- integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
- dependencies:
- debug "2.6.9"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- on-finished "~2.3.0"
- parseurl "~1.3.3"
- statuses "~1.5.0"
- unpipe "~1.0.0"
-
-find-cache-dir@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
- integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
- dependencies:
- commondir "^1.0.1"
- make-dir "^2.0.0"
- pkg-dir "^3.0.0"
-
-find-up@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
- integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
- dependencies:
- locate-path "^3.0.0"
-
-find-up@^4.0.0, find-up@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
- integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
- dependencies:
- locate-path "^5.0.0"
- path-exists "^4.0.0"
-
-flat-cache@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0"
- integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==
- dependencies:
- flatted "^2.0.0"
- rimraf "2.6.3"
- write "1.0.3"
-
-flatted@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
- integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==
-
-flow-parser@0.*:
- version "0.194.0"
- resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.194.0.tgz#3d226aca8473593ad90167ae1e14dbb3cbcb6a8b"
- integrity sha512-3dipGWKnXmE4LEE5yCPHJrSlMYOPAYU7wMBecfKiWPQSZp1CvkpJ59dfuuUIeM2TSttKGSatep77vGG9cjkeqg==
-
-flow-parser@^0.121.0:
- version "0.121.0"
- resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f"
- integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg==
-
-for-in@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
- integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==
-
-forever-agent@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
- integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==
-
-form-data@~2.3.2:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
- integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.6"
- mime-types "^2.1.12"
-
-fragment-cache@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
- integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==
- dependencies:
- map-cache "^0.2.2"
-
-fresh@0.5.2:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
- integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
-
-fs-extra@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950"
- integrity sha512-VerQV6vEKuhDWD2HGOybV6v5I73syoc/cXAbKlgTC7M/oFVEtklWlp9QH2Ijw3IaWDOQcMkldSPa7zXy79Z/UQ==
- dependencies:
- graceful-fs "^4.1.2"
- jsonfile "^2.1.0"
- klaw "^1.0.0"
-
-fs-extra@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
- integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
- dependencies:
- graceful-fs "^4.2.0"
- jsonfile "^4.0.0"
- universalify "^0.1.0"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
- integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-
-fsevents@^2.1.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
- integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
-
-function-bind@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
- integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-function.prototype.name@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621"
- integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.19.0"
- functions-have-names "^1.2.2"
-
-functional-red-black-tree@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
- integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
-
-functions-have-names@^1.2.2:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
- integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
-
-gensync@^1.0.0-beta.2:
- version "1.0.0-beta.2"
- resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
- integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
-
-get-caller-file@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
- integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
- integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
- dependencies:
- function-bind "^1.1.1"
- has "^1.0.3"
- has-symbols "^1.0.3"
-
-get-package-type@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
- integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-
-get-stdin@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
- integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
-
-get-stream@^4.0.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
- integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
- dependencies:
- pump "^3.0.0"
-
-get-stream@^5.0.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3"
- integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==
- dependencies:
- pump "^3.0.0"
-
-get-symbol-description@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
- integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.1"
-
-get-value@^2.0.3, get-value@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
- integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==
-
-getpass@^0.1.1:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
- integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==
- dependencies:
- assert-plus "^1.0.0"
-
-glob-parent@^5.0.0:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
- integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
- dependencies:
- is-glob "^4.0.1"
-
-glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
- version "7.2.3"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
- integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.1.1"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^11.1.0:
- version "11.12.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
- integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
-globals@^12.1.0:
- version "12.4.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8"
- integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==
- dependencies:
- type-fest "^0.8.1"
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.4:
- version "4.2.10"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c"
- integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==
-
-growly@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
- integrity sha512-+xGQY0YyAWCnqy7Cd++hc2JqMYzlm0dG30Jd0beaA64sROr8C4nt8Yc9V5Ro3avlSUDTN0ulqP/VBKi1/lLygw==
-
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
- integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==
-
-har-validator@~5.1.3:
- version "5.1.5"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
- integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
- dependencies:
- ajv "^6.12.3"
- har-schema "^2.0.0"
-
-has-bigints@^1.0.1, has-bigints@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa"
- integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
-
-has-flag@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
- integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
-
-has-flag@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
- integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
-
-has-property-descriptors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861"
- integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
- dependencies:
- get-intrinsic "^1.1.1"
-
-has-symbols@^1.0.2, has-symbols@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
- integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
-
-has-tostringtag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
- integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
- dependencies:
- has-symbols "^1.0.2"
-
-has-value@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
- integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==
- dependencies:
- get-value "^2.0.3"
- has-values "^0.1.4"
- isobject "^2.0.0"
-
-has-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
- integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==
- dependencies:
- get-value "^2.0.6"
- has-values "^1.0.0"
- isobject "^3.0.0"
-
-has-values@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
- integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==
-
-has-values@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
- integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==
- dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
-
-has@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
- integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
- dependencies:
- function-bind "^1.1.1"
-
-hermes-engine@~0.7.0:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/hermes-engine/-/hermes-engine-0.7.2.tgz#303cd99d23f68e708b223aec2d49d5872985388b"
- integrity sha512-E2DkRaO97gwL98LPhgfkMqhHiNsrAjIfEk3wWYn2Y31xdkdWn0572H7RnVcGujMJVqZNJvtknxlpsUb8Wzc3KA==
-
-hermes-profile-transformer@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/hermes-profile-transformer/-/hermes-profile-transformer-0.0.6.tgz#bd0f5ecceda80dd0ddaae443469ab26fb38fc27b"
- integrity sha512-cnN7bQUm65UWOy6cbGcCcZ3rpwW8Q/j4OP5aWRhEry4Z2t2aR1cjrbp0BS+KiBN0smvP1caBgAuxutvyvJILzQ==
- dependencies:
- source-map "^0.7.3"
-
-hosted-git-info@^2.1.4:
- version "2.8.9"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9"
- integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==
-
-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"
- integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==
- dependencies:
- whatwg-encoding "^1.0.1"
-
-html-escaper@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
- integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
-
-http-errors@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3"
- integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==
- dependencies:
- depd "2.0.0"
- inherits "2.0.4"
- setprototypeof "1.2.0"
- statuses "2.0.1"
- toidentifier "1.0.1"
-
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
- integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==
- dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
-
-human-signals@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
- integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
-
-iconv-lite@0.4.24, iconv-lite@^0.4.24:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-ignore@^4.0.6:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
- integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
-
-ignore@^5.0.5:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.1.tgz#c2b1f76cb999ede1502f3a226a9310fdfe88d46c"
- integrity sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==
-
-image-size@^0.6.0:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2"
- integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA==
-
-import-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
- integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg==
- dependencies:
- caller-path "^2.0.0"
- resolve-from "^3.0.0"
-
-import-fresh@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
- integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
- dependencies:
- parent-module "^1.0.0"
- resolve-from "^4.0.0"
-
-import-local@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/import-local/-/import-local-3.1.0.tgz#b4479df8a5fd44f6cdce24070675676063c95cb4"
- integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==
- dependencies:
- pkg-dir "^4.2.0"
- resolve-cwd "^3.0.0"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
- integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@2.0.4, inherits@~2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inquirer@^7.0.0:
- version "7.3.3"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz#04d176b2af04afc157a83fd7c100e98ee0aad003"
- integrity sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==
- dependencies:
- ansi-escapes "^4.2.1"
- chalk "^4.1.0"
- cli-cursor "^3.1.0"
- cli-width "^3.0.0"
- external-editor "^3.0.3"
- figures "^3.0.0"
- lodash "^4.17.19"
- mute-stream "0.0.8"
- run-async "^2.4.0"
- rxjs "^6.6.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
- through "^2.3.6"
-
-internal-slot@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
- integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
- dependencies:
- get-intrinsic "^1.1.0"
- has "^1.0.3"
- side-channel "^1.0.4"
-
-interpret@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
- integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-
-invariant@^2.2.2, invariant@^2.2.4:
- version "2.2.4"
- resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
- integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
- dependencies:
- loose-envify "^1.0.0"
-
-ip-regex@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
- integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw==
-
-ip@^1.1.5:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48"
- integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==
-
-is-accessor-descriptor@^0.1.6:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
- integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==
- dependencies:
- kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
- integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
- integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
-
-is-bigint@^1.0.1:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3"
- integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
- dependencies:
- has-bigints "^1.0.1"
-
-is-boolean-object@^1.1.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
- integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
-is-buffer@^1.1.5:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-callable@^1.1.4, is-callable@^1.2.7:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
- integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-
-is-ci@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c"
- integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==
- dependencies:
- ci-info "^2.0.0"
-
-is-core-module@^2.9.0:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
- integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==
- dependencies:
- has "^1.0.3"
-
-is-data-descriptor@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
- integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==
- dependencies:
- kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
- integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
- dependencies:
- kind-of "^6.0.0"
-
-is-date-object@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
- integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-descriptor@^0.1.0:
- version "0.1.6"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
- integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
- dependencies:
- is-accessor-descriptor "^0.1.6"
- is-data-descriptor "^0.1.4"
- kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
- integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
- dependencies:
- is-accessor-descriptor "^1.0.0"
- is-data-descriptor "^1.0.0"
- kind-of "^6.0.2"
-
-is-directory@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
- integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw==
-
-is-docker@^2.0.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
- integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
-
-is-extendable@^0.1.0, is-extendable@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
- integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==
-
-is-extendable@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
- integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
- dependencies:
- is-plain-object "^2.0.4"
-
-is-extglob@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
- integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
- integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
-
-is-fullwidth-code-point@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
- integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
-
-is-generator-fn@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118"
- integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==
-
-is-glob@^4.0.0, is-glob@^4.0.1:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
- integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
- dependencies:
- is-extglob "^2.1.1"
-
-is-negative-zero@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150"
- integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
-
-is-number-object@^1.0.4:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc"
- integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==
- dependencies:
- kind-of "^3.0.2"
-
-is-number@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
- integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-
-is-plain-object@^2.0.3, is-plain-object@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
- integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
- dependencies:
- isobject "^3.0.1"
-
-is-regex@^1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958"
- integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
-is-shared-array-buffer@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79"
- integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
- dependencies:
- call-bind "^1.0.2"
-
-is-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
- integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
-
-is-stream@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
- integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
-
-is-string@^1.0.5, is-string@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
- integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
- dependencies:
- has-tostringtag "^1.0.0"
-
-is-symbol@^1.0.2, is-symbol@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
- integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
- dependencies:
- has-symbols "^1.0.2"
-
-is-typedarray@^1.0.0, is-typedarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
- integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
-
-is-weakref@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2"
- integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
- dependencies:
- call-bind "^1.0.2"
-
-is-windows@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
- integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-
-is-wsl@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
- integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==
-
-is-wsl@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
- integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
- dependencies:
- is-docker "^2.0.0"
-
-isarray@1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
- integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
- integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-
-isobject@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
- integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==
- dependencies:
- isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
- integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
-
-isstream@~0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
- integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==
-
-istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
- integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
-
-istanbul-lib-instrument@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d"
- integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==
- dependencies:
- "@babel/core" "^7.7.5"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-coverage "^3.0.0"
- semver "^6.3.0"
-
-istanbul-lib-instrument@^5.0.4:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d"
- integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==
- dependencies:
- "@babel/core" "^7.12.3"
- "@babel/parser" "^7.14.7"
- "@istanbuljs/schema" "^0.1.2"
- istanbul-lib-coverage "^3.2.0"
- semver "^6.3.0"
-
-istanbul-lib-report@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
- integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
- dependencies:
- istanbul-lib-coverage "^3.0.0"
- make-dir "^3.0.0"
- supports-color "^7.1.0"
-
-istanbul-lib-source-maps@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551"
- integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==
- dependencies:
- debug "^4.1.1"
- istanbul-lib-coverage "^3.0.0"
- source-map "^0.6.1"
-
-istanbul-reports@^3.0.2:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae"
- integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==
- dependencies:
- html-escaper "^2.0.0"
- istanbul-lib-report "^3.0.0"
-
-jest-changed-files@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-25.5.0.tgz#141cc23567ceb3f534526f8614ba39421383634c"
- integrity sha512-EOw9QEqapsDT7mKF162m8HFzRPbmP8qJQny6ldVOdOVBz3ACgPm/1nAn5fPQ/NDaYhX/AHkrGwwkCncpAVSXcw==
- dependencies:
- "@jest/types" "^25.5.0"
- execa "^3.2.0"
- throat "^5.0.0"
-
-jest-cli@^25.5.4:
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-25.5.4.tgz#b9f1a84d1301a92c5c217684cb79840831db9f0d"
- integrity sha512-rG8uJkIiOUpnREh1768/N3n27Cm+xPFkSNFO91tgg+8o2rXeVLStz+vkXkGr4UtzH6t1SNbjwoiswd7p4AhHTw==
- dependencies:
- "@jest/core" "^25.5.4"
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- exit "^0.1.2"
- graceful-fs "^4.2.4"
- import-local "^3.0.2"
- is-ci "^2.0.0"
- jest-config "^25.5.4"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
- prompts "^2.0.1"
- realpath-native "^2.0.0"
- yargs "^15.3.1"
-
-jest-config@^25.5.4:
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-25.5.4.tgz#38e2057b3f976ef7309b2b2c8dcd2a708a67f02c"
- integrity sha512-SZwR91SwcdK6bz7Gco8qL7YY2sx8tFJYzvg216DLihTWf+LKY/DoJXpM9nTzYakSyfblbqeU48p/p7Jzy05Atg==
- dependencies:
- "@babel/core" "^7.1.0"
- "@jest/test-sequencer" "^25.5.4"
- "@jest/types" "^25.5.0"
- babel-jest "^25.5.1"
- chalk "^3.0.0"
- deepmerge "^4.2.2"
- glob "^7.1.1"
- graceful-fs "^4.2.4"
- jest-environment-jsdom "^25.5.0"
- jest-environment-node "^25.5.0"
- jest-get-type "^25.2.6"
- jest-jasmine2 "^25.5.4"
- jest-regex-util "^25.2.6"
- jest-resolve "^25.5.1"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
- micromatch "^4.0.2"
- pretty-format "^25.5.0"
- realpath-native "^2.0.0"
-
-jest-diff@^25.2.1, jest-diff@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz#1dd26ed64f96667c068cef026b677dfa01afcfa9"
- integrity sha512-z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==
- dependencies:
- chalk "^3.0.0"
- diff-sequences "^25.2.6"
- jest-get-type "^25.2.6"
- pretty-format "^25.5.0"
-
-jest-docblock@^25.3.0:
- version "25.3.0"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-25.3.0.tgz#8b777a27e3477cd77a168c05290c471a575623ef"
- integrity sha512-aktF0kCar8+zxRHxQZwxMy70stc9R1mOmrLsT5VO3pIT0uzGRSDAXxSlz4NqQWpuLjPpuMhPRl7H+5FRsvIQAg==
- dependencies:
- detect-newline "^3.0.0"
-
-jest-each@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-25.5.0.tgz#0c3c2797e8225cb7bec7e4d249dcd96b934be516"
- integrity sha512-QBogUxna3D8vtiItvn54xXde7+vuzqRrEeaw8r1s+1TG9eZLVJE5ZkKoSUlqFwRjnlaA4hyKGiu9OlkFIuKnjA==
- dependencies:
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- jest-get-type "^25.2.6"
- jest-util "^25.5.0"
- pretty-format "^25.5.0"
-
-jest-environment-jsdom@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-25.5.0.tgz#dcbe4da2ea997707997040ecf6e2560aec4e9834"
- integrity sha512-7Jr02ydaq4jaWMZLY+Skn8wL5nVIYpWvmeatOHL3tOcV3Zw8sjnPpx+ZdeBfc457p8jCR9J6YCc+Lga0oIy62A==
- dependencies:
- "@jest/environment" "^25.5.0"
- "@jest/fake-timers" "^25.5.0"
- "@jest/types" "^25.5.0"
- jest-mock "^25.5.0"
- jest-util "^25.5.0"
- jsdom "^15.2.1"
-
-jest-environment-node@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-25.5.0.tgz#0f55270d94804902988e64adca37c6ce0f7d07a1"
- integrity sha512-iuxK6rQR2En9EID+2k+IBs5fCFd919gVVK5BeND82fYeLWPqvRcFNPKu9+gxTwfB5XwBGBvZ0HFQa+cHtIoslA==
- dependencies:
- "@jest/environment" "^25.5.0"
- "@jest/fake-timers" "^25.5.0"
- "@jest/types" "^25.5.0"
- jest-mock "^25.5.0"
- jest-util "^25.5.0"
- semver "^6.3.0"
-
-jest-get-type@^25.2.6:
- version "25.2.6"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
- integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==
-
-jest-get-type@^26.3.0:
- version "26.3.0"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0"
- integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==
-
-jest-haste-map@^25.5.1:
- version "25.5.1"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-25.5.1.tgz#1df10f716c1d94e60a1ebf7798c9fb3da2620943"
- integrity sha512-dddgh9UZjV7SCDQUrQ+5t9yy8iEgKc1AKqZR9YDww8xsVOtzPQSMVLDChc21+g29oTRexb9/B0bIlZL+sWmvAQ==
- dependencies:
- "@jest/types" "^25.5.0"
- "@types/graceful-fs" "^4.1.2"
- anymatch "^3.0.3"
- fb-watchman "^2.0.0"
- graceful-fs "^4.2.4"
- jest-serializer "^25.5.0"
- jest-util "^25.5.0"
- jest-worker "^25.5.0"
- micromatch "^4.0.2"
- sane "^4.0.3"
- walker "^1.0.7"
- which "^2.0.2"
- optionalDependencies:
- fsevents "^2.1.2"
-
-jest-haste-map@^26.5.2:
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa"
- integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==
- dependencies:
- "@jest/types" "^26.6.2"
- "@types/graceful-fs" "^4.1.2"
- "@types/node" "*"
- anymatch "^3.0.3"
- fb-watchman "^2.0.0"
- graceful-fs "^4.2.4"
- jest-regex-util "^26.0.0"
- jest-serializer "^26.6.2"
- jest-util "^26.6.2"
- jest-worker "^26.6.2"
- micromatch "^4.0.2"
- sane "^4.0.3"
- walker "^1.0.7"
- optionalDependencies:
- fsevents "^2.1.2"
-
-jest-jasmine2@^25.5.4:
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-25.5.4.tgz#66ca8b328fb1a3c5364816f8958f6970a8526968"
- integrity sha512-9acbWEfbmS8UpdcfqnDO+uBUgKa/9hcRh983IHdM+pKmJPL77G0sWAAK0V0kr5LK3a8cSBfkFSoncXwQlRZfkQ==
- dependencies:
- "@babel/traverse" "^7.1.0"
- "@jest/environment" "^25.5.0"
- "@jest/source-map" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- co "^4.6.0"
- expect "^25.5.0"
- is-generator-fn "^2.0.0"
- jest-each "^25.5.0"
- jest-matcher-utils "^25.5.0"
- jest-message-util "^25.5.0"
- jest-runtime "^25.5.4"
- jest-snapshot "^25.5.1"
- jest-util "^25.5.0"
- pretty-format "^25.5.0"
- throat "^5.0.0"
-
-jest-leak-detector@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-25.5.0.tgz#2291c6294b0ce404241bb56fe60e2d0c3e34f0bb"
- integrity sha512-rV7JdLsanS8OkdDpZtgBf61L5xZ4NnYLBq72r6ldxahJWWczZjXawRsoHyXzibM5ed7C2QRjpp6ypgwGdKyoVA==
- dependencies:
- jest-get-type "^25.2.6"
- pretty-format "^25.5.0"
-
-jest-matcher-utils@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-25.5.0.tgz#fbc98a12d730e5d2453d7f1ed4a4d948e34b7867"
- integrity sha512-VWI269+9JS5cpndnpCwm7dy7JtGQT30UHfrnM3mXl22gHGt/b7NkjBqXfbhZ8V4B7ANUsjK18PlSBmG0YH7gjw==
- dependencies:
- chalk "^3.0.0"
- jest-diff "^25.5.0"
- jest-get-type "^25.2.6"
- pretty-format "^25.5.0"
-
-jest-message-util@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-25.5.0.tgz#ea11d93204cc7ae97456e1d8716251185b8880ea"
- integrity sha512-ezddz3YCT/LT0SKAmylVyWWIGYoKHOFOFXx3/nA4m794lfVUskMcwhip6vTgdVrOtYdjeQeis2ypzes9mZb4EA==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- "@jest/types" "^25.5.0"
- "@types/stack-utils" "^1.0.1"
- chalk "^3.0.0"
- graceful-fs "^4.2.4"
- micromatch "^4.0.2"
- slash "^3.0.0"
- stack-utils "^1.0.1"
-
-jest-mock@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-25.5.0.tgz#a91a54dabd14e37ecd61665d6b6e06360a55387a"
- integrity sha512-eXWuTV8mKzp/ovHc5+3USJMYsTBhyQ+5A1Mak35dey/RG8GlM4YWVylZuGgVXinaW6tpvk/RSecmF37FKUlpXA==
- dependencies:
- "@jest/types" "^25.5.0"
-
-jest-pnp-resolver@^1.2.1:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
- integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==
-
-jest-regex-util@^25.2.6:
- version "25.2.6"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-25.2.6.tgz#d847d38ba15d2118d3b06390056028d0f2fd3964"
- integrity sha512-KQqf7a0NrtCkYmZZzodPftn7fL1cq3GQAFVMn5Hg8uKx/fIenLEobNanUxb7abQ1sjADHBseG/2FGpsv/wr+Qw==
-
-jest-regex-util@^26.0.0:
- version "26.0.0"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28"
- integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==
-
-jest-resolve-dependencies@^25.5.4:
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-25.5.4.tgz#85501f53957c8e3be446e863a74777b5a17397a7"
- integrity sha512-yFmbPd+DAQjJQg88HveObcGBA32nqNZ02fjYmtL16t1xw9bAttSn5UGRRhzMHIQbsep7znWvAvnD4kDqOFM0Uw==
- dependencies:
- "@jest/types" "^25.5.0"
- jest-regex-util "^25.2.6"
- jest-snapshot "^25.5.1"
-
-jest-resolve@^25.5.1:
- version "25.5.1"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-25.5.1.tgz#0e6fbcfa7c26d2a5fe8f456088dc332a79266829"
- integrity sha512-Hc09hYch5aWdtejsUZhA+vSzcotf7fajSlPA6EZPE1RmPBAD39XtJhvHWFStid58iit4IPDLI/Da4cwdDmAHiQ==
- dependencies:
- "@jest/types" "^25.5.0"
- browser-resolve "^1.11.3"
- chalk "^3.0.0"
- graceful-fs "^4.2.4"
- jest-pnp-resolver "^1.2.1"
- read-pkg-up "^7.0.1"
- realpath-native "^2.0.0"
- resolve "^1.17.0"
- slash "^3.0.0"
-
-jest-runner@^25.5.4:
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-25.5.4.tgz#ffec5df3875da5f5c878ae6d0a17b8e4ecd7c71d"
- integrity sha512-V/2R7fKZo6blP8E9BL9vJ8aTU4TH2beuqGNxHbxi6t14XzTb+x90B3FRgdvuHm41GY8ch4xxvf0ATH4hdpjTqg==
- dependencies:
- "@jest/console" "^25.5.0"
- "@jest/environment" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- exit "^0.1.2"
- graceful-fs "^4.2.4"
- jest-config "^25.5.4"
- jest-docblock "^25.3.0"
- jest-haste-map "^25.5.1"
- jest-jasmine2 "^25.5.4"
- jest-leak-detector "^25.5.0"
- jest-message-util "^25.5.0"
- jest-resolve "^25.5.1"
- jest-runtime "^25.5.4"
- jest-util "^25.5.0"
- jest-worker "^25.5.0"
- source-map-support "^0.5.6"
- throat "^5.0.0"
-
-jest-runtime@^25.5.4:
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-25.5.4.tgz#dc981fe2cb2137abcd319e74ccae7f7eeffbfaab"
- integrity sha512-RWTt8LeWh3GvjYtASH2eezkc8AehVoWKK20udV6n3/gC87wlTbE1kIA+opCvNWyyPeBs6ptYsc6nyHUb1GlUVQ==
- dependencies:
- "@jest/console" "^25.5.0"
- "@jest/environment" "^25.5.0"
- "@jest/globals" "^25.5.2"
- "@jest/source-map" "^25.5.0"
- "@jest/test-result" "^25.5.0"
- "@jest/transform" "^25.5.1"
- "@jest/types" "^25.5.0"
- "@types/yargs" "^15.0.0"
- chalk "^3.0.0"
- collect-v8-coverage "^1.0.0"
- exit "^0.1.2"
- glob "^7.1.3"
- graceful-fs "^4.2.4"
- jest-config "^25.5.4"
- jest-haste-map "^25.5.1"
- jest-message-util "^25.5.0"
- jest-mock "^25.5.0"
- jest-regex-util "^25.2.6"
- jest-resolve "^25.5.1"
- jest-snapshot "^25.5.1"
- jest-util "^25.5.0"
- jest-validate "^25.5.0"
- realpath-native "^2.0.0"
- slash "^3.0.0"
- strip-bom "^4.0.0"
- yargs "^15.3.1"
-
-jest-serializer@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-25.5.0.tgz#a993f484e769b4ed54e70e0efdb74007f503072b"
- integrity sha512-LxD8fY1lByomEPflwur9o4e2a5twSQ7TaVNLlFUuToIdoJuBt8tzHfCsZ42Ok6LkKXWzFWf3AGmheuLAA7LcCA==
- dependencies:
- graceful-fs "^4.2.4"
-
-jest-serializer@^26.6.2:
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1"
- integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==
- dependencies:
- "@types/node" "*"
- graceful-fs "^4.2.4"
-
-jest-snapshot@^25.5.1:
- version "25.5.1"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-25.5.1.tgz#1a2a576491f9961eb8d00c2e5fd479bc28e5ff7f"
- integrity sha512-C02JE1TUe64p2v1auUJ2ze5vcuv32tkv9PyhEb318e8XOKF7MOyXdJ7kdjbvrp3ChPLU2usI7Rjxs97Dj5P0uQ==
- dependencies:
- "@babel/types" "^7.0.0"
- "@jest/types" "^25.5.0"
- "@types/prettier" "^1.19.0"
- chalk "^3.0.0"
- expect "^25.5.0"
- graceful-fs "^4.2.4"
- jest-diff "^25.5.0"
- jest-get-type "^25.2.6"
- jest-matcher-utils "^25.5.0"
- jest-message-util "^25.5.0"
- jest-resolve "^25.5.1"
- make-dir "^3.0.0"
- natural-compare "^1.4.0"
- pretty-format "^25.5.0"
- semver "^6.3.0"
-
-jest-util@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-25.5.0.tgz#31c63b5d6e901274d264a4fec849230aa3fa35b0"
- integrity sha512-KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==
- dependencies:
- "@jest/types" "^25.5.0"
- chalk "^3.0.0"
- graceful-fs "^4.2.4"
- is-ci "^2.0.0"
- make-dir "^3.0.0"
-
-jest-util@^26.6.2:
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1"
- integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==
- dependencies:
- "@jest/types" "^26.6.2"
- "@types/node" "*"
- chalk "^4.0.0"
- graceful-fs "^4.2.4"
- is-ci "^2.0.0"
- micromatch "^4.0.2"
-
-jest-validate@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-25.5.0.tgz#fb4c93f332c2e4cf70151a628e58a35e459a413a"
- integrity sha512-okUFKqhZIpo3jDdtUXUZ2LxGUZJIlfdYBvZb1aczzxrlyMlqdnnws9MOxezoLGhSaFc2XYaHNReNQfj5zPIWyQ==
- dependencies:
- "@jest/types" "^25.5.0"
- camelcase "^5.3.1"
- chalk "^3.0.0"
- jest-get-type "^25.2.6"
- leven "^3.1.0"
- pretty-format "^25.5.0"
-
-jest-validate@^26.5.2:
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec"
- integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==
- dependencies:
- "@jest/types" "^26.6.2"
- camelcase "^6.0.0"
- chalk "^4.0.0"
- jest-get-type "^26.3.0"
- leven "^3.1.0"
- pretty-format "^26.6.2"
-
-jest-watcher@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-25.5.0.tgz#d6110d101df98badebe435003956fd4a465e8456"
- integrity sha512-XrSfJnVASEl+5+bb51V0Q7WQx65dTSk7NL4yDdVjPnRNpM0hG+ncFmDYJo9O8jaSRcAitVbuVawyXCRoxGrT5Q==
- dependencies:
- "@jest/test-result" "^25.5.0"
- "@jest/types" "^25.5.0"
- ansi-escapes "^4.2.1"
- chalk "^3.0.0"
- jest-util "^25.5.0"
- string-length "^3.1.0"
-
-jest-worker@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1"
- integrity sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==
- dependencies:
- merge-stream "^2.0.0"
- supports-color "^7.0.0"
-
-jest-worker@^26.0.0, jest-worker@^26.6.2:
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
- integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
- dependencies:
- "@types/node" "*"
- merge-stream "^2.0.0"
- supports-color "^7.0.0"
-
-jest@^25.1.0:
- version "25.5.4"
- resolved "https://registry.yarnpkg.com/jest/-/jest-25.5.4.tgz#f21107b6489cfe32b076ce2adcadee3587acb9db"
- integrity sha512-hHFJROBTqZahnO+X+PMtT6G2/ztqAZJveGqz//FnWWHurizkD05PQGzRZOhF3XP6z7SJmL+5tCfW8qV06JypwQ==
- dependencies:
- "@jest/core" "^25.5.4"
- import-local "^3.0.2"
- jest-cli "^25.5.4"
-
-jetifier@^1.6.2:
- version "1.6.8"
- resolved "https://registry.yarnpkg.com/jetifier/-/jetifier-1.6.8.tgz#e88068697875cbda98c32472902c4d3756247798"
- integrity sha512-3Zi16h6L5tXDRQJTb221cnRoVG9/9OvreLdLU2/ZjRv/GILL+2Cemt0IKvkowwkDpvouAU1DQPOJ7qaiHeIdrw==
-
-joi@^17.2.1:
- version "17.7.0"
- resolved "https://registry.yarnpkg.com/joi/-/joi-17.7.0.tgz#591a33b1fe1aca2bc27f290bcad9b9c1c570a6b3"
- integrity sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg==
- dependencies:
- "@hapi/hoek" "^9.0.0"
- "@hapi/topo" "^5.0.0"
- "@sideway/address" "^4.1.3"
- "@sideway/formula" "^3.0.0"
- "@sideway/pinpoint" "^2.0.0"
-
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
- integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^3.13.1:
- version "3.14.1"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
- integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-jsbn@~0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
- integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==
-
-jsc-android@^245459.0.0:
- version "245459.0.0"
- resolved "https://registry.yarnpkg.com/jsc-android/-/jsc-android-245459.0.0.tgz#e584258dd0b04c9159a27fb104cd5d491fd202c9"
- integrity sha512-wkjURqwaB1daNkDi2OYYbsLnIdC/lUM2nPXQKRs5pqEU9chDg435bjvo+LSaHotDENygHQDHe+ntUkkw2gwMtg==
-
-jscodeshift@^0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.11.0.tgz#4f95039408f3f06b0e39bb4d53bc3139f5330e2f"
- integrity sha512-SdRK2C7jjs4k/kT2mwtO07KJN9RnjxtKn03d9JVj6c3j9WwaLcFYsICYDnLAzY0hp+wG2nxl+Cm2jWLiNVYb8g==
- dependencies:
- "@babel/core" "^7.1.6"
- "@babel/parser" "^7.1.6"
- "@babel/plugin-proposal-class-properties" "^7.1.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.1.0"
- "@babel/plugin-proposal-optional-chaining" "^7.1.0"
- "@babel/plugin-transform-modules-commonjs" "^7.1.0"
- "@babel/preset-flow" "^7.0.0"
- "@babel/preset-typescript" "^7.1.0"
- "@babel/register" "^7.0.0"
- babel-core "^7.0.0-bridge.0"
- colors "^1.1.2"
- flow-parser "0.*"
- graceful-fs "^4.2.4"
- micromatch "^3.1.10"
- neo-async "^2.5.0"
- node-dir "^0.1.17"
- recast "^0.20.3"
- temp "^0.8.1"
- write-file-atomic "^2.3.0"
-
-jsdom@^15.2.1:
- version "15.2.1"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-15.2.1.tgz#d2feb1aef7183f86be521b8c6833ff5296d07ec5"
- integrity sha512-fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==
- dependencies:
- abab "^2.0.0"
- acorn "^7.1.0"
- acorn-globals "^4.3.2"
- array-equal "^1.0.0"
- cssom "^0.4.1"
- cssstyle "^2.0.0"
- data-urls "^1.1.0"
- domexception "^1.0.1"
- escodegen "^1.11.1"
- html-encoding-sniffer "^1.0.2"
- nwsapi "^2.2.0"
- parse5 "5.1.0"
- pn "^1.1.0"
- request "^2.88.0"
- request-promise-native "^1.0.7"
- saxes "^3.1.9"
- symbol-tree "^3.2.2"
- tough-cookie "^3.0.1"
- w3c-hr-time "^1.0.1"
- w3c-xmlserializer "^1.1.2"
- webidl-conversions "^4.0.2"
- whatwg-encoding "^1.0.5"
- whatwg-mimetype "^2.3.0"
- whatwg-url "^7.0.0"
- ws "^7.0.0"
- xml-name-validator "^3.0.0"
-
-jsesc@^2.5.1:
- version "2.5.2"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
- integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-
-jsesc@~0.5.0:
- version "0.5.0"
- resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
- integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
-
-json-parse-better-errors@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
- integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-
-json-parse-even-better-errors@^2.3.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
- integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
-
-json-schema-traverse@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
- integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-schema@0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
- integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
-
-json-stable-stringify-without-jsonify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
- integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
-
-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 sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
-
-json5@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
- integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
-
-jsonfile@^2.1.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
- integrity sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-jsonfile@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
- integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
- optionalDependencies:
- graceful-fs "^4.1.6"
-
-jsonify@~0.0.0:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978"
- integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==
-
-jsprim@^1.2.2:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb"
- integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.4.0"
- verror "1.10.0"
-
-jsx-ast-utils@^2.2.3:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz#1114a4c1209481db06c690c2b4f488cc665f657e"
- integrity sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==
- dependencies:
- array-includes "^3.1.1"
- object.assign "^4.1.0"
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
- integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==
- dependencies:
- is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
- integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
- integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
-
-klaw@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439"
- integrity sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==
- optionalDependencies:
- graceful-fs "^4.1.9"
-
-kleur@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e"
- integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==
-
-leven@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
- integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==
-
-levn@^0.3.0, levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
- dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
-
-lines-and-columns@^1.1.6:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
- integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
-
-locate-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
- integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
- dependencies:
- p-locate "^3.0.0"
- path-exists "^3.0.0"
-
-locate-path@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
- integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
- dependencies:
- p-locate "^4.1.0"
-
-lodash.debounce@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
- integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
-
-lodash.sortby@^4.7.0:
- version "4.7.0"
- resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
- integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
-
-lodash.throttle@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
- integrity sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==
-
-lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19:
- version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
- integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-
-log-symbols@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a"
- integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==
- dependencies:
- chalk "^2.0.1"
-
-logkitty@^0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/logkitty/-/logkitty-0.7.1.tgz#8e8d62f4085a826e8d38987722570234e33c6aa7"
- integrity sha512-/3ER20CTTbahrCrpYfPn7Xavv9diBROZpoXGVZDWMw4b/X4uuUwAC0ki85tgsdMRONURyIJbcOvS94QsUBYPbQ==
- dependencies:
- ansi-fragments "^0.2.1"
- dayjs "^1.8.15"
- yargs "^15.1.0"
-
-lolex@^5.0.0:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367"
- integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==
- dependencies:
- "@sinonjs/commons" "^1.7.0"
-
-loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
- integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
- dependencies:
- js-tokens "^3.0.0 || ^4.0.0"
-
-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"
-
-make-dir@^2.0.0, make-dir@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
- integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
- dependencies:
- pify "^4.0.1"
- semver "^5.6.0"
-
-make-dir@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
- integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
- dependencies:
- semver "^6.0.0"
-
-makeerror@1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
- integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
- dependencies:
- tmpl "1.0.5"
-
-map-cache@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
- integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==
-
-map-visit@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
- integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==
- dependencies:
- object-visit "^1.0.0"
-
-merge-stream@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
- integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-
-metro-babel-register@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-babel-register/-/metro-babel-register-0.64.0.tgz#1a2d23f68da8b8ee42e78dca37ad21a5f4d3647d"
- integrity sha512-Kf6YvE3kIRumGnjK0Q9LqGDIdnsX9eFGtNBmBuCVDuB9wGGA/5CgX8We8W7Y44dz1RGTcHJRhfw5iGg+pwC3aQ==
- dependencies:
- "@babel/core" "^7.0.0"
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/register" "^7.0.0"
- escape-string-regexp "^1.0.5"
-
-metro-babel-transformer@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.64.0.tgz#a21f8a989a5ea60c1109456e21bd4d9374194ea0"
- integrity sha512-itZaxKTgmKGEZWxNzbSZBc22NngrMZzoUNuU92aHSTGkYi2WH4XlvzEHsstmIKHMsRVKl75cA+mNmgk4gBFJKw==
- dependencies:
- "@babel/core" "^7.0.0"
- metro-source-map "0.64.0"
- nullthrows "^1.1.1"
-
-metro-cache-key@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.64.0.tgz#98d0a94332453c4c52b74f72c07cc62a5c264c4f"
- integrity sha512-O9B65G8L/fopck45ZhdRosyVZdMtUQuX5mBWEC1NRj02iWBIUPLmYMjrunqIe8vHipCMp3DtTCm/65IlBmO8jg==
-
-metro-cache@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.64.0.tgz#a769503e12521d9e9d95ce5840ffb2efdb4e8703"
- integrity sha512-QvGfxe/1QQYM9XOlR8W1xqE9eHDw/AgJIgYGn/TxZxBu9Zga+Rgs1omeSZju45D8w5VWgMr83ma5kACgzvOecg==
- dependencies:
- metro-core "0.64.0"
- mkdirp "^0.5.1"
- rimraf "^2.5.4"
-
-metro-config@0.64.0, metro-config@^0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.64.0.tgz#b634fa05cffd06b1e50e4339c200f90a42924afb"
- integrity sha512-QhM4asnX5KhlRWaugwVGNNXhX0Z85u5nK0UQ/A90bBb4xWyXqUe20e788VtdA75rkQiiI6wXTCIHWT0afbnjwQ==
- dependencies:
- cosmiconfig "^5.0.5"
- jest-validate "^26.5.2"
- metro "0.64.0"
- metro-cache "0.64.0"
- metro-core "0.64.0"
- metro-runtime "0.64.0"
-
-metro-core@0.64.0, metro-core@^0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.64.0.tgz#7616b27acfe7baa476f6cd6bd9e70ae64fa62541"
- integrity sha512-v8ZQ5j72EaUwamQ8pLfHlOHTyp7SbdazvHPzFGDpHnwIQqIT0Bw3Syg8R4regTlVG3ngpeSEAi005UITljmMcQ==
- dependencies:
- jest-haste-map "^26.5.2"
- lodash.throttle "^4.1.1"
- metro-resolver "0.64.0"
-
-metro-hermes-compiler@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.64.0.tgz#e6043d7aa924e5b2be99bd3f602e693685d15386"
- integrity sha512-CLAjVDWGAoGhbi2ZyPHnH5YDdfrDIx6+tzFWfHGIMTZkYBXsYta9IfYXBV8lFb6BIbrXLjlXZAOoosknetMPOA==
-
-metro-inspector-proxy@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.64.0.tgz#9a481b3f49773d5418e028178efec68f861bec88"
- integrity sha512-KywbH3GNSz9Iqw4UH3smgaV2dBHHYMISeN7ORntDL/G+xfgPc6vt13d+zFb907YpUcXj5N0vdoiAHI5V/0y8IA==
- dependencies:
- connect "^3.6.5"
- debug "^2.2.0"
- ws "^1.1.5"
- yargs "^15.3.1"
-
-metro-minify-uglify@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.64.0.tgz#da6ab4dda030e3211f5924e7f41ed308d466068f"
- integrity sha512-DRwRstqXR5qfte9Nuwoov5dRXxL7fJeVlO5fGyOajWeO3+AgPjvjXh/UcLJqftkMWTPGUFuzAD5/7JC5v5FLWw==
- dependencies:
- uglify-es "^3.1.9"
-
-metro-react-native-babel-preset@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.64.0.tgz#76861408681dfda3c1d962eb31a8994918c976f8"
- integrity sha512-HcZ0RWQRuJfpPiaHyFQJzcym+/dDIVUPwUAXWoub/C4GkGu+mPjp8vqK6g0FxokCnnI2TK0gZTza2IDfiNNscQ==
- dependencies:
- "@babel/core" "^7.0.0"
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-syntax-dynamic-import" "^7.0.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.2.0"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-syntax-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.0.0"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-for-of" "^7.0.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-object-assign" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-self" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-regenerator" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-template-literals" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.5.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- react-refresh "^0.4.0"
-
-metro-react-native-babel-preset@^0.59.0:
- version "0.59.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.59.0.tgz#20e020bc6ac9849e1477de1333d303ed42aba225"
- integrity sha512-BoO6ncPfceIDReIH8pQ5tQptcGo5yRWQXJGVXfANbiKLq4tfgdZB1C1e2rMUJ6iypmeJU9dzl+EhPmIFKtgREg==
- dependencies:
- "@babel/plugin-proposal-class-properties" "^7.0.0"
- "@babel/plugin-proposal-export-default-from" "^7.0.0"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-proposal-object-rest-spread" "^7.0.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.0.0"
- "@babel/plugin-proposal-optional-chaining" "^7.0.0"
- "@babel/plugin-syntax-dynamic-import" "^7.0.0"
- "@babel/plugin-syntax-export-default-from" "^7.0.0"
- "@babel/plugin-syntax-flow" "^7.2.0"
- "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0"
- "@babel/plugin-syntax-optional-chaining" "^7.0.0"
- "@babel/plugin-transform-arrow-functions" "^7.0.0"
- "@babel/plugin-transform-block-scoping" "^7.0.0"
- "@babel/plugin-transform-classes" "^7.0.0"
- "@babel/plugin-transform-computed-properties" "^7.0.0"
- "@babel/plugin-transform-destructuring" "^7.0.0"
- "@babel/plugin-transform-exponentiation-operator" "^7.0.0"
- "@babel/plugin-transform-flow-strip-types" "^7.0.0"
- "@babel/plugin-transform-for-of" "^7.0.0"
- "@babel/plugin-transform-function-name" "^7.0.0"
- "@babel/plugin-transform-literals" "^7.0.0"
- "@babel/plugin-transform-modules-commonjs" "^7.0.0"
- "@babel/plugin-transform-object-assign" "^7.0.0"
- "@babel/plugin-transform-parameters" "^7.0.0"
- "@babel/plugin-transform-react-display-name" "^7.0.0"
- "@babel/plugin-transform-react-jsx" "^7.0.0"
- "@babel/plugin-transform-react-jsx-self" "^7.0.0"
- "@babel/plugin-transform-react-jsx-source" "^7.0.0"
- "@babel/plugin-transform-regenerator" "^7.0.0"
- "@babel/plugin-transform-runtime" "^7.0.0"
- "@babel/plugin-transform-shorthand-properties" "^7.0.0"
- "@babel/plugin-transform-spread" "^7.0.0"
- "@babel/plugin-transform-sticky-regex" "^7.0.0"
- "@babel/plugin-transform-template-literals" "^7.0.0"
- "@babel/plugin-transform-typescript" "^7.5.0"
- "@babel/plugin-transform-unicode-regex" "^7.0.0"
- "@babel/template" "^7.0.0"
- react-refresh "^0.4.0"
-
-metro-react-native-babel-transformer@0.64.0, metro-react-native-babel-transformer@^0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.64.0.tgz#eafef756972f20efdc51bd5361d55f8598355623"
- integrity sha512-K1sHO3ODBFCr7uEiCQ4RvVr+cQg0EHQF8ChVPnecGh/WDD8udrTq9ECwB0dRfMjAvlsHtRUlJm6ZSI8UPgum2w==
- dependencies:
- "@babel/core" "^7.0.0"
- babel-preset-fbjs "^3.3.0"
- metro-babel-transformer "0.64.0"
- metro-react-native-babel-preset "0.64.0"
- metro-source-map "0.64.0"
- nullthrows "^1.1.1"
-
-metro-resolver@0.64.0, metro-resolver@^0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.64.0.tgz#21126b44f31346ac2ce0b06b77ef65e8c9e2294a"
- integrity sha512-cJ26Id8Zf+HmS/1vFwu71K3u7ep/+HeXXAJIeVDYf+niE7AWB9FijyMtAlQgbD8elWqv1leJCnQ/xHRFBfGKYA==
- dependencies:
- absolute-path "^0.0.0"
-
-metro-runtime@0.64.0, metro-runtime@^0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.64.0.tgz#cdaa1121d91041bf6345f2a69eb7c2fb289eff7b"
- integrity sha512-m7XbWOaIOeFX7YcxUhmnOi6Pg8EaeL89xyZ+quZyZVF1aNoTr4w8FfbKxvijpjsytKHIZtd+43m2Wt5JrqyQmQ==
-
-metro-source-map@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.64.0.tgz#4310e17c3d4539c6369688022494ad66fa4d39a1"
- integrity sha512-OCG2rtcp5cLEGYvAbfkl6mEc0J2FPRP4/UCEly+juBk7hawS9bCBMBfhJm/HIsvY1frk6nT2Vsl1O8YBbwyx2g==
- dependencies:
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
- invariant "^2.2.4"
- metro-symbolicate "0.64.0"
- nullthrows "^1.1.1"
- ob1 "0.64.0"
- source-map "^0.5.6"
- vlq "^1.0.0"
-
-metro-symbolicate@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.64.0.tgz#405c21438ab553c29f6841da52ca76ee87bb06ac"
- integrity sha512-qIi+YRrDWnLVmydj6gwidYLPaBsakZRibGWSspuXgHAxOI3UuLwlo4dpQ73Et0gyHjI7ZvRMRY8JPiOntf9AQQ==
- dependencies:
- invariant "^2.2.4"
- metro-source-map "0.64.0"
- nullthrows "^1.1.1"
- source-map "^0.5.6"
- through2 "^2.0.1"
- vlq "^1.0.0"
-
-metro-transform-plugins@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.64.0.tgz#41d3dce0f2966bbd79fea1ecff61bcc8a00e4665"
- integrity sha512-iTIRBD/wBI98plfxj8jAoNUUXfXLNlyvcjPtshhpGvdwu9pzQilGfnDnOaaK+vbITcOk9w5oQectXyJwAqTr1A==
- dependencies:
- "@babel/core" "^7.0.0"
- "@babel/generator" "^7.5.0"
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- nullthrows "^1.1.1"
-
-metro-transform-worker@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.64.0.tgz#f94429b2c42b13cb1c93be4c2e25e97f2d27ca60"
- integrity sha512-wegRtK8GyLF6IPZRBJp+zsORgA4iX0h1DRpknyAMDCtSbJ4VU2xV/AojteOgAsDvY3ucAGsvfuZLNDJHUdUNHQ==
- dependencies:
- "@babel/core" "^7.0.0"
- "@babel/generator" "^7.5.0"
- "@babel/parser" "^7.0.0"
- "@babel/types" "^7.0.0"
- babel-preset-fbjs "^3.3.0"
- metro "0.64.0"
- metro-babel-transformer "0.64.0"
- metro-cache "0.64.0"
- metro-cache-key "0.64.0"
- metro-hermes-compiler "0.64.0"
- metro-source-map "0.64.0"
- metro-transform-plugins "0.64.0"
- nullthrows "^1.1.1"
-
-metro@0.64.0, metro@^0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/metro/-/metro-0.64.0.tgz#0091a856cfbcc94dd576da563eee466e96186195"
- integrity sha512-G2OC08Rzfs0kqnSEuKo2yZxR+/eNUpA93Ru45c60uN0Dw3HPrDi+ZBipgFftC6iLE0l+6hu8roFFIofotWxybw==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- "@babel/core" "^7.0.0"
- "@babel/generator" "^7.5.0"
- "@babel/parser" "^7.0.0"
- "@babel/template" "^7.0.0"
- "@babel/traverse" "^7.0.0"
- "@babel/types" "^7.0.0"
- absolute-path "^0.0.0"
- accepts "^1.3.7"
- async "^2.4.0"
- chalk "^4.0.0"
- ci-info "^2.0.0"
- connect "^3.6.5"
- debug "^2.2.0"
- denodeify "^1.2.1"
- error-stack-parser "^2.0.6"
- fs-extra "^1.0.0"
- graceful-fs "^4.1.3"
- image-size "^0.6.0"
- invariant "^2.2.4"
- jest-haste-map "^26.5.2"
- jest-worker "^26.0.0"
- lodash.throttle "^4.1.1"
- metro-babel-register "0.64.0"
- metro-babel-transformer "0.64.0"
- metro-cache "0.64.0"
- metro-cache-key "0.64.0"
- metro-config "0.64.0"
- metro-core "0.64.0"
- metro-hermes-compiler "0.64.0"
- metro-inspector-proxy "0.64.0"
- metro-minify-uglify "0.64.0"
- metro-react-native-babel-preset "0.64.0"
- metro-resolver "0.64.0"
- metro-runtime "0.64.0"
- metro-source-map "0.64.0"
- metro-symbolicate "0.64.0"
- metro-transform-plugins "0.64.0"
- metro-transform-worker "0.64.0"
- mime-types "^2.1.27"
- mkdirp "^0.5.1"
- node-fetch "^2.2.0"
- nullthrows "^1.1.1"
- rimraf "^2.5.4"
- serialize-error "^2.1.0"
- source-map "^0.5.6"
- strip-ansi "^6.0.0"
- temp "0.8.3"
- throat "^5.0.0"
- ws "^1.1.5"
- yargs "^15.3.1"
-
-micromatch@^3.1.10, micromatch@^3.1.4:
- version "3.1.10"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
- integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- braces "^2.3.1"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- extglob "^2.0.4"
- fragment-cache "^0.2.1"
- kind-of "^6.0.2"
- nanomatch "^1.2.9"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.2"
-
-micromatch@^4.0.2:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
- integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
- dependencies:
- braces "^3.0.2"
- picomatch "^2.3.1"
-
-mime-db@1.52.0, "mime-db@>= 1.43.0 < 2":
- version "1.52.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
- integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
-
-mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.34:
- version "2.1.35"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
- integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
- dependencies:
- mime-db "1.52.0"
-
-mime@1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
- integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-mime@^2.4.1:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
- integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
-
-mimic-fn@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
- integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
-
-mimic-fn@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
- integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-
-minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
- integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
- dependencies:
- brace-expansion "^1.1.7"
-
-minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.6:
- version "1.2.7"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18"
- integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==
-
-mixin-deep@^1.2.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
- integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
- dependencies:
- for-in "^1.0.2"
- is-extendable "^1.0.1"
-
-mkdirp@^0.5.1:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
- integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
- dependencies:
- minimist "^1.2.6"
-
-ms@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
- integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==
-
-ms@2.1.2:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
- integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-ms@2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
- integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-
-mute-stream@0.0.8:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
- integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
-
-nanomatch@^1.2.9:
- version "1.2.13"
- resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
- integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
- dependencies:
- arr-diff "^4.0.0"
- array-unique "^0.3.2"
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- fragment-cache "^0.2.1"
- is-windows "^1.0.2"
- kind-of "^6.0.2"
- object.pick "^1.3.0"
- regex-not "^1.0.0"
- snapdragon "^0.8.1"
- to-regex "^3.0.1"
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
- integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
-
-negotiator@0.6.3:
- version "0.6.3"
- resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
- integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
-
-neo-async@^2.5.0:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
- integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
-
-nice-try@^1.0.4:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
- integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-
-nocache@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/nocache/-/nocache-2.1.0.tgz#120c9ffec43b5729b1d5de88cd71aa75a0ba491f"
- integrity sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q==
-
-node-dir@^0.1.17:
- version "0.1.17"
- resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5"
- integrity sha512-tmPX422rYgofd4epzrNoOXiE8XFZYOcCq1vD7MAXCDO+O+zndlA2ztdKKMa+EeuBG5tHETpr4ml4RGgpqDCCAg==
- dependencies:
- minimatch "^3.0.2"
-
-node-fetch@^2.2.0, node-fetch@^2.6.0:
- version "2.6.7"
- resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
- integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
- dependencies:
- whatwg-url "^5.0.0"
-
-node-int64@^0.4.0:
- version "0.4.0"
- resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
- integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==
-
-node-notifier@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-6.0.0.tgz#cea319e06baa16deec8ce5cd7f133c4a46b68e12"
- integrity sha512-SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==
- dependencies:
- growly "^1.3.0"
- is-wsl "^2.1.1"
- semver "^6.3.0"
- shellwords "^0.1.1"
- which "^1.3.1"
-
-node-releases@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
- integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
-
-node-stream-zip@^1.9.1:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/node-stream-zip/-/node-stream-zip-1.15.0.tgz#158adb88ed8004c6c49a396b50a6a5de3bca33ea"
- integrity sha512-LN4fydt9TqhZhThkZIVQnF9cwjU3qmUH9h78Mx/K7d3VvfRqqwthLwJEUOEL0QPZ0XQmNN7be5Ggit5+4dq3Bw==
-
-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==
- dependencies:
- hosted-git-info "^2.1.4"
- resolve "^1.10.0"
- semver "2 || 3 || 4 || 5"
- 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"
- integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==
- dependencies:
- remove-trailing-separator "^1.0.1"
-
-normalize-path@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
- integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-npm-run-path@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
- integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==
- dependencies:
- path-key "^2.0.0"
-
-npm-run-path@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
- integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
- dependencies:
- path-key "^3.0.0"
-
-nullthrows@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/nullthrows/-/nullthrows-1.1.1.tgz#7818258843856ae971eae4208ad7d7eb19a431b1"
- integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==
-
-nwsapi@^2.2.0:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0"
- integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==
-
-oauth-sign@~0.9.0:
- version "0.9.0"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
- integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
-ob1@0.64.0:
- version "0.64.0"
- resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.64.0.tgz#f254a55a53ca395c4f9090e28a85483eac5eba19"
- integrity sha512-CO1N+5dhvy+MoAwxz8+fymEUcwsT4a+wHhrHFb02LppcJdHxgcBWviwEhUwKOD2kLMQ7ijrrzybOqpGcqEtvpQ==
-
-object-assign@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
- integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
-
-object-copy@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
- integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==
- dependencies:
- copy-descriptor "^0.1.0"
- define-property "^0.2.5"
- kind-of "^3.0.3"
-
-object-inspect@^1.12.2, object-inspect@^1.9.0:
- version "1.12.2"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
- integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
-
-object-keys@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
- integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object-visit@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
- integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==
- dependencies:
- isobject "^3.0.0"
-
-object.assign@^4.1.0, object.assign@^4.1.4:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f"
- integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- has-symbols "^1.0.3"
- object-keys "^1.1.1"
-
-object.entries@^1.1.1:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23"
- integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-object.fromentries@^2.0.2:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73"
- integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-object.pick@^1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
- integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==
- dependencies:
- isobject "^3.0.1"
-
-object.values@^1.1.1:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
- integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-on-finished@2.4.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
- integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==
- dependencies:
- ee-first "1.1.1"
-
-on-finished@~2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
- integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==
- dependencies:
- ee-first "1.1.1"
-
-on-headers@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
- integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
- dependencies:
- wrappy "1"
-
-onetime@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
- integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==
- dependencies:
- mimic-fn "^1.0.0"
-
-onetime@^5.1.0:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
- integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
- dependencies:
- mimic-fn "^2.1.0"
-
-open@^6.2.0:
- version "6.4.0"
- resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9"
- integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==
- dependencies:
- is-wsl "^1.1.0"
-
-optionator@^0.8.1, optionator@^0.8.3:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
- integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
- dependencies:
- deep-is "~0.1.3"
- fast-levenshtein "~2.0.6"
- levn "~0.3.0"
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
- word-wrap "~1.2.3"
-
-options@>=0.0.5:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
- integrity sha512-bOj3L1ypm++N+n7CEbbe473A414AB7z+amKYshRb//iuL3MpdDCLhPnw6aVTdKB9g5ZRVHIEp8eUln6L2NUStg==
-
-ora@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318"
- integrity sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==
- dependencies:
- chalk "^2.4.2"
- cli-cursor "^2.1.0"
- cli-spinners "^2.0.0"
- log-symbols "^2.2.0"
- strip-ansi "^5.2.0"
- wcwidth "^1.0.1"
-
-os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
- integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
-
-p-each-series@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a"
- integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==
-
-p-finally@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
- integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==
-
-p-finally@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561"
- integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==
-
-p-limit@^2.0.0, p-limit@^2.2.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
- integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
- dependencies:
- p-try "^2.0.0"
-
-p-locate@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
- integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
- dependencies:
- p-limit "^2.0.0"
-
-p-locate@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
- integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
- dependencies:
- p-limit "^2.2.0"
-
-p-try@^2.0.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
- integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-parent-module@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
- integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
- dependencies:
- callsites "^3.0.0"
-
-parse-json@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==
- dependencies:
- error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
-
-parse-json@^5.0.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
- integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
- dependencies:
- "@babel/code-frame" "^7.0.0"
- error-ex "^1.3.1"
- json-parse-even-better-errors "^2.3.0"
- lines-and-columns "^1.1.6"
-
-parse5@5.1.0:
- version "5.1.0"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2"
- integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==
-
-parseurl@~1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
- integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-pascalcase@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
- integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
- integrity sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==
-
-path-exists@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
- integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
- integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
-path-key@^2.0.0, path-key@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
- integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==
-
-path-key@^3.0.0, path-key@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
- integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
-
-path-parse@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
- integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-
-performance-now@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
- integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==
-
-picocolors@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
- integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-
-picomatch@^2.0.4, picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
-pify@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
- integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-
-pirates@^4.0.1, pirates@^4.0.5:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
- integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
-
-pkg-dir@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
- integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
- dependencies:
- find-up "^3.0.0"
-
-pkg-dir@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
- integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
- dependencies:
- find-up "^4.0.0"
-
-plist@^3.0.1, plist@^3.0.5:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/plist/-/plist-3.0.6.tgz#7cfb68a856a7834bca6dbfe3218eb9c7740145d3"
- integrity sha512-WiIVYyrp8TD4w8yCvyeIr+lkmrGRd5u0VbRnU+tP/aRLxP/YadJUYOMZJ/6hIa3oUyVCsycXvtNRgd5XBJIbiA==
- dependencies:
- base64-js "^1.5.1"
- xmlbuilder "^15.1.1"
-
-pn@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb"
- integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==
-
-posix-character-classes@^0.1.0:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
- integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==
-
-prelude-ls@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
- integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
-
-prettier-linter-helpers@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
- integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
- dependencies:
- fast-diff "^1.1.2"
-
-prettier@^2.0.2:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.0.tgz#c7df58393c9ba77d6fba3921ae01faf994fb9dc9"
- integrity sha512-9Lmg8hTFZKG0Asr/kW9Bp8tJjRVluO8EJQVfY2T7FMw9T5jy4I/Uvx0Rca/XWf50QQ1/SS48+6IJWnrb+2yemA==
-
-pretty-format@^25.2.1, pretty-format@^25.5.0:
- version "25.5.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.5.0.tgz#7873c1d774f682c34b8d48b6743a2bf2ac55791a"
- integrity sha512-kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==
- dependencies:
- "@jest/types" "^25.5.0"
- ansi-regex "^5.0.0"
- ansi-styles "^4.0.0"
- react-is "^16.12.0"
-
-pretty-format@^26.5.2, pretty-format@^26.6.2:
- version "26.6.2"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93"
- integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==
- dependencies:
- "@jest/types" "^26.6.2"
- ansi-regex "^5.0.0"
- ansi-styles "^4.0.0"
- react-is "^17.0.1"
-
-process-nextick-args@~2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
- integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-progress@^2.0.0:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
- integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
-
-promise@^8.0.3:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a"
- integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==
- dependencies:
- asap "~2.0.6"
-
-prompts@^2.0.1, prompts@^2.4.0:
- version "2.4.2"
- resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069"
- integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==
- dependencies:
- kleur "^3.0.3"
- sisteransi "^1.0.5"
-
-prop-types@^15.6.2, prop-types@^15.7.2:
- version "15.8.1"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
- integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
- dependencies:
- loose-envify "^1.4.0"
- object-assign "^4.1.1"
- react-is "^16.13.1"
-
-psl@^1.1.28:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
- integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
-
-pump@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
- integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
- dependencies:
- end-of-stream "^1.1.0"
- once "^1.3.1"
-
-punycode@^2.1.0, punycode@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
- integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-
-qs@~6.5.2:
- version "6.5.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
- integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
-
-range-parser@~1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
- integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-react-devtools-core@^4.6.0:
- version "4.27.0"
- resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.27.0.tgz#b57eb69df273c88daa3dc1577177ea9bbdd0a67d"
- integrity sha512-9dfVBf/9yquz5deUUCi9kA/JA4+2MTUxfKRv6IqizR0B26/28CxJedXb0kXtPD/cRKce8ecU1KhfJiDzUkOOaQ==
- dependencies:
- shell-quote "^1.6.1"
- ws "^7"
-
-react-is@^16.12.0, react-is@^16.13.1, react-is@^16.8.6:
- version "16.13.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
- integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
-
-react-is@^17.0.1:
- version "17.0.2"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
- integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
-
-react-native-codegen@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.0.6.tgz#b3173faa879cf71bfade8d030f9c4698388f6909"
- integrity sha512-cMvrUelD81wiPitEPiwE/TCNscIVauXxmt4NTGcy18HrUd0WRWXfYzAQGXm0eI87u3NMudNhqFj2NISJenxQHg==
- dependencies:
- flow-parser "^0.121.0"
- jscodeshift "^0.11.0"
- nullthrows "^1.1.1"
-
-react-native-onesignal@^4.4.1:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/react-native-onesignal/-/react-native-onesignal-4.4.1.tgz#c79c94ea8622012adcd3d1e36ba91be6fa126453"
- integrity sha512-vbS0E2TO5KljT0l1nAce04aOZF6FLv9oUaliffhFQR92oTHAbwNmwwMpxZF6CIcNANDDKkYtKPw5h7baUxmQdw==
- dependencies:
- invariant "^2.2.2"
-
-react-native@0.64.1:
- version "0.64.1"
- resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.64.1.tgz#cd38f5b47b085549686f34eb0c9dcd466f307635"
- integrity sha512-jvSj+hNAfwvhaSmxd5KHJ5HidtG0pDXzoH6DaqNpU74g3CmAiA8vuk58B5yx/DYuffGq6PeMniAcwuh3Xp4biQ==
- dependencies:
- "@jest/create-cache-key-function" "^26.5.0"
- "@react-native-community/cli" "^5.0.1-alpha.0"
- "@react-native-community/cli-platform-android" "^5.0.1-alpha.0"
- "@react-native-community/cli-platform-ios" "^5.0.1-alpha.0"
- "@react-native/assets" "1.0.0"
- "@react-native/normalize-color" "1.0.0"
- "@react-native/polyfills" "1.0.0"
- abort-controller "^3.0.0"
- anser "^1.4.9"
- base64-js "^1.1.2"
- event-target-shim "^5.0.1"
- hermes-engine "~0.7.0"
- invariant "^2.2.4"
- jsc-android "^245459.0.0"
- metro-babel-register "0.64.0"
- metro-react-native-babel-transformer "0.64.0"
- metro-runtime "0.64.0"
- metro-source-map "0.64.0"
- nullthrows "^1.1.1"
- pretty-format "^26.5.2"
- promise "^8.0.3"
- prop-types "^15.7.2"
- react-devtools-core "^4.6.0"
- react-native-codegen "^0.0.6"
- react-refresh "^0.4.0"
- regenerator-runtime "^0.13.2"
- scheduler "^0.20.1"
- shelljs "^0.8.4"
- stacktrace-parser "^0.1.3"
- use-subscription "^1.0.0"
- whatwg-fetch "^3.0.0"
- ws "^6.1.4"
-
-react-refresh@^0.4.0:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.4.3.tgz#966f1750c191672e76e16c2efa569150cc73ab53"
- integrity sha512-Hwln1VNuGl/6bVwnd0Xdn1e84gT/8T9aYNL+HAKDArLCS7LWjwr7StE30IEYbIkx0Vi3vs+coQxe+SQDbGbbpA==
-
-react-test-renderer@16.13.1:
- version "16.13.1"
- resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.13.1.tgz#de25ea358d9012606de51e012d9742e7f0deabc1"
- integrity sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==
- dependencies:
- object-assign "^4.1.1"
- prop-types "^15.6.2"
- react-is "^16.8.6"
- scheduler "^0.19.1"
-
-react@16.13.1:
- version "16.13.1"
- resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
- integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
- dependencies:
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
- prop-types "^15.6.2"
-
-read-pkg-up@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507"
- integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==
- dependencies:
- find-up "^4.1.0"
- read-pkg "^5.2.0"
- type-fest "^0.8.1"
-
-read-pkg@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc"
- integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==
- dependencies:
- "@types/normalize-package-data" "^2.4.0"
- normalize-package-data "^2.5.0"
- parse-json "^5.0.0"
- type-fest "^0.6.0"
-
-readable-stream@~2.3.6:
- version "2.3.7"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
- integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
- dependencies:
- core-util-is "~1.0.0"
- inherits "~2.0.3"
- isarray "~1.0.0"
- process-nextick-args "~2.0.0"
- safe-buffer "~5.1.1"
- string_decoder "~1.1.1"
- util-deprecate "~1.0.1"
-
-realpath-native@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-2.0.0.tgz#7377ac429b6e1fd599dc38d08ed942d0d7beb866"
- integrity sha512-v1SEYUOXXdbBZK8ZuNgO4TBjamPsiSgcFr0aP+tEKpQZK8vooEUqV6nm6Cv502mX4NF2EfsnVqtNAHG+/6Ur1Q==
-
-recast@^0.20.3:
- version "0.20.5"
- resolved "https://registry.yarnpkg.com/recast/-/recast-0.20.5.tgz#8e2c6c96827a1b339c634dd232957d230553ceae"
- integrity sha512-E5qICoPoNL4yU0H0NoBDntNB0Q5oMSNh9usFctYniLBluTthi3RsQVBXIJNbApOlvSwW/RGxIuokPcAc59J5fQ==
- dependencies:
- ast-types "0.14.2"
- esprima "~4.0.0"
- source-map "~0.6.1"
- tslib "^2.0.1"
-
-rechoir@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
- integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==
- dependencies:
- resolve "^1.1.6"
-
-regenerate-unicode-properties@^10.1.0:
- version "10.1.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
- integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==
- dependencies:
- regenerate "^1.4.2"
-
-regenerate@^1.4.2:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
- integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
-
-regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.2:
- version "0.13.11"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9"
- integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==
-
-regenerator-transform@^0.15.1:
- version "0.15.1"
- resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56"
- integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==
- dependencies:
- "@babel/runtime" "^7.8.4"
-
-regex-not@^1.0.0, regex-not@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
- integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
- dependencies:
- extend-shallow "^3.0.2"
- safe-regex "^1.1.0"
-
-regexp.prototype.flags@^1.4.3:
- version "1.4.3"
- resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac"
- integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- functions-have-names "^1.2.2"
-
-regexpp@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f"
- integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==
-
-regexpp@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
- integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
-
-regexpu-core@^5.2.1:
- version "5.2.2"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc"
- integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==
- dependencies:
- regenerate "^1.4.2"
- regenerate-unicode-properties "^10.1.0"
- regjsgen "^0.7.1"
- regjsparser "^0.9.1"
- unicode-match-property-ecmascript "^2.0.0"
- unicode-match-property-value-ecmascript "^2.1.0"
-
-regjsgen@^0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.7.1.tgz#ee5ef30e18d3f09b7c369b76e7c2373ed25546f6"
- integrity sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==
-
-regjsparser@^0.9.1:
- version "0.9.1"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
- integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
- dependencies:
- jsesc "~0.5.0"
-
-remove-trailing-separator@^1.0.1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
- integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==
-
-repeat-element@^1.1.2:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9"
- integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==
-
-repeat-string@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
- integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==
-
-request-promise-core@1.1.4:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f"
- integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==
- dependencies:
- lodash "^4.17.19"
-
-request-promise-native@^1.0.7:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28"
- integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==
- dependencies:
- request-promise-core "1.1.4"
- stealthy-require "^1.1.1"
- tough-cookie "^2.3.3"
-
-request@^2.88.0:
- version "2.88.2"
- resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
- integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.8.0"
- caseless "~0.12.0"
- combined-stream "~1.0.6"
- extend "~3.0.2"
- forever-agent "~0.6.1"
- form-data "~2.3.2"
- har-validator "~5.1.3"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.19"
- oauth-sign "~0.9.0"
- performance-now "^2.1.0"
- qs "~6.5.2"
- safe-buffer "^5.1.2"
- tough-cookie "~2.5.0"
- tunnel-agent "^0.6.0"
- uuid "^3.3.2"
-
-require-directory@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
- integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
-
-require-main-filename@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
- integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
-
-resolve-cwd@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d"
- integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==
- dependencies:
- resolve-from "^5.0.0"
-
-resolve-from@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
- integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==
-
-resolve-from@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
- integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-
-resolve-from@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
- integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
-
-resolve-url@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
- integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==
-
-resolve@1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
- integrity sha512-9znBF0vBcaSN3W2j7wKvdERPwqTxSpCq+if5C0WoTCyV9n24rua28jeuQ2pL/HOf+yUe/Mef+H/5p60K0Id3bg==
-
-resolve@^1.1.6, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.17.0:
- version "1.22.1"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
- integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
- dependencies:
- is-core-module "^2.9.0"
- path-parse "^1.0.7"
- supports-preserve-symlinks-flag "^1.0.0"
-
-restore-cursor@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
- integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==
- dependencies:
- onetime "^2.0.0"
- signal-exit "^3.0.2"
-
-restore-cursor@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e"
- integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==
- dependencies:
- onetime "^5.1.0"
- signal-exit "^3.0.2"
-
-ret@~0.1.10:
- version "0.1.15"
- resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
- integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
-rimraf@2.6.3, rimraf@~2.6.2:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
- integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==
- dependencies:
- glob "^7.1.3"
-
-rimraf@^2.5.4:
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
- integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
- dependencies:
- glob "^7.1.3"
-
-rimraf@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
- integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
- dependencies:
- glob "^7.1.3"
-
-rimraf@~2.2.6:
- version "2.2.8"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582"
- integrity sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg==
-
-rsvp@^4.8.4:
- version "4.8.5"
- resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734"
- integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==
-
-run-async@^2.4.0:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
- integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
-
-rxjs@^6.6.0:
- version "6.6.7"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
- integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
- dependencies:
- tslib "^1.9.0"
-
-safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.2"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
- integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.2:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
- integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-
-safe-regex-test@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"
- integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==
- dependencies:
- call-bind "^1.0.2"
- get-intrinsic "^1.1.3"
- is-regex "^1.1.4"
-
-safe-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
- integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==
- dependencies:
- ret "~0.1.10"
-
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
- integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-sane@^4.0.3:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/sane/-/sane-4.1.0.tgz#ed881fd922733a6c461bc189dc2b6c006f3ffded"
- integrity sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==
- dependencies:
- "@cnakazawa/watch" "^1.0.3"
- anymatch "^2.0.0"
- capture-exit "^2.0.0"
- exec-sh "^0.3.2"
- execa "^1.0.0"
- fb-watchman "^2.0.0"
- micromatch "^3.1.4"
- minimist "^1.1.1"
- walker "~1.0.5"
-
-sax@^1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
- integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
-saxes@^3.1.9:
- version "3.1.11"
- resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b"
- integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==
- dependencies:
- xmlchars "^2.1.1"
-
-scheduler@^0.19.1:
- version "0.19.1"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
- integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
- dependencies:
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
-
-scheduler@^0.20.1:
- version "0.20.2"
- resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
- integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
- dependencies:
- loose-envify "^1.1.0"
- object-assign "^4.1.1"
-
-"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
- version "5.7.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
- integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
- version "6.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
- integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-
-semver@^7.3.2:
- version "7.3.8"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798"
- integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==
- dependencies:
- lru-cache "^6.0.0"
-
-send@0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
- integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
- dependencies:
- debug "2.6.9"
- depd "2.0.0"
- destroy "1.2.0"
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- etag "~1.8.1"
- fresh "0.5.2"
- http-errors "2.0.0"
- mime "1.6.0"
- ms "2.1.3"
- on-finished "2.4.1"
- range-parser "~1.2.1"
- statuses "2.0.1"
-
-serialize-error@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-2.1.0.tgz#50b679d5635cdf84667bdc8e59af4e5b81d5f60a"
- integrity sha512-ghgmKt5o4Tly5yEG/UJp8qTd0AN7Xalw4XBtDEKP655B699qMEtra1WlXeE6WIvdEG481JvRxULKsInq/iNysw==
-
-serve-static@^1.13.1:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
- integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
- dependencies:
- encodeurl "~1.0.2"
- escape-html "~1.0.3"
- parseurl "~1.3.3"
- send "0.18.0"
-
-set-blocking@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
- integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
-
-set-value@^2.0.0, set-value@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
- integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
- dependencies:
- extend-shallow "^2.0.1"
- is-extendable "^0.1.1"
- is-plain-object "^2.0.3"
- split-string "^3.0.1"
-
-setprototypeof@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424"
- integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==
-
-shallow-clone@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3"
- integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==
- dependencies:
- kind-of "^6.0.2"
-
-shebang-command@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
- integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==
- dependencies:
- shebang-regex "^1.0.0"
-
-shebang-command@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
- integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
- dependencies:
- shebang-regex "^3.0.0"
-
-shebang-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
- integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==
-
-shebang-regex@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
- integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
-
-shell-quote@1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767"
- integrity sha512-V0iQEZ/uoem3NmD91rD8XiuozJnq9/ZJnbHVXHnWqP1ucAhS3yJ7sLIIzEi57wFFcK3oi3kFUC46uSyWr35mxg==
- dependencies:
- array-filter "~0.0.0"
- array-map "~0.0.0"
- array-reduce "~0.0.0"
- jsonify "~0.0.0"
-
-shell-quote@^1.6.1:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8"
- integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==
-
-shelljs@^0.8.4:
- version "0.8.5"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c"
- integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
-shellwords@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b"
- integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==
-
-side-channel@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf"
- integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
- dependencies:
- call-bind "^1.0.0"
- get-intrinsic "^1.0.2"
- object-inspect "^1.9.0"
-
-signal-exit@^3.0.0, signal-exit@^3.0.2:
- version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
- integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-
-simple-plist@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/simple-plist/-/simple-plist-1.3.1.tgz#16e1d8f62c6c9b691b8383127663d834112fb017"
- integrity sha512-iMSw5i0XseMnrhtIzRb7XpQEXepa9xhWxGUojHBL43SIpQuDQkh3Wpy67ZbDzZVr6EKxvwVChnVpdl8hEVLDiw==
- dependencies:
- bplist-creator "0.1.0"
- bplist-parser "0.3.1"
- plist "^3.0.5"
-
-sisteransi@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
- integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-
-slash@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
- integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
-
-slice-ansi@^2.0.0, slice-ansi@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
- integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
- dependencies:
- ansi-styles "^3.2.0"
- astral-regex "^1.0.0"
- is-fullwidth-code-point "^2.0.0"
-
-snapdragon-node@^2.0.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
- integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
- dependencies:
- define-property "^1.0.0"
- isobject "^3.0.0"
- snapdragon-util "^3.0.1"
-
-snapdragon-util@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
- integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
- dependencies:
- kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
- integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
- dependencies:
- base "^0.11.1"
- debug "^2.2.0"
- define-property "^0.2.5"
- extend-shallow "^2.0.1"
- map-cache "^0.2.2"
- source-map "^0.5.6"
- source-map-resolve "^0.5.0"
- use "^3.1.0"
-
-source-map-resolve@^0.5.0:
- version "0.5.3"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
- integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==
- dependencies:
- atob "^2.1.2"
- decode-uri-component "^0.2.0"
- resolve-url "^0.2.1"
- source-map-url "^0.4.0"
- urix "^0.1.0"
-
-source-map-support@^0.5.16, source-map-support@^0.5.6:
- version "0.5.21"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
- integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
- dependencies:
- buffer-from "^1.0.0"
- source-map "^0.6.0"
-
-source-map-url@^0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56"
- integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==
-
-source-map@^0.5.6:
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
- integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
-
-source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
- integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-source-map@^0.7.3:
- version "0.7.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
- integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
-
-spdx-correct@^3.0.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
- integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
- dependencies:
- spdx-expression-parse "^3.0.0"
- spdx-license-ids "^3.0.0"
-
-spdx-exceptions@^2.1.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
- integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-
-spdx-expression-parse@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
- integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
- dependencies:
- spdx-exceptions "^2.1.0"
- spdx-license-ids "^3.0.0"
-
-spdx-license-ids@^3.0.0:
- version "3.0.12"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779"
- integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==
-
-split-string@^3.0.1, split-string@^3.0.2:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
- integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
- dependencies:
- extend-shallow "^3.0.0"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-
-sshpk@^1.7.0:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5"
- integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==
- dependencies:
- asn1 "~0.2.3"
- assert-plus "^1.0.0"
- bcrypt-pbkdf "^1.0.0"
- dashdash "^1.12.0"
- ecc-jsbn "~0.1.1"
- getpass "^0.1.1"
- jsbn "~0.1.0"
- safer-buffer "^2.0.2"
- tweetnacl "~0.14.0"
-
-stack-utils@^1.0.1:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.5.tgz#a19b0b01947e0029c8e451d5d61a498f5bb1471b"
- integrity sha512-KZiTzuV3CnSnSvgMRrARVCj+Ht7rMbauGDK0LdVFRGyenwdylpajAp4Q0i6SX8rEmbTpMMf6ryq2gb8pPq2WgQ==
- dependencies:
- escape-string-regexp "^2.0.0"
-
-stackframe@^1.3.4:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.3.4.tgz#b881a004c8c149a5e8efef37d51b16e412943310"
- integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
-
-stacktrace-parser@^0.1.3:
- version "0.1.10"
- resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a"
- integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg==
- dependencies:
- type-fest "^0.7.1"
-
-static-extend@^0.1.1:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
- integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==
- dependencies:
- define-property "^0.2.5"
- object-copy "^0.1.0"
-
-statuses@2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63"
- integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==
-
-statuses@~1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
- integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==
-
-stealthy-require@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
- integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g==
-
-stream-buffers@2.2.x:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/stream-buffers/-/stream-buffers-2.2.0.tgz#91d5f5130d1cef96dcfa7f726945188741d09ee4"
- integrity sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==
-
-string-length@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837"
- integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==
- dependencies:
- astral-regex "^1.0.0"
- strip-ansi "^5.2.0"
-
-string-width@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
- integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
- dependencies:
- emoji-regex "^7.0.1"
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^5.1.0"
-
-string-width@^4.1.0, string-width@^4.2.0:
- version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
- integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
- dependencies:
- emoji-regex "^8.0.0"
- is-fullwidth-code-point "^3.0.0"
- strip-ansi "^6.0.1"
-
-string.prototype.matchall@^4.0.2:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3"
- integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
- get-intrinsic "^1.1.3"
- has-symbols "^1.0.3"
- internal-slot "^1.0.3"
- regexp.prototype.flags "^1.4.3"
- side-channel "^1.0.4"
-
-string.prototype.trimend@^1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533"
- integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-string.prototype.trimstart@^1.0.5:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4"
- integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.4"
- es-abstract "^1.20.4"
-
-string_decoder@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
- integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
- dependencies:
- safe-buffer "~5.1.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"
- integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
- dependencies:
- ansi-regex "^4.1.0"
-
-strip-ansi@^6.0.0, strip-ansi@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
- integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
- dependencies:
- ansi-regex "^5.0.1"
-
-strip-bom@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878"
- integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==
-
-strip-eof@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
- integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==
-
-strip-final-newline@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
- integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
-
-strip-json-comments@^3.0.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
- integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-
-sudo-prompt@^9.0.0:
- version "9.2.1"
- resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-9.2.1.tgz#77efb84309c9ca489527a4e749f287e6bdd52afd"
- integrity sha512-Mu7R0g4ig9TUuGSxJavny5Rv0egCEtpZRNMrZaYS1vxkiIxGiGUwoezU3LazIQ+KE04hTrTfNPgxU5gzi7F5Pw==
-
-supports-color@^5.3.0:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
- integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
- dependencies:
- has-flag "^3.0.0"
-
-supports-color@^7.0.0, supports-color@^7.1.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
- integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
- dependencies:
- has-flag "^4.0.0"
-
-supports-hyperlinks@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624"
- integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==
- dependencies:
- has-flag "^4.0.0"
- supports-color "^7.0.0"
-
-supports-preserve-symlinks-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
- integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-
-symbol-tree@^3.2.2:
- version "3.2.4"
- resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
- integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
-
-table@^5.2.3:
- version "5.4.6"
- resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
- integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
- dependencies:
- ajv "^6.10.2"
- lodash "^4.17.14"
- slice-ansi "^2.1.0"
- string-width "^3.0.0"
-
-temp@0.8.3:
- version "0.8.3"
- resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59"
- integrity sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==
- dependencies:
- os-tmpdir "^1.0.0"
- rimraf "~2.2.6"
-
-temp@^0.8.1:
- version "0.8.4"
- resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2"
- integrity sha512-s0ZZzd0BzYv5tLSptZooSjK8oj6C+c19p7Vqta9+6NPOf7r+fxq0cJe6/oN4LTC79sy5NY8ucOJNgwsKCSbfqg==
- dependencies:
- rimraf "~2.6.2"
-
-terminal-link@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
- integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
- dependencies:
- ansi-escapes "^4.2.1"
- supports-hyperlinks "^2.0.0"
-
-test-exclude@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
- integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
- dependencies:
- "@istanbuljs/schema" "^0.1.2"
- glob "^7.1.4"
- minimatch "^3.0.4"
-
-text-table@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
- integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
-
-throat@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
- integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==
-
-through2@^2.0.1:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
- integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
- dependencies:
- readable-stream "~2.3.6"
- xtend "~4.0.1"
-
-through@^2.3.6:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
- integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
-
-tmp@^0.0.33:
- version "0.0.33"
- resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
- integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
- dependencies:
- os-tmpdir "~1.0.2"
-
-tmpl@1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
- integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
-
-to-fast-properties@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
- integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
-
-to-object-path@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
- integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==
- dependencies:
- kind-of "^3.0.2"
-
-to-regex-range@^2.1.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
- integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==
- dependencies:
- is-number "^3.0.0"
- repeat-string "^1.6.1"
-
-to-regex-range@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
- integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
- dependencies:
- is-number "^7.0.0"
-
-to-regex@^3.0.1, to-regex@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
- integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
- dependencies:
- define-property "^2.0.2"
- extend-shallow "^3.0.2"
- regex-not "^1.0.2"
- safe-regex "^1.1.0"
-
-toidentifier@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
- integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
-
-tough-cookie@^2.3.3, tough-cookie@~2.5.0:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
- integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
- dependencies:
- psl "^1.1.28"
- punycode "^2.1.1"
-
-tough-cookie@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2"
- integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==
- dependencies:
- ip-regex "^2.1.0"
- psl "^1.1.28"
- punycode "^2.1.1"
-
-tr46@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
- integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==
- dependencies:
- punycode "^2.1.0"
-
-tr46@~0.0.3:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
- integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
-
-tslib@^1.8.1, tslib@^1.9.0:
- version "1.14.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
- integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-
-tslib@^2.0.1:
- version "2.4.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
- integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
-
-tsutils@^3.17.1:
- version "3.21.0"
- resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
- integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
- dependencies:
- tslib "^1.8.1"
-
-tunnel-agent@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
- integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==
- dependencies:
- safe-buffer "^5.0.1"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
- version "0.14.5"
- resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
- integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==
-
-type-check@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
- integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==
- dependencies:
- prelude-ls "~1.1.2"
-
-type-detect@4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
- integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==
-
-type-fest@^0.21.3:
- version "0.21.3"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37"
- integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-
-type-fest@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b"
- integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==
-
-type-fest@^0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48"
- integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==
-
-type-fest@^0.8.1:
- version "0.8.1"
- resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
- integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-
-typedarray-to-buffer@^3.1.5:
- version "3.1.5"
- resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
- integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==
- dependencies:
- is-typedarray "^1.0.0"
-
-typescript@^3.8.3:
- version "3.9.10"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8"
- integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==
-
-uglify-es@^3.1.9:
- version "3.3.9"
- resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677"
- integrity sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==
- dependencies:
- commander "~2.13.0"
- source-map "~0.6.1"
-
-ultron@1.0.x:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa"
- integrity sha512-QMpnpVtYaWEeY+MwKDN/UdKlE/LsFZXM5lO1u7GaZzNgmIbGixHEmVMIKT+vqYOALu3m5GYQy9kz4Xu4IVn7Ow==
-
-unbox-primitive@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
- integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
- dependencies:
- call-bind "^1.0.2"
- has-bigints "^1.0.2"
- has-symbols "^1.0.3"
- which-boxed-primitive "^1.0.2"
-
-unicode-canonical-property-names-ecmascript@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
- integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
-
-unicode-match-property-ecmascript@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
- integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
- dependencies:
- unicode-canonical-property-names-ecmascript "^2.0.0"
- unicode-property-aliases-ecmascript "^2.0.0"
-
-unicode-match-property-value-ecmascript@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
- integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
-
-unicode-property-aliases-ecmascript@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
- integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
-
-union-value@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
- integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
- dependencies:
- arr-union "^3.1.0"
- get-value "^2.0.6"
- is-extendable "^0.1.1"
- set-value "^2.0.1"
-
-universalify@^0.1.0:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
- integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-
-unpipe@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
- integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==
-
-unset-value@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
- integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==
- dependencies:
- has-value "^0.3.1"
- isobject "^3.0.0"
-
-update-browserslist-db@^1.0.9:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
- integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
- dependencies:
- escalade "^3.1.1"
- picocolors "^1.0.0"
-
-uri-js@^4.2.2:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
- integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
- dependencies:
- punycode "^2.1.0"
-
-urix@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
- integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==
-
-use-subscription@^1.0.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/use-subscription/-/use-subscription-1.8.0.tgz#f118938c29d263c2bce12fc5585d3fe694d4dbce"
- integrity sha512-LISuG0/TmmoDoCRmV5XAqYkd3UCBNM0ML3gGBndze65WITcsExCD3DTvXXTLyNcOC0heFQZzluW88bN/oC1DQQ==
- dependencies:
- use-sync-external-store "^1.2.0"
-
-use-sync-external-store@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
- integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
-
-use@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
- integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
-util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
- integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
-
-utils-merge@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
- integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
-
-uuid@^3.3.2:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
- integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
-
-v8-compile-cache@^2.0.3:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
- integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-
-v8-to-istanbul@^4.1.3:
- version "4.1.4"
- resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6"
- integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ==
- dependencies:
- "@types/istanbul-lib-coverage" "^2.0.1"
- convert-source-map "^1.6.0"
- source-map "^0.7.3"
-
-validate-npm-package-license@^3.0.1:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
- integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
- dependencies:
- spdx-correct "^3.0.0"
- spdx-expression-parse "^3.0.0"
-
-vary@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
- integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
-
-verror@1.10.0:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
- integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==
- dependencies:
- assert-plus "^1.0.0"
- core-util-is "1.0.2"
- extsprintf "^1.2.0"
-
-vlq@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468"
- integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w==
-
-w3c-hr-time@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
- integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
- dependencies:
- browser-process-hrtime "^1.0.0"
-
-w3c-xmlserializer@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794"
- integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==
- dependencies:
- domexception "^1.0.1"
- webidl-conversions "^4.0.2"
- xml-name-validator "^3.0.0"
-
-walker@^1.0.7, walker@~1.0.5:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
- integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
- dependencies:
- makeerror "1.0.12"
-
-wcwidth@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
- integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==
- dependencies:
- defaults "^1.0.3"
-
-webidl-conversions@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
- integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
-
-webidl-conversions@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
- integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
-
-whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"
- integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==
- dependencies:
- iconv-lite "0.4.24"
-
-whatwg-fetch@^3.0.0:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz#dced24f37f2624ed0281725d51d0e2e3fe677f8c"
- integrity sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==
-
-whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
- integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==
-
-whatwg-url@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
- integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
- dependencies:
- tr46 "~0.0.3"
- webidl-conversions "^3.0.0"
-
-whatwg-url@^7.0.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
- integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
- dependencies:
- lodash.sortby "^4.7.0"
- tr46 "^1.0.1"
- webidl-conversions "^4.0.2"
-
-which-boxed-primitive@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
- integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
- dependencies:
- is-bigint "^1.0.1"
- is-boolean-object "^1.1.0"
- is-number-object "^1.0.4"
- is-string "^1.0.5"
- is-symbol "^1.0.3"
-
-which-module@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
- integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==
-
-which@^1.2.9, which@^1.3.1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
- integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
- dependencies:
- isexe "^2.0.0"
-
-which@^2.0.1, which@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
- integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
- dependencies:
- isexe "^2.0.0"
-
-word-wrap@~1.2.3:
- version "1.2.3"
- resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
- integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-
-wrap-ansi@^6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
- integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
- dependencies:
- ansi-styles "^4.0.0"
- string-width "^4.1.0"
- strip-ansi "^6.0.0"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
- integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
-write-file-atomic@^2.3.0:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481"
- integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==
- dependencies:
- graceful-fs "^4.1.11"
- imurmurhash "^0.1.4"
- signal-exit "^3.0.2"
-
-write-file-atomic@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
- integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
- dependencies:
- imurmurhash "^0.1.4"
- is-typedarray "^1.0.0"
- signal-exit "^3.0.2"
- typedarray-to-buffer "^3.1.5"
-
-write@1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3"
- integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==
- dependencies:
- mkdirp "^0.5.1"
-
-ws@^1.1.0, ws@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz#cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51"
- integrity sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==
- dependencies:
- options ">=0.0.5"
- ultron "1.0.x"
-
-ws@^6.1.4:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e"
- integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==
- dependencies:
- async-limiter "~1.0.0"
-
-ws@^7, ws@^7.0.0:
- version "7.5.9"
- resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
- integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
-
-xcode@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/xcode/-/xcode-2.1.0.tgz#bab64a7e954bb50ca8d19da7e09531c65a43ecfe"
- integrity sha512-uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==
- dependencies:
- simple-plist "^1.0.0"
- uuid "^3.3.2"
-
-xml-name-validator@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a"
- integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==
-
-xmlbuilder@^15.1.1:
- version "15.1.1"
- resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-15.1.1.tgz#9dcdce49eea66d8d10b42cae94a79c3c8d0c2ec5"
- integrity sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==
-
-xmlchars@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
- integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
-
-xmldoc@^1.1.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.2.0.tgz#7554371bfd8c138287cff01841ae4566d26e5541"
- integrity sha512-2eN8QhjBsMW2uVj7JHLHkMytpvGHLHxKXBy4J3fAT/HujsEtM6yU84iGjpESYGHg6XwK0Vu4l+KgqQ2dv2cCqg==
- dependencies:
- sax "^1.2.4"
-
-xregexp@^4.3.0:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.4.1.tgz#c84a88fa79e9ab18ca543959712094492185fe65"
- integrity sha512-2u9HwfadaJaY9zHtRRnH6BY6CQVNQKkYm3oLtC9gJXXzfsbACg5X5e4EZZGVAH+YIfa+QA9lsFQTTe3HURF3ag==
- dependencies:
- "@babel/runtime-corejs3" "^7.12.1"
-
-xtend@~4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
- integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-y18n@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
- integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
-
-yallist@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
- integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-
-yargs-parser@^18.1.2:
- version "18.1.3"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
- integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
- dependencies:
- camelcase "^5.0.0"
- decamelize "^1.2.0"
-
-yargs@^15.1.0, yargs@^15.3.1:
- version "15.4.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
- integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
- dependencies:
- cliui "^6.0.0"
- decamelize "^1.2.0"
- find-up "^4.1.0"
- get-caller-file "^2.0.1"
- require-directory "^2.1.1"
- require-main-filename "^2.0.0"
- set-blocking "^2.0.0"
- string-width "^4.2.0"
- which-module "^2.0.0"
- y18n "^4.0.0"
- yargs-parser "^18.1.2"
diff --git a/ios/RCTOneSignal/RCTOneSignal.h b/ios/RCTOneSignal/RCTOneSignal.h
index 985b31d8..be93f668 100644
--- a/ios/RCTOneSignal/RCTOneSignal.h
+++ b/ios/RCTOneSignal/RCTOneSignal.h
@@ -1,18 +1,11 @@
-#if __has_include()
-#import
+#if __has_include()
+#import
#else
-#import "../OneSignal.h"
+#import "../OneSignalFramework.h"
#endif
-#define INIT_DEPRECATION_NOTICE "Objective-C Initialization of the OneSignal SDK has been deprecated. Use JavaScript init instead."
-
-@interface RCTOneSignal : NSObject
-
+@interface RCTOneSignal : NSObject
+ (RCTOneSignal *) sharedInstance;
-@property (nonatomic) BOOL didStartObserving;
-
-- (void)initOneSignal:(NSDictionary *)launchOptions;
-
@end
diff --git a/ios/RCTOneSignal/RCTOneSignal.m b/ios/RCTOneSignal/RCTOneSignal.m
index 0521e75e..c2d79474 100644
--- a/ios/RCTOneSignal/RCTOneSignal.m
+++ b/ios/RCTOneSignal/RCTOneSignal.m
@@ -30,7 +30,7 @@ @implementation RCTOneSignal {
BOOL didInitialize;
}
-OSNotificationOpenedResult* coldStartOSNotificationOpenedResult;
+OSNotificationClickResult* coldStartOSNotificationClickResult;
+ (RCTOneSignal *) sharedInstance {
static dispatch_once_t token = 0;
@@ -46,15 +46,19 @@ - (void)initOneSignal:(NSDictionary *)launchOptions {
if (didInitialize)
return;
- [OneSignal initWithLaunchOptions:launchOptions];
+ OneSignalWrapper.sdkType = @"reactnative";
+ OneSignalWrapper.sdkVersion = @"050100";
+ // initialize the SDK with a nil app ID so cold start click listeners can be triggered
+ [OneSignal initialize:nil withLaunchOptions:launchOptions];
didInitialize = true;
}
- (void)handleRemoteNotificationOpened:(NSString *)result {
NSDictionary *json = [self jsonObjectWithString:result];
- if (json)
- [self sendEvent:OSEventString(NotificationOpened) withBody:json];
+ if (json) {
+ [self sendEvent:OSEventString(NotificationClicked) withBody:json];
+ }
}
- (NSDictionary *)jsonObjectWithString:(NSString *)jsonString {
@@ -63,7 +67,6 @@ - (NSDictionary *)jsonObjectWithString:(NSString *)jsonString {
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&jsonError];
if (jsonError) {
- [OneSignal onesignalLog:ONE_S_LL_ERROR message:[NSString stringWithFormat:@"Unable to serialize JSON string into an object: %@", jsonError]];
return nil;
}
@@ -74,36 +77,77 @@ - (void)sendEvent:(NSString *)eventName withBody:(NSDictionary *)body {
[RCTOneSignalEventEmitter sendEventWithName:eventName withBody:body];
}
-- (void)onOSSubscriptionChanged:(OSSubscriptionStateChanges * _Nonnull)stateChanges {
- [self sendEvent:OSEventString(SubscriptionChanged) withBody:stateChanges.toDictionary];
+- (void)onUserStateDidChangeWithState:(OSUserChangedState * _Nonnull)state {
+ NSString *onesignalId = state.current.onesignalId;
+ NSString *externalId = state.current.externalId;
+
+ NSMutableDictionary *currentDictionary = [NSMutableDictionary dictionary];
+
+ if (onesignalId.length > 0) {
+ [currentDictionary setObject:onesignalId forKey:@"onesignalId"];
+ }
+ else {
+ [currentDictionary setObject:[NSNull null] forKey:@"onesignalId"];
+ }
+
+ if (externalId.length > 0) {
+ [currentDictionary setObject:externalId forKey:@"externalId"];
+ }
+ else {
+ [currentDictionary setObject:[NSNull null] forKey:@"externalId"];
+ }
+
+ NSDictionary *result = @{@"current": currentDictionary};
+
+ [self sendEvent:OSEventString(UserStateChanged) withBody:result];
+}
+
+- (void)onPushSubscriptionDidChangeWithState:(OSPushSubscriptionChangedState * _Nonnull)state {
+ NSMutableDictionary *result = [NSMutableDictionary new];
+
+ //Previous state
+ NSMutableDictionary *previousObject = [NSMutableDictionary new];
+ previousObject[@"token"] = (state.previous.token && ![state.previous.token isEqualToString:@""]) ? state.previous.token : [NSNull null];
+ previousObject[@"id"] = (state.previous.id && ![state.previous.id isEqualToString:@""]) ? state.previous.id : [NSNull null];
+ previousObject[@"optedIn"] = @(state.previous.optedIn);
+ result[@"previous"] = previousObject;
+
+ //Current state
+ NSMutableDictionary *currentObject = [NSMutableDictionary new];
+ currentObject[@"token"] = (state.current.token && ![state.current.token isEqualToString:@""]) ? state.current.token : [NSNull null];
+ currentObject[@"id"] = (state.current.id && ![state.current.id isEqualToString:@""]) ? state.current.id : [NSNull null];
+ currentObject[@"optedIn"] = @(state.current.optedIn);
+ result[@"current"] = currentObject;
+
+ [self sendEvent:OSEventString(SubscriptionChanged) withBody:result];
}
-- (void)onOSEmailSubscriptionChanged:(OSEmailSubscriptionStateChanges * _Nonnull)stateChanges {
- [self sendEvent:OSEventString(EmailSubscriptionChanged) withBody:stateChanges.toDictionary];
+- (void)onNotificationPermissionDidChange:(BOOL)permission {
+ [self sendEvent:OSEventString(PermissionChanged) withBody:@{@"permission": @(permission)}];
}
-- (void)onOSSMSSubscriptionChanged:(OSSMSSubscriptionStateChanges *)stateChanges {
- [self sendEvent:OSEventString(SMSSubscriptionChanged) withBody:stateChanges.toDictionary];
+- (void)onClickNotification:(OSNotificationClickEvent * _Nonnull)event {
+ [self sendEvent:OSEventString(NotificationClicked) withBody:[event jsonRepresentation]];
}
-- (void)onOSPermissionChanged:(OSPermissionStateChanges *)stateChanges {
- [self sendEvent:OSEventString(PermissionChanged) withBody:stateChanges.toDictionary];
+- (void)onClickInAppMessage:(OSInAppMessageClickEvent * _Nonnull)event {
+ [self sendEvent:OSEventString(InAppMessageClicked) withBody:[event jsonRepresentation]];
}
-- (void)onWillDisplayInAppMessage:(OSInAppMessage * _Nonnull)message {
- [self sendEvent:OSEventString(InAppMessageWillDisplay) withBody:[message jsonRepresentation]];
+- (void)onWillDisplayInAppMessage:(OSInAppMessageWillDisplayEvent * _Nonnull)event {
+ [self sendEvent:OSEventString(InAppMessageWillDisplay) withBody:[event jsonRepresentation]];
}
-- (void)onDidDisplayInAppMessage:(OSInAppMessage * _Nonnull)message {
- [self sendEvent:OSEventString(InAppMessageDidDisplay) withBody:[message jsonRepresentation]];
+- (void)onDidDisplayInAppMessage:(OSInAppMessageDidDisplayEvent * _Nonnull)event {
+ [self sendEvent:OSEventString(InAppMessageDidDisplay) withBody:[event jsonRepresentation]];
}
-- (void)onWillDismissInAppMessage:(OSInAppMessage * _Nonnull)message {
- [self sendEvent:OSEventString(InAppMessageWillDismiss) withBody:[message jsonRepresentation]];
+- (void)onWillDismissInAppMessage:(OSInAppMessageWillDismissEvent * _Nonnull)event {
+ [self sendEvent:OSEventString(InAppMessageWillDismiss) withBody:[event jsonRepresentation]];
}
-- (void)onDidDismissInAppMessage:(OSInAppMessage * _Nonnull)message {
- [self sendEvent:OSEventString(InAppMessageDidDismiss) withBody:[message jsonRepresentation]];
+- (void)onDidDismissInAppMessage:(OSInAppMessageDidDismissEvent * _Nonnull)event {
+ [self sendEvent:OSEventString(InAppMessageDidDismiss) withBody:[event jsonRepresentation]];
}
- (void)dealloc {
diff --git a/ios/RCTOneSignal/RCTOneSignalEventEmitter.h b/ios/RCTOneSignal/RCTOneSignalEventEmitter.h
index a996b2c3..ca153320 100644
--- a/ios/RCTOneSignal/RCTOneSignalEventEmitter.h
+++ b/ios/RCTOneSignal/RCTOneSignalEventEmitter.h
@@ -15,18 +15,17 @@
typedef NS_ENUM(NSInteger, OSNotificationEventTypes) {
PermissionChanged,
SubscriptionChanged,
- NotificationWillShowInForeground,
- NotificationOpened,
+ UserStateChanged,
+ NotificationWillDisplayInForeground,
+ NotificationClicked,
InAppMessageClicked,
- EmailSubscriptionChanged,
- SMSSubscriptionChanged,
InAppMessageWillDisplay,
InAppMessageDidDisplay,
InAppMessageWillDismiss,
InAppMessageDidDismiss,
};
-#define OSNotificationEventTypesArray @[@"OneSignal-permissionChanged",@"OneSignal-subscriptionChanged",@"OneSignal-notificationWillShowInForeground",@"OneSignal-remoteNotificationOpened",@"OneSignal-inAppMessageClicked",@"OneSignal-emailSubscriptionChanged", @"OneSignal-smsSubscriptionChanged", @"OneSignal-inAppMessageWillDisplay", @"OneSignal-inAppMessageDidDisplay", @"OneSignal-inAppMessageWillDismiss", @"OneSignal-inAppMessageDidDismiss"]
+#define OSNotificationEventTypesArray @[@"OneSignal-permissionChanged",@"OneSignal-subscriptionChanged",@"OneSignal-userStateChanged",@"OneSignal-notificationWillDisplayInForeground",@"OneSignal-notificationClicked",@"OneSignal-inAppMessageClicked", @"OneSignal-inAppMessageWillDisplay", @"OneSignal-inAppMessageDidDisplay", @"OneSignal-inAppMessageWillDismiss", @"OneSignal-inAppMessageDidDismiss"]
#define OSEventString(enum) [OSNotificationEventTypesArray objectAtIndex:enum]
diff --git a/ios/RCTOneSignal/RCTOneSignalEventEmitter.m b/ios/RCTOneSignal/RCTOneSignalEventEmitter.m
index 35e7e521..03b15994 100644
--- a/ios/RCTOneSignal/RCTOneSignalEventEmitter.m
+++ b/ios/RCTOneSignal/RCTOneSignalEventEmitter.m
@@ -1,12 +1,6 @@
#import "RCTOneSignalEventEmitter.h"
-#if __has_include()
-#import
-#else
-#import "OneSignal.h"
-#endif
-
+#import
#import "RCTOneSignal.h"
-
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
@@ -15,11 +9,13 @@ @implementation RCTOneSignalEventEmitter {
BOOL _hasListeners;
BOOL _hasSetSubscriptionObserver;
BOOL _hasSetPermissionObserver;
- BOOL _hasSetEmailSubscriptionObserver;
- BOOL _hasSetSMSSubscriptionObserver;
- BOOL _hasSetInAppMessageLifecycleHandler;
- NSMutableDictionary* _notificationCompletionCache;
- NSMutableDictionary* _receivedNotificationCache;
+ BOOL _hasSetUserStateObserver;
+ BOOL _hasAddedNotificationClickListener;
+ BOOL _hasAddedNotificationForegroundLifecycleListener;
+ BOOL _hasAddedInAppMessageClickListener;
+ BOOL _hasAddedInAppMessageLifecycleListener;
+ NSMutableDictionary* _preventDefaultCache;
+ NSMutableDictionary* _notificationWillDisplayCache;
}
static BOOL _didStartObserving = false;
@@ -42,11 +38,10 @@ +(BOOL)requiresMainQueueSetup {
#pragma mark RCTEventEmitter Subclass Methods
--(instancetype)init {
+- (instancetype)init {
if (self = [super init]) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"Initialized RCTOneSignalEventEmitter"];
- _notificationCompletionCache = [NSMutableDictionary new];
- _receivedNotificationCache = [NSMutableDictionary new];
+ _preventDefaultCache = [NSMutableDictionary new];
+ _notificationWillDisplayCache = [NSMutableDictionary new];
for (NSString *eventName in [self supportedEvents])
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(emitEvent:) name:eventName object:nil];
@@ -55,25 +50,24 @@ -(instancetype)init {
return self;
}
--(void)startObserving {
+- (void)startObserving {
_hasListeners = true;
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"RCTOneSignalEventEmitter did start observing"];
[[NSNotificationCenter defaultCenter] postNotificationName:@"didSetBridge" object:nil];
_didStartObserving = true;
}
--(void)stopObserving {
+- (void)stopObserving {
_hasListeners = false;
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"RCTOneSignalEventEmitter did stop observing"];
}
--(NSArray *)supportedEvents {
+- (NSArray *)supportedEvents {
NSMutableArray *events = [NSMutableArray new];
- for (int i = 0; i < OSNotificationEventTypesArray.count; i++)
+ for (int i = 0; i < OSNotificationEventTypesArray.count; i++) {
[events addObject:OSEventString(i)];
+ }
return events;
}
@@ -83,19 +77,16 @@ -(void)stopObserving {
return @[error.userInfo[@"error"]];
} else if (error.userInfo[@"returned"]) {
return @[error.userInfo[@"returned"]];
- } else {
- return @[error.localizedDescription];
}
+
+ return @[error.localizedDescription];
}
#pragma mark Send Event Methods
- (void)emitEvent:(NSNotification *)notification {
- if (!_hasListeners) {
- [OneSignal onesignalLog:ONE_S_LL_WARN message:[NSString stringWithFormat:@"Attempted to send an event (%@) when no listeners were set.", notification.name]];
- return;
- }
+ if (!_hasListeners) return;
[self sendEventWithName:notification.name body:notification.userInfo];
}
@@ -107,433 +98,375 @@ + (void)sendEventWithName:(NSString *)name withBody:(NSDictionary *)body {
#pragma mark Exported Methods
-RCT_EXPORT_METHOD(addPermissionObserver) {
- if (!_hasSetPermissionObserver) {
- [OneSignal addPermissionObserver:[RCTOneSignal sharedInstance]];
- _hasSetPermissionObserver = true;
- }
+// OneSignal root namespace methods
+RCT_EXPORT_METHOD(initialize:(NSString* _Nonnull)appId) {
+ [OneSignal initialize:appId withLaunchOptions:NULL];
}
-RCT_EXPORT_METHOD(removePermissionObserver) {
- if (_hasSetPermissionObserver) {
- [OneSignal removePermissionObserver:[RCTOneSignal sharedInstance]];
- _hasSetPermissionObserver = false;
- }
+RCT_EXPORT_METHOD(login:(NSString *)externalId) {
+ [OneSignal login:externalId];
}
-RCT_EXPORT_METHOD(addSubscriptionObserver) {
- if (!_hasSetSubscriptionObserver) {
- [OneSignal addSubscriptionObserver:[RCTOneSignal sharedInstance]];
- _hasSetSubscriptionObserver = true;
- }
+RCT_EXPORT_METHOD(logout) {
+ [OneSignal logout];
}
-RCT_EXPORT_METHOD(removeSubscriptionObserver) {
- if (_hasSetSubscriptionObserver) {
- [OneSignal removeSubscriptionObserver:[RCTOneSignal sharedInstance]];
- _hasSetSubscriptionObserver = false;
- }
+RCT_EXPORT_METHOD(enterLiveActivity:(NSString *)activityId
+ withToken:(NSString *)token
+ withResponse:(RCTResponseSenderBlock)callback) {
+ [OneSignal.LiveActivities enter:activityId withToken:token withSuccess:^(NSDictionary *result) {
+ callback(@[result]);
+ } withFailure:^(NSError *error) {
+ callback([self processNSError:error]);
+ }];
}
-RCT_EXPORT_METHOD(addEmailSubscriptionObserver) {
- if (!_hasSetEmailSubscriptionObserver) {
- [OneSignal addEmailSubscriptionObserver:[RCTOneSignal sharedInstance]];
- _hasSetEmailSubscriptionObserver = true;
- }
+RCT_EXPORT_METHOD(exitLiveActivity:(NSString *)activityId
+ withResponse:(RCTResponseSenderBlock)callback) {
+ [OneSignal.LiveActivities exit:activityId withSuccess:^(NSDictionary *result) {
+ callback(@[result]);
+ } withFailure:^(NSError *error) {
+ callback([self processNSError:error]);
+ }];
}
-RCT_EXPORT_METHOD(removeEmailSubscriptionObserver) {
- if (_hasSetEmailSubscriptionObserver) {
- [OneSignal removeEmailSubscriptionObserver:[RCTOneSignal sharedInstance]];
- _hasSetEmailSubscriptionObserver = false;
- }
+RCT_EXPORT_METHOD(setPrivacyConsentGiven:(BOOL)granted) {
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [OneSignal setConsentGiven:granted];
+ });
}
-RCT_EXPORT_METHOD(addSMSSubscriptionObserver) {
- if (!_hasSetSMSSubscriptionObserver) {
- [OneSignal addSMSSubscriptionObserver:[RCTOneSignal sharedInstance]];
- _hasSetSMSSubscriptionObserver = true;
- }
+RCT_EXPORT_METHOD(setPrivacyConsentRequired:(BOOL)required) {
+ [OneSignal setConsentRequired:required];
}
-RCT_EXPORT_METHOD(removeSMSSubscriptionObserver) {
- if (_hasSetSMSSubscriptionObserver) {
- [OneSignal removeSMSSubscriptionObserver:[RCTOneSignal sharedInstance]];
- _hasSetSMSSubscriptionObserver = false;
- }
+// OneSignal.Debug namespace methods
+RCT_EXPORT_METHOD(setLogLevel:(int)logLevel) {
+ [OneSignal.Debug setLogLevel:logLevel];
}
-RCT_EXPORT_METHOD(setInAppMessageLifecycleHandler) {
- if (!_hasSetInAppMessageLifecycleHandler) {
- [OneSignal setInAppMessageLifecycleHandler:[RCTOneSignal sharedInstance]];
- _hasSetInAppMessageLifecycleHandler = true;
- }
+RCT_EXPORT_METHOD(setAlertLevel:(int)logLevel) {
+ [OneSignal.Debug setAlertLevel:logLevel];
}
-RCT_REMAP_METHOD(requiresUserPrivacyConsent, requiresPrivacyConsentResolver:(RCTPromiseResolveBlock)resolve
+// OneSignal.InAppMessages namespace methods
+RCT_REMAP_METHOD(getPaused,
+ getPausedResolver:(RCTPromiseResolveBlock)resolve
rejecter:(RCTPromiseRejectBlock)reject) {
- resolve(@(OneSignal.requiresUserPrivacyConsent));
+ resolve(@([OneSignal.InAppMessages paused]));
}
-RCT_EXPORT_METHOD(setRequiresUserPrivacyConsent:(BOOL)required) {
- [OneSignal setRequiresUserPrivacyConsent:required];
+RCT_EXPORT_METHOD(paused:(BOOL)pause) {
+ [OneSignal.InAppMessages paused:pause];
}
-RCT_EXPORT_METHOD(provideUserConsent:(BOOL)granted) {
- dispatch_async(dispatch_get_main_queue(), ^{
- [OneSignal consentGranted:granted];
- });
+RCT_EXPORT_METHOD(addTrigger:(NSString *)key withValue:(NSString *)value) {
+ [OneSignal.InAppMessages addTrigger:key withValue:value];
}
-RCT_REMAP_METHOD(userProvidedPrivacyConsent, privacyConsentResolver:(RCTPromiseResolveBlock)resolve
- rejecter:(RCTPromiseRejectBlock)reject) {
- resolve(@(!OneSignal.requiresUserPrivacyConsent));
+RCT_EXPORT_METHOD(addTriggers:(NSDictionary *)triggers) {
+ [OneSignal.InAppMessages addTriggers:triggers];
}
-RCT_EXPORT_METHOD(setAppId:(NSString* _Nonnull)newAppId) {
- [OneSignal setAppId:newAppId];
+RCT_EXPORT_METHOD(removeTrigger:(NSString *)key) {
+ [OneSignal.InAppMessages removeTrigger:key];
}
-RCT_EXPORT_METHOD(requestPermissions:(NSDictionary *)permissions) {
- if (RCTRunningInAppExtension()) {
- return;
- }
+RCT_EXPORT_METHOD(removeTriggers:(NSArray *)keys) {
+ [OneSignal.InAppMessages removeTriggers:keys];
+}
- UIUserNotificationType types = UIUserNotificationTypeNone;
- if (permissions) {
- if ([RCTConvert BOOL:permissions[@"alert"]]) {
- types |= UIUserNotificationTypeAlert;
- }
- if ([RCTConvert BOOL:permissions[@"badge"]]) {
- types |= UIUserNotificationTypeBadge;
- }
- if ([RCTConvert BOOL:permissions[@"sound"]]) {
- types |= UIUserNotificationTypeSound;
- }
- } else {
- types = UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound;
- }
+RCT_EXPORT_METHOD(clearTriggers) {
+ [OneSignal.InAppMessages clearTriggers];
+}
- UIApplication *app = RCTSharedApplication();
- if ([app respondsToSelector:@selector(registerUserNotificationSettings:)]) {
- UIUserNotificationSettings *notificationSettings =
- [UIUserNotificationSettings settingsForTypes:(NSUInteger)types categories:nil];
- [app registerUserNotificationSettings:notificationSettings];
- [app registerForRemoteNotifications];
- } else {
- [app registerForRemoteNotificationTypes:(NSUInteger)types];
+RCT_EXPORT_METHOD(addInAppMessageClickListener) {
+ if (!_hasAddedInAppMessageClickListener) {
+ [OneSignal.InAppMessages addClickListener: [RCTOneSignal sharedInstance]];
+ _hasAddedInAppMessageClickListener = true;
}
}
-RCT_REMAP_METHOD(getDeviceState,
- getDeviceStateResolver:(RCTPromiseResolveBlock)resolve
- rejecter:(RCTPromiseRejectBlock)reject) {
- OSDeviceState *deviceState = [OneSignal getDeviceState];
-
- if (deviceState) {
- resolve([deviceState jsonRepresentation]);
- } else {
- NSError * error = nil;
- NSString * message = @"Could not get OneSignal device state";
- reject(@"no_value", message, error);
+RCT_EXPORT_METHOD(addInAppMessagesLifecycleListener) {
+ if (!_hasAddedInAppMessageLifecycleListener) {
+ [OneSignal.InAppMessages addLifecycleListener:[RCTOneSignal sharedInstance]];
+ _hasAddedInAppMessageLifecycleListener = true;
}
}
-RCT_EXPORT_METHOD(setLanguage:(NSString *)language successCallback:(RCTResponseSenderBlock)successCallback failureCallback:(RCTResponseSenderBlock)failureCallback) {
- [OneSignal setLanguage:language withSuccess:^(NSDictionary *success) {
- successCallback(@[success]);
- } withFailure:^(NSError *error) {
- failureCallback([self processNSError:error]);
- }];
+// OneSignal.Location namespace methods
+RCT_REMAP_METHOD(isLocationShared,
+ isLocationSharedResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ resolve(@([OneSignal.Location isShared]));
}
-RCT_EXPORT_METHOD(setNotificationOpenedHandler) {
- [OneSignal setNotificationOpenedHandler:^(OSNotificationOpenedResult *result) {
- [RCTOneSignalEventEmitter sendEventWithName:@"OneSignal-remoteNotificationOpened" withBody:[result jsonRepresentation]];
- }];
+RCT_EXPORT_METHOD(setLocationShared:(BOOL)shared) {
+ [OneSignal.Location setShared:shared];
}
-RCT_EXPORT_METHOD(setNotificationWillShowInForegroundHandler) {
- __weak RCTOneSignalEventEmitter *weakSelf = self;
- [OneSignal setNotificationWillShowInForegroundHandler:^(OSNotification *notif, OSNotificationDisplayResponse completion) {
- RCTOneSignalEventEmitter *strongSelf = weakSelf;
- if(!strongSelf) {
- return;
- }
- strongSelf->_receivedNotificationCache[notif.notificationId] = notif;
- strongSelf->_notificationCompletionCache[notif.notificationId] = completion;
- [RCTOneSignalEventEmitter sendEventWithName:@"OneSignal-notificationWillShowInForeground" withBody:[notif jsonRepresentation]];
- }];
+RCT_EXPORT_METHOD(requestLocationPermission) {
+ [OneSignal.Location requestPermission];
}
-RCT_EXPORT_METHOD(completeNotificationEvent:(NSString*)notificationId displayOption:(BOOL)shouldDisplay) {
- OSNotificationDisplayResponse completion = _notificationCompletionCache[notificationId];
- if (!completion) {
- [OneSignal onesignalLog:ONE_S_LL_ERROR message:[NSString stringWithFormat:@"OneSignal (objc): could not find notification completion block with id: %@", notificationId]];
- return;
- }
-
- if (shouldDisplay) {
- OSNotification *notif = _receivedNotificationCache[notificationId];
- dispatch_async(dispatch_get_main_queue(), ^{
- completion(notif);
- });
- } else {
- completion(nil);
- }
+// OneSignal.Notifications namespace methods
+RCT_REMAP_METHOD(hasNotificationPermission,
+ hasNotificationPermissionResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ resolve(@([OneSignal.Notifications permission]));
+}
- [_notificationCompletionCache removeObjectForKey:notificationId];
- [_receivedNotificationCache removeObjectForKey:notificationId];
+RCT_REMAP_METHOD(canRequestNotificationPermission,
+ canRequestNotificationPermissionResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ resolve(@([OneSignal.Notifications canRequestPermission]));
}
-RCT_EXPORT_METHOD(setEmail:(NSString *)email withAuthHash:(NSString *)authHash withResponse:(RCTResponseSenderBlock)callback) {
- // Auth hash token created on server and sent to client.
- [OneSignal setEmail:email withEmailAuthHashToken:authHash withSuccess:^{
- callback(@[]);
- } withFailure:^(NSError *error) {
- callback([self processNSError:error]);
- }];
+RCT_REMAP_METHOD(requestNotificationPermission,
+ withFallBackSettings:fallbackToSettings
+ requestNotificationPermissionResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ [OneSignal.Notifications requestPermission:^(BOOL accepted) {
+ resolve(@[@(accepted)]);
+ } fallbackToSettings:fallbackToSettings];
}
-RCT_EXPORT_METHOD(logoutEmail:(RCTResponseSenderBlock)callback) {
- [OneSignal logoutEmailWithSuccess:^{
- callback(@[]);
- } withFailure:^(NSError *error) {
- callback([self processNSError:error]);
+RCT_EXPORT_METHOD(registerForProvisionalAuthorization:(RCTResponseSenderBlock)callback) {
+ [OneSignal.Notifications registerForProvisionalAuthorization:^(BOOL accepted) {
+ callback(@[@(accepted)]);
}];
}
-RCT_EXPORT_METHOD(setSMSNumber:(NSString *)smsNumber withAuthHash:(NSString *)authHash withResponse:(RCTResponseSenderBlock)callback) {
- // Auth hash token created on server and sent to client.
- [OneSignal setSMSNumber:smsNumber withSMSAuthHashToken:authHash withSuccess:^(NSDictionary *results) {
- callback(@[results]);
- } withFailure:^(NSError *error) {
- callback([self processNSError:error]);
- }];
+RCT_EXPORT_METHOD(addPermissionObserver) {
+ if (!_hasSetPermissionObserver) {
+ [OneSignal.Notifications addPermissionObserver:[RCTOneSignal sharedInstance]];
+ _hasSetPermissionObserver = true;
+ }
}
-RCT_EXPORT_METHOD(logoutSMSNumber:(RCTResponseSenderBlock)callback) {
- [OneSignal logoutSMSNumberWithSuccess:^(NSDictionary *results) {
- callback(@[results]);
- } withFailure:^(NSError *error) {
- callback([self processNSError:error]);
- }];
+RCT_EXPORT_METHOD(removePermissionObserver) {
+ if (_hasSetPermissionObserver) {
+ [OneSignal.Notifications removePermissionObserver:[RCTOneSignal sharedInstance]];
+ _hasSetPermissionObserver = false;
+ }
}
-RCT_EXPORT_METHOD(promptForPushNotificationsWithUserResponse:(BOOL)fallbackToSettings withResponse:(RCTResponseSenderBlock)callback) {
- [OneSignal promptForPushNotificationsWithUserResponse:^(BOOL accepted) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"Prompt For Push Notifications Success"];
- callback(@[@(accepted)]);
- } fallbackToSettings:fallbackToSettings];
+RCT_REMAP_METHOD(permissionNative,
+ getPermissionNativeResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ resolve(@([OneSignal.Notifications permissionNative]));
}
-RCT_EXPORT_METHOD(registerForProvisionalAuthorization:(RCTResponseSenderBlock)callback) {
- [OneSignal registerForProvisionalAuthorization:^(BOOL accepted) {
- callback(@[@(accepted)]);
- }];
+RCT_EXPORT_METHOD(addNotificationClickListener) {
+ if (!_hasAddedNotificationClickListener) {
+ [OneSignal.Notifications addClickListener:[RCTOneSignal sharedInstance]];
+ _hasAddedNotificationClickListener = true;
+ }
}
-RCT_EXPORT_METHOD(sendTag:(NSString *)key value:(NSString*)value) {
- [OneSignal sendTag:key value:value];
+RCT_EXPORT_METHOD(addNotificationForegroundLifecycleListener) {
+ if (!_hasAddedNotificationForegroundLifecycleListener) {
+ [OneSignal.Notifications addForegroundLifecycleListener:self];
+ _hasAddedNotificationForegroundLifecycleListener = true;
+ }
}
-RCT_EXPORT_METHOD(sendTags:(NSDictionary *)properties) {
- [OneSignal sendTags:properties onSuccess:^(NSDictionary *sucess) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"Send Tags Success"];
- } onFailure:^(NSError *error) {
- [OneSignal onesignalLog:ONE_S_LL_ERROR message:[NSString stringWithFormat:@"Send Tags Failure With Error: %@", error]];
- }];}
+RCT_EXPORT_METHOD(onWillDisplayNotification:(OSNotificationWillDisplayEvent *)event){
+ __weak RCTOneSignalEventEmitter *weakSelf = self;
+ RCTOneSignalEventEmitter *strongSelf = weakSelf;
+ if (!strongSelf) return;
-RCT_EXPORT_METHOD(getTags:(RCTResponseSenderBlock)callback) {
- [OneSignal getTags:^(NSDictionary *tags) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"Get Tags Success"];
- callback(@[tags]);
- } onFailure:^(NSError *error) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"Get Tags Failure with error: %@", error]];
- callback(@[error]);
- }];
+ strongSelf->_notificationWillDisplayCache[event.notification.notificationId] = event;
+ [event preventDefault];
+ [RCTOneSignalEventEmitter sendEventWithName:@"OneSignal-notificationWillDisplayInForeground" withBody:[event.notification jsonRepresentation]];
}
-RCT_REMAP_METHOD(isLocationShared,
- isLocationSharedResolver:(RCTPromiseResolveBlock)resolve
- rejecter:(RCTPromiseRejectBlock)reject) {
+RCT_EXPORT_METHOD(preventDefault:(NSString *)notificationId){
+ __weak RCTOneSignalEventEmitter *weakSelf = self;
+ RCTOneSignalEventEmitter *strongSelf = weakSelf;
+ OSNotificationWillDisplayEvent *event = _notificationWillDisplayCache[notificationId];
+ if (!event) {
+ [OneSignalLog onesignalLog:ONE_S_LL_ERROR message:[NSString stringWithFormat:@"OneSignal (objc): could not find notification will display event for notification with id: %@", notificationId]];
+ return;
+ }
+ strongSelf->_preventDefaultCache[event.notification.notificationId] = event;
+ [event preventDefault];
+}
- BOOL locationShared = [OneSignal isLocationShared];
- resolve(@(locationShared));
+RCT_EXPORT_METHOD(clearAllNotifications) {
+ [OneSignal.Notifications clearAll];
}
-RCT_EXPORT_METHOD(setLocationShared:(BOOL)shared) {
- [OneSignal setLocationShared:shared];
+// OneSignal.Session namespace methods
+RCT_EXPORT_METHOD(addOutcome:(NSString *)name) {
+ [OneSignal.Session addOutcome:name];
}
-RCT_EXPORT_METHOD(deleteTags:(NSArray *)keys) {
- [OneSignal deleteTags:keys];
+RCT_EXPORT_METHOD(addUniqueOutcome:(NSString *)name) {
+ [OneSignal.Session addUniqueOutcome:name];
}
-RCT_EXPORT_METHOD(disablePush:(BOOL)disabled) {
- [OneSignal disablePush:disabled];
+RCT_EXPORT_METHOD(addOutcomeWithValue:(NSString *)name :(NSNumber * _Nonnull)value) {
+ [OneSignal.Session addOutcomeWithValue:name value:value];
}
-RCT_EXPORT_METHOD(promptLocation) {
- [OneSignal promptLocation];
+// OneSignal.User namespace methods
+RCT_EXPORT_METHOD(addUserStateObserver) {
+ if (!_hasSetUserStateObserver) {
+ [OneSignal.User addObserver:[RCTOneSignal sharedInstance]];
+ _hasSetUserStateObserver = true;
+ }
}
-RCT_EXPORT_METHOD(postNotification:(NSString *)jsonObjectString successCallback:(RCTResponseSenderBlock)successCallback failureCallback:(RCTResponseSenderBlock)failureCallback) {
- if (!successCallback || !failureCallback) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"postNotification must contain success & failure callbacks"];
- return;
+RCT_EXPORT_METHOD(addPushSubscriptionObserver) {
+ if (!_hasSetSubscriptionObserver) {
+ [OneSignal.User.pushSubscription addObserver:[RCTOneSignal sharedInstance]];
+ _hasSetSubscriptionObserver = true;
}
- [OneSignal postNotificationWithJsonString:jsonObjectString onSuccess:^(NSDictionary *success) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"Successfully sent notification."];
- successCallback(@[success]);
- } onFailure:^(NSError *error) {
- [OneSignal onesignalLog:ONE_S_LL_ERROR message:[NSString stringWithFormat:@"Notification Send Failure with Error: %@", error]];
- failureCallback([self processNSError:error]);
- }];
}
-RCT_EXPORT_METHOD(setLaunchURLsInApp:(BOOL)isEnabled) {
- [OneSignal setLaunchURLsInApp:isEnabled];
+RCT_EXPORT_METHOD(removePushSubscriptionObserver) {
+ if (_hasSetSubscriptionObserver) {
+ [OneSignal.User.pushSubscription removeObserver:[RCTOneSignal sharedInstance]];
+ _hasSetSubscriptionObserver = false;
+ }
}
-/*
- * Live Activity
- */
+RCT_EXPORT_METHOD(setLanguage:(NSString *)language) {
+ [OneSignal.User setLanguage:language];
+}
-RCT_EXPORT_METHOD(enterLiveActivity:(NSString *)activityId withToken:(NSString *)token withResponse:(RCTResponseSenderBlock)callback) {
- [OneSignal enterLiveActivity:activityId withToken:token withSuccess:^(NSDictionary *result) {
- callback(@[result]);
- } withFailure:^(NSError *error) {
- callback([self processNSError:error]);
- }];
+RCT_EXPORT_METHOD(addEmail:(NSString *)email) {
+ [OneSignal.User addEmail:email];
}
-RCT_EXPORT_METHOD(exitLiveActivity:(NSString *)activityId withResponse:(RCTResponseSenderBlock)callback) {
- [OneSignal exitLiveActivity:activityId withSuccess:^(NSDictionary *result) {
- callback(@[result]);
- } withFailure:^(NSError *error) {
- callback([self processNSError:error]);
- }];
+RCT_EXPORT_METHOD(removeEmail:(NSString *)email) {
+ [OneSignal.User removeEmail:email];
}
-RCT_EXPORT_METHOD(setLogLevel:(int)logLevel visualLogLevel:(int)visualLogLevel) {
- [OneSignal setLogLevel:logLevel visualLevel:visualLogLevel];
+RCT_EXPORT_METHOD(addSms:(NSString *)smsNumber) {
+ [OneSignal.User addSms:smsNumber];
}
-RCT_EXPORT_METHOD(setExternalUserId:(NSString *)externalId) {
- [OneSignal setExternalUserId:externalId];
+RCT_EXPORT_METHOD(removeSms:(NSString *)smsNumber) {
+ [OneSignal.User removeSms:smsNumber];
}
-RCT_EXPORT_METHOD(setExternalUserId:(NSString*)externalId withAuthHash:(NSString *)authHash withCompletion:(RCTResponseSenderBlock)callback) {
- [OneSignal setExternalUserId:externalId withExternalIdAuthHashToken:authHash withSuccess:^(NSDictionary* results) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"Set external user id complete"];
- if (callback) {
- callback(@[results]);
- }
- } withFailure:^(NSError *error) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"OneSignal setExternalUserId error: %@", error]];
- if (callback) {
- callback([self processNSError:error]);
- }
- }];
+RCT_EXPORT_METHOD(addTag:(NSString *)key value:(NSString*)value) {
+ [OneSignal.User addTagWithKey:key value:value];
}
-RCT_EXPORT_METHOD(removeExternalUserId) {
- [OneSignal removeExternalUserId];
+RCT_EXPORT_METHOD(addTags:(NSDictionary *)tags) {
+ [OneSignal.User addTags:tags];
}
-RCT_EXPORT_METHOD(removeExternalUserId:(RCTResponseSenderBlock)callback) {
- [OneSignal removeExternalUserId:^(NSDictionary* results) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:@"Remove external user id complete"];
- if (callback) {
- callback(@[results]);
- }
- } withFailure:^(NSError *error) {
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"OneSignal removeExternalUserId error: %@", error]];
- callback([self processNSError:error]);
- }];
+RCT_EXPORT_METHOD(removeTag:(NSString *)key) {
+ [OneSignal.User removeTag:key];
}
-/*
- * In-App Messaging
- */
+RCT_EXPORT_METHOD(removeTags:(NSArray *)keys) {
+ [OneSignal.User removeTags:keys];
+}
-RCT_EXPORT_METHOD(addTriggers:(NSDictionary *)triggers) {
- [OneSignal addTriggers:triggers];
+RCT_EXPORT_METHOD(getTags:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject) {
+ NSDictionary *tags = [OneSignal.User getTags];
+ resolve(tags);
}
-RCT_EXPORT_METHOD(removeTriggersForKeys:(NSArray *)keys) {
- [OneSignal removeTriggersForKeys:keys];
+RCT_REMAP_METHOD(getOnesignalId,
+ getOnesignalIdResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ NSString *onesignalId = OneSignal.User.onesignalId;
+
+ if (onesignalId == nil || [onesignalId length] == 0) {
+ resolve([NSNull null]); // Resolve with null if nil or empty
+ } else {
+ resolve(onesignalId);
+ }
}
-RCT_EXPORT_METHOD(removeTriggerForKey:(NSString *)key) {
- [OneSignal removeTriggerForKey:key];
+RCT_REMAP_METHOD(getExternalId,
+ getExternalIdResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ NSString *externalId = OneSignal.User.externalId;
+
+ if (externalId == nil || [externalId length] == 0) {
+ resolve([NSNull null]); // Resolve with null if nil or empty
+ } else {
+ resolve(externalId);
+ }
}
-RCT_REMAP_METHOD(getTriggerValueForKey,
- key:(NSString *)key
- getTriggerValueForKeyResolver:(RCTPromiseResolveBlock)resolve
- rejecter:(RCTPromiseRejectBlock)reject) {
+RCT_EXPORT_METHOD(addAlias:(NSString *)label :(NSString *)id) {
+ [OneSignal.User addAliasWithLabel:label id:id];
+}
- NSString *val = [OneSignal getTriggerValueForKey:key];
+RCT_EXPORT_METHOD(removeAlias:(NSString *)label) {
+ [OneSignal.User removeAlias:label];
+}
- if (val) {
- resolve(val);
- } else {
- NSError * error = nil;
- NSString * message = [NSString stringWithFormat:@"There was no value for the key: %@", key];
- reject(@"no_value", message, error);
- }
+RCT_EXPORT_METHOD(addAliases:(NSDictionary *)aliases) {
+ [OneSignal.User addAliases:aliases];
}
-RCT_EXPORT_METHOD(pauseInAppMessages:(BOOL)pause) {
- [OneSignal pauseInAppMessages:pause];
+RCT_EXPORT_METHOD(removeAliases:(NSArray *)labels) {
+ [OneSignal.User removeAliases:labels];
}
-RCT_EXPORT_METHOD(setInAppMessageClickHandler) {
- [OneSignal setInAppMessageClickHandler:^(OSInAppMessageAction *action) {
- [RCTOneSignalEventEmitter sendEventWithName:@"OneSignal-inAppMessageClicked" withBody:[action jsonRepresentation]];
- }];
+
+// OneSignal.User.pushSubscription namespace methods
+RCT_REMAP_METHOD(getOptedIn,
+ getOptedInResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ resolve(@(OneSignal.User.pushSubscription.optedIn));
}
-RCT_EXPORT_METHOD(initInAppMessageClickHandlerParams) {
- // iOS Stub
+RCT_REMAP_METHOD(getPushSubscriptionId,
+ getPushSubscriptionIdResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ NSString *pushId = OneSignal.User.pushSubscription.id;
+ if (pushId && ![pushId isEqualToString:@""]) {
+ resolve(pushId);
+ } else {
+ resolve([NSNull null]);
+ }
}
-/*
- * Outcomes
- */
-RCT_EXPORT_METHOD(sendOutcome:(NSString *)name :(RCTResponseSenderBlock)callback) {
- [OneSignal sendOutcome:name onSuccess:^(OSOutcomeEvent *outcome){
- if (outcome) {
- callback(@[[outcome jsonRepresentation]]);
- return;
- }
-
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"sendOutcome OSOutcomeEvent is nil."]];
- }];
+RCT_REMAP_METHOD(getPushSubscriptionToken,
+ getPushSubscriptionTokenResolver:(RCTPromiseResolveBlock)resolve
+ rejecter:(RCTPromiseRejectBlock)reject) {
+ NSString *token = OneSignal.User.pushSubscription.token;
+ if (token && ![token isEqualToString:@""]) {
+ resolve(token);
+ } else {
+ resolve([NSNull null]);
+ }
}
-RCT_EXPORT_METHOD(sendUniqueOutcome:(NSString *)name :(RCTResponseSenderBlock)callback) {
- [OneSignal sendUniqueOutcome:name onSuccess:^(OSOutcomeEvent *outcome){
- if (outcome) {
- callback(@[[outcome jsonRepresentation]]);
- return;
- }
+RCT_EXPORT_METHOD(optIn) {
+ [OneSignal.User.pushSubscription optIn];
+}
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"sendUniqueOutcome OSOutcomeEvent is nil."]];
- }];
+RCT_EXPORT_METHOD(optOut) {
+ [OneSignal.User.pushSubscription optOut];
}
-RCT_EXPORT_METHOD(sendOutcomeWithValue:(NSString *)name :(NSNumber * _Nonnull)value :(RCTResponseSenderBlock)callback) {
- [OneSignal sendOutcomeWithValue:name value:value onSuccess:^(OSOutcomeEvent *outcome){
- if (outcome) {
- callback(@[[outcome jsonRepresentation]]);
- return;
- }
+RCT_EXPORT_METHOD(displayNotification:(NSString*)notificationId) {
+ OSNotificationWillDisplayEvent *event = _notificationWillDisplayCache[notificationId];
+ if (!event) {
+ [OneSignalLog onesignalLog:ONE_S_LL_ERROR message:[NSString stringWithFormat:@"OneSignal (objc): could not find notification will display event for notification with id: %@", notificationId]];
+ return;
+ }
+ dispatch_async(dispatch_get_main_queue(), ^{
+ [event.notification display];
+ });
+
+ [_preventDefaultCache removeObjectForKey:notificationId];
+ [_notificationWillDisplayCache removeObjectForKey:notificationId];
+}
- [OneSignal onesignalLog:ONE_S_LL_VERBOSE message:[NSString stringWithFormat:@"sendOutcomeWithValue OSOutcomeEvent is nil."]];
- }];
+RCT_EXPORT_METHOD(initInAppMessageClickHandlerParams) {
+ // iOS Stub
}
@end
diff --git a/ios/RCTOneSignal/RCTOneSignalExtensionService.m b/ios/RCTOneSignal/RCTOneSignalExtensionService.m
index 2578de92..37bcde2c 100644
--- a/ios/RCTOneSignal/RCTOneSignalExtensionService.m
+++ b/ios/RCTOneSignal/RCTOneSignalExtensionService.m
@@ -1,8 +1,5 @@
-#if __has_include()
-#import
-#else
-#import "OneSignal.h"
-#endif
+#import
+
#import "RCTOneSignalExtensionService.h"
diff --git a/ios/RCTOneSignal/UIApplication+RCTOnesignal.m b/ios/RCTOneSignal/UIApplication+RCTOnesignal.m
index 04d5bc6d..4ecca7c3 100644
--- a/ios/RCTOneSignal/UIApplication+RCTOnesignal.m
+++ b/ios/RCTOneSignal/UIApplication+RCTOnesignal.m
@@ -3,7 +3,8 @@
@interface RCTOneSignal
+ (RCTOneSignal *) sharedInstance;
-- (void)initOneSignal:(NSDictionary *)launchOptions;
+- (void)initialize:(nonnull NSString*)newAppId withLaunchOptions:(nullable NSDictionary*)launchOptions;
+- (void)initOneSignal:(NSDictionary*)launchOptions;
@end
@implementation UIApplication(OneSignalReactNative)
@@ -19,7 +20,7 @@ This UIApplication category ensures that OneSignal init() gets called at least o
this method gets called, it initializes the OneSignal SDK with a nil app ID.
*/
-//helper method to swizzle instance methods
+// helper method to swizzle instance methods
static void injectSelector(Class newClass, SEL newSel, Class addToClass, SEL makeLikeSel) {
Method newMeth = class_getInstanceMethod(newClass, newSel);
IMP imp = method_getImplementation(newMeth);
@@ -36,7 +37,6 @@ static void injectSelector(Class newClass, SEL newSel, Class addToClass, SEL mak
}
}
-//gets called by the ObjC runtime early in the app lifecycle
+ (void)load {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
@@ -44,7 +44,6 @@ + (void)load {
});
}
-
- (void) setOneSignalReactNativeDelegate:(id)delegate {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
diff --git a/jest.config.js b/jest.config.js
index 34037a99..38d21a56 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -1,16 +1,8 @@
module.exports = {
- preset: "react-native",
- moduleDirectories: ["node_modules","src"],
- modulePathIgnorePatterns: ["examples", "dist"],
- collectCoverage: true,
- collectCoverageFrom: ["src/**/*"],
- moduleFileExtensions: [
- "ts",
- "tsx",
- "js",
- "jsx",
- "json",
- "node"
- ]
-}
-
+ preset: 'react-native',
+ moduleDirectories: ['node_modules', 'src'],
+ modulePathIgnorePatterns: ['examples', 'dist'],
+ collectCoverage: true,
+ collectCoverageFrom: ['src/**/*'],
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
+};
diff --git a/package.json b/package.json
index a6ad71c4..1930d419 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "react-native-onesignal",
- "version": "4.5.2",
+ "version": "5.1.0",
"description": "React Native OneSignal SDK",
"main": "dist/index.js",
"types": "dist/index.d.ts",
diff --git a/react-native-onesignal.podspec b/react-native-onesignal.podspec
index a588fd25..b1e38ee1 100644
--- a/react-native-onesignal.podspec
+++ b/react-native-onesignal.podspec
@@ -8,7 +8,7 @@ Pod::Spec.new do |s|
s.homepage = "https://github.com/OneSignal/react-native-onesignal"
s.license = package_json["license"]
s.author = { package_json["author"] => package_json["author"] }
- s.platform = :ios, "9.0"
+ s.platform = :ios, "11.0"
s.source = { :git => "#{package_json["repository"]["url"]}.git", :tag => "#{s.version}" }
s.source_files = 'ios/RCTOneSignal/*.{h,m}'
s.static_framework = true
@@ -22,5 +22,5 @@ Pod::Spec.new do |s|
# pod 'React', :path => '../node_modules/react-native/'
# The Native OneSignal-iOS-SDK XCFramework from cocoapods.
- s.dependency 'OneSignalXCFramework', '3.12.6'
+ s.dependency 'OneSignalXCFramework', '5.1.3'
end
diff --git a/src/OSNotification.ts b/src/OSNotification.ts
index 63e46e17..ffc42747 100644
--- a/src/OSNotification.ts
+++ b/src/OSNotification.ts
@@ -1,4 +1,5 @@
-import { Platform } from 'react-native';
+import { NativeModules, Platform } from 'react-native';
+const RNOneSignal = NativeModules.OneSignal;
export default class OSNotification {
body: string;
@@ -76,4 +77,9 @@ export default class OSNotification {
this.interruptionLevel = receivedEvent.interruptionLevel;
}
}
+
+ display(): void {
+ RNOneSignal.displayNotification(this.notificationId);
+ return;
+ }
}
diff --git a/src/events/EventManager.ts b/src/events/EventManager.ts
index b702726d..fd81128a 100644
--- a/src/events/EventManager.ts
+++ b/src/events/EventManager.ts
@@ -3,32 +3,28 @@ import {
NativeEventEmitter,
NativeModule,
} from 'react-native';
-import NotificationReceivedEvent from './NotificationReceivedEvent';
-import { isMultipleInstancesPossible } from '../helpers';
+import NotificationWillDisplayEvent from './NotificationWillDisplayEvent';
import {
PERMISSION_CHANGED,
SUBSCRIPTION_CHANGED,
- NOTIFICATION_WILL_SHOW,
- NOTIFICATION_OPENED,
+ USER_STATE_CHANGED,
+ NOTIFICATION_WILL_DISPLAY,
+ NOTIFICATION_CLICKED,
IN_APP_MESSAGE_CLICKED,
- EMAIL_SUBSCRIPTION_CHANGED,
- SMS_SUBSCRIPTION_CHANGED,
IN_APP_MESSAGE_WILL_DISPLAY,
IN_APP_MESSAGE_WILL_DISMISS,
IN_APP_MESSAGE_DID_DISMISS,
IN_APP_MESSAGE_DID_DISPLAY,
} from './events';
-import { ChangeEvent } from '../models/Subscription';
import OSNotification from '../OSNotification';
const eventList = [
PERMISSION_CHANGED,
SUBSCRIPTION_CHANGED,
- NOTIFICATION_WILL_SHOW,
- NOTIFICATION_OPENED,
+ USER_STATE_CHANGED,
+ NOTIFICATION_WILL_DISPLAY,
+ NOTIFICATION_CLICKED,
IN_APP_MESSAGE_CLICKED,
- EMAIL_SUBSCRIPTION_CHANGED,
- SMS_SUBSCRIPTION_CHANGED,
IN_APP_MESSAGE_WILL_DISPLAY,
IN_APP_MESSAGE_WILL_DISMISS,
IN_APP_MESSAGE_DID_DISMISS,
@@ -38,20 +34,18 @@ const eventList = [
export default class EventManager {
private RNOneSignal: NativeModule;
private oneSignalEventEmitter: NativeEventEmitter;
- private eventHandlerMap: Map void>;
- private eventHandlerArrayMap: Map void>>;
+ private eventListenerArrayMap: Map void>>;
private listeners: { [key: string]: EmitterSubscription };
constructor(RNOneSignal: NativeModule) {
this.RNOneSignal = RNOneSignal;
this.oneSignalEventEmitter = new NativeEventEmitter(RNOneSignal);
- this.eventHandlerMap = new Map(); // used for setters (single replacable callback)
- this.eventHandlerArrayMap = new Map(); // used for adders (multiple callbacks possible)
+ this.eventListenerArrayMap = new Map(); // used for adders (multiple callbacks possible)
this.listeners = {};
this.setupListeners();
}
- setupListeners(): void {
+ setupListeners() {
// set up the event emitter and listeners
if (this.RNOneSignal != null) {
for (let i = 0; i < eventList.length; i++) {
@@ -61,68 +55,60 @@ export default class EventManager {
}
}
- // clear handlers
- clearHandlers(): void {
- this.eventHandlerMap = new Map();
- this.eventHandlerArrayMap = new Map();
- }
-
- /**
- * Sets the event handler on the JS side of the bridge
- * Supports only one handler at a time
- * @param {string} eventName
- * @param {function} handler
- * @returns void
- */
- setEventHandler(eventName: string, handler: (event: T) => void): void {
- this.eventHandlerMap.set(eventName, handler);
- }
-
/**
* Adds the event handler to the corresponding handler array on the JS side of the bridge
* @param {string} eventName
* @param {function} handler
* @returns void
*/
- addEventHandler(
- eventName: string,
- handler: (event: ChangeEvent) => void,
- ): void {
- let handlerArray = this.eventHandlerArrayMap.get(eventName);
+ addEventListener(eventName: string, handler: (event: T) => void) {
+ let handlerArray = this.eventListenerArrayMap.get(eventName);
handlerArray && handlerArray.length > 0
? handlerArray.push(handler)
- : this.eventHandlerArrayMap.set(eventName, [handler]);
+ : this.eventListenerArrayMap.set(eventName, [handler]);
}
/**
* clears the event handler(s) for the event name
* @param {string} eventName
+ * @param {function} handler
* @returns void
*/
- clearEventHandler(eventName: string): void {
- this.eventHandlerArrayMap.delete(eventName);
+ removeEventListener(eventName: string, handler: any) {
+ const handlerArray = this.eventListenerArrayMap.get(eventName);
+ if (!handlerArray) {
+ return;
+ }
+ const index = handlerArray.indexOf(handler);
+ if (index !== -1) {
+ handlerArray.splice(index, 1);
+ }
+ if (handlerArray.length === 0) {
+ this.eventListenerArrayMap.delete(eventName);
+ }
}
// returns an event listener with the js to native mapping
generateEventListener(eventName: string): EmitterSubscription {
const addListenerCallback = (payload: Object) => {
- if (isMultipleInstancesPossible(eventName)) {
- // used for adders
- let handlerArray = this.eventHandlerArrayMap.get(eventName);
- if (handlerArray) {
+ let handlerArray = this.eventListenerArrayMap.get(eventName);
+ if (handlerArray) {
+ if (eventName === NOTIFICATION_WILL_DISPLAY) {
+ handlerArray.forEach((handler) => {
+ handler(
+ new NotificationWillDisplayEvent(payload as OSNotification),
+ );
+ });
+ } else if (eventName === PERMISSION_CHANGED) {
+ const typedPayload = payload as { permission: boolean };
+ handlerArray.forEach((handler) => {
+ handler(typedPayload.permission);
+ });
+ } else {
handlerArray.forEach((handler) => {
handler(payload);
});
}
- } else {
- // used for setters
- let handler = this.eventHandlerMap.get(eventName);
- payload = this.getFinalPayload(eventName, payload);
-
- // Check if we have added listener for this type yet
- if (handler) {
- handler(payload);
- }
}
};
@@ -131,13 +117,4 @@ export default class EventManager {
addListenerCallback,
);
}
-
- getFinalPayload(eventName: string, payload: Object): Object {
- switch (eventName) {
- case NOTIFICATION_WILL_SHOW:
- return new NotificationReceivedEvent(payload as OSNotification);
- default:
- return payload;
- }
- }
}
diff --git a/src/events/NotificationReceivedEvent.ts b/src/events/NotificationReceivedEvent.ts
deleted file mode 100644
index 0dd9338e..00000000
--- a/src/events/NotificationReceivedEvent.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { NativeModules } from 'react-native';
-import OSNotification from '../OSNotification';
-const RNOneSignal = NativeModules.OneSignal;
-
-export default class NotificationReceivedEvent {
- private notification: OSNotification;
-
- constructor(receivedEvent: OSNotification) {
- this.notification = new OSNotification(receivedEvent);
- }
-
- complete(notification?: OSNotification): void {
- if (!notification) {
- // if the notificationReceivedEvent is null, we want to call the native-side
- // complete/completion with null to silence the notification
- RNOneSignal.completeNotificationEvent(
- this.notification.notificationId,
- false,
- );
- return;
- }
-
- // if the notificationReceivedEvent is not null, we want to pass the specific event
- // future: Android side: make the notification modifiable
- // iOS & Android: the notification id is associated with the native-side complete handler / completion block
- RNOneSignal.completeNotificationEvent(notification.notificationId, true);
- }
-
- getNotification(): OSNotification {
- return this.notification;
- }
-}
diff --git a/src/events/NotificationWillDisplayEvent.ts b/src/events/NotificationWillDisplayEvent.ts
new file mode 100644
index 00000000..e647aba9
--- /dev/null
+++ b/src/events/NotificationWillDisplayEvent.ts
@@ -0,0 +1,20 @@
+import { NativeModules } from 'react-native';
+import OSNotification from '../OSNotification';
+const RNOneSignal = NativeModules.OneSignal;
+
+export default class NotificationWillDisplayEvent {
+ public notification: OSNotification;
+
+ constructor(displayEvent: OSNotification) {
+ this.notification = new OSNotification(displayEvent);
+ }
+
+ preventDefault(): void {
+ RNOneSignal.preventDefault(this.notification.notificationId);
+ return;
+ }
+
+ getNotification(): OSNotification {
+ return this.notification;
+ }
+}
diff --git a/src/events/events.ts b/src/events/events.ts
index 7a7a11e4..d2e6541e 100644
--- a/src/events/events.ts
+++ b/src/events/events.ts
@@ -1,16 +1,11 @@
-// events
-export const NOTIFICATION_WILL_SHOW =
- 'OneSignal-notificationWillShowInForeground';
-export const NOTIFICATION_OPENED = 'OneSignal-remoteNotificationOpened';
+export const NOTIFICATION_WILL_DISPLAY =
+ 'OneSignal-notificationWillDisplayInForeground';
+export const NOTIFICATION_CLICKED = 'OneSignal-notificationClicked';
export const IN_APP_MESSAGE_CLICKED = 'OneSignal-inAppMessageClicked';
-
-// In-App Message lifecycle events
export const IN_APP_MESSAGE_WILL_DISPLAY = 'OneSignal-inAppMessageWillDisplay';
export const IN_APP_MESSAGE_DID_DISPLAY = 'OneSignal-inAppMessageDidDisplay';
export const IN_APP_MESSAGE_WILL_DISMISS = 'OneSignal-inAppMessageWillDismiss';
export const IN_APP_MESSAGE_DID_DISMISS = 'OneSignal-inAppMessageDidDismiss';
-
export const PERMISSION_CHANGED = 'OneSignal-permissionChanged';
export const SUBSCRIPTION_CHANGED = 'OneSignal-subscriptionChanged';
-export const EMAIL_SUBSCRIPTION_CHANGED = 'OneSignal-emailSubscriptionChanged';
-export const SMS_SUBSCRIPTION_CHANGED = 'OneSignal-smsSubscriptionChanged';
+export const USER_STATE_CHANGED = 'OneSignal-userStateChanged';
diff --git a/src/helpers.ts b/src/helpers.ts
index 5a0e6b1d..d9daf302 100644
--- a/src/helpers.ts
+++ b/src/helpers.ts
@@ -1,11 +1,5 @@
import invariant from 'invariant';
import { NativeModule } from 'react-native';
-import {
- PERMISSION_CHANGED,
- SUBSCRIPTION_CHANGED,
- EMAIL_SUBSCRIPTION_CHANGED,
- SMS_SUBSCRIPTION_CHANGED,
-} from './events/events';
export function isValidCallback(handler: Function) {
invariant(typeof handler === 'function', 'Must provide a valid callback');
@@ -16,23 +10,9 @@ export function isNativeModuleLoaded(module: NativeModule): boolean {
console.error(
'Could not load RNOneSignal native module. Make sure native dependencies are properly linked.',
);
+
return false;
}
- return true;
-}
-/**
- * Returns whether the handler associated with the event name can have multiple instances set
- * @param {String} eventName
- */
-export function isMultipleInstancesPossible(eventName: string) {
- switch (eventName) {
- case PERMISSION_CHANGED:
- case SUBSCRIPTION_CHANGED:
- case EMAIL_SUBSCRIPTION_CHANGED:
- case SMS_SUBSCRIPTION_CHANGED:
- return true;
- default:
- return false;
- }
+ return true;
}
diff --git a/src/index.ts b/src/index.ts
index a5eb4174..3979bd05 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -3,1131 +3,907 @@
import { NativeModules, Platform } from 'react-native';
import EventManager from './events/EventManager';
import {
- PERMISSION_CHANGED,
- SUBSCRIPTION_CHANGED,
IN_APP_MESSAGE_CLICKED,
- NOTIFICATION_WILL_SHOW,
- NOTIFICATION_OPENED,
- EMAIL_SUBSCRIPTION_CHANGED,
- SMS_SUBSCRIPTION_CHANGED,
- IN_APP_MESSAGE_WILL_DISPLAY,
- IN_APP_MESSAGE_WILL_DISMISS,
IN_APP_MESSAGE_DID_DISMISS,
IN_APP_MESSAGE_DID_DISPLAY,
+ IN_APP_MESSAGE_WILL_DISMISS,
+ IN_APP_MESSAGE_WILL_DISPLAY,
+ NOTIFICATION_CLICKED,
+ NOTIFICATION_WILL_DISPLAY,
+ PERMISSION_CHANGED,
+ SUBSCRIPTION_CHANGED,
+ USER_STATE_CHANGED,
} from './events/events';
import {
- DeviceState,
- ChangeEvent,
- PermissionChange,
- SubscriptionChange,
- EmailSubscriptionChange,
- SMSSubscriptionChange,
+ NotificationEventName,
+ NotificationEventTypeMap,
+ NotificationClickEvent,
+} from './models/NotificationEvents';
+import {
+ PushSubscriptionState,
+ OSNotificationPermission,
+ PushSubscriptionChangedState,
} from './models/Subscription';
-import NotificationReceivedEvent from './events/NotificationReceivedEvent';
-import { OpenedEvent } from './models/NotificationEvents';
-import { OutcomeEvent } from './models/Outcomes';
+import { UserState, UserChangedState } from './models/User';
+import NotificationWillDisplayEvent from './events/NotificationWillDisplayEvent';
import {
InAppMessage,
- InAppMessageAction,
- InAppMessageLifecycleHandlerObject,
+ InAppMessageEventTypeMap,
+ InAppMessageEventName,
+ InAppMessageClickEvent,
+ InAppMessageWillDisplayEvent,
+ InAppMessageDidDisplayEvent,
+ InAppMessageWillDismissEvent,
+ InAppMessageDidDismissEvent,
} from './models/InAppMessage';
import { isValidCallback, isNativeModuleLoaded } from './helpers';
const RNOneSignal = NativeModules.OneSignal;
const eventManager = new EventManager(RNOneSignal);
-// 0 = None, 1 = Fatal, 2 = Errors, 3 = Warnings, 4 = Info, 5 = Debug, 6 = Verbose
-export type LogLevel = 0 | 1 | 2 | 3 | 4 | 5 | 6;
-
-export default class OneSignal {
- /* I N I T I A L I Z A T I O N */
-
- /**
- * Completes OneSignal initialization by setting the OneSignal Application ID.
- * @param {string} appId
- * @returns void
- */
- static setAppId(appId: string): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- RNOneSignal.setAppId(appId);
- }
-
- /* O B S E R V E R S */
-
- /**
- * Add a callback that fires when the native push permission changes.
- * @param {(event:ChangeEvent) => void} observer
- * @returns void
- */
- static addPermissionObserver(
- observer: (event: ChangeEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- isValidCallback(observer);
- RNOneSignal.addPermissionObserver();
- eventManager.addEventHandler(
- PERMISSION_CHANGED,
- observer,
- );
- }
-
- /**
- * Clears current permission observers.
- * @returns void
- */
- static clearPermissionObservers(): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- RNOneSignal.removePermissionObserver();
- eventManager.clearEventHandler(PERMISSION_CHANGED);
- }
-
- /**
- * Add a callback that fires when the OneSignal subscription state changes.
- * @param {(event:ChangeEvent) => void} observer
- * @returns void
- */
- static addSubscriptionObserver(
- observer: (event: ChangeEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- isValidCallback(observer);
- RNOneSignal.addSubscriptionObserver();
- eventManager.addEventHandler(
- SUBSCRIPTION_CHANGED,
- observer,
- );
- }
-
- /**
- * Clears current subscription observers.
- * @returns void
- */
- static clearSubscriptionObservers(): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- RNOneSignal.removeSubscriptionObserver();
- eventManager.clearEventHandler(SUBSCRIPTION_CHANGED);
- }
-
- /**
- * Add a callback that fires when the OneSignal email subscription changes.
- * @param {(event:ChangeEvent) => void} observer
- * @returns void
- */
- static addEmailSubscriptionObserver(
- observer: (event: ChangeEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- isValidCallback(observer);
- RNOneSignal.addEmailSubscriptionObserver();
- eventManager.addEventHandler(
- EMAIL_SUBSCRIPTION_CHANGED,
- observer,
- );
- }
-
- /**
- * Clears current email subscription observers.
- * @returns void
- */
- static clearEmailSubscriptionObservers(): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- RNOneSignal.removeEmailSubscriptionObserver();
- eventManager.clearEventHandler(EMAIL_SUBSCRIPTION_CHANGED);
- }
-
- /**
- * Add a callback that fires when the OneSignal sms subscription changes.
- * @param {(event:ChangeEvent) => void} observer
- * @returns void
- */
- static addSMSSubscriptionObserver(
- observer: (event: ChangeEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- isValidCallback(observer);
- RNOneSignal.addSMSSubscriptionObserver();
- eventManager.addEventHandler(
- SMS_SUBSCRIPTION_CHANGED,
- observer,
- );
- }
-
- /**
- * Clears current SMS subscription observers.
- * @returns void
- */
- static clearSMSSubscriptionObservers(): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- RNOneSignal.removeSMSSubscriptionObserver();
- eventManager.clearEventHandler(SMS_SUBSCRIPTION_CHANGED);
- }
-
- /* H A N D L E R S */
-
- /**
- * Sets the handler that fires before the notification is displayed
- * Callback parameter is a `NotificationReceivedEvent` with:
- * - notification data
- * - `complete` function that accepts the `NotificationReceivedEvent`
- * @param {(event:NotificationReceivedEvent) => void} handler
- */
- static setNotificationWillShowInForegroundHandler(
- handler: (event: NotificationReceivedEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- isValidCallback(handler);
- RNOneSignal.setNotificationWillShowInForegroundHandler();
- eventManager.setEventHandler(
- NOTIFICATION_WILL_SHOW,
- handler,
- );
- }
-
- /**
- * Set the callback to run on notification open.
- * @param {(openedEvent:OpenedEvent) => void} handler
- * @returns void
- */
- static setNotificationOpenedHandler(
- handler: (openedEvent: OpenedEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- isValidCallback(handler);
-
- RNOneSignal.setNotificationOpenedHandler();
- eventManager.setEventHandler(NOTIFICATION_OPENED, handler);
- }
-
- /* R E G I S T R A T I O N E T C */
-
- /**
- * Prompts the user for push notifications permission in iOS and Android 13+.
- * Use the fallbackToSettings parameter to prompt to open the settings app if a user has already declined push permissions.
- *
- * Call with promptForPushNotificationsWithUserResponse(fallbackToSettings?, handler?)
- *
- * Recommended: Do not use and instead follow: https://documentation.onesignal.com/docs/ios-push-opt-in-prompt.
- * @param {boolean} fallbackToSettings
- * @param {(response:boolean) => void} handler
- * @returns void
- */
- static promptForPushNotificationsWithUserResponse(
- fallbackToSettingsOrHandler?: boolean | ((response: boolean) => void),
- handler?: (response: boolean) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- let fallbackToSettings = false;
-
- if (typeof fallbackToSettingsOrHandler === 'function') {
- // Method was called like promptForPushNotificationsWithUserResponse(handler: function)
- handler = fallbackToSettingsOrHandler;
- } else if (typeof fallbackToSettingsOrHandler === 'boolean') {
- // Method was called like promptForPushNotificationsWithUserResponse(fallbackToSettings: boolean, handler?: function)
- fallbackToSettings = fallbackToSettingsOrHandler;
- }
- // Else method was called like promptForPushNotificationsWithUserResponse(), no need to modify
-
- if (!handler && Platform.OS === 'ios') {
- handler = function () {};
- }
-
- RNOneSignal.promptForPushNotificationsWithUserResponse(
- fallbackToSettings,
- handler,
- );
- }
-
- /**
- * Only applies to iOS (does nothing on Android as it always silently registers)
- * Request for Direct-To-History push notification authorization
- *
- * For more information: https://documentation.onesignal.com/docs/ios-customizations#provisional-push-notifications
- *
- * @param {(response:boolean) => void} handler
- * @returns void
- */
- static registerForProvisionalAuthorization(
- handler: (response: boolean) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- if (Platform.OS === 'ios') {
- isValidCallback(handler);
- RNOneSignal.registerForProvisionalAuthorization(handler);
- } else {
- console.log(
- 'registerForProvisionalAuthorization: this function is not supported on Android',
- );
- }
- }
-
- /**
- * Disable the push notification subscription to OneSignal.
- * @param {boolean} disable
- * @returns void
- */
- static disablePush(disable: boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- RNOneSignal.disablePush(disable);
- }
-
- /**
- * Android Only. If notifications are disabled for your application, unsubscribe the user from OneSignal.
- * @param {boolean} unsubscribe
- * @returns void
- */
- static unsubscribeWhenNotificationsAreDisabled(unsubscribe: boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- if (Platform.OS === 'android') {
- RNOneSignal.unsubscribeWhenNotificationsAreDisabled(unsubscribe);
- } else {
- console.log(
- 'unsubscribeWhenNotificationsAreDisabled: this function is not supported on iOS',
- );
- }
- }
- /* L I V E A C T I V I T Y */
-
- /**
- * Associates a temporary push token with an Activity ID on the OneSignal server.
- * @param {string} activityId
- * @param {string} token
- * @param {Function} handler
- * @returns void
- */
- static enterLiveActivity(
- activityId: string,
- token: string,
- handler?: Function,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- if (!handler) {
- handler = function () {};
- }
+/// An enum that declares different types of log levels you can use with the OneSignal SDK, going from the least verbose (none) to verbose (print all comments).
+export enum LogLevel {
+ None,
+ Fatal,
+ Error,
+ Warn,
+ Info,
+ Debug,
+ Verbose,
+}
- // Only Available on iOS
- if (Platform.OS === 'ios') {
- RNOneSignal.enterLiveActivity(activityId, token, handler);
- }
- }
+// Internal wrapper notification permission state that is being updated by the permission change handler.
+let notificationPermission = false;
- /**
- * Deletes activityId associated temporary push token on the OneSignal server.
- * @param {string} activityId
- * @param {Function} handler
- * @returns void
- */
- static exitLiveActivity(activityId: string, handler?: Function): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- if (!handler) {
- handler = function () {};
- }
-
- // Only Available on iOS
- if (Platform.OS === 'ios') {
- RNOneSignal.exitLiveActivity(activityId, handler);
- }
- }
+// Internal wrapper push subscription state that is being updated by the subscription change handler.
+let pushSub: PushSubscriptionState = {
+ id: '',
+ token: '',
+ optedIn: false,
+};
- /* L O C A T I O N */
+async function _addPermissionObserver() {
+ OneSignal.Notifications.addEventListener('permissionChange', (granted) => {
+ notificationPermission = granted;
+ });
- /**
- * True if the application has location share activated, false otherwise
- * @returns Promise
- */
- static isLocationShared(): Promise {
- // must return a promise
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return Promise.resolve(false);
- }
- return RNOneSignal.isLocationShared();
- }
+ notificationPermission = await RNOneSignal.hasNotificationPermission();
+}
- /**
- * Disable or enable location collection (defaults to enabled if your app has location permission).
- * @param {boolean} shared
- * @returns void
- */
- static setLocationShared(shared: boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+async function _addPushSubscriptionObserver() {
+ OneSignal.User.pushSubscription.addEventListener(
+ 'change',
+ (subscriptionChange) => {
+ pushSub = subscriptionChange.current;
+ },
+ );
+
+ pushSub.id = await RNOneSignal.getPushSubscriptionId();
+ pushSub.token = await RNOneSignal.getPushSubscriptionToken();
+ pushSub.optedIn = await RNOneSignal.getOptedIn();
+}
- RNOneSignal.setLocationShared(shared);
- }
+export namespace OneSignal {
+ /** Initializes the OneSignal SDK. This should be called during startup of the application. */
+ export function initialize(appId: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Prompts the user for location permissions to allow geotagging from the OneSignal dashboard.
- * @returns void
- */
- static promptLocation(): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ RNOneSignal.initialize(appId);
- //Supported in both iOS & Android
- RNOneSignal.promptLocation();
+ _addPermissionObserver();
+ _addPushSubscriptionObserver();
}
- /* D E V I C E I N F O */
-
/**
- * Gets the device state.
- * This method returns a "snapshot" of the device state for when it was called.
- * @returns Promise
+ * If your integration is user-centric, or you want the ability to identify the user beyond the current device, the
+ * login method should be called to identify the user.
*/
- static async getDeviceState(): Promise {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return Promise.resolve(null);
- }
- const deviceState = await RNOneSignal.getDeviceState();
+ export function login(externalId: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- if (Platform.OS === 'android') {
- deviceState.hasNotificationPermission =
- deviceState.areNotificationsEnabled;
- delete deviceState.areNotificationsEnabled;
- }
-
- return deviceState;
+ RNOneSignal.login(externalId);
}
/**
- * Allows you to set the app defined language with the OneSignal SDK.
- * @param {string} language
- * @param {(success:object) => void} onSuccess
- * @param {(failure:object) => void} onFailure
- * @returns void
+ * Once (or if) the user is no longer identifiable in your app (i.e. they logged out), the logout method should be
+ * called.
*/
- static setLanguage(
- language: string,
- onSuccess?: (success: object) => void,
- onFailure?: (failure: object) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- if (!onSuccess) {
- onSuccess = function () {};
- }
+ export function logout() {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- if (!onFailure) {
- onFailure = function () {};
- }
- RNOneSignal.setLanguage(language, onSuccess, onFailure);
+ RNOneSignal.logout();
}
- /* T A G S */
-
- /**
- * Tag a user based on an app event of your choosing so they can be targeted later via segments.
- * @param {string} key
- * @param {string} value
- * @returns void
- */
- static sendTag(key: string, value: string): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ /** For GDPR users, your application should call this method before setting the App ID. */
+ export function setConsentRequired(required: boolean) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- if (!key || (!value && value !== '')) {
- console.error('OneSignal: sendTag: must include a key and a value');
- }
-
- RNOneSignal.sendTag(key, value);
+ RNOneSignal.setPrivacyConsentRequired(required);
}
/**
- * Tag a user with multiple tags based on an app event of your choosing so they can be targeted later via segments.
- * @param {[key: string]: string} tags
- * @returns void
- */
- static sendTags(tags: { [key: string]: string }): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- let keys = Object.keys(tags);
-
- if (keys.length === 0) {
- console.error(
- "OneSignal: sendTags: argument must be of type object of the form { key : 'value' }",
- );
- }
-
- RNOneSignal.sendTags(tags || {});
- }
-
- /**
- * Retrieve a list of tags that have been set on the user from the OneSignal server.
- * @param {(tags: {[key: string]: string} | null) => void} handler
- * @returns void
- */
- static getTags(
- handler: (tags: { [key: string]: string } | null) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- RNOneSignal.getTags(handler);
- }
-
- /**
- * Deletes a single tag that was previously set on a user.
- * @param {string} key
- * @returns void
- */
- static deleteTag(key: string): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- if (typeof key !== 'string') {
- console.error(
- 'OneSignal: deleteTag: key argument must be of type string',
+ * If your application is set to require the user's privacy consent, you can provide this consent using this method.
+ * Indicates whether privacy consent has been granted. This field is only relevant when the application has opted
+ * into data privacy protections.
+ */
+ export function setConsentGiven(granted: boolean) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ RNOneSignal.setPrivacyConsentGiven(granted);
+ }
+
+ export namespace Debug {
+ /**
+ * Enable logging to help debug if you run into an issue setting up OneSignal.
+ * @param {LogLevel} nsLogLevel - Sets the logging level to print to the Android LogCat log or Xcode log.
+ */
+ export function setLogLevel(nsLogLevel: LogLevel) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ RNOneSignal.setLogLevel(nsLogLevel);
+ }
+
+ /**
+ * Enable logging to help debug if you run into an issue setting up OneSignal.
+ * @param {LogLevel} visualLogLevel - Sets the logging level to show as alert dialogs.
+ */
+ export function setAlertLevel(visualLogLevel: LogLevel) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ RNOneSignal.setAlertLevel(visualLogLevel);
+ }
+ }
+
+ export namespace LiveActivities {
+ /**
+ * Associates a temporary push token with an Activity ID on the OneSignal server.
+ */
+ export function enter(
+ activityId: string,
+ token: string,
+ handler?: Function,
+ ) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ if (!handler) {
+ handler = () => {};
+ }
+
+ // Only Available on iOS
+ if (Platform.OS === 'ios') {
+ RNOneSignal.enterLiveActivity(activityId, token, handler);
+ }
+ }
+
+ /**
+ * Deletes activityId associated temporary push token on the OneSignal server.
+ */
+ export function exit(activityId: string, handler?: Function) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ if (!handler) {
+ handler = () => {};
+ }
+
+ // Only Available on iOS
+ if (Platform.OS === 'ios') {
+ RNOneSignal.exitLiveActivity(activityId, handler);
+ }
+ }
+ }
+
+ export namespace User {
+ export namespace pushSubscription {
+ /** Add a callback that fires when the OneSignal subscription state changes. */
+ export function addEventListener(
+ event: 'change',
+ listener: (event: PushSubscriptionChangedState) => void,
+ ) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ isValidCallback(listener);
+ RNOneSignal.addPushSubscriptionObserver();
+ eventManager.addEventListener(
+ SUBSCRIPTION_CHANGED,
+ listener,
+ );
+ }
+
+ /** Clears current subscription observers. */
+ export function removeEventListener(
+ event: 'change',
+ listener: (event: PushSubscriptionChangedState) => void,
+ ) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ eventManager.removeEventListener(SUBSCRIPTION_CHANGED, listener);
+ }
+
+ /**
+ * @deprecated This method is deprecated. It has been replaced by {@link getIdAsync}.
+ */
+ export function getPushSubscriptionId(): string {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return '';
+ }
+ console.warn(
+ 'OneSignal: This method has been deprecated. Use getIdAsync instead for getting push subscription id.',
+ );
+
+ return pushSub.id ? pushSub.id : '';
+ }
+
+ export async function getIdAsync(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(
+ new Error('OneSignal native module not loaded'),
+ );
+ }
+
+ return await RNOneSignal.getPushSubscriptionId();
+ }
+
+ /**
+ * @deprecated This method is deprecated. It has been replaced by {@link getTokenAsync}.
+ */
+ export function getPushSubscriptionToken(): string {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return '';
+ }
+ console.warn(
+ 'OneSignal: This method has been deprecated. Use getTokenAsync instead for getting push subscription token.',
+ );
+
+ return pushSub.token ? pushSub.token : '';
+ }
+
+ /** The readonly push subscription token */
+ export async function getTokenAsync(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(
+ new Error('OneSignal native module not loaded'),
+ );
+ }
+
+ return await RNOneSignal.getPushSubscriptionToken();
+ }
+
+ /**
+ * @deprecated This method is deprecated. It has been replaced by {@link getOptedInAsync}.
+ */
+ export function getOptedIn(): boolean {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return false;
+ }
+ console.warn(
+ 'OneSignal: This method has been deprecated. Use getOptedInAsync instead for getting push subscription opted in status.',
+ );
+
+ return pushSub.optedIn;
+ }
+
+ /**
+ * Gets a boolean value indicating whether the current user is opted in to push notifications.
+ * This returns true when the app has notifications permission and optOut is not called.
+ * Note: Does not take into account the existence of the subscription ID and push token.
+ * This boolean may return true but push notifications may still not be received by the user.
+ */
+ export async function getOptedInAsync(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(
+ new Error('OneSignal native module not loaded'),
+ );
+ }
+
+ return await RNOneSignal.getOptedIn();
+ }
+
+ /** Disable the push notification subscription to OneSignal. */
+ export function optOut() {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ RNOneSignal.optOut();
+ }
+
+ /** Enable the push notification subscription to OneSignal. */
+ export function optIn() {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ RNOneSignal.optIn();
+ }
+ }
+
+ /**
+ * Add a callback that fires when the OneSignal user state changes.
+ * Important: When using the observer to retrieve the onesignalId, check the externalId as well to confirm the values are associated with the expected user.
+ */
+ export function addEventListener(
+ event: 'change',
+ listener: (event: UserChangedState) => void,
+ ) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ isValidCallback(listener);
+ RNOneSignal.addUserStateObserver();
+ eventManager.addEventListener(
+ USER_STATE_CHANGED,
+ listener,
);
}
- RNOneSignal.deleteTags([key]);
- }
- /**
- * Deletes multiple tags that were previously set on a user.
- * @param {string[]} keys
- */
- static deleteTags(keys: string[]): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ /** Clears current user state observers. */
+ export function removeEventListener(
+ event: 'change',
+ listener: (event: UserChangedState) => void,
+ ) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- if (!Array.isArray(keys)) {
- console.error('OneSignal: deleteTags: argument must be of array type');
+ eventManager.removeEventListener(USER_STATE_CHANGED, listener);
}
- RNOneSignal.deleteTags(keys);
- }
-
- /* E M A I L */
-
- /**
- * Allows you to set the user's email address with the OneSignal SDK.
- * @param {string} email
- * @param {string} emailAuthCode
- * @param {Function} handler
- * @returns void
- */
- static setEmail(
- email: string,
- emailAuthCode?: string | null,
- handler?: Function,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ /** Get the nullable OneSignal Id associated with the user. */
+ export async function getOnesignalId(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
+ return RNOneSignal.getOnesignalId();
}
- if (emailAuthCode === undefined) {
- emailAuthCode = null;
+ /** Get the nullable External Id associated with the user. */
+ export async function getExternalId(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
+ return RNOneSignal.getExternalId();
}
- // Android workaround for the current issue of callback fired more than once
- if (!handler && Platform.OS === 'ios') {
- handler = function () {};
- }
+ /** Explicitly set a 2-character language code for the user. */
+ export function setLanguage(language: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- RNOneSignal.setEmail(email, emailAuthCode, handler);
- }
-
- /**
- * If your app implements logout functionality, you can call logoutEmail to dissociate the email from the device.
- * @param {Function} handler
- */
- static logoutEmail(handler?: Function): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- // Android workaround for the current issue of callback fired more than once
- if (!handler && Platform.OS === 'ios') {
- handler = function () {};
+ RNOneSignal.setLanguage(language);
}
- RNOneSignal.logoutEmail(handler);
- }
-
- /* S M S */
+ /** Set an alias for the current user. If this alias label already exists on this user, it will be overwritten with the new alias id. */
+ export function addAlias(label: string, id: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Allows you to set the user's SMS number with the OneSignal SDK.
- * @param {string} smsNumber
- * @param {string} smsAuthCode
- * @param {Function} handler
- * @returns void
- */
- static setSMSNumber(
- smsNumber: string,
- smsAuthCode?: string | null,
- handler?: Function,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.addAlias(label, id);
}
- if (smsAuthCode === undefined) {
- smsAuthCode = null;
- }
+ /** Set aliases for the current user. If any alias already exists, it will be overwritten to the new values. */
+ export function addAliases(aliases: object) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- // Android workaround for the current issue of callback fired more than once
- if (!handler && Platform.OS === 'ios') {
- handler = function () {};
+ RNOneSignal.addAliases(aliases);
}
- RNOneSignal.setSMSNumber(smsNumber, smsAuthCode, handler);
- }
+ /** Remove an alias from the current user. */
+ export function removeAlias(label: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * If your app implements logout functionality, you can call logoutSMSNumber to dissociate the SMS number from the device.
- * @param {Function} handler
- */
- static logoutSMSNumber(handler?: Function): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.removeAlias(label);
}
- // Android workaround for the current issue of callback fired more than once
- if (!handler && Platform.OS === 'ios') {
- handler = function () {};
- }
+ /** Remove aliases from the current user. */
+ export function removeAliases(labels: string[]) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- RNOneSignal.logoutSMSNumber(handler);
- }
-
- /* N O T I F I C A T I O N S */
-
- /**
- * Send a notification
- * @param {string} notificationObjectString - JSON string payload (see REST API reference)
- * @param {(success:object) => void} onSuccess
- * @param {(failure:object) => void} onFailure
- * @returns void
- */
- static postNotification(
- notificationObjectString: string,
- onSuccess?: (success: object) => void,
- onFailure?: (failure: object) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.removeAliases(labels);
}
- if (!onSuccess) {
- onSuccess = function () {};
- }
+ /** Add a new email subscription to the current user. */
+ export function addEmail(email: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- if (!onFailure) {
- onFailure = function () {};
+ RNOneSignal.addEmail(email);
}
- RNOneSignal.postNotification(
- notificationObjectString,
- onSuccess,
- onFailure,
- );
- }
+ /**
+ * Remove an email subscription from the current user. Returns false if the specified email does not exist on the user within the SDK,
+ * and no request will be made.
+ */
+ export function removeEmail(email: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Android Only. iOS provides a standard way to clear notifications by clearing badge count.
- * @returns void
- */
- static clearOneSignalNotifications(): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.removeEmail(email);
}
- if (Platform.OS === 'android') {
- RNOneSignal.clearOneSignalNotifications();
- } else {
- console.log(
- 'clearOneSignalNotifications: this function is not supported on iOS',
- );
- }
- }
+ /** Add a new SMS subscription to the current user. */
+ export function addSms(smsNumber: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Android Only.
- * Removes a single OneSignal notification based on its Android notification integer id.
- * @param {number} id - notification id to cancel
- * @returns void
- */
- static removeNotification(id: number): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.addSms(smsNumber);
}
- if (Platform.OS === 'android') {
- RNOneSignal.removeNotification(id);
- } else {
- console.log('removeNotification: this function is not supported on iOS');
- }
- }
+ /**
+ * Remove an SMS subscription from the current user. Returns false if the specified SMS number does not exist on the user within the SDK,
+ * and no request will be made.
+ */
+ export function removeSms(smsNumber: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Android Only.
- * Removes all OneSignal notifications based on its Android notification group Id.
- * @param {string} id - notification group id to cancel
- * @returns void
- */
- static removeGroupedNotifications(id: string): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.removeSms(smsNumber);
}
- if (Platform.OS === 'android') {
- RNOneSignal.removeGroupedNotifications(id);
- } else {
- console.log(
- 'removeGroupedNotifications: this function is not supported on iOS',
- );
- }
- }
+ /**
+ * Add a tag for the current user. Tags are key:value pairs used as building blocks for targeting specific users and/or personalizing
+ * messages. If the tag key already exists, it will be replaced with the value provided here.
+ */
+ export function addTag(key: string, value: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * This method can be used to set if launch URLs should be opened in safari or within the application.
- * @param {boolean} isEnabled
- * @returns
- */
- static setLaunchURLsInApp(isEnabled: boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ if (!key || (!value && value !== '')) {
+ console.error('OneSignal: sendTag: must include a key and a value');
+ return;
+ }
- if (Platform.OS === 'ios') {
- RNOneSignal.setLaunchURLsInApp(isEnabled);
- } else {
- console.log(
- 'setLaunchURLsInApp: this function is not supported on Android',
- );
+ RNOneSignal.addTag(key, value);
}
- }
- /* E X T E R N A L U S E R I D */
+ /**
+ * Add multiple tags for the current user. Tags are key:value pairs used as building blocks for targeting
+ * specific users and/or personalizing messages. If the tag key already exists, it will be replaced with
+ * the value provided here.
+ */
+ export function addTags(tags: object) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Allows you to use your own system's user ID's to send push notifications to your users.
- * @param {string} externalId
- * @param {string} externalIdAuthCode?
- * @param {(results:object) => void} handler?
- * @returns void
- */
- static setExternalUserId(
- externalId: string,
- handlerOrAuth?: ((results: object) => void) | string,
- handler?: (results: object) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ if (!tags || Object.keys(tags).length === 0) {
+ console.error(
+ 'OneSignal: addTags: argument must be of type object of the form { key : "value" }',
+ );
+ return;
+ }
- if (typeof handlerOrAuth === 'function') {
- RNOneSignal.setExternalUserId(externalId, null, handlerOrAuth);
- return;
+ RNOneSignal.addTags(tags);
}
- if (!handler && Platform.OS === 'ios') {
- handler = function () {};
- }
+ /** Remove the data tag with the provided key from the current user. */
+ export function removeTag(key: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- RNOneSignal.setExternalUserId(externalId, handlerOrAuth, handler);
- }
+ if (typeof key !== 'string') {
+ console.error(
+ 'OneSignal: removeTag: key argument must be of type string',
+ );
+ return;
+ }
- /**
- * Removes whatever was set as the current user's external user ID.
- * @param {(results:object) => void} handler
- * @returns void
- */
- static removeExternalUserId(handler?: (results: object) => void): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.removeTags([key]);
}
- // Android workaround for the current issue of callback fired more than once
- if (handler === undefined && Platform.OS === 'ios') {
- handler = function () {};
- }
-
- RNOneSignal.removeExternalUserId(handler);
- }
-
- /* I N A P P M E S S A G I N G */
-
- /**
- * Sets an In-App Message click event handler.
- * @param {(action:InAppMessageAction) => void} handler
- * @returns void
- */
- static setInAppMessageClickHandler(
- handler: (action: InAppMessageAction) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
- isValidCallback(handler);
- RNOneSignal.initInAppMessageClickHandlerParams();
- RNOneSignal.setInAppMessageClickHandler();
- eventManager.setEventHandler(
- IN_APP_MESSAGE_CLICKED,
- handler,
- );
- }
+ /** Remove multiple tags with the provided keys from the current user. */
+ export function removeTags(keys: string[]) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Sets the In-App Message lifecycle handler object to run on displaying and/or dismissing an In-App Message.
- * @param {InAppMessageLifecycleHandlerObject} handlerObject
- * @returns void
- */
- static setInAppMessageLifecycleHandler(
- handlerObject: InAppMessageLifecycleHandlerObject,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ if (!Array.isArray(keys)) {
+ console.error('OneSignal: removeTags: argument must be of array type');
+ return;
+ }
- if (handlerObject.onWillDisplayInAppMessage) {
- isValidCallback(handlerObject.onWillDisplayInAppMessage);
- eventManager.setEventHandler(
- IN_APP_MESSAGE_WILL_DISPLAY,
- handlerObject.onWillDisplayInAppMessage,
- );
- }
- if (handlerObject.onDidDisplayInAppMessage) {
- isValidCallback(handlerObject.onDidDisplayInAppMessage);
- eventManager.setEventHandler(
- IN_APP_MESSAGE_DID_DISPLAY,
- handlerObject.onDidDisplayInAppMessage,
- );
- }
- if (handlerObject.onWillDismissInAppMessage) {
- isValidCallback(handlerObject.onWillDismissInAppMessage);
- eventManager.setEventHandler(
- IN_APP_MESSAGE_WILL_DISMISS,
- handlerObject.onWillDismissInAppMessage,
- );
- }
- if (handlerObject.onDidDismissInAppMessage) {
- isValidCallback(handlerObject.onDidDismissInAppMessage);
- eventManager.setEventHandler(
- IN_APP_MESSAGE_DID_DISMISS,
- handlerObject.onDidDismissInAppMessage,
- );
+ RNOneSignal.removeTags(keys);
}
- RNOneSignal.setInAppMessageLifecycleHandler();
- }
-
- /**
- * Add an In-App Message Trigger.
- * @param {string} key
- * @param {string | number | boolean} value
- * @returns void
- */
- static addTrigger(key: string, value: string | number | boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ /** Returns the local tags for the current user. */
+ export function getTags(): Promise<{ [key: string]: string }> {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
- // value can be assigned to `false` so we cannot just check `!value`
- if (!key || value == null) {
- console.error('OneSignal: addTrigger: must include a key and a value');
+ return RNOneSignal.getTags();
}
-
- let trigger: { [key: string]: string | number | boolean } = {};
- trigger[key] = value;
- RNOneSignal.addTriggers(trigger);
}
- /**
- * Adds Multiple In-App Message Triggers.
- * @param {[key: string]: string | number | boolean} triggers
- * @returns void
- */
- static addTriggers(triggers: {
- [key: string]: string | number | boolean;
- }): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- let keys = Object.keys(triggers);
-
- if (keys.length === 0) {
- console.error(
- "OneSignal: addTriggers: argument must be an object of the form { key : 'value' }",
+ export namespace Notifications {
+ /**
+ * @deprecated This method is deprecated. It has been replaced by {@link getPermissionAsync}.
+ */
+ export function hasPermission(): boolean {
+ console.warn(
+ 'OneSignal: This method has been deprecated. Use getPermissionAsync instead for getting notification permission status.',
);
- }
- RNOneSignal.addTriggers(triggers);
- }
+ return notificationPermission;
+ }
+
+ /**
+ * Whether this app has push notification permission. Returns true if the user has accepted permissions,
+ * or if the app has ephemeral or provisional permission.
+ */
+ export async function getPermissionAsync(): Promise {
+ return RNOneSignal.hasNotificationPermission();
+ }
+
+ /**
+ * Prompt the user for permission to receive push notifications. This will display the native system prompt to request push
+ * notification permission. Use the fallbackToSettings parameter to prompt to open the settings app if a user has already
+ * declined push permissions.
+ */
+ export function requestPermission(
+ fallbackToSettings: boolean,
+ ): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
+
+ return RNOneSignal.requestNotificationPermission(fallbackToSettings);
+ }
+
+ /**
+ * Whether attempting to request notification permission will show a prompt. Returns true if the device has not been prompted for push
+ * notification permission already.
+ */
+ export function canRequestPermission(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
+
+ return RNOneSignal.canRequestNotificationPermission();
+ }
+
+ /**
+ * Instead of having to prompt the user for permission to send them push notifications, your app can request provisional authorization.
+ * For more information: https://documentation.onesignal.com/docs/ios-customizations#provisional-push-notifications
+ * @param {(response:{accepted:boolean})=>void} handler
+ */
+ export function registerForProvisionalAuthorization(
+ handler: (response: boolean) => void,
+ ) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ if (Platform.OS === 'ios') {
+ isValidCallback(handler);
+ RNOneSignal.registerForProvisionalAuthorization(handler);
+ } else {
+ console.log(
+ 'registerForProvisionalAuthorization: this function is not supported on Android',
+ );
+ }
+ }
+
+ /** iOS Only.
+ * Returns the enum for the native permission of the device. It will be one of:
+ * OSNotificationPermissionNotDetermined,
+ * OSNotificationPermissionDenied,
+ * OSNotificationPermissionAuthorized,
+ * OSNotificationPermissionProvisional - only available in iOS 12,
+ * OSNotificationPermissionEphemeral - only available in iOS 14
+ * */
+ export function permissionNative(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
+
+ return RNOneSignal.permissionNative();
+ }
+
+ /**
+ * Add listeners for notification click and/or lifecycle events. */
+ export function addEventListener(
+ event: K,
+ listener: (event: NotificationEventTypeMap[K]) => void,
+ ): void {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+ isValidCallback(listener);
+
+ if (event === 'click') {
+ RNOneSignal.addNotificationClickListener();
+ eventManager.addEventListener(
+ NOTIFICATION_CLICKED,
+ listener as (event: NotificationClickEvent) => void,
+ );
+ } else if (event === 'foregroundWillDisplay') {
+ RNOneSignal.addNotificationForegroundLifecycleListener();
+ eventManager.addEventListener(
+ NOTIFICATION_WILL_DISPLAY,
+ listener as (event: NotificationWillDisplayEvent) => void,
+ );
+ } else if (event === 'permissionChange') {
+ isValidCallback(listener);
+ RNOneSignal.addPermissionObserver();
+ eventManager.addEventListener(
+ PERMISSION_CHANGED,
+ listener as (event: boolean) => void,
+ );
+ }
+ }
+
+ /**
+ * Remove listeners for notification click and/or lifecycle events. */
+ export function removeEventListener(
+ event: K,
+ listener: (event: NotificationEventTypeMap[K]) => void,
+ ): void {
+ if (event === 'click') {
+ eventManager.removeEventListener(NOTIFICATION_CLICKED, listener);
+ } else if (event === 'foregroundWillDisplay') {
+ eventManager.removeEventListener(NOTIFICATION_WILL_DISPLAY, listener);
+ } else if (event === 'permissionChange') {
+ eventManager.removeEventListener(PERMISSION_CHANGED, listener);
+ } else {
+ return;
+ }
+ }
+
+ /**
+ * Removes all OneSignal notifications.
+ */
+ export function clearAll() {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ RNOneSignal.clearAllNotifications();
+ }
+
+ /**
+ * Android Only.
+ * Removes a single OneSignal notification based on its Android notification integer id.
+ */
+ export function removeNotification(id: number) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ if (Platform.OS === 'android') {
+ RNOneSignal.removeNotification(id);
+ } else {
+ console.log(
+ 'removeNotification: this function is not supported on iOS',
+ );
+ }
+ }
+
+ /**
+ * Android Only.
+ * Removes all OneSignal notifications based on its Android notification group Id.
+ * @param {string} id - notification group id to cancel
+ */
+ export function removeGroupedNotifications(id: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ if (Platform.OS === 'android') {
+ RNOneSignal.removeGroupedNotifications(id);
+ } else {
+ console.log(
+ 'removeGroupedNotifications: this function is not supported on iOS',
+ );
+ }
+ }
+ }
+
+ export namespace InAppMessages {
+ /**
+ * Add listeners for In-App Message click and/or lifecycle events.
+ */
+ export function addEventListener(
+ event: K,
+ listener: (event: InAppMessageEventTypeMap[K]) => void,
+ ): void {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return;
+ }
+
+ if (event === 'click') {
+ isValidCallback(listener);
+ RNOneSignal.addInAppMessageClickListener();
+ eventManager.addEventListener(
+ IN_APP_MESSAGE_CLICKED,
+ listener as (event: InAppMessageClickEvent) => void,
+ );
+ } else {
+ if (event === 'willDisplay') {
+ isValidCallback(listener);
+ eventManager.addEventListener(
+ IN_APP_MESSAGE_WILL_DISPLAY,
+ listener as (event: InAppMessageWillDisplayEvent) => void,
+ );
+ } else if (event === 'didDisplay') {
+ isValidCallback(listener);
+ eventManager.addEventListener(
+ IN_APP_MESSAGE_DID_DISPLAY,
+ listener as (event: InAppMessageDidDisplayEvent) => void,
+ );
+ } else if (event === 'willDismiss') {
+ isValidCallback(listener);
+ eventManager.addEventListener(
+ IN_APP_MESSAGE_WILL_DISMISS,
+ listener as (event: InAppMessageWillDismissEvent) => void,
+ );
+ } else if (event === 'didDismiss') {
+ isValidCallback(listener);
+ eventManager.addEventListener(
+ IN_APP_MESSAGE_DID_DISMISS,
+ listener as (event: InAppMessageDidDismissEvent) => void,
+ );
+ } else {
+ return;
+ }
+ RNOneSignal.addInAppMessagesLifecycleListener();
+ }
+ }
+
+ /**
+ * Remove listeners for In-App Message click and/or lifecycle events.
+ */
+ export function removeEventListener(
+ event: K,
+ listener: (obj: InAppMessageEventTypeMap[K]) => void,
+ ): void {
+ if (event === 'click') {
+ eventManager.removeEventListener(IN_APP_MESSAGE_CLICKED, listener);
+ } else {
+ if (event === 'willDisplay') {
+ eventManager.removeEventListener(
+ IN_APP_MESSAGE_WILL_DISPLAY,
+ listener,
+ );
+ } else if (event === 'didDisplay') {
+ eventManager.removeEventListener(
+ IN_APP_MESSAGE_DID_DISPLAY,
+ listener,
+ );
+ } else if (event === 'willDismiss') {
+ eventManager.removeEventListener(
+ IN_APP_MESSAGE_WILL_DISMISS,
+ listener,
+ );
+ } else if (event === 'didDismiss') {
+ eventManager.removeEventListener(
+ IN_APP_MESSAGE_DID_DISMISS,
+ listener,
+ );
+ } else {
+ return;
+ }
+ }
+ }
+
+ /**
+ * Add a trigger for the current user. Triggers are currently explicitly used to determine whether a specific IAM should be
+ * displayed to the user.
+ */
+ export function addTrigger(key: string, value: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ // value can be assigned to `false` so we cannot just check `!value`
+ if (!key || value == null) {
+ console.error('OneSignal: addTrigger: must include a key and a value');
+ }
+
+ let trigger: { [key: string]: string } = {};
+ trigger[key] = value;
+ RNOneSignal.addTriggers(trigger);
+ }
+
+ /**
+ * Add multiple triggers for the current user. Triggers are currently explicitly used to determine whether a specific IAM should
+ * be displayed to the user.
+ */
+ export function addTriggers(triggers: { [key: string]: string }) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
+
+ let keys = Object.keys(triggers);
+
+ if (keys.length === 0) {
+ console.error(
+ "OneSignal: addTriggers: argument must be an object of the form { key : 'value' }",
+ );
+ }
+
+ RNOneSignal.addTriggers(triggers);
+ }
+
+ /** Remove the trigger with the provided key from the current user. */
+ export function removeTrigger(key: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Removes a list of triggers based on a collection of keys.
- * @param {string[]} keys
- * @returns void
- */
- static removeTriggersForKeys(keys: string[]): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.removeTrigger(key);
}
- RNOneSignal.removeTriggersForKeys(keys);
- }
+ /** Remove multiple triggers from the current user. */
+ export function removeTriggers(keys: string[]) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Removes a list of triggers based on a key.
- * @param {string} key
- * @returns void
- */
- static removeTriggerForKey(key: string): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.removeTriggers(keys);
}
- RNOneSignal.removeTriggerForKey(key);
- }
- /**
- * Gets a trigger value for a provided trigger key.
- * @param {string} key
- * @returns Promise
- */
- static getTriggerValueForKey(
- key: string,
- ): Promise {
- // must return a promise
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return Promise.resolve(null);
- }
- return RNOneSignal.getTriggerValueForKey(key);
- }
+ /** Clear all triggers from the current user. */
+ export function clearTriggers() {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Pause & unpause In-App Messages
- * @param {boolean} pause
- * @returns void
- */
- static pauseInAppMessages(pause: boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.clearTriggers();
}
- RNOneSignal.pauseInAppMessages(pause);
- }
- /* O U T C O M E S */
+ /**
+ * Set whether in-app messaging is currently paused.
+ * When set to true no IAM will be presented to the user regardless of whether they qualify for them.
+ * When set to 'false` any IAMs the user qualifies for will be presented to the user at the appropriate time.
+ */
+ export function setPaused(pause: boolean) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Increases the "Count" of this Outcome by 1 and will be counted each time sent.
- * @param {string} name
- * @param {(event:OutcomeEvent) => void} handler
- * @returns void
- */
- static sendOutcome(
- name: string,
- handler?: (event: OutcomeEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.paused(pause);
}
- if (!handler) {
- handler = function () {};
- }
+ /** Whether in-app messaging is currently paused. */
+ export function getPaused(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
- RNOneSignal.sendOutcome(name, handler);
- }
-
- /**
- * Increases "Count" by 1 only once. This can only be attributed to a single notification.
- * @param {string} name
- * @param {(event:OutcomeEvent) => void} handler
- * @returns void
- */
- static sendUniqueOutcome(
- name: string,
- handler?: (event: OutcomeEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- if (!handler) {
- handler = function () {};
+ return RNOneSignal.getPaused();
}
-
- RNOneSignal.sendUniqueOutcome(name, handler);
}
- /**
- * Increases the "Count" of this Outcome by 1 and the "Sum" by the value. Will be counted each time sent.
- * If the method is called outside of an attribution window, it will be unattributed until a new session occurs.
- * @param {string} name
- * @param {string|number} value
- * @param {(event:OutcomeEvent) => void} handler
- * @returns void
- */
- static sendOutcomeWithValue(
- name: string,
- value: string | number,
- handler?: (event: OutcomeEvent) => void,
- ): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
+ export namespace Location {
+ /** Prompts the user for location permissions to allow geotagging from the OneSignal dashboard. */
+ export function requestPermission() {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- if (!handler) {
- handler = function () {};
+ RNOneSignal.requestLocationPermission();
}
- RNOneSignal.sendOutcomeWithValue(name, Number(value), handler);
- }
-
- /* P R I V A C Y C O N S E N T */
+ /** Disable or enable location collection (defaults to enabled if your app has location permission). */
+ export function setShared(shared: boolean) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Did the user provide privacy consent for GDPR purposes.
- * @returns Promise
- */
- static userProvidedPrivacyConsent(): Promise {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return Promise.resolve(false);
+ RNOneSignal.setLocationShared(shared);
}
- //returns a promise
- return RNOneSignal.userProvidedPrivacyConsent();
- }
+ /**
+ * Checks if location collection is enabled or disabled.
+ * @param {(value: boolean) => void} handler
+ */
+ export function isShared(): Promise {
+ if (!isNativeModuleLoaded(RNOneSignal)) {
+ return Promise.reject(new Error('OneSignal native module not loaded'));
+ }
- /**
- * True if the application requires user privacy consent, false otherwise
- * @returns Promise
- */
- static requiresUserPrivacyConsent(): Promise {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return Promise.resolve(false);
+ return RNOneSignal.isLocationShared();
}
-
- //returns a promise
- return RNOneSignal.requiresUserPrivacyConsent();
}
- /**
- * For GDPR users, your application should call this method before setting the App ID.
- * @param {boolean} required
- * @returns void
- */
- static setRequiresUserPrivacyConsent(required: boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
- }
-
- RNOneSignal.setRequiresUserPrivacyConsent(required);
- }
+ export namespace Session {
+ /** Increases the "Count" of this Outcome by 1 and will be counted each time sent. */
+ export function addOutcome(name: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * If your application is set to require the user's privacy consent, you can provide this consent using this method.
- * @param {boolean} granted
- * @returns void
- */
- static provideUserConsent(granted: boolean): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.addOutcome(name);
}
- RNOneSignal.provideUserConsent(granted);
- }
+ /** Increases "Count" by 1 only once. This can only be attributed to a single notification. */
+ export function addUniqueOutcome(name: string) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /* O T H E R F U N C T I O N S */
-
- /**
- * Enable logging to help debug if you run into an issue setting up OneSignal.
- * @param {LogLevel} nsLogLevel - Sets the logging level to print to the Android LogCat log or Xcode log.
- * @param {LogLevel} visualLogLevel - Sets the logging level to show as alert dialogs.
- * @returns void
- */
- static setLogLevel(nsLogLevel: LogLevel, visualLogLevel: LogLevel): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.addUniqueOutcome(name);
}
- RNOneSignal.setLogLevel(nsLogLevel, visualLogLevel);
- }
+ /**
+ * Increases the "Count" of this Outcome by 1 and the "Sum" by the value. Will be counted each time sent.
+ * If the method is called outside of an attribution window, it will be unattributed until a new session occurs.
+ */
+ export function addOutcomeWithValue(name: string, value: string | number) {
+ if (!isNativeModuleLoaded(RNOneSignal)) return;
- /**
- * Clears all handlers and observers.
- * @returns void
- */
- static clearHandlers(): void {
- if (!isNativeModuleLoaded(RNOneSignal)) {
- return;
+ RNOneSignal.addOutcomeWithValue(name, Number(value));
}
- eventManager.clearHandlers();
}
}
-/* Export all public models */
-
export {
- ChangeEvent,
- PermissionChange,
- SubscriptionChange,
- EmailSubscriptionChange,
- SMSSubscriptionChange,
- NotificationReceivedEvent,
- OpenedEvent,
+ NotificationWillDisplayEvent,
+ NotificationClickEvent,
InAppMessage,
- InAppMessageAction,
- InAppMessageLifecycleHandlerObject,
- OutcomeEvent,
- DeviceState,
+ InAppMessageClickEvent,
+ InAppMessageWillDisplayEvent,
+ InAppMessageDidDisplayEvent,
+ InAppMessageWillDismissEvent,
+ InAppMessageDidDismissEvent,
+ PushSubscriptionState,
+ PushSubscriptionChangedState,
+ UserState,
+ UserChangedState,
+ OSNotificationPermission,
};
export { default as OSNotification } from './OSNotification';
-export {
- OpenedEventAction,
- OpenedEventActionType,
-} from './models/NotificationEvents';
-export {
- IosPermissionStatus,
- ObserverChangeEvent,
-} from './models/Subscription';
+export { NotificationClickResult } from './models/NotificationEvents';
+export { InAppMessageClickResult } from './models/InAppMessage';
diff --git a/src/models/InAppMessage.ts b/src/models/InAppMessage.ts
index 30217580..36b5007c 100644
--- a/src/models/InAppMessage.ts
+++ b/src/models/InAppMessage.ts
@@ -1,19 +1,46 @@
+export type InAppMessageEventName =
+ | 'click'
+ | 'willDisplay'
+ | 'didDisplay'
+ | 'willDismiss'
+ | 'didDismiss';
+
+export type InAppMessageEventTypeMap = {
+ click: InAppMessageClickEvent;
+ willDisplay: InAppMessageWillDisplayEvent;
+ didDisplay: InAppMessageDidDisplayEvent;
+ willDismiss: InAppMessageWillDismissEvent;
+ didDismiss: InAppMessageDidDismissEvent;
+};
+
export interface InAppMessage {
messageId: string;
}
-export interface InAppMessageAction {
- closes_message: boolean;
- first_click: boolean;
- click_name?: string;
- click_url?: string;
- outcomes?: object[];
- tags?: object;
+export interface InAppMessageClickEvent {
+ message: InAppMessage;
+ result: InAppMessageClickResult;
+}
+
+export interface InAppMessageClickResult {
+ closingMessage: boolean;
+ actionId?: string;
+ url?: string;
+ urlTarget?: string;
+}
+
+export interface InAppMessageWillDisplayEvent {
+ message: InAppMessage;
+}
+
+export interface InAppMessageDidDisplayEvent {
+ message: InAppMessage;
+}
+
+export interface InAppMessageWillDismissEvent {
+ message: InAppMessage;
}
-export interface InAppMessageLifecycleHandlerObject {
- onWillDisplayInAppMessage?: (message: InAppMessage) => void;
- onDidDisplayInAppMessage?: (message: InAppMessage) => void;
- onWillDismissInAppMessage?: (message: InAppMessage) => void;
- onDidDismissInAppMessage?: (message: InAppMessage) => void;
+export interface InAppMessageDidDismissEvent {
+ message: InAppMessage;
}
diff --git a/src/models/NotificationEvents.ts b/src/models/NotificationEvents.ts
index e1a7145e..281e8b11 100644
--- a/src/models/NotificationEvents.ts
+++ b/src/models/NotificationEvents.ts
@@ -1,13 +1,23 @@
import OSNotification from '../OSNotification';
+import NotificationWillDisplayEvent from '../events/NotificationWillDisplayEvent';
-// 0 = NotificationClicked, 1 = ButtonClicked
-export type OpenedEventActionType = 0 | 1;
+export type NotificationEventName =
+ | 'click'
+ | 'foregroundWillDisplay'
+ | 'permissionChange';
-export interface OpenedEvent {
- action: OpenedEventAction;
+export type NotificationEventTypeMap = {
+ click: NotificationClickEvent;
+ foregroundWillDisplay: NotificationWillDisplayEvent;
+ permissionChange: boolean;
+};
+
+export interface NotificationClickEvent {
+ result: NotificationClickResult;
notification: OSNotification;
}
-export interface OpenedEventAction {
- type: OpenedEventActionType;
+export interface NotificationClickResult {
+ actionId?: string;
+ url?: string;
}
diff --git a/src/models/Outcomes.ts b/src/models/Outcomes.ts
deleted file mode 100644
index 6dc9f6ed..00000000
--- a/src/models/Outcomes.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export interface OutcomeEvent {
- session: string;
- id: string;
- timestamp: number;
- weight: number;
- notification_ids: string[];
-}
diff --git a/src/models/Subscription.ts b/src/models/Subscription.ts
index e79b344d..d4771f55 100644
--- a/src/models/Subscription.ts
+++ b/src/models/Subscription.ts
@@ -1,57 +1,18 @@
-// 0 = NotDetermined, 1 = Denied, 2 = Authorized, 3 = Provisional, 4 = Ephemeral
-export type IosPermissionStatus = 0 | 1 | 2 | 3 | 4;
-
-/* D E V I C E */
-export interface DeviceState {
- userId: string;
- pushToken: string;
- emailUserId: string;
- emailAddress: string;
- smsUserId: string;
- smsNumber: string;
- isSubscribed: boolean;
- isPushDisabled: boolean;
- isEmailSubscribed: boolean;
- isSMSSubscribed: boolean;
- hasNotificationPermission?: boolean; // is areNotificationsEnabled on android
- notificationPermissionStatus?: IosPermissionStatus; // ios only
- // areNotificationsEnabled (android) not included since it is converted to hasNotificationPermission in bridge
-}
-
-/* O B S E R V E R C H A N G E E V E N T S */
-export interface ChangeEvent {
- from: ObserverChangeEvent;
- to: ObserverChangeEvent;
-}
-
-export type ObserverChangeEvent =
- | PermissionChange
- | SubscriptionChange
- | EmailSubscriptionChange
- | SMSSubscriptionChange;
-
-export interface PermissionChange {
- status?: IosPermissionStatus; // ios
- hasPrompted?: boolean; // ios
- provisional?: boolean; // ios
- areNotificationsEnabled?: boolean; // android
-}
-
-export interface SubscriptionChange {
- userId?: string;
- pushToken?: string;
- isSubscribed: boolean;
- isPushDisabled: boolean;
+export enum OSNotificationPermission {
+ NotDetermined = 0,
+ Denied,
+ Authorized,
+ Provisional, // only available in iOS 12
+ Ephemeral, // only available in iOS 14
}
-export interface EmailSubscriptionChange {
- emailAddress?: string;
- emailUserId?: string;
- isEmailSubscribed: boolean;
+export interface PushSubscriptionState {
+ id?: string;
+ token?: string;
+ optedIn: boolean;
}
-export interface SMSSubscriptionChange {
- smsNumber?: string;
- smsUserId?: string;
- isSMSSubscribed: boolean;
+export interface PushSubscriptionChangedState {
+ previous: PushSubscriptionState;
+ current: PushSubscriptionState;
}
diff --git a/src/models/User.ts b/src/models/User.ts
new file mode 100644
index 00000000..465121f2
--- /dev/null
+++ b/src/models/User.ts
@@ -0,0 +1,8 @@
+export interface UserState {
+ externalId?: string;
+ onesignalId?: string;
+}
+
+export interface UserChangedState {
+ current: UserState;
+}
diff --git a/tsconfig.json b/tsconfig.json
index 108ebf59..4adec8ca 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -4,22 +4,14 @@
"target": "es5",
"moduleResolution": "node",
"noImplicitAny": true,
- "lib": [
- "es6"
- ],
+ "lib": ["es6"],
"rootDir": "src",
"declaration": true,
"allowSyntheticDefaultImports": true,
"skipLibCheck": true,
"esModuleInterop": true,
"strict": true,
- "noUnusedLocals": true,
+ "noUnusedLocals": true
},
- "exclude": [
- "node_modules",
- "dist",
- "android",
- "examples",
- "ios"
- ]
+ "exclude": ["node_modules", "dist", "android", "examples", "ios"]
}