fix(tracker): fix build, fix readme
This commit is contained in:
parent
a97bb50106
commit
980ca970ff
11 changed files with 35 additions and 303 deletions
|
|
@ -1,133 +0,0 @@
|
|||
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
[INSERT CONTACT METHOD].
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series of
|
||||
actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.1, available at
|
||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||
|
||||
Community Impact Guidelines were inspired by
|
||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||
[https://www.contributor-covenant.org/translations][translations].
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
||||
[FAQ]: https://www.contributor-covenant.org/faq
|
||||
[translations]: https://www.contributor-covenant.org/translations
|
||||
|
|
@ -1,114 +0,0 @@
|
|||
# Contributing
|
||||
|
||||
Contributions are always welcome, no matter how large or small!
|
||||
|
||||
We want this community to be friendly and respectful to each other. Please follow it in all your interactions with the project. Before contributing, please read the [code of conduct](./CODE_OF_CONDUCT.md).
|
||||
|
||||
## Development workflow
|
||||
|
||||
To get started with the project, run `yarn` in the root directory to install the required dependencies for each package:
|
||||
|
||||
```sh
|
||||
yarn
|
||||
```
|
||||
|
||||
> While it's possible to use [`npm`](https://github.com/npm/cli), the tooling is built around [`yarn`](https://classic.yarnpkg.com/), so you'll have an easier time if you use `yarn` for development.
|
||||
|
||||
While developing, you can run the [example app](/example/) to test your changes. Any changes you make in your library's JavaScript code will be reflected in the example app without a rebuild. If you change any native code, then you'll need to rebuild the example app.
|
||||
|
||||
To start the packager:
|
||||
|
||||
```sh
|
||||
yarn example start
|
||||
```
|
||||
|
||||
To run the example app on Android:
|
||||
|
||||
```sh
|
||||
yarn example android
|
||||
```
|
||||
|
||||
To run the example app on iOS:
|
||||
|
||||
```sh
|
||||
yarn example ios
|
||||
```
|
||||
|
||||
Make sure your code passes TypeScript and ESLint. Run the following to verify:
|
||||
|
||||
```sh
|
||||
yarn typecheck
|
||||
yarn lint
|
||||
```
|
||||
|
||||
To fix formatting errors, run the following:
|
||||
|
||||
```sh
|
||||
yarn lint --fix
|
||||
```
|
||||
|
||||
Remember to add tests for your change if possible. Run the unit tests by:
|
||||
|
||||
```sh
|
||||
yarn test
|
||||
```
|
||||
|
||||
To edit the Objective-C or Swift files, open `example/ios/RntrackerExample.xcworkspace` in XCode and find the source files at `Pods > Development Pods > openreplay-reactnative`.
|
||||
|
||||
To edit the Java or Kotlin files, open `example/android` in Android studio and find the source files at `openreplay-reactnative` under `Android`.
|
||||
|
||||
|
||||
### Commit message convention
|
||||
|
||||
We follow the [conventional commits specification](https://www.conventionalcommits.org/en) for our commit messages:
|
||||
|
||||
- `fix`: bug fixes, e.g. fix crash due to deprecated method.
|
||||
- `feat`: new features, e.g. add new method to the module.
|
||||
- `refactor`: code refactor, e.g. migrate from class components to hooks.
|
||||
- `docs`: changes into documentation, e.g. add usage example for the module..
|
||||
- `test`: adding or updating tests, e.g. add integration tests using detox.
|
||||
- `chore`: tooling changes, e.g. change CI config.
|
||||
|
||||
Our pre-commit hooks verify that your commit message matches this format when committing.
|
||||
|
||||
### Linting and tests
|
||||
|
||||
[ESLint](https://eslint.org/), [Prettier](https://prettier.io/), [TypeScript](https://www.typescriptlang.org/)
|
||||
|
||||
We use [TypeScript](https://www.typescriptlang.org/) for type checking, [ESLint](https://eslint.org/) with [Prettier](https://prettier.io/) for linting and formatting the code, and [Jest](https://jestjs.io/) for testing.
|
||||
|
||||
Our pre-commit hooks verify that the linter and tests pass when committing.
|
||||
|
||||
### Publishing to npm
|
||||
|
||||
We use [release-it](https://github.com/release-it/release-it) to make it easier to publish new versions. It handles common tasks like bumping version based on semver, creating tags and releases etc.
|
||||
|
||||
To publish new versions, run the following:
|
||||
|
||||
```sh
|
||||
yarn release
|
||||
```
|
||||
|
||||
### Scripts
|
||||
|
||||
The `package.json` file contains various scripts for common tasks:
|
||||
|
||||
- `yarn bootstrap`: setup project by installing all dependencies and pods.
|
||||
- `yarn typecheck`: type-check files with TypeScript.
|
||||
- `yarn lint`: lint files with ESLint.
|
||||
- `yarn test`: run unit tests with Jest.
|
||||
- `yarn example start`: start the Metro server for the example app.
|
||||
- `yarn example android`: run the example app on Android.
|
||||
- `yarn example ios`: run the example app on iOS.
|
||||
|
||||
### Sending a pull request
|
||||
|
||||
> **Working on your first pull request?** You can learn how from this _free_ series: [How to Contribute to an Open Source Project on GitHub](https://app.egghead.io/playlists/how-to-contribute-to-an-open-source-project-on-github).
|
||||
|
||||
When you're sending a pull request:
|
||||
|
||||
- Prefer small pull requests focused on one change.
|
||||
- Verify that linters and tests are passing.
|
||||
- Review the documentation to make sure it looks good.
|
||||
- Follow the pull request template when opening a pull request.
|
||||
- For pull requests that change the API or implementation, discuss with maintainers first by opening an issue.
|
||||
|
|
@ -9,24 +9,4 @@ so its safe to use with crossplatform apps.
|
|||
npm install @openreplay/react-native
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```js
|
||||
import { RntrackerView } from "@openreplay/react-native";
|
||||
|
||||
// ...
|
||||
|
||||
<RntrackerView color="tomato" />
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
|
||||
---
|
||||
|
||||
Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
|
||||
Please see [the documentation](https://docs.openreplay.com/en/rn-sdk/) for more information about usage.
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ target 'RntrackerExample' do
|
|||
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
||||
)
|
||||
Dir['../../']
|
||||
pod 'ORTracker', :path => '../../../tracker-ios'
|
||||
pod 'Openreplay', '~> 1.0.5'
|
||||
|
||||
|
||||
target 'RntrackerExampleTests' do
|
||||
|
|
|
|||
|
|
@ -17,13 +17,13 @@ PODS:
|
|||
- hermes-engine/Pre-built (= 0.72.4)
|
||||
- hermes-engine/Pre-built (0.72.4)
|
||||
- libevent (2.1.12)
|
||||
- openreplay-reactnative (0.1.0):
|
||||
- ORTracker
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core
|
||||
- ORTracker (0.1.0):
|
||||
- Openreplay (1.0.5):
|
||||
- DeviceKit
|
||||
- SWCompression
|
||||
- openreplay-reactnative (0.1.0):
|
||||
- Openreplay
|
||||
- RCT-Folly (= 2021.07.22.00)
|
||||
- React-Core
|
||||
- RCT-Folly (2021.07.22.00):
|
||||
- boost
|
||||
- DoubleConversion
|
||||
|
|
@ -486,8 +486,8 @@ DEPENDENCIES:
|
|||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
|
||||
- libevent (~> 2.1.12)
|
||||
- Openreplay (~> 1.0.5)
|
||||
- openreplay-reactnative (from `../..`)
|
||||
- ORTracker (from `../../../tracker-ios`)
|
||||
- RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
|
||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
||||
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
|
||||
|
|
@ -529,6 +529,7 @@ SPEC REPOS:
|
|||
- DeviceKit
|
||||
- fmt
|
||||
- libevent
|
||||
- Openreplay
|
||||
- SocketRocket
|
||||
- SWCompression
|
||||
|
||||
|
|
@ -548,8 +549,6 @@ EXTERNAL SOURCES:
|
|||
:tag: hermes-2023-08-07-RNv0.72.4-813b2def12bc9df02654b3e3653ae4a68d0572e0
|
||||
openreplay-reactnative:
|
||||
:path: "../.."
|
||||
ORTracker:
|
||||
:path: "../../../tracker-ios"
|
||||
RCT-Folly:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
|
||||
RCTRequired:
|
||||
|
|
@ -628,8 +627,8 @@ SPEC CHECKSUMS:
|
|||
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
|
||||
hermes-engine: 81191603c4eaa01f5e4ae5737a9efcf64756c7b2
|
||||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
||||
openreplay-reactnative: 195b9e120d1aed7bdde7d4728a2f23b37b8d5266
|
||||
ORTracker: 5b993fad6248d9e5605c28f4af6454022f43934f
|
||||
Openreplay: c64e4470df13efac242c569c29f213b0e57867b3
|
||||
openreplay-reactnative: b7bae2bd88cecc6f0698ac0ffaacd3d385cd2767
|
||||
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
|
||||
RCTRequired: c0569ecc035894e4a68baecb30fe6a7ea6e399f9
|
||||
RCTTypeSafety: e90354072c21236e0bcf1699011e39acd25fea2f
|
||||
|
|
@ -666,6 +665,6 @@ SPEC CHECKSUMS:
|
|||
SWCompression: 15e38b06c37077399a1b60bfecc1c2cd71f0ee99
|
||||
Yoga: 3efc43e0d48686ce2e8c60f99d4e6bd349aff981
|
||||
|
||||
PODFILE CHECKSUM: f12bcbf8dfa25c96bb19ba57e6413b29c875f421
|
||||
PODFILE CHECKSUM: 5192af7c5d6cfe07b41230fe84a1c01ac433efc5
|
||||
|
||||
COCOAPODS: 1.12.1
|
||||
|
|
|
|||
|
|
@ -1,11 +1,11 @@
|
|||
import ORTracker
|
||||
import Openreplay
|
||||
|
||||
@objc(ORTrackerConnector)
|
||||
public class ORTrackerConnector: NSObject {
|
||||
@objc public static func moduleName() -> String {
|
||||
return "ORTrackerConnector"
|
||||
}
|
||||
|
||||
|
||||
@objc public static func requiresMainQueueSetup() -> Bool {
|
||||
return true
|
||||
}
|
||||
|
|
@ -20,15 +20,15 @@ public class ORTrackerConnector: NSObject {
|
|||
screen: optionsDict["screen"] as? Bool ?? true,
|
||||
wifiOnly: optionsDict["wifiOnly"] as? Bool ?? true
|
||||
)
|
||||
ORTracker.shared.serverURL = projectUrl ?? "https://app.openreplay.com/ingest"
|
||||
ORTracker.shared.start(projectKey: projectKey, options: options)
|
||||
Openreplay.shared.serverURL = projectUrl ?? "https://app.openreplay.com/ingest"
|
||||
Openreplay.shared.start(projectKey: projectKey, options: options)
|
||||
print("Starting for \(options) \(projectKey) \(projectUrl ?? "no url")")
|
||||
}
|
||||
|
||||
@objc open func stop() {
|
||||
ORTracker.shared.stop()
|
||||
Openreplay.shared.stop()
|
||||
}
|
||||
|
||||
|
||||
@objc(startSession:optionsDict:projectUrl:)
|
||||
open func startSession(_ projectKey: String, optionsDict: NSDictionary, projectUrl: String?) {
|
||||
let options = OROptions(
|
||||
|
|
@ -39,29 +39,29 @@ public class ORTrackerConnector: NSObject {
|
|||
screen: optionsDict["screen"] as? Bool ?? true,
|
||||
wifiOnly: false
|
||||
)
|
||||
ORTracker.shared.serverURL = projectUrl ?? "https://app.openreplay.com/ingest"
|
||||
ORTracker.shared.startSession(projectKey: projectKey, options: options)
|
||||
Openreplay.shared.serverURL = projectUrl ?? "https://app.openreplay.com/ingest"
|
||||
Openreplay.shared.startSession(projectKey: projectKey, options: options)
|
||||
print("Starting for \(options) \(projectKey) \(projectUrl ?? "no url")")
|
||||
}
|
||||
|
||||
|
||||
@objc(setMetadata:value:)
|
||||
open func setMetadata(_ key: String, value: String) {
|
||||
ORTracker.shared.setMetadata(key: key, value: value)
|
||||
Openreplay.shared.setMetadata(key: key, value: value)
|
||||
}
|
||||
|
||||
@objc(event:object:)
|
||||
open func event(_ name: String, object: String?) {
|
||||
ORTracker.shared.eventStr(name: name, payload: object)
|
||||
Openreplay.shared.eventStr(name: name, payload: object)
|
||||
}
|
||||
|
||||
|
||||
@objc(setUserID:)
|
||||
open func setUserID(_ userID: String) {
|
||||
ORTracker.shared.setUserID(userID)
|
||||
Openreplay.shared.setUserID(userID)
|
||||
}
|
||||
|
||||
@objc(userAnonymousID:)
|
||||
open func userAnonymousID(_ userID: String) {
|
||||
ORTracker.shared.userAnonymousID(userID)
|
||||
Openreplay.shared.userAnonymousID(userID)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import ORTracker
|
||||
import Openreplay
|
||||
|
||||
@objc(RntrackerInputManager)
|
||||
class RntrackerInputManager: RCTViewManager {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import ORTracker
|
||||
import Openreplay
|
||||
|
||||
@objc(RntrackerSanitizedViewManager)
|
||||
class RntrackerSanitizedViewManager: RCTViewManager {
|
||||
|
|
@ -15,7 +15,7 @@ class RntrackerSanitizedViewManager: RCTViewManager {
|
|||
class RntrackerSanitizedView : UIView {
|
||||
override func didMoveToSuperview() {
|
||||
super.didMoveToSuperview()
|
||||
|
||||
|
||||
if superview != nil {
|
||||
ScreenshotManager.shared.addSanitizedElement(self)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import ORTracker
|
||||
import Openreplay
|
||||
|
||||
@objc(RntrackerTouchManager)
|
||||
class RntrackerTouchManager: RCTViewManager {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import ORTracker
|
||||
import Openreplay
|
||||
|
||||
@objc(RntrackerViewManager)
|
||||
class RntrackerViewManager: RCTViewManager {
|
||||
|
|
@ -26,10 +26,10 @@ class RntrackerView : UIView {
|
|||
self._orScreenName = screenName
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override func didMoveToSuperview() {
|
||||
super.didMoveToSuperview()
|
||||
|
||||
|
||||
if superview != nil {
|
||||
Analytics.shared.addObservedView(view: self, screenName: self._orScreenName, viewName: self._orViewName)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,11 +19,11 @@ Pod::Spec.new do |s|
|
|||
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
|
||||
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
|
||||
if respond_to?(:install_modules_dependencies, true)
|
||||
s.dependency "ORTracker"
|
||||
s.dependency "Openreplay"
|
||||
install_modules_dependencies(s)
|
||||
else
|
||||
s.dependency "React-Core"
|
||||
s.dependency "ORTracker"
|
||||
s.dependency "Openreplay"
|
||||
|
||||
# Don't install the dependencies when we run `pod install` in the old architecture.
|
||||
if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
|
||||
|
|
@ -36,7 +36,7 @@ Pod::Spec.new do |s|
|
|||
s.dependency "React-RCTFabric"
|
||||
s.dependency "React-Codegen"
|
||||
s.dependency "RCT-Folly"
|
||||
s.dependency "ORTracker"
|
||||
s.dependency "Openreplay"
|
||||
s.dependency "RCTRequired"
|
||||
s.dependency "RCTTypeSafety"
|
||||
s.dependency "ReactCommon/turbomodule/core"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue