@callstack/brownfield-navigation 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/BrownfieldNavigation.podspec +22 -0
  2. package/README.md +67 -0
  3. package/android/build.gradle +67 -0
  4. package/android/src/main/AndroidManifest.xml +2 -0
  5. package/android/src/main/java/com/callstack/nativebrownfieldnavigation/BrownfieldNavigationDelegate.kt +3 -0
  6. package/android/src/main/java/com/callstack/nativebrownfieldnavigation/BrownfieldNavigationManager.kt +14 -0
  7. package/android/src/main/java/com/callstack/nativebrownfieldnavigation/NativeBrownfieldNavigationModule.kt +18 -0
  8. package/android/src/main/java/com/callstack/nativebrownfieldnavigation/NativeBrownfieldNavigationPackage.kt +31 -0
  9. package/ios/BrownfieldNavigationDelegate.swift +5 -0
  10. package/ios/BrownfieldNavigationManager.swift +21 -0
  11. package/ios/NativeBrownfieldNavigation.h +15 -0
  12. package/ios/NativeBrownfieldNavigation.mm +26 -0
  13. package/lib/commonjs/NativeBrownfieldNavigation.js +2 -0
  14. package/lib/commonjs/NativeBrownfieldNavigation.js.map +1 -0
  15. package/lib/commonjs/index.js +2 -0
  16. package/lib/commonjs/index.js.map +1 -0
  17. package/lib/commonjs/package.json +1 -0
  18. package/lib/commonjs/scripts/brownfield.js +3 -0
  19. package/lib/commonjs/scripts/brownfield.js.map +1 -0
  20. package/lib/module/NativeBrownfieldNavigation.js +2 -0
  21. package/lib/module/NativeBrownfieldNavigation.js.map +1 -0
  22. package/lib/module/index.js +2 -0
  23. package/lib/module/index.js.map +1 -0
  24. package/lib/module/package.json +1 -0
  25. package/lib/module/scripts/brownfield.js +3 -0
  26. package/lib/module/scripts/brownfield.js.map +1 -0
  27. package/lib/typescript/commonjs/package.json +1 -0
  28. package/lib/typescript/commonjs/src/NativeBrownfieldNavigation.d.ts +7 -0
  29. package/lib/typescript/commonjs/src/NativeBrownfieldNavigation.d.ts.map +1 -0
  30. package/lib/typescript/commonjs/src/index.d.ts +5 -0
  31. package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
  32. package/lib/typescript/commonjs/src/scripts/brownfield.d.ts +3 -0
  33. package/lib/typescript/commonjs/src/scripts/brownfield.d.ts.map +1 -0
  34. package/lib/typescript/module/package.json +1 -0
  35. package/lib/typescript/module/src/NativeBrownfieldNavigation.d.ts +7 -0
  36. package/lib/typescript/module/src/NativeBrownfieldNavigation.d.ts.map +1 -0
  37. package/lib/typescript/module/src/index.d.ts +5 -0
  38. package/lib/typescript/module/src/index.d.ts.map +1 -0
  39. package/lib/typescript/module/src/scripts/brownfield.d.ts +3 -0
  40. package/lib/typescript/module/src/scripts/brownfield.d.ts.map +1 -0
  41. package/package.json +92 -0
  42. package/src/NativeBrownfieldNavigation.ts +9 -0
  43. package/src/index.ts +9 -0
  44. package/src/scripts/brownfield.ts +5 -0
@@ -0,0 +1,22 @@
1
+ require 'json'
2
+
3
+ package = JSON.parse(File.read(File.join(__dir__, 'package.json')))
4
+
5
+ Pod::Spec.new do |spec|
6
+ spec.name = "BrownfieldNavigation"
7
+ spec.version = package['version']
8
+ spec.summary = package['description']
9
+ spec.license = package['license']
10
+
11
+ spec.authors = package['author']
12
+ spec.homepage = package['homepage']
13
+ spec.platform = :ios, "14.0"
14
+
15
+ spec.source = { :git => "git@github.com:callstack/react-native-brownfield.git", :tag => "#{spec.version}" }
16
+ spec.source_files = "ios/**/*.{h,m,mm,swift}"
17
+ spec.pod_target_xcconfig = {
18
+ 'DEFINES_MODULE' => 'YES',
19
+ }
20
+
21
+ install_modules_dependencies(spec)
22
+ end
package/README.md ADDED
@@ -0,0 +1,67 @@
1
+ <a href="https://www.callstack.com/open-source?utm_campaign=generic&utm_source=github&utm_medium=referral&utm_content=react-native-brownfield" align="center">
2
+ <img alt="React Native Brownfield" src="https://github.com/callstack/react-native-brownfield/raw/refs/heads/main/img/brownfield-banner.jpg">
3
+ </a>
4
+
5
+ <p align="center">
6
+ A set of helpers to make your brownfield integration smooth and easy.
7
+ </p>
8
+
9
+ ---
10
+
11
+ [![Build Status][build-badge]][build]
12
+ [![Version][version-badge]][package]
13
+ [![MIT License][license-badge]][license]
14
+
15
+ [![PRs Welcome][prs-welcome-badge]][prs-welcome]
16
+ [![Chat][chat-badge]][chat]
17
+ [![Code of Conduct][coc-badge]][coc]
18
+ [![Sponsored by Callstack][callstack-badge]][callstack]
19
+
20
+ [![tweet][tweet-badge]][tweet]
21
+
22
+ ## Features
23
+
24
+ - **Easily integrate** React Native with an existing native app
25
+ - Start React Native with **one method** and invoke code as soon as it's loaded
26
+ - Compatible with **both legacy and new React Native architecture**!
27
+ - Reuse the same instance of React Native between different components
28
+ - Use predefined **native building blocks** - crafted for React Native
29
+ - Disable and enable **native gestures and hardware buttons** from JavaScript
30
+ - Works well with **any native navigation** pattern, as well as any React Native JavaScript-based navigation
31
+ - Compatible with all native languages **Objective-C**, **Swift**, **Java** and **Kotlin**
32
+ - Supports UIKit and SwiftUI on iOS and Fragments and Jetpack Compose on Android
33
+ - Out-of-the-box **CLI** that automates the build process
34
+
35
+ ## Documentation
36
+
37
+ For full documentation, visit [our documentation](https://oss.callstack.com/react-native-brownfield/).
38
+
39
+ <a href="https://www.callstack.com/ebooks/incremental-react-native-adoption-in-native-apps?utm_campaign=brownfield&utm_source=github&utm_medium=referral&utm_content=react-native-brownfield" align="center">
40
+ <img alt="Download a free copy of Incremental React Native adoption in native apps ebook" src="https://github.com/user-attachments/assets/ba42bb29-1e7a-4683-80c5-2602afb1a7e6">
41
+ </a>
42
+
43
+ ## Made with ❤️ at Callstack
44
+
45
+ React Native Brownfield is an open source project and will always remain free to use. If you think it's cool, please star it 🌟. [Callstack](https://callstack.com) is a group of React and React Native geeks, contact us at [hello@callstack.com](mailto:hello@callstack.com) if you need any help with these or just want to say hi!
46
+
47
+ Like the project? ⚛️ [Join the team](https://callstack.com/careers/?utm_campaign=Senior_RN&utm_source=github&utm_medium=readme) who does amazing stuff for clients and drives React Native Open Source! 🔥
48
+
49
+ <!-- badges -->
50
+
51
+ [build-badge]: https://img.shields.io/circleci/build/github/callstack/react-native-brownfield/master.svg?style=flat-square
52
+ [build]: https://circleci.com/gh/callstack/react-native-brownfield
53
+ [ci]: https://github.com/callstack/react-native-brownfield/actions/workflows/ci.yml/badge.svg
54
+ [version-badge]: https://img.shields.io/npm/v/@callstack/react-native-brownfield.svg?style=flat-square
55
+ [package]: https://www.npmjs.com/package/@callstack/react-native-brownfield
56
+ [license-badge]: https://img.shields.io/npm/l/@callstack/react-native-brownfield.svg?style=flat-square
57
+ [license]: https://opensource.org/licenses/MIT
58
+ [prs-welcome-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
59
+ [prs-welcome]: http://makeapullrequest.com
60
+ [coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square
61
+ [coc]: https://github.com/callstack/react-native-brownfield/blob/master/CODE_OF_CONDUCT.md
62
+ [chat-badge]: https://img.shields.io/discord/426714625279524876.svg?style=flat-square&colorB=758ED3
63
+ [chat]: https://discord.gg/FdWTckBk
64
+ [tweet-badge]: https://img.shields.io/badge/tweet-%23reactnativebrownfield-blue.svg?style=flat-square&colorB=1DA1F2&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAAAAXNSR0IArs4c6QAAAaRJREFUOBGtlM8rBGEYx3cWtRHJRaKcuMtBSitxkCQ3LtzkP9iUUu5ODspRHLhRLtq0FxeicEBC2cOivcge%2FMgan3fNM8bbzL4zm6c%2BPT%2Fe7%2FO8887svrFYBWbbtgWzsAt3sAcpqJFxxF1QV8oJFqFPFst5dLWQAT87oTgPB7DtziFRT1EA4yZolsFkhwjGYFRO8Op0KD8HVe7unoB6PRTBZG8IctAmG1xrHcfkQ2B55sfI%2ByGMXSBqV71xZ8CWdxBxN6ThFuECDEAL%2Bc9HIzDYumVZ966GZnX0SzCZvEqTbkaGywkyFE6hKAsBPhFQ18uPUqh2ggJ%2BUor%2F4M%2F%2FzOC8g6YzR1i%2F8g4vvSI%2ByD7FFNjexQrjHd8%2BnjABI3AU4Wl16TuF1qANGll81jsi5qu%2Bw6XIsCn4ijhU5FmCJpkV6BGNw410hfSf6JKBQ%2FUFxHGYBnWnmOwDwYQ%2BwzdHqO75HtiAMJfaC7ph32FSRJCENUhDHsLaJkL%2FX4wMF4%2BwA5bgAcrZE4sr0Cu9Jq9fxyrvBHWbNkMD5CEHWTjjT2m6r5D92jfmbbKJEWuMMAAAAABJRU5ErkJggg%3D%3D
65
+ [tweet]: https://twitter.com/intent/tweet?text=Check%20out%20react-native-brownfield!%20https://github.com/callstack/react-native-brownfield%20%F0%9F%91%8D
66
+ [callstack-badge]: https://callstack.com/images/callstack-badge.svg
67
+ [callstack]: https://callstack.com/open-source/?utm_source=github.com&utm_medium=referral&utm_campaign=rnbrownfield&utm_term=readme
@@ -0,0 +1,67 @@
1
+ buildscript {
2
+ ext.BrownfieldNavigation = [
3
+ kotlinVersion: "2.0.21",
4
+ minSdkVersion: 24,
5
+ compileSdkVersion: 36,
6
+ targetSdkVersion: 36
7
+ ]
8
+
9
+ ext.getExtOrDefault = { prop ->
10
+ if (rootProject.ext.has(prop)) {
11
+ return rootProject.ext.get(prop)
12
+ }
13
+
14
+ return BrownfieldNavigation[prop]
15
+ }
16
+
17
+ repositories {
18
+ google()
19
+ mavenCentral()
20
+ }
21
+
22
+ dependencies {
23
+ classpath "com.android.tools.build:gradle:8.7.2"
24
+ // noinspection DifferentKotlinGradleVersion
25
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
26
+ }
27
+ }
28
+
29
+
30
+ apply plugin: "com.android.library"
31
+ apply plugin: "kotlin-android"
32
+
33
+ apply plugin: "com.facebook.react"
34
+
35
+ android {
36
+ namespace "com.callstack.nativebrownfieldnavigation"
37
+
38
+ compileSdkVersion getExtOrDefault("compileSdkVersion")
39
+
40
+ defaultConfig {
41
+ minSdkVersion getExtOrDefault("minSdkVersion")
42
+ targetSdkVersion getExtOrDefault("targetSdkVersion")
43
+ }
44
+
45
+ buildFeatures {
46
+ buildConfig true
47
+ }
48
+
49
+ buildTypes {
50
+ release {
51
+ minifyEnabled false
52
+ }
53
+ }
54
+
55
+ lint {
56
+ disable "GradleCompatible"
57
+ }
58
+
59
+ compileOptions {
60
+ sourceCompatibility JavaVersion.VERSION_1_8
61
+ targetCompatibility JavaVersion.VERSION_1_8
62
+ }
63
+ }
64
+
65
+ dependencies {
66
+ implementation "com.facebook.react:react-android"
67
+ }
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android"
2
+ package="com.callstack.nativebrownfieldnavigation" />
@@ -0,0 +1,3 @@
1
+ package com.callstack.nativebrownfieldnavigation
2
+
3
+ interface BrownfieldNavigationDelegate
@@ -0,0 +1,14 @@
1
+ package com.callstack.nativebrownfieldnavigation
2
+
3
+ object BrownfieldNavigationManager {
4
+ private var navigationDelegate: BrownfieldNavigationDelegate? = null
5
+
6
+ fun setDelegate(navigationDelegate: BrownfieldNavigationDelegate) {
7
+ this.navigationDelegate = navigationDelegate
8
+ }
9
+
10
+ fun getDelegate(): BrownfieldNavigationDelegate {
11
+ return navigationDelegate
12
+ ?: throw IllegalStateException("BrownfieldNavigation delegate is not set.")
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ package com.callstack.nativebrownfieldnavigation
2
+
3
+ import android.util.Log
4
+ import com.facebook.react.bridge.ReactApplicationContext
5
+ import com.facebook.react.bridge.ReactMethod
6
+
7
+ class NativeBrownfieldNavigationModule(
8
+ reactContext: ReactApplicationContext
9
+ ) : NativeBrownfieldNavigationSpec(reactContext) {
10
+ @ReactMethod
11
+ override fun temporary() {
12
+ Log.d(NAME, "temporary")
13
+ }
14
+
15
+ companion object {
16
+ const val NAME = "NativeBrownfieldNavigation"
17
+ }
18
+ }
@@ -0,0 +1,31 @@
1
+ package com.callstack.nativebrownfieldnavigation
2
+
3
+ import com.facebook.react.BaseReactPackage
4
+ import com.facebook.react.bridge.NativeModule
5
+ import com.facebook.react.bridge.ReactApplicationContext
6
+ import com.facebook.react.module.model.ReactModuleInfo
7
+ import com.facebook.react.module.model.ReactModuleInfoProvider
8
+ import java.util.HashMap
9
+
10
+ class NativeBrownfieldNavigationPackage : BaseReactPackage() {
11
+ override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
12
+ return if (name == NativeBrownfieldNavigationModule.NAME) {
13
+ NativeBrownfieldNavigationModule(reactContext)
14
+ } else {
15
+ null
16
+ }
17
+ }
18
+
19
+ override fun getReactModuleInfoProvider() = ReactModuleInfoProvider {
20
+ mapOf(
21
+ NativeBrownfieldNavigationModule.NAME to ReactModuleInfo(
22
+ name = NativeBrownfieldNavigationModule.NAME,
23
+ className = NativeBrownfieldNavigationModule.NAME,
24
+ canOverrideExistingModule = false,
25
+ needsEagerInit = false,
26
+ isCxxModule = false,
27
+ isTurboModule = true
28
+ )
29
+ )
30
+ }
31
+ }
@@ -0,0 +1,5 @@
1
+ import Foundation
2
+
3
+ @objc public protocol BrownfieldNavigationDelegate: AnyObject {
4
+
5
+ }
@@ -0,0 +1,21 @@
1
+ //
2
+ // BrownfieldNavigationManager.swift
3
+ //
4
+ // Created by Hur Ali on 10/02/2026.
5
+ //
6
+
7
+ public class BrownfieldNavigationManager: NSObject {
8
+ @objc public static let shared = BrownfieldNavigationManager()
9
+ private var navigationDelegate: BrownfieldNavigationDelegate?
10
+
11
+ public func setDelegate(navigationDelegate: BrownfieldNavigationDelegate) {
12
+ self.navigationDelegate = navigationDelegate
13
+ }
14
+
15
+ @objc public func getDelegate() -> BrownfieldNavigationDelegate {
16
+ guard let delegate = navigationDelegate else {
17
+ fatalError("BrownfieldNavigationDelegate not set. Call setDelegate() before using navigation.")
18
+ }
19
+ return delegate
20
+ }
21
+ }
@@ -0,0 +1,15 @@
1
+ //
2
+ // NativeBrownfieldNavigation.h
3
+ //
4
+ // Created by Hur Ali on 10/02/2026.
5
+ //
6
+
7
+ #ifdef __cplusplus
8
+
9
+ #import <NativeBrownfieldNavigation/NativeBrownfieldNavigation.h>
10
+
11
+ @interface NativeBrownfieldNavigation : NSObject <NativeBrownfieldNavigationSpec>
12
+
13
+ @end
14
+
15
+ #endif
@@ -0,0 +1,26 @@
1
+ #import "NativeBrownfieldNavigation.h"
2
+
3
+ #if __has_include("BrownfieldNavigation/BrownfieldNavigation-Swift.h")
4
+ #import "BrownfieldNavigation/BrownfieldNavigation-Swift.h"
5
+ #else
6
+ #import "BrownfieldNavigation-Swift.h"
7
+ #endif
8
+
9
+ @implementation NativeBrownfieldNavigation
10
+
11
+ - (void)temporary {
12
+ NSLog(@"temporary");
13
+ }
14
+
15
+ - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
16
+ (const facebook::react::ObjCTurboModule::InitParams &)params
17
+ {
18
+ return std::make_shared<facebook::react::NativeBrownfieldNavigationSpecJSI>(params);
19
+ }
20
+
21
+ + (NSString *)moduleName
22
+ {
23
+ return @"NativeBrownfieldNavigation";
24
+ }
25
+
26
+ @end
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _reactNative=require("react-native");var _default=exports.default=_reactNative.TurboModuleRegistry.getEnforcing('NativeBrownfieldNavigation');
2
+ //# sourceMappingURL=NativeBrownfieldNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeBrownfieldNavigation.ts"],"mappings":"gFAAA,IAAAA,YAAA,CAAAC,OAAA,iBAAqE,IAAAC,QAAA,CAAAC,OAAA,CAAAC,OAAA,CAMtDC,gCAAmB,CAACC,YAAY,CAC7C,4BACF,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _NativeBrownfieldNavigation=_interopRequireDefault(require("./NativeBrownfieldNavigation"));var BrownfieldNavigation={temporary:function temporary(){_NativeBrownfieldNavigation.default.temporary();}};var _default=exports.default=BrownfieldNavigation;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_NativeBrownfieldNavigation","_interopRequireDefault","require","BrownfieldNavigation","temporary","NativeBrownfieldNavigation","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"mKAAA,IAAAA,2BAAA,CAAAC,sBAAA,CAAAC,OAAA,kCAEA,GAAM,CAAAC,oBAAoB,CAAG,CAC3BC,SAAS,CAAE,QAAX,CAAAA,SAASA,CAAA,CAAQ,CACfC,mCAA0B,CAACD,SAAS,CAAC,CAAC,CACxC,CACF,CAAC,CAAC,IAAAE,QAAA,CAAAC,OAAA,CAAAC,OAAA,CAEaL,oBAAoB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ var _brownfieldCli=require("@callstack/brownfield-cli");(0,_brownfieldCli.runCLI)(process.argv);
3
+ //# sourceMappingURL=brownfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_brownfieldCli","require","runCLI","process","argv"],"sourceRoot":"../../../src","sources":["scripts/brownfield.ts"],"mappings":"AAAA;AAEA,IAAAA,cAAA,CAAAC,OAAA,8BAEA,GAAAC,qBAAM,EAACC,OAAO,CAACC,IAAI,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _reactNative=require("react-native");var _default=exports.default=_reactNative.TurboModuleRegistry.getEnforcing('NativeBrownfieldNavigation');
2
+ //# sourceMappingURL=NativeBrownfieldNavigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeBrownfieldNavigation.ts"],"mappings":"gFAAA,IAAAA,YAAA,CAAAC,OAAA,iBAAqE,IAAAC,QAAA,CAAAC,OAAA,CAAAC,OAAA,CAMtDC,gCAAmB,CAACC,YAAY,CAC7C,4BACF,CAAC","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _NativeBrownfieldNavigation=_interopRequireDefault(require("./NativeBrownfieldNavigation"));var BrownfieldNavigation={temporary:function temporary(){_NativeBrownfieldNavigation.default.temporary();}};var _default=exports.default=BrownfieldNavigation;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_NativeBrownfieldNavigation","_interopRequireDefault","require","BrownfieldNavigation","temporary","NativeBrownfieldNavigation","_default","exports","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"mKAAA,IAAAA,2BAAA,CAAAC,sBAAA,CAAAC,OAAA,kCAEA,GAAM,CAAAC,oBAAoB,CAAG,CAC3BC,SAAS,CAAE,QAAX,CAAAA,SAASA,CAAA,CAAQ,CACfC,mCAA0B,CAACD,SAAS,CAAC,CAAC,CACxC,CACF,CAAC,CAAC,IAAAE,QAAA,CAAAC,OAAA,CAAAC,OAAA,CAEaL,oBAAoB","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ var _brownfieldCli=require("@callstack/brownfield-cli");(0,_brownfieldCli.runCLI)(process.argv);
3
+ //# sourceMappingURL=brownfield.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_brownfieldCli","require","runCLI","process","argv"],"sourceRoot":"../../../src","sources":["scripts/brownfield.ts"],"mappings":"AAAA;AAEA,IAAAA,cAAA,CAAAC,OAAA,8BAEA,GAAAC,qBAAM,EAACC,OAAO,CAACC,IAAI,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,7 @@
1
+ import { type TurboModule } from 'react-native';
2
+ export interface Spec extends TurboModule {
3
+ temporary(): void;
4
+ }
5
+ declare const _default: Spec;
6
+ export default _default;
7
+ //# sourceMappingURL=NativeBrownfieldNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeBrownfieldNavigation.d.ts","sourceRoot":"","sources":["../../../../src/NativeBrownfieldNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,SAAS,IAAI,IAAI,CAAC;CACnB;;AAED,wBAEE"}
@@ -0,0 +1,5 @@
1
+ declare const BrownfieldNavigation: {
2
+ temporary: () => void;
3
+ };
4
+ export default BrownfieldNavigation;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,oBAAoB;;CAIzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=brownfield.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brownfield.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/brownfield.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"type":"module"}
@@ -0,0 +1,7 @@
1
+ import { type TurboModule } from 'react-native';
2
+ export interface Spec extends TurboModule {
3
+ temporary(): void;
4
+ }
5
+ declare const _default: Spec;
6
+ export default _default;
7
+ //# sourceMappingURL=NativeBrownfieldNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeBrownfieldNavigation.d.ts","sourceRoot":"","sources":["../../../../src/NativeBrownfieldNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,SAAS,IAAI,IAAI,CAAC;CACnB;;AAED,wBAEE"}
@@ -0,0 +1,5 @@
1
+ declare const BrownfieldNavigation: {
2
+ temporary: () => void;
3
+ };
4
+ export default BrownfieldNavigation;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,oBAAoB;;CAIzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=brownfield.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brownfield.d.ts","sourceRoot":"","sources":["../../../../../src/scripts/brownfield.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,92 @@
1
+ {
2
+ "name": "@callstack/brownfield-navigation",
3
+ "version": "3.1.0",
4
+ "license": "MIT",
5
+ "author": "Hur Ali",
6
+ "description": "Brownfield navigation helpers for React Native",
7
+ "homepage": "https://github.com/callstack/react-native-brownfield",
8
+ "main": "lib/commonjs/index",
9
+ "module": "lib/module/index",
10
+ "types": "./lib/typescript/commonjs/src/index.d.ts",
11
+ "react-native": "src/index",
12
+ "exports": {
13
+ ".": {
14
+ "import": {
15
+ "types": "./lib/typescript/module/src/index.d.ts",
16
+ "default": "./lib/module/index.js"
17
+ },
18
+ "require": {
19
+ "types": "./lib/typescript/commonjs/src/index.d.ts",
20
+ "default": "./lib/commonjs/index.js"
21
+ }
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
25
+ "bin": {
26
+ "brownfield": "lib/commonjs/scripts/brownfield.js"
27
+ },
28
+ "scripts": {
29
+ "lint": "eslint .",
30
+ "typecheck": "tsc --noEmit",
31
+ "build": "bob build",
32
+ "dev": "nodemon --watch src --ext js,ts,json --exec \"bob build\"",
33
+ "build:brownfield": "yarn run build",
34
+ "prepack": "cp ../../README.md ./README.md",
35
+ "postpack": "rm ./README.md"
36
+ },
37
+ "files": [
38
+ "src",
39
+ "lib",
40
+ "android",
41
+ "ios",
42
+ "*.podspec",
43
+ "!ios/build",
44
+ "!android/build",
45
+ "!android/gradle",
46
+ "!android/gradlew",
47
+ "!android/gradlew.bat",
48
+ "!android/local.properties",
49
+ "!**/__tests__",
50
+ "!**/__fixtures__",
51
+ "!**/__mocks__",
52
+ "!**/.*",
53
+ "README.md"
54
+ ],
55
+ "publishConfig": {
56
+ "access": "public"
57
+ },
58
+ "dependencies": {
59
+ "@callstack/brownfield-cli": "workspace:^"
60
+ },
61
+ "peerDependencies": {
62
+ "react": "*",
63
+ "react-native": "*"
64
+ },
65
+ "devDependencies": {
66
+ "@babel/core": "^7.25.2",
67
+ "@babel/preset-env": "^7.25.3",
68
+ "@babel/runtime": "^7.25.0",
69
+ "@react-native/babel-preset": "0.82.1",
70
+ "@types/jest": "^30.0.0",
71
+ "@types/react": "^19.1.1",
72
+ "eslint": "^9.28.0",
73
+ "globals": "^16.2.0",
74
+ "import": "^0.0.6",
75
+ "nodemon": "^3.1.11",
76
+ "react": "19.1.1",
77
+ "react-native": "0.82.1",
78
+ "react-native-builder-bob": "^0.40.17",
79
+ "typescript": "5.9.3"
80
+ },
81
+ "codegenConfig": {
82
+ "name": "NativeBrownfieldNavigation",
83
+ "type": "modules",
84
+ "jsSrcsDir": "./src",
85
+ "android": {
86
+ "javaPackageName": "com.callstack.nativebrownfieldnavigation"
87
+ }
88
+ },
89
+ "engines": {
90
+ "node": ">=20"
91
+ }
92
+ }
@@ -0,0 +1,9 @@
1
+ import { TurboModuleRegistry, type TurboModule } from 'react-native';
2
+
3
+ export interface Spec extends TurboModule {
4
+ temporary(): void;
5
+ }
6
+
7
+ export default TurboModuleRegistry.getEnforcing<Spec>(
8
+ 'NativeBrownfieldNavigation'
9
+ );
package/src/index.ts ADDED
@@ -0,0 +1,9 @@
1
+ import NativeBrownfieldNavigation from './NativeBrownfieldNavigation';
2
+
3
+ const BrownfieldNavigation = {
4
+ temporary: () => {
5
+ NativeBrownfieldNavigation.temporary();
6
+ },
7
+ };
8
+
9
+ export default BrownfieldNavigation;
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { runCLI } from '@callstack/brownfield-cli';
4
+
5
+ runCLI(process.argv);