diff --git a/.github/workflows/ci-dio-interceptor.yml b/.github/workflows/ci-dio-interceptor.yml new file mode 100644 index 00000000..f62e139b --- /dev/null +++ b/.github/workflows/ci-dio-interceptor.yml @@ -0,0 +1,43 @@ +name: CI - Dio Interceptor + +on: + push: + branches: + - main + paths: + - "packages/posthog_dio_interceptor/**" + - ".github/workflows/ci-dio-interceptor.yml" + pull_request: + paths: + - "packages/posthog_dio_interceptor/**" + - ".github/workflows/ci-dio-interceptor.yml" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - uses: dart-lang/setup-dart@v1 + with: + sdk: stable + + - name: Install dependencies + run: | + dart pub get + working-directory: ./packages/posthog_dio_interceptor + + - name: Check format + run: | + dart format --set-exit-if-changed ./ + working-directory: ./packages/posthog_dio_interceptor + + - name: Analyze + run: | + dart analyze . + working-directory: ./packages/posthog_dio_interceptor + + - name: Run tests + run: | + dart test + working-directory: ./packages/posthog_dio_interceptor diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b903a59a..3fd8b8b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,9 +3,17 @@ on: push: branches: - main + paths: + - "packages/posthog_flutter/**" + - ".github/workflows/ci.yml" + - "Makefile" + - "ktlint-baseline.xml" pull_request: - paths-ignore: - - "**/*.md" + paths: + - "packages/posthog_flutter/**" + - ".github/workflows/ci.yml" + - "Makefile" + - "ktlint-baseline.xml" # Publish using custom workflow jobs: @@ -35,6 +43,7 @@ jobs: flutter pub get cd example flutter pub get + working-directory: ./packages/posthog_flutter - name: SDK format check run: | @@ -43,22 +52,25 @@ jobs: make analyzeDart make formatKotlin make formatSwift + working-directory: ./packages/posthog_flutter - name: Test - run: flutter test + run: | + flutter test + working-directory: ./packages/posthog_flutter - name: Build iOS - working-directory: ./example + working-directory: ./packages/posthog_flutter/example run: flutter build ios --simulator --no-codesign - name: Build macOS - working-directory: ./example + working-directory: ./packages/posthog_flutter/example run: flutter build macos - name: Build Android - working-directory: ./example + working-directory: ./packages/posthog_flutter/example run: flutter build apk - name: Build Web - working-directory: ./example + working-directory: ./packages/posthog_flutter/example run: flutter build web diff --git a/.github/workflows/publish-dio-interceptor.yml b/.github/workflows/publish-dio-interceptor.yml new file mode 100644 index 00000000..60083914 --- /dev/null +++ b/.github/workflows/publish-dio-interceptor.yml @@ -0,0 +1,28 @@ +name: Publish Dio Interceptor to pub.dev + +on: + push: + tags: + - 'dio-v[0-9]+.[0-9]+.[0-9]+*' # tag pattern for dio interceptor: eg 'dio-v1.0.0' + +jobs: + publish: + permissions: + id-token: write # Required for authentication using OIDC + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - uses: dart-lang/setup-dart@v1 + with: + sdk: stable + + - name: Install dependencies + run: | + dart pub get + working-directory: ./packages/posthog_dio_interceptor + + - name: Publish + run: | + dart pub publish --force + working-directory: ./packages/posthog_dio_interceptor diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 36a5826a..43c2d584 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,6 +20,10 @@ jobs: with: channel: 'stable' - name: Install dependencies - run: flutter pub get + run: | + flutter pub get + working-directory: ./packages/posthog_flutter - name: Publish - run: flutter pub publish --force + run: | + flutter pub publish --force + working-directory: ./packages/posthog_flutter diff --git a/.gitignore b/.gitignore index c41c2fd2..94bb00ab 100644 --- a/.gitignore +++ b/.gitignore @@ -461,7 +461,7 @@ PublishScripts/ # NuGet Symbol Packages *.snupkg # The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* +**/Packages/* # except build/, which is used as an MSBuild target. !**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed diff --git a/Makefile b/Makefile index 5a0475c8..766a1f88 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ formatKotlin: # swiftlint ios/Classes --fix conflicts with swiftformat formatSwift: - swiftformat ios/Classes --swiftversion 5.3 + swiftformat packages/posthog_flutter/ios/Classes --swiftversion 5.3 formatDart: dart format . diff --git a/example/android/app/src/profile/AndroidManifest.xml b/example/android/app/src/profile/AndroidManifest.xml deleted file mode 100644 index 399f6981..00000000 --- a/example/android/app/src/profile/AndroidManifest.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - diff --git a/packages/posthog_dio_interceptor/.gitignore b/packages/posthog_dio_interceptor/.gitignore new file mode 100644 index 00000000..3cceda55 --- /dev/null +++ b/packages/posthog_dio_interceptor/.gitignore @@ -0,0 +1,7 @@ +# https://dart.dev/guides/libraries/private-files +# Created by `dart pub` +.dart_tool/ + +# Avoid committing pubspec.lock for library packages; see +# https://dart.dev/guides/libraries/private-files#pubspeclock. +pubspec.lock diff --git a/packages/posthog_dio_interceptor/CHANGELOG.md b/packages/posthog_dio_interceptor/CHANGELOG.md new file mode 100644 index 00000000..effe43c8 --- /dev/null +++ b/packages/posthog_dio_interceptor/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version. diff --git a/packages/posthog_dio_interceptor/README.md b/packages/posthog_dio_interceptor/README.md new file mode 100644 index 00000000..8831761b --- /dev/null +++ b/packages/posthog_dio_interceptor/README.md @@ -0,0 +1,39 @@ + + +TODO: Put a short description of the package here that helps potential users +know whether this package might be useful for them. + +## Features + +TODO: List what your package can do. Maybe include images, gifs, or videos. + +## Getting started + +TODO: List prerequisites and provide or point to information on how to +start using the package. + +## Usage + +TODO: Include short and useful examples for package users. Add longer examples +to `/example` folder. + +```dart +const like = 'sample'; +``` + +## Additional information + +TODO: Tell users more about the package: where to find more information, how to +contribute to the package, how to file issues, what response they can expect +from the package authors, and more. diff --git a/packages/posthog_dio_interceptor/analysis_options.yaml b/packages/posthog_dio_interceptor/analysis_options.yaml new file mode 100644 index 00000000..71204100 --- /dev/null +++ b/packages/posthog_dio_interceptor/analysis_options.yaml @@ -0,0 +1,18 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +linter: + rules: + unnecessary_library_name: false \ No newline at end of file diff --git a/packages/posthog_dio_interceptor/lib/posthog_dio_interceptor.dart b/packages/posthog_dio_interceptor/lib/posthog_dio_interceptor.dart new file mode 100644 index 00000000..4b2fc60f --- /dev/null +++ b/packages/posthog_dio_interceptor/lib/posthog_dio_interceptor.dart @@ -0,0 +1,6 @@ +/// Support for doing something awesome. +/// +/// More dartdocs go here. +library; + +export 'src/dio_interceptor.dart'; diff --git a/packages/posthog_dio_interceptor/lib/src/dio_interceptor.dart b/packages/posthog_dio_interceptor/lib/src/dio_interceptor.dart new file mode 100644 index 00000000..8eb20973 --- /dev/null +++ b/packages/posthog_dio_interceptor/lib/src/dio_interceptor.dart @@ -0,0 +1,200 @@ +import 'dart:convert'; + +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; +import 'package:posthog_flutter/posthog_flutter.dart'; + +/// A Dio interceptor that captures network events and sends them to PostHog. +class PostHogDioInterceptor extends Interceptor { + final Posthog _posthog = Posthog(); + final bool attachPayloads; + + static const int _oneMbInBytes = 1024 * 1024; + + PostHogDioInterceptor({ + this.attachPayloads = false, + }); + + @override + Future onResponse( + Response response, + ResponseInterceptorHandler handler, + ) async { + super.onResponse(response, handler); + + final isSessionReplayActive = await _posthog.isSessionReplayActive(); + if (isSessionReplayActive) { + await _captureNetworkEvent( + response: response, + ); + } + } + + @override + Future onError( + DioException err, + ErrorInterceptorHandler handler, + ) async { + super.onError(err, handler); + + final isSessionReplayActive = await _posthog.isSessionReplayActive(); + if (isSessionReplayActive) { + final Response? response = err.response; + if (response != null) { + await _captureNetworkEvent(response: response); + } + } + } + + Future _captureNetworkEvent({ + required Response response, + }) async { + final String url = response.requestOptions.uri.toString(); + final String method = response.requestOptions.method; + final int statusCode = response.statusCode ?? 0; + final [ + (Object? publishableRequest, int requestSizeLimit), + (Object? publishableResponse, int responseSizeLimit), + ] = attachPayloads + ? await Future.wait([ + _tryTransformDataToPublishableObject( + data: response.requestOptions.data, + ).then( + (value) async { + final sizeLimit = await _calculateSizeLimit( + data: response.requestOptions.data, + header: response.requestOptions.headers, + ); + return ( + value, + sizeLimit, + ); + }, + ), + _tryTransformDataToPublishableObject( + data: response.data, + ).then( + (value) async { + final sizeLimit = await _calculateSizeLimit( + data: response.data, + header: response.headers.map, + ); + return ( + value, + sizeLimit, + ); + }, + ), + ]) + : [ + (null, 0), + (null, 0), + ]; + + final Map snapshotData = { + 'type': 6, + 'data': { + 'plugin': 'rrweb/network@1', + 'payload': { + 'url': url, + 'method': method, + 'status_code': statusCode, + if (requestSizeLimit + responseSizeLimit <= _oneMbInBytes) ...{ + if (publishableRequest != null) 'request': publishableRequest, + if (publishableResponse != null) 'response': publishableResponse, + } + }, + }, + 'timestamp': DateTime.now().millisecondsSinceEpoch, + }; + Posthog().capture( + eventName: r'$snapshot', + properties: { + r'$snapshot_source': 'mobile', + r'$snapshot_data': snapshotData, + }, + ); + } + + Future _calculateSizeLimit({ + required dynamic data, + required Map header, + }) async { + final contentLengthHeader = header['content-length']; + final contentLength = _deriveContentLength(contentLengthHeader); + if (contentLength != null) { + return contentLength; + } + + if (data == null) { + return 0; + } + + if (data is bool) { + return 4; + } + + if (data is num) { + return 8; + } + + try { + final encodedData = + await compute((data) => utf8.encode(jsonEncode(data)), data); + return encodedData.length; + } catch (e) { + // Since we couldn't serialize the data, assume it exceeds the limit. + return _oneMbInBytes + 1; + } + } + + int? _deriveContentLength(dynamic contentLengthHeader) { + if (contentLengthHeader == null) { + return null; + } + + if (contentLengthHeader is Iterable) { + return int.tryParse(contentLengthHeader.first); + } + + return int.tryParse(contentLengthHeader.toString()); + } + + Future _tryTransformDataToPublishableObject( + {required dynamic data}) async { + if (data == null) { + return null; + } + + if (data is Map || + data is String || + data is num || + data is BigInt || + data is bool || + data is Iterable) { + return data; + } + + if (data is FormData) { + return >>{ + 'fields': data.fields, + 'files': data.files + .map( + (MapEntry e) => MapEntry( + e.key, + e.value.filename ?? 'unknown', + ), + ) + .toList(growable: false), + }; + } + + try { + // Use compute here to offload JSON serialization to a separate isolate, this is to avoid jank on the main thread for large payloads. + final json = await compute((data) => jsonDecode(jsonEncode(data)), data); + return json; + } catch (e) { + return '[unserializable data]'; + } + } +} diff --git a/packages/posthog_dio_interceptor/pubspec.yaml b/packages/posthog_dio_interceptor/pubspec.yaml new file mode 100644 index 00000000..f84c8132 --- /dev/null +++ b/packages/posthog_dio_interceptor/pubspec.yaml @@ -0,0 +1,22 @@ +name: posthog_dio_interceptor +description: A starting point for Dart libraries or applications. +version: 1.0.0 +# repository: https://github.com/my_org/my_repo + +environment: + sdk: '>=3.4.0 <4.0.0' + flutter: '>=3.22.0' + +# Add regular dependencies here. +dependencies: + flutter: + sdk: flutter + dio: ^5.0.0 + posthog_flutter: ^5.0.0 + +dependency_overrides: + posthog_flutter: + path: ../posthog_flutter +dev_dependencies: + lints: ^6.0.0 + test: ^1.25.6 diff --git a/analysis_options.yaml b/packages/posthog_flutter/analysis_options.yaml similarity index 100% rename from analysis_options.yaml rename to packages/posthog_flutter/analysis_options.yaml diff --git a/android/.gitignore b/packages/posthog_flutter/android/.gitignore similarity index 100% rename from android/.gitignore rename to packages/posthog_flutter/android/.gitignore diff --git a/android/build.gradle b/packages/posthog_flutter/android/build.gradle similarity index 100% rename from android/build.gradle rename to packages/posthog_flutter/android/build.gradle diff --git a/android/gradle.properties b/packages/posthog_flutter/android/gradle.properties similarity index 100% rename from android/gradle.properties rename to packages/posthog_flutter/android/gradle.properties diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/packages/posthog_flutter/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from android/gradle/wrapper/gradle-wrapper.properties rename to packages/posthog_flutter/android/gradle/wrapper/gradle-wrapper.properties diff --git a/android/settings.gradle b/packages/posthog_flutter/android/settings.gradle similarity index 100% rename from android/settings.gradle rename to packages/posthog_flutter/android/settings.gradle diff --git a/android/src/main/AndroidManifest.xml b/packages/posthog_flutter/android/src/main/AndroidManifest.xml similarity index 100% rename from android/src/main/AndroidManifest.xml rename to packages/posthog_flutter/android/src/main/AndroidManifest.xml diff --git a/android/src/main/kotlin/com/posthog/flutter/PostHogDisplaySurveyExt.kt b/packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PostHogDisplaySurveyExt.kt similarity index 100% rename from android/src/main/kotlin/com/posthog/flutter/PostHogDisplaySurveyExt.kt rename to packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PostHogDisplaySurveyExt.kt diff --git a/android/src/main/kotlin/com/posthog/flutter/PostHogFlutterSurveysDelegate.kt b/packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PostHogFlutterSurveysDelegate.kt similarity index 100% rename from android/src/main/kotlin/com/posthog/flutter/PostHogFlutterSurveysDelegate.kt rename to packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PostHogFlutterSurveysDelegate.kt diff --git a/android/src/main/kotlin/com/posthog/flutter/PostHogVersion.kt b/packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PostHogVersion.kt similarity index 100% rename from android/src/main/kotlin/com/posthog/flutter/PostHogVersion.kt rename to packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PostHogVersion.kt diff --git a/android/src/main/kotlin/com/posthog/flutter/PosthogFlutterPlugin.kt b/packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PosthogFlutterPlugin.kt similarity index 100% rename from android/src/main/kotlin/com/posthog/flutter/PosthogFlutterPlugin.kt rename to packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/PosthogFlutterPlugin.kt diff --git a/android/src/main/kotlin/com/posthog/flutter/SnapshotSender.kt b/packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/SnapshotSender.kt similarity index 100% rename from android/src/main/kotlin/com/posthog/flutter/SnapshotSender.kt rename to packages/posthog_flutter/android/src/main/kotlin/com/posthog/flutter/SnapshotSender.kt diff --git a/android/src/test/kotlin/com/posthog/flutter/PosthogFlutterPluginTest.kt b/packages/posthog_flutter/android/src/test/kotlin/com/posthog/flutter/PosthogFlutterPluginTest.kt similarity index 100% rename from android/src/test/kotlin/com/posthog/flutter/PosthogFlutterPluginTest.kt rename to packages/posthog_flutter/android/src/test/kotlin/com/posthog/flutter/PosthogFlutterPluginTest.kt diff --git a/example/.gitignore b/packages/posthog_flutter/example/.gitignore similarity index 100% rename from example/.gitignore rename to packages/posthog_flutter/example/.gitignore diff --git a/example/.metadata b/packages/posthog_flutter/example/.metadata similarity index 100% rename from example/.metadata rename to packages/posthog_flutter/example/.metadata diff --git a/example/README.md b/packages/posthog_flutter/example/README.md similarity index 100% rename from example/README.md rename to packages/posthog_flutter/example/README.md diff --git a/example/analysis_options.yaml b/packages/posthog_flutter/example/analysis_options.yaml similarity index 100% rename from example/analysis_options.yaml rename to packages/posthog_flutter/example/analysis_options.yaml diff --git a/example/android/.gitignore b/packages/posthog_flutter/example/android/.gitignore similarity index 100% rename from example/android/.gitignore rename to packages/posthog_flutter/example/android/.gitignore diff --git a/example/android/app/build.gradle b/packages/posthog_flutter/example/android/app/build.gradle similarity index 100% rename from example/android/app/build.gradle rename to packages/posthog_flutter/example/android/app/build.gradle diff --git a/example/android/app/src/main/AndroidManifest.xml b/packages/posthog_flutter/example/android/app/src/main/AndroidManifest.xml similarity index 100% rename from example/android/app/src/main/AndroidManifest.xml rename to packages/posthog_flutter/example/android/app/src/main/AndroidManifest.xml diff --git a/example/android/app/src/main/kotlin/com/example/flutter/MainActivity.kt b/packages/posthog_flutter/example/android/app/src/main/kotlin/com/example/flutter/MainActivity.kt similarity index 100% rename from example/android/app/src/main/kotlin/com/example/flutter/MainActivity.kt rename to packages/posthog_flutter/example/android/app/src/main/kotlin/com/example/flutter/MainActivity.kt diff --git a/example/android/app/src/main/res/drawable-v21/launch_background.xml b/packages/posthog_flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml similarity index 100% rename from example/android/app/src/main/res/drawable-v21/launch_background.xml rename to packages/posthog_flutter/example/android/app/src/main/res/drawable-v21/launch_background.xml diff --git a/example/android/app/src/main/res/drawable/launch_background.xml b/packages/posthog_flutter/example/android/app/src/main/res/drawable/launch_background.xml similarity index 100% rename from example/android/app/src/main/res/drawable/launch_background.xml rename to packages/posthog_flutter/example/android/app/src/main/res/drawable/launch_background.xml diff --git a/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/posthog_flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename to packages/posthog_flutter/example/android/app/src/main/res/mipmap-hdpi/ic_launcher.png diff --git a/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/posthog_flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename to packages/posthog_flutter/example/android/app/src/main/res/mipmap-mdpi/ic_launcher.png diff --git a/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/posthog_flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename to packages/posthog_flutter/example/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png diff --git a/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/posthog_flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename to packages/posthog_flutter/example/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png diff --git a/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/posthog_flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename to packages/posthog_flutter/example/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/example/android/app/src/main/res/values-night/styles.xml b/packages/posthog_flutter/example/android/app/src/main/res/values-night/styles.xml similarity index 100% rename from example/android/app/src/main/res/values-night/styles.xml rename to packages/posthog_flutter/example/android/app/src/main/res/values-night/styles.xml diff --git a/example/android/app/src/main/res/values/styles.xml b/packages/posthog_flutter/example/android/app/src/main/res/values/styles.xml similarity index 100% rename from example/android/app/src/main/res/values/styles.xml rename to packages/posthog_flutter/example/android/app/src/main/res/values/styles.xml diff --git a/example/android/app/src/debug/AndroidManifest.xml b/packages/posthog_flutter/example/android/app/src/profile/AndroidManifest.xml similarity index 100% rename from example/android/app/src/debug/AndroidManifest.xml rename to packages/posthog_flutter/example/android/app/src/profile/AndroidManifest.xml diff --git a/example/android/build.gradle b/packages/posthog_flutter/example/android/build.gradle similarity index 100% rename from example/android/build.gradle rename to packages/posthog_flutter/example/android/build.gradle diff --git a/example/android/gradle.properties b/packages/posthog_flutter/example/android/gradle.properties similarity index 100% rename from example/android/gradle.properties rename to packages/posthog_flutter/example/android/gradle.properties diff --git a/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/posthog_flutter/example/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from example/android/gradle/wrapper/gradle-wrapper.properties rename to packages/posthog_flutter/example/android/gradle/wrapper/gradle-wrapper.properties diff --git a/example/android/settings.gradle b/packages/posthog_flutter/example/android/settings.gradle similarity index 100% rename from example/android/settings.gradle rename to packages/posthog_flutter/example/android/settings.gradle diff --git a/example/assets/posthog_logo.png b/packages/posthog_flutter/example/assets/posthog_logo.png similarity index 100% rename from example/assets/posthog_logo.png rename to packages/posthog_flutter/example/assets/posthog_logo.png diff --git a/example/assets/training_posthog.png b/packages/posthog_flutter/example/assets/training_posthog.png similarity index 100% rename from example/assets/training_posthog.png rename to packages/posthog_flutter/example/assets/training_posthog.png diff --git a/example/ios/.gitignore b/packages/posthog_flutter/example/ios/.gitignore similarity index 100% rename from example/ios/.gitignore rename to packages/posthog_flutter/example/ios/.gitignore diff --git a/example/ios/Flutter/AppFrameworkInfo.plist b/packages/posthog_flutter/example/ios/Flutter/AppFrameworkInfo.plist similarity index 100% rename from example/ios/Flutter/AppFrameworkInfo.plist rename to packages/posthog_flutter/example/ios/Flutter/AppFrameworkInfo.plist diff --git a/example/ios/Flutter/Debug.xcconfig b/packages/posthog_flutter/example/ios/Flutter/Debug.xcconfig similarity index 100% rename from example/ios/Flutter/Debug.xcconfig rename to packages/posthog_flutter/example/ios/Flutter/Debug.xcconfig diff --git a/example/ios/Flutter/Release.xcconfig b/packages/posthog_flutter/example/ios/Flutter/Release.xcconfig similarity index 100% rename from example/ios/Flutter/Release.xcconfig rename to packages/posthog_flutter/example/ios/Flutter/Release.xcconfig diff --git a/example/ios/Podfile b/packages/posthog_flutter/example/ios/Podfile similarity index 100% rename from example/ios/Podfile rename to packages/posthog_flutter/example/ios/Podfile diff --git a/example/ios/Runner.xcodeproj/project.pbxproj b/packages/posthog_flutter/example/ios/Runner.xcodeproj/project.pbxproj similarity index 100% rename from example/ios/Runner.xcodeproj/project.pbxproj rename to packages/posthog_flutter/example/ios/Runner.xcodeproj/project.pbxproj diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/packages/posthog_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to packages/posthog_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/posthog_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to packages/posthog_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/posthog_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to packages/posthog_flutter/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/posthog_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 100% rename from example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to packages/posthog_flutter/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme diff --git a/example/ios/Runner.xcworkspace/contents.xcworkspacedata b/packages/posthog_flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata similarity index 100% rename from example/ios/Runner.xcworkspace/contents.xcworkspacedata rename to packages/posthog_flutter/example/ios/Runner.xcworkspace/contents.xcworkspacedata diff --git a/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/posthog_flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to packages/posthog_flutter/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/packages/posthog_flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to packages/posthog_flutter/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/example/ios/Runner/AppDelegate.h b/packages/posthog_flutter/example/ios/Runner/AppDelegate.h similarity index 100% rename from example/ios/Runner/AppDelegate.h rename to packages/posthog_flutter/example/ios/Runner/AppDelegate.h diff --git a/example/ios/Runner/AppDelegate.m b/packages/posthog_flutter/example/ios/Runner/AppDelegate.m similarity index 100% rename from example/ios/Runner/AppDelegate.m rename to packages/posthog_flutter/example/ios/Runner/AppDelegate.m diff --git a/example/ios/Runner/AppDelegate.swift b/packages/posthog_flutter/example/ios/Runner/AppDelegate.swift similarity index 100% rename from example/ios/Runner/AppDelegate.swift rename to packages/posthog_flutter/example/ios/Runner/AppDelegate.swift diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png diff --git a/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json similarity index 100% rename from example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png similarity index 100% rename from example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png diff --git a/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md similarity index 100% rename from example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md rename to packages/posthog_flutter/example/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md diff --git a/example/ios/Runner/Base.lproj/LaunchScreen.storyboard b/packages/posthog_flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard similarity index 100% rename from example/ios/Runner/Base.lproj/LaunchScreen.storyboard rename to packages/posthog_flutter/example/ios/Runner/Base.lproj/LaunchScreen.storyboard diff --git a/example/ios/Runner/Base.lproj/Main.storyboard b/packages/posthog_flutter/example/ios/Runner/Base.lproj/Main.storyboard similarity index 100% rename from example/ios/Runner/Base.lproj/Main.storyboard rename to packages/posthog_flutter/example/ios/Runner/Base.lproj/Main.storyboard diff --git a/example/ios/Runner/Info.plist b/packages/posthog_flutter/example/ios/Runner/Info.plist similarity index 100% rename from example/ios/Runner/Info.plist rename to packages/posthog_flutter/example/ios/Runner/Info.plist diff --git a/example/ios/Runner/Runner-Bridging-Header.h b/packages/posthog_flutter/example/ios/Runner/Runner-Bridging-Header.h similarity index 100% rename from example/ios/Runner/Runner-Bridging-Header.h rename to packages/posthog_flutter/example/ios/Runner/Runner-Bridging-Header.h diff --git a/example/ios/Runner/main.m b/packages/posthog_flutter/example/ios/Runner/main.m similarity index 100% rename from example/ios/Runner/main.m rename to packages/posthog_flutter/example/ios/Runner/main.m diff --git a/example/ios/RunnerTests/RunnerTests.swift b/packages/posthog_flutter/example/ios/RunnerTests/RunnerTests.swift similarity index 100% rename from example/ios/RunnerTests/RunnerTests.swift rename to packages/posthog_flutter/example/ios/RunnerTests/RunnerTests.swift diff --git a/example/lib/main.dart b/packages/posthog_flutter/example/lib/main.dart similarity index 93% rename from example/lib/main.dart rename to packages/posthog_flutter/example/lib/main.dart index d868f8d4..4559f7e3 100644 --- a/example/lib/main.dart +++ b/packages/posthog_flutter/example/lib/main.dart @@ -1,6 +1,8 @@ import 'dart:async'; +import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; +import 'package:posthog_dio_interceptor/posthog_dio_interceptor.dart'; import 'package:posthog_flutter/posthog_flutter.dart'; Future main() async { @@ -451,6 +453,22 @@ class InitialScreenState extends State { child: Text("reloadFeatureFlags")), ), const Divider(), + const Padding( + padding: EdgeInsets.all(8.0), + child: Text( + "Network Performance", + style: TextStyle(fontWeight: FontWeight.bold), + ), + ), + ElevatedButton( + onPressed: _callPostApiWithDio, + child: const Text("Call POST API with Dio"), + ), + ElevatedButton( + onPressed: _callGetApiWithDio, + child: const Text("Call GET API with Dio"), + ), + const Divider(), const Padding( padding: EdgeInsets.all(8.0), child: Text( @@ -466,6 +484,33 @@ class InitialScreenState extends State { ), ); } + + void _callGetApiWithDio() async { + final dio = Dio() + ..interceptors.add(PostHogDioInterceptor(attachPayloads: true)); + final response = await dio.get('https://httpbin.org/get'); + setState(() { + _result = response.data; + }); + } + + Future _callPostApiWithDio() async { + final dio = Dio() + ..interceptors.add(PostHogDioInterceptor(attachPayloads: true)); + await dio.post('https://httpbin.org/post', data: { + 'key': 'value', + }); + if (!mounted) { + return; + } + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('API call successful! Check PostHog.'), + backgroundColor: Colors.green, + duration: Duration(seconds: 3), + ), + ); + } } class SecondRoute extends StatefulWidget { diff --git a/example/macos/.gitignore b/packages/posthog_flutter/example/macos/.gitignore similarity index 100% rename from example/macos/.gitignore rename to packages/posthog_flutter/example/macos/.gitignore diff --git a/example/macos/Flutter/Flutter-Debug.xcconfig b/packages/posthog_flutter/example/macos/Flutter/Flutter-Debug.xcconfig similarity index 100% rename from example/macos/Flutter/Flutter-Debug.xcconfig rename to packages/posthog_flutter/example/macos/Flutter/Flutter-Debug.xcconfig diff --git a/example/macos/Flutter/Flutter-Release.xcconfig b/packages/posthog_flutter/example/macos/Flutter/Flutter-Release.xcconfig similarity index 100% rename from example/macos/Flutter/Flutter-Release.xcconfig rename to packages/posthog_flutter/example/macos/Flutter/Flutter-Release.xcconfig diff --git a/example/macos/Flutter/GeneratedPluginRegistrant.swift b/packages/posthog_flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift similarity index 100% rename from example/macos/Flutter/GeneratedPluginRegistrant.swift rename to packages/posthog_flutter/example/macos/Flutter/GeneratedPluginRegistrant.swift diff --git a/example/macos/Podfile b/packages/posthog_flutter/example/macos/Podfile similarity index 100% rename from example/macos/Podfile rename to packages/posthog_flutter/example/macos/Podfile diff --git a/example/macos/Runner.xcodeproj/project.pbxproj b/packages/posthog_flutter/example/macos/Runner.xcodeproj/project.pbxproj similarity index 99% rename from example/macos/Runner.xcodeproj/project.pbxproj rename to packages/posthog_flutter/example/macos/Runner.xcodeproj/project.pbxproj index 9d2fde46..d4403927 100644 --- a/example/macos/Runner.xcodeproj/project.pbxproj +++ b/packages/posthog_flutter/example/macos/Runner.xcodeproj/project.pbxproj @@ -259,7 +259,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 331C80D4294CF70F00263BE5 = { diff --git a/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/posthog_flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to packages/posthog_flutter/example/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/posthog_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme similarity index 98% rename from example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme rename to packages/posthog_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index 397f3d33..ac78810c 100644 --- a/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/posthog_flutter/example/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ diff --git a/example/macos/Runner.xcworkspace/contents.xcworkspacedata b/packages/posthog_flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata similarity index 100% rename from example/macos/Runner.xcworkspace/contents.xcworkspacedata rename to packages/posthog_flutter/example/macos/Runner.xcworkspace/contents.xcworkspacedata diff --git a/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/packages/posthog_flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to packages/posthog_flutter/example/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/example/macos/Runner/AppDelegate.swift b/packages/posthog_flutter/example/macos/Runner/AppDelegate.swift similarity index 62% rename from example/macos/Runner/AppDelegate.swift rename to packages/posthog_flutter/example/macos/Runner/AppDelegate.swift index d53ef643..b3c17614 100644 --- a/example/macos/Runner/AppDelegate.swift +++ b/packages/posthog_flutter/example/macos/Runner/AppDelegate.swift @@ -1,9 +1,13 @@ import Cocoa import FlutterMacOS -@NSApplicationMain +@main class AppDelegate: FlutterAppDelegate { override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { return true } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } } diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png diff --git a/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png similarity index 100% rename from example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png rename to packages/posthog_flutter/example/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png diff --git a/example/macos/Runner/Base.lproj/MainMenu.xib b/packages/posthog_flutter/example/macos/Runner/Base.lproj/MainMenu.xib similarity index 100% rename from example/macos/Runner/Base.lproj/MainMenu.xib rename to packages/posthog_flutter/example/macos/Runner/Base.lproj/MainMenu.xib diff --git a/example/macos/Runner/Configs/AppInfo.xcconfig b/packages/posthog_flutter/example/macos/Runner/Configs/AppInfo.xcconfig similarity index 100% rename from example/macos/Runner/Configs/AppInfo.xcconfig rename to packages/posthog_flutter/example/macos/Runner/Configs/AppInfo.xcconfig diff --git a/example/macos/Runner/Configs/Debug.xcconfig b/packages/posthog_flutter/example/macos/Runner/Configs/Debug.xcconfig similarity index 100% rename from example/macos/Runner/Configs/Debug.xcconfig rename to packages/posthog_flutter/example/macos/Runner/Configs/Debug.xcconfig diff --git a/example/macos/Runner/Configs/Release.xcconfig b/packages/posthog_flutter/example/macos/Runner/Configs/Release.xcconfig similarity index 100% rename from example/macos/Runner/Configs/Release.xcconfig rename to packages/posthog_flutter/example/macos/Runner/Configs/Release.xcconfig diff --git a/example/macos/Runner/Configs/Warnings.xcconfig b/packages/posthog_flutter/example/macos/Runner/Configs/Warnings.xcconfig similarity index 100% rename from example/macos/Runner/Configs/Warnings.xcconfig rename to packages/posthog_flutter/example/macos/Runner/Configs/Warnings.xcconfig diff --git a/example/macos/Runner/DebugProfile.entitlements b/packages/posthog_flutter/example/macos/Runner/DebugProfile.entitlements similarity index 100% rename from example/macos/Runner/DebugProfile.entitlements rename to packages/posthog_flutter/example/macos/Runner/DebugProfile.entitlements diff --git a/example/macos/Runner/Info.plist b/packages/posthog_flutter/example/macos/Runner/Info.plist similarity index 100% rename from example/macos/Runner/Info.plist rename to packages/posthog_flutter/example/macos/Runner/Info.plist diff --git a/example/macos/Runner/MainFlutterWindow.swift b/packages/posthog_flutter/example/macos/Runner/MainFlutterWindow.swift similarity index 100% rename from example/macos/Runner/MainFlutterWindow.swift rename to packages/posthog_flutter/example/macos/Runner/MainFlutterWindow.swift diff --git a/example/macos/Runner/Release.entitlements b/packages/posthog_flutter/example/macos/Runner/Release.entitlements similarity index 100% rename from example/macos/Runner/Release.entitlements rename to packages/posthog_flutter/example/macos/Runner/Release.entitlements diff --git a/example/pubspec.yaml b/packages/posthog_flutter/example/pubspec.yaml similarity index 92% rename from example/pubspec.yaml rename to packages/posthog_flutter/example/pubspec.yaml index e8a8abfa..d6f39093 100644 --- a/example/pubspec.yaml +++ b/packages/posthog_flutter/example/pubspec.yaml @@ -25,11 +25,20 @@ dependencies: # See https://dart.dev/tools/pub/dependencies#version-constraints # The example app is bundled with the plugin so we use a path dependency on # the parent directory to use the current plugin's version. - path: ../ + path: ../../posthog_flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.3 + dio: ^5.9.0 + posthog_dio_interceptor: + path: ../../posthog_dio_interceptor + +dependency_overrides: + posthog_flutter: + path: ../../posthog_flutter + posthog_dio_interceptor: + path: ../../posthog_dio_interceptor dev_dependencies: diff --git a/example/web/favicon.png b/packages/posthog_flutter/example/web/favicon.png similarity index 100% rename from example/web/favicon.png rename to packages/posthog_flutter/example/web/favicon.png diff --git a/example/web/icons/Icon-192.png b/packages/posthog_flutter/example/web/icons/Icon-192.png similarity index 100% rename from example/web/icons/Icon-192.png rename to packages/posthog_flutter/example/web/icons/Icon-192.png diff --git a/example/web/icons/Icon-512.png b/packages/posthog_flutter/example/web/icons/Icon-512.png similarity index 100% rename from example/web/icons/Icon-512.png rename to packages/posthog_flutter/example/web/icons/Icon-512.png diff --git a/example/web/icons/Icon-maskable-192.png b/packages/posthog_flutter/example/web/icons/Icon-maskable-192.png similarity index 100% rename from example/web/icons/Icon-maskable-192.png rename to packages/posthog_flutter/example/web/icons/Icon-maskable-192.png diff --git a/example/web/icons/Icon-maskable-512.png b/packages/posthog_flutter/example/web/icons/Icon-maskable-512.png similarity index 100% rename from example/web/icons/Icon-maskable-512.png rename to packages/posthog_flutter/example/web/icons/Icon-maskable-512.png diff --git a/example/web/index.html b/packages/posthog_flutter/example/web/index.html similarity index 100% rename from example/web/index.html rename to packages/posthog_flutter/example/web/index.html diff --git a/example/web/manifest.json b/packages/posthog_flutter/example/web/manifest.json similarity index 100% rename from example/web/manifest.json rename to packages/posthog_flutter/example/web/manifest.json diff --git a/ios/.gitignore b/packages/posthog_flutter/ios/.gitignore similarity index 100% rename from ios/.gitignore rename to packages/posthog_flutter/ios/.gitignore diff --git a/ios/Assets/.gitkeep b/packages/posthog_flutter/ios/Assets/.gitkeep similarity index 100% rename from ios/Assets/.gitkeep rename to packages/posthog_flutter/ios/Assets/.gitkeep diff --git a/ios/Classes/PostHogDisplaySurvey+Dict.swift b/packages/posthog_flutter/ios/Classes/PostHogDisplaySurvey+Dict.swift similarity index 100% rename from ios/Classes/PostHogDisplaySurvey+Dict.swift rename to packages/posthog_flutter/ios/Classes/PostHogDisplaySurvey+Dict.swift diff --git a/ios/Classes/PostHogFlutterVersion.swift b/packages/posthog_flutter/ios/Classes/PostHogFlutterVersion.swift similarity index 100% rename from ios/Classes/PostHogFlutterVersion.swift rename to packages/posthog_flutter/ios/Classes/PostHogFlutterVersion.swift diff --git a/ios/Classes/PosthogFlutterPlugin.swift b/packages/posthog_flutter/ios/Classes/PosthogFlutterPlugin.swift similarity index 100% rename from ios/Classes/PosthogFlutterPlugin.swift rename to packages/posthog_flutter/ios/Classes/PosthogFlutterPlugin.swift diff --git a/ios/Resources/PrivacyInfo.xcprivacy b/packages/posthog_flutter/ios/Resources/PrivacyInfo.xcprivacy similarity index 100% rename from ios/Resources/PrivacyInfo.xcprivacy rename to packages/posthog_flutter/ios/Resources/PrivacyInfo.xcprivacy diff --git a/ios/posthog_flutter.podspec b/packages/posthog_flutter/ios/posthog_flutter.podspec similarity index 100% rename from ios/posthog_flutter.podspec rename to packages/posthog_flutter/ios/posthog_flutter.podspec diff --git a/lib/posthog_flutter.dart b/packages/posthog_flutter/lib/posthog_flutter.dart similarity index 100% rename from lib/posthog_flutter.dart rename to packages/posthog_flutter/lib/posthog_flutter.dart diff --git a/lib/posthog_flutter_web.dart b/packages/posthog_flutter/lib/posthog_flutter_web.dart similarity index 100% rename from lib/posthog_flutter_web.dart rename to packages/posthog_flutter/lib/posthog_flutter_web.dart diff --git a/lib/src/error_tracking/dart_exception_processor.dart b/packages/posthog_flutter/lib/src/error_tracking/dart_exception_processor.dart similarity index 100% rename from lib/src/error_tracking/dart_exception_processor.dart rename to packages/posthog_flutter/lib/src/error_tracking/dart_exception_processor.dart diff --git a/lib/src/error_tracking/isolate_handler_io.dart b/packages/posthog_flutter/lib/src/error_tracking/isolate_handler_io.dart similarity index 100% rename from lib/src/error_tracking/isolate_handler_io.dart rename to packages/posthog_flutter/lib/src/error_tracking/isolate_handler_io.dart diff --git a/lib/src/error_tracking/isolate_handler_web.dart b/packages/posthog_flutter/lib/src/error_tracking/isolate_handler_web.dart similarity index 100% rename from lib/src/error_tracking/isolate_handler_web.dart rename to packages/posthog_flutter/lib/src/error_tracking/isolate_handler_web.dart diff --git a/lib/src/error_tracking/posthog_error_tracking_autocapture_integration.dart b/packages/posthog_flutter/lib/src/error_tracking/posthog_error_tracking_autocapture_integration.dart similarity index 100% rename from lib/src/error_tracking/posthog_error_tracking_autocapture_integration.dart rename to packages/posthog_flutter/lib/src/error_tracking/posthog_error_tracking_autocapture_integration.dart diff --git a/lib/src/error_tracking/posthog_exception.dart b/packages/posthog_flutter/lib/src/error_tracking/posthog_exception.dart similarity index 100% rename from lib/src/error_tracking/posthog_exception.dart rename to packages/posthog_flutter/lib/src/error_tracking/posthog_exception.dart diff --git a/lib/src/error_tracking/utils/_io_isolate_utils.dart b/packages/posthog_flutter/lib/src/error_tracking/utils/_io_isolate_utils.dart similarity index 100% rename from lib/src/error_tracking/utils/_io_isolate_utils.dart rename to packages/posthog_flutter/lib/src/error_tracking/utils/_io_isolate_utils.dart diff --git a/lib/src/error_tracking/utils/_web_isolate_utils.dart b/packages/posthog_flutter/lib/src/error_tracking/utils/_web_isolate_utils.dart similarity index 100% rename from lib/src/error_tracking/utils/_web_isolate_utils.dart rename to packages/posthog_flutter/lib/src/error_tracking/utils/_web_isolate_utils.dart diff --git a/lib/src/error_tracking/utils/isolate_utils.dart b/packages/posthog_flutter/lib/src/error_tracking/utils/isolate_utils.dart similarity index 100% rename from lib/src/error_tracking/utils/isolate_utils.dart rename to packages/posthog_flutter/lib/src/error_tracking/utils/isolate_utils.dart diff --git a/lib/src/posthog.dart b/packages/posthog_flutter/lib/src/posthog.dart similarity index 96% rename from lib/src/posthog.dart rename to packages/posthog_flutter/lib/src/posthog.dart index ffa6a450..0a8c9c10 100644 --- a/lib/src/posthog.dart +++ b/packages/posthog_flutter/lib/src/posthog.dart @@ -1,6 +1,7 @@ import 'package:meta/meta.dart'; - import 'package:posthog_flutter/src/error_tracking/posthog_error_tracking_autocapture_integration.dart'; +import 'package:posthog_flutter/src/replay/native_communicator.dart'; + import 'posthog_config.dart'; import 'posthog_flutter_platform_interface.dart'; import 'posthog_observer.dart'; @@ -13,6 +14,8 @@ class Posthog { PostHogConfig? _config; + final NativeCommunicator _nativeCommunicator = NativeCommunicator(); + factory Posthog() { return _instance; } @@ -189,5 +192,8 @@ class Posthog { Future getSessionId() => _posthog.getSessionId(); + Future isSessionReplayActive() => + _nativeCommunicator.isSessionReplayActive(); + Posthog._internal(); } diff --git a/lib/src/posthog_config.dart b/packages/posthog_flutter/lib/src/posthog_config.dart similarity index 100% rename from lib/src/posthog_config.dart rename to packages/posthog_flutter/lib/src/posthog_config.dart diff --git a/lib/src/posthog_flutter_io.dart b/packages/posthog_flutter/lib/src/posthog_flutter_io.dart similarity index 100% rename from lib/src/posthog_flutter_io.dart rename to packages/posthog_flutter/lib/src/posthog_flutter_io.dart diff --git a/lib/src/posthog_flutter_platform_interface.dart b/packages/posthog_flutter/lib/src/posthog_flutter_platform_interface.dart similarity index 100% rename from lib/src/posthog_flutter_platform_interface.dart rename to packages/posthog_flutter/lib/src/posthog_flutter_platform_interface.dart diff --git a/lib/src/posthog_flutter_web_handler.dart b/packages/posthog_flutter/lib/src/posthog_flutter_web_handler.dart similarity index 100% rename from lib/src/posthog_flutter_web_handler.dart rename to packages/posthog_flutter/lib/src/posthog_flutter_web_handler.dart diff --git a/lib/src/posthog_observer.dart b/packages/posthog_flutter/lib/src/posthog_observer.dart similarity index 100% rename from lib/src/posthog_observer.dart rename to packages/posthog_flutter/lib/src/posthog_observer.dart diff --git a/lib/src/posthog_widget.dart b/packages/posthog_flutter/lib/src/posthog_widget.dart similarity index 100% rename from lib/src/posthog_widget.dart rename to packages/posthog_flutter/lib/src/posthog_widget.dart diff --git a/lib/src/replay/change_detector.dart b/packages/posthog_flutter/lib/src/replay/change_detector.dart similarity index 100% rename from lib/src/replay/change_detector.dart rename to packages/posthog_flutter/lib/src/replay/change_detector.dart diff --git a/lib/src/replay/element_parsers/element_data.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/element_data.dart similarity index 100% rename from lib/src/replay/element_parsers/element_data.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/element_data.dart diff --git a/lib/src/replay/element_parsers/element_data_factory.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/element_data_factory.dart similarity index 100% rename from lib/src/replay/element_parsers/element_data_factory.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/element_data_factory.dart diff --git a/lib/src/replay/element_parsers/element_object_parser.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/element_object_parser.dart similarity index 100% rename from lib/src/replay/element_parsers/element_object_parser.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/element_object_parser.dart diff --git a/lib/src/replay/element_parsers/element_parser.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/element_parser.dart similarity index 100% rename from lib/src/replay/element_parsers/element_parser.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/element_parser.dart diff --git a/lib/src/replay/element_parsers/element_parser_factory.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/element_parser_factory.dart similarity index 100% rename from lib/src/replay/element_parsers/element_parser_factory.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/element_parser_factory.dart diff --git a/lib/src/replay/element_parsers/element_parsers_const.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/element_parsers_const.dart similarity index 100% rename from lib/src/replay/element_parsers/element_parsers_const.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/element_parsers_const.dart diff --git a/lib/src/replay/element_parsers/image_element/position_calculator.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/image_element/position_calculator.dart similarity index 100% rename from lib/src/replay/element_parsers/image_element/position_calculator.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/image_element/position_calculator.dart diff --git a/lib/src/replay/element_parsers/image_element/render_image_parser.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/image_element/render_image_parser.dart similarity index 100% rename from lib/src/replay/element_parsers/image_element/render_image_parser.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/image_element/render_image_parser.dart diff --git a/lib/src/replay/element_parsers/image_element/scaler.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/image_element/scaler.dart similarity index 100% rename from lib/src/replay/element_parsers/image_element/scaler.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/image_element/scaler.dart diff --git a/lib/src/replay/element_parsers/root_element_provider.dart b/packages/posthog_flutter/lib/src/replay/element_parsers/root_element_provider.dart similarity index 100% rename from lib/src/replay/element_parsers/root_element_provider.dart rename to packages/posthog_flutter/lib/src/replay/element_parsers/root_element_provider.dart diff --git a/lib/src/replay/image_extension.dart b/packages/posthog_flutter/lib/src/replay/image_extension.dart similarity index 100% rename from lib/src/replay/image_extension.dart rename to packages/posthog_flutter/lib/src/replay/image_extension.dart diff --git a/lib/src/replay/mask/image_mask_painter.dart b/packages/posthog_flutter/lib/src/replay/mask/image_mask_painter.dart similarity index 100% rename from lib/src/replay/mask/image_mask_painter.dart rename to packages/posthog_flutter/lib/src/replay/mask/image_mask_painter.dart diff --git a/lib/src/replay/mask/posthog_mask_controller.dart b/packages/posthog_flutter/lib/src/replay/mask/posthog_mask_controller.dart similarity index 100% rename from lib/src/replay/mask/posthog_mask_controller.dart rename to packages/posthog_flutter/lib/src/replay/mask/posthog_mask_controller.dart diff --git a/lib/src/replay/mask/posthog_mask_widget.dart b/packages/posthog_flutter/lib/src/replay/mask/posthog_mask_widget.dart similarity index 100% rename from lib/src/replay/mask/posthog_mask_widget.dart rename to packages/posthog_flutter/lib/src/replay/mask/posthog_mask_widget.dart diff --git a/lib/src/replay/mask/widget_elements_decipher.dart b/packages/posthog_flutter/lib/src/replay/mask/widget_elements_decipher.dart similarity index 100% rename from lib/src/replay/mask/widget_elements_decipher.dart rename to packages/posthog_flutter/lib/src/replay/mask/widget_elements_decipher.dart diff --git a/lib/src/replay/native_communicator.dart b/packages/posthog_flutter/lib/src/replay/native_communicator.dart similarity index 100% rename from lib/src/replay/native_communicator.dart rename to packages/posthog_flutter/lib/src/replay/native_communicator.dart diff --git a/lib/src/replay/screenshot/screenshot_capturer.dart b/packages/posthog_flutter/lib/src/replay/screenshot/screenshot_capturer.dart similarity index 100% rename from lib/src/replay/screenshot/screenshot_capturer.dart rename to packages/posthog_flutter/lib/src/replay/screenshot/screenshot_capturer.dart diff --git a/lib/src/replay/screenshot/snapshot_manager.dart b/packages/posthog_flutter/lib/src/replay/screenshot/snapshot_manager.dart similarity index 100% rename from lib/src/replay/screenshot/snapshot_manager.dart rename to packages/posthog_flutter/lib/src/replay/screenshot/snapshot_manager.dart diff --git a/lib/src/replay/size_extension.dart b/packages/posthog_flutter/lib/src/replay/size_extension.dart similarity index 100% rename from lib/src/replay/size_extension.dart rename to packages/posthog_flutter/lib/src/replay/size_extension.dart diff --git a/lib/src/replay/vendor/equality.dart b/packages/posthog_flutter/lib/src/replay/vendor/equality.dart similarity index 100% rename from lib/src/replay/vendor/equality.dart rename to packages/posthog_flutter/lib/src/replay/vendor/equality.dart diff --git a/lib/src/surveys/models/posthog_display_choice_question.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_choice_question.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_choice_question.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_choice_question.dart diff --git a/lib/src/surveys/models/posthog_display_link_question.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_link_question.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_link_question.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_link_question.dart diff --git a/lib/src/surveys/models/posthog_display_open_question.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_open_question.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_open_question.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_open_question.dart diff --git a/lib/src/surveys/models/posthog_display_rating_question.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_rating_question.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_rating_question.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_rating_question.dart diff --git a/lib/src/surveys/models/posthog_display_survey.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_survey.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey.dart diff --git a/lib/src/surveys/models/posthog_display_survey_appearance.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_appearance.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_survey_appearance.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_appearance.dart diff --git a/lib/src/surveys/models/posthog_display_survey_question.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_question.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_survey_question.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_question.dart diff --git a/lib/src/surveys/models/posthog_display_survey_rating_type.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_rating_type.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_survey_rating_type.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_rating_type.dart diff --git a/lib/src/surveys/models/posthog_display_survey_text_content_type.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_text_content_type.dart similarity index 100% rename from lib/src/surveys/models/posthog_display_survey_text_content_type.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_display_survey_text_content_type.dart diff --git a/lib/src/surveys/models/posthog_survey_question_type.dart b/packages/posthog_flutter/lib/src/surveys/models/posthog_survey_question_type.dart similarity index 100% rename from lib/src/surveys/models/posthog_survey_question_type.dart rename to packages/posthog_flutter/lib/src/surveys/models/posthog_survey_question_type.dart diff --git a/lib/src/surveys/models/survey_appearance.dart b/packages/posthog_flutter/lib/src/surveys/models/survey_appearance.dart similarity index 100% rename from lib/src/surveys/models/survey_appearance.dart rename to packages/posthog_flutter/lib/src/surveys/models/survey_appearance.dart diff --git a/lib/src/surveys/models/survey_callbacks.dart b/packages/posthog_flutter/lib/src/surveys/models/survey_callbacks.dart similarity index 100% rename from lib/src/surveys/models/survey_callbacks.dart rename to packages/posthog_flutter/lib/src/surveys/models/survey_callbacks.dart diff --git a/lib/src/surveys/survey_service.dart b/packages/posthog_flutter/lib/src/surveys/survey_service.dart similarity index 100% rename from lib/src/surveys/survey_service.dart rename to packages/posthog_flutter/lib/src/surveys/survey_service.dart diff --git a/lib/src/surveys/widgets/choice_question.dart b/packages/posthog_flutter/lib/src/surveys/widgets/choice_question.dart similarity index 100% rename from lib/src/surveys/widgets/choice_question.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/choice_question.dart diff --git a/lib/src/surveys/widgets/confirmation_message.dart b/packages/posthog_flutter/lib/src/surveys/widgets/confirmation_message.dart similarity index 100% rename from lib/src/surveys/widgets/confirmation_message.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/confirmation_message.dart diff --git a/lib/src/surveys/widgets/link_question.dart b/packages/posthog_flutter/lib/src/surveys/widgets/link_question.dart similarity index 100% rename from lib/src/surveys/widgets/link_question.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/link_question.dart diff --git a/lib/src/surveys/widgets/number_rating_button.dart b/packages/posthog_flutter/lib/src/surveys/widgets/number_rating_button.dart similarity index 100% rename from lib/src/surveys/widgets/number_rating_button.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/number_rating_button.dart diff --git a/lib/src/surveys/widgets/open_text_question.dart b/packages/posthog_flutter/lib/src/surveys/widgets/open_text_question.dart similarity index 100% rename from lib/src/surveys/widgets/open_text_question.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/open_text_question.dart diff --git a/lib/src/surveys/widgets/question_header.dart b/packages/posthog_flutter/lib/src/surveys/widgets/question_header.dart similarity index 100% rename from lib/src/surveys/widgets/question_header.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/question_header.dart diff --git a/lib/src/surveys/widgets/rating_icons.dart b/packages/posthog_flutter/lib/src/surveys/widgets/rating_icons.dart similarity index 100% rename from lib/src/surveys/widgets/rating_icons.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/rating_icons.dart diff --git a/lib/src/surveys/widgets/rating_question.dart b/packages/posthog_flutter/lib/src/surveys/widgets/rating_question.dart similarity index 100% rename from lib/src/surveys/widgets/rating_question.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/rating_question.dart diff --git a/lib/src/surveys/widgets/survey_bottom_sheet.dart b/packages/posthog_flutter/lib/src/surveys/widgets/survey_bottom_sheet.dart similarity index 100% rename from lib/src/surveys/widgets/survey_bottom_sheet.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/survey_bottom_sheet.dart diff --git a/lib/src/surveys/widgets/survey_button.dart b/packages/posthog_flutter/lib/src/surveys/widgets/survey_button.dart similarity index 100% rename from lib/src/surveys/widgets/survey_button.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/survey_button.dart diff --git a/lib/src/surveys/widgets/survey_choice_button.dart b/packages/posthog_flutter/lib/src/surveys/widgets/survey_choice_button.dart similarity index 100% rename from lib/src/surveys/widgets/survey_choice_button.dart rename to packages/posthog_flutter/lib/src/surveys/widgets/survey_choice_button.dart diff --git a/lib/src/util/logging.dart b/packages/posthog_flutter/lib/src/util/logging.dart similarity index 100% rename from lib/src/util/logging.dart rename to packages/posthog_flutter/lib/src/util/logging.dart diff --git a/lib/src/util/platform_io_real.dart b/packages/posthog_flutter/lib/src/util/platform_io_real.dart similarity index 100% rename from lib/src/util/platform_io_real.dart rename to packages/posthog_flutter/lib/src/util/platform_io_real.dart diff --git a/lib/src/util/platform_io_stub.dart b/packages/posthog_flutter/lib/src/util/platform_io_stub.dart similarity index 100% rename from lib/src/util/platform_io_stub.dart rename to packages/posthog_flutter/lib/src/util/platform_io_stub.dart diff --git a/lib/src/utils/property_normalizer.dart b/packages/posthog_flutter/lib/src/utils/property_normalizer.dart similarity index 100% rename from lib/src/utils/property_normalizer.dart rename to packages/posthog_flutter/lib/src/utils/property_normalizer.dart diff --git a/macos/Classes/PostHogFlutterVersion.swift b/packages/posthog_flutter/macos/Classes/PostHogFlutterVersion.swift similarity index 100% rename from macos/Classes/PostHogFlutterVersion.swift rename to packages/posthog_flutter/macos/Classes/PostHogFlutterVersion.swift diff --git a/macos/Classes/PosthogFlutterPlugin.swift b/packages/posthog_flutter/macos/Classes/PosthogFlutterPlugin.swift similarity index 100% rename from macos/Classes/PosthogFlutterPlugin.swift rename to packages/posthog_flutter/macos/Classes/PosthogFlutterPlugin.swift diff --git a/macos/Resources/PrivacyInfo.xcprivacy b/packages/posthog_flutter/macos/Resources/PrivacyInfo.xcprivacy similarity index 100% rename from macos/Resources/PrivacyInfo.xcprivacy rename to packages/posthog_flutter/macos/Resources/PrivacyInfo.xcprivacy diff --git a/macos/posthog_flutter.podspec b/packages/posthog_flutter/macos/posthog_flutter.podspec similarity index 100% rename from macos/posthog_flutter.podspec rename to packages/posthog_flutter/macos/posthog_flutter.podspec diff --git a/pubspec.yaml b/packages/posthog_flutter/pubspec.yaml similarity index 100% rename from pubspec.yaml rename to packages/posthog_flutter/pubspec.yaml diff --git a/test/dart_exception_processor_test.dart b/packages/posthog_flutter/test/dart_exception_processor_test.dart similarity index 100% rename from test/dart_exception_processor_test.dart rename to packages/posthog_flutter/test/dart_exception_processor_test.dart diff --git a/test/posthog_flutter_io_test.dart b/packages/posthog_flutter/test/posthog_flutter_io_test.dart similarity index 100% rename from test/posthog_flutter_io_test.dart rename to packages/posthog_flutter/test/posthog_flutter_io_test.dart diff --git a/test/posthog_flutter_platform_interface_fake.dart b/packages/posthog_flutter/test/posthog_flutter_platform_interface_fake.dart similarity index 100% rename from test/posthog_flutter_platform_interface_fake.dart rename to packages/posthog_flutter/test/posthog_flutter_platform_interface_fake.dart diff --git a/test/posthog_observer_test.dart b/packages/posthog_flutter/test/posthog_observer_test.dart similarity index 100% rename from test/posthog_observer_test.dart rename to packages/posthog_flutter/test/posthog_observer_test.dart diff --git a/test/posthog_test.dart b/packages/posthog_flutter/test/posthog_test.dart similarity index 100% rename from test/posthog_test.dart rename to packages/posthog_flutter/test/posthog_test.dart diff --git a/test/property_normalizer_test.dart b/packages/posthog_flutter/test/property_normalizer_test.dart similarity index 100% rename from test/property_normalizer_test.dart rename to packages/posthog_flutter/test/property_normalizer_test.dart