diff --git a/packages/example/lib/home_screen.dart b/packages/example/lib/home_screen.dart index 51957c9..a347c55 100644 --- a/packages/example/lib/home_screen.dart +++ b/packages/example/lib/home_screen.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:rudder_integration_clevertap_flutter/rudder_integration_clevertap_flutter.dart'; import 'package:rudder_plugin_db_encryption/rudder_plugin_db_encryption.dart'; import 'package:rudder_sdk_flutter/RudderController.dart'; import 'package:rudder_integration_appcenter_flutter/rudder_integration_appcenter_flutter.dart'; @@ -62,6 +63,7 @@ class HomeScreenState extends State { ..withFactory(RudderIntegrationFirebaseFlutter()) ..withFactory(RudderIntegrationBrazeFlutter()) ..withFactory(RudderIntegrationAmplitudeFlutter()) + ..withFactory(RudderIntegrationClevertapFlutter()) ..withDataPlaneUrl( dotenv.env['DATA_PLANE_URL'] ?? "https://hosted.rudderlabs.com") ..withMobileConfig(mc) diff --git a/packages/example/pubspec.yaml b/packages/example/pubspec.yaml index d747f93..67ac5e3 100644 --- a/packages/example/pubspec.yaml +++ b/packages/example/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: rudder_sdk_flutter: path: "../plugins/rudder_plugin" rudder_plugin_db_encryption: - path: "../integrations/rudder_plugin_db_encryption" + path: "../plugins/rudder_plugin_db_encryption" rudder_integration_amplitude_flutter: path: "../integrations/rudder_integration_amplitude_flutter" rudder_integration_adjust_flutter: @@ -29,6 +29,9 @@ dependencies: path: "../integrations/rudder_integration_leanplum_flutter" rudder_integration_appsflyer_flutter: path: "../integrations/rudder_integration_appsflyer_flutter" + rudder_integration_clevertap_flutter: + path: "../integrations/rudder_integration_clevertap_flutter" + # rudder_integration_kochava_flutter: # path: "../integrations/rudder_integration_kochava_flutter" # When depending on this package from a real application you should use: @@ -47,8 +50,8 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. - cupertino_icons: ^1.0.2 - flutter_dotenv: ^5.0.2 + cupertino_icons: ^1.0.8 + flutter_dotenv: ^5.2.1 dev_dependencies: flutter_lints: ^2.0.1 diff --git a/packages/integrations/rudder_integration_clevertap_flutter/.gitignore b/packages/integrations/rudder_integration_clevertap_flutter/.gitignore new file mode 100644 index 0000000..11bcaf4 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/.gitignore @@ -0,0 +1,29 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +**/doc/api/ +.dart_tool/ +.packages +build/ diff --git a/packages/integrations/rudder_integration_clevertap_flutter/.metadata b/packages/integrations/rudder_integration_clevertap_flutter/.metadata new file mode 100644 index 0000000..8472cba --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/.metadata @@ -0,0 +1,33 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled. + +version: + revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + channel: stable + +project_type: plugin + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + - platform: android + create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + - platform: ios + create_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + base_revision: f1875d570e39de09040c8f79aa13cc56baab8db1 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/packages/integrations/rudder_integration_clevertap_flutter/CHANGELOG.md b/packages/integrations/rudder_integration_clevertap_flutter/CHANGELOG.md new file mode 100644 index 0000000..a509db3 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/CHANGELOG.md @@ -0,0 +1,3 @@ +### 1.0.0 + +- Stable release of Rudderstack Clevertap Integration on Flutter diff --git a/packages/integrations/rudder_integration_clevertap_flutter/LICENSE b/packages/integrations/rudder_integration_clevertap_flutter/LICENSE new file mode 100644 index 0000000..fe679b3 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 RudderStack + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/packages/integrations/rudder_integration_clevertap_flutter/README.md b/packages/integrations/rudder_integration_clevertap_flutter/README.md new file mode 100644 index 0000000..363a6d9 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/README.md @@ -0,0 +1,47 @@ +# What is RudderStack? + +[RudderStack](https://rudderstack.com/) is a **customer data pipeline tool** for collecting, routing and processing data from your websites, apps, cloud tools, and data warehouse. + +With RudderStack, you can build customer data pipelines that connect your whole customer data stack and then make them smarter by triggering enrichment and activation in customer tools based on analysis in your data warehouse. Its easy-to-use SDKs and event source integrations, Cloud Extract integrations, transformations, and expansive library of destination and warehouse integrations makes building customer data pipelines for both event streaming and cloud-to-warehouse ELT simple. + +Questions? Please join our [Slack channel](https://www.rudderstack.com/join-rudderstack-slack-community/) or read about us on [Product Hunt](https://www.producthunt.com/posts/rudderstack). + +## Integrating Clevertap with the RudderStack Flutter SDK + +1. Add [Clevertap](https://clevertap.com/) as a destination in the [RudderStack dashboard](https://app.rudderstack.com/). + +2. Open `pubspec.yaml` and add `rudder_integration_clevertap_flutter` under `dependencies` section: + +```groovy +dependencies: + rudder_integration_clevertap_flutter: ^1.0.0 +``` + +3. Navigate to your Application's root folder and install all the required dependencies with: + +```bash +flutter pub get +``` + +4. Import the module you added above and add it to your SDK initialization code as shown below: + +```typescript +import 'package:rudder_sdk_flutter/RudderController.dart'; +import 'package:rudder_sdk_flutter_platform_interface/platform.dart'; +import 'package:rudder_integration_clevertap_flutter/rudder_integration_clevertap_flutter.dart'; + +RudderConfigBuilder builder = RudderConfigBuilder(); +builder.withDataPlaneUrl(DATA_PLANE_URL); +builder.withFactory(RudderIntegrationClevertapFlutter()); +final RudderController rudderClient = RudderController.instance; +rudderClient.initialize(WRITE_KEY, + config: builder.build(), options:null); +``` + +## Sending Events + +Follow the steps from our [RudderStack Flutter SDK](https://github.com/rudderlabs/rudder-sdk-flutter#send-events) repo. + +## Contact Us + +If you come across any issues while configuring or using this integration, please feel free to start a conversation on our [Slack](https://www.rudderstack.com/join-rudderstack-slack-community/) channel. We will be happy to help you. diff --git a/packages/integrations/rudder_integration_clevertap_flutter/android/.gitignore b/packages/integrations/rudder_integration_clevertap_flutter/android/.gitignore new file mode 100644 index 0000000..161bdcd --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/android/.gitignore @@ -0,0 +1,9 @@ +*.iml +.gradle +/local.properties +/.idea/workspace.xml +/.idea/libraries +.DS_Store +/build +/captures +.cxx diff --git a/packages/integrations/rudder_integration_clevertap_flutter/android/build.gradle b/packages/integrations/rudder_integration_clevertap_flutter/android/build.gradle new file mode 100644 index 0000000..41d2155 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/android/build.gradle @@ -0,0 +1,43 @@ +group 'com.rudderstack.sdk.flutter.integrations.rudder_integration_clevertap_flutter' +version '1.0' + +buildscript { + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.1.2' + } +} + +rootProject.allprojects { + repositories { + google() + mavenCentral() + } +} + +apply plugin: 'com.android.library' + +android { + compileSdkVersion 31 + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + defaultConfig { + minSdkVersion 16 + } +} + +dependencies { + // Rudder Android Core SDK Dependencies + implementation 'com.rudderstack.android.sdk:core:[1.7.0, 2.0.0)' + implementation project(path: ':rudder_plugin_android') + // Rudder-Clevertap Android Device Mode + implementation 'com.rudderstack.android.integration:clevertap:1.0.1' +} diff --git a/packages/integrations/rudder_integration_clevertap_flutter/android/settings.gradle b/packages/integrations/rudder_integration_clevertap_flutter/android/settings.gradle new file mode 100644 index 0000000..fddfb99 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/android/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'rudder_integration_clevertap_flutter' diff --git a/packages/integrations/rudder_integration_clevertap_flutter/android/src/main/AndroidManifest.xml b/packages/integrations/rudder_integration_clevertap_flutter/android/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7c05518 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/android/src/main/AndroidManifest.xml @@ -0,0 +1,3 @@ + + diff --git a/packages/integrations/rudder_integration_clevertap_flutter/android/src/main/java/com/rudderstack/sdk/flutter/integrations/rudder_integration_clevertap_flutter/RudderIntegrationClevertapFlutterPlugin.java b/packages/integrations/rudder_integration_clevertap_flutter/android/src/main/java/com/rudderstack/sdk/flutter/integrations/rudder_integration_clevertap_flutter/RudderIntegrationClevertapFlutterPlugin.java new file mode 100644 index 0000000..a28a2b1 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/android/src/main/java/com/rudderstack/sdk/flutter/integrations/rudder_integration_clevertap_flutter/RudderIntegrationClevertapFlutterPlugin.java @@ -0,0 +1,43 @@ +package com.rudderstack.sdk.flutter.integrations.rudder_integration_clevertap_flutter; + +import static com.rudderstack.sdk.flutter.RudderSdkFlutterPlugin.addIntegration; + +import androidx.annotation.NonNull; +import com.rudderstack.android.integrations.clevertap.CleverTapIntegrationFactory; +import io.flutter.embedding.engine.plugins.FlutterPlugin; +import io.flutter.plugin.common.MethodCall; +import io.flutter.plugin.common.MethodChannel; +import io.flutter.plugin.common.MethodChannel.MethodCallHandler; +import io.flutter.plugin.common.MethodChannel.Result; + +/** RudderIntegrationClevertapFlutterPlugin */ +public class RudderIntegrationClevertapFlutterPlugin implements FlutterPlugin, MethodCallHandler { + /// The MethodChannel that will the communication between Flutter and native Android + /// + /// This local reference serves to register the plugin with the Flutter Engine and unregister it + /// when the Flutter Engine is detached from the Activity + private MethodChannel channel; + + @Override + public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { + channel = + new MethodChannel( + flutterPluginBinding.getBinaryMessenger(), "rudder_integration_clevertap_flutter"); + channel.setMethodCallHandler(this); + } + + @Override + public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) { + if (call.method.equals("addFactory")) { + addIntegration(CleverTapIntegrationFactory.FACTORY); + // To do with result + } else { + result.notImplemented(); + } + } + + @Override + public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { + channel.setMethodCallHandler(null); + } +} diff --git a/packages/integrations/rudder_integration_clevertap_flutter/ios/.gitignore b/packages/integrations/rudder_integration_clevertap_flutter/ios/.gitignore new file mode 100644 index 0000000..0c88507 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/ios/.gitignore @@ -0,0 +1,38 @@ +.idea/ +.vagrant/ +.sconsign.dblite +.svn/ + +.DS_Store +*.swp +profile + +DerivedData/ +build/ +GeneratedPluginRegistrant.h +GeneratedPluginRegistrant.m + +.generated/ + +*.pbxuser +*.mode1v3 +*.mode2v3 +*.perspectivev3 + +!default.pbxuser +!default.mode1v3 +!default.mode2v3 +!default.perspectivev3 + +xcuserdata + +*.moved-aside + +*.pyc +*sync/ +Icon? +.tags* + +/Flutter/Generated.xcconfig +/Flutter/ephemeral/ +/Flutter/flutter_export_environment.sh \ No newline at end of file diff --git a/packages/integrations/rudder_integration_clevertap_flutter/ios/Classes/RudderIntegrationClevertapFlutterPlugin.h b/packages/integrations/rudder_integration_clevertap_flutter/ios/Classes/RudderIntegrationClevertapFlutterPlugin.h new file mode 100644 index 0000000..5d503f8 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/ios/Classes/RudderIntegrationClevertapFlutterPlugin.h @@ -0,0 +1,4 @@ +#import + +@interface RudderIntegrationClevertapFlutterPlugin : NSObject +@end diff --git a/packages/integrations/rudder_integration_clevertap_flutter/ios/Classes/RudderIntegrationClevertapFlutterPlugin.m b/packages/integrations/rudder_integration_clevertap_flutter/ios/Classes/RudderIntegrationClevertapFlutterPlugin.m new file mode 100644 index 0000000..f89f4e8 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/ios/Classes/RudderIntegrationClevertapFlutterPlugin.m @@ -0,0 +1,25 @@ +#import + +#import "RudderCleverTapFactory.h" +#import "RudderIntegrationClevertapFlutterPlugin.h" + +@implementation RudderIntegrationClevertapFlutterPlugin ++ (void)registerWithRegistrar:(NSObject*)registrar { + FlutterMethodChannel* channel = + [FlutterMethodChannel methodChannelWithName:@"rudder_integration_clevertap_flutter" + binaryMessenger:[registrar messenger]]; + RudderIntegrationClevertapFlutterPlugin* instance = + [[RudderIntegrationClevertapFlutterPlugin alloc] init]; + [registrar addMethodCallDelegate:instance channel:channel]; +} + +- (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult)result { + if ([call.method isEqualToString:@"addFactory"]) { + [RudderSdkFlutterPlugin addIntegration:[RudderCleverTapFactory instance]]; + // To do with result + } else { + result(FlutterMethodNotImplemented); + } +} + +@end diff --git a/packages/integrations/rudder_integration_clevertap_flutter/ios/rudder_integration_clevertap_flutter.podspec b/packages/integrations/rudder_integration_clevertap_flutter/ios/rudder_integration_clevertap_flutter.podspec new file mode 100644 index 0000000..ee53cdb --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/ios/rudder_integration_clevertap_flutter.podspec @@ -0,0 +1,26 @@ +# +# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html. +# Run `pod lib lint rudder_integration_clevertap_flutter.podspec` to validate before publishing. +# +Pod::Spec.new do |s| + s.name = 'rudder_integration_clevertap_flutter' + s.version = '1.0.1' + s.summary = "RudderStack's Flutter Device Mode for the Clevertap Destination" + s.description = <<-DESC + Rudder is a platform for collecting, storing and routing customer event data to dozens of tools. Rudder is open-source, can run in your cloud environment (AWS, GCP, Azure or even your data-centre) and provides a powerful transformation framework to process your event data on the fly. + DESC + s.homepage = 'https://github.com/rudderlabs/rudder-sdk-flutter/tree/main/packages/integrations' + s.license = { :file => '../LICENSE' } + s.author = { 'RudderStack' => 'sdk-accounts@rudderstack.com' } + s.source = { :path => '.' } + s.source_files = 'Classes/**/*' + s.public_header_files = 'Classes/**/*.h' + s.static_framework = true + s.dependency 'Flutter' + s.dependency 'rudder_plugin_ios' + s.dependency 'Rudder-CleverTap', '1.1.2' + s.platform = :ios, '12.0' + + # Flutter.framework does not contain a i386 slice. + s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' } +end diff --git a/packages/integrations/rudder_integration_clevertap_flutter/lib/rudder_integration_clevertap_flutter.dart b/packages/integrations/rudder_integration_clevertap_flutter/lib/rudder_integration_clevertap_flutter.dart new file mode 100644 index 0000000..148beee --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/lib/rudder_integration_clevertap_flutter.dart @@ -0,0 +1,20 @@ +import 'package:flutter/services.dart'; +import 'package:flutter/foundation.dart'; +import 'package:rudder_sdk_flutter_platform_interface/platform.dart'; + +class RudderIntegrationClevertapFlutter implements RudderIntegration { + static const MethodChannel _channel = + MethodChannel('rudder_integration_clevertap_flutter'); + + @override + void addFactory() { + if (!kIsWeb) { + _channel.invokeMethod("addFactory"); + } + } + + @override + String getKey() { + return "CleverTap"; + } +} diff --git a/packages/integrations/rudder_integration_clevertap_flutter/pubspec.lock b/packages/integrations/rudder_integration_clevertap_flutter/pubspec.lock new file mode 100644 index 0000000..3b26ac0 --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/pubspec.lock @@ -0,0 +1,498 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: ae92f5d747aee634b87f89d9946000c2de774be1d6ac3e58268224348cd0101a + url: "https://pub.dev" + source: hosted + version: "61.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: ea3d8652bda62982addfd92fdc2d0214e5f82e43325104990d4f4c4a2a313562 + url: "https://pub.dev" + source: hosted + version: "5.13.0" + analyzer_plugin: + dependency: transitive + description: + name: analyzer_plugin + sha256: c1d5f167683de03d5ab6c3b53fc9aeefc5d59476e7810ba7bbddff50c6f4392d + url: "https://pub.dev" + source: hosted + version: "0.11.2" + ansicolor: + dependency: transitive + description: + name: ansicolor + sha256: "607f8fa9786f392043f169898923e6c59b4518242b68b8862eb8a8b7d9c30b4a" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + args: + dependency: transitive + description: + name: args + sha256: b003c3098049a51720352d219b0bb5f219b60fbfb68e7a4748139a06a5676515 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + crypto: + dependency: transitive + description: + name: crypto + sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + url: "https://pub.dev" + source: hosted + version: "3.0.2" + csslib: + dependency: transitive + description: + name: csslib + sha256: b36c7f7e24c0bdf1bf9a3da461c837d1de64b9f8beb190c9011d8c72a3dfd745 + url: "https://pub.dev" + source: hosted + version: "0.17.2" + dart_code_metrics: + dependency: "direct dev" + description: + name: dart_code_metrics + sha256: "3dede3f7abc077a4181ec7445448a289a9ce08e2981e6a4d49a3fb5099d47e1f" + url: "https://pub.dev" + source: hosted + version: "5.7.6" + dart_code_metrics_presets: + dependency: transitive + description: + name: dart_code_metrics_presets + sha256: b71eadf02a3787ebd5c887623f83f6fdc204d45c75a081bd636c4104b3fd8b73 + url: "https://pub.dev" + source: hosted + version: "1.8.0" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + url: "https://pub.dev" + source: hosted + version: "2.2.4" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c + url: "https://pub.dev" + source: hosted + version: "2.0.1" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + html: + dependency: transitive + description: + name: html + sha256: d9793e10dbe0e6c364f4c59bf3e01fb33a9b2a674bc7a1081693dba0614b6269 + url: "https://pub.dev" + source: hosted + version: "0.15.1" + http: + dependency: transitive + description: + name: http + sha256: "5895291c13fa8a3bd82e76d5627f69e0d85ca6a30dcac95c4ea19a5d555879c2" + url: "https://pub.dev" + source: hosted + version: "0.13.6" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + js: + dependency: transitive + description: + name: js + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + url: "https://pub.dev" + source: hosted + version: "0.7.1" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 + url: "https://pub.dev" + source: hosted + version: "4.8.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" + url: "https://pub.dev" + source: hosted + version: "10.0.5" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" + url: "https://pub.dev" + source: hosted + version: "3.0.5" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + logger: + dependency: transitive + description: + name: logger + sha256: "6bbb9d6f7056729537a4309bda2e74e18e5d9f14302489cc1e93f33b3fe32cac" + url: "https://pub.dev" + source: hosted + version: "2.0.2+1" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" + url: "https://pub.dev" + source: hosted + version: "5.1.0" + platform: + dependency: transitive + description: + name: platform + sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + plugin_platform_interface: + dependency: "direct main" + description: + name: plugin_platform_interface + sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + url: "https://pub.dev" + source: hosted + version: "2.1.3" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" + source: hosted + version: "4.2.4" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + pub_updater: + dependency: transitive + description: + name: pub_updater + sha256: "05ae70703e06f7fdeb05f7f02dd680b8aad810e87c756a618f33e1794635115c" + url: "https://pub.dev" + source: hosted + version: "0.3.0" + rudder_plugin_android: + dependency: transitive + description: + name: rudder_plugin_android + sha256: dd1054dc7531cefbb8b3aea89a96e14b55672f8687eea2d7809892477a3952fa + url: "https://pub.dev" + source: hosted + version: "3.0.1" + rudder_plugin_ios: + dependency: transitive + description: + name: rudder_plugin_ios + sha256: bdadd15eb46dc0397472c13b9b42fe86771bfb0d7777aa828c38748d70c0b516 + url: "https://pub.dev" + source: hosted + version: "3.0.1" + rudder_plugin_web: + dependency: transitive + description: + name: rudder_plugin_web + sha256: "2926310424d5e296b83af86e675845b92af58ec24457ed7614950bb21e265453" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + rudder_sdk_flutter: + dependency: "direct main" + description: + name: rudder_sdk_flutter + sha256: aa59c81c5db3b2e28433be01664c70d8e478b68808a5f74a3120bc2f3b35ecfe + url: "https://pub.dev" + source: hosted + version: "3.0.1" + rudder_sdk_flutter_platform_interface: + dependency: "direct main" + description: + name: rudder_sdk_flutter_platform_interface + sha256: "403d41755ca620bd93ef9de9914a7453d8f0e5b2a0a335e2d12041cabe2979c8" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" + url: "https://pub.dev" + source: hosted + version: "0.7.2" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + uuid: + dependency: transitive + description: + name: uuid + sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313" + url: "https://pub.dev" + source: hosted + version: "3.0.7" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" + url: "https://pub.dev" + source: hosted + version: "14.2.5" + watcher: + dependency: transitive + description: + name: watcher + sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + xml: + dependency: transitive + description: + name: xml + sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb + url: "https://pub.dev" + source: hosted + version: "6.1.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + url: "https://pub.dev" + source: hosted + version: "3.1.1" +sdks: + dart: ">=3.3.0 <4.0.0" + flutter: ">=3.18.0-18.0.pre.54" diff --git a/packages/integrations/rudder_integration_clevertap_flutter/pubspec.yaml b/packages/integrations/rudder_integration_clevertap_flutter/pubspec.yaml new file mode 100644 index 0000000..6740d9e --- /dev/null +++ b/packages/integrations/rudder_integration_clevertap_flutter/pubspec.yaml @@ -0,0 +1,75 @@ +name: rudder_integration_clevertap_flutter +description: Flutter Device Mode Support for Clevertap Destination. +version: 1.0.0 +homepage: https://github.com/rudderlabs/rudder-sdk-flutter + +# Built with Flutter 3.24.4 +environment: + sdk: ">=2.17.6 <3.0.0" + flutter: ">=2.5.0" + +dependencies: + flutter: + sdk: flutter + plugin_platform_interface: ^2.0.2 + rudder_sdk_flutter: ^3.0.1 + rudder_sdk_flutter_platform_interface: ^3.0.0 +dev_dependencies: + flutter_lints: ^2.0.1 + dart_code_metrics: ^5.7.6 + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + # This section identifies this Flutter project as a plugin project. + # The 'pluginClass' specifies the class (in Java, Kotlin, Swift, Objective-C, etc.) + # which should be registered in the plugin registry. This is required for + # using method channels. + # The Android 'package' specifies package in which the registered class is. + # This is required for using method channels on Android. + # The 'ffiPlugin' specifies that native code should be built and bundled. + # This is required for using `dart:ffi`. + # All these are used by the tooling to maintain consistency when + # adding or updating assets for this project. + plugin: + platforms: + android: + package: com.rudderstack.sdk.flutter.integrations.rudder_integration_clevertap_flutter + pluginClass: RudderIntegrationClevertapFlutterPlugin + ios: + pluginClass: RudderIntegrationClevertapFlutterPlugin + + # To add assets to your plugin package, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + # + # For details regarding assets in packages, see + # https://flutter.dev/assets-and-images/#from-packages + # + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # To add custom fonts to your plugin package, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts in packages, see + # https://flutter.dev/custom-fonts/#from-packages diff --git a/packages/plugins/rudder_plugin_interface/lib/src/rudder_logger.dart b/packages/plugins/rudder_plugin_interface/lib/src/rudder_logger.dart index 0f3b801..e67bf00 100644 --- a/packages/plugins/rudder_plugin_interface/lib/src/rudder_logger.dart +++ b/packages/plugins/rudder_plugin_interface/lib/src/rudder_logger.dart @@ -49,7 +49,7 @@ class RudderLogger { static void logVerbose(String message) { if (__logLevel >= VERBOSE) { - _logger.v(__TAG, error: "Verbose: $message"); + _logger.t(__TAG, error: "Verbose: $message"); } } } diff --git a/pubspec.yaml b/pubspec.yaml index 2a3acb6..d8f22ba 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,6 +34,8 @@ dependencies: path: "packages/integrations/rudder_integration_leanplum_flutter" rudder_integration_kochava_flutter: path: "packages/integrations/rudder_integration_kochava_flutter" + rudder_integration_clevertap_flutter: + path: "packages/integrations/rudder_integration_clevertap_flutter" flutter_plugin_tools: ^0.12.1