├── .gitattributes
├── .github
└── pull_request_template.md
├── .gitignore
├── README.md
├── RollbarReactNative.podspec
├── android
├── build.gradle
└── src
│ └── main
│ ├── AndroidManifest.xml
│ └── java
│ └── com
│ └── rollbar
│ ├── RollbarReactNative.java
│ └── RollbarReactNativePackage.java
├── index.d.ts
├── index.js
├── ios
├── RollbarReactNative.h
├── RollbarReactNative.m
└── RollbarReactNative.xcodeproj
│ └── project.pbxproj
├── iosFrameworks.png
├── lib
├── Client.js
├── Client.js.map
├── Rollbar.js
├── Rollbar.js.map
├── Rollbar.native.js
├── Rollbar.native.js.map
├── merge.js
└── merge.js.map
├── package.json
├── react-native.config.js
├── src
├── Client.js
├── Rollbar.js
├── Rollbar.native.js
└── merge.js
└── yarn.lock
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.pbxproj -text
--------------------------------------------------------------------------------
/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | ## Description of the change
2 |
3 | > Please include a summary of the change and which issues are fixed.
4 | > Please also include relevant motivation and context.
5 |
6 | ## Type of change
7 |
8 | - [ ] Bug fix (non-breaking change that fixes an issue)
9 | - [ ] New feature (non-breaking change that adds functionality)
10 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
11 | - [ ] Maintenance
12 | - [ ] New release
13 |
14 | ## Related issues
15 |
16 | > Shortcut stories and GitHub issues (delete irrelevant)
17 |
18 | - Fix [SC-]
19 | - Fix #1
20 |
21 | ## Checklists
22 |
23 | ### Development
24 |
25 | - [ ] Lint rules pass locally
26 | - [ ] The code changed/added as part of this pull request has been covered with tests
27 | - [ ] All tests related to the changed code pass in development
28 |
29 | ### Code review
30 |
31 | - [ ] This pull request has a descriptive title and information useful to a reviewer. There may be a screenshot or screencast attached
32 | - [ ] "Ready for review" label attached to the PR and reviewers assigned
33 | - [ ] Issue from task tracker has a link to this pull request
34 | - [ ] Changes have been reviewed by at least one other engineer
35 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | # OSX
3 | #
4 | .DS_Store
5 |
6 | # node.js
7 | #
8 | node_modules/
9 | npm-debug.log
10 | yarn-error.log
11 |
12 |
13 | # Xcode
14 | #
15 | build/
16 | *.pbxuser
17 | !default.pbxuser
18 | *.mode1v3
19 | !default.mode1v3
20 | *.mode2v3
21 | !default.mode2v3
22 | *.perspectivev3
23 | !default.perspectivev3
24 | xcuserdata
25 | *.xccheckout
26 | *.moved-aside
27 | DerivedData
28 | *.hmap
29 | *.ipa
30 | *.xcuserstate
31 | project.xcworkspace
32 |
33 |
34 | # Android/IntelliJ
35 | #
36 | build/
37 | .idea
38 | .gradle
39 | local.properties
40 | *.iml
41 |
42 | # BUCK
43 | buck-out/
44 | \.buckd/
45 | *.keystore
46 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Rollbar React Native
6 |
7 |
8 | Proactively discover, predict, and resolve errors in real-time with Rollbar’s error monitoring platform. Start tracking errors today!
9 |
10 |
11 | ---
12 |
13 | [Rollbar](https://rollbar.com) is a real-time exception reporting service for React-Native and other languages. The Rollbar service will
14 | alert you of problems with your code and help you understand them in a ways never possible before. We love it and we hope you will too.
15 |
16 | Rollbar-react-native is the SDK for React Native apps and includes support for Android, iOS, and Javascript.
17 |
18 | ## Key benefits of using Rollbar React Native are:
19 | - **Source maps:** Uploading source maps from Javascript, Android and IOS bundles is made easy through Rollbar. Learn more about react native sourcemaps.
20 | - **Automatic error grouping:** Rollbar aggregates Occurrences caused by the same error into Items that represent application issues. Learn more about reducing log noise.
21 | - **Advanced search:** Filter items by many different properties. Learn more about search.
22 | - **Customizable notifications:** Rollbar supports several messaging and incident management tools where your team can get notified about errors and important events by real-time alerts. Learn more about Rollbar notifications.
23 |
24 |
25 | # Setup Instructions
26 |
27 | 1. [Sign up for a Rollbar account](https://rollbar.com/signup)
28 | 2. Follow the [Getting Started](https://rollbar.readme.io/docs/react-native#section-getting-started) instructions in our [React Native docs](https://rollbar.readme.io/docs/react-native) to install rollbar-react-native and configure it for your platform.
29 |
30 | # Usage and Reference
31 |
32 | For complete Usage instructions and configuration reference, see our [React Native docs](https://rollbar.readme.io/docs/react-native#section-configuration).
33 |
34 | # Release History & Changelog
35 |
36 | See our [Releases](https://github.com/rollbar/rollbar-react-native/releases) page for a list of all releases, including changes.
37 |
38 | # Help / Support
39 |
40 | If you run into any issues, please email us at [support@rollbar.com](mailto:support@rollbar.com)
41 |
42 | For bug reports, please [open an issue on Github](https://github.com/rollbar/rollbar-react-native/issues/new).
43 |
44 | # Contributing
45 |
46 | 1. Fork it
47 | 2. Create your feature branch (```git checkout -b my-new-feature```).
48 | 3. Commit your changes (```git commit -am 'Added some feature'```)
49 | 4. Push to the branch (```git push origin my-new-feature```)
50 | 5. Create new Pull Request
51 |
--------------------------------------------------------------------------------
/RollbarReactNative.podspec:
--------------------------------------------------------------------------------
1 | Pod::Spec.new do |s|
2 | s.name = 'RollbarReactNative'
3 | s.version = '1.0.0-beta.5'
4 | s.summary = 'RollbarReactNative'
5 | s.description = <<-DESC
6 | RollbarReactNative is a library for interacting with the Rollbar
7 | error monitoring system in React Native apps.
8 | DESC
9 | s.homepage = 'https://rollbar.com'
10 | s.license = 'MIT'
11 | s.author = { 'Rollbar' => 'support@rollbar.com' }
12 | s.platform = :ios, '13.0'
13 | s.source = { :git => 'https://github.com/rollbar/rollbar-react-native.git', :tag => '1.0.0-beta.5' }
14 | s.requires_arc = true
15 |
16 | s.dependency 'React-Core'
17 | s.dependency 'RollbarNotifier', '3.3.3'
18 | s.source_files = 'ios/RollbarReactNative.{h,m}'
19 | s.public_header_files = 'ios/RollbarReactNative.h'
20 |
21 | s.compiler_flags = '-fmodules', '-fcxx-modules'
22 | end
23 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion project.hasProperty('compileSdkVersion') ? project.compileSdkVersion : 27
5 | buildToolsVersion project.hasProperty('buildToolsVersion') ? project.buildToolsVersion : "27.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 16
9 | targetSdkVersion 27
10 | versionCode 1
11 | versionName "1.0"
12 | }
13 | }
14 |
15 | dependencies {
16 | implementation('com.rollbar:rollbar-android:1.7.1')
17 | implementation 'com.facebook.react:react-native:+'
18 | implementation 'com.google.code.gson:gson:+'
19 | }
20 |
--------------------------------------------------------------------------------
/android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/android/src/main/java/com/rollbar/RollbarReactNative.java:
--------------------------------------------------------------------------------
1 | package com.rollbar;
2 |
3 | import java.util.Map;
4 | import java.util.MissingResourceException;
5 |
6 | import com.google.gson.JsonObject;
7 |
8 | import com.facebook.react.ReactPackage;
9 | import com.facebook.react.bridge.ReactContext;
10 | import com.facebook.react.bridge.ReactApplicationContext;
11 | import com.facebook.react.bridge.ReadableMap;
12 | import com.facebook.react.bridge.ReactContextBaseJavaModule;
13 | import com.facebook.react.bridge.ReactMethod;
14 |
15 | import android.content.Context;
16 | import android.content.pm.PackageManager;
17 | import android.content.pm.PackageManager.NameNotFoundException;
18 | import android.content.pm.PackageInfo;
19 | import android.content.pm.ApplicationInfo;
20 | import android.os.Build;
21 | import android.os.Bundle;
22 |
23 | import com.rollbar.android.Rollbar;
24 | import com.rollbar.android.provider.NotifierProvider;
25 | import com.rollbar.api.payload.data.Level;
26 | import com.rollbar.notifier.config.Config;
27 | import com.rollbar.notifier.config.ConfigBuilder;
28 | import com.rollbar.notifier.config.ConfigProvider;
29 |
30 | public class RollbarReactNative extends ReactContextBaseJavaModule {
31 | private static final String REACT_NATIVE = "react-native";
32 | private static final String NOTIFIER_NAME = "rollbar-react-native";
33 | private static final String NOTIFIER_VERSION = "1.0.0-beta.5";
34 | private static final String MANIFEST_CODE_VERSION = "com.rollbar.android.CODE_VERSION";
35 |
36 | private ReactContext reactContext;
37 |
38 | public static ReactPackage getPackage() {
39 | return new RollbarReactNativePackage();
40 | }
41 |
42 | public RollbarReactNative(ReactApplicationContext reactContext) {
43 | super(reactContext);
44 | this.reactContext = reactContext;
45 | }
46 |
47 | public static void init(Context context, String accessToken, String environment) {
48 | init(context, accessToken, environment, true);
49 | }
50 |
51 | public static void init(Context context, String accessToken, String environment, boolean registerExceptionHandler) {
52 | final String codeVersion = loadCodeVersionFromManifest(context);
53 |
54 | Rollbar.init(context, accessToken, environment, registerExceptionHandler, false, new ConfigProvider() {
55 | @Override
56 | public Config provide(ConfigBuilder builder) {
57 | return builder
58 | .framework(REACT_NATIVE)
59 | .platform("android")
60 | .codeVersion(codeVersion) // OK to send null here if there's no code version.
61 | .notifier(new NotifierProvider(NOTIFIER_VERSION, NOTIFIER_NAME))
62 | .build();
63 | }
64 | });
65 | }
66 |
67 | private static String loadCodeVersionFromManifest(Context context) {
68 | ApplicationInfo ai;
69 |
70 | try {
71 | ai = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
72 | } catch (NameNotFoundException e) {
73 | return null;
74 | }
75 |
76 | Bundle data = ai.metaData;
77 |
78 | // The bundle will be null if there are no metadata values.
79 | if (data == null) {
80 | return null;
81 | }
82 |
83 | try {
84 | return data.getString(MANIFEST_CODE_VERSION);
85 | } catch (MissingResourceException e) {
86 | return null;
87 | }
88 | }
89 |
90 | /**
91 | * Record a critical error.
92 | *
93 | * @param error the error.
94 | */
95 | public static void critical(Throwable error) {
96 | critical(error, null, null);
97 | }
98 |
99 | /**
100 | * Record a critical error with human readable description.
101 | *
102 | * @param error the error.
103 | * @param description human readable description of error.
104 | */
105 | public static void critical(Throwable error, String description) {
106 | critical(error, null, description);
107 | }
108 |
109 | /**
110 | * Record a critical error with extra information attached.
111 | *
112 | * @param error the error.
113 | * @param custom the extra information.
114 | */
115 | public static void critical(Throwable error, Map custom) {
116 | critical(error, custom, null);
117 | }
118 |
119 | /**
120 | * Record a critical message.
121 | *
122 | * @param message the message.
123 | */
124 | public static void critical(String message) {
125 | critical(null, null, message);
126 | }
127 |
128 | /**
129 | * Record a critical message with extra information attached.
130 | *
131 | * @param message the message.
132 | * @param custom the extra information.
133 | */
134 | public static void critical(String message, Map custom) {
135 | critical(null, custom, message);
136 | }
137 |
138 | /**
139 | * Record a critical error with custom parameters and human readable description.
140 | *
141 | * @param error the error.
142 | * @param custom the custom data.
143 | * @param description the human readable description of error.
144 | */
145 | public static void critical(Throwable error, Map custom, String description) {
146 | log(error, custom, description, Level.CRITICAL);
147 | }
148 |
149 | /**
150 | * Record an error.
151 | *
152 | * @param error the error.
153 | */
154 | public static void error(Throwable error) {
155 | error(error, null, null);
156 | }
157 |
158 | /**
159 | * Record an error with human readable description.
160 | *
161 | * @param error the error.
162 | * @param description human readable description of error.
163 | */
164 | public static void error(Throwable error, String description) {
165 | error(error, null, description);
166 | }
167 |
168 | /**
169 | * Record an error with extra information attached.
170 | *
171 | * @param error the error.
172 | * @param custom the extra information.
173 | */
174 | public static void error(Throwable error, Map custom) {
175 | error(error, custom, null);
176 | }
177 |
178 | /**
179 | * Record an error message.
180 | *
181 | * @param message the message.
182 | */
183 | public static void error(String message) {
184 | error(null, null, message);
185 | }
186 |
187 | /**
188 | * Record a error message with extra information attached.
189 | *
190 | * @param message the message.
191 | * @param custom the extra information.
192 | */
193 | public static void error(String message, Map custom) {
194 | error(null, custom, message);
195 | }
196 |
197 | /**
198 | * Record an error with custom parameters and human readable description.
199 | *
200 | * @param error the error.
201 | * @param custom the custom data.
202 | * @param description the human readable description of error.
203 | */
204 | public static void error(Throwable error, Map custom, String description) {
205 | log(error, custom, description, Level.ERROR);
206 | }
207 |
208 | /**
209 | * Record an error as a warning.
210 | *
211 | * @param error the error.
212 | */
213 | public static void warning(Throwable error) {
214 | warning(error, null, null);
215 | }
216 |
217 | /**
218 | * Record a warning with human readable description.
219 | *
220 | * @param error the error.
221 | * @param description human readable description of error.
222 | */
223 | public static void warning(Throwable error, String description) {
224 | warning(error, null, description);
225 | }
226 |
227 | /**
228 | * Record a warning error with extra information attached.
229 | *
230 | * @param error the error.
231 | * @param custom the extra information.
232 | */
233 | public static void warning(Throwable error, Map custom) {
234 | warning(error, custom, null);
235 | }
236 |
237 | /**
238 | * Record a warning message.
239 | *
240 | * @param message the message.
241 | */
242 | public static void warning(String message) {
243 | warning(null, null, message);
244 | }
245 |
246 | /**
247 | * Record a warning message with extra information attached.
248 | *
249 | * @param message the message.
250 | * @param custom the extra information.
251 | */
252 | public static void warning(String message, Map custom) {
253 | warning(null, custom, message);
254 | }
255 |
256 | /**
257 | * Record a warning error with custom parameters and human readable description.
258 | *
259 | * @param error the error.
260 | * @param custom the custom data.
261 | * @param description the human readable description of error.
262 | */
263 | public static void warning(Throwable error, Map custom, String description) {
264 | log(error, custom, description, Level.WARNING);
265 | }
266 |
267 | /**
268 | * Record an error as an info.
269 | *
270 | * @param error the error.
271 | */
272 | public static void info(Throwable error) {
273 | info(error, null, null);
274 | }
275 |
276 | /**
277 | * Record an info error with human readable description.
278 | *
279 | * @param error the error.
280 | * @param description human readable description of error.
281 | */
282 | public static void info(Throwable error, String description) {
283 | info(error, null, description);
284 | }
285 |
286 | /**
287 | * Record an info error with extra information attached.
288 | *
289 | * @param error the error.
290 | * @param custom the extra information.
291 | */
292 | public static void info(Throwable error, Map custom) {
293 | info(error, custom, null);
294 | }
295 |
296 | /**
297 | * Record an informational message.
298 | *
299 | * @param message the message.
300 | */
301 | public static void info(String message) {
302 | info(null, null, message);
303 | }
304 |
305 | /**
306 | * Record an informational message with extra information attached.
307 | *
308 | * @param message the message.
309 | * @param custom the extra information.
310 | */
311 | public static void info(String message, Map custom) {
312 | info(null, custom, message);
313 | }
314 |
315 | /**
316 | * Record an info error with custom parameters and human readable description.
317 | *
318 | * @param error the error.
319 | * @param custom the custom data.
320 | * @param description the human readable description of error.
321 | */
322 | public static void info(Throwable error, Map custom, String description) {
323 | log(error, custom, description, Level.INFO);
324 | }
325 |
326 | /**
327 | * Record an error as debugging information.
328 | *
329 | * @param error the error.
330 | */
331 | public static void debug(Throwable error) {
332 | debug(error, null, null);
333 | }
334 |
335 | /**
336 | * Record a debug error with human readable description.
337 | *
338 | * @param error the error.
339 | * @param description human readable description of error.
340 | */
341 | public static void debug(Throwable error, String description) {
342 | debug(error, null, description);
343 | }
344 |
345 | /**
346 | * Record a debug error with extra information attached.
347 | *
348 | * @param error the error.
349 | * @param custom the extra information.
350 | */
351 | public static void debug(Throwable error, Map custom) {
352 | debug(error, custom, null);
353 | }
354 |
355 | /**
356 | * Record a debugging message.
357 | *
358 | * @param message the message.
359 | */
360 | public static void debug(String message) {
361 | debug(null, null, message);
362 | }
363 |
364 | /**
365 | * Record a debugging message with extra information attached.
366 | *
367 | * @param message the message.
368 | * @param custom the extra information.
369 | */
370 | public static void debug(String message, Map custom) {
371 | debug(null, custom, message);
372 | }
373 |
374 | /**
375 | * Record a debug error with custom parameters and human readable description.
376 | *
377 | * @param error the error.
378 | * @param custom the custom data.
379 | * @param description the human readable description of error.
380 | */
381 | public static void debug(Throwable error, Map custom, String description) {
382 | log(error, custom, description, Level.DEBUG);
383 | }
384 |
385 | /**
386 | * Log an error at the level returned by {@link com.rollbar.notifier.Rollbar#level}.
387 | *
388 | * @param error the error.
389 | */
390 | public static void log(Throwable error) {
391 | log(error, null, null, null);
392 | }
393 |
394 | /**
395 | * Record an error with human readable description at the default level returned by {@link
396 | * com.rollbar.notifier.Rollbar#level}.
397 | *
398 | * @param error the error.
399 | * @param description human readable description of error.
400 | */
401 | public static void log(Throwable error, String description) {
402 | log(error, null, description, null);
403 | }
404 |
405 | /**
406 | * Record an error with extra information attached at the default level returned by {@link
407 | * com.rollbar.notifier.Rollbar#level}.
408 | *
409 | * @param error the error.
410 | * @param custom the extra information.
411 | */
412 | public static void log(Throwable error, Map custom) {
413 | log(error, custom, null, null);
414 | }
415 |
416 | /**
417 | * Record an error with extra information attached at the level specified.
418 | *
419 | * @param error the error.
420 | * @param custom the extra information.
421 | * @param level the level.
422 | */
423 | public static void log(Throwable error, Map custom, Level level) {
424 | log(error, custom, null, level);
425 | }
426 |
427 | /**
428 | * Log an error at level specified.
429 | *
430 | * @param error the error.
431 | * @param level the level of the error.
432 | */
433 | public static void log(Throwable error, Level level) {
434 | log(error, null, null, level);
435 | }
436 |
437 | /**
438 | * Record a debug error with human readable description at the specified level.
439 | *
440 | * @param error the error.
441 | * @param description human readable description of error.
442 | * @param level the level.
443 | */
444 | public static void log(Throwable error, String description, Level level) {
445 | log(error, null, description, level);
446 | }
447 |
448 | /**
449 | * Record an error with custom parameters and human readable description at the default level
450 | * returned by {@link com.rollbar.notifier.Rollbar#level}.
451 | *
452 | * @param error the error.
453 | * @param custom the custom data.
454 | * @param description the human readable description of error.
455 | */
456 | public static void log(Throwable error, Map custom, String description) {
457 | log(error, custom, description, null);
458 | }
459 |
460 | /**
461 | * Record a debugging message at the level returned by {@link com.rollbar.notifier.Rollbar#level} (WARNING unless level
462 | * is overridden).
463 | *
464 | * @param message the message.
465 | */
466 | public static void log(String message) {
467 | log(null, null, message, null);
468 | }
469 |
470 | /**
471 | * Record a message with extra information attached at the default level returned by {@link
472 | * com.rollbar.notifier.Rollbar#level}, (WARNING unless level overridden).
473 | *
474 | * @param message the message.
475 | * @param custom the extra information.
476 | */
477 | public static void log(String message, Map custom) {
478 | log(null, custom, message, null);
479 | }
480 |
481 | /**
482 | * Record a message at the level specified.
483 | *
484 | * @param message the message.
485 | * @param level the level.
486 | */
487 | public static void log(String message, Level level) {
488 | log(null, null, message, level);
489 | }
490 |
491 | /**
492 | * Record a message with extra information attached at the specified level.
493 | *
494 | * @param message the message.
495 | * @param custom the extra information.
496 | * @param level the level.
497 | */
498 | public static void log(String message, Map custom, Level level) {
499 | log(null, custom, message, level);
500 | }
501 |
502 | /**
503 | * Record an error or message with extra data at the level specified. At least ene of `error` or
504 | * `description` must be non-null. If error is null, `description` will be sent as a message. If
505 | * error is non-null, description will be sent as the description of the error. Custom data will
506 | * be attached to message if the error is null.
507 | *
508 | * @param error the error (if any).
509 | * @param custom the custom data (if any).
510 | * @param description the description of the error, or the message to send.
511 | * @param level the level to send it at.
512 | */
513 | public static void log(final Throwable error, final Map custom, final String description, final Level level) {
514 | Rollbar.instance().log(error, custom, description, level);
515 | }
516 |
517 | public static Rollbar instance() {
518 | return Rollbar.instance();
519 | }
520 |
521 | @Override
522 | public String getName() {
523 | return "RollbarReactNative";
524 | }
525 |
526 | @ReactMethod
527 | public void init(ReadableMap options) {
528 | final String environment = options.hasKey("environment") ? options.getString("environment") : "production";
529 | final String platform = options.hasKey("platform") ? options.getString("platform") : "android";
530 | final String notifier_version = options.hasKey("notifier") ? options.getMap("notifier").getString("version") : NOTIFIER_VERSION;
531 | final String notifier_name = options.hasKey("notifier") ? options.getMap("notifier").getString("name") : NOTIFIER_NAME;
532 | final boolean enabled = options.hasKey("enabled") ? options.getBoolean("enabled") : true;
533 | Rollbar.instance().configure(new ConfigProvider() {
534 | @Override
535 | public Config provide(ConfigBuilder builder) {
536 | return builder
537 | .platform(platform)
538 | .framework(REACT_NATIVE)
539 | .environment(environment)
540 | .notifier(new NotifierProvider(notifier_version, notifier_name))
541 | .handleUncaughtErrors(enabled)
542 | .build();
543 | }
544 | });
545 | }
546 |
547 | @ReactMethod
548 | public void setPerson(ReadableMap personInfo) {
549 | String userId = personInfo.hasKey("id") ? personInfo.getString("id") : null;
550 | String email = personInfo.hasKey("email") ? personInfo.getString("email") : null;
551 | String name = personInfo.hasKey("name") ? personInfo.getString("name") : null;
552 | Rollbar.instance().setPersonData(userId, name, email);
553 | }
554 |
555 | @ReactMethod
556 | public void clearPerson() {
557 | Rollbar.instance().clearPersonData();
558 | }
559 |
560 | // Defined as synchronous because the data must be returned in the
561 | // javascript configuration constructor before Rollbar.js is initialized.
562 | @ReactMethod(isBlockingSynchronousMethod = true)
563 | public String deviceAttributes() {
564 | JsonObject attributes = new JsonObject();
565 |
566 | attributes.addProperty("os", "android");
567 | attributes.addProperty("phone_model", android.os.Build.MODEL);
568 | attributes.addProperty("android_version", android.os.Build.VERSION.RELEASE);
569 | attributes.addProperty("board", android.os.Build.BOARD);
570 | attributes.addProperty("brand", android.os.Build.BRAND);
571 | attributes.addProperty("device", android.os.Build.DEVICE);
572 | attributes.addProperty("manufacturer", android.os.Build.MANUFACTURER);
573 | attributes.addProperty("product", android.os.Build.PRODUCT);
574 |
575 | return attributes.toString();
576 | }
577 | }
578 |
--------------------------------------------------------------------------------
/android/src/main/java/com/rollbar/RollbarReactNativePackage.java:
--------------------------------------------------------------------------------
1 | package com.rollbar;
2 |
3 | import java.util.Arrays;
4 | import java.util.Collections;
5 | import java.util.List;
6 |
7 | import com.facebook.react.ReactPackage;
8 | import com.facebook.react.bridge.NativeModule;
9 | import com.facebook.react.bridge.ReactApplicationContext;
10 | import com.facebook.react.bridge.JavaScriptModule;
11 | import com.facebook.react.uimanager.ViewManager;
12 |
13 | public class RollbarReactNativePackage implements ReactPackage {
14 | @Override
15 | public List createNativeModules(ReactApplicationContext reactContext) {
16 | return Arrays.asList(new RollbarReactNative(reactContext));
17 | }
18 |
19 | // Deprecated from RN 0.47
20 | public List> createJSModules() {
21 | return Collections.emptyList();
22 | }
23 |
24 | @Override
25 | public List createViewManagers(ReactApplicationContext reactContext) {
26 | return Collections.emptyList();
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/index.d.ts:
--------------------------------------------------------------------------------
1 | export class Client {
2 | constructor(config: ConfigurationOptions);
3 |
4 | public rollbar: Rollbar;
5 |
6 | public captureUncaughtExceptions(): void;
7 | public captureUnhandledRejections(): void;
8 |
9 | public log(obj: LogArgument, extra?: Extra, callback?: Callback): LogResult;
10 | public debug(obj: LogArgument, extra?: Extra, callback?: Callback): LogResult;
11 | public info(obj: LogArgument, extra?: Extra, callback?: Callback): LogResult;
12 | public warning(obj: LogArgument, extra?: Extra, callback?: Callback): LogResult;
13 | public error(obj: LogArgument, extra?: Extra, callback?: Callback): LogResult;
14 | public critical(obj: LogArgument, extra?: Extra, callback?: Callback): LogResult;
15 |
16 | public setPerson(id: string | null, name?: string | null, email?: string | null): void;
17 | public clearPerson(): void;
18 | }
19 |
20 | export class Configuration {
21 | constructor(options?: ConfigurationOptions);
22 | public setPlatform(platform: string): void;
23 | public toJSON(): object;
24 | }
25 |
26 | export type LogArgument = string | Error | object | Callback | Date | any[];
27 | export type Extra = object | undefined | null;
28 | export interface LogResult {
29 | uuid: string;
30 | }
31 | export type MaybeError = Error | undefined | null;
32 | export type Callback = (err: MaybeError, response: object) => void;
33 |
34 | export type Rollbar = import("rollbar").Rollbar;
35 | export type ConfigurationOptions = import("rollbar").Configuration;
36 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | 'use strict'
2 | module.exports = require('./lib/Client');
3 |
--------------------------------------------------------------------------------
/ios/RollbarReactNative.h:
--------------------------------------------------------------------------------
1 | #if __has_include()
2 | #import
3 | #else
4 | #import "RCTBridgeModule.h"
5 | #endif
6 |
7 | @interface RollbarReactNative : NSObject
8 |
9 | + (void)initWithConfiguration:(nonnull NSDictionary *)configuration;
10 |
11 | + (void)log:(nonnull NSString*)level message:(nonnull NSString*)message;
12 | + (void)log:(nonnull NSString*)level exception:(nonnull NSException*)exception;
13 | + (void)log:(nonnull NSString*)level error:(nonnull NSError*)error;
14 |
15 | + (void)log:(nonnull NSString*)level
16 | message:(nonnull NSString*)message
17 | data:(nullable NSDictionary *)data;
18 |
19 | + (void)log:(nonnull NSString*)level
20 | exception:(nonnull NSException*)exception
21 | data:(nullable NSDictionary *)data;
22 |
23 | + (void)log:(nonnull NSString*)level
24 | error:(nonnull NSError*)error
25 | data:(nullable NSDictionary *)data;
26 |
27 | + (void)log:(nonnull NSString*)level
28 | message:(nonnull NSString*)message
29 | data:(nullable NSDictionary *)data
30 | context:(nullable NSString *)context;
31 |
32 | + (void)log:(nonnull NSString*)level
33 | exception:(nonnull NSException*)exception
34 | data:(nullable NSDictionary *)data
35 | context:(nullable NSString *)context;
36 |
37 | + (void)log:(nonnull NSString*)level
38 | error:(nonnull NSError*)error
39 | data:(nullable NSDictionary *)data
40 | context:(nullable NSString *)context;
41 |
42 | + (void)debugMessage:(nonnull NSString*)message;
43 | + (void)debugException:(nonnull NSException*)exception;
44 | + (void)debugError:(nonnull NSError*)error;
45 |
46 | + (void)debugMessage:(nonnull NSString*)message
47 | data:(nullable NSDictionary *)data;
48 |
49 | + (void)debugException:(nonnull NSException*)exception
50 | data:(nullable NSDictionary *)data;
51 |
52 | + (void)debugError:(nonnull NSError*)error
53 | data:(nullable NSDictionary *)data;
54 |
55 | + (void)debugMessage:(nonnull NSString*)message
56 | data:(nullable NSDictionary *)data
57 | context:(nullable NSString *)context;
58 |
59 | + (void)debugException:(nonnull NSException*)exception
60 | data:(nullable NSDictionary *)data
61 | context:(nullable NSString *)context;
62 |
63 | + (void)debugError:(nonnull NSError*)error
64 | data:(nullable NSDictionary *)data
65 | context:(nullable NSString *)context;
66 |
67 | + (void)infoMessage:(nonnull NSString*)message;
68 | + (void)infoException:(nonnull NSException*)exception;
69 | + (void)infoError:(nonnull NSError*)error;
70 |
71 | + (void)infoMessage:(nonnull NSString*)message
72 | data:(nullable NSDictionary *)data;
73 |
74 | + (void)infoException:(nonnull NSException*)exception
75 | data:(nullable NSDictionary *)data;
76 |
77 | + (void)infoError:(nonnull NSError*)error
78 | data:(nullable NSDictionary *)data;
79 |
80 | + (void)infoMessage:(nonnull NSString*)message
81 | data:(nullable NSDictionary *)data
82 | context:(nullable NSString *)context;
83 |
84 | + (void)infoException:(nonnull NSException*)exception
85 | data:(nullable NSDictionary *)data
86 | context:(nullable NSString *)context;
87 |
88 | + (void)infoError:(nonnull NSError*)error
89 | data:(nullable NSDictionary *)data
90 | context:(nullable NSString *)context;
91 |
92 | + (void)warningMessage:(nonnull NSString*)message;
93 | + (void)warningException:(nonnull NSException*)exception;
94 | + (void)warningError:(nonnull NSError*)error;
95 |
96 | + (void)warningMessage:(nonnull NSString*)message
97 | data:(nullable NSDictionary *)data;
98 |
99 | + (void)warningException:(nonnull NSException*)exception
100 | data:(nullable NSDictionary *)data;
101 |
102 | + (void)warningError:(nonnull NSError*)error
103 | data:(nullable NSDictionary *)data;
104 |
105 | + (void)warningMessage:(nonnull NSString*)message
106 | data:(nullable NSDictionary *)data
107 | context:(nullable NSString *)context;
108 |
109 | + (void)warningException:(nonnull NSException*)exception
110 | data:(nullable NSDictionary *)data
111 | context:(nullable NSString *)context;
112 |
113 | + (void)warningError:(nonnull NSError*)error
114 | data:(nullable NSDictionary *)data
115 | context:(nullable NSString *)context;
116 |
117 | + (void)errorMessage:(nonnull NSString*)message;
118 | + (void)errorException:(nonnull NSException*)exception;
119 | + (void)errorError:(nonnull NSError*)error;
120 |
121 | + (void)errorMessage:(nonnull NSString*)message
122 | data:(nullable NSDictionary *)data;
123 |
124 | + (void)errorException:(nonnull NSException*)exception
125 | data:(nullable NSDictionary *)data;
126 |
127 | + (void)errorError:(nonnull NSError*)error
128 | data:(nullable NSDictionary *)data;
129 |
130 | + (void)errorMessage:(nonnull NSString*)message
131 | data:(nullable NSDictionary *)data
132 | context:(nullable NSString *)context;
133 |
134 | + (void)errorException:(nonnull NSException*)exception
135 | data:(nullable NSDictionary *)data
136 | context:(nullable NSString *)context;
137 |
138 | + (void)errorError:(nonnull NSError*)error
139 | data:(nullable NSDictionary *)data
140 | context:(nullable NSString *)context;
141 |
142 | + (void)criticalMessage:(nonnull NSString*)message;
143 | + (void)criticalException:(nonnull NSException*)exception;
144 | + (void)criticalError:(nonnull NSError*)error;
145 |
146 | + (void)criticalMessage:(nonnull NSString*)message
147 | data:(nullable NSDictionary *)data;
148 |
149 | + (void)criticalException:(nonnull NSException*)exception
150 | data:(nullable NSDictionary *)data;
151 |
152 | + (void)criticalError:(nonnull NSError*)error
153 | data:(nullable NSDictionary *)data;
154 |
155 | + (void)criticalMessage:(nonnull NSString*)message
156 | data:(nullable NSDictionary *)data
157 | context:(nullable NSString *)context;
158 |
159 | + (void)criticalException:(nonnull NSException*)exception
160 | data:(nullable NSDictionary *)data
161 | context:(nullable NSString *)context;
162 |
163 | + (void)criticalError:(nonnull NSError*)error
164 | data:(nullable NSDictionary *)data
165 | context:(nullable NSString *)context;
166 |
167 | - (void)init:(nonnull NSDictionary *)options;
168 | - (void)setPerson:(nonnull NSDictionary *)personInfo;
169 | - (void)clearPerson;
170 |
171 | @end
172 |
--------------------------------------------------------------------------------
/ios/RollbarReactNative.m:
--------------------------------------------------------------------------------
1 | #import "RollbarReactNative.h"
2 | #if __has_include()
3 | #import
4 | #else
5 | #import "RCTConvert.h"
6 | #endif
7 | #include
8 |
9 | #if __has_include()
10 | #import
11 | #else
12 | #import "Rollbar.h"
13 | #endif
14 |
15 | @implementation RollbarReactNative
16 |
17 | static NSString *const NOTIFIER_NAME = @"rollbar-react-native";
18 | static NSString *const NOTIFIER_VERSION = @"1.0.0-beta.5";
19 | static NSString *const REACT_NATIVE = @"react-native";
20 |
21 | + (void)initWithConfiguration:(NSDictionary*)options {
22 | RollbarMutableConfig *config = [[Rollbar configuration] mutableCopy];
23 | if (config) {
24 | updateConfiguration(config, options);
25 | [Rollbar updateWithConfiguration:config];
26 | return;
27 | }
28 | config = [RollbarConfig mutableConfigWithAccessToken:[RCTConvert NSString:options[@"accessToken"]]];
29 | updateConfiguration(config, options);
30 |
31 | [Rollbar initWithConfiguration:config];
32 | }
33 |
34 | + (void)log:(nonnull NSString*)level message:(NSString*)message {
35 | RollbarLevel rLevel = rollbarLevelFromString(level);
36 | [Rollbar log:rLevel message:message];
37 | }
38 |
39 | + (void)log:(nonnull NSString*)level exception:(NSException*)exception {
40 | RollbarLevel rLevel = rollbarLevelFromString(level);
41 | [Rollbar log:rLevel exception:exception];
42 | }
43 |
44 | + (void)log:(nonnull NSString*)level error:(NSError*)error {
45 | RollbarLevel rLevel = rollbarLevelFromString(level);
46 | [Rollbar log:rLevel error:error];
47 | }
48 |
49 | + (void)log:(nonnull NSString*)level
50 | message:(NSString*)message
51 | data:(nullable NSDictionary *)data {
52 | RollbarLevel rLevel = rollbarLevelFromString(level);
53 | [Rollbar log:rLevel message:message data:data];
54 | }
55 |
56 | + (void)log:(nonnull NSString*)level
57 | exception:(NSException*)exception
58 | data:(nullable NSDictionary *)data {
59 | RollbarLevel rLevel = rollbarLevelFromString(level);
60 | [Rollbar log:rLevel exception:exception data:data];
61 | }
62 |
63 | + (void)log:(nonnull NSString*)level
64 | error:(NSError*)error
65 | data:(nullable NSDictionary *)data {
66 | RollbarLevel rLevel = rollbarLevelFromString(level);
67 | [Rollbar log:rLevel error:error data:data];
68 | }
69 |
70 | + (void)log:(nonnull NSString*)level
71 | message:(NSString*)message
72 | data:(nullable NSDictionary *)data
73 | context:(nullable NSString *)context {
74 | RollbarLevel rLevel = rollbarLevelFromString(level);
75 | [Rollbar log:rLevel message:message data:data context:context];
76 | }
77 |
78 | + (void)log:(nonnull NSString*)level
79 | exception:(NSException*)exception
80 | data:(nullable NSDictionary *)data
81 | context:(nullable NSString *)context {
82 | RollbarLevel rLevel = rollbarLevelFromString(level);
83 | [Rollbar log:rLevel exception:exception data:data context:context];
84 | }
85 |
86 | + (void)log:(nonnull NSString*)level
87 | error:(NSError*)error
88 | data:(nullable NSDictionary *)data
89 | context:(nullable NSString *)context {
90 | RollbarLevel rLevel = rollbarLevelFromString(level);
91 | [Rollbar log:rLevel error:error data:data context:context];
92 | }
93 |
94 | + (void)debugMessage:(NSString*)message {
95 | [Rollbar debugMessage:message];
96 | }
97 |
98 | + (void)debugException:(NSException*)exception {
99 | [Rollbar debugException:exception];
100 | }
101 |
102 | + (void)debugError:(NSError*)error {
103 | [Rollbar debugError:error];
104 | }
105 |
106 | + (void)debugMessage:(NSString*)message
107 | data:(nullable NSDictionary *)data {
108 | [Rollbar debugMessage:message data:data];
109 | }
110 |
111 | + (void)debugException:(NSException*)exception
112 | data:(nullable NSDictionary *)data {
113 | [Rollbar debugException:exception data:data];
114 | }
115 |
116 | + (void)debugError:(NSError*)error
117 | data:(nullable NSDictionary *)data {
118 | [Rollbar debugError:error data:data];
119 | }
120 |
121 | + (void)debugMessage:(NSString*)message
122 | data:(nullable NSDictionary *)data
123 | context:(nullable NSString *)context {
124 | [Rollbar debugMessage:message data:data context:context];
125 | }
126 |
127 | + (void)debugException:(NSException*)exception
128 | data:(nullable NSDictionary *)data
129 | context:(nullable NSString *)context {
130 | [Rollbar debugException:exception data:data context:context];
131 | }
132 |
133 | + (void)debugError:(NSError*)error
134 | data:(nullable NSDictionary *)data
135 | context:(nullable NSString *)context {
136 | [Rollbar debugError:error data:data context:context];
137 | }
138 |
139 | + (void)infoMessage:(NSString*)message {
140 | [Rollbar infoMessage:message];
141 | }
142 |
143 | + (void)infoException:(NSException*)exception {
144 | [Rollbar infoException:exception];
145 | }
146 |
147 | + (void)infoError:(NSError*)error {
148 | [Rollbar infoError:error];
149 | }
150 |
151 | + (void)infoMessage:(NSString*)message
152 | data:(nullable NSDictionary *)data {
153 | [Rollbar infoMessage:message data:data];
154 | }
155 |
156 | + (void)infoException:(NSException*)exception
157 | data:(nullable NSDictionary *)data {
158 | [Rollbar infoException:exception data:data];
159 | }
160 |
161 | + (void)infoError:(NSError*)error
162 | data:(nullable NSDictionary *)data {
163 | [Rollbar infoError:error data:data];
164 | }
165 |
166 | + (void)infoMessage:(NSString*)message
167 | data:(nullable NSDictionary *)data
168 | context:(nullable NSString *)context {
169 | [Rollbar infoMessage:message data:data context:context];
170 | }
171 |
172 | + (void)infoException:(NSException*)exception
173 | data:(nullable NSDictionary *)data
174 | context:(nullable NSString *)context {
175 | [Rollbar infoException:exception data:data context:context];
176 | }
177 |
178 | + (void)infoError:(NSError*)error
179 | data:(nullable NSDictionary *)data
180 | context:(nullable NSString *)context {
181 | [Rollbar infoError:error data:data context:context];
182 | }
183 |
184 | + (void)warningMessage:(NSString*)message {
185 | [Rollbar warningMessage:message];
186 | }
187 |
188 | + (void)warningException:(NSException*)exception {
189 | [Rollbar warningException:exception];
190 | }
191 |
192 | + (void)warningError:(NSError*)error {
193 | [Rollbar warningError:error];
194 | }
195 |
196 | + (void)warningMessage:(NSString*)message
197 | data:(nullable NSDictionary *)data {
198 | [Rollbar warningMessage:message data:data];
199 | }
200 |
201 | + (void)warningException:(NSException*)exception
202 | data:(nullable NSDictionary *)data {
203 | [Rollbar warningException:exception data:data];
204 | }
205 |
206 | + (void)warningError:(NSError*)error
207 | data:(nullable NSDictionary *)data {
208 | [Rollbar warningError:error data:data];
209 | }
210 |
211 | + (void)warningMessage:(NSString*)message
212 | data:(nullable NSDictionary *)data
213 | context:(nullable NSString *)context {
214 | [Rollbar warningMessage:message data:data context:context];
215 | }
216 |
217 | + (void)warningException:(NSException*)exception
218 | data:(nullable NSDictionary *)data
219 | context:(nullable NSString *)context {
220 | [Rollbar warningException:exception data:data context:context];
221 | }
222 |
223 | + (void)warningError:(NSError*)error
224 | data:(nullable NSDictionary *)data
225 | context:(nullable NSString *)context {
226 | [Rollbar warningError:error data:data context:context];
227 | }
228 |
229 | + (void)errorMessage:(NSString*)message {
230 | [Rollbar errorMessage:message];
231 | }
232 |
233 | + (void)errorException:(NSException*)exception {
234 | [Rollbar errorException:exception];
235 | }
236 |
237 | + (void)errorError:(NSError*)error {
238 | [Rollbar errorError:error];
239 | }
240 |
241 | + (void)errorMessage:(NSString*)message
242 | data:(nullable NSDictionary *)data {
243 | [Rollbar errorMessage:message data:data];
244 | }
245 |
246 | + (void)errorException:(NSException*)exception
247 | data:(nullable NSDictionary *)data {
248 | [Rollbar errorException:exception data:data];
249 | }
250 |
251 | + (void)errorError:(NSError*)error
252 | data:(nullable NSDictionary *)data {
253 | [Rollbar errorError:error data:data];
254 | }
255 |
256 | + (void)errorMessage:(NSString*)message
257 | data:(nullable NSDictionary *)data
258 | context:(nullable NSString *)context {
259 | [Rollbar errorMessage:message data:data context:context];
260 | }
261 |
262 | + (void)errorException:(NSException*)exception
263 | data:(nullable NSDictionary *)data
264 | context:(nullable NSString *)context {
265 | [Rollbar errorException:exception data:data context:context];
266 | }
267 |
268 | + (void)errorError:(NSError*)error
269 | data:(nullable NSDictionary *)data
270 | context:(nullable NSString *)context {
271 | [Rollbar errorError:error data:data context:context];
272 | }
273 |
274 | + (void)criticalMessage:(NSString*)message {
275 | [Rollbar criticalMessage:message];
276 | }
277 |
278 | + (void)criticalException:(NSException*)exception {
279 | [Rollbar criticalException:exception];
280 | }
281 |
282 | + (void)criticalError:(NSError*)error {
283 | [Rollbar criticalError:error];
284 | }
285 |
286 | + (void)criticalMessage:(NSString*)message
287 | data:(nullable NSDictionary *)data {
288 | [Rollbar criticalMessage:message data:data];
289 | }
290 |
291 | + (void)criticalException:(NSException*)exception
292 | data:(nullable NSDictionary *)data {
293 | [Rollbar criticalException:exception data:data];
294 | }
295 |
296 | + (void)criticalError:(NSError*)error
297 | data:(nullable NSDictionary *)data {
298 | [Rollbar criticalError:error data:data];
299 | }
300 |
301 | + (void)criticalMessage:(NSString*)message
302 | data:(nullable NSDictionary *)data
303 | context:(nullable NSString *)context {
304 | [Rollbar criticalMessage:message data:data context:context];
305 | }
306 |
307 | + (void)criticalException:(NSException*)exception
308 | data:(nullable NSDictionary *)data
309 | context:(nullable NSString *)context {
310 | [Rollbar criticalException:exception data:data context:context];
311 | }
312 |
313 | + (void)criticalError:(NSError*)error
314 | data:(nullable NSDictionary *)data
315 | context:(nullable NSString *)context {
316 | [Rollbar criticalError:error data:data context:context];
317 | }
318 |
319 | RollbarLevel rollbarLevelFromString(NSString *value) {
320 | if (value == nil) {
321 | return RollbarLevel_Info;
322 | } else if ([value caseInsensitiveCompare:@"debug"] == NSOrderedSame) {
323 | return RollbarLevel_Debug;
324 | } else if ([value caseInsensitiveCompare:@"info"] == NSOrderedSame) {
325 | return RollbarLevel_Info;
326 | } else if ([value caseInsensitiveCompare:@"warning"] == NSOrderedSame) {
327 | return RollbarLevel_Warning;
328 | } else if ([value caseInsensitiveCompare:@"error"] == NSOrderedSame) {
329 | return RollbarLevel_Error;
330 | } else if ([value caseInsensitiveCompare:@"critical"] == NSOrderedSame) {
331 | return RollbarLevel_Critical;
332 | } else {
333 | return RollbarLevel_Info;
334 | }
335 | }
336 |
337 | void updateConfiguration(RollbarMutableConfig *config, NSDictionary *options) {
338 | if (options[@"accessToken"]) {
339 | config.destination.accessToken = [RCTConvert NSString:options[@"accessToken"]];
340 | }
341 | if (options[@"environment"]) {
342 | config.destination.environment = [RCTConvert NSString:options[@"environment"]];
343 | }
344 | if (options[@"endpoint"]) {
345 | config.destination.endpoint = [RCTConvert NSString:options[@"endpoint"]];
346 | }
347 | if (options[@"enabled"]) {
348 | id enabledJSON = [options objectForKey:@"enabled"];
349 | BOOL enabled = YES;
350 | if (enabledJSON != nil) {
351 | enabled = [RCTConvert BOOL:enabledJSON];
352 | }
353 | config.developerOptions.enabled = enabled;
354 | }
355 | if (options[@"crashLevel"]) {
356 | config.loggingOptions.crashLevel = rollbarLevelFromString([RCTConvert NSString:options[@"crashLevel"]]);
357 | }
358 | if (options[@"logLevel"]) {
359 | config.loggingOptions.logLevel = rollbarLevelFromString([RCTConvert NSString:options[@"logLevel"]]);
360 | }
361 | if (options[@"notifier"]) {
362 | NSDictionary *notifierConfig = [RCTConvert NSDictionary:options[@"notifier"]];
363 | NSString *name = notifierConfig[@"name"] ?: NOTIFIER_NAME;
364 | NSString *version = notifierConfig[@"version"] ?: NOTIFIER_VERSION;
365 | [config setNotifierName:name version:version];
366 | }
367 | NSString *framework = REACT_NATIVE;
368 | if (options[@"framework"]) {
369 | framework = [RCTConvert NSString:options[@"framework"]];
370 | }
371 | config.loggingOptions.framework = framework;
372 | }
373 |
374 | RCT_EXPORT_MODULE()
375 |
376 | RCT_EXPORT_METHOD(init:(NSDictionary *)options) {
377 | RollbarMutableConfig *config = [[Rollbar configuration] mutableCopy];
378 | if (config) {
379 | updateConfiguration(config, options);
380 | [Rollbar updateWithConfiguration:config];
381 | return;
382 | }
383 | config = [RollbarConfig mutableConfigWithAccessToken:[RCTConvert NSString:options[@"accessToken"]]];
384 | updateConfiguration(config, options);
385 |
386 | [Rollbar initWithConfiguration:config];
387 | }
388 |
389 | RCT_EXPORT_METHOD(setPerson:(NSDictionary *)personInfo) {
390 | NSString *identifier = personInfo[@"id"] && ![personInfo[@"id"] isEqual:[NSNull null]]
391 | ? [RCTConvert NSString:personInfo[@"id"]] : @"";
392 | NSString *name = personInfo[@"name"] && ![personInfo[@"name"] isEqual:[NSNull null]]
393 | ? [RCTConvert NSString:personInfo[@"name"]] : nil;
394 | NSString *email = personInfo[@"email"] && ![personInfo[@"email"] isEqual:[NSNull null]]
395 | ? [RCTConvert NSString:personInfo[@"email"]] : nil;
396 | RollbarMutableConfig *config = [[Rollbar configuration] mutableCopy];
397 | [config setPersonId:identifier username:name email:email];
398 | [Rollbar updateWithConfiguration:config];
399 | }
400 |
401 | RCT_EXPORT_METHOD(clearPerson) {
402 | RollbarMutableConfig *config = [[Rollbar configuration] mutableCopy];
403 | [config setPersonId:@"" username:nil email:nil];
404 | [Rollbar updateWithConfiguration:config];
405 | }
406 |
407 | // Defined as synchronous because the data must be returned in the
408 | // javascript configuration constructor before Rollbar.js is initialized.
409 | RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(deviceAttributes)
410 | {
411 | struct utsname systemInfo;
412 | uname(&systemInfo);
413 | NSString *deviceCode = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
414 |
415 | NSBundle *mainBundle = [NSBundle mainBundle];
416 | NSString *version = [mainBundle objectForInfoDictionaryKey:(NSString*)kCFBundleVersionKey];
417 | NSString *shortVersion = [mainBundle objectForInfoDictionaryKey:@"CFBundleShortVersionString"];
418 | NSString *bundleName = [mainBundle objectForInfoDictionaryKey:(NSString *)kCFBundleNameKey];
419 | NSString *bundleIdentifier = [mainBundle objectForInfoDictionaryKey:(NSString *)kCFBundleIdentifierKey];
420 |
421 | NSDictionary *attributes = @{
422 | @"os": @"ios",
423 | @"os_version": [[UIDevice currentDevice] systemVersion],
424 | @"system_name": [[UIDevice currentDevice] systemName],
425 | @"device_name": [[UIDevice currentDevice] name],
426 | @"device_code" : deviceCode,
427 | @"code_version": version ? version : @"",
428 | @"short_version": shortVersion ? shortVersion : @"",
429 | @"bundle_identifier": bundleIdentifier ? bundleIdentifier : @"",
430 | @"app_name": bundleName ? bundleName : @""
431 | };
432 |
433 | NSError *error;
434 | NSData *jsonData = [NSJSONSerialization dataWithJSONObject:attributes
435 | options:0
436 | error:&error];
437 |
438 | NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
439 |
440 | return jsonString;
441 | }
442 |
443 | @end
444 |
--------------------------------------------------------------------------------
/ios/RollbarReactNative.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 9E17A2C11F699D5800262D87 /* RollbarReactNative.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = B3E7B5881CC2AC0600A0062D /* RollbarReactNative.h */; };
11 | 9E7303A120C9E58900D6900B /* libRollbar.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E0FADE220C9DE9A002298F4 /* libRollbar.a */; };
12 | B3E7B58A1CC2AC0600A0062D /* RollbarReactNative.m in Sources */ = {isa = PBXBuildFile; fileRef = B3E7B5891CC2AC0600A0062D /* RollbarReactNative.m */; settings = {COMPILER_FLAGS = "-fmodules -fcxx-modules"; }; };
13 | /* End PBXBuildFile section */
14 |
15 | /* Begin PBXContainerItemProxy section */
16 | 9E0FADE120C9DE9A002298F4 /* PBXContainerItemProxy */ = {
17 | isa = PBXContainerItemProxy;
18 | containerPortal = 9E0FADDA20C9DE9A002298F4 /* Rollbar.xcodeproj */;
19 | proxyType = 2;
20 | remoteGlobalIDString = 96D2220A18D8E40600933444;
21 | remoteInfo = Rollbar;
22 | };
23 | 9E0FADE320C9DE9A002298F4 /* PBXContainerItemProxy */ = {
24 | isa = PBXContainerItemProxy;
25 | containerPortal = 9E0FADDA20C9DE9A002298F4 /* Rollbar.xcodeproj */;
26 | proxyType = 2;
27 | remoteGlobalIDString = 96D2221A18D8E40600933444;
28 | remoteInfo = RollbarTests;
29 | };
30 | 9E0FADE520C9DE9A002298F4 /* PBXContainerItemProxy */ = {
31 | isa = PBXContainerItemProxy;
32 | containerPortal = 9E0FADDA20C9DE9A002298F4 /* Rollbar.xcodeproj */;
33 | proxyType = 2;
34 | remoteGlobalIDString = 343AB4521CC9AAE600962943;
35 | remoteInfo = RollbarFramework;
36 | };
37 | /* End PBXContainerItemProxy section */
38 |
39 | /* Begin PBXCopyFilesBuildPhase section */
40 | 58B511D91A9E6C8500147676 /* Copy Headers */ = {
41 | isa = PBXCopyFilesBuildPhase;
42 | buildActionMask = 2147483647;
43 | dstPath = "include/$(PRODUCT_NAME)";
44 | dstSubfolderSpec = 16;
45 | files = (
46 | 9E17A2C11F699D5800262D87 /* RollbarReactNative.h in Copy Headers */,
47 | );
48 | name = "Copy Headers";
49 | runOnlyForDeploymentPostprocessing = 0;
50 | };
51 | /* End PBXCopyFilesBuildPhase section */
52 |
53 | /* Begin PBXFileReference section */
54 | 134814201AA4EA6300B7C361 /* libRollbarReactNative.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRollbarReactNative.a; sourceTree = BUILT_PRODUCTS_DIR; };
55 | 9E0FADDA20C9DE9A002298F4 /* Rollbar.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Rollbar.xcodeproj; path = "rollbar-ios/Rollbar.xcodeproj"; sourceTree = ""; };
56 | B3E7B5881CC2AC0600A0062D /* RollbarReactNative.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RollbarReactNative.h; sourceTree = ""; };
57 | B3E7B5891CC2AC0600A0062D /* RollbarReactNative.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RollbarReactNative.m; sourceTree = ""; };
58 | /* End PBXFileReference section */
59 |
60 | /* Begin PBXFrameworksBuildPhase section */
61 | 58B511D81A9E6C8500147676 /* Frameworks */ = {
62 | isa = PBXFrameworksBuildPhase;
63 | buildActionMask = 2147483647;
64 | files = (
65 | 9E7303A120C9E58900D6900B /* libRollbar.a in Frameworks */,
66 | );
67 | runOnlyForDeploymentPostprocessing = 0;
68 | };
69 | /* End PBXFrameworksBuildPhase section */
70 |
71 | /* Begin PBXGroup section */
72 | 134814211AA4EA7D00B7C361 /* Products */ = {
73 | isa = PBXGroup;
74 | children = (
75 | 134814201AA4EA6300B7C361 /* libRollbarReactNative.a */,
76 | );
77 | name = Products;
78 | sourceTree = "";
79 | };
80 | 58B511D21A9E6C8500147676 = {
81 | isa = PBXGroup;
82 | children = (
83 | B3E7B5881CC2AC0600A0062D /* RollbarReactNative.h */,
84 | B3E7B5891CC2AC0600A0062D /* RollbarReactNative.m */,
85 | 9E0FADDA20C9DE9A002298F4 /* Rollbar.xcodeproj */,
86 | 134814211AA4EA7D00B7C361 /* Products */,
87 | 9E0FADE720C9DEB5002298F4 /* Frameworks */,
88 | );
89 | sourceTree = "";
90 | };
91 | 9E0FADDB20C9DE9A002298F4 /* Products */ = {
92 | isa = PBXGroup;
93 | children = (
94 | 9E0FADE220C9DE9A002298F4 /* libRollbar.a */,
95 | 9E0FADE420C9DE9A002298F4 /* RollbarTests.xctest */,
96 | 9E0FADE620C9DE9A002298F4 /* Rollbar.framework */,
97 | );
98 | name = Products;
99 | sourceTree = "";
100 | };
101 | 9E0FADE720C9DEB5002298F4 /* Frameworks */ = {
102 | isa = PBXGroup;
103 | children = (
104 | );
105 | name = Frameworks;
106 | sourceTree = "";
107 | };
108 | /* End PBXGroup section */
109 |
110 | /* Begin PBXNativeTarget section */
111 | 58B511DA1A9E6C8500147676 /* RollbarReactNative */ = {
112 | isa = PBXNativeTarget;
113 | buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RollbarReactNative" */;
114 | buildPhases = (
115 | 58B511D91A9E6C8500147676 /* Copy Headers */,
116 | 58B511D81A9E6C8500147676 /* Frameworks */,
117 | 58B511D71A9E6C8500147676 /* Sources */,
118 | );
119 | buildRules = (
120 | );
121 | dependencies = (
122 | );
123 | name = RollbarReactNative;
124 | productName = RCTDataManager;
125 | productReference = 134814201AA4EA6300B7C361 /* libRollbarReactNative.a */;
126 | productType = "com.apple.product-type.library.static";
127 | };
128 | /* End PBXNativeTarget section */
129 |
130 | /* Begin PBXProject section */
131 | 58B511D31A9E6C8500147676 /* Project object */ = {
132 | isa = PBXProject;
133 | attributes = {
134 | LastUpgradeCheck = 0830;
135 | ORGANIZATIONNAME = Facebook;
136 | TargetAttributes = {
137 | 58B511DA1A9E6C8500147676 = {
138 | CreatedOnToolsVersion = 6.1.1;
139 | };
140 | };
141 | };
142 | buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RollbarReactNative" */;
143 | compatibilityVersion = "Xcode 3.2";
144 | developmentRegion = English;
145 | hasScannedForEncodings = 0;
146 | knownRegions = (
147 | English,
148 | en,
149 | );
150 | mainGroup = 58B511D21A9E6C8500147676;
151 | productRefGroup = 58B511D21A9E6C8500147676;
152 | projectDirPath = "";
153 | projectReferences = (
154 | {
155 | ProductGroup = 9E0FADDB20C9DE9A002298F4 /* Products */;
156 | ProjectRef = 9E0FADDA20C9DE9A002298F4 /* Rollbar.xcodeproj */;
157 | },
158 | );
159 | projectRoot = "";
160 | targets = (
161 | 58B511DA1A9E6C8500147676 /* RollbarReactNative */,
162 | );
163 | };
164 | /* End PBXProject section */
165 |
166 | /* Begin PBXReferenceProxy section */
167 | 9E0FADE220C9DE9A002298F4 /* libRollbar.a */ = {
168 | isa = PBXReferenceProxy;
169 | fileType = archive.ar;
170 | path = libRollbar.a;
171 | remoteRef = 9E0FADE120C9DE9A002298F4 /* PBXContainerItemProxy */;
172 | sourceTree = BUILT_PRODUCTS_DIR;
173 | };
174 | 9E0FADE420C9DE9A002298F4 /* RollbarTests.xctest */ = {
175 | isa = PBXReferenceProxy;
176 | fileType = wrapper.cfbundle;
177 | path = RollbarTests.xctest;
178 | remoteRef = 9E0FADE320C9DE9A002298F4 /* PBXContainerItemProxy */;
179 | sourceTree = BUILT_PRODUCTS_DIR;
180 | };
181 | 9E0FADE620C9DE9A002298F4 /* Rollbar.framework */ = {
182 | isa = PBXReferenceProxy;
183 | fileType = wrapper.framework;
184 | path = Rollbar.framework;
185 | remoteRef = 9E0FADE520C9DE9A002298F4 /* PBXContainerItemProxy */;
186 | sourceTree = BUILT_PRODUCTS_DIR;
187 | };
188 | /* End PBXReferenceProxy section */
189 |
190 | /* Begin PBXSourcesBuildPhase section */
191 | 58B511D71A9E6C8500147676 /* Sources */ = {
192 | isa = PBXSourcesBuildPhase;
193 | buildActionMask = 2147483647;
194 | files = (
195 | B3E7B58A1CC2AC0600A0062D /* RollbarReactNative.m in Sources */,
196 | );
197 | runOnlyForDeploymentPostprocessing = 0;
198 | };
199 | /* End PBXSourcesBuildPhase section */
200 |
201 | /* Begin XCBuildConfiguration section */
202 | 58B511ED1A9E6C8500147676 /* Debug */ = {
203 | isa = XCBuildConfiguration;
204 | buildSettings = {
205 | ALWAYS_SEARCH_USER_PATHS = NO;
206 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
207 | CLANG_CXX_LIBRARY = "libc++";
208 | CLANG_ENABLE_MODULES = YES;
209 | CLANG_ENABLE_OBJC_ARC = YES;
210 | CLANG_WARN_BOOL_CONVERSION = YES;
211 | CLANG_WARN_CONSTANT_CONVERSION = YES;
212 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
213 | CLANG_WARN_EMPTY_BODY = YES;
214 | CLANG_WARN_ENUM_CONVERSION = YES;
215 | CLANG_WARN_INFINITE_RECURSION = YES;
216 | CLANG_WARN_INT_CONVERSION = YES;
217 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
218 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
219 | CLANG_WARN_UNREACHABLE_CODE = YES;
220 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
221 | COPY_PHASE_STRIP = NO;
222 | ENABLE_STRICT_OBJC_MSGSEND = YES;
223 | ENABLE_TESTABILITY = YES;
224 | FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/rollbar-react-native/ios/**";
225 | GCC_C_LANGUAGE_STANDARD = gnu99;
226 | GCC_DYNAMIC_NO_PIC = NO;
227 | GCC_NO_COMMON_BLOCKS = YES;
228 | GCC_OPTIMIZATION_LEVEL = 0;
229 | GCC_PREPROCESSOR_DEFINITIONS = (
230 | "DEBUG=1",
231 | "$(inherited)",
232 | );
233 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
234 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
235 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
236 | GCC_WARN_UNDECLARED_SELECTOR = YES;
237 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
238 | GCC_WARN_UNUSED_FUNCTION = YES;
239 | GCC_WARN_UNUSED_VARIABLE = YES;
240 | HEADER_SEARCH_PATHS = "$(SRCROOT)/../node_modules/rollbar-react-native/ios";
241 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
242 | LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../node_modules/rollbar-react-native/ios";
243 | MTL_ENABLE_DEBUG_INFO = YES;
244 | ONLY_ACTIVE_ARCH = YES;
245 | SDKROOT = iphoneos;
246 | };
247 | name = Debug;
248 | };
249 | 58B511EE1A9E6C8500147676 /* Release */ = {
250 | isa = XCBuildConfiguration;
251 | buildSettings = {
252 | ALWAYS_SEARCH_USER_PATHS = NO;
253 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
254 | CLANG_CXX_LIBRARY = "libc++";
255 | CLANG_ENABLE_MODULES = YES;
256 | CLANG_ENABLE_OBJC_ARC = YES;
257 | CLANG_WARN_BOOL_CONVERSION = YES;
258 | CLANG_WARN_CONSTANT_CONVERSION = YES;
259 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
260 | CLANG_WARN_EMPTY_BODY = YES;
261 | CLANG_WARN_ENUM_CONVERSION = YES;
262 | CLANG_WARN_INFINITE_RECURSION = YES;
263 | CLANG_WARN_INT_CONVERSION = YES;
264 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
265 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
266 | CLANG_WARN_UNREACHABLE_CODE = YES;
267 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
268 | COPY_PHASE_STRIP = YES;
269 | ENABLE_NS_ASSERTIONS = NO;
270 | ENABLE_STRICT_OBJC_MSGSEND = YES;
271 | FRAMEWORK_SEARCH_PATHS = "$(SRCROOT)/../node_modules/rollbar-react-native/ios/**";
272 | GCC_C_LANGUAGE_STANDARD = gnu99;
273 | GCC_NO_COMMON_BLOCKS = YES;
274 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
275 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
276 | GCC_WARN_UNDECLARED_SELECTOR = YES;
277 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
278 | GCC_WARN_UNUSED_FUNCTION = YES;
279 | GCC_WARN_UNUSED_VARIABLE = YES;
280 | HEADER_SEARCH_PATHS = "$(SRCROOT)/../node_modules/rollbar-react-native/ios";
281 | IPHONEOS_DEPLOYMENT_TARGET = 8.0;
282 | LIBRARY_SEARCH_PATHS = "$(SRCROOT)/../node_modules/rollbar-react-native/ios";
283 | MTL_ENABLE_DEBUG_INFO = NO;
284 | SDKROOT = iphoneos;
285 | VALIDATE_PRODUCT = YES;
286 | };
287 | name = Release;
288 | };
289 | 58B511F01A9E6C8500147676 /* Debug */ = {
290 | isa = XCBuildConfiguration;
291 | buildSettings = {
292 | CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;
293 | CLANG_MODULES_AUTOLINK = YES;
294 | FRAMEWORK_SEARCH_PATHS = (
295 | "$(inherited)",
296 | "$(PROJECT_DIR)",
297 | "$(SRCROOT)/**",
298 | );
299 | HEADER_SEARCH_PATHS = (
300 | "$(inherited)",
301 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
302 | "$(SRCROOT)/../../../React/**",
303 | "$(SRCROOT)/../../react-native/React/**",
304 | "$(SRCROOT)/**",
305 | );
306 | LIBRARY_SEARCH_PATHS = (
307 | "$(inherited)",
308 | "$(SRCROOT)",
309 | );
310 | "OTHER_CFLAGS[arch=*]" = (
311 | "-fmodules",
312 | "-fcxx-modules",
313 | );
314 | "OTHER_CPLUSPLUSFLAGS[arch=*]" = "$(OTHER_CFLAGS)";
315 | OTHER_LDFLAGS = "-ObjC";
316 | PRODUCT_NAME = RollbarReactNative;
317 | SKIP_INSTALL = YES;
318 | };
319 | name = Debug;
320 | };
321 | 58B511F11A9E6C8500147676 /* Release */ = {
322 | isa = XCBuildConfiguration;
323 | buildSettings = {
324 | CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES;
325 | CLANG_MODULES_AUTOLINK = YES;
326 | FRAMEWORK_SEARCH_PATHS = (
327 | "$(inherited)",
328 | "$(PROJECT_DIR)",
329 | "$(SRCROOT)/**",
330 | );
331 | HEADER_SEARCH_PATHS = (
332 | "$(inherited)",
333 | /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
334 | "$(SRCROOT)/../../../React/**",
335 | "$(SRCROOT)/../../react-native/React/**",
336 | "$(SRCROOT)/**",
337 | );
338 | LIBRARY_SEARCH_PATHS = (
339 | "$(inherited)",
340 | "$(SRCROOT)",
341 | );
342 | "OTHER_CFLAGS[arch=*]" = (
343 | "-fmodules",
344 | "-fcxx-modules",
345 | );
346 | "OTHER_CPLUSPLUSFLAGS[arch=*]" = "$(OTHER_CFLAGS)";
347 | OTHER_LDFLAGS = "-ObjC";
348 | PRODUCT_NAME = RollbarReactNative;
349 | SKIP_INSTALL = YES;
350 | };
351 | name = Release;
352 | };
353 | /* End XCBuildConfiguration section */
354 |
355 | /* Begin XCConfigurationList section */
356 | 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RollbarReactNative" */ = {
357 | isa = XCConfigurationList;
358 | buildConfigurations = (
359 | 58B511ED1A9E6C8500147676 /* Debug */,
360 | 58B511EE1A9E6C8500147676 /* Release */,
361 | );
362 | defaultConfigurationIsVisible = 0;
363 | defaultConfigurationName = Release;
364 | };
365 | 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RollbarReactNative" */ = {
366 | isa = XCConfigurationList;
367 | buildConfigurations = (
368 | 58B511F01A9E6C8500147676 /* Debug */,
369 | 58B511F11A9E6C8500147676 /* Release */,
370 | );
371 | defaultConfigurationIsVisible = 0;
372 | defaultConfigurationName = Release;
373 | };
374 | /* End XCConfigurationList section */
375 | };
376 | rootObject = 58B511D31A9E6C8500147676 /* Project object */;
377 | }
378 |
--------------------------------------------------------------------------------
/iosFrameworks.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rollbar/rollbar-react-native/1fb76598b1e09b1ab9da6a879e5dfcaa69b045e3/iosFrameworks.png
--------------------------------------------------------------------------------
/lib/Client.js:
--------------------------------------------------------------------------------
1 | Object.defineProperty(exports,"__esModule",{value:true});exports.Client=void 0;var _reactNative=require("react-native");var _Rollbar=_interopRequireDefault(require("./Rollbar"));var _merge=require("./merge");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function");}var NativeClient=_reactNative.NativeModules.RollbarReactNative;var Client=function Client(config){var _this=this;_classCallCheck(this,Client);this.captureUncaughtExceptions=function(){if(_this.isNative&&typeof ErrorUtils!==undefined){var previousHandler=ErrorUtils.getGlobalHandler();ErrorUtils.setGlobalHandler(function(error,isFatal){if(_this.config.options.captureUncaught&&_this.config.shouldSend()){_this.error(error,undefined,function(queued){if(previousHandler){previousHandler(error,isFatal);}});}else if(previousHandler){previousHandler(error,isFatal);}});}};this.captureUnhandledRejections=function(){var tracking=require('promise/setimmediate/rejection-tracking');var client=_this;tracking.enable({allRejections:true,onUnhandled:function onUnhandled(id,error){client.error(error);},onHandled:function onHandled(){}});};this.log=function(obj,extra,callback){if(_this.isNative&&!_this.config.shouldSend()){if(callback){callback(false);}return;}_this.rollbar.log(obj,extra,callback);};this.debug=function(obj,extra,callback){return _this.rollbar.debug(obj,extra,callback);};this.info=function(obj,extra,callback){return _this.rollbar.info(obj,extra,callback);};this.warning=function(obj,extra,callback){return _this.rollbar.warning(obj,extra,callback);};this.error=function(obj,extra,callback){return _this.rollbar.error(obj,extra,callback);};this.critical=function(obj,extra,callback){return _this.rollbar.critical(obj,extra,callback);};this.setPerson=function(id,name,email){_this.rollbar.configure({},{person:{id:id,name:name,email:email}});if(NativeClient){NativeClient.setPerson({id:id,name:name,email:email});}};this.clearPerson=function(){_this.rollbar.configure({},{person:{}});if(NativeClient){NativeClient.clearPerson();}};this.isNative=_reactNative.Platform.OS!=='web';if(this.isNative){this.config=new Configuration(config);this.config.setPlatform(_reactNative.Platform.OS);if(NativeClient){NativeClient.init(this.config.toJSON());}this.rollbar=new _Rollbar.default(this.config.toJSON());this.captureUncaughtExceptions();if(this.config.captureUnhandledRejections){this.captureUnhandledRejections();}}else{this.rollbar=new _Rollbar.default(config);}};exports.Client=Client;var Configuration=function Configuration(options){var _this2=this;_classCallCheck(this,Configuration);this.shouldSend=function(){return!_this2.releaseStage||!_this2.enabledReleaseStages||_this2.enabledReleaseStages.includes(_this2.releaseStage);};this.setPlatform=function(platform){if(_this2.platform===undefined){_this2.platform=platform;}};this.payloadOptions=function(){if(!_this2.captureDeviceInfo){return{};}return{client:{os:_this2.deviceAttributes()}};};this.deviceAttributes=function(){if(NativeClient){return JSON.parse(NativeClient.deviceAttributes());}else{return{};}};this.toJSON=function(){return(0,_merge.merge)(_this2.options,{platform:_this2.platform});};var pkgData=require('../package.json');this.captureDeviceInfo=options.captureDeviceInfo===undefined?false:options.captureDeviceInfo;this.options=(0,_merge.merge)(options||{},{payload:(0,_merge.merge)(options.payload,this.payloadOptions()),notifier:{name:'rollbar-react-native',version:pkgData['version']}});};
2 | //# sourceMappingURL=Client.js.map
--------------------------------------------------------------------------------
/lib/Client.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"Client.js","names":["_reactNative","require","_Rollbar","_interopRequireDefault","_merge","e","__esModule","default","_classCallCheck","a","n","TypeError","NativeClient","NativeModules","RollbarReactNative","Client","config","_this","captureUncaughtExceptions","isNative","ErrorUtils","undefined","previousHandler","getGlobalHandler","setGlobalHandler","error","isFatal","options","captureUncaught","shouldSend","queued","captureUnhandledRejections","tracking","client","enable","allRejections","onUnhandled","id","onHandled","log","obj","extra","callback","rollbar","debug","info","warning","critical","setPerson","name","email","configure","person","clearPerson","Platform","OS","Configuration","setPlatform","init","toJSON","Rollbar","exports","_this2","releaseStage","enabledReleaseStages","includes","platform","payloadOptions","captureDeviceInfo","os","deviceAttributes","JSON","parse","merge","pkgData","payload","notifier","version"],"sources":["../src/Client.js"],"sourcesContent":["import { Platform, NativeModules } from 'react-native';\nimport Rollbar from './Rollbar';\nimport { merge } from './merge';\n\nconst NativeClient = NativeModules.RollbarReactNative;\n\nexport class Client {\n constructor(config) {\n this.isNative = Platform.OS !== 'web';\n\n if (this.isNative) {\n this.config = new Configuration(config);\n this.config.setPlatform(Platform.OS);\n\n if (NativeClient) {\n NativeClient.init(this.config.toJSON());\n }\n\n this.rollbar = new Rollbar(this.config.toJSON());\n\n this.captureUncaughtExceptions();\n if (this.config.captureUnhandledRejections) {\n this.captureUnhandledRejections();\n }\n } else {\n this.rollbar = new Rollbar(config);\n }\n }\n\n captureUncaughtExceptions = () => {\n if (this.isNative && typeof ErrorUtils !== undefined) {\n const previousHandler = ErrorUtils.getGlobalHandler();\n\n ErrorUtils.setGlobalHandler((error, isFatal) => {\n if (this.config.options.captureUncaught && this.config.shouldSend()) {\n this.error(error, undefined, (queued) => {\n if (previousHandler) {\n previousHandler(error, isFatal);\n }\n });\n } else if (previousHandler) {\n previousHandler(error, isFatal);\n }\n });\n }\n }\n\n captureUnhandledRejections = () => {\n const tracking = require('promise/setimmediate/rejection-tracking');\n const client = this;\n tracking.enable({\n allRejections: true,\n onUnhandled: function(id, error) { client.error(error); },\n onHandled: function() {}\n });\n }\n\n log = (obj, extra, callback) => {\n if (this.isNative && !this.config.shouldSend()) {\n if (callback) {\n callback(false);\n }\n return;\n }\n\n this.rollbar.log(obj, extra, callback);\n }\n\n debug = (obj, extra, callback) => {\n return this.rollbar.debug(obj, extra, callback);\n }\n\n info = (obj, extra, callback) => {\n return this.rollbar.info(obj, extra, callback);\n }\n\n warning = (obj, extra, callback) => {\n return this.rollbar.warning(obj, extra, callback);\n }\n\n error = (obj, extra, callback) => {\n return this.rollbar.error(obj, extra, callback);\n }\n\n critical = (obj, extra, callback) => {\n return this.rollbar.critical(obj, extra, callback);\n }\n\n setPerson = (id, name, email) => {\n this.rollbar.configure({}, {person: {id, name, email}});\n if (NativeClient) {\n NativeClient.setPerson({id, name, email});\n }\n }\n\n clearPerson = () => {\n this.rollbar.configure({}, {person: {}});\n if (NativeClient) {\n NativeClient.clearPerson();\n }\n }\n}\n\nclass Configuration {\n constructor(options) {\n const pkgData = require('../package.json');\n\n // Ensure captureDeviceInfo is set before calling payloadOptions() below.\n this.captureDeviceInfo = options.captureDeviceInfo === undefined ? false : options.captureDeviceInfo;\n\n this.options = merge(options || {}, {\n payload: merge(options.payload, this.payloadOptions()),\n notifier: {\n name: 'rollbar-react-native',\n version: pkgData['version']\n }\n });\n }\n\n shouldSend = () => {\n return !this.releaseStage ||\n !this.enabledReleaseStages ||\n this.enabledReleaseStages.includes(this.releaseStage);\n }\n\n setPlatform = (platform) => {\n if (this.platform === undefined) {\n this.platform = platform;\n }\n }\n\n payloadOptions = () => {\n if (!this.captureDeviceInfo) {\n return {};\n }\n\n return {\n client: {\n os: this.deviceAttributes()\n }\n }\n }\n\n deviceAttributes = () => {\n if (NativeClient) {\n return JSON.parse(NativeClient.deviceAttributes());\n } else {\n return {};\n }\n }\n\n toJSON = () => {\n return merge(this.options, {\n platform: this.platform\n });\n }\n}\n"],"mappings":"+EAAA,IAAAA,YAAA,CAAAC,OAAA,iBACA,IAAAC,QAAA,CAAAC,sBAAA,CAAAF,OAAA,eACA,IAAAG,MAAA,CAAAH,OAAA,YAAgC,SAAAE,uBAAAE,CAAA,SAAAA,CAAA,EAAAA,CAAA,CAAAC,UAAA,CAAAD,CAAA,EAAAE,OAAA,CAAAF,CAAA,YAAAG,gBAAAC,CAAA,CAAAC,CAAA,OAAAD,CAAA,YAAAC,CAAA,YAAAC,SAAA,uCAEhC,GAAM,CAAAC,YAAY,CAAGC,0BAAa,CAACC,kBAAkB,CAAC,GAEzC,CAAAC,MAAM,CACjB,SAAAA,OAAYC,MAAM,CAAE,KAAAC,KAAA,MAAAT,eAAA,MAAAO,MAAA,OAsBpBG,yBAAyB,CAAG,UAAM,CAChC,GAAID,KAAI,CAACE,QAAQ,EAAI,MAAO,CAAAC,UAAU,GAAKC,SAAS,CAAE,CACpD,GAAM,CAAAC,eAAe,CAAGF,UAAU,CAACG,gBAAgB,CAAC,CAAC,CAErDH,UAAU,CAACI,gBAAgB,CAAC,SAACC,KAAK,CAAEC,OAAO,CAAK,CAC9C,GAAIT,KAAI,CAACD,MAAM,CAACW,OAAO,CAACC,eAAe,EAAIX,KAAI,CAACD,MAAM,CAACa,UAAU,CAAC,CAAC,CAAE,CACnEZ,KAAI,CAACQ,KAAK,CAACA,KAAK,CAAEJ,SAAS,CAAE,SAACS,MAAM,CAAK,CACvC,GAAIR,eAAe,CAAE,CACnBA,eAAe,CAACG,KAAK,CAAEC,OAAO,CAAC,CACjC,CACF,CAAC,CAAC,CACJ,CAAC,IAAM,IAAIJ,eAAe,CAAE,CAC1BA,eAAe,CAACG,KAAK,CAAEC,OAAO,CAAC,CACjC,CACF,CAAC,CAAC,CACJ,CACF,CAAC,MAEDK,0BAA0B,CAAG,UAAM,CACjC,GAAM,CAAAC,QAAQ,CAAG/B,OAAO,CAAC,yCAAyC,CAAC,CACnE,GAAM,CAAAgC,MAAM,CAAGhB,KAAI,CACnBe,QAAQ,CAACE,MAAM,CAAC,CACdC,aAAa,CAAE,IAAI,CACnBC,WAAW,CAAE,SAAAA,YAASC,EAAE,CAAEZ,KAAK,CAAE,CAAEQ,MAAM,CAACR,KAAK,CAACA,KAAK,CAAC,CAAE,CAAC,CACzDa,SAAS,CAAE,SAAAA,UAAA,CAAW,CAAC,CACzB,CAAC,CAAC,CACJ,CAAC,MAEDC,GAAG,CAAG,SAACC,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAK,CAC9B,GAAIzB,KAAI,CAACE,QAAQ,EAAI,CAACF,KAAI,CAACD,MAAM,CAACa,UAAU,CAAC,CAAC,CAAE,CAC9C,GAAIa,QAAQ,CAAE,CACZA,QAAQ,CAAC,KAAK,CAAC,CACjB,CACA,OACF,CAEAzB,KAAI,CAAC0B,OAAO,CAACJ,GAAG,CAACC,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAC,CACxC,CAAC,MAEDE,KAAK,CAAG,SAACJ,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAK,CAChC,MAAO,CAAAzB,KAAI,CAAC0B,OAAO,CAACC,KAAK,CAACJ,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAC,CACjD,CAAC,MAEDG,IAAI,CAAG,SAACL,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAK,CAC/B,MAAO,CAAAzB,KAAI,CAAC0B,OAAO,CAACE,IAAI,CAACL,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAC,CAChD,CAAC,MAEDI,OAAO,CAAG,SAACN,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAK,CAClC,MAAO,CAAAzB,KAAI,CAAC0B,OAAO,CAACG,OAAO,CAACN,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAC,CACnD,CAAC,MAEDjB,KAAK,CAAG,SAACe,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAK,CAChC,MAAO,CAAAzB,KAAI,CAAC0B,OAAO,CAAClB,KAAK,CAACe,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAC,CACjD,CAAC,MAEDK,QAAQ,CAAG,SAACP,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAK,CACnC,MAAO,CAAAzB,KAAI,CAAC0B,OAAO,CAACI,QAAQ,CAACP,GAAG,CAAEC,KAAK,CAAEC,QAAQ,CAAC,CACpD,CAAC,MAEDM,SAAS,CAAG,SAACX,EAAE,CAAEY,IAAI,CAAEC,KAAK,CAAK,CAC/BjC,KAAI,CAAC0B,OAAO,CAACQ,SAAS,CAAC,CAAC,CAAC,CAAE,CAACC,MAAM,CAAE,CAACf,EAAE,CAAFA,EAAE,CAAEY,IAAI,CAAJA,IAAI,CAAEC,KAAK,CAALA,KAAK,CAAC,CAAC,CAAC,CACvD,GAAItC,YAAY,CAAE,CAChBA,YAAY,CAACoC,SAAS,CAAC,CAACX,EAAE,CAAFA,EAAE,CAAEY,IAAI,CAAJA,IAAI,CAAEC,KAAK,CAALA,KAAK,CAAC,CAAC,CAC3C,CACF,CAAC,MAEDG,WAAW,CAAG,UAAM,CAClBpC,KAAI,CAAC0B,OAAO,CAACQ,SAAS,CAAC,CAAC,CAAC,CAAE,CAACC,MAAM,CAAE,CAAC,CAAC,CAAC,CAAC,CACxC,GAAIxC,YAAY,CAAE,CAChBA,YAAY,CAACyC,WAAW,CAAC,CAAC,CAC5B,CACF,CAAC,CA5FC,IAAI,CAAClC,QAAQ,CAAGmC,qBAAQ,CAACC,EAAE,GAAK,KAAK,CAErC,GAAI,IAAI,CAACpC,QAAQ,CAAE,CACjB,IAAI,CAACH,MAAM,CAAG,GAAI,CAAAwC,aAAa,CAACxC,MAAM,CAAC,CACvC,IAAI,CAACA,MAAM,CAACyC,WAAW,CAACH,qBAAQ,CAACC,EAAE,CAAC,CAEpC,GAAI3C,YAAY,CAAE,CAChBA,YAAY,CAAC8C,IAAI,CAAC,IAAI,CAAC1C,MAAM,CAAC2C,MAAM,CAAC,CAAC,CAAC,CACzC,CAEA,IAAI,CAAChB,OAAO,CAAG,GAAI,CAAAiB,gBAAO,CAAC,IAAI,CAAC5C,MAAM,CAAC2C,MAAM,CAAC,CAAC,CAAC,CAEhD,IAAI,CAACzC,yBAAyB,CAAC,CAAC,CAChC,GAAI,IAAI,CAACF,MAAM,CAACe,0BAA0B,CAAE,CAC1C,IAAI,CAACA,0BAA0B,CAAC,CAAC,CACnC,CACF,CAAC,IAAM,CACL,IAAI,CAACY,OAAO,CAAG,GAAI,CAAAiB,gBAAO,CAAC5C,MAAM,CAAC,CACpC,CACF,CAAC,CAAA6C,OAAA,CAAA9C,MAAA,CAAAA,MAAA,IA4EG,CAAAyC,aAAa,CACjB,SAAAA,cAAY7B,OAAO,CAAE,KAAAmC,MAAA,MAAAtD,eAAA,MAAAgD,aAAA,OAerB3B,UAAU,CAAG,UAAM,CACjB,MAAO,CAACiC,MAAI,CAACC,YAAY,EACvB,CAACD,MAAI,CAACE,oBAAoB,EAC1BF,MAAI,CAACE,oBAAoB,CAACC,QAAQ,CAACH,MAAI,CAACC,YAAY,CAAC,CACzD,CAAC,MAEDN,WAAW,CAAG,SAACS,QAAQ,CAAK,CAC1B,GAAIJ,MAAI,CAACI,QAAQ,GAAK7C,SAAS,CAAE,CAC/ByC,MAAI,CAACI,QAAQ,CAAGA,QAAQ,CAC1B,CACF,CAAC,MAEDC,cAAc,CAAG,UAAM,CACrB,GAAI,CAACL,MAAI,CAACM,iBAAiB,CAAE,CAC3B,MAAO,CAAC,CAAC,CACX,CAEA,MAAO,CACLnC,MAAM,CAAE,CACNoC,EAAE,CAAEP,MAAI,CAACQ,gBAAgB,CAAC,CAC5B,CACF,CAAC,CACH,CAAC,MAEDA,gBAAgB,CAAG,UAAM,CACvB,GAAI1D,YAAY,CAAE,CAChB,MAAO,CAAA2D,IAAI,CAACC,KAAK,CAAC5D,YAAY,CAAC0D,gBAAgB,CAAC,CAAC,CAAC,CACpD,CAAC,IAAM,CACL,MAAO,CAAC,CAAC,CACX,CACF,CAAC,MAEDX,MAAM,CAAG,UAAM,CACb,MAAO,GAAAc,YAAK,EAACX,MAAI,CAACnC,OAAO,CAAE,CACzBuC,QAAQ,CAAEJ,MAAI,CAACI,QACjB,CAAC,CAAC,CACJ,CAAC,CAlDC,GAAM,CAAAQ,OAAO,CAAGzE,OAAO,CAAC,iBAAiB,CAAC,CAG1C,IAAI,CAACmE,iBAAiB,CAAGzC,OAAO,CAACyC,iBAAiB,GAAK/C,SAAS,CAAG,KAAK,CAAGM,OAAO,CAACyC,iBAAiB,CAEpG,IAAI,CAACzC,OAAO,CAAG,GAAA8C,YAAK,EAAC9C,OAAO,EAAI,CAAC,CAAC,CAAE,CAClCgD,OAAO,CAAE,GAAAF,YAAK,EAAC9C,OAAO,CAACgD,OAAO,CAAE,IAAI,CAACR,cAAc,CAAC,CAAC,CAAC,CACtDS,QAAQ,CAAE,CACR3B,IAAI,CAAE,sBAAsB,CAC5B4B,OAAO,CAAEH,OAAO,CAAC,SAAS,CAC5B,CACF,CAAC,CAAC,CACJ,CAAC","ignoreList":[]}
--------------------------------------------------------------------------------
/lib/Rollbar.js:
--------------------------------------------------------------------------------
1 | Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _rollbar=_interopRequireDefault(require("rollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}var _default=_rollbar.default;exports.default=_default;
2 | //# sourceMappingURL=Rollbar.js.map
--------------------------------------------------------------------------------
/lib/Rollbar.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"Rollbar.js","names":["_rollbar","_interopRequireDefault","require","e","__esModule","default","_default","Rollbar","exports"],"sources":["../src/Rollbar.js"],"sourcesContent":["import Rollbar from 'rollbar';\n\nexport default Rollbar;\n"],"mappings":"gFAAA,IAAAA,QAAA,CAAAC,sBAAA,CAAAC,OAAA,aAA8B,SAAAD,uBAAAE,CAAA,SAAAA,CAAA,EAAAA,CAAA,CAAAC,UAAA,CAAAD,CAAA,EAAAE,OAAA,CAAAF,CAAA,OAAAG,QAAA,CAEfC,gBAAO,CAAAC,OAAA,CAAAH,OAAA,CAAAC,QAAA","ignoreList":[]}
--------------------------------------------------------------------------------
/lib/Rollbar.native.js:
--------------------------------------------------------------------------------
1 | Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _rollbar=_interopRequireDefault(require("rollbar/src/react-native/rollbar"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}var _default=_rollbar.default;exports.default=_default;
2 | //# sourceMappingURL=Rollbar.native.js.map
--------------------------------------------------------------------------------
/lib/Rollbar.native.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"Rollbar.native.js","names":["_rollbar","_interopRequireDefault","require","e","__esModule","default","_default","Rollbar","exports"],"sources":["../src/Rollbar.native.js"],"sourcesContent":["import Rollbar from 'rollbar/src/react-native/rollbar';\n\nexport default Rollbar;\n"],"mappings":"gFAAA,IAAAA,QAAA,CAAAC,sBAAA,CAAAC,OAAA,sCAAuD,SAAAD,uBAAAE,CAAA,SAAAA,CAAA,EAAAA,CAAA,CAAAC,UAAA,CAAAD,CAAA,EAAAE,OAAA,CAAAF,CAAA,OAAAG,QAAA,CAExCC,gBAAO,CAAAC,OAAA,CAAAH,OAAA,CAAAC,QAAA","ignoreList":[]}
--------------------------------------------------------------------------------
/lib/merge.js:
--------------------------------------------------------------------------------
1 | 'use strict';Object.defineProperty(exports,"__esModule",{value:true});exports.merge=merge;var hasOwn=Object.prototype.hasOwnProperty;var toStr=Object.prototype.toString;var isPlainObject=function isPlainObject(obj){if(!obj||toStr.call(obj)!=='[object Object]'){return false;}var hasOwnConstructor=hasOwn.call(obj,'constructor');var hasIsPrototypeOf=obj.constructor&&obj.constructor.prototype&&hasOwn.call(obj.constructor.prototype,'isPrototypeOf');if(obj.constructor&&!hasOwnConstructor&&!hasIsPrototypeOf){return false;}var key;for(key in obj){}return typeof key==='undefined'||hasOwn.call(obj,key);};function merge(){var i,src,copy,clone,name,result={},current=null,length=arguments.length;for(i=0;i=0.50",
16 | "promise": ">=7.1.1",
17 | "rollbar": "^2.26.1"
18 | },
19 | "dependencies": {
20 | "buffer": "^4.9.1 || ^5.0.7",
21 | "url": "^0.11.0"
22 | },
23 | "devDependencies": {
24 | "@babel/cli": "^7.10.5",
25 | "@babel/core": "^7.11.1",
26 | "babel-preset-react-native": "^5.0.2"
27 | },
28 | "rnpm": {
29 | "android": {
30 | "packageInstance": "RollbarReactNative.getPackage()",
31 | "packageImportPath": "import com.rollbar.RollbarReactNative;"
32 | }
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/react-native.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | dependency: {
3 | platforms: {
4 | android: {
5 | "packageInstance": "RollbarReactNative.getPackage()",
6 | "packageImportPath": "import com.rollbar.RollbarReactNative;"
7 | },
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/src/Client.js:
--------------------------------------------------------------------------------
1 | import { Platform, NativeModules } from 'react-native';
2 | import Rollbar from './Rollbar';
3 | import { merge } from './merge';
4 |
5 | const NativeClient = NativeModules.RollbarReactNative;
6 |
7 | export class Client {
8 | constructor(config) {
9 | this.isNative = Platform.OS !== 'web';
10 |
11 | if (this.isNative) {
12 | this.config = new Configuration(config);
13 | this.config.setPlatform(Platform.OS);
14 |
15 | if (NativeClient) {
16 | NativeClient.init(this.config.toJSON());
17 | }
18 |
19 | this.rollbar = new Rollbar(this.config.toJSON());
20 |
21 | this.captureUncaughtExceptions();
22 | if (this.config.captureUnhandledRejections) {
23 | this.captureUnhandledRejections();
24 | }
25 | } else {
26 | this.rollbar = new Rollbar(config);
27 | }
28 | }
29 |
30 | captureUncaughtExceptions = () => {
31 | if (this.isNative && typeof ErrorUtils !== undefined) {
32 | const previousHandler = ErrorUtils.getGlobalHandler();
33 |
34 | ErrorUtils.setGlobalHandler((error, isFatal) => {
35 | if (this.config.options.captureUncaught && this.config.shouldSend()) {
36 | this.error(error, undefined, (queued) => {
37 | if (previousHandler) {
38 | previousHandler(error, isFatal);
39 | }
40 | });
41 | } else if (previousHandler) {
42 | previousHandler(error, isFatal);
43 | }
44 | });
45 | }
46 | }
47 |
48 | captureUnhandledRejections = () => {
49 | const tracking = require('promise/setimmediate/rejection-tracking');
50 | const client = this;
51 | tracking.enable({
52 | allRejections: true,
53 | onUnhandled: function(id, error) { client.error(error); },
54 | onHandled: function() {}
55 | });
56 | }
57 |
58 | log = (obj, extra, callback) => {
59 | if (this.isNative && !this.config.shouldSend()) {
60 | if (callback) {
61 | callback(false);
62 | }
63 | return;
64 | }
65 |
66 | this.rollbar.log(obj, extra, callback);
67 | }
68 |
69 | debug = (obj, extra, callback) => {
70 | return this.rollbar.debug(obj, extra, callback);
71 | }
72 |
73 | info = (obj, extra, callback) => {
74 | return this.rollbar.info(obj, extra, callback);
75 | }
76 |
77 | warning = (obj, extra, callback) => {
78 | return this.rollbar.warning(obj, extra, callback);
79 | }
80 |
81 | error = (obj, extra, callback) => {
82 | return this.rollbar.error(obj, extra, callback);
83 | }
84 |
85 | critical = (obj, extra, callback) => {
86 | return this.rollbar.critical(obj, extra, callback);
87 | }
88 |
89 | setPerson = (id, name, email) => {
90 | this.rollbar.configure({}, {person: {id, name, email}});
91 | if (NativeClient) {
92 | NativeClient.setPerson({id, name, email});
93 | }
94 | }
95 |
96 | clearPerson = () => {
97 | this.rollbar.configure({}, {person: {}});
98 | if (NativeClient) {
99 | NativeClient.clearPerson();
100 | }
101 | }
102 | }
103 |
104 | class Configuration {
105 | constructor(options) {
106 | const pkgData = require('../package.json');
107 |
108 | // Ensure captureDeviceInfo is set before calling payloadOptions() below.
109 | this.captureDeviceInfo = options.captureDeviceInfo === undefined ? false : options.captureDeviceInfo;
110 |
111 | this.options = merge(options || {}, {
112 | payload: merge(options.payload, this.payloadOptions()),
113 | notifier: {
114 | name: 'rollbar-react-native',
115 | version: pkgData['version']
116 | }
117 | });
118 | }
119 |
120 | shouldSend = () => {
121 | return !this.releaseStage ||
122 | !this.enabledReleaseStages ||
123 | this.enabledReleaseStages.includes(this.releaseStage);
124 | }
125 |
126 | setPlatform = (platform) => {
127 | if (this.platform === undefined) {
128 | this.platform = platform;
129 | }
130 | }
131 |
132 | payloadOptions = () => {
133 | if (!this.captureDeviceInfo) {
134 | return {};
135 | }
136 |
137 | return {
138 | client: {
139 | os: this.deviceAttributes()
140 | }
141 | }
142 | }
143 |
144 | deviceAttributes = () => {
145 | if (NativeClient) {
146 | return JSON.parse(NativeClient.deviceAttributes());
147 | } else {
148 | return {};
149 | }
150 | }
151 |
152 | toJSON = () => {
153 | return merge(this.options, {
154 | platform: this.platform
155 | });
156 | }
157 | }
158 |
--------------------------------------------------------------------------------
/src/Rollbar.js:
--------------------------------------------------------------------------------
1 | import Rollbar from 'rollbar';
2 |
3 | export default Rollbar;
4 |
--------------------------------------------------------------------------------
/src/Rollbar.native.js:
--------------------------------------------------------------------------------
1 | import Rollbar from 'rollbar/src/react-native/rollbar';
2 |
3 | export default Rollbar;
4 |
--------------------------------------------------------------------------------
/src/merge.js:
--------------------------------------------------------------------------------
1 | 'use strict';
2 |
3 | var hasOwn = Object.prototype.hasOwnProperty;
4 | var toStr = Object.prototype.toString;
5 |
6 | var isPlainObject = function isPlainObject(obj) {
7 | if (!obj || toStr.call(obj) !== '[object Object]') {
8 | return false;
9 | }
10 |
11 | var hasOwnConstructor = hasOwn.call(obj, 'constructor');
12 | var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');
13 | // Not own constructor property must be Object
14 | if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {
15 | return false;
16 | }
17 |
18 | // Own properties are enumerated firstly, so to speed up,
19 | // if last one is own, then all properties are own.
20 | var key;
21 | for (key in obj) {/**/}
22 |
23 | return typeof key === 'undefined' || hasOwn.call(obj, key);
24 | };
25 |
26 | export function merge() {
27 | var i, src, copy, clone, name,
28 | result = {},
29 | current = null,
30 | length = arguments.length;
31 |
32 | for (i=0; i < length; i++) {
33 | current = arguments[i];
34 | if (current == null) {
35 | continue;
36 | }
37 |
38 | for (name in current) {
39 | src = result[name];
40 | copy = current[name];
41 | if (result !== copy) {
42 | if (copy && isPlainObject(copy)) {
43 | clone = src && isPlainObject(src) ? src : {};
44 | result[name] = merge(clone, copy);
45 | } else if (typeof copy !== 'undefined') {
46 | result[name] = copy;
47 | }
48 | }
49 | }
50 | }
51 | return result;
52 | }
53 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/cli@^7.10.5":
6 | version "7.10.5"
7 | resolved "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz"
8 | dependencies:
9 | commander "^4.0.1"
10 | convert-source-map "^1.1.0"
11 | fs-readdir-recursive "^1.1.0"
12 | glob "^7.0.0"
13 | lodash "^4.17.19"
14 | make-dir "^2.1.0"
15 | slash "^2.0.0"
16 | source-map "^0.5.0"
17 | optionalDependencies:
18 | chokidar "^2.1.8"
19 |
20 | "@babel/code-frame@7.0.0-beta.47":
21 | version "7.0.0-beta.47"
22 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0-beta.47.tgz"
23 | dependencies:
24 | "@babel/highlight" "7.0.0-beta.47"
25 |
26 | "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.24.7":
27 | version "7.24.7"
28 | resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz"
29 | integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
30 | dependencies:
31 | "@babel/highlight" "^7.24.7"
32 | picocolors "^1.0.0"
33 |
34 | "@babel/core@^7.11.1":
35 | version "7.11.4"
36 | resolved "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz"
37 | dependencies:
38 | "@babel/code-frame" "^7.10.4"
39 | "@babel/generator" "^7.11.4"
40 | "@babel/helper-module-transforms" "^7.11.0"
41 | "@babel/helpers" "^7.10.4"
42 | "@babel/parser" "^7.11.4"
43 | "@babel/template" "^7.10.4"
44 | "@babel/traverse" "^7.11.0"
45 | "@babel/types" "^7.11.0"
46 | convert-source-map "^1.7.0"
47 | debug "^4.1.0"
48 | gensync "^1.0.0-beta.1"
49 | json5 "^2.1.2"
50 | lodash "^4.17.19"
51 | resolve "^1.3.2"
52 | semver "^5.4.1"
53 | source-map "^0.5.0"
54 |
55 | "@babel/generator@7.0.0-beta.47":
56 | version "7.0.0-beta.47"
57 | resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.0.0-beta.47.tgz"
58 | dependencies:
59 | "@babel/types" "7.0.0-beta.47"
60 | jsesc "^2.5.1"
61 | lodash "^4.17.5"
62 | source-map "^0.5.0"
63 | trim-right "^1.0.1"
64 |
65 | "@babel/generator@^7.11.0", "@babel/generator@^7.11.4", "@babel/generator@^7.24.8":
66 | version "7.24.8"
67 | resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.8.tgz"
68 | integrity sha512-47DG+6F5SzOi0uEvK4wMShmn5yY0mVjVJoWTphdY2B4Rx9wHgjK7Yhtr0ru6nE+sn0v38mzrWOlah0p/YlHHOQ==
69 | dependencies:
70 | "@babel/types" "^7.24.8"
71 | "@jridgewell/gen-mapping" "^0.3.5"
72 | "@jridgewell/trace-mapping" "^0.3.25"
73 | jsesc "^2.5.1"
74 |
75 | "@babel/helper-annotate-as-pure@7.0.0-beta.47":
76 | version "7.0.0-beta.47"
77 | resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0-beta.47.tgz"
78 | dependencies:
79 | "@babel/types" "7.0.0-beta.47"
80 |
81 | "@babel/helper-builder-binary-assignment-operator-visitor@7.0.0-beta.47":
82 | version "7.0.0-beta.47"
83 | resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.0.0-beta.47.tgz"
84 | dependencies:
85 | "@babel/helper-explode-assignable-expression" "7.0.0-beta.47"
86 | "@babel/types" "7.0.0-beta.47"
87 |
88 | "@babel/helper-builder-react-jsx@7.0.0-beta.47":
89 | version "7.0.0-beta.47"
90 | resolved "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.0.0-beta.47.tgz"
91 | dependencies:
92 | "@babel/types" "7.0.0-beta.47"
93 | esutils "^2.0.0"
94 |
95 | "@babel/helper-call-delegate@7.0.0-beta.47":
96 | version "7.0.0-beta.47"
97 | resolved "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.0.0-beta.47.tgz"
98 | dependencies:
99 | "@babel/helper-hoist-variables" "7.0.0-beta.47"
100 | "@babel/traverse" "7.0.0-beta.47"
101 | "@babel/types" "7.0.0-beta.47"
102 |
103 | "@babel/helper-define-map@7.0.0-beta.47":
104 | version "7.0.0-beta.47"
105 | resolved "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.0.0-beta.47.tgz"
106 | dependencies:
107 | "@babel/helper-function-name" "7.0.0-beta.47"
108 | "@babel/types" "7.0.0-beta.47"
109 | lodash "^4.17.5"
110 |
111 | "@babel/helper-environment-visitor@^7.24.7":
112 | version "7.24.7"
113 | resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz"
114 | integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==
115 | dependencies:
116 | "@babel/types" "^7.24.7"
117 |
118 | "@babel/helper-explode-assignable-expression@7.0.0-beta.47":
119 | version "7.0.0-beta.47"
120 | resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.0.0-beta.47.tgz"
121 | dependencies:
122 | "@babel/traverse" "7.0.0-beta.47"
123 | "@babel/types" "7.0.0-beta.47"
124 |
125 | "@babel/helper-function-name@7.0.0-beta.47":
126 | version "7.0.0-beta.47"
127 | resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.0.0-beta.47.tgz"
128 | dependencies:
129 | "@babel/helper-get-function-arity" "7.0.0-beta.47"
130 | "@babel/template" "7.0.0-beta.47"
131 | "@babel/types" "7.0.0-beta.47"
132 |
133 | "@babel/helper-function-name@^7.10.4":
134 | version "7.10.4"
135 | resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz"
136 | dependencies:
137 | "@babel/helper-get-function-arity" "^7.10.4"
138 | "@babel/template" "^7.10.4"
139 | "@babel/types" "^7.10.4"
140 |
141 | "@babel/helper-function-name@^7.24.7":
142 | version "7.24.7"
143 | resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz"
144 | integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==
145 | dependencies:
146 | "@babel/template" "^7.24.7"
147 | "@babel/types" "^7.24.7"
148 |
149 | "@babel/helper-get-function-arity@7.0.0-beta.47":
150 | version "7.0.0-beta.47"
151 | resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0-beta.47.tgz"
152 | dependencies:
153 | "@babel/types" "7.0.0-beta.47"
154 |
155 | "@babel/helper-get-function-arity@^7.10.4":
156 | version "7.10.4"
157 | resolved "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz"
158 | dependencies:
159 | "@babel/types" "^7.10.4"
160 |
161 | "@babel/helper-hoist-variables@7.0.0-beta.47":
162 | version "7.0.0-beta.47"
163 | resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0-beta.47.tgz"
164 | dependencies:
165 | "@babel/types" "7.0.0-beta.47"
166 |
167 | "@babel/helper-hoist-variables@^7.24.7":
168 | version "7.24.7"
169 | resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz"
170 | integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==
171 | dependencies:
172 | "@babel/types" "^7.24.7"
173 |
174 | "@babel/helper-member-expression-to-functions@7.0.0-beta.47":
175 | version "7.0.0-beta.47"
176 | resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0-beta.47.tgz"
177 | dependencies:
178 | "@babel/types" "7.0.0-beta.47"
179 |
180 | "@babel/helper-module-imports@7.0.0-beta.47":
181 | version "7.0.0-beta.47"
182 | resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.47.tgz"
183 | dependencies:
184 | "@babel/types" "7.0.0-beta.47"
185 | lodash "^4.17.5"
186 |
187 | "@babel/helper-module-imports@^7.24.7":
188 | version "7.24.7"
189 | resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz"
190 | integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==
191 | dependencies:
192 | "@babel/traverse" "^7.24.7"
193 | "@babel/types" "^7.24.7"
194 |
195 | "@babel/helper-module-transforms@7.0.0-beta.47":
196 | version "7.0.0-beta.47"
197 | resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.0.0-beta.47.tgz"
198 | dependencies:
199 | "@babel/helper-module-imports" "7.0.0-beta.47"
200 | "@babel/helper-simple-access" "7.0.0-beta.47"
201 | "@babel/helper-split-export-declaration" "7.0.0-beta.47"
202 | "@babel/template" "7.0.0-beta.47"
203 | "@babel/types" "7.0.0-beta.47"
204 | lodash "^4.17.5"
205 |
206 | "@babel/helper-module-transforms@^7.11.0":
207 | version "7.24.8"
208 | resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.8.tgz"
209 | integrity sha512-m4vWKVqvkVAWLXfHCCfff2luJj86U+J0/x+0N3ArG/tP0Fq7zky2dYwMbtPmkc/oulkkbjdL3uWzuoBwQ8R00Q==
210 | dependencies:
211 | "@babel/helper-environment-visitor" "^7.24.7"
212 | "@babel/helper-module-imports" "^7.24.7"
213 | "@babel/helper-simple-access" "^7.24.7"
214 | "@babel/helper-split-export-declaration" "^7.24.7"
215 | "@babel/helper-validator-identifier" "^7.24.7"
216 |
217 | "@babel/helper-optimise-call-expression@7.0.0-beta.47":
218 | version "7.0.0-beta.47"
219 | resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0-beta.47.tgz"
220 | dependencies:
221 | "@babel/types" "7.0.0-beta.47"
222 |
223 | "@babel/helper-plugin-utils@7.0.0-beta.47":
224 | version "7.0.0-beta.47"
225 | resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0-beta.47.tgz"
226 |
227 | "@babel/helper-regex@7.0.0-beta.47":
228 | version "7.0.0-beta.47"
229 | resolved "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0-beta.47.tgz"
230 | dependencies:
231 | lodash "^4.17.5"
232 |
233 | "@babel/helper-replace-supers@7.0.0-beta.47":
234 | version "7.0.0-beta.47"
235 | resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.0.0-beta.47.tgz"
236 | dependencies:
237 | "@babel/helper-member-expression-to-functions" "7.0.0-beta.47"
238 | "@babel/helper-optimise-call-expression" "7.0.0-beta.47"
239 | "@babel/traverse" "7.0.0-beta.47"
240 | "@babel/types" "7.0.0-beta.47"
241 |
242 | "@babel/helper-simple-access@7.0.0-beta.47":
243 | version "7.0.0-beta.47"
244 | resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.0.0-beta.47.tgz"
245 | dependencies:
246 | "@babel/template" "7.0.0-beta.47"
247 | "@babel/types" "7.0.0-beta.47"
248 | lodash "^4.17.5"
249 |
250 | "@babel/helper-simple-access@^7.24.7":
251 | version "7.24.7"
252 | resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz"
253 | integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==
254 | dependencies:
255 | "@babel/traverse" "^7.24.7"
256 | "@babel/types" "^7.24.7"
257 |
258 | "@babel/helper-split-export-declaration@7.0.0-beta.47":
259 | version "7.0.0-beta.47"
260 | resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.47.tgz"
261 | dependencies:
262 | "@babel/types" "7.0.0-beta.47"
263 |
264 | "@babel/helper-split-export-declaration@^7.11.0":
265 | version "7.11.0"
266 | resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz"
267 | dependencies:
268 | "@babel/types" "^7.11.0"
269 |
270 | "@babel/helper-split-export-declaration@^7.24.7":
271 | version "7.24.7"
272 | resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz"
273 | integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==
274 | dependencies:
275 | "@babel/types" "^7.24.7"
276 |
277 | "@babel/helper-string-parser@^7.24.8":
278 | version "7.24.8"
279 | resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz"
280 | integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==
281 |
282 | "@babel/helper-validator-identifier@^7.10.4", "@babel/helper-validator-identifier@^7.24.7":
283 | version "7.24.7"
284 | resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz"
285 | integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
286 |
287 | "@babel/helpers@^7.10.4":
288 | version "7.24.8"
289 | resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz"
290 | integrity sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==
291 | dependencies:
292 | "@babel/template" "^7.24.7"
293 | "@babel/types" "^7.24.8"
294 |
295 | "@babel/highlight@7.0.0-beta.47":
296 | version "7.0.0-beta.47"
297 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0-beta.47.tgz"
298 | dependencies:
299 | chalk "^2.0.0"
300 | esutils "^2.0.2"
301 | js-tokens "^3.0.0"
302 |
303 | "@babel/highlight@^7.24.7":
304 | version "7.24.7"
305 | resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz"
306 | integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==
307 | dependencies:
308 | "@babel/helper-validator-identifier" "^7.24.7"
309 | chalk "^2.4.2"
310 | js-tokens "^4.0.0"
311 | picocolors "^1.0.0"
312 |
313 | "@babel/parser@^7.11.0", "@babel/parser@^7.11.4", "@babel/parser@^7.24.7", "@babel/parser@^7.24.8":
314 | version "7.24.8"
315 | resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz"
316 | integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==
317 |
318 | "@babel/plugin-proposal-class-properties@7.0.0-beta.47":
319 | version "7.0.0-beta.47"
320 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.0.0-beta.47.tgz"
321 | dependencies:
322 | "@babel/helper-function-name" "7.0.0-beta.47"
323 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
324 | "@babel/helper-replace-supers" "7.0.0-beta.47"
325 | "@babel/plugin-syntax-class-properties" "7.0.0-beta.47"
326 |
327 | "@babel/plugin-proposal-object-rest-spread@7.0.0-beta.47":
328 | version "7.0.0-beta.47"
329 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.0.0-beta.47.tgz"
330 | dependencies:
331 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
332 | "@babel/plugin-syntax-object-rest-spread" "7.0.0-beta.47"
333 |
334 | "@babel/plugin-proposal-optional-chaining@7.0.0-beta.47":
335 | version "7.0.0-beta.47"
336 | resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.0.0-beta.47.tgz"
337 | dependencies:
338 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
339 | "@babel/plugin-syntax-optional-chaining" "7.0.0-beta.47"
340 |
341 | "@babel/plugin-syntax-class-properties@7.0.0-beta.47":
342 | version "7.0.0-beta.47"
343 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.0.0-beta.47.tgz"
344 | dependencies:
345 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
346 |
347 | "@babel/plugin-syntax-flow@7.0.0-beta.47":
348 | version "7.0.0-beta.47"
349 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.0.0-beta.47.tgz"
350 | dependencies:
351 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
352 |
353 | "@babel/plugin-syntax-jsx@7.0.0-beta.47":
354 | version "7.0.0-beta.47"
355 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.0.0-beta.47.tgz"
356 | dependencies:
357 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
358 |
359 | "@babel/plugin-syntax-object-rest-spread@7.0.0-beta.47":
360 | version "7.0.0-beta.47"
361 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.0.0-beta.47.tgz"
362 | dependencies:
363 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
364 |
365 | "@babel/plugin-syntax-optional-chaining@7.0.0-beta.47":
366 | version "7.0.0-beta.47"
367 | resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.0.0-beta.47.tgz"
368 | dependencies:
369 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
370 |
371 | "@babel/plugin-transform-arrow-functions@7.0.0-beta.47":
372 | version "7.0.0-beta.47"
373 | resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.0.0-beta.47.tgz"
374 | dependencies:
375 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
376 |
377 | "@babel/plugin-transform-block-scoping@7.0.0-beta.47":
378 | version "7.0.0-beta.47"
379 | resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.0.0-beta.47.tgz"
380 | dependencies:
381 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
382 | lodash "^4.17.5"
383 |
384 | "@babel/plugin-transform-classes@7.0.0-beta.47":
385 | version "7.0.0-beta.47"
386 | resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.0.0-beta.47.tgz"
387 | dependencies:
388 | "@babel/helper-annotate-as-pure" "7.0.0-beta.47"
389 | "@babel/helper-define-map" "7.0.0-beta.47"
390 | "@babel/helper-function-name" "7.0.0-beta.47"
391 | "@babel/helper-optimise-call-expression" "7.0.0-beta.47"
392 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
393 | "@babel/helper-replace-supers" "7.0.0-beta.47"
394 | "@babel/helper-split-export-declaration" "7.0.0-beta.47"
395 | globals "^11.1.0"
396 |
397 | "@babel/plugin-transform-computed-properties@7.0.0-beta.47":
398 | version "7.0.0-beta.47"
399 | resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.0.0-beta.47.tgz"
400 | dependencies:
401 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
402 |
403 | "@babel/plugin-transform-destructuring@7.0.0-beta.47":
404 | version "7.0.0-beta.47"
405 | resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.0.0-beta.47.tgz"
406 | dependencies:
407 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
408 |
409 | "@babel/plugin-transform-exponentiation-operator@7.0.0-beta.47":
410 | version "7.0.0-beta.47"
411 | resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.0.0-beta.47.tgz"
412 | dependencies:
413 | "@babel/helper-builder-binary-assignment-operator-visitor" "7.0.0-beta.47"
414 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
415 |
416 | "@babel/plugin-transform-flow-strip-types@7.0.0-beta.47":
417 | version "7.0.0-beta.47"
418 | resolved "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.0.0-beta.47.tgz"
419 | dependencies:
420 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
421 | "@babel/plugin-syntax-flow" "7.0.0-beta.47"
422 |
423 | "@babel/plugin-transform-for-of@7.0.0-beta.47":
424 | version "7.0.0-beta.47"
425 | resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.0.0-beta.47.tgz"
426 | dependencies:
427 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
428 |
429 | "@babel/plugin-transform-function-name@7.0.0-beta.47":
430 | version "7.0.0-beta.47"
431 | resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.0.0-beta.47.tgz"
432 | dependencies:
433 | "@babel/helper-function-name" "7.0.0-beta.47"
434 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
435 |
436 | "@babel/plugin-transform-literals@7.0.0-beta.47":
437 | version "7.0.0-beta.47"
438 | resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.0.0-beta.47.tgz"
439 | dependencies:
440 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
441 |
442 | "@babel/plugin-transform-modules-commonjs@7.0.0-beta.47":
443 | version "7.0.0-beta.47"
444 | resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.0.0-beta.47.tgz"
445 | dependencies:
446 | "@babel/helper-module-transforms" "7.0.0-beta.47"
447 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
448 | "@babel/helper-simple-access" "7.0.0-beta.47"
449 |
450 | "@babel/plugin-transform-object-assign@7.0.0-beta.47":
451 | version "7.0.0-beta.47"
452 | resolved "https://registry.npmjs.org/@babel/plugin-transform-object-assign/-/plugin-transform-object-assign-7.0.0-beta.47.tgz"
453 | dependencies:
454 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
455 |
456 | "@babel/plugin-transform-parameters@7.0.0-beta.47":
457 | version "7.0.0-beta.47"
458 | resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.0.0-beta.47.tgz"
459 | dependencies:
460 | "@babel/helper-call-delegate" "7.0.0-beta.47"
461 | "@babel/helper-get-function-arity" "7.0.0-beta.47"
462 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
463 |
464 | "@babel/plugin-transform-react-display-name@7.0.0-beta.47":
465 | version "7.0.0-beta.47"
466 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.0.0-beta.47.tgz"
467 | dependencies:
468 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
469 |
470 | "@babel/plugin-transform-react-jsx-source@7.0.0-beta.47":
471 | version "7.0.0-beta.47"
472 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.0.0-beta.47.tgz"
473 | dependencies:
474 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
475 | "@babel/plugin-syntax-jsx" "7.0.0-beta.47"
476 |
477 | "@babel/plugin-transform-react-jsx@7.0.0-beta.47":
478 | version "7.0.0-beta.47"
479 | resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.0.0-beta.47.tgz"
480 | dependencies:
481 | "@babel/helper-builder-react-jsx" "7.0.0-beta.47"
482 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
483 | "@babel/plugin-syntax-jsx" "7.0.0-beta.47"
484 |
485 | "@babel/plugin-transform-regenerator@7.0.0-beta.47":
486 | version "7.0.0-beta.47"
487 | resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0-beta.47.tgz"
488 | dependencies:
489 | regenerator-transform "^0.12.3"
490 |
491 | "@babel/plugin-transform-shorthand-properties@7.0.0-beta.47":
492 | version "7.0.0-beta.47"
493 | resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.0.0-beta.47.tgz"
494 | dependencies:
495 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
496 |
497 | "@babel/plugin-transform-spread@7.0.0-beta.47":
498 | version "7.0.0-beta.47"
499 | resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.0.0-beta.47.tgz"
500 | dependencies:
501 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
502 |
503 | "@babel/plugin-transform-sticky-regex@7.0.0-beta.47":
504 | version "7.0.0-beta.47"
505 | resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.0.0-beta.47.tgz"
506 | dependencies:
507 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
508 | "@babel/helper-regex" "7.0.0-beta.47"
509 |
510 | "@babel/plugin-transform-template-literals@7.0.0-beta.47":
511 | version "7.0.0-beta.47"
512 | resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.0.0-beta.47.tgz"
513 | dependencies:
514 | "@babel/helper-annotate-as-pure" "7.0.0-beta.47"
515 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
516 |
517 | "@babel/plugin-transform-unicode-regex@7.0.0-beta.47":
518 | version "7.0.0-beta.47"
519 | resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.0.0-beta.47.tgz"
520 | dependencies:
521 | "@babel/helper-plugin-utils" "7.0.0-beta.47"
522 | "@babel/helper-regex" "7.0.0-beta.47"
523 | regexpu-core "^4.1.3"
524 |
525 | "@babel/template@7.0.0-beta.47":
526 | version "7.0.0-beta.47"
527 | resolved "https://registry.npmjs.org/@babel/template/-/template-7.0.0-beta.47.tgz"
528 | dependencies:
529 | "@babel/code-frame" "7.0.0-beta.47"
530 | "@babel/types" "7.0.0-beta.47"
531 | babylon "7.0.0-beta.47"
532 | lodash "^4.17.5"
533 |
534 | "@babel/template@^7.10.4", "@babel/template@^7.24.7":
535 | version "7.24.7"
536 | resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz"
537 | integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==
538 | dependencies:
539 | "@babel/code-frame" "^7.24.7"
540 | "@babel/parser" "^7.24.7"
541 | "@babel/types" "^7.24.7"
542 |
543 | "@babel/traverse@7.0.0-beta.47":
544 | version "7.0.0-beta.47"
545 | resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.0.0-beta.47.tgz"
546 | dependencies:
547 | "@babel/code-frame" "7.0.0-beta.47"
548 | "@babel/generator" "7.0.0-beta.47"
549 | "@babel/helper-function-name" "7.0.0-beta.47"
550 | "@babel/helper-split-export-declaration" "7.0.0-beta.47"
551 | "@babel/types" "7.0.0-beta.47"
552 | babylon "7.0.0-beta.47"
553 | debug "^3.1.0"
554 | globals "^11.1.0"
555 | invariant "^2.2.0"
556 | lodash "^4.17.5"
557 |
558 | "@babel/traverse@^7.11.0":
559 | version "7.11.0"
560 | resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz"
561 | dependencies:
562 | "@babel/code-frame" "^7.10.4"
563 | "@babel/generator" "^7.11.0"
564 | "@babel/helper-function-name" "^7.10.4"
565 | "@babel/helper-split-export-declaration" "^7.11.0"
566 | "@babel/parser" "^7.11.0"
567 | "@babel/types" "^7.11.0"
568 | debug "^4.1.0"
569 | globals "^11.1.0"
570 | lodash "^4.17.19"
571 |
572 | "@babel/traverse@^7.24.7":
573 | version "7.24.8"
574 | resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz"
575 | integrity sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==
576 | dependencies:
577 | "@babel/code-frame" "^7.24.7"
578 | "@babel/generator" "^7.24.8"
579 | "@babel/helper-environment-visitor" "^7.24.7"
580 | "@babel/helper-function-name" "^7.24.7"
581 | "@babel/helper-hoist-variables" "^7.24.7"
582 | "@babel/helper-split-export-declaration" "^7.24.7"
583 | "@babel/parser" "^7.24.8"
584 | "@babel/types" "^7.24.8"
585 | debug "^4.3.1"
586 | globals "^11.1.0"
587 |
588 | "@babel/types@7.0.0-beta.47":
589 | version "7.0.0-beta.47"
590 | resolved "https://registry.npmjs.org/@babel/types/-/types-7.0.0-beta.47.tgz"
591 | dependencies:
592 | esutils "^2.0.2"
593 | lodash "^4.17.5"
594 | to-fast-properties "^2.0.0"
595 |
596 | "@babel/types@^7.10.4", "@babel/types@^7.11.0":
597 | version "7.11.0"
598 | resolved "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz"
599 | dependencies:
600 | "@babel/helper-validator-identifier" "^7.10.4"
601 | lodash "^4.17.19"
602 | to-fast-properties "^2.0.0"
603 |
604 | "@babel/types@^7.24.7", "@babel/types@^7.24.8":
605 | version "7.24.8"
606 | resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.8.tgz"
607 | integrity sha512-SkSBEHwwJRU52QEVZBmMBnE5Ux2/6WU1grdYyOhpbCNxbmJrDuDCphBzKZSO3taf0zztp+qkWlymE5tVL5l0TA==
608 | dependencies:
609 | "@babel/helper-string-parser" "^7.24.8"
610 | "@babel/helper-validator-identifier" "^7.24.7"
611 | to-fast-properties "^2.0.0"
612 |
613 | "@jridgewell/gen-mapping@^0.3.5":
614 | version "0.3.5"
615 | resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
616 | integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
617 | dependencies:
618 | "@jridgewell/set-array" "^1.2.1"
619 | "@jridgewell/sourcemap-codec" "^1.4.10"
620 | "@jridgewell/trace-mapping" "^0.3.24"
621 |
622 | "@jridgewell/resolve-uri@^3.1.0":
623 | version "3.1.2"
624 | resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
625 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
626 |
627 | "@jridgewell/set-array@^1.2.1":
628 | version "1.2.1"
629 | resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
630 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
631 |
632 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
633 | version "1.5.0"
634 | resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz"
635 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
636 |
637 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
638 | version "0.3.25"
639 | resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
640 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
641 | dependencies:
642 | "@jridgewell/resolve-uri" "^3.1.0"
643 | "@jridgewell/sourcemap-codec" "^1.4.14"
644 |
645 | ansi-styles@^3.2.1:
646 | version "3.2.1"
647 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
648 | dependencies:
649 | color-convert "^1.9.0"
650 |
651 | anymatch@^2.0.0:
652 | version "2.0.0"
653 | resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz"
654 | dependencies:
655 | micromatch "^3.1.4"
656 | normalize-path "^2.1.1"
657 |
658 | arr-diff@^4.0.0:
659 | version "4.0.0"
660 | resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz"
661 |
662 | arr-flatten@^1.1.0:
663 | version "1.1.0"
664 | resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz"
665 |
666 | arr-union@^3.1.0:
667 | version "3.1.0"
668 | resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz"
669 |
670 | array-unique@^0.3.2:
671 | version "0.3.2"
672 | resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz"
673 |
674 | assign-symbols@^1.0.0:
675 | version "1.0.0"
676 | resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz"
677 |
678 | async-each@^1.0.1:
679 | version "1.0.3"
680 | resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz"
681 |
682 | atob@^2.1.2:
683 | version "2.1.2"
684 | resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz"
685 |
686 | babel-preset-react-native@^5.0.2:
687 | version "5.0.2"
688 | resolved "https://registry.npmjs.org/babel-preset-react-native/-/babel-preset-react-native-5.0.2.tgz"
689 | dependencies:
690 | "@babel/plugin-proposal-class-properties" "7.0.0-beta.47"
691 | "@babel/plugin-proposal-object-rest-spread" "7.0.0-beta.47"
692 | "@babel/plugin-proposal-optional-chaining" "7.0.0-beta.47"
693 | "@babel/plugin-transform-arrow-functions" "7.0.0-beta.47"
694 | "@babel/plugin-transform-block-scoping" "7.0.0-beta.47"
695 | "@babel/plugin-transform-classes" "7.0.0-beta.47"
696 | "@babel/plugin-transform-computed-properties" "7.0.0-beta.47"
697 | "@babel/plugin-transform-destructuring" "7.0.0-beta.47"
698 | "@babel/plugin-transform-exponentiation-operator" "7.0.0-beta.47"
699 | "@babel/plugin-transform-flow-strip-types" "7.0.0-beta.47"
700 | "@babel/plugin-transform-for-of" "7.0.0-beta.47"
701 | "@babel/plugin-transform-function-name" "7.0.0-beta.47"
702 | "@babel/plugin-transform-literals" "7.0.0-beta.47"
703 | "@babel/plugin-transform-modules-commonjs" "7.0.0-beta.47"
704 | "@babel/plugin-transform-object-assign" "7.0.0-beta.47"
705 | "@babel/plugin-transform-parameters" "7.0.0-beta.47"
706 | "@babel/plugin-transform-react-display-name" "7.0.0-beta.47"
707 | "@babel/plugin-transform-react-jsx" "7.0.0-beta.47"
708 | "@babel/plugin-transform-react-jsx-source" "7.0.0-beta.47"
709 | "@babel/plugin-transform-regenerator" "7.0.0-beta.47"
710 | "@babel/plugin-transform-shorthand-properties" "7.0.0-beta.47"
711 | "@babel/plugin-transform-spread" "7.0.0-beta.47"
712 | "@babel/plugin-transform-sticky-regex" "7.0.0-beta.47"
713 | "@babel/plugin-transform-template-literals" "7.0.0-beta.47"
714 | "@babel/plugin-transform-unicode-regex" "7.0.0-beta.47"
715 | "@babel/template" "7.0.0-beta.47"
716 | metro-babel7-plugin-react-transform "^0.39.1"
717 |
718 | babylon@7.0.0-beta.47:
719 | version "7.0.0-beta.47"
720 | resolved "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.47.tgz"
721 |
722 | balanced-match@^1.0.0:
723 | version "1.0.2"
724 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
725 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
726 |
727 | base64-js@^1.3.1:
728 | version "1.5.1"
729 | resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
730 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
731 |
732 | base@^0.11.1:
733 | version "0.11.2"
734 | resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz"
735 | dependencies:
736 | cache-base "^1.0.1"
737 | class-utils "^0.3.5"
738 | component-emitter "^1.2.1"
739 | define-property "^1.0.0"
740 | isobject "^3.0.1"
741 | mixin-deep "^1.2.0"
742 | pascalcase "^0.1.1"
743 |
744 | binary-extensions@^1.0.0:
745 | version "1.10.0"
746 | resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz"
747 |
748 | bindings@^1.5.0:
749 | version "1.5.0"
750 | resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
751 | dependencies:
752 | file-uri-to-path "1.0.0"
753 |
754 | brace-expansion@^1.1.7:
755 | version "1.1.11"
756 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
757 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
758 | dependencies:
759 | balanced-match "^1.0.0"
760 | concat-map "0.0.1"
761 |
762 | braces@^2.3.1, braces@^2.3.2:
763 | version "2.3.2"
764 | resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz"
765 | dependencies:
766 | arr-flatten "^1.1.0"
767 | array-unique "^0.3.2"
768 | extend-shallow "^2.0.1"
769 | fill-range "^4.0.0"
770 | isobject "^3.0.1"
771 | repeat-element "^1.1.2"
772 | snapdragon "^0.8.1"
773 | snapdragon-node "^2.0.1"
774 | split-string "^3.0.2"
775 | to-regex "^3.0.1"
776 |
777 | "buffer@^4.9.1 || ^5.0.7":
778 | version "5.7.1"
779 | resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"
780 | integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==
781 | dependencies:
782 | base64-js "^1.3.1"
783 | ieee754 "^1.1.13"
784 |
785 | cache-base@^1.0.1:
786 | version "1.0.1"
787 | resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz"
788 | dependencies:
789 | collection-visit "^1.0.0"
790 | component-emitter "^1.2.1"
791 | get-value "^2.0.6"
792 | has-value "^1.0.0"
793 | isobject "^3.0.1"
794 | set-value "^2.0.0"
795 | to-object-path "^0.3.0"
796 | union-value "^1.0.0"
797 | unset-value "^1.0.0"
798 |
799 | chalk@^2.0.0, chalk@^2.4.2:
800 | version "2.4.2"
801 | resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
802 | dependencies:
803 | ansi-styles "^3.2.1"
804 | escape-string-regexp "^1.0.5"
805 | supports-color "^5.3.0"
806 |
807 | chokidar@^2.1.8:
808 | version "2.1.8"
809 | resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz"
810 | dependencies:
811 | anymatch "^2.0.0"
812 | async-each "^1.0.1"
813 | braces "^2.3.2"
814 | glob-parent "^3.1.0"
815 | inherits "^2.0.3"
816 | is-binary-path "^1.0.0"
817 | is-glob "^4.0.0"
818 | normalize-path "^3.0.0"
819 | path-is-absolute "^1.0.0"
820 | readdirp "^2.2.1"
821 | upath "^1.1.1"
822 | optionalDependencies:
823 | fsevents "^1.2.7"
824 |
825 | class-utils@^0.3.5:
826 | version "0.3.6"
827 | resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz"
828 | dependencies:
829 | arr-union "^3.1.0"
830 | define-property "^0.2.5"
831 | isobject "^3.0.0"
832 | static-extend "^0.1.1"
833 |
834 | collection-visit@^1.0.0:
835 | version "1.0.0"
836 | resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz"
837 | dependencies:
838 | map-visit "^1.0.0"
839 | object-visit "^1.0.0"
840 |
841 | color-convert@^1.9.0:
842 | version "1.9.3"
843 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
844 | dependencies:
845 | color-name "1.1.3"
846 |
847 | color-name@1.1.3:
848 | version "1.1.3"
849 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
850 |
851 | commander@^4.0.1:
852 | version "4.1.1"
853 | resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
854 |
855 | component-emitter@^1.2.1:
856 | version "1.3.0"
857 | resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz"
858 |
859 | concat-map@0.0.1:
860 | version "0.0.1"
861 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
862 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
863 |
864 | convert-source-map@^1.1.0, convert-source-map@^1.7.0:
865 | version "1.7.0"
866 | resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz"
867 | dependencies:
868 | safe-buffer "~5.1.1"
869 |
870 | copy-descriptor@^0.1.0:
871 | version "0.1.1"
872 | resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz"
873 |
874 | core-util-is@~1.0.0:
875 | version "1.0.2"
876 | resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
877 |
878 | debug@^2.2.0, debug@^2.3.3:
879 | version "2.6.9"
880 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"
881 | dependencies:
882 | ms "2.0.0"
883 |
884 | debug@^3.1.0:
885 | version "3.2.6"
886 | resolved "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz"
887 | dependencies:
888 | ms "^2.1.1"
889 |
890 | debug@^4.1.0:
891 | version "4.1.1"
892 | resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
893 | dependencies:
894 | ms "^2.1.1"
895 |
896 | debug@^4.3.1:
897 | version "4.3.5"
898 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz"
899 | integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==
900 | dependencies:
901 | ms "2.1.2"
902 |
903 | decode-uri-component@^0.2.0:
904 | version "0.2.2"
905 | resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz"
906 | integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
907 |
908 | define-property@^0.2.5:
909 | version "0.2.5"
910 | resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz"
911 | dependencies:
912 | is-descriptor "^0.1.0"
913 |
914 | define-property@^1.0.0:
915 | version "1.0.0"
916 | resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz"
917 | dependencies:
918 | is-descriptor "^1.0.0"
919 |
920 | define-property@^2.0.2:
921 | version "2.0.2"
922 | resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz"
923 | dependencies:
924 | is-descriptor "^1.0.2"
925 | isobject "^3.0.1"
926 |
927 | escape-string-regexp@^1.0.5:
928 | version "1.0.5"
929 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
930 |
931 | esutils@^2.0.0:
932 | version "2.0.3"
933 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
934 |
935 | esutils@^2.0.2:
936 | version "2.0.2"
937 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"
938 |
939 | expand-brackets@^2.1.4:
940 | version "2.1.4"
941 | resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz"
942 | dependencies:
943 | debug "^2.3.3"
944 | define-property "^0.2.5"
945 | extend-shallow "^2.0.1"
946 | posix-character-classes "^0.1.0"
947 | regex-not "^1.0.0"
948 | snapdragon "^0.8.1"
949 | to-regex "^3.0.1"
950 |
951 | extend-shallow@^2.0.1:
952 | version "2.0.1"
953 | resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"
954 | dependencies:
955 | is-extendable "^0.1.0"
956 |
957 | extend-shallow@^3.0.0, extend-shallow@^3.0.2:
958 | version "3.0.2"
959 | resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz"
960 | dependencies:
961 | assign-symbols "^1.0.0"
962 | is-extendable "^1.0.1"
963 |
964 | extglob@^2.0.4:
965 | version "2.0.4"
966 | resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz"
967 | dependencies:
968 | array-unique "^0.3.2"
969 | define-property "^1.0.0"
970 | expand-brackets "^2.1.4"
971 | extend-shallow "^2.0.1"
972 | fragment-cache "^0.2.1"
973 | regex-not "^1.0.0"
974 | snapdragon "^0.8.1"
975 | to-regex "^3.0.1"
976 |
977 | file-uri-to-path@1.0.0:
978 | version "1.0.0"
979 | resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
980 |
981 | fill-range@^4.0.0:
982 | version "4.0.0"
983 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz"
984 | dependencies:
985 | extend-shallow "^2.0.1"
986 | is-number "^3.0.0"
987 | repeat-string "^1.6.1"
988 | to-regex-range "^2.1.0"
989 |
990 | for-in@^1.0.2:
991 | version "1.0.2"
992 | resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz"
993 |
994 | fragment-cache@^0.2.1:
995 | version "0.2.1"
996 | resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz"
997 | dependencies:
998 | map-cache "^0.2.2"
999 |
1000 | fs-readdir-recursive@^1.1.0:
1001 | version "1.1.0"
1002 | resolved "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz"
1003 |
1004 | fs.realpath@^1.0.0:
1005 | version "1.0.0"
1006 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
1007 |
1008 | fsevents@^1.2.7:
1009 | version "1.2.13"
1010 | resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz"
1011 | dependencies:
1012 | bindings "^1.5.0"
1013 | nan "^2.12.1"
1014 |
1015 | gensync@^1.0.0-beta.1:
1016 | version "1.0.0-beta.2"
1017 | resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
1018 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
1019 |
1020 | get-value@^2.0.3, get-value@^2.0.6:
1021 | version "2.0.6"
1022 | resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz"
1023 |
1024 | glob-parent@^3.1.0:
1025 | version "3.1.0"
1026 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz"
1027 | dependencies:
1028 | is-glob "^3.1.0"
1029 | path-dirname "^1.0.0"
1030 |
1031 | glob@^7.0.0:
1032 | version "7.1.6"
1033 | resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
1034 | dependencies:
1035 | fs.realpath "^1.0.0"
1036 | inflight "^1.0.4"
1037 | inherits "2"
1038 | minimatch "^3.0.4"
1039 | once "^1.3.0"
1040 | path-is-absolute "^1.0.0"
1041 |
1042 | globals@^11.1.0:
1043 | version "11.12.0"
1044 | resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
1045 |
1046 | graceful-fs@^4.1.11:
1047 | version "4.2.11"
1048 | resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
1049 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
1050 |
1051 | has-flag@^3.0.0:
1052 | version "3.0.0"
1053 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
1054 |
1055 | has-value@^0.3.1:
1056 | version "0.3.1"
1057 | resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz"
1058 | dependencies:
1059 | get-value "^2.0.3"
1060 | has-values "^0.1.4"
1061 | isobject "^2.0.0"
1062 |
1063 | has-value@^1.0.0:
1064 | version "1.0.0"
1065 | resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"
1066 | dependencies:
1067 | get-value "^2.0.6"
1068 | has-values "^1.0.0"
1069 | isobject "^3.0.0"
1070 |
1071 | has-values@^0.1.4:
1072 | version "0.1.4"
1073 | resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz"
1074 |
1075 | has-values@^1.0.0:
1076 | version "1.0.0"
1077 | resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz"
1078 | dependencies:
1079 | is-number "^3.0.0"
1080 | kind-of "^4.0.0"
1081 |
1082 | ieee754@^1.1.13:
1083 | version "1.2.1"
1084 | resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
1085 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
1086 |
1087 | inflight@^1.0.4:
1088 | version "1.0.6"
1089 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
1090 | dependencies:
1091 | once "^1.3.0"
1092 | wrappy "1"
1093 |
1094 | inherits@2, inherits@^2.0.3, inherits@~2.0.3:
1095 | version "2.0.4"
1096 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
1097 |
1098 | invariant@^2.2.0:
1099 | version "2.2.4"
1100 | resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz"
1101 | dependencies:
1102 | loose-envify "^1.0.0"
1103 |
1104 | is-accessor-descriptor@^0.1.6:
1105 | version "0.1.6"
1106 | resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz"
1107 | dependencies:
1108 | kind-of "^3.0.2"
1109 |
1110 | is-accessor-descriptor@^1.0.0:
1111 | version "1.0.0"
1112 | resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz"
1113 | dependencies:
1114 | kind-of "^6.0.0"
1115 |
1116 | is-binary-path@^1.0.0:
1117 | version "1.0.1"
1118 | resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz"
1119 | dependencies:
1120 | binary-extensions "^1.0.0"
1121 |
1122 | is-buffer@^1.1.5:
1123 | version "1.1.6"
1124 | resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
1125 |
1126 | is-data-descriptor@^0.1.4:
1127 | version "0.1.4"
1128 | resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz"
1129 | dependencies:
1130 | kind-of "^3.0.2"
1131 |
1132 | is-data-descriptor@^1.0.0:
1133 | version "1.0.0"
1134 | resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz"
1135 | dependencies:
1136 | kind-of "^6.0.0"
1137 |
1138 | is-descriptor@^0.1.0:
1139 | version "0.1.6"
1140 | resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz"
1141 | dependencies:
1142 | is-accessor-descriptor "^0.1.6"
1143 | is-data-descriptor "^0.1.4"
1144 | kind-of "^5.0.0"
1145 |
1146 | is-descriptor@^1.0.0, is-descriptor@^1.0.2:
1147 | version "1.0.2"
1148 | resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz"
1149 | dependencies:
1150 | is-accessor-descriptor "^1.0.0"
1151 | is-data-descriptor "^1.0.0"
1152 | kind-of "^6.0.2"
1153 |
1154 | is-extendable@^0.1.0, is-extendable@^0.1.1:
1155 | version "0.1.1"
1156 | resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"
1157 |
1158 | is-extendable@^1.0.1:
1159 | version "1.0.1"
1160 | resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz"
1161 | dependencies:
1162 | is-plain-object "^2.0.4"
1163 |
1164 | is-extglob@^2.1.0, is-extglob@^2.1.1:
1165 | version "2.1.1"
1166 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
1167 |
1168 | is-glob@^3.1.0:
1169 | version "3.1.0"
1170 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz"
1171 | dependencies:
1172 | is-extglob "^2.1.0"
1173 |
1174 | is-glob@^4.0.0:
1175 | version "4.0.1"
1176 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz"
1177 | dependencies:
1178 | is-extglob "^2.1.1"
1179 |
1180 | is-number@^3.0.0:
1181 | version "3.0.0"
1182 | resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz"
1183 | dependencies:
1184 | kind-of "^3.0.2"
1185 |
1186 | is-plain-object@^2.0.3, is-plain-object@^2.0.4:
1187 | version "2.0.4"
1188 | resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz"
1189 | dependencies:
1190 | isobject "^3.0.1"
1191 |
1192 | is-windows@^1.0.2:
1193 | version "1.0.2"
1194 | resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz"
1195 |
1196 | isarray@1.0.0, isarray@~1.0.0:
1197 | version "1.0.0"
1198 | resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"
1199 |
1200 | isobject@^2.0.0:
1201 | version "2.1.0"
1202 | resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz"
1203 | dependencies:
1204 | isarray "1.0.0"
1205 |
1206 | isobject@^3.0.0, isobject@^3.0.1:
1207 | version "3.0.1"
1208 | resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz"
1209 |
1210 | js-tokens@^3.0.0:
1211 | version "3.0.2"
1212 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz"
1213 |
1214 | js-tokens@^4.0.0:
1215 | version "4.0.0"
1216 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
1217 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1218 |
1219 | jsesc@^2.5.1:
1220 | version "2.5.2"
1221 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz"
1222 |
1223 | jsesc@~0.5.0:
1224 | version "0.5.0"
1225 | resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz"
1226 | integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
1227 |
1228 | json5@^2.1.2:
1229 | version "2.2.3"
1230 | resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz"
1231 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
1232 |
1233 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
1234 | version "3.2.2"
1235 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz"
1236 | dependencies:
1237 | is-buffer "^1.1.5"
1238 |
1239 | kind-of@^4.0.0:
1240 | version "4.0.0"
1241 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz"
1242 | dependencies:
1243 | is-buffer "^1.1.5"
1244 |
1245 | kind-of@^5.0.0:
1246 | version "5.1.0"
1247 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz"
1248 |
1249 | kind-of@^6.0.0, kind-of@^6.0.2:
1250 | version "6.0.3"
1251 | resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
1252 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
1253 |
1254 | lodash@^4.17.19, lodash@^4.17.5:
1255 | version "4.17.21"
1256 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
1257 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1258 |
1259 | loose-envify@^1.0.0:
1260 | version "1.3.1"
1261 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz"
1262 | dependencies:
1263 | js-tokens "^3.0.0"
1264 |
1265 | make-dir@^2.1.0:
1266 | version "2.1.0"
1267 | resolved "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz"
1268 | dependencies:
1269 | pify "^4.0.1"
1270 | semver "^5.6.0"
1271 |
1272 | map-cache@^0.2.2:
1273 | version "0.2.2"
1274 | resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz"
1275 |
1276 | map-visit@^1.0.0:
1277 | version "1.0.0"
1278 | resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"
1279 | dependencies:
1280 | object-visit "^1.0.0"
1281 |
1282 | metro-babel7-plugin-react-transform@^0.39.1:
1283 | version "0.39.1"
1284 | resolved "https://registry.npmjs.org/metro-babel7-plugin-react-transform/-/metro-babel7-plugin-react-transform-0.39.1.tgz"
1285 | dependencies:
1286 | "@babel/helper-module-imports" "7.0.0-beta.47"
1287 | lodash "^4.17.5"
1288 |
1289 | micromatch@^3.1.10, micromatch@^3.1.4:
1290 | version "3.1.10"
1291 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"
1292 | dependencies:
1293 | arr-diff "^4.0.0"
1294 | array-unique "^0.3.2"
1295 | braces "^2.3.1"
1296 | define-property "^2.0.2"
1297 | extend-shallow "^3.0.2"
1298 | extglob "^2.0.4"
1299 | fragment-cache "^0.2.1"
1300 | kind-of "^6.0.2"
1301 | nanomatch "^1.2.9"
1302 | object.pick "^1.3.0"
1303 | regex-not "^1.0.0"
1304 | snapdragon "^0.8.1"
1305 | to-regex "^3.0.2"
1306 |
1307 | minimatch@^3.0.4:
1308 | version "3.1.2"
1309 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
1310 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1311 | dependencies:
1312 | brace-expansion "^1.1.7"
1313 |
1314 | mixin-deep@^1.2.0:
1315 | version "1.3.2"
1316 | resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz"
1317 | dependencies:
1318 | for-in "^1.0.2"
1319 | is-extendable "^1.0.1"
1320 |
1321 | ms@2.0.0:
1322 | version "2.0.0"
1323 | resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
1324 |
1325 | ms@2.1.2, ms@^2.1.1:
1326 | version "2.1.2"
1327 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1328 |
1329 | nan@^2.12.1:
1330 | version "2.14.1"
1331 | resolved "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz"
1332 |
1333 | nanomatch@^1.2.9:
1334 | version "1.2.13"
1335 | resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz"
1336 | dependencies:
1337 | arr-diff "^4.0.0"
1338 | array-unique "^0.3.2"
1339 | define-property "^2.0.2"
1340 | extend-shallow "^3.0.2"
1341 | fragment-cache "^0.2.1"
1342 | is-windows "^1.0.2"
1343 | kind-of "^6.0.2"
1344 | object.pick "^1.3.0"
1345 | regex-not "^1.0.0"
1346 | snapdragon "^0.8.1"
1347 | to-regex "^3.0.1"
1348 |
1349 | normalize-path@^2.1.1:
1350 | version "2.1.1"
1351 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz"
1352 | dependencies:
1353 | remove-trailing-separator "^1.0.1"
1354 |
1355 | normalize-path@^3.0.0:
1356 | version "3.0.0"
1357 | resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
1358 |
1359 | object-copy@^0.1.0:
1360 | version "0.1.0"
1361 | resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz"
1362 | dependencies:
1363 | copy-descriptor "^0.1.0"
1364 | define-property "^0.2.5"
1365 | kind-of "^3.0.3"
1366 |
1367 | object-visit@^1.0.0:
1368 | version "1.0.1"
1369 | resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz"
1370 | dependencies:
1371 | isobject "^3.0.0"
1372 |
1373 | object.pick@^1.3.0:
1374 | version "1.3.0"
1375 | resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz"
1376 | dependencies:
1377 | isobject "^3.0.1"
1378 |
1379 | once@^1.3.0:
1380 | version "1.4.0"
1381 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
1382 | dependencies:
1383 | wrappy "1"
1384 |
1385 | pascalcase@^0.1.1:
1386 | version "0.1.1"
1387 | resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz"
1388 |
1389 | path-dirname@^1.0.0:
1390 | version "1.0.2"
1391 | resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"
1392 |
1393 | path-is-absolute@^1.0.0:
1394 | version "1.0.1"
1395 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1396 |
1397 | path-parse@^1.0.6:
1398 | version "1.0.7"
1399 | resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
1400 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1401 |
1402 | picocolors@^1.0.0:
1403 | version "1.0.1"
1404 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz"
1405 | integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
1406 |
1407 | pify@^4.0.1:
1408 | version "4.0.1"
1409 | resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz"
1410 |
1411 | posix-character-classes@^0.1.0:
1412 | version "0.1.1"
1413 | resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz"
1414 |
1415 | private@^0.1.6:
1416 | version "0.1.8"
1417 | resolved "https://registry.npmjs.org/private/-/private-0.1.8.tgz"
1418 |
1419 | process-nextick-args@~2.0.0:
1420 | version "2.0.1"
1421 | resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"
1422 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
1423 |
1424 | punycode@1.3.2:
1425 | version "1.3.2"
1426 | resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz"
1427 |
1428 | querystring@0.2.0:
1429 | version "0.2.0"
1430 | resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz"
1431 |
1432 | readable-stream@^2.0.2:
1433 | version "2.3.8"
1434 | resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz"
1435 | integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
1436 | dependencies:
1437 | core-util-is "~1.0.0"
1438 | inherits "~2.0.3"
1439 | isarray "~1.0.0"
1440 | process-nextick-args "~2.0.0"
1441 | safe-buffer "~5.1.1"
1442 | string_decoder "~1.1.1"
1443 | util-deprecate "~1.0.1"
1444 |
1445 | readdirp@^2.2.1:
1446 | version "2.2.1"
1447 | resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz"
1448 | dependencies:
1449 | graceful-fs "^4.1.11"
1450 | micromatch "^3.1.10"
1451 | readable-stream "^2.0.2"
1452 |
1453 | regenerate-unicode-properties@^8.2.0:
1454 | version "8.2.0"
1455 | resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz"
1456 | dependencies:
1457 | regenerate "^1.4.0"
1458 |
1459 | regenerate@^1.4.0:
1460 | version "1.4.2"
1461 | resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz"
1462 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
1463 |
1464 | regenerator-transform@^0.12.3:
1465 | version "0.12.4"
1466 | resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.12.4.tgz"
1467 | dependencies:
1468 | private "^0.1.6"
1469 |
1470 | regex-not@^1.0.0, regex-not@^1.0.2:
1471 | version "1.0.2"
1472 | resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz"
1473 | dependencies:
1474 | extend-shallow "^3.0.2"
1475 | safe-regex "^1.1.0"
1476 |
1477 | regexpu-core@^4.1.3:
1478 | version "4.7.0"
1479 | resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz"
1480 | dependencies:
1481 | regenerate "^1.4.0"
1482 | regenerate-unicode-properties "^8.2.0"
1483 | regjsgen "^0.5.1"
1484 | regjsparser "^0.6.4"
1485 | unicode-match-property-ecmascript "^1.0.4"
1486 | unicode-match-property-value-ecmascript "^1.2.0"
1487 |
1488 | regjsgen@^0.5.1:
1489 | version "0.5.2"
1490 | resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz"
1491 |
1492 | regjsparser@^0.6.4:
1493 | version "0.6.4"
1494 | resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz"
1495 | dependencies:
1496 | jsesc "~0.5.0"
1497 |
1498 | remove-trailing-separator@^1.0.1:
1499 | version "1.1.0"
1500 | resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz"
1501 |
1502 | repeat-element@^1.1.2:
1503 | version "1.1.3"
1504 | resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz"
1505 |
1506 | repeat-string@^1.6.1:
1507 | version "1.6.1"
1508 | resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz"
1509 |
1510 | resolve-url@^0.2.1:
1511 | version "0.2.1"
1512 | resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz"
1513 |
1514 | resolve@^1.3.2:
1515 | version "1.17.0"
1516 | resolved "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz"
1517 | dependencies:
1518 | path-parse "^1.0.6"
1519 |
1520 | ret@~0.1.10:
1521 | version "0.1.15"
1522 | resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz"
1523 |
1524 | safe-buffer@~5.1.0, safe-buffer@~5.1.1:
1525 | version "5.1.2"
1526 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
1527 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
1528 |
1529 | safe-regex@^1.1.0:
1530 | version "1.1.0"
1531 | resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz"
1532 | dependencies:
1533 | ret "~0.1.10"
1534 |
1535 | semver@^5.4.1, semver@^5.6.0:
1536 | version "5.7.2"
1537 | resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz"
1538 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
1539 |
1540 | set-value@^2.0.0, set-value@^2.0.1:
1541 | version "2.0.1"
1542 | resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz"
1543 | dependencies:
1544 | extend-shallow "^2.0.1"
1545 | is-extendable "^0.1.1"
1546 | is-plain-object "^2.0.3"
1547 | split-string "^3.0.1"
1548 |
1549 | slash@^2.0.0:
1550 | version "2.0.0"
1551 | resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz"
1552 |
1553 | snapdragon-node@^2.0.1:
1554 | version "2.1.1"
1555 | resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz"
1556 | dependencies:
1557 | define-property "^1.0.0"
1558 | isobject "^3.0.0"
1559 | snapdragon-util "^3.0.1"
1560 |
1561 | snapdragon-util@^3.0.1:
1562 | version "3.0.1"
1563 | resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz"
1564 | dependencies:
1565 | kind-of "^3.2.0"
1566 |
1567 | snapdragon@^0.8.1:
1568 | version "0.8.2"
1569 | resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz"
1570 | dependencies:
1571 | base "^0.11.1"
1572 | debug "^2.2.0"
1573 | define-property "^0.2.5"
1574 | extend-shallow "^2.0.1"
1575 | map-cache "^0.2.2"
1576 | source-map "^0.5.6"
1577 | source-map-resolve "^0.5.0"
1578 | use "^3.1.0"
1579 |
1580 | source-map-resolve@^0.5.0:
1581 | version "0.5.3"
1582 | resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz"
1583 | dependencies:
1584 | atob "^2.1.2"
1585 | decode-uri-component "^0.2.0"
1586 | resolve-url "^0.2.1"
1587 | source-map-url "^0.4.0"
1588 | urix "^0.1.0"
1589 |
1590 | source-map-url@^0.4.0:
1591 | version "0.4.0"
1592 | resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz"
1593 |
1594 | source-map@^0.5.0, source-map@^0.5.6:
1595 | version "0.5.7"
1596 | resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz"
1597 |
1598 | split-string@^3.0.1, split-string@^3.0.2:
1599 | version "3.1.0"
1600 | resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz"
1601 | dependencies:
1602 | extend-shallow "^3.0.0"
1603 |
1604 | static-extend@^0.1.1:
1605 | version "0.1.2"
1606 | resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz"
1607 | dependencies:
1608 | define-property "^0.2.5"
1609 | object-copy "^0.1.0"
1610 |
1611 | string_decoder@~1.1.1:
1612 | version "1.1.1"
1613 | resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"
1614 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
1615 | dependencies:
1616 | safe-buffer "~5.1.0"
1617 |
1618 | supports-color@^5.3.0:
1619 | version "5.5.0"
1620 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
1621 | dependencies:
1622 | has-flag "^3.0.0"
1623 |
1624 | to-fast-properties@^2.0.0:
1625 | version "2.0.0"
1626 | resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
1627 |
1628 | to-object-path@^0.3.0:
1629 | version "0.3.0"
1630 | resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz"
1631 | dependencies:
1632 | kind-of "^3.0.2"
1633 |
1634 | to-regex-range@^2.1.0:
1635 | version "2.1.1"
1636 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz"
1637 | dependencies:
1638 | is-number "^3.0.0"
1639 | repeat-string "^1.6.1"
1640 |
1641 | to-regex@^3.0.1, to-regex@^3.0.2:
1642 | version "3.0.2"
1643 | resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz"
1644 | dependencies:
1645 | define-property "^2.0.2"
1646 | extend-shallow "^3.0.2"
1647 | regex-not "^1.0.2"
1648 | safe-regex "^1.1.0"
1649 |
1650 | trim-right@^1.0.1:
1651 | version "1.0.1"
1652 | resolved "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz"
1653 |
1654 | unicode-canonical-property-names-ecmascript@^1.0.4:
1655 | version "1.0.4"
1656 | resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz"
1657 |
1658 | unicode-match-property-ecmascript@^1.0.4:
1659 | version "1.0.4"
1660 | resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz"
1661 | dependencies:
1662 | unicode-canonical-property-names-ecmascript "^1.0.4"
1663 | unicode-property-aliases-ecmascript "^1.0.4"
1664 |
1665 | unicode-match-property-value-ecmascript@^1.2.0:
1666 | version "1.2.0"
1667 | resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz"
1668 |
1669 | unicode-property-aliases-ecmascript@^1.0.4:
1670 | version "1.1.0"
1671 | resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz"
1672 |
1673 | union-value@^1.0.0:
1674 | version "1.0.1"
1675 | resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz"
1676 | dependencies:
1677 | arr-union "^3.1.0"
1678 | get-value "^2.0.6"
1679 | is-extendable "^0.1.1"
1680 | set-value "^2.0.1"
1681 |
1682 | unset-value@^1.0.0:
1683 | version "1.0.0"
1684 | resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz"
1685 | dependencies:
1686 | has-value "^0.3.1"
1687 | isobject "^3.0.0"
1688 |
1689 | upath@^1.1.1:
1690 | version "1.2.0"
1691 | resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz"
1692 |
1693 | urix@^0.1.0:
1694 | version "0.1.0"
1695 | resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz"
1696 |
1697 | url@^0.11.0:
1698 | version "0.11.0"
1699 | resolved "https://registry.npmjs.org/url/-/url-0.11.0.tgz"
1700 | dependencies:
1701 | punycode "1.3.2"
1702 | querystring "0.2.0"
1703 |
1704 | use@^3.1.0:
1705 | version "3.1.1"
1706 | resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz"
1707 |
1708 | util-deprecate@~1.0.1:
1709 | version "1.0.2"
1710 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
1711 |
1712 | wrappy@1:
1713 | version "1.0.2"
1714 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
1715 |
--------------------------------------------------------------------------------