├── .nvmrc ├── .yarnrc.yml ├── apps ├── AEPSampleApp │ ├── .watchmanconfig │ ├── jest.config.js │ ├── types │ │ └── props.ts │ ├── .bundle │ │ └── config │ ├── app.json │ ├── tsconfig.json │ ├── .eslintrc.js │ ├── android │ │ ├── app │ │ │ ├── src │ │ │ │ ├── main │ │ │ │ │ ├── res │ │ │ │ │ │ ├── values │ │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ │ └── mipmap-xxxhdpi │ │ │ │ │ │ │ ├── ic_launcher.png │ │ │ │ │ │ │ └── ic_launcher_round.png │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── aepsampleapp │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ └── debug │ │ │ │ │ └── AndroidManifest.xml │ │ │ ├── debug.keystore │ │ │ └── proguard-rules.pro │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── settings.gradle │ │ └── build.gradle │ ├── ios │ │ ├── AEPSampleApp │ │ │ ├── Images.xcassets │ │ │ │ ├── Contents.json │ │ │ │ └── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ ├── AppDelegate.h │ │ │ ├── main.m │ │ │ └── AppDelegate.mm │ │ ├── aepsampleapp-Bridging-Header.h │ │ ├── AEPSampleApp.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── AEPSampleApp.xcodeproj │ │ │ └── project.xcworkspace │ │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── .xcode.env │ │ ├── dummy.swift │ │ └── AEPSampleAppTests │ │ │ └── Info.plist │ ├── babel.config.js │ ├── .prettierrc.js │ ├── Gemfile │ ├── index.js │ ├── .gitignore │ └── styles │ │ └── styles.ts └── AEPSampleAppNewArchEnabled │ ├── hooks │ ├── useColorScheme.ts │ ├── useColorScheme.web.ts │ └── useThemeColor.ts │ ├── jest.config.js │ ├── types │ └── props.ts │ ├── assets │ ├── images │ │ ├── icon.png │ │ ├── splash.png │ │ ├── favicon.png │ │ ├── react-logo.png │ │ ├── adaptive-icon.png │ │ ├── react-logo@2x.png │ │ ├── react-logo@3x.png │ │ └── partial-react-logo.png │ └── fonts │ │ └── SpaceMono-Regular.ttf │ ├── tsconfig.json │ ├── components │ ├── __tests__ │ │ ├── ThemedText-test.tsx │ │ └── __snapshots__ │ │ │ └── ThemedText-test.tsx.snap │ ├── navigation │ │ └── TabBarIcon.tsx │ ├── ThemedView.tsx │ ├── ExternalLink.tsx │ ├── HelloWave.tsx │ ├── Collapsible.tsx │ └── ThemedText.tsx │ ├── .gitignore │ ├── constants │ └── Colors.ts │ ├── app │ └── +not-found.tsx │ ├── app.json │ └── styles │ └── styles.ts ├── packages ├── core │ ├── android │ │ ├── README.md │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── src │ │ ├── models │ │ │ ├── PrivacyStatus.ts │ │ │ ├── LogLevel.ts │ │ │ ├── MobileVisitorAuthenticationState.ts │ │ │ ├── Event.ts │ │ │ ├── VisitorID.ts │ │ │ └── InitOptions.ts │ │ ├── Signal.ts │ │ ├── Lifecycle.ts │ │ └── index.ts │ ├── ios │ │ └── src │ │ │ ├── Core │ │ │ ├── RCTAEPCore.h │ │ │ └── RCTAEPCoreDataBridge.h │ │ │ ├── Signal │ │ │ ├── RCTAEPSignal.h │ │ │ └── RCTAEPSignal.m │ │ │ ├── Identity │ │ │ └── RCTAEPIdentity.h │ │ │ └── Lifecycle │ │ │ ├── RCTAEPLifecycle.h │ │ │ └── RCTAEPLifecycle.m │ ├── RCTAEPCore.podspec │ ├── package.json │ ├── __tests__ │ │ ├── SignalTests.ts │ │ └── LifecycleTests.ts │ └── .npmignore ├── edge │ ├── android │ │ ├── README.md │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── ios │ │ └── src │ │ │ ├── RCTAEPEdge.h │ │ │ └── RCTAEPExperienceEventDataBridge.h │ ├── RCTAEPEdge.podspec │ ├── src │ │ ├── index.ts │ │ └── models │ │ │ └── EdgeEventHandle.ts │ ├── package.json │ └── .npmignore ├── edgebridge │ ├── android │ │ ├── README.md │ │ ├── src │ │ │ └── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── adobe │ │ │ │ └── marketing │ │ │ │ └── mobile │ │ │ │ └── reactnative │ │ │ │ └── edgebridge │ │ │ │ └── RCTAEPEdgeBridgeModule.java │ │ └── build.gradle │ ├── tsconfig.json │ ├── src │ │ ├── index.ts │ │ └── EdgeBridge.ts │ ├── ios │ │ └── src │ │ │ ├── RCTAEPEdgeBridge.h │ │ │ └── RCTAEPEdgeBridge.m │ ├── RCTAEPEdgeBridge.podspec │ ├── __tests__ │ │ └── EdgeBridgeTests.ts │ ├── package.json │ └── .npmignore ├── edgeconsent │ ├── android │ │ ├── README.md │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── src │ │ └── index.ts │ ├── ios │ │ └── src │ │ │ └── RCTAEPEdgeConsent.h │ ├── RCTAEPEdgeConsent.podspec │ ├── package.json │ └── .npmignore ├── messaging │ ├── android │ │ ├── README.md │ │ ├── src │ │ │ └── main │ │ │ │ ├── AndroidManifestNew.xml │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── adobe │ │ │ │ └── marketing │ │ │ │ └── mobile │ │ │ │ └── reactnative │ │ │ │ └── messaging │ │ │ │ └── RCTAEPMessagingConstants.java │ │ └── gradle.properties │ ├── tsconfig.json │ ├── ios │ │ └── src │ │ │ ├── RCTAEPMessaging-Bridging-Header.h │ │ │ └── RCTAEPMessagingConstants.swift │ ├── src │ │ └── models │ │ │ ├── MessagingEdgeEventType.ts │ │ │ ├── ScopeDetails.ts │ │ │ ├── InAppMessage.ts │ │ │ ├── HTMLProposition.ts │ │ │ ├── JSONProposition.ts │ │ │ ├── MessagingPropositionItem.ts │ │ │ └── PersonalizationSchema.ts │ ├── RCTAEPMessaging.podspec │ ├── package.json │ └── .npmignore ├── optimize │ ├── android │ │ ├── README.md │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── src │ │ │ └── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── adobe │ │ │ │ └── marketing │ │ │ │ └── mobile │ │ │ │ └── reactnative │ │ │ │ └── optimize │ │ │ │ └── RCTAEPOptimizeConstants.java │ │ └── build.gradle │ ├── tsconfig.json │ ├── __tests__ │ │ ├── offer.json │ │ └── proposition.json │ ├── RCTAEPOptimize.podspec │ ├── ios │ │ └── src │ │ │ └── RCTAEPOptimize.h │ ├── src │ │ ├── models │ │ │ ├── AdobePropositionCallback.ts │ │ │ └── AEPOptimizeError.ts │ │ └── index.ts │ ├── package.json │ └── .npmignore ├── userprofile │ ├── android │ │ ├── README.md │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── src │ │ └── index.ts │ ├── ios │ │ └── src │ │ │ └── RCTAEPUserProfile.h │ ├── RCTAEPUserProfile.podspec │ ├── package.json │ └── .npmignore ├── edgeidentity │ ├── android │ │ ├── README.md │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── src │ │ ├── models │ │ │ ├── AuthenticatedState.ts │ │ │ └── IdentityItem.ts │ │ └── index.ts │ ├── ios │ │ └── src │ │ │ ├── RCTAEPEdgeIdentity.h │ │ │ └── RCTAEPEdgeIdentityDataBridge.h │ ├── RCTAEPEdgeIdentity.podspec │ ├── package.json │ └── .npmignore ├── places │ ├── android │ │ ├── .idea │ │ │ └── .gitignore │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── ios │ │ └── src │ │ │ ├── RCTAEPPlaces.h │ │ │ └── RCTAEPPlacesDataBridge.h │ ├── RCTAEPPlaces.podspec │ ├── src │ │ ├── models │ │ │ ├── PlacesGeofenceTransitionType.ts │ │ │ ├── PlacesAuthStatus.ts │ │ │ ├── PlacesLocation.ts │ │ │ └── PlacesGeofence.ts │ │ └── index.ts │ ├── package.json │ └── .npmignore ├── campaignclassic │ ├── android │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── src │ │ ├── index.ts │ │ └── models │ │ │ └── UserInfo.ts │ ├── ios │ │ └── src │ │ │ └── RCTAEPCampaignClassic.h │ ├── RCTAEPCampaignClassic.podspec │ ├── package.json │ └── .npmignore ├── target │ ├── android │ │ ├── src │ │ │ └── main │ │ │ │ └── AndroidManifest.xml │ │ └── build.gradle │ ├── tsconfig.json │ ├── RCTAEPTarget.podspec │ ├── ios │ │ └── src │ │ │ ├── AEPTargetOrderDataBridge.h │ │ │ ├── AEPTargetProductDataBridge.h │ │ │ ├── AEPTargetParametersDataBridge.h │ │ │ ├── AEPTargetPrefetchObjectDataBridge.h │ │ │ ├── RCTAEPTarget.h │ │ │ ├── AEPTargetRequestObjectDataBridge.h │ │ │ ├── AEPTargetProductDataBridge.m │ │ │ ├── AEPTargetOrderDataBridge.m │ │ │ └── AEPTargetPrefetchObjectDataBridge.m │ ├── src │ │ ├── models │ │ │ ├── TargetProduct.ts │ │ │ ├── TargetPrefetchObject.ts │ │ │ ├── TargetOrder.ts │ │ │ └── TargetParameters.ts │ │ └── index.ts │ ├── package.json │ └── .npmignore └── assurance │ ├── tsconfig.json │ ├── android │ ├── src │ │ └── main │ │ │ └── AndroidManifest.xml │ └── build.gradle │ ├── src │ └── index.ts │ ├── ios │ └── src │ │ ├── RCTAEPAssurance.h │ │ └── RCTAEPAssurance.m │ ├── RCTAEPAssurance.podspec │ ├── package.json │ ├── __tests__ │ └── AssuranceTests.ts │ └── .npmignore ├── babel.config.js ├── lerna.json ├── docs └── resources │ └── xcode c++ flag screenshot.png ├── .swift-format ├── .github ├── ISSUE_TEMPLATE.md ├── ISSUE_TEMPLATE │ ├── project_task.yml │ ├── project_epic.yml │ └── feature_request.yml └── release-drafter.yml ├── jest.config.js ├── tsconfig.json └── .npmignore /.nvmrc: -------------------------------------------------------------------------------- 1 | 18.18.0 2 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/.watchmanconfig: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /packages/core/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /packages/edge/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/types/props.ts: -------------------------------------------------------------------------------- 1 | export interface NavigationProps { 2 | navigation: any; 3 | } -------------------------------------------------------------------------------- /packages/edgebridge/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /packages/edgeconsent/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /packages/messaging/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /packages/optimize/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /packages/userprofile/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/.bundle/config: -------------------------------------------------------------------------------- 1 | BUNDLE_PATH: "vendor/bundle" 2 | BUNDLE_FORCE_RUBY_PLATFORM: 1 3 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "AEPSampleApp", 3 | "displayName": "AEPSampleApp" 4 | } -------------------------------------------------------------------------------- /packages/edgeidentity/android/README.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | Open `build.gradle` in Android Studio. 4 | -------------------------------------------------------------------------------- /packages/places/android/.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /shelf/ 3 | /workspace.xml 4 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@react-native/typescript-config/tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/hooks/useColorScheme.ts: -------------------------------------------------------------------------------- 1 | export { useColorScheme } from 'react-native'; 2 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:metro-react-native-babel-preset'], 3 | }; 4 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | extends: '@react-native', 4 | }; 5 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: 'react-native', 3 | }; 4 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/types/props.ts: -------------------------------------------------------------------------------- 1 | export interface NavigationProps { 2 | navigation: any; 3 | } -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "packages": [ 3 | "packages/*", 4 | "apps/*" 5 | ], 6 | "npmClient": "yarn", 7 | "version": "independent" 8 | } -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | aepsampleapp 3 | 4 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/debug.keystore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/debug.keystore -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /docs/resources/xcode c++ flag screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/docs/resources/xcode c++ flag screenshot.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['module:@react-native/babel-preset'], 3 | plugins: ['react-native-reanimated/plugin'] 4 | }; 5 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/aepsampleapp-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/icon.png -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/splash.png -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/favicon.png -------------------------------------------------------------------------------- /packages/places/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/packages/places/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/react-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/react-logo.png -------------------------------------------------------------------------------- /packages/optimize/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/packages/optimize/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/adaptive-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/adaptive-icon.png -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/react-logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/react-logo@2x.png -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/react-logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/react-logo@3x.png -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/fonts/SpaceMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/fonts/SpaceMono-Regular.ttf -------------------------------------------------------------------------------- /packages/campaignclassic/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/packages/campaignclassic/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/assets/images/partial-react-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleAppNewArchEnabled/assets/images/partial-react-logo.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/.prettierrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | arrowParens: 'avoid', 3 | bracketSameLine: true, 4 | bracketSpacing: false, 5 | singleQuote: true, 6 | trailingComma: 'all', 7 | }; 8 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /packages/messaging/android/src/main/AndroidManifestNew.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adobe/aepsdk-react-native/HEAD/apps/AEPSampleApp/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /packages/edge/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/messaging/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /packages/places/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/target/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /packages/optimize/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/edge/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/edgebridge/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/optimize/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/places/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/target/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/assurance/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/edgebridge/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/edgeconsent/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/edgeconsent/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/edgeidentity/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/edgeidentity/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/messaging/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/userprofile/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/userprofile/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/campaignclassic/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /packages/campaignclassic/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tsconfig.json", 3 | "compilerOptions": { 4 | "noEmit": false, 5 | "rootDir": "./src", 6 | "outDir": "./dist" 7 | }, 8 | "exclude": ["__tests__", "dist"] 9 | } -------------------------------------------------------------------------------- /packages/messaging/android/gradle.properties: -------------------------------------------------------------------------------- 1 | ReactNativeMessaging_kotlinVersion=1.7.0 2 | ReactNativeMessaging_minSdkVersion=21 3 | ReactNativeMessaging_targetSdkVersion=34 4 | ReactNativeMessaging_compileSdk=34 5 | ReactNativeMessaging_ndkversion=21.4.7075529 6 | -------------------------------------------------------------------------------- /.swift-format: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "lineLength": 100, 4 | "indentation": { 5 | "spaces": 4 6 | }, 7 | "maximumBlankLines": 1, 8 | "respectsExistingLineBreaks": true, 9 | "lineBreakBeforeControlFlowKeywords": true, 10 | "lineBreakBeforeEachArgument": true 11 | } 12 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'AEPSampleApp' 2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) 3 | include ':app' 4 | includeBuild('../node_modules/@react-native/gradle-plugin') 5 | -------------------------------------------------------------------------------- /packages/places/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue May 26 17:09:19 PDT 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-all.zip 7 | -------------------------------------------------------------------------------- /packages/optimize/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jun 05 11:02:05 MDT 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-all.zip 7 | -------------------------------------------------------------------------------- /packages/campaignclassic/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Wed Jun 05 11:02:05 MDT 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-all.zip 7 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip 4 | networkTimeout=10000 5 | validateDistributionUrl=true 6 | zipStoreBase=GRADLE_USER_HOME 7 | zipStorePath=wrapper/dists 8 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "expo/tsconfig.base", 3 | "compilerOptions": { 4 | "strict": true, 5 | "paths": { 6 | "@/*": [ 7 | "./*" 8 | ] 9 | } 10 | }, 11 | "include": [ 12 | "**/*.ts", 13 | "**/*.tsx", 14 | ".expo/types/**/*.ts", 15 | "expo-env.d.ts" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /packages/assurance/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/__tests__/ThemedText-test.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import renderer from 'react-test-renderer'; 3 | 4 | import { ThemedText } from '../ThemedText'; 5 | 6 | it(`renders correctly`, () => { 7 | const tree = renderer.create(Snapshot test!).toJSON(); 8 | 9 | expect(tree).toMatchSnapshot(); 10 | }); 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Blank issue 3 | labels: task 4 | --- 5 | ## Prerequisites 6 | 7 | - [ ] I have searched in this repository's issues to see if it has already been reported. 8 | - [ ] This is not a Security Disclosure, otherwise please follow the guidelines in [Security Policy](https://github.com/adobe/aepsdk-analytics-android/security/policy). 9 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version 4 | ruby ">= 2.6.10" 5 | 6 | # Cocoapods 1.15 introduced a bug which break the build. We will remove the upper 7 | # bound in the template on Cocoapods with next React Native release. 8 | gem 'cocoapods', '>= 1.13', '< 1.15' 9 | gem 'activesupport', '>= 6.1.7.5', '< 7.1.0' 10 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | .expo/ 3 | dist/ 4 | npm-debug.* 5 | *.jks 6 | *.p8 7 | *.p12 8 | *.key 9 | *.mobileprovision 10 | *.orig.* 11 | web-build/ 12 | 13 | # macOS 14 | .DS_Store 15 | 16 | # @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb 17 | # The following patterns were generated by expo-cli 18 | 19 | expo-env.d.ts 20 | # @end expo-cli 21 | 22 | .idea/* 23 | !/.idea/file_to_keep.xml# Exclude native builds 24 | android/ 25 | ios/ 26 | -------------------------------------------------------------------------------- /packages/optimize/__tests__/offer.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "xcore:personalized-offer:2222222222222222", 3 | "etag": "7", 4 | "schema": "https://ns.adobe.com/experience/offer-management/content-component-text", 5 | "data": { 6 | "id": "xcore:personalized-offer:2222222222222222", 7 | "format": "text/plain", 8 | "content": "This is a plain text content!", 9 | "language": ["en-us"], 10 | "characteristics": { 11 | "mobile": "true" 12 | } 13 | }, 14 | "score": 1 15 | } 16 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/__tests__/__snapshots__/ThemedText-test.tsx.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`renders correctly 1`] = ` 4 | 22 | Snapshot test! 23 | 24 | `; 25 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/hooks/useColorScheme.web.ts: -------------------------------------------------------------------------------- 1 | // NOTE: The default React Native styling doesn't support server rendering. 2 | // Server rendered styles should not change between the first render of the HTML 3 | // and the first render on the client. Typically, web developers will use CSS media queries 4 | // to render different styles on the client and server, these aren't directly supported in React Native 5 | // but can be achieved using a styling library like Nativewind. 6 | export function useColorScheme() { 7 | return 'light'; 8 | } 9 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/navigation/TabBarIcon.tsx: -------------------------------------------------------------------------------- 1 | // You can explore the built-in icon families and icons on the web at https://icons.expo.fyi/ 2 | 3 | import Ionicons from '@expo/vector-icons/Ionicons'; 4 | import { type IconProps } from '@expo/vector-icons/build/createIconSet'; 5 | import { type ComponentProps } from 'react'; 6 | 7 | export function TabBarIcon({ style, ...rest }: IconProps['name']>) { 8 | return ; 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 8 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/.xcode.env: -------------------------------------------------------------------------------- 1 | # This `.xcode.env` file is versioned and is used to source the environment 2 | # used when running script phases inside Xcode. 3 | # To customize your local environment, you can create an `.xcode.env.local` 4 | # file that is not versioned. 5 | 6 | # NODE_BINARY variable contains the PATH to the node executable. 7 | # 8 | # Customize the NODE_BINARY variable here. 9 | # For example, to use nvm with brew, add the following line 10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use 11 | export NODE_BINARY=$(command -v node) 12 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/ThemedView.tsx: -------------------------------------------------------------------------------- 1 | import { View, type ViewProps } from 'react-native'; 2 | 3 | import { useThemeColor } from '@/hooks/useThemeColor'; 4 | 5 | export type ThemedViewProps = ViewProps & { 6 | lightColor?: string; 7 | darkColor?: string; 8 | }; 9 | 10 | export function ThemedView({ style, lightColor, darkColor, ...otherProps }: ThemedViewProps) { 11 | const backgroundColor = useThemeColor({ light: lightColor, dark: darkColor }, 'background'); 12 | 13 | return ; 14 | } 15 | -------------------------------------------------------------------------------- /jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | maxConcurrency: 10, 3 | preset: './apps/AEPSampleAppNewArchEnabled/node_modules/react-native/jest-preset.js', 4 | transform: { 5 | '^.+\\.(js)$': '/node_modules/babel-jest', 6 | '\\.(ts|tsx)$': 'ts-jest' 7 | }, 8 | setupFiles: ['./tests/jest/setup.ts'], 9 | testMatch: ['**/packages/**/__tests__/*.ts'], 10 | modulePaths: ['node_modules', './apps/AEPSampleAppNewArchEnabled/node_modules'], 11 | testPathIgnorePatterns: ['./packages/template'], 12 | moduleDirectories: ['node_modules', './apps/AEPSampleAppNewArchEnabled/node_modules'], 13 | moduleFileExtensions: ['ts', 'tsx', 'js'], 14 | }; -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/project_task.yml: -------------------------------------------------------------------------------- 1 | name: Project task 2 | description: Create an internal task that can be completed as a standalone code change or is part of an epic. 3 | labels: [task] 4 | body: 5 | - type: textarea 6 | attributes: 7 | label: Task description 8 | description: Please provide a summary or the "what" of the task logged. 9 | validations: 10 | required: true 11 | 12 | - type: textarea 13 | attributes: 14 | label: Additional implementation details or code snippet(s) 15 | description: Provide additional information about this task, implementation details or code snippets. 16 | validations: 17 | required: false 18 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext { 3 | buildToolsVersion = "34.0.0" 4 | minSdkVersion = 21 5 | compileSdkVersion = 34 6 | targetSdkVersion = 34 7 | ndkVersion = "25.1.8937393" 8 | kotlinVersion = "1.8.0" 9 | } 10 | repositories { 11 | google() 12 | mavenCentral() 13 | } 14 | dependencies { 15 | classpath("com.android.tools.build:gradle") 16 | classpath("com.facebook.react:react-native-gradle-plugin") 17 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") 18 | } 19 | } 20 | 21 | apply plugin: "com.facebook.react.rootproject" 22 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/hooks/useThemeColor.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Learn more about light and dark modes: 3 | * https://docs.expo.dev/guides/color-schemes/ 4 | */ 5 | 6 | import { useColorScheme } from 'react-native'; 7 | 8 | import { Colors } from '@/constants/Colors'; 9 | 10 | export function useThemeColor( 11 | props: { light?: string; dark?: string }, 12 | colorName: keyof typeof Colors.light & keyof typeof Colors.dark 13 | ) { 14 | const theme = useColorScheme() ?? 'light'; 15 | const colorFromProps = props[theme]; 16 | 17 | if (colorFromProps) { 18 | return colorFromProps; 19 | } else { 20 | return Colors[theme][colorName]; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/dummy.swift: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | import Foundation 13 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2024 Adobe. All rights reserved. 3 | # This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. You may obtain a copy 5 | # of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | # 7 | # Unless required by applicable law or agreed to in writing, software distributed under 8 | # the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | # OF ANY KIND, either express or implied. See the License for the specific language 10 | # governing permissions and limitations under the License. 11 | # 12 | 13 | template: | 14 | ## What’s Changed 15 | 16 | $CHANGES -------------------------------------------------------------------------------- /packages/edgeconsent/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import Consent from './Consent'; 14 | 15 | export { Consent }; 16 | -------------------------------------------------------------------------------- /packages/edgebridge/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import EdgeBridge from './EdgeBridge'; 14 | 15 | export { EdgeBridge }; 16 | -------------------------------------------------------------------------------- /packages/userprofile/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import UserProfile from './UserProfile'; 14 | 15 | export { UserProfile }; 16 | -------------------------------------------------------------------------------- /packages/assurance/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import Assurance from './Assurance'; 14 | 15 | export { 16 | // Native modules 17 | Assurance 18 | }; 19 | -------------------------------------------------------------------------------- /packages/assurance/ios/src/RCTAEPAssurance.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | 14 | @interface RCTAEPAssurance : NSObject 15 | @end 16 | -------------------------------------------------------------------------------- /packages/core/src/models/PrivacyStatus.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | export enum PrivacyStatus { 14 | OPT_IN = 'OPT_IN', 15 | OPT_OUT = 'OPT_OUT', 16 | UNKNOWN = 'UNKNOWN' 17 | } 18 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp/AppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | 15 | @interface AppDelegate : RCTAppDelegate 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /packages/core/src/models/LogLevel.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | export enum LogLevel { 14 | ERROR = 'ERROR', 15 | WARNING = 'WARNING', 16 | DEBUG = 'DEBUG', 17 | VERBOSE = 'VERBOSE' 18 | } 19 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "noEmit": true, 4 | "target": "es2016", 5 | "module": "commonjs", 6 | "declaration": true, 7 | "importHelpers": true, 8 | "jsx": "react-native", 9 | "sourceMap": true, 10 | "strict": true, 11 | "noUnusedLocals": true, 12 | "noUnusedParameters": true, 13 | "noImplicitReturns": true, 14 | "noFallthroughCasesInSwitch": true, 15 | "moduleResolution": "node", 16 | "skipLibCheck": true, 17 | "experimentalDecorators": true, 18 | "emitDecoratorMetadata": true, 19 | "esModuleInterop": true, 20 | "lib": ["es2015", "es2016", "esnext"], 21 | "strictNullChecks": true, 22 | "resolveJsonModule": true, 23 | "noImplicitAny": false 24 | }, 25 | "exclude": ["node_modules", "**/*.spec.ts"] 26 | } 27 | -------------------------------------------------------------------------------- /packages/messaging/ios/src/RCTAEPMessaging-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | #import 14 | #import 15 | #import 16 | -------------------------------------------------------------------------------- /packages/edge/ios/src/RCTAEPEdge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | 15 | @interface RCTAEPEdge : NSObject 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /packages/places/ios/src/RCTAEPPlaces.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import 14 | #import 15 | 16 | @interface RCTAEPPlaces : NSObject 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /packages/core/ios/src/Core/RCTAEPCore.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | 14 | #import 15 | #import 16 | 17 | @interface RCTAEPCore : NSObject 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /packages/core/ios/src/Signal/RCTAEPSignal.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import 14 | #import 15 | 16 | @interface RCTAEPSignal : NSObject 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /packages/edgeidentity/src/models/AuthenticatedState.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | export enum AuthenticatedState { 14 | AUTHENTICATED = 'authenticated', 15 | LOGGED_OUT = 'loggedOut', 16 | AMBIGUOUS = 'ambiguous' 17 | } 18 | -------------------------------------------------------------------------------- /packages/core/ios/src/Identity/RCTAEPIdentity.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import 14 | #import 15 | 16 | @interface RCTAEPIdentity : NSObject 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /packages/core/ios/src/Lifecycle/RCTAEPLifecycle.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import 14 | #import 15 | 16 | @interface RCTAEPLifecycle : NSObject 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /packages/edgebridge/ios/src/RCTAEPEdgeBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | 15 | @interface RCTAEPEdgeBridge : NSObject 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /packages/edgeidentity/ios/src/RCTAEPEdgeIdentity.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | 15 | @interface RCTAEPEdgeIdentity : NSObject 16 | 17 | @end -------------------------------------------------------------------------------- /apps/AEPSampleApp/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { AppRegistry } from 'react-native'; 14 | import App from './App'; 15 | import { name as appName } from './app.json'; 16 | 17 | AppRegistry.registerComponent(appName, () => App); 18 | -------------------------------------------------------------------------------- /packages/edgeconsent/ios/src/RCTAEPEdgeConsent.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | 15 | @interface RCTAEPEdgeConsent : NSObject 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /packages/userprofile/ios/src/RCTAEPUserProfile.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | 15 | @interface RCTAEPUserProfile : NSObject 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /packages/places/RCTAEPPlaces.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPPlaces" 6 | s.version = package["version"] 7 | s.summary = "Places library for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platform = :ios, '12.0' 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/**/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPPlaces", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/target/RCTAEPTarget.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPTarget" 6 | s.version = package["version"] 7 | s.summary = "Target library for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platform = :ios, '12.0' 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/**/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPTarget", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/ExternalLink.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from 'expo-router'; 2 | import { openBrowserAsync } from 'expo-web-browser'; 3 | import { type ComponentProps } from 'react'; 4 | import { Platform } from 'react-native'; 5 | 6 | type Props = Omit, 'href'> & { href: string }; 7 | 8 | export function ExternalLink({ href, ...rest }: Props) { 9 | return ( 10 | { 15 | if (Platform.OS !== 'web') { 16 | // Prevent the default behavior of linking to the default browser on native. 17 | event.preventDefault(); 18 | // Open the link in an in-app browser. 19 | await openBrowserAsync(href); 20 | } 21 | }} 22 | /> 23 | ); 24 | } 25 | -------------------------------------------------------------------------------- /packages/campaignclassic/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import CampaignClassic from './CampaignClassic'; 14 | import { UserInfo } from './models/UserInfo'; 15 | 16 | export { CampaignClassic, UserInfo }; 17 | 18 | export default CampaignClassic; 19 | -------------------------------------------------------------------------------- /packages/assurance/RCTAEPAssurance.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPAssurance" 6 | s.version = package["version"] 7 | s.summary = "AEPAssurance library for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platform = :ios, '12.0' 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/src/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPAssurance", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/project_epic.yml: -------------------------------------------------------------------------------- 1 | name: Project epic 2 | description: Create an internal epic that represents the top level parent of multiple tasks. 3 | labels: [epic] 4 | 5 | body: 6 | - type: textarea 7 | id: description 8 | attributes: 9 | label: Epic description 10 | description: Please provide a detailed description for this epic. 11 | validations: 12 | required: true 13 | 14 | - type: textarea 15 | id: tasks 16 | attributes: 17 | label: Tasks 18 | description: | 19 | Provide a high-level definition of done for this epic as a list of tasks that need to be completed. 20 | Tip: List out the task links if they already exist or list them out as text with a descriptive title so they can be easily converted to task items. 21 | placeholder: | 22 | - [ ] your task link here 23 | validations: 24 | required: false 25 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleAppTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /packages/userprofile/RCTAEPUserProfile.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPUserProfile" 6 | s.version = package["version"] 7 | s.summary = "User Profile library for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platform = :ios, '12.0' 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/**/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPUserProfile", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/campaignclassic/src/models/UserInfo.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | export class UserInfo { 14 | _mId: string; 15 | _dId: string; 16 | [key: string]: any; 17 | constructor(mId: string, dId: string) { 18 | this._mId = mId; 19 | this._dId = dId; 20 | } 21 | } -------------------------------------------------------------------------------- /packages/optimize/RCTAEPOptimize.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPOptimize" 6 | s.version = package["version"] 7 | s.summary = "Experience Platform Optimize extension for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platform = :ios, '12.0' 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :branch => "optimize" } 16 | 17 | s.source_files = 'ios/**/*.{h,m}' 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPOptimize", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/optimize/ios/src/RCTAEPOptimize.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | #import 15 | 16 | @interface RCTAEPOptimize : RCTEventEmitter 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetOrderDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | @import AEPTarget; 14 | #import "AEPTargetOrderDataBridge.h" 15 | 16 | @interface AEPTargetOrder (RCTBridge) 17 | 18 | + (AEPTargetOrder *)targetOrderFromDict:(NSDictionary *)dict; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /packages/optimize/__tests__/proposition.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "de03ac85-802a-4331-a905-a57053164d35", 3 | "items": [ 4 | { 5 | "id": "xcore:personalized-offer:1111111111111111", 6 | "etag": "10", 7 | "schema": "https://ns.adobe.com/experience/offer-management/content-component-html", 8 | "data": { 9 | "id": "xcore:personalized-offer:1111111111111111", 10 | "format": "text/html", 11 | "content": "

This is a HTML content

" 12 | } 13 | } 14 | ], 15 | "placement": { 16 | "etag": "1", 17 | "id": "xcore:offer-placement:1111111111111111" 18 | }, 19 | "activity": { 20 | "etag": "8", 21 | "id": "xcore:offer-activity:1111111111111111" 22 | }, 23 | "scope": "eydhY3Rpdml0eUlkIjoieGNvcmU6b2ZmZXItYWN0aXZpdHk6MTExMTExMTExMTExMTExMSIsInBsYWNlbWVudElkIjoieGNvcmU6b2ZmZXItcGxhY2VtZW50OjExMTExMTExMTExMTExMTEifQ==" 24 | } 25 | -------------------------------------------------------------------------------- /packages/edge/RCTAEPEdge.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPEdge" 6 | s.version = package["version"] 7 | s.summary = "Adobe Experience Platform Edge Network extension for Adobe Experience Platform Mobile SDK. Written and maintained by Adobe" 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platforms = { :ios => "12.0", :tvos => "12.0" } 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/**/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPEdge", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/edgebridge/RCTAEPEdgeBridge.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPEdgeBridge" 6 | s.version = package["version"] 7 | s.summary = "Adobe Experience Platform Edge Bridge extension for AEP Mobile SDK. Written and maintained by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platforms = { :ios => "12.0", :tvos => "12.0" } 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/**/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPEdgeBridge", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetProductDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | @import AEPTarget; 14 | #import "AEPTargetProductDataBridge.h" 15 | 16 | @interface AEPTargetProduct (RCTBridge) 17 | 18 | + (AEPTargetProduct *)targetProductFromDict:(NSDictionary *)dict; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/constants/Colors.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Below are the colors that are used in the app. The colors are defined in the light and dark mode. 3 | * There are many other ways to style your app. For example, [Nativewind](https://www.nativewind.dev/), [Tamagui](https://tamagui.dev/), [unistyles](https://reactnativeunistyles.vercel.app), etc. 4 | */ 5 | 6 | const tintColorLight = '#0a7ea4'; 7 | const tintColorDark = '#fff'; 8 | 9 | export const Colors = { 10 | light: { 11 | text: '#11181C', 12 | background: '#fff', 13 | tint: tintColorLight, 14 | icon: '#687076', 15 | tabIconDefault: '#687076', 16 | tabIconSelected: tintColorLight, 17 | }, 18 | dark: { 19 | text: '#ECEDEE', 20 | background: '#151718', 21 | tint: tintColorDark, 22 | icon: '#9BA1A6', 23 | tabIconDefault: '#9BA1A6', 24 | tabIconSelected: tintColorDark, 25 | }, 26 | }; 27 | -------------------------------------------------------------------------------- /packages/campaignclassic/ios/src/RCTAEPCampaignClassic.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | #import 15 | 16 | @interface RCTAEPCampaignClassic : RCTEventEmitter 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /packages/core/src/models/MobileVisitorAuthenticationState.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | export enum MobileVisitorAuthenticationState { 14 | AUTHENTICATED = 'VISITOR_AUTH_STATE_AUTHENTICATED', 15 | LOGGED_OUT = 'VISITOR_AUTH_STATE_LOGGED_OUT', 16 | UNKNOWN = 'VISITOR_AUTH_STATE_UNKNOWN' 17 | } 18 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | 14 | #import "AppDelegate.h" 15 | 16 | int main(int argc, char *argv[]) 17 | { 18 | @autoreleasepool { 19 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/edgeconsent/RCTAEPEdgeConsent.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPEdgeConsent" 6 | s.version = package["version"] 7 | s.summary = "Adobe Experience Platform Consent Collection extension for AEP Mobile SDK. Written and maintained by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platforms = { :ios => "12.0", :tvos => "12.0" } 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/**/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPEdgeConsent", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetParametersDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | @import AEPTarget; 14 | #import "AEPTargetParametersDataBridge.h" 15 | 16 | @interface AEPTargetParameters (RCTBridge) 17 | 18 | + (AEPTargetParameters *)targetParametersFromDict:(NSDictionary *)dict; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /packages/campaignclassic/RCTAEPCampaignClassic.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPCampaignClassic" 6 | s.version = package["version"] 7 | s.summary = "Experience Platform Campaign Classic extension for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platform = :ios, '12.0' 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = 'ios/**/*.{h,m}' 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPCampaignClassic", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/messaging/src/models/MessagingEdgeEventType.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | enum MessagingEdgeEventType { 14 | DISMISS = 0, 15 | INTERACT = 1, 16 | TRIGGER = 2, 17 | DISPLAY = 3, 18 | PUSH_APPLICATION_OPENED = 4, 19 | PUSH_CUSTOM_ACTION = 5 20 | } 21 | 22 | export default MessagingEdgeEventType; 23 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetPrefetchObjectDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | @import AEPTarget; 14 | #import "AEPTargetPrefetchObjectDataBridge.h" 15 | 16 | @interface AEPTargetPrefetchObject (RCTBridge) 17 | 18 | + (AEPTargetPrefetchObject *)prefetchObjectFromDict:(NSDictionary *)dict; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /packages/places/src/models/PlacesGeofenceTransitionType.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | /** 14 | * The event status of the geofence trigger, specifies whether geofence was entered or exited 15 | */ 16 | enum PlacesGeofenceTransitionType { 17 | ENTER, 18 | EXIT, 19 | } 20 | 21 | export default PlacesGeofenceTransitionType; 22 | -------------------------------------------------------------------------------- /packages/target/ios/src/RCTAEPTarget.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. You 5 | may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed 7 | under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 8 | REPRESENTATIONS OF ANY KIND, either express or implied. See the License for the 9 | specific language governing permissions and limitations under the License. 10 | */ 11 | 12 | #import 13 | #import 14 | #import 15 | 16 | @interface RCTAEPTarget : NSObject 17 | 18 | @property(nonatomic, strong) NSMutableDictionary *registeredTargetRequests; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /packages/edge/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import Edge from './Edge'; 14 | import EdgeEventHandle from './models/EdgeEventHandle'; 15 | import ExperienceEvent from './models/ExperienceEvent'; 16 | 17 | export { 18 | // Native models 19 | EdgeEventHandle, 20 | ExperienceEvent, 21 | // Native modules 22 | Edge 23 | }; 24 | -------------------------------------------------------------------------------- /packages/edgeidentity/RCTAEPEdgeIdentity.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPEdgeIdentity" 6 | s.version = package["version"] 7 | s.summary = "Adobe Experience Platform Identity for Edge Network extension for Adobe Experience Platform Mobile SDK. Written and maintained by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platforms = { :ios => "12.0", :tvos => "12.0" } 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.source_files = "ios/**/*.{h,m}" 18 | s.requires_arc = true 19 | 20 | s.dependency "React" 21 | s.dependency "AEPEdgeIdentity", ">= 5.0.0", "< 6.0.0" 22 | end 23 | -------------------------------------------------------------------------------- /packages/target/src/models/TargetProduct.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | class TargetProduct { 13 | productId: string; 14 | categoryId: string; 15 | 16 | constructor(productId: string, categoryId: string) { 17 | this.productId = productId; 18 | this.categoryId = categoryId; 19 | } 20 | } 21 | 22 | export default TargetProduct; 23 | -------------------------------------------------------------------------------- /packages/edge/src/models/EdgeEventHandle.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | class EdgeEventHandle { 14 | type?: string; 15 | payload?: Array>; 16 | 17 | constructor(type?: string, payload?: Array>) { 18 | this.type = type; 19 | this.payload = payload; 20 | } 21 | } 22 | 23 | export default EdgeEventHandle; 24 | -------------------------------------------------------------------------------- /packages/optimize/android/src/main/java/com/adobe/marketing/mobile/reactnative/optimize/RCTAEPOptimizeConstants.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2025 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | package com.adobe.marketing.mobile.reactnative.optimize; 13 | 14 | class RCTAEPOptimizeConstants { 15 | static final String UNIQUE_PROPOSITION_ID_KEY = "uniquePropositionId"; 16 | } 17 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/app/+not-found.tsx: -------------------------------------------------------------------------------- 1 | import { Link, Stack } from 'expo-router'; 2 | import { StyleSheet } from 'react-native'; 3 | 4 | import { ThemedText } from '@/components/ThemedText'; 5 | import { ThemedView } from '@/components/ThemedView'; 6 | 7 | export default function NotFoundScreen() { 8 | return ( 9 | <> 10 | 11 | 12 | This screen doesn't exist. 13 | 14 | Go to home screen! 15 | 16 | 17 | 18 | ); 19 | } 20 | 21 | const styles = StyleSheet.create({ 22 | container: { 23 | flex: 1, 24 | alignItems: 'center', 25 | justifyContent: 'center', 26 | padding: 20, 27 | }, 28 | link: { 29 | marginTop: 15, 30 | paddingVertical: 15, 31 | }, 32 | }); 33 | -------------------------------------------------------------------------------- /packages/messaging/RCTAEPMessaging.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | 3 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 4 | folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32' 5 | 6 | Pod::Spec.new do |s| 7 | s.name = "RCTAEPMessaging" 8 | s.version = package["version"] 9 | s.summary = "Messaging library for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 10 | s.author = "Adobe Experience Platform SDK Team" 11 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 12 | s.license = "Apache 2.0 License" 13 | s.platform = :ios, '12.0' 14 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 15 | s.source_files = "ios/**/*.{h,m,mm,swift}" 16 | s.swift_version = '5.1' 17 | 18 | s.dependency "React" 19 | s.dependency "AEPMessaging", ">= 5.3.0", "< 6.0.0" 20 | end 21 | -------------------------------------------------------------------------------- /packages/edge/ios/src/RCTAEPExperienceEventDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | @import AEPEdge; 13 | 14 | @interface RCTAEPExperienceEventDataBridge : NSObject 15 | 16 | + (AEPExperienceEvent *_Nullable)experienceEventFromDictionary: (nonnull NSDictionary *) dict; 17 | 18 | + (NSDictionary *_Nullable)dictionaryFromEdgeEventHandler: (NSArray *_Nullable) experienceEvent; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /packages/edgeidentity/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { AuthenticatedState } from './models/AuthenticatedState'; 14 | import IdentityItem from './models/IdentityItem'; 15 | import IdentityMap from './models/IdentityMap'; 16 | import Identity from './Identity'; 17 | 18 | export { 19 | // Native models 20 | AuthenticatedState, 21 | IdentityItem, 22 | IdentityMap, 23 | // Native modules 24 | Identity 25 | }; 26 | -------------------------------------------------------------------------------- /packages/core/RCTAEPCore.podspec: -------------------------------------------------------------------------------- 1 | require "json" 2 | package = JSON.parse(File.read(File.join(__dir__, "package.json"))) 3 | 4 | Pod::Spec.new do |s| 5 | s.name = "RCTAEPCore" 6 | s.version = package["version"] 7 | s.summary = "Core library for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe." 8 | s.author = "Adobe Experience Platform SDK Team" 9 | 10 | s.homepage = "https://github.com/adobe/aepsdk-react-native" 11 | 12 | s.license = "Apache 2.0 License" 13 | s.platforms = { :ios => "12.0", :tvos => "12.0" } 14 | 15 | s.source = { :git => "https://github.com/adobe/aepsdk-react-native.git", :tag => "#{s.version}" } 16 | 17 | s.requires_arc = true 18 | 19 | s.dependency "React" 20 | s.dependency 'AEPCore', '>= 5.4.0', '< 6.0.0' 21 | s.dependency 'AEPLifecycle', '>= 5.4.0', '< 6.0.0' 22 | s.dependency 'AEPIdentity', '>= 5.4.0', '< 6.0.0' 23 | s.dependency 'AEPSignal', '>= 5.4.0', '< 6.0.0' 24 | 25 | s.source_files = "ios/src/**/*.{h,m}" 26 | 27 | end 28 | -------------------------------------------------------------------------------- /packages/optimize/src/models/AdobePropositionCallback.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License.s 11 | */ 12 | 13 | import Proposition from "./Proposition"; 14 | 15 | /** 16 | * A Type with callback function that gets called with a Map of decision scope names and Propositions. 17 | * This is a type for listener used for receiving Proposition updates. 18 | */ 19 | export type AdobePropositionCallback = { 20 | call(propositionMap: Map): void; 21 | }; -------------------------------------------------------------------------------- /packages/target/src/models/TargetPrefetchObject.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | import TargetParameters from './TargetParameters'; 13 | 14 | class TargetPrefetchObject { 15 | name?: string; 16 | targetParameters?: TargetParameters; 17 | 18 | constructor(name?: string, targetParameters?: TargetParameters) { 19 | this.name = name; 20 | this.targetParameters = targetParameters; 21 | } 22 | } 23 | 24 | export default TargetPrefetchObject; 25 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/HelloWave.tsx: -------------------------------------------------------------------------------- 1 | import { StyleSheet } from 'react-native'; 2 | import Animated, { 3 | useSharedValue, 4 | useAnimatedStyle, 5 | withTiming, 6 | withRepeat, 7 | withSequence, 8 | } from 'react-native-reanimated'; 9 | 10 | import { ThemedText } from '@/components/ThemedText'; 11 | 12 | export function HelloWave() { 13 | const rotationAnimation = useSharedValue(0); 14 | 15 | rotationAnimation.value = withRepeat( 16 | withSequence(withTiming(25, { duration: 150 }), withTiming(0, { duration: 150 })), 17 | 4 // Run the animation 4 times 18 | ); 19 | 20 | const animatedStyle = useAnimatedStyle(() => ({ 21 | transform: [{ rotate: `${rotationAnimation.value}deg` }], 22 | })); 23 | 24 | return ( 25 | 26 | 👋 27 | 28 | ); 29 | } 30 | 31 | const styles = StyleSheet.create({ 32 | text: { 33 | fontSize: 28, 34 | lineHeight: 32, 35 | marginTop: -6, 36 | }, 37 | }); 38 | -------------------------------------------------------------------------------- /packages/core/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepcore", 3 | "version": "7.0.0", 4 | "description": "Adobe Experience Platform support for React Native apps.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/core" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "core", 23 | "ios", 24 | "android" 25 | ], 26 | "author": { 27 | "name": "Adobe Experience Platform SDK Team" 28 | }, 29 | "peerDependencies": { 30 | "react-native": ">=0.60.0" 31 | }, 32 | "publishConfig": { 33 | "access": "public" 34 | }, 35 | "installConfig": { 36 | "hoistingLimits": "dependencies" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /packages/messaging/src/models/ScopeDetails.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | export interface Activity { 14 | matchedSurfaces: string[]; 15 | id: string; 16 | } 17 | 18 | export interface Characteristics { 19 | eventToken: string; 20 | } 21 | 22 | export interface ScopeDetails { 23 | activity: Activity; 24 | characteristics: Characteristics; 25 | correlationID: string; 26 | decisionProvider: string; 27 | } 28 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetRequestObjectDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | @import AEPTarget; 14 | #import "AEPTargetRequestObjectDataBridge.h" 15 | 16 | @interface AEPTargetRequestObject (RCTBridge) 17 | 18 | + (AEPTargetRequestObject *) 19 | targetRequestObjectFromDict:(NSDictionary *)dict 20 | callback:(nullable void (^)( 21 | NSString *__nullable content))callback; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /packages/core/__tests__/SignalTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { NativeModules } from 'react-native'; 14 | import { Signal } from '../src'; 15 | 16 | describe('Signal', () => { 17 | it('extensionVersion is called', async () => { 18 | expect(Signal.extensionVersion).toBeDefined(); 19 | const spy = jest.spyOn(NativeModules.AEPSignal, 'extensionVersion'); 20 | await Signal.extensionVersion(); 21 | expect(spy).toHaveBeenCalled(); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /packages/target/src/models/TargetOrder.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | class TargetOrder { 13 | orderId: string; 14 | total: number; 15 | purchasedProductIds: Array; 16 | 17 | constructor( 18 | orderId: string, 19 | total: number, 20 | purchasedProductIds: Array 21 | ) { 22 | this.orderId = orderId; 23 | this.total = total; 24 | this.purchasedProductIds = purchasedProductIds; 25 | } 26 | } 27 | 28 | export default TargetOrder; 29 | -------------------------------------------------------------------------------- /packages/core/__tests__/LifecycleTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { NativeModules } from 'react-native'; 14 | import { Lifecycle } from '../src'; 15 | 16 | describe('Lifecycle', () => { 17 | it('extensionVersion is called', async () => { 18 | expect(Lifecycle.extensionVersion).toBeDefined(); 19 | const spy = jest.spyOn(NativeModules.AEPLifecycle, 'extensionVersion'); 20 | await Lifecycle.extensionVersion(); 21 | expect(spy).toHaveBeenCalled(); 22 | }); 23 | }); 24 | -------------------------------------------------------------------------------- /packages/edgebridge/__tests__/EdgeBridgeTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { NativeModules } from 'react-native'; 14 | import { EdgeBridge } from '../src'; 15 | 16 | describe('Edge Bridge', () => { 17 | it('extensionVersion is called', async () => { 18 | expect(EdgeBridge.extensionVersion).toBeDefined(); 19 | const spy = jest.spyOn(NativeModules.AEPEdgeBridge, 'extensionVersion'); 20 | await EdgeBridge.extensionVersion(); 21 | expect(spy).toHaveBeenCalled(); 22 | }); 23 | }); -------------------------------------------------------------------------------- /packages/places/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepplaces", 3 | "version": "7.0.1", 4 | "description": "Adobe Experience Platform support for React Native apps.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/places" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "places", 23 | "ios", 24 | "android" 25 | ], 26 | "author": { 27 | "name": "Adobe Experience Platform SDK Team" 28 | }, 29 | "peerDependencies": { 30 | "@adobe/react-native-aepcore": "^7.0.0", 31 | "react-native": ">=0.60.0" 32 | }, 33 | "publishConfig": { 34 | "access": "public" 35 | }, 36 | "installConfig": { 37 | "hoistingLimits": "dependencies" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/core/ios/src/Signal/RCTAEPSignal.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import "RCTAEPSignal.h" 14 | @import AEPSignal; 15 | @import AEPCore; 16 | 17 | @implementation RCTAEPSignal 18 | 19 | RCT_EXPORT_MODULE(AEPSignal); 20 | 21 | - (dispatch_queue_t)methodQueue 22 | { 23 | return dispatch_get_main_queue(); 24 | } 25 | 26 | RCT_EXPORT_METHOD(extensionVersion: (RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock)reject) { 27 | resolve([AEPMobileSignal extensionVersion]); 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /packages/optimize/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import Optimize from "./Optimize"; 14 | import { AdobePropositionCallback } from "./models/AdobePropositionCallback"; 15 | import AEPOptimizeError from "./models/AEPOptimizeError"; 16 | import DecisionScope from "./models/DecisionScope"; 17 | import Offer from "./models/Offer"; 18 | import Proposition from "./models/Proposition"; 19 | 20 | export { 21 | Optimize, 22 | AdobePropositionCallback, 23 | AEPOptimizeError, 24 | DecisionScope, 25 | Offer, 26 | Proposition 27 | } -------------------------------------------------------------------------------- /packages/core/ios/src/Lifecycle/RCTAEPLifecycle.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import "RCTAEPLifecycle.h" 14 | @import AEPCore; 15 | @import AEPLifecycle; 16 | 17 | @implementation RCTAEPLifecycle 18 | 19 | RCT_EXPORT_MODULE(AEPLifecycle); 20 | 21 | - (dispatch_queue_t)methodQueue 22 | { 23 | return dispatch_get_main_queue(); 24 | } 25 | 26 | RCT_EXPORT_METHOD(extensionVersion: (RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock)reject) { 27 | resolve([AEPMobileLifecycle extensionVersion]); 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /packages/messaging/android/src/main/java/com/adobe/marketing/mobile/reactnative/messaging/RCTAEPMessagingConstants.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2025 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | package com.adobe.marketing.mobile.reactnative.messaging; 13 | 14 | class RCTAEPMessagingConstants { 15 | static final String MESSAGE_ID_KEY = "messageId"; 16 | static final String HANDLER_NAME_KEY = "handlerName"; 17 | static final String CONTENT_KEY = "content"; 18 | static final String ON_JAVASCRIPT_MESSAGE_EVENT = "onJavascriptMessage"; 19 | } 20 | -------------------------------------------------------------------------------- /packages/userprofile/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepuserprofile", 3 | "version": "7.0.0", 4 | "description": "Adobe Experience Platform support for React Native apps.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/userprofile" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "user", 23 | "profile", 24 | "ios", 25 | "android" 26 | ], 27 | "author": { 28 | "name": "Adobe Experience Platform SDK Team" 29 | }, 30 | "peerDependencies": { 31 | "@adobe/react-native-aepcore": "^7.0.0", 32 | "react-native": ">=0.60.0" 33 | }, 34 | "publishConfig": { 35 | "access": "public" 36 | }, 37 | "installConfig": { 38 | "hoistingLimits": "dependencies" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/core/src/models/Event.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | class Event { 14 | eventName: string; 15 | eventType: string; 16 | eventSource: string; 17 | eventData: Record; 18 | 19 | constructor( 20 | eventName: string, 21 | eventType: string, 22 | eventSource: string, 23 | eventData: Record 24 | ) { 25 | this.eventName = eventName; 26 | this.eventType = eventType; 27 | this.eventSource = eventSource; 28 | this.eventData = eventData; 29 | } 30 | } 31 | 32 | export default Event; 33 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ios-marketing", 45 | "scale" : "1x", 46 | "size" : "1024x1024" 47 | } 48 | ], 49 | "info" : { 50 | "author" : "xcode", 51 | "version" : 1 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /packages/places/src/models/PlacesAuthStatus.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | /** 14 | * Represents the current authorization status of location services of your application. 15 | * Used EventData for Places Events and Shared State. 16 | */ 17 | enum PlacesAuthStatus { 18 | ALWAYS = 'PLACES_AUTH_STATUS_ALWAYS', 19 | DENIED = 'PLACES_AUTH_STATUS_DENIED', 20 | RESTRICTED = 'PLACES_AUTH_STATUS_RESTRICTED', 21 | UNKNOWN = 'PLACES_AUTH_STATUS_UNKNOWN', 22 | WHEN_IN_USE = 'PLACES_AUTH_STATUS_WHEN_IN_USE' 23 | } 24 | 25 | export default PlacesAuthStatus; 26 | -------------------------------------------------------------------------------- /packages/assurance/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepassurance", 3 | "version": "7.0.0", 4 | "description": "Adobe Experience Platform support for React Native apps.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "main": "./dist/index.js", 7 | "types": "./dist/index.d.ts", 8 | "scripts": { 9 | "cleanup": "rm -rf node_modules", 10 | "tsc": "tsc" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/adobe/aepsdk-react-native", 15 | "directory": "packages/assurance" 16 | }, 17 | "keywords": [ 18 | "react-native", 19 | "assurance", 20 | "aepassurance", 21 | "adobe", 22 | "adobe experience platform", 23 | "griffon", 24 | "acpgriffon", 25 | "ios", 26 | "android" 27 | ], 28 | "author": { 29 | "name": "Adobe Experience Platform SDK Team" 30 | }, 31 | "peerDependencies": { 32 | "@adobe/react-native-aepcore": "^7.0.0", 33 | "react-native": ">=0.60.0" 34 | }, 35 | "publishConfig": { 36 | "access": "public" 37 | }, 38 | "installConfig": { 39 | "hoistingLimits": "dependencies" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /packages/places/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import Places from './Places'; 14 | import PlacesAuthStatus from './models/PlacesAuthStatus'; 15 | import PlacesGeofence from './models/PlacesGeofence'; 16 | import PlacesGeofenceTransitionType from './models/PlacesGeofenceTransitionType'; 17 | import PlacesLocation from './models/PlacesLocation'; 18 | import PlacesPOI from './models/PlacesPOI'; 19 | 20 | export { 21 | Places, 22 | PlacesAuthStatus, 23 | PlacesGeofence, 24 | PlacesGeofenceTransitionType, 25 | PlacesLocation, 26 | PlacesPOI 27 | }; 28 | -------------------------------------------------------------------------------- /packages/edgeidentity/src/models/IdentityItem.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { AuthenticatedState } from './AuthenticatedState'; 14 | 15 | class IdentityItem { 16 | id: string; 17 | authenticatedState: AuthenticatedState; 18 | primary: boolean; 19 | 20 | constructor( 21 | id: string, 22 | authenticatedState = AuthenticatedState.AMBIGUOUS, 23 | primary: boolean = false 24 | ) { 25 | this.id = id; 26 | this.authenticatedState = authenticatedState; 27 | this.primary = primary; 28 | } 29 | } 30 | 31 | export default IdentityItem; 32 | -------------------------------------------------------------------------------- /packages/target/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aeptarget", 3 | "version": "7.0.0", 4 | "description": "Adobe Experience Platform support for React Native apps.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/target" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "ajo", 23 | "target", 24 | "ios", 25 | "android" 26 | ], 27 | "author": { 28 | "name": "Adobe Experience Platform SDK Team" 29 | }, 30 | "peerDependencies": { 31 | "@adobe/react-native-aepcore": "^7.0.0", 32 | "@adobe/react-native-aepedge": "^7.0.0", 33 | "react-native": ">=0.60.0" 34 | }, 35 | "publishConfig": { 36 | "access": "public" 37 | }, 38 | "installConfig": { 39 | "hoistingLimits": "dependencies" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /packages/edgebridge/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepedgebridge", 3 | "version": "7.0.1", 4 | "description": "Adobe Experience Platform Edge Bridge extension for AEP Mobile SDK. Written and maintained by Adobe.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/edgebridge" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "edgebridge", 23 | "edge", 24 | "ios", 25 | "android" 26 | ], 27 | "author": { 28 | "name": "Adobe Experience Platform SDK Team" 29 | }, 30 | "peerDependencies": { 31 | "@adobe/react-native-aepcore": "^7.0.0", 32 | "react-native": ">=0.60.0" 33 | }, 34 | "publishConfig": { 35 | "access": "public" 36 | }, 37 | "installConfig": { 38 | "hoistingLimits": "dependencies" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetProductDataBridge.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | #import "AEPTargetProductDataBridge.h" 14 | 15 | @implementation AEPTargetProduct (RCTBridge) 16 | 17 | NSString *const PRODUCT_ID_KEY = @"productId"; 18 | NSString *const CATEGORY_ID_KEY = @"categoryId"; 19 | 20 | + (AEPTargetProduct *)targetProductFromDict:(NSDictionary *)dict { 21 | if (!dict || [dict isEqual:[NSNull null]]) { 22 | return nil; 23 | } 24 | 25 | return [[AEPTargetProduct alloc] initWithProductId:dict[@"productId"] categoryId:dict[@"categoryId"]]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /packages/messaging/src/models/InAppMessage.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | import { PersonalizationSchema } from './PersonalizationSchema'; 14 | 15 | export interface InAppMessage { 16 | id: string; 17 | schema: PersonalizationSchema.IN_APP; 18 | data: { 19 | content: string; 20 | contentType: 'text/html'; 21 | expiryDate: number; 22 | publishedDate: number; 23 | meta?: Record; 24 | mobileParameters?: Record; 25 | webParameters?: Record; 26 | remoteAssets?: string[]; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /packages/edgebridge/ios/src/RCTAEPEdgeBridge.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import "RCTAEPEdgeBridge.h" 13 | @import AEPEdgeBridge; 14 | 15 | @implementation RCTAEPEdgeBridge 16 | 17 | static NSString* const EXTENSION_NAME = @"AEPEdgeBridge"; 18 | 19 | RCT_EXPORT_MODULE(AEPEdgeBridge); 20 | 21 | - (dispatch_queue_t)methodQueue 22 | { 23 | return dispatch_get_main_queue(); 24 | } 25 | 26 | RCT_EXPORT_METHOD(extensionVersion: (RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock)reject) { 27 | resolve([AEPMobileEdgeBridge extensionVersion]); 28 | } 29 | 30 | @end 31 | 32 | -------------------------------------------------------------------------------- /packages/edgeconsent/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepedgeconsent", 3 | "version": "7.0.0", 4 | "description": "Adobe Experience Platform Consent Collection extension for AEP Mobile SDK. Written and maintained by Adobe.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/edgeconsent" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "consent", 23 | "edge", 24 | "ios", 25 | "android" 26 | ], 27 | "author": { 28 | "name": "Adobe Experience Platform SDK Team" 29 | }, 30 | "peerDependencies": { 31 | "@adobe/react-native-aepcore": "^7.0.0", 32 | "react-native": ">=0.60.0" 33 | }, 34 | "publishConfig": { 35 | "access": "public" 36 | }, 37 | "installConfig": { 38 | "hoistingLimits": "dependencies" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/target/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | import Target from './Target'; 13 | import TargetOrder from './models/TargetOrder'; 14 | import TargetParameters from './models/TargetParameters'; 15 | import TargetPrefetchObject from './models/TargetPrefetchObject'; 16 | import TargetProduct from './models/TargetProduct'; 17 | import TargetRequestObject from './models/TargetRequestObject'; 18 | 19 | export { 20 | // Native models 21 | TargetOrder, 22 | TargetParameters, 23 | TargetPrefetchObject, 24 | TargetProduct, 25 | TargetRequestObject, 26 | // Native modules 27 | Target 28 | }; 29 | -------------------------------------------------------------------------------- /packages/core/src/Signal.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { NativeModules } from 'react-native'; 14 | 15 | interface ISignal { 16 | extensionVersion: () => Promise; 17 | } 18 | 19 | const RCTAEPSignal: ISignal = NativeModules.AEPSignal; 20 | 21 | const Signal: ISignal = { 22 | /** 23 | * Returns the version of the AEPSignal extension 24 | * @return {string} Promise a promise that resolves with the extension version 25 | */ 26 | extensionVersion(): Promise { 27 | return Promise.resolve(RCTAEPSignal.extensionVersion()); 28 | } 29 | }; 30 | 31 | export default Signal; 32 | -------------------------------------------------------------------------------- /packages/edgeidentity/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepedgeidentity", 3 | "version": "7.0.0", 4 | "description": "Adobe Experience Platform Identity for Edge Network extension for Adobe Experience Platform Mobile SDK. Written and maintained by Adobe.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/edgeidentity" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "edgeidentity", 23 | "ios", 24 | "android" 25 | ], 26 | "author": { 27 | "name": "Adobe Experience Platform SDK Team" 28 | }, 29 | "peerDependencies": { 30 | "@adobe/react-native-aepcore": "^7.0.0", 31 | "react-native": ">=0.60.0" 32 | }, 33 | "publishConfig": { 34 | "access": "public" 35 | }, 36 | "installConfig": { 37 | "hoistingLimits": "dependencies" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /packages/campaignclassic/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepcampaignclassic", 3 | "version": "7.0.0", 4 | "description": "Experience Platform Campaign Classic extension for Adobe Experience Platform Mobile SDK. Written and Supported by Adobe.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/campaignclassic" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "ajo", 23 | "campaign classic", 24 | "ios", 25 | "android" 26 | ], 27 | "author": { 28 | "name": "Adobe Experience Platform SDK Team" 29 | }, 30 | "peerDependencies": { 31 | "@adobe/react-native-aepcore": "^7.0.0", 32 | "react-native": ">=0.60.0" 33 | }, 34 | "publishConfig": { 35 | "access": "public" 36 | }, 37 | "installConfig": { 38 | "hoistingLimits": "dependencies" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/edge/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepedge", 3 | "version": "7.0.0", 4 | "description": "Adobe Experience Platform Edge Network extension for Adobe Experience Platform Mobile SDK. Written and maintained by Adobe.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/edge" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "edge", 23 | "ios", 24 | "android" 25 | ], 26 | "author": { 27 | "name": "Adobe Experience Platform SDK Team" 28 | }, 29 | "peerDependencies": { 30 | "@adobe/react-native-aepcore": "^7.0.0", 31 | "@adobe/react-native-aepedgeidentity": "^7.0.0", 32 | "react-native": ">=0.60.0" 33 | }, 34 | "publishConfig": { 35 | "access": "public" 36 | }, 37 | "installConfig": { 38 | "hoistingLimits": "dependencies" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /packages/core/src/Lifecycle.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { NativeModules } from 'react-native'; 14 | 15 | interface ILifecycle { 16 | extensionVersion: () => Promise; 17 | } 18 | 19 | const RCTAEPLifecycle: ILifecycle = NativeModules.AEPLifecycle; 20 | 21 | const Lifecycle: ILifecycle = { 22 | /** 23 | * Returns the version of the Lifecycle extension 24 | * @return {string} Promise a promise that resolves with the extension version 25 | */ 26 | extensionVersion(): Promise { 27 | return Promise.resolve(RCTAEPLifecycle.extensionVersion()); 28 | } 29 | }; 30 | 31 | export default Lifecycle; 32 | -------------------------------------------------------------------------------- /packages/edgebridge/src/EdgeBridge.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { NativeModules } from 'react-native'; 14 | 15 | interface IEdgeBridge { 16 | extensionVersion: () => Promise; 17 | } 18 | 19 | const RCTAEPEdgeBridge: IEdgeBridge = NativeModules.AEPEdgeBridge; 20 | 21 | const EdgeBridge: IEdgeBridge = { 22 | /** 23 | * Returns the version of the EdgeBridge extension 24 | * @return {string} Promise resolves with the extension version 25 | */ 26 | extensionVersion(): Promise { 27 | return Promise.resolve(RCTAEPEdgeBridge.extensionVersion()); 28 | } 29 | }; 30 | 31 | export default EdgeBridge; 32 | -------------------------------------------------------------------------------- /packages/optimize/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepoptimize", 3 | "version": "7.1.0", 4 | "description": "Adobe Experience Platform support for React Native apps.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/optimize" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "ajo", 23 | "optimize", 24 | "ios", 25 | "android" 26 | ], 27 | "author": { 28 | "name": "Adobe Experience Platform SDK Team" 29 | }, 30 | "peerDependencies": { 31 | "@adobe/react-native-aepcore": "^7.0.0", 32 | "@adobe/react-native-aepedge": "^7.0.0", 33 | "@adobe/react-native-aepedgeidentity": "^7.0.0", 34 | "react-native": ">=0.60.0" 35 | }, 36 | "publishConfig": { 37 | "access": "public" 38 | }, 39 | "installConfig": { 40 | "hoistingLimits": "dependencies" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /packages/messaging/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@adobe/react-native-aepmessaging", 3 | "version": "7.2.0", 4 | "description": "Adobe Experience Platform support for React Native apps.", 5 | "homepage": "https://developer.adobe.com/client-sdks/documentation/", 6 | "license": "Apache-2.0", 7 | "main": "./dist/index.js", 8 | "types": "./dist/index.d.ts", 9 | "scripts": { 10 | "cleanup": "rm -rf node_modules", 11 | "tsc": "tsc" 12 | }, 13 | "repository": { 14 | "type": "git", 15 | "url": "https://github.com/adobe/aepsdk-react-native", 16 | "directory": "packages/messaging" 17 | }, 18 | "keywords": [ 19 | "react-native", 20 | "adobe", 21 | "adobe experience platform", 22 | "ajo", 23 | "messaging", 24 | "ios", 25 | "android" 26 | ], 27 | "author": { 28 | "name": "Adobe Experience Platform SDK Team" 29 | }, 30 | "peerDependencies": { 31 | "@adobe/react-native-aepcore": "^7.0.0", 32 | "@adobe/react-native-aepedge": "^7.0.0", 33 | "@adobe/react-native-aepedgeidentity": "^7.0.0", 34 | "react-native": ">=0.60.0" 35 | }, 36 | "publishConfig": { 37 | "access": "public" 38 | }, 39 | "installConfig": { 40 | "hoistingLimits": "dependencies" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /packages/edge/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.edge" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:edge" 46 | } 47 | -------------------------------------------------------------------------------- /packages/edgeidentity/ios/src/RCTAEPEdgeIdentityDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | @import AEPEdgeIdentity; 13 | 14 | @interface RCTAEPEdgeIdentityDataBridge : NSObject 15 | 16 | + (NSDictionary *_Nullable)dictionaryFromIdentityMap: (nullable AEPIdentityMap *) map; 17 | 18 | + (AEPIdentityMap *_Nonnull)dictionaryToIdentityMap: (nonnull NSDictionary *) dict; 19 | 20 | + (AEPIdentityItem *_Nullable)dictionaryToIdentityItem: (nullable NSDictionary *) dict; 21 | 22 | + (AEPAuthenticatedState) authStateFromString: (nullable NSString *) authStateString; 23 | 24 | + (NSString *_Nullable)stringFromAuthState: (AEPAuthenticatedState) authState; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /packages/messaging/src/models/HTMLProposition.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | import { PersonalizationSchema } from './PersonalizationSchema'; 14 | import { PropositionItem, PropositionItemData } from './PropositionItem'; 15 | 16 | export interface HTMLPropositionData extends PropositionItemData { 17 | data: { 18 | content: string; 19 | }; 20 | schema: PersonalizationSchema.HTML_CONTENT; 21 | } 22 | 23 | export class HTMLProposition extends PropositionItem { 24 | declare data: HTMLPropositionData['data']; 25 | 26 | constructor(htmlData: HTMLPropositionData) { 27 | super(htmlData); 28 | this.data = htmlData.data; 29 | } 30 | } -------------------------------------------------------------------------------- /packages/messaging/src/models/JSONProposition.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | import { PersonalizationSchema } from './PersonalizationSchema'; 14 | import { PropositionItem, PropositionItemData } from './PropositionItem'; 15 | 16 | export interface JSONPropositionData extends PropositionItemData { 17 | data: { 18 | content: any; 19 | }; 20 | schema: PersonalizationSchema.JSON_CONTENT; 21 | } 22 | 23 | export class JSONPropositionItem extends PropositionItem { 24 | declare data: JSONPropositionData['data']; 25 | 26 | constructor(jsonData: JSONPropositionData) { 27 | super(jsonData); 28 | this.data = jsonData.data; 29 | } 30 | } -------------------------------------------------------------------------------- /packages/optimize/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.optimize" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:optimize" 46 | } -------------------------------------------------------------------------------- /packages/target/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.target" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:target" 46 | } 47 | -------------------------------------------------------------------------------- /packages/edgebridge/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.edgebridge" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:edgebridge" 46 | } 47 | -------------------------------------------------------------------------------- /packages/assurance/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | mavenCentral() 4 | google() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | 20 | compileSdk safeExtGet('compileSdk', 34) 21 | 22 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 23 | if (agpVersion >= 8) { 24 | namespace = "com.adobe.marketing.mobile.reactnative.assurance" 25 | } 26 | 27 | defaultConfig { 28 | minSdkVersion safeExtGet('minSdkVersion', 21) 29 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 30 | versionCode 1 31 | versionName "1.0" 32 | } 33 | lintOptions { 34 | abortOnError false 35 | } 36 | } 37 | 38 | repositories { 39 | google() 40 | mavenCentral() 41 | } 42 | 43 | dependencies { 44 | implementation 'com.facebook.react:react-native:+' 45 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 46 | api 'com.adobe.marketing.mobile:assurance' 47 | } 48 | -------------------------------------------------------------------------------- /packages/edgeconsent/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.edgeconsent" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:edgeconsent" 46 | } 47 | -------------------------------------------------------------------------------- /packages/edgeidentity/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.edgeidentity" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:edgeidentity" 46 | } 47 | -------------------------------------------------------------------------------- /packages/userprofile/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.userprofile" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:userprofile" 46 | } 47 | -------------------------------------------------------------------------------- /packages/campaignclassic/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative.campaignclassic" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 45 | api "com.adobe.marketing.mobile:campaignclassic" 46 | } -------------------------------------------------------------------------------- /packages/core/src/models/VisitorID.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { MobileVisitorAuthenticationState } from './MobileVisitorAuthenticationState'; 14 | 15 | class VisitorID { 16 | idOrigin?: string; 17 | idType?: string; 18 | identifier?: string; 19 | authenticationState?: MobileVisitorAuthenticationState; 20 | 21 | constructor( 22 | idOrigin?: string, 23 | idType?: string, 24 | id?: string, 25 | authenticationState?: MobileVisitorAuthenticationState 26 | ) { 27 | this.idOrigin = idOrigin; 28 | this.idType = idType; 29 | this.identifier = id; 30 | this.authenticationState = authenticationState; 31 | } 32 | } 33 | 34 | export default VisitorID; 35 | -------------------------------------------------------------------------------- /packages/messaging/src/models/MessagingPropositionItem.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | import { ContentCard } from './ContentCard'; 14 | import { HTMLProposition } from './HTMLProposition'; 15 | import { JSONPropositionItem } from './JSONProposition'; 16 | import { InAppMessage } from './InAppMessage'; 17 | import { PropositionItem } from './PropositionItem'; 18 | 19 | // Union type for all possible proposition item types 20 | // All items now extend PropositionItem and have unified tracking capabilities 21 | export type MessagingPropositionItem = 22 | | ContentCard 23 | | HTMLProposition 24 | | InAppMessage 25 | | JSONPropositionItem 26 | | PropositionItem; 27 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | ios/.xcode.env.local 24 | 25 | # Android/IntelliJ 26 | # 27 | build/ 28 | .idea 29 | .gradle 30 | local.properties 31 | *.iml 32 | *.hprof 33 | .cxx/ 34 | *.keystore 35 | !debug.keystore 36 | 37 | # node.js 38 | # 39 | node_modules/ 40 | npm-debug.log 41 | yarn-error.log 42 | 43 | # fastlane 44 | # 45 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 46 | # screenshots whenever they are needed. 47 | # For more information about the recommended setup visit: 48 | # https://docs.fastlane.tools/best-practices/source-control/ 49 | 50 | **/fastlane/report.xml 51 | **/fastlane/Preview.html 52 | **/fastlane/screenshots 53 | **/fastlane/test_output 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | 58 | # Ruby / CocoaPods 59 | /ios/Pods/ 60 | /vendor/bundle/ 61 | 62 | # Temporary files created by Metro to check the health of the file watcher 63 | .metro-health-check* 64 | 65 | # testing 66 | /coverage 67 | -------------------------------------------------------------------------------- /packages/edgebridge/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | tsconfig.json -------------------------------------------------------------------------------- /packages/messaging/src/models/PersonalizationSchema.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | export enum PersonalizationSchema { 14 | CONTENT_CARD = 'https://ns.adobe.com/personalization/message/content-card', 15 | DEFAULT_CONTENT = 'https://ns.adobe.com/personalization/default-content-item', 16 | HTML_CONTENT = 'https://ns.adobe.com/personalization/html-content-item', 17 | IN_APP = 'https://ns.adobe.com/personalization/message/in-app', 18 | JSON_CONTENT = 'https://ns.adobe.com/personalization/json-content-item', 19 | NATIVE_ALERT = 'https://ns.adobe.com/personalization/message/native-alert', 20 | RULESET_ITEM = 'https://ns.adobe.com/personalization/ruleset-item' 21 | } 22 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetOrderDataBridge.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | @import AEPTarget; 14 | #import "AEPTargetOrderDataBridge.h" 15 | 16 | @implementation AEPTargetOrder (RCTBridge) 17 | 18 | NSString *const ORDER_ID_KEY = @"orderId"; 19 | NSString *const TOTAL_KEY = @"total"; 20 | NSString *const PURCHASED_PRODUCTS_IDS_KEY = @"purchasedProductIds"; 21 | 22 | + (AEPTargetOrder *)targetOrderFromDict:(NSDictionary *)dict { 23 | if (!dict || [dict isEqual:[NSNull null]]) { 24 | return nil; 25 | } 26 | 27 | return [[AEPTargetOrder alloc] initWithId:dict[ORDER_ID_KEY] total:[dict[TOTAL_KEY] doubleValue] purchasedProductIds:dict[PURCHASED_PRODUCTS_IDS_KEY]]; 28 | } 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /packages/assurance/__tests__/AssuranceTests.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import { NativeModules } from 'react-native'; 14 | import { Assurance } from '../src'; 15 | 16 | describe('Assurance', () => { 17 | it('extensionVersion is called', async () => { 18 | expect(Assurance.extensionVersion).toBeDefined(); 19 | const spy = jest.spyOn(NativeModules.AEPAssurance, 'extensionVersion'); 20 | await Assurance.extensionVersion(); 21 | expect(spy).toHaveBeenCalled(); 22 | }); 23 | 24 | it('startSession is called', async () => { 25 | const spy = jest.spyOn(NativeModules.AEPAssurance, 'startSession'); 26 | await Assurance.startSession(''); 27 | expect(spy).toHaveBeenCalled(); 28 | }); 29 | }); 30 | -------------------------------------------------------------------------------- /packages/assurance/ios/src/RCTAEPAssurance.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import "RCTAEPAssurance.h" 13 | @import AEPAssurance; 14 | 15 | @implementation RCTAEPAssurance 16 | 17 | RCT_EXPORT_MODULE(AEPAssurance); 18 | 19 | - (dispatch_queue_t)methodQueue 20 | { 21 | return dispatch_get_main_queue(); 22 | } 23 | 24 | RCT_EXPORT_METHOD(extensionVersion: (RCTPromiseResolveBlock) resolve rejecter:(RCTPromiseRejectBlock)reject) { 25 | resolve([AEPMobileAssurance extensionVersion]); 26 | } 27 | 28 | RCT_EXPORT_METHOD(startSession: (NSString *) url){ 29 | NSURL* nsUrl = [[NSURL alloc] initWithString:url]; 30 | if(nsUrl != nil){ 31 | [AEPMobileAssurance startSessionWithUrl:nsUrl]; 32 | } 33 | } 34 | @end 35 | -------------------------------------------------------------------------------- /packages/places/ios/src/RCTAEPPlacesDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import 14 | #import 15 | @import AEPPlaces; 16 | 17 | @interface RCTAEPPlacesDataBridge : NSObject 18 | 19 | + (NSDictionary *)dictionaryFromCLLocation: (nonnull CLLocation *) lastLocation; 20 | 21 | + (CLLocation *)CLLocationFromDict: (nonnull NSDictionary *) locationDict; 22 | 23 | + (CLAuthorizationStatus)authStatusFromString: (NSString *) authStatusString; 24 | 25 | + (NSDictionary *)dictionaryFromPoi: (AEPPlacesPoi *) poi; 26 | 27 | + (CLRegion *)clRegionFromDict: (NSDictionary *) clRegionDict; 28 | 29 | + (AEPPlacesRegionEvent)regionEventFromInt: (int) typeInt; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /packages/places/src/models/PlacesLocation.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | /** 14 | * Represents a location returned by the places SDK that includes data about what location was provided to the SDK 15 | */ 16 | class PlacesLocation { 17 | longitude: number; 18 | latitude: number; 19 | altitude: number; 20 | speed: number; 21 | accuracy: number; 22 | 23 | constructor( 24 | longitude: number, 25 | latitude: number, 26 | altitude: number, 27 | speed: number, 28 | accuracy: number 29 | ) { 30 | this.latitude = latitude; 31 | this.longitude = longitude; 32 | this.altitude = altitude; 33 | this.speed = speed; 34 | this.accuracy = accuracy; 35 | } 36 | } 37 | 38 | export default PlacesLocation; 39 | -------------------------------------------------------------------------------- /packages/places/android/build.gradle: -------------------------------------------------------------------------------- 1 | 2 | buildscript { 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:8.1.1' 10 | } 11 | } 12 | 13 | apply plugin: 'com.android.library' 14 | 15 | def safeExtGet(prop, fallback) { 16 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 17 | } 18 | 19 | android { 20 | compileSdk safeExtGet('compileSdk', 34) 21 | 22 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 23 | if (agpVersion >= 8) { 24 | namespace = "com.adobe.marketing.mobile.reactnative.places" 25 | } 26 | 27 | defaultConfig { 28 | minSdkVersion safeExtGet('minSdkVersion', 21) 29 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 30 | versionCode 1 31 | versionName "1.0" 32 | } 33 | lintOptions { 34 | abortOnError false 35 | } 36 | } 37 | 38 | repositories { 39 | google() 40 | mavenCentral() 41 | } 42 | 43 | dependencies { 44 | implementation 'com.facebook.react:react-native:+' 45 | implementation platform("com.adobe.marketing.mobile:sdk-bom:3.+") 46 | api "com.adobe.marketing.mobile:places" 47 | implementation 'com.google.android.gms:play-services-location:21.2.0' 48 | } 49 | -------------------------------------------------------------------------------- /packages/core/src/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import Identity from './Identity'; 14 | import Lifecycle from './Lifecycle'; 15 | import MobileCore from './MobileCore'; 16 | import Signal from './Signal'; 17 | import Event from './models/Event'; 18 | import { LogLevel } from './models/LogLevel'; 19 | import { MobileVisitorAuthenticationState } from './models/MobileVisitorAuthenticationState'; 20 | import { PrivacyStatus } from './models/PrivacyStatus'; 21 | import VisitorID from './models/VisitorID'; 22 | 23 | export { 24 | // Native models 25 | Event, 26 | LogLevel, 27 | MobileVisitorAuthenticationState, 28 | PrivacyStatus, 29 | VisitorID, 30 | // Native modules 31 | Identity, 32 | Lifecycle, 33 | MobileCore, 34 | Signal 35 | }; 36 | -------------------------------------------------------------------------------- /packages/places/src/models/PlacesGeofence.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | /** 14 | * Represents a geofence location that will emit events when exited and entered 15 | */ 16 | class PlacesGeofence { 17 | identifier: string; 18 | latitude: number; 19 | longitude: number; 20 | radius: number; 21 | expirationDuration: number; 22 | 23 | constructor( 24 | identifier: string, 25 | latitude: number, 26 | longitude: number, 27 | radius: number, 28 | expirationDuration: number 29 | ) { 30 | this.identifier = identifier; 31 | this.latitude = latitude; 32 | this.longitude = longitude; 33 | this.radius = radius; 34 | this.expirationDuration = expirationDuration; 35 | } 36 | } 37 | 38 | export default PlacesGeofence; 39 | -------------------------------------------------------------------------------- /packages/target/src/models/TargetParameters.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | import TargetOrder from './TargetOrder'; 13 | import TargetProduct from './TargetProduct'; 14 | 15 | class TargetParameters { 16 | parameters?: { [key: string]: string }; 17 | profileParameters?: { [key: string]: string }; 18 | order?: TargetOrder; 19 | product?: TargetProduct; 20 | 21 | constructor( 22 | parameters?: { [key: string]: string }, 23 | profileParameters?: { [key: string]: string }, 24 | product?: TargetProduct, 25 | order?: TargetOrder 26 | ) { 27 | this.parameters = parameters; 28 | this.profileParameters = profileParameters; 29 | this.product = product; 30 | this.order = order; 31 | } 32 | } 33 | 34 | export default TargetParameters; 35 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 13 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | CONTRIBUTING.md 65 | CODE_OF_CONDUCT.md 66 | Makefile 67 | *.tgz 68 | tsconfig.json -------------------------------------------------------------------------------- /packages/optimize/src/models/AEPOptimizeError.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2025 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | /** 14 | * AEPOptimizeError interface representing the error structure returned by 15 | * both iOS and Android native SDK implementations. 16 | */ 17 | export interface AEPOptimizeError { 18 | /** The type of error that occurred */ 19 | type?: string; 20 | 21 | /** The HTTP status code of the error */ 22 | status?: number; 23 | 24 | /** The title of the error */ 25 | title?: string; 26 | 27 | /** The details of the error */ 28 | detail?: string; 29 | 30 | /** Additional error report information */ 31 | report?: { [key: string]: any }; 32 | 33 | /** The corresponding AEP/Adobe error type */ 34 | aepError?: string; 35 | } 36 | 37 | export default AEPOptimizeError; -------------------------------------------------------------------------------- /packages/core/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:8.1.1' 9 | } 10 | } 11 | 12 | apply plugin: 'com.android.library' 13 | 14 | def safeExtGet(prop, fallback) { 15 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback 16 | } 17 | 18 | android { 19 | compileSdk safeExtGet('compileSdk', 34) 20 | 21 | def agpVersion = com.android.Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')[0].toInteger() 22 | if (agpVersion >= 8) { 23 | namespace = "com.adobe.marketing.mobile.reactnative" 24 | } 25 | 26 | defaultConfig { 27 | minSdkVersion safeExtGet('minSdkVersion', 21) 28 | targetSdkVersion safeExtGet('targetSdkVersion', 34) 29 | versionCode 1 30 | versionName "1.0" 31 | } 32 | lintOptions { 33 | abortOnError false 34 | } 35 | } 36 | 37 | repositories { 38 | google() 39 | mavenCentral() 40 | } 41 | 42 | dependencies { 43 | implementation "com.facebook.react:react-native:+" 44 | implementation platform("com.adobe.marketing.mobile:sdk-bom:[3.8.0,4.0.0)") 45 | api "com.adobe.marketing.mobile:core" 46 | api "com.adobe.marketing.mobile:signal" 47 | api "com.adobe.marketing.mobile:identity" 48 | api "com.adobe.marketing.mobile:lifecycle" 49 | } 50 | -------------------------------------------------------------------------------- /packages/target/ios/src/AEPTargetPrefetchObjectDataBridge.m: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or 7 | agreed to in writing, software distributed under the License is distributed on 8 | an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, either 9 | express or implied. See the License for the specific language governing 10 | permissions and limitations under the License. 11 | */ 12 | 13 | #import "AEPTargetPrefetchObjectDataBridge.h" 14 | #import "AEPTargetParametersDataBridge.h" 15 | 16 | @implementation AEPTargetPrefetchObject (RCTBridge) 17 | 18 | NSString *const PREFETCH_NAME_KEY = @"name"; 19 | NSString *const PARAMETERS_KEY = @"targetParameters"; 20 | 21 | + (AEPTargetPrefetchObject *)prefetchObjectFromDict:(NSDictionary *)dict { 22 | if (!dict || [dict isEqual:[NSNull null]]) { 23 | return nil; 24 | } 25 | 26 | AEPTargetParameters *parameters = 27 | [AEPTargetParameters targetParametersFromDict:dict[PARAMETERS_KEY]]; 28 | return [[AEPTargetPrefetchObject alloc] initWithName:dict[PREFETCH_NAME_KEY] 29 | targetParameters:parameters]; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /packages/messaging/ios/src/RCTAEPMessagingConstants.swift: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the 4 | "License"); you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law 7 | or agreed to in writing, software distributed under the License is 8 | distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF 9 | ANY KIND, either express or implied. See the License for the specific 10 | language governing permissions and limitations under the License. 11 | */ 12 | 13 | class Constants { 14 | static let CACHE_MISS = "No message found in cache. Please ensure you have cached the message" 15 | static let ON_DISMISS_EVENT = "onDismiss" 16 | static let ON_SHOW_EVENT = "onShow" 17 | static let SHOULD_SHOW_MESSAGE_EVENT = "shouldShowMessage" 18 | static let URL_LOADED_EVENT = "urlLoaded" 19 | static let ON_JAVASCRIPT_MESSAGE_EVENT = "onJavascriptMessage" 20 | static let SUPPORTED_EVENTS = [ 21 | ON_DISMISS_EVENT, ON_SHOW_EVENT, SHOULD_SHOW_MESSAGE_EVENT, URL_LOADED_EVENT, ON_JAVASCRIPT_MESSAGE_EVENT 22 | ] 23 | static let MESSAGE_ID_KEY = "messageId" 24 | static let HANDLER_NAME_KEY = "handlerName" 25 | static let CONTENT_KEY = "content" 26 | } 27 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/app.json: -------------------------------------------------------------------------------- 1 | { 2 | "expo": { 3 | "name": "AEPSampleAppNewArchEnabled", 4 | "slug": "AEPSampleAppNewArchEnabled", 5 | "version": "1.0.0", 6 | "orientation": "portrait", 7 | "icon": "./assets/images/icon.png", 8 | "scheme": "myapp", 9 | "userInterfaceStyle": "automatic", 10 | "splash": { 11 | "image": "./assets/images/splash.png", 12 | "resizeMode": "contain", 13 | "backgroundColor": "#ffffff" 14 | }, 15 | "ios": { 16 | "supportsTablet": true, 17 | "bundleIdentifier": "com.AEPSampleAppNewArchEnabled" 18 | }, 19 | "android": { 20 | "adaptiveIcon": { 21 | "foregroundImage": "./assets/images/adaptive-icon.png", 22 | "backgroundColor": "#ffffff" 23 | }, 24 | "package": "com.AEPSampleAppNewArchEnabled" 25 | }, 26 | "web": { 27 | "bundler": "metro", 28 | "output": "static", 29 | "favicon": "./assets/images/favicon.png" 30 | }, 31 | "plugins": [ 32 | "expo-router", 33 | [ 34 | "expo-build-properties", 35 | { 36 | "ios": { 37 | "newArchEnabled": true, 38 | "useFrameworks": "static" 39 | }, 40 | "android": { 41 | "newArchEnabled": true 42 | } 43 | } 44 | ], 45 | "expo-font" 46 | ], 47 | "experiments": { 48 | "typedRoutes": true 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /packages/edge/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json -------------------------------------------------------------------------------- /packages/places/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json -------------------------------------------------------------------------------- /apps/AEPSampleApp/styles/styles.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import {StyleSheet} from 'react-native'; 14 | export default StyleSheet.create({ 15 | container: { 16 | flex: 1, 17 | justifyContent: 'center', 18 | alignItems: 'center', 19 | backgroundColor: '#F5FCFF', 20 | }, 21 | welcome: { 22 | fontSize: 22, 23 | textAlign: 'center', 24 | margin: 10, 25 | }, 26 | header: { 27 | fontSize: 18, 28 | textAlign: 'center', 29 | margin: 5, 30 | backgroundColor: '#C1B7B5', 31 | }, 32 | text: { 33 | fontSize: 15, 34 | textAlign: 'center', 35 | margin: 5, 36 | }, 37 | breakLine: { 38 | borderWidth: 0.5, 39 | borderColor: 'black', 40 | margin: 10, 41 | marginTop: 10, 42 | marginBottom: 10, 43 | }, 44 | textinput: { 45 | fontSize: 18, 46 | margin: 10, 47 | }, 48 | }); 49 | -------------------------------------------------------------------------------- /packages/edgeidentity/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json -------------------------------------------------------------------------------- /packages/target/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | 71 | tsconfig.json -------------------------------------------------------------------------------- /packages/userprofile/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/Collapsible.tsx: -------------------------------------------------------------------------------- 1 | import Ionicons from '@expo/vector-icons/Ionicons'; 2 | import { PropsWithChildren, useState } from 'react'; 3 | import { StyleSheet, TouchableOpacity, useColorScheme } from 'react-native'; 4 | 5 | import { ThemedText } from '@/components/ThemedText'; 6 | import { ThemedView } from '@/components/ThemedView'; 7 | import { Colors } from '@/constants/Colors'; 8 | 9 | export function Collapsible({ children, title }: PropsWithChildren & { title: string }) { 10 | const [isOpen, setIsOpen] = useState(false); 11 | const theme = useColorScheme() ?? 'light'; 12 | 13 | return ( 14 | 15 | setIsOpen((value) => !value)} 18 | activeOpacity={0.8}> 19 | 24 | {title} 25 | 26 | {isOpen && {children}} 27 | 28 | ); 29 | } 30 | 31 | const styles = StyleSheet.create({ 32 | heading: { 33 | flexDirection: 'row', 34 | alignItems: 'center', 35 | gap: 6, 36 | }, 37 | content: { 38 | marginTop: 6, 39 | marginLeft: 24, 40 | }, 41 | }); 42 | -------------------------------------------------------------------------------- /packages/assurance/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json 71 | -------------------------------------------------------------------------------- /packages/campaignclassic/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json -------------------------------------------------------------------------------- /packages/core/ios/src/Core/RCTAEPCoreDataBridge.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | #import 14 | @import AEPCore; 15 | @import AEPServices; 16 | 17 | @interface RCTAEPCoreDataBridge : NSObject 18 | 19 | + (AEPPrivacyStatus)privacyStatusFromString: (NSString *_Nonnull) statusString; 20 | 21 | + (AEPLogLevel) logLevelFromString: (NSString *_Nonnull) logLevelString; 22 | 23 | + (NSString *_Nonnull)stringFromPrivacyStatus: (AEPPrivacyStatus) status; 24 | 25 | + (NSString *_Nonnull)stringFromLogLevel: (AEPLogLevel) logLevel; 26 | 27 | + (NSDictionary *_Nonnull)sanitizeDictionaryToContainClass: (Class _Nonnull ) type WithDictionary:(nonnull NSDictionary *) dict; 28 | 29 | + (AEPEvent *_Nullable)eventFromDictionary: (nonnull NSDictionary *) dict; 30 | 31 | + (NSDictionary *_Nonnull)dictionaryFromEvent: (nonnull AEPEvent *) event; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /packages/edgeconsent/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json 71 | -------------------------------------------------------------------------------- /packages/messaging/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json 71 | -------------------------------------------------------------------------------- /packages/optimize/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | 5 | # Built application files 6 | android/*/build/ 7 | 8 | # Crashlytics configuations 9 | android/com_crashlytics_export_strings.xml 10 | 11 | # Local configuration file (sdk path, etc) 12 | android/local.properties 13 | 14 | # Gradle generated files 15 | android/.gradle/ 16 | 17 | # Signing files 18 | android/.signing/ 19 | 20 | # User-specific configurations 21 | android/.idea/gradle.xml 22 | android/.idea/libraries/ 23 | android/.idea/workspace.xml 24 | android/.idea/tasks.xml 25 | android/.idea/.name 26 | android/.idea/compiler.xml 27 | android/.idea/copyright/profiles_settings.xml 28 | android/.idea/encodings.xml 29 | android/.idea/misc.xml 30 | android/.idea/modules.xml 31 | android/.idea/scopes/scope_settings.xml 32 | android/.idea/vcs.xml 33 | android/*.iml 34 | 35 | # Xcode 36 | *.pbxuser 37 | *.mode1v3 38 | *.mode2v3 39 | *.perspectivev3 40 | *.xcuserstate 41 | ios/Pods 42 | ios/build 43 | *project.xcworkspace* 44 | *xcuserdata* 45 | ios/*.xcworkspace 46 | ios/*.podspec 47 | 48 | # OS-specific files 49 | .DS_Store 50 | .DS_Store? 51 | ._* 52 | .Spotlight-V100 53 | .Trashes 54 | ehthumbs.db 55 | Thumbs.dbandroid/gradle 56 | android/gradlew 57 | android/build 58 | android/gradlew.bat 59 | android/gradle/ 60 | __tests__ 61 | .circleci/ 62 | .opensource/ 63 | jest/ 64 | acp-sdks/ 65 | update-android-sdk.sh 66 | CONTRIBUTING.md 67 | CODE_OF_CONDUCT.md 68 | Makefile 69 | *.tgz 70 | tsconfig.json 71 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/styles/styles.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2022 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | import {StyleSheet} from 'react-native'; 14 | export default StyleSheet.create({ 15 | container: { 16 | flex: 1, 17 | justifyContent: 'center', 18 | alignItems: 'center', 19 | backgroundColor: '#F5FCFF', 20 | }, 21 | welcome: { 22 | fontSize: 22, 23 | textAlign: 'center', 24 | margin: 10, 25 | }, 26 | header: { 27 | fontSize: 18, 28 | textAlign: 'center', 29 | margin: 5, 30 | backgroundColor: '#C1B7B5', 31 | }, 32 | text: { 33 | fontSize: 15, 34 | textAlign: 'center', 35 | margin: 5, 36 | }, 37 | breakLine: { 38 | borderWidth: 0.5, 39 | borderColor: 'black', 40 | margin: 10, 41 | marginTop: 10, 42 | marginBottom: 10, 43 | }, 44 | textinput: { 45 | fontSize: 18, 46 | margin: 10, 47 | }, 48 | }); 49 | -------------------------------------------------------------------------------- /packages/core/.npmignore: -------------------------------------------------------------------------------- 1 | sample/ 2 | .github/ 3 | .git/ 4 | .editorconfig 5 | 6 | # Built application files 7 | android/*/build/ 8 | 9 | # Crashlytics configuations 10 | android/com_crashlytics_export_strings.xml 11 | 12 | # Local configuration file (sdk path, etc) 13 | android/local.properties 14 | 15 | # Gradle generated files 16 | android/.gradle/ 17 | 18 | # Signing files 19 | android/.signing/ 20 | 21 | # User-specific configurations 22 | android/.idea/gradle.xml 23 | android/.idea/libraries/ 24 | android/.idea/workspace.xml 25 | android/.idea/tasks.xml 26 | android/.idea/.name 27 | android/.idea/compiler.xml 28 | android/.idea/copyright/profiles_settings.xml 29 | android/.idea/encodings.xml 30 | android/.idea/misc.xml 31 | android/.idea/modules.xml 32 | android/.idea/scopes/scope_settings.xml 33 | android/.idea/vcs.xml 34 | android/*.iml 35 | 36 | # Xcode 37 | *.pbxuser 38 | *.mode1v3 39 | *.mode2v3 40 | *.perspectivev3 41 | *.xcuserstate 42 | ios/Pods 43 | ios/build 44 | *project.xcworkspace* 45 | *xcuserdata* 46 | ios/*.xcworkspace 47 | ios/*.podspec 48 | 49 | # OS-specific files 50 | .DS_Store 51 | .DS_Store? 52 | ._* 53 | .Spotlight-V100 54 | .Trashes 55 | ehthumbs.db 56 | Thumbs.dbandroid/gradle 57 | android/gradlew 58 | android/build 59 | android/gradlew.bat 60 | android/gradle/ 61 | __tests__ 62 | .circleci/ 63 | .opensource/ 64 | jest/ 65 | acp-sdks/ 66 | update-android-sdk.sh 67 | CONTRIBUTING.md 68 | CODE_OF_CONDUCT.md 69 | Makefile 70 | *.tgz 71 | tsconfig.json 72 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: Feature request 2 | description: Suggest an idea for this project. 3 | labels: [feature-request, triage-required] 4 | 5 | body: 6 | - type: checkboxes 7 | attributes: 8 | label: Prerequisites 9 | description: Please check the following items before logging a new feature request. 10 | options: 11 | - label: This is not a Security Disclosure, otherwise please follow the guidelines in [Security Policy](https://github.com/adobe/aepsdk-react-native/security/policy). 12 | required: true 13 | - label: I have searched in this repository's issues to see if it has already been reported. 14 | required: true 15 | 16 | - type: textarea 17 | id: description 18 | attributes: 19 | label: Feature request summary 20 | description: Please provide a summary of the feature. 21 | validations: 22 | required: true 23 | 24 | - type: textarea 25 | attributes: 26 | label: Current behavior 27 | description: A concise description of what you are experiencing. 28 | validations: 29 | required: false 30 | 31 | - type: textarea 32 | attributes: 33 | label: Expected behavior 34 | description: A concise description of what you expected to happen. 35 | validations: 36 | required: false 37 | 38 | - type: textarea 39 | attributes: 40 | label: Additional implementation details or code snippets 41 | description: Provide additional information about this request, implementation details or code snippets. 42 | validations: 43 | required: false 44 | -------------------------------------------------------------------------------- /packages/core/src/models/InitOptions.ts: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2025 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | 7 | Unless required by applicable law or agreed to in writing, software distributed under 8 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | OF ANY KIND, either express or implied. See the License for the specific language 10 | governing permissions and limitations under the License. 11 | */ 12 | 13 | /** 14 | * Interface representing the initialization options for the SDK. 15 | */ 16 | export interface InitOptions { 17 | /** 18 | * A unique identifier assigned to the app instance by Adobe tags. 19 | */ 20 | appId?: string; 21 | 22 | /** 23 | * Optional flag to enable or disable automatic lifecycle tracking. 24 | * If not provided, the default value is `true`. 25 | */ 26 | lifecycleAutomaticTrackingEnabled?: boolean; 27 | 28 | /** 29 | * Optional additional context data to be included with lifecycle events. 30 | * This is a key-value pair object where both key and value are strings. 31 | */ 32 | lifecycleAdditionalContextData?: { [key: string]: string }; 33 | 34 | /** 35 | * Optional application group identifier for iOS. 36 | * 37 | * Used to share user defaults and files between the main app and its extension apps on iOS. 38 | */ 39 | appGroupIOS?: string; 40 | } 41 | -------------------------------------------------------------------------------- /apps/AEPSampleAppNewArchEnabled/components/ThemedText.tsx: -------------------------------------------------------------------------------- 1 | import { Text, type TextProps, StyleSheet } from 'react-native'; 2 | 3 | import { useThemeColor } from '@/hooks/useThemeColor'; 4 | 5 | export type ThemedTextProps = TextProps & { 6 | lightColor?: string; 7 | darkColor?: string; 8 | type?: 'default' | 'title' | 'defaultSemiBold' | 'subtitle' | 'link'; 9 | }; 10 | 11 | export function ThemedText({ 12 | style, 13 | lightColor, 14 | darkColor, 15 | type = 'default', 16 | ...rest 17 | }: ThemedTextProps) { 18 | const color = useThemeColor({ light: lightColor, dark: darkColor }, 'text'); 19 | 20 | return ( 21 | 33 | ); 34 | } 35 | 36 | const styles = StyleSheet.create({ 37 | default: { 38 | fontSize: 16, 39 | lineHeight: 24, 40 | }, 41 | defaultSemiBold: { 42 | fontSize: 16, 43 | lineHeight: 24, 44 | fontWeight: '600', 45 | }, 46 | title: { 47 | fontSize: 32, 48 | fontWeight: 'bold', 49 | lineHeight: 32, 50 | }, 51 | subtitle: { 52 | fontSize: 20, 53 | fontWeight: 'bold', 54 | }, 55 | link: { 56 | lineHeight: 30, 57 | fontSize: 16, 58 | color: '#0a7ea4', 59 | }, 60 | }); 61 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/ios/AEPSampleApp/AppDelegate.mm: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | 12 | #import "AppDelegate.h" 13 | 14 | #import 15 | 16 | @implementation AppDelegate 17 | 18 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 19 | { 20 | self.moduleName = @"AEPSampleApp"; 21 | // You can add your custom initial props in the dictionary below. 22 | // They will be passed down to the ViewController used by React Native. 23 | self.initialProps = @{}; 24 | 25 | 26 | return [super application:application didFinishLaunchingWithOptions:launchOptions]; 27 | } 28 | 29 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge 30 | { 31 | return [self getBundleURL]; 32 | } 33 | 34 | - (NSURL *)getBundleURL 35 | { 36 | #if DEBUG 37 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"]; 38 | #else 39 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"]; 40 | #endif 41 | } 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /apps/AEPSampleApp/android/app/src/main/java/com/aepsampleapp/MainActivity.kt: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2024 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | package com.aepsampleapp 12 | 13 | import com.facebook.react.ReactActivity 14 | import com.facebook.react.ReactActivityDelegate 15 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled 16 | import com.facebook.react.defaults.DefaultReactActivityDelegate 17 | 18 | class MainActivity : ReactActivity() { 19 | 20 | /** 21 | * Returns the name of the main component registered from JavaScript. This is used to schedule 22 | * rendering of the component. 23 | */ 24 | override fun getMainComponentName(): String = "AEPSampleApp" 25 | 26 | /** 27 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate] 28 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] 29 | */ 30 | override fun createReactActivityDelegate(): ReactActivityDelegate = 31 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) 32 | 33 | } 34 | -------------------------------------------------------------------------------- /packages/edgebridge/android/src/main/java/com/adobe/marketing/mobile/reactnative/edgebridge/RCTAEPEdgeBridgeModule.java: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2023 Adobe. All rights reserved. 3 | This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. You may obtain a copy 5 | of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | Unless required by applicable law or agreed to in writing, software distributed under 7 | the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 8 | OF ANY KIND, either express or implied. See the License for the specific language 9 | governing permissions and limitations under the License. 10 | */ 11 | package com.adobe.marketing.mobile.reactnative.edgebridge; 12 | 13 | import com.adobe.marketing.mobile.edge.bridge.EdgeBridge; 14 | import com.facebook.react.bridge.Promise; 15 | import com.facebook.react.bridge.ReactApplicationContext; 16 | import com.facebook.react.bridge.ReactContextBaseJavaModule; 17 | import com.facebook.react.bridge.ReactMethod; 18 | 19 | public class RCTAEPEdgeBridgeModule extends ReactContextBaseJavaModule { 20 | 21 | private final ReactApplicationContext reactContext; 22 | 23 | public RCTAEPEdgeBridgeModule(ReactApplicationContext reactContext) { 24 | super(reactContext); 25 | this.reactContext = reactContext; 26 | } 27 | 28 | @Override 29 | public String getName() { 30 | return "AEPEdgeBridge"; 31 | } 32 | 33 | @ReactMethod 34 | public void extensionVersion(final Promise promise) { 35 | promise.resolve(EdgeBridge.extensionVersion()); 36 | } 37 | } 38 | --------------------------------------------------------------------------------