@entrig/expo 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +139 -0
- package/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/config.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.idea/caches/deviceStreaming.xml +1318 -0
- package/android/.idea/gradle.xml +13 -0
- package/android/.idea/migrations.xml +10 -0
- package/android/.idea/misc.xml +10 -0
- package/android/.idea/runConfigurations.xml +17 -0
- package/android/.idea/vcs.xml +6 -0
- package/android/build/.transforms/43de13578c50cd4e3ac12187fc65626e/results.bin +1 -0
- package/android/build/.transforms/43de13578c50cd4e3ac12187fc65626e/transformed/classes/classes_dex/classes.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/results.bin +1 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/BuildConfig.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$1$1$3.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$1$1$4.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$1$3$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$1$4$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$1$5$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$1$6$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$2.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$3.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$4.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$5.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$6.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$7.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$8.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$9.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$2.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$3.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$OnCreate$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$OnNewIntent$1.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/entrig/EntrigModule.dex +0 -0
- package/android/build/.transforms/f1a510b949826e4b01c49e40a3281344/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
- package/android/build/generated/source/buildConfig/debug/expo/modules/entrig/BuildConfig.java +10 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +7 -0
- package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
- package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
- package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
- package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
- package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
- package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
- package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
- package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/entrig_debug.kotlin_module +0 -0
- package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/expo/modules/entrig/BuildConfig.class +0 -0
- package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
- package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +7 -0
- package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +7 -0
- package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
- package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/entrig_debug.kotlin_module +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/BuildConfig.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$1$1$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$1$1$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$1$3$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$1$4$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$1$5$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$1$6$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$5.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$6.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$7.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$8.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$9.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$2.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$3.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$4.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$OnCreate$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$OnNewIntent$1.class +0 -0
- package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/entrig/EntrigModule.class +0 -0
- package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
- package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
- package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
- package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
- package/android/build/outputs/logs/manifest-merger-debug-report.txt +14 -0
- package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
- package/android/build/tmp/kotlin-classes/debug/META-INF/entrig_debug.kotlin_module +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$1$1$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$1$1$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$1$3$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$1$4$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$1$5$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$1$6$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$5.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$6.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$7.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$8.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunction$9.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$2.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$3.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$AsyncFunctionWithPromise$4.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$OnCreate$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule$definition$lambda$9$$inlined$OnNewIntent$1.class +0 -0
- package/android/build/tmp/kotlin-classes/debug/expo/modules/entrig/EntrigModule.class +0 -0
- package/android/build.gradle +48 -0
- package/android/local.properties +8 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/expo/modules/entrig/EntrigModule.kt +169 -0
- package/bin/setup.js +190 -0
- package/build/Entrig.types.d.ts +16 -0
- package/build/Entrig.types.d.ts.map +1 -0
- package/build/Entrig.types.js +2 -0
- package/build/Entrig.types.js.map +1 -0
- package/build/EntrigModule.d.ts +12 -0
- package/build/EntrigModule.d.ts.map +1 -0
- package/build/EntrigModule.js +4 -0
- package/build/EntrigModule.js.map +1 -0
- package/build/EntrigModule.web.d.ts +12 -0
- package/build/EntrigModule.web.d.ts.map +1 -0
- package/build/EntrigModule.web.js +21 -0
- package/build/EntrigModule.web.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +5 -0
- package/build/index.js.map +1 -0
- package/ios/Entrig.podspec +30 -0
- package/ios/EntrigAppDelegateSubscriber.swift +44 -0
- package/ios/EntrigModule.swift +125 -0
- package/package.json +57 -0
- package/src/Entrig.types.ts +17 -0
- package/src/EntrigModule.ts +14 -0
- package/src/EntrigModule.web.ts +28 -0
- package/src/index.ts +4 -0
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
apply plugin: 'com.android.library'
|
|
2
|
+
|
|
3
|
+
group = 'expo.modules.entrig'
|
|
4
|
+
version = '0.1.0'
|
|
5
|
+
|
|
6
|
+
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
|
7
|
+
apply from: expoModulesCorePlugin
|
|
8
|
+
applyKotlinExpoModulesCorePlugin()
|
|
9
|
+
useCoreDependencies()
|
|
10
|
+
useExpoPublishing()
|
|
11
|
+
|
|
12
|
+
// If you want to use the managed Android SDK versions from expo-modules-core, set this to true.
|
|
13
|
+
// The Android SDK versions will be bumped from time to time in SDK releases and may introduce breaking changes in your module code.
|
|
14
|
+
// Most of the time, you may like to manage the Android SDK versions yourself.
|
|
15
|
+
def useManagedAndroidSdkVersions = false
|
|
16
|
+
if (useManagedAndroidSdkVersions) {
|
|
17
|
+
useDefaultAndroidSdkVersions()
|
|
18
|
+
} else {
|
|
19
|
+
buildscript {
|
|
20
|
+
// Simple helper that allows the root project to override versions declared by this library.
|
|
21
|
+
ext.safeExtGet = { prop, fallback ->
|
|
22
|
+
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
project.android {
|
|
26
|
+
compileSdkVersion safeExtGet("compileSdkVersion", 36)
|
|
27
|
+
defaultConfig {
|
|
28
|
+
minSdkVersion safeExtGet("minSdkVersion", 24)
|
|
29
|
+
targetSdkVersion safeExtGet("targetSdkVersion", 36)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
android {
|
|
35
|
+
namespace "expo.modules.entrig"
|
|
36
|
+
defaultConfig {
|
|
37
|
+
versionCode 1
|
|
38
|
+
versionName "0.1.0"
|
|
39
|
+
}
|
|
40
|
+
lintOptions {
|
|
41
|
+
abortOnError false
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
dependencies {
|
|
46
|
+
// Use entrig-android SDK from Maven Central
|
|
47
|
+
api 'com.entrig:entrig:0.0.10-dev'
|
|
48
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
## This file must *NOT* be checked into Version Control Systems,
|
|
2
|
+
# as it contains information specific to your local configuration.
|
|
3
|
+
#
|
|
4
|
+
# Location of the SDK. This is only used by Gradle.
|
|
5
|
+
# For customization when using a Version Control System, please read the
|
|
6
|
+
# header note.
|
|
7
|
+
#Tue Feb 03 15:25:59 IST 2026
|
|
8
|
+
sdk.dir=/Users/ib/Library/Android/sdk
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
package expo.modules.entrig
|
|
2
|
+
|
|
3
|
+
import android.app.Activity
|
|
4
|
+
import android.content.Context
|
|
5
|
+
import android.content.Intent
|
|
6
|
+
import android.content.pm.PackageManager
|
|
7
|
+
import android.os.Build
|
|
8
|
+
import android.util.Log
|
|
9
|
+
import androidx.activity.ComponentActivity
|
|
10
|
+
import androidx.activity.result.contract.ActivityResultContracts
|
|
11
|
+
import androidx.core.content.ContextCompat
|
|
12
|
+
import expo.modules.kotlin.modules.Module
|
|
13
|
+
import expo.modules.kotlin.modules.ModuleDefinition
|
|
14
|
+
import expo.modules.kotlin.Promise
|
|
15
|
+
import com.entrig.sdk.Entrig
|
|
16
|
+
import com.entrig.sdk.models.EntrigConfig
|
|
17
|
+
|
|
18
|
+
class EntrigModule : Module() {
|
|
19
|
+
private val context: Context
|
|
20
|
+
get() = appContext.reactContext ?: throw IllegalStateException("React context is null")
|
|
21
|
+
|
|
22
|
+
private val currentActivity: Activity?
|
|
23
|
+
get() = appContext.currentActivity
|
|
24
|
+
|
|
25
|
+
override fun definition() = ModuleDefinition {
|
|
26
|
+
Name("Entrig")
|
|
27
|
+
|
|
28
|
+
Events("onForegroundNotification", "onNotificationOpened")
|
|
29
|
+
|
|
30
|
+
OnCreate {
|
|
31
|
+
// Set activity on SDK for foreground detection (lifecycle callbacks
|
|
32
|
+
// registered in initialize() won't fire for already-resumed activities)
|
|
33
|
+
currentActivity?.let { Entrig.setActivity(it) }
|
|
34
|
+
|
|
35
|
+
// Handle initial intent (app launched from notification tap)
|
|
36
|
+
currentActivity?.intent?.let { intent ->
|
|
37
|
+
Entrig.handleIntent(intent)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Entrig.setOnForegroundNotificationListener { notification ->
|
|
41
|
+
Log.d("EntrigModule", "Foreground notification: ${notification.toMap()}")
|
|
42
|
+
sendEvent("onForegroundNotification", notification.toMap())
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
Entrig.setOnNotificationOpenedListener { notification ->
|
|
46
|
+
Log.d("EntrigModule", "Notification opened: ${notification.toMap()}")
|
|
47
|
+
sendEvent("onNotificationOpened", notification.toMap())
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
OnNewIntent { intent ->
|
|
52
|
+
Entrig.handleIntent(intent)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Initialize SDK
|
|
56
|
+
AsyncFunction("init") { config: Map<String, Any?>, promise: Promise ->
|
|
57
|
+
val apiKey = config["apiKey"] as? String
|
|
58
|
+
if (apiKey.isNullOrEmpty()) {
|
|
59
|
+
promise.reject("INVALID_API_KEY", "API key is required and cannot be empty", null)
|
|
60
|
+
return@AsyncFunction
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
val showForegroundNotification = config["showForegroundNotification"] as? Boolean ?: true
|
|
64
|
+
val entrigConfig = EntrigConfig(
|
|
65
|
+
apiKey = apiKey,
|
|
66
|
+
handlePermission = false, // Module handles permission itself
|
|
67
|
+
showForegroundNotification = showForegroundNotification
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
val appCtx = context.applicationContext
|
|
71
|
+
Entrig.initialize(appCtx, entrigConfig) { success, error ->
|
|
72
|
+
if (success) {
|
|
73
|
+
promise.resolve(null)
|
|
74
|
+
} else {
|
|
75
|
+
promise.reject("INIT_ERROR", error ?: "Failed to initialize SDK", null)
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Register user — requests permission first if needed
|
|
81
|
+
AsyncFunction("register") { userId: String, promise: Promise ->
|
|
82
|
+
val activity = currentActivity
|
|
83
|
+
if (activity == null) {
|
|
84
|
+
promise.reject("NO_ACTIVITY", "Activity not available", null)
|
|
85
|
+
return@AsyncFunction
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (needsNotificationPermission()) {
|
|
89
|
+
requestNotificationPermission(activity) {
|
|
90
|
+
// Proceed with registration regardless of permission result
|
|
91
|
+
// (FCM token works without POST_NOTIFICATIONS; permission is for displaying)
|
|
92
|
+
doRegister(userId, activity, promise)
|
|
93
|
+
}
|
|
94
|
+
return@AsyncFunction
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
doRegister(userId, activity, promise)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Request permission
|
|
101
|
+
AsyncFunction("requestPermission") { promise: Promise ->
|
|
102
|
+
val activity = currentActivity
|
|
103
|
+
if (activity == null) {
|
|
104
|
+
promise.reject("NO_ACTIVITY", "Activity not available", null)
|
|
105
|
+
return@AsyncFunction
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (needsNotificationPermission()) {
|
|
109
|
+
requestNotificationPermission(activity) { granted ->
|
|
110
|
+
promise.resolve(granted)
|
|
111
|
+
}
|
|
112
|
+
return@AsyncFunction
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
promise.resolve(true)
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Unregister
|
|
119
|
+
AsyncFunction("unregister") { promise: Promise ->
|
|
120
|
+
Entrig.unregister { success, error ->
|
|
121
|
+
if (success) {
|
|
122
|
+
promise.resolve(null)
|
|
123
|
+
} else {
|
|
124
|
+
promise.reject("UNREGISTER_ERROR", error ?: "Unregistration failed", null)
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Get initial notification
|
|
130
|
+
AsyncFunction("getInitialNotification") { promise: Promise ->
|
|
131
|
+
val initialNotification = Entrig.getInitialNotification()
|
|
132
|
+
promise.resolve(initialNotification?.toMap())
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
private fun needsNotificationPermission(): Boolean {
|
|
137
|
+
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
|
|
138
|
+
ContextCompat.checkSelfPermission(context, android.Manifest.permission.POST_NOTIFICATIONS) !=
|
|
139
|
+
PackageManager.PERMISSION_GRANTED
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
private fun requestNotificationPermission(activity: Activity, callback: (Boolean) -> Unit) {
|
|
143
|
+
val componentActivity = activity as? ComponentActivity
|
|
144
|
+
if (componentActivity == null) {
|
|
145
|
+
callback(false)
|
|
146
|
+
return
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
val key = "entrig_permission_${System.nanoTime()}"
|
|
150
|
+
val registry = componentActivity.activityResultRegistry
|
|
151
|
+
|
|
152
|
+
var launcher: androidx.activity.result.ActivityResultLauncher<String>? = null
|
|
153
|
+
launcher = registry.register(key, ActivityResultContracts.RequestPermission()) { granted ->
|
|
154
|
+
launcher?.unregister()
|
|
155
|
+
callback(granted)
|
|
156
|
+
}
|
|
157
|
+
launcher.launch(android.Manifest.permission.POST_NOTIFICATIONS)
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
private fun doRegister(userId: String, activity: Activity, promise: Promise) {
|
|
161
|
+
Entrig.register(userId, activity, "expo") { success, error ->
|
|
162
|
+
if (success) {
|
|
163
|
+
promise.resolve(null)
|
|
164
|
+
} else {
|
|
165
|
+
promise.reject("REGISTER_ERROR", error ?: "Registration failed", null)
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
package/bin/setup.js
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("fs");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
|
|
8
|
+
if (args.length < 2 || args[0] !== "setup" || args[1] !== "ios") {
|
|
9
|
+
console.log("Usage: npx entrig setup ios");
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
console.log("🔧 Entrig iOS Setup\n");
|
|
14
|
+
|
|
15
|
+
// Find iOS directory
|
|
16
|
+
const iosDir = path.join(process.cwd(), "ios");
|
|
17
|
+
if (!fs.existsSync(iosDir)) {
|
|
18
|
+
console.log("❌ Error: ios/ directory not found");
|
|
19
|
+
console.log(" Make sure you run this from your Expo project root.");
|
|
20
|
+
console.log(' Run "npx expo prebuild" first if you haven\'t.');
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Find the app name from app.json
|
|
25
|
+
let appName = null;
|
|
26
|
+
const appJsonPath = path.join(process.cwd(), "app.json");
|
|
27
|
+
if (fs.existsSync(appJsonPath)) {
|
|
28
|
+
try {
|
|
29
|
+
const appJson = JSON.parse(fs.readFileSync(appJsonPath, "utf8"));
|
|
30
|
+
appName = appJson.expo?.name || appJson.name;
|
|
31
|
+
} catch (e) {
|
|
32
|
+
// ignore
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Try to find the app directory in ios/
|
|
37
|
+
if (!appName) {
|
|
38
|
+
const iosDirs = fs.readdirSync(iosDir).filter((f) => {
|
|
39
|
+
const stat = fs.statSync(path.join(iosDir, f));
|
|
40
|
+
return stat.isDirectory() && !f.startsWith(".") && f !== "Pods" && f !== "build";
|
|
41
|
+
});
|
|
42
|
+
if (iosDirs.length > 0) {
|
|
43
|
+
appName = iosDirs[0];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (!appName) {
|
|
48
|
+
console.log("❌ Error: Could not determine app name");
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
console.log(`✅ Found iOS project: ${appName}\n`);
|
|
53
|
+
|
|
54
|
+
// Update entitlements
|
|
55
|
+
updateEntitlements(iosDir, appName);
|
|
56
|
+
|
|
57
|
+
// Update Info.plist
|
|
58
|
+
updateInfoPlist(iosDir, appName);
|
|
59
|
+
|
|
60
|
+
console.log("\n🎉 Setup complete! Rebuild your iOS app to apply changes.\n");
|
|
61
|
+
|
|
62
|
+
function updateEntitlements(iosDir, appName) {
|
|
63
|
+
// Try common entitlements paths
|
|
64
|
+
const possiblePaths = [
|
|
65
|
+
path.join(iosDir, appName, `${appName}.entitlements`),
|
|
66
|
+
path.join(iosDir, appName, `${appName.replace(/\s/g, "")}.entitlements`),
|
|
67
|
+
];
|
|
68
|
+
|
|
69
|
+
let entitlementsPath = null;
|
|
70
|
+
for (const p of possiblePaths) {
|
|
71
|
+
if (fs.existsSync(p)) {
|
|
72
|
+
entitlementsPath = p;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// If no entitlements file exists, create one
|
|
78
|
+
if (!entitlementsPath) {
|
|
79
|
+
entitlementsPath = path.join(iosDir, appName, `${appName}.entitlements`);
|
|
80
|
+
const dir = path.dirname(entitlementsPath);
|
|
81
|
+
|
|
82
|
+
if (!fs.existsSync(dir)) {
|
|
83
|
+
console.log(`❌ Error: ${dir} not found`);
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const defaultEntitlements = `<?xml version="1.0" encoding="UTF-8"?>
|
|
88
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
89
|
+
<plist version="1.0">
|
|
90
|
+
<dict>
|
|
91
|
+
\t<key>aps-environment</key>
|
|
92
|
+
\t<string>development</string>
|
|
93
|
+
</dict>
|
|
94
|
+
</plist>`;
|
|
95
|
+
|
|
96
|
+
fs.writeFileSync(entitlementsPath, defaultEntitlements);
|
|
97
|
+
console.log(`📝 Created: ${path.relative(process.cwd(), entitlementsPath)}`);
|
|
98
|
+
console.log("✅ Added aps-environment to entitlements");
|
|
99
|
+
|
|
100
|
+
// Remind user to add entitlements to Xcode
|
|
101
|
+
console.log("\n⚠️ Note: You may need to add the entitlements file to your Xcode project:");
|
|
102
|
+
console.log(` 1. Open ${appName}.xcworkspace in Xcode`);
|
|
103
|
+
console.log(` 2. Select your target > Signing & Capabilities`);
|
|
104
|
+
console.log(" 3. Click + Capability > Push Notifications");
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
console.log(`📝 Checking ${path.relative(process.cwd(), entitlementsPath)}...`);
|
|
109
|
+
|
|
110
|
+
let content = fs.readFileSync(entitlementsPath, "utf8");
|
|
111
|
+
|
|
112
|
+
// Check if aps-environment already exists
|
|
113
|
+
if (content.includes("aps-environment")) {
|
|
114
|
+
console.log("✅ aps-environment already configured");
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
// Backup
|
|
119
|
+
const backupPath = entitlementsPath + ".backup";
|
|
120
|
+
fs.copyFileSync(entitlementsPath, backupPath);
|
|
121
|
+
console.log(`💾 Backup created: ${path.relative(process.cwd(), backupPath)}`);
|
|
122
|
+
|
|
123
|
+
const apsEntry = `\t<key>aps-environment</key>\n\t<string>development</string>\n`;
|
|
124
|
+
|
|
125
|
+
// Handle self-closing <dict/> tag
|
|
126
|
+
if (content.includes("<dict/>")) {
|
|
127
|
+
content = content.replace("<dict/>", `<dict>\n${apsEntry}</dict>`);
|
|
128
|
+
} else {
|
|
129
|
+
// Add aps-environment before closing </dict>
|
|
130
|
+
const insertPoint = content.lastIndexOf("</dict>");
|
|
131
|
+
if (insertPoint === -1) {
|
|
132
|
+
console.log("❌ Error: Could not parse entitlements file");
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
content = content.slice(0, insertPoint) + apsEntry + content.slice(insertPoint);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
fs.writeFileSync(entitlementsPath, content);
|
|
139
|
+
console.log("✅ Added aps-environment to entitlements");
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
function updateInfoPlist(iosDir, appName) {
|
|
143
|
+
const infoPlistPath = path.join(iosDir, appName, "Info.plist");
|
|
144
|
+
|
|
145
|
+
if (!fs.existsSync(infoPlistPath)) {
|
|
146
|
+
console.log(`⚠️ Warning: ${path.relative(process.cwd(), infoPlistPath)} not found`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
console.log(`📝 Checking ${path.relative(process.cwd(), infoPlistPath)}...`);
|
|
151
|
+
|
|
152
|
+
let content = fs.readFileSync(infoPlistPath, "utf8");
|
|
153
|
+
|
|
154
|
+
// Check if UIBackgroundModes with remote-notification already exists
|
|
155
|
+
if (content.includes("UIBackgroundModes") && content.includes("remote-notification")) {
|
|
156
|
+
console.log("✅ UIBackgroundModes already configured");
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Backup
|
|
161
|
+
const backupPath = infoPlistPath + ".backup";
|
|
162
|
+
fs.copyFileSync(infoPlistPath, backupPath);
|
|
163
|
+
console.log(`💾 Backup created: ${path.relative(process.cwd(), backupPath)}`);
|
|
164
|
+
|
|
165
|
+
if (content.includes("UIBackgroundModes")) {
|
|
166
|
+
// Add remote-notification to existing array
|
|
167
|
+
const arrayMatch = content.match(/<key>UIBackgroundModes<\/key>\s*<array>/);
|
|
168
|
+
if (arrayMatch) {
|
|
169
|
+
const insertPoint = arrayMatch.index + arrayMatch[0].length;
|
|
170
|
+
const newEntry = "\n\t\t<string>remote-notification</string>";
|
|
171
|
+
content = content.slice(0, insertPoint) + newEntry + content.slice(insertPoint);
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
// Add UIBackgroundModes array before closing </dict>
|
|
175
|
+
// Find the main dict's closing tag (last </dict> before </plist>)
|
|
176
|
+
const plistEnd = content.lastIndexOf("</plist>");
|
|
177
|
+
const dictEnd = content.lastIndexOf("</dict>", plistEnd);
|
|
178
|
+
|
|
179
|
+
if (dictEnd === -1) {
|
|
180
|
+
console.log("❌ Error: Could not parse Info.plist");
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const bgModes = `\t<key>UIBackgroundModes</key>\n\t<array>\n\t\t<string>remote-notification</string>\n\t</array>\n`;
|
|
185
|
+
content = content.slice(0, dictEnd) + bgModes + content.slice(dictEnd);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
fs.writeFileSync(infoPlistPath, content);
|
|
189
|
+
console.log("✅ Added remote-notification to UIBackgroundModes");
|
|
190
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type NotificationEvent = {
|
|
2
|
+
title: string;
|
|
3
|
+
body: string;
|
|
4
|
+
data: Record<string, any>;
|
|
5
|
+
isForeground: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type EntrigConfig = {
|
|
8
|
+
apiKey: string;
|
|
9
|
+
handlePermission?: boolean;
|
|
10
|
+
showForegroundNotification?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export type EntrigModuleEvents = {
|
|
13
|
+
onForegroundNotification: (event: NotificationEvent) => void;
|
|
14
|
+
onNotificationOpened: (event: NotificationEvent) => void;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=Entrig.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entrig.types.d.ts","sourceRoot":"","sources":["../src/Entrig.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wBAAwB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7D,oBAAoB,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC1D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Entrig.types.js","sourceRoot":"","sources":["../src/Entrig.types.ts"],"names":[],"mappings":"","sourcesContent":["export type NotificationEvent = {\n title: string;\n body: string;\n data: Record<string, any>;\n isForeground: boolean;\n};\n\nexport type EntrigConfig = {\n apiKey: string;\n handlePermission?: boolean;\n showForegroundNotification?: boolean;\n};\n\nexport type EntrigModuleEvents = {\n onForegroundNotification: (event: NotificationEvent) => void;\n onNotificationOpened: (event: NotificationEvent) => void;\n};\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NativeModule } from 'expo';
|
|
2
|
+
import { EntrigModuleEvents, EntrigConfig, NotificationEvent } from './Entrig.types';
|
|
3
|
+
declare class EntrigModule extends NativeModule<EntrigModuleEvents> {
|
|
4
|
+
init(config: EntrigConfig): Promise<void>;
|
|
5
|
+
register(userId: string): Promise<void>;
|
|
6
|
+
requestPermission(): Promise<boolean>;
|
|
7
|
+
unregister(): Promise<void>;
|
|
8
|
+
getInitialNotification(): Promise<NotificationEvent | null>;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: EntrigModule;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=EntrigModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntrigModule.d.ts","sourceRoot":"","sources":["../src/EntrigModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,MAAM,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErF,OAAO,OAAO,YAAa,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IACjE,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IACvC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IACrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAC3B,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAC5D;;AAGD,wBAA2D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntrigModule.js","sourceRoot":"","sources":["../src/EntrigModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAYzD,yDAAyD;AACzD,eAAe,mBAAmB,CAAe,QAAQ,CAAC,CAAC","sourcesContent":["import { NativeModule, requireNativeModule } from 'expo';\n\nimport { EntrigModuleEvents, EntrigConfig, NotificationEvent } from './Entrig.types';\n\ndeclare class EntrigModule extends NativeModule<EntrigModuleEvents> {\n init(config: EntrigConfig): Promise<void>;\n register(userId: string): Promise<void>;\n requestPermission(): Promise<boolean>;\n unregister(): Promise<void>;\n getInitialNotification(): Promise<NotificationEvent | null>;\n}\n\n// This call loads the native module object from the JSI.\nexport default requireNativeModule<EntrigModule>('Entrig');\n"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NativeModule } from 'expo';
|
|
2
|
+
import { EntrigModuleEvents, EntrigConfig, NotificationEvent } from './Entrig.types';
|
|
3
|
+
declare class EntrigModule extends NativeModule<EntrigModuleEvents> {
|
|
4
|
+
init(config: EntrigConfig): Promise<void>;
|
|
5
|
+
register(userId: string): Promise<void>;
|
|
6
|
+
requestPermission(): Promise<boolean>;
|
|
7
|
+
unregister(): Promise<void>;
|
|
8
|
+
getInitialNotification(): Promise<NotificationEvent | null>;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: typeof EntrigModule;
|
|
11
|
+
export default _default;
|
|
12
|
+
//# sourceMappingURL=EntrigModule.web.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntrigModule.web.d.ts","sourceRoot":"","sources":["../src/EntrigModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,MAAM,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErF,cAAM,YAAa,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IACnD,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B,sBAAsB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;CAGlE;;AAED,wBAA+D"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { registerWebModule, NativeModule } from 'expo';
|
|
2
|
+
class EntrigModule extends NativeModule {
|
|
3
|
+
async init(config) {
|
|
4
|
+
console.warn('Entrig push notifications are not supported on web');
|
|
5
|
+
}
|
|
6
|
+
async register(userId) {
|
|
7
|
+
console.warn('Entrig push notifications are not supported on web');
|
|
8
|
+
}
|
|
9
|
+
async requestPermission() {
|
|
10
|
+
console.warn('Entrig push notifications are not supported on web');
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
async unregister() {
|
|
14
|
+
console.warn('Entrig push notifications are not supported on web');
|
|
15
|
+
}
|
|
16
|
+
async getInitialNotification() {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export default registerWebModule(EntrigModule, 'EntrigModule');
|
|
21
|
+
//# sourceMappingURL=EntrigModule.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntrigModule.web.js","sourceRoot":"","sources":["../src/EntrigModule.web.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIvD,MAAM,YAAa,SAAQ,YAAgC;IACzD,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC","sourcesContent":["import { registerWebModule, NativeModule } from 'expo';\n\nimport { EntrigModuleEvents, EntrigConfig, NotificationEvent } from './Entrig.types';\n\nclass EntrigModule extends NativeModule<EntrigModuleEvents> {\n async init(config: EntrigConfig): Promise<void> {\n console.warn('Entrig push notifications are not supported on web');\n }\n\n async register(userId: string): Promise<void> {\n console.warn('Entrig push notifications are not supported on web');\n }\n\n async requestPermission(): Promise<boolean> {\n console.warn('Entrig push notifications are not supported on web');\n return false;\n }\n\n async unregister(): Promise<void> {\n console.warn('Entrig push notifications are not supported on web');\n }\n\n async getInitialNotification(): Promise<NotificationEvent | null> {\n return null;\n }\n}\n\nexport default registerWebModule(EntrigModule, 'EntrigModule');\n"]}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,cAAc,gBAAgB,CAAC"}
|
package/build/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,6CAA6C;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,cAAc,gBAAgB,CAAC","sourcesContent":["// Reexport the native module. On web, it will be resolved to EntrigModule.web.ts\n// and on native platforms to EntrigModule.ts\nexport { default } from './EntrigModule';\nexport * from './Entrig.types';\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = 'Entrig'
|
|
7
|
+
s.version = package['version']
|
|
8
|
+
s.summary = package['description']
|
|
9
|
+
s.description = package['description']
|
|
10
|
+
s.license = package['license']
|
|
11
|
+
s.author = package['author']
|
|
12
|
+
s.homepage = package['homepage']
|
|
13
|
+
s.platforms = {
|
|
14
|
+
:ios => '15.1',
|
|
15
|
+
:tvos => '15.1'
|
|
16
|
+
}
|
|
17
|
+
s.swift_version = '5.9'
|
|
18
|
+
s.source = { git: 'https://github.com/entrig/entrig-expo' }
|
|
19
|
+
s.static_framework = true
|
|
20
|
+
|
|
21
|
+
s.dependency 'ExpoModulesCore'
|
|
22
|
+
s.dependency 'EntrigSDK', '0.0.8-dev'
|
|
23
|
+
|
|
24
|
+
# Swift/Objective-C compatibility
|
|
25
|
+
s.pod_target_xcconfig = {
|
|
26
|
+
'DEFINES_MODULE' => 'YES',
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
|
|
30
|
+
end
|