{"_id":"@capawesome/capacitor-superwall","_rev":"7-6521de2a862160cd70a18b229072750b","name":"@capawesome/capacitor-superwall","dist-tags":{"latest":"0.1.5"},"versions":{"0.0.1":{"name":"@capawesome/capacitor-superwall","version":"0.0.1","keywords":["capacitor","plugin","native"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-superwall@0.0.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/plugins/superwall/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"5a8a6a4072b7ecc28e3f2608e619b8b8ef0c115e","tarball":"https://registry.npmjs.org/@capawesome/capacitor-superwall/-/capacitor-superwall-0.0.1.tgz","fileCount":70,"integrity":"sha512-FZNDYKpQHIc5VbQPtNt9qtBzlc4Pjb7GvzyV4Abad3EfqY432OlNwoqoReVT1bjVEkmZfEwMeDMi0I7/iHQ2Zw==","signatures":[{"sig":"MEUCIQDNGfk63KBphLbJW6UvkAF6IOhhH8T+BL5XlWGGgiJN3gIgcnbPzTOGlWWEEwHqGtdFq+TG/L1FnECE1RY7v5+oQaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":271255},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"ca7131256a2c48dca18e6e40b3d8bbe0f47c78b4","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SuperwallPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"robingenz","email":"mail@robingenz.dev"},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"10.9.4","description":"Unofficial Capacitor plugin for Superwall SDK.","directories":{},"_nodeVersion":"22.21.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","prettier":"3.4.2","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7","@ionic/swiftlint-config":"2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-superwall_0.0.1_1767100838065_0.09671601861647061","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@capawesome/capacitor-superwall","version":"0.1.0","keywords":["capacitor","plugin","native"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-superwall@0.1.0","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/plugins/superwall/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"1343bdb5940367250871a73924d8511d0533546f","tarball":"https://registry.npmjs.org/@capawesome/capacitor-superwall/-/capacitor-superwall-0.1.0.tgz","fileCount":70,"integrity":"sha512-h0cTr5iORmjoy+VAWLusV9wSEF6nnTxmuAAdw4wpyN1SWrfk5Jpfn6p7z4ayZSIhtEK10/RkdYJEX5IOesT/1A==","signatures":[{"sig":"MEQCIFoD+AIDXuKHFFHEG+2t8ZKhl8Q2VbZ8peXkaZGHaQf2AiArsE86XZDwfpKxuHlCMdxvg6kZ2IWvH/sOTj/wX7Jg9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-superwall@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":271255},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"ee6067fde5c1639314a30a204bd1a8e3daef7136","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SuperwallPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78c4bde9-b494-4619-9cff-fb096adcff37"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.7.0","description":"Unofficial Capacitor plugin for Superwall SDK.","directories":{},"_nodeVersion":"22.21.1","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","prettier":"3.4.2","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7","@ionic/swiftlint-config":"2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-superwall_0.1.0_1767101017159_0.07690551225791142","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@capawesome/capacitor-superwall","version":"0.1.1","keywords":["capacitor","plugin","native"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-superwall@0.1.1","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/plugins/superwall/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"b6deee2f3e3f690641272e45c6a35cd48631e446","tarball":"https://registry.npmjs.org/@capawesome/capacitor-superwall/-/capacitor-superwall-0.1.1.tgz","fileCount":70,"integrity":"sha512-o6jukdpedeIX6T5QJjQ3cVpYX96pZKrmcPLsm81AGvRFl9+7kBgn+/MGZi6H1cYWnnQJxvXOX/pYleGWnKYVfg==","signatures":[{"sig":"MEQCIELJTTc50K8iw6Y0Hj6hm0mUC1AmSYgJS/T/tH2UeBjNAiA0e/Rb+S0fdNZJreDcOy5RjMjhVr2kabItxnM8j2nJ9w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-superwall@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":271264},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"fa5661b9d1f85edd21f503e2eeb9875d0089f0ae","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SuperwallPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78c4bde9-b494-4619-9cff-fb096adcff37"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"swiftlint":"@ionic/swiftlint-config","repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.10.0","description":"Unofficial Capacitor plugin for Superwall SDK.","directories":{},"_nodeVersion":"22.22.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.53.3","prettier":"3.4.2","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.0.0","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.6.7","@ionic/swiftlint-config":"2.0.0"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-superwall_0.1.1_1771486785319_0.13769558334678034","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@capawesome/capacitor-superwall","version":"0.1.2","keywords":["capacitor","plugin","native","capacitor-plugin","superwall","paywall","subscriptions","in-app purchases","monetization","feature gating","a/b testing"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-superwall@0.1.2","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/superwall/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"d543c88dc16f303ca6955f73f1207461eeb27144","tarball":"https://registry.npmjs.org/@capawesome/capacitor-superwall/-/capacitor-superwall-0.1.2.tgz","fileCount":70,"integrity":"sha512-2x3S4pqc/dOsYgADcQeBrs+PNV/gpI+rF6M3jRBUURme4paGFGUNQSXVEQddDdAFl6c7TYGNhmcwEtgHoJgP9Q==","signatures":[{"sig":"MEQCIGmm2hwP4x2jYb3W8eaP0qX2ZguKKxjf8IuAnVW2KmI2AiBPQdy87O6LT5/QcsmYVURbXJsSHWbnWH8teFUwIBW2gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-superwall@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277698},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"49f6b1dc27946ccc2bcb2b49ca38a4f1486a4465","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SuperwallPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78c4bde9-b494-4619-9cff-fb096adcff37"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Unofficial Capacitor plugin for Superwall SDK to present paywalls on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.4.2","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.9.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-superwall_0.1.2_1785746888090_0.42812573464209724","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@capawesome/capacitor-superwall","version":"0.1.3","keywords":["capacitor","plugin","native","capacitor-plugin","superwall","paywall","subscriptions","in-app purchases","monetization","feature gating","a/b testing"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-superwall@0.1.3","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/superwall/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"e530ac65b2ef00f9e0eff8e97744b6d1af649007","tarball":"https://registry.npmjs.org/@capawesome/capacitor-superwall/-/capacitor-superwall-0.1.3.tgz","fileCount":70,"integrity":"sha512-vyIIZJzUKC63Iw4HYJvo4nP2XR4slZjkdFl6kfyh1fbL4WGzVG8ovXGHMU1eq6tMWrv5RX1vi+nGfUOEkeirjQ==","signatures":[{"sig":"MEUCIQCcqe8Qk/QNHhWAxUvAf9vQGS3jq2g62TGXTMbpnD04zAIgZFrxt8SXd2V5s5xp4kMhVner0wAwzYKZ30wTcz/EXwI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-superwall@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":281724},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"d240c2cdb58e33a575d3c2eb375466a6f556693f","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SuperwallPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78c4bde9-b494-4619-9cff-fb096adcff37"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.16.0","description":"Unofficial Capacitor plugin for Superwall SDK to present paywalls on Android and iOS.","directories":{},"_nodeVersion":"24.18.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.4.2","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.9.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-superwall_0.1.3_1785951022539_0.7348686417640817","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@capawesome/capacitor-superwall","version":"0.1.4","keywords":["capacitor","plugin","native","capacitor-plugin","superwall","paywall","subscriptions","in-app purchases","monetization","feature gating","a/b testing"],"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","_id":"@capawesome/capacitor-superwall@0.1.4","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"homepage":"https://capawesome.io/docs/sdks/capacitor/superwall/","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"8e690279cafd6b374c3e4605f7282b69abd29fc5","tarball":"https://registry.npmjs.org/@capawesome/capacitor-superwall/-/capacitor-superwall-0.1.4.tgz","fileCount":70,"integrity":"sha512-n5rdHpzNRyfb3HBV1rqKX9ApDA6M0CIURyP/ioZ/7TiBXEi+Vtu+hHOoBDjgydeSYyTQtO/LdfZKya7VtpYhrQ==","signatures":[{"sig":"MEUCIHHIA1wRPzCIuEMhRBm7vTq+F6zZSokTvYwcFQCaWOlUAiEA12/V84jowBhxkyyuYJmh07SGDkqM9FZe/GHHR2/cz2E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-superwall@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":281576},"main":"dist/plugin.cjs.js","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"7c1937ed10b7de86ca2c1cdc3539a2735fd69a00","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SuperwallPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78c4bde9-b494-4619-9cff-fb096adcff37"}},"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.17.0","description":"Unofficial Capacitor plugin for Superwall SDK to present paywalls on Android and iOS.","directories":{},"_nodeVersion":"24.19.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.4.2","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.9.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/capacitor-superwall_0.1.4_1788337423755_0.9790525164547916","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"_id":"@capawesome/capacitor-superwall@0.1.5","bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"dist":{"shasum":"ca4629e04051b6ae3183b963014e92fbac31d07b","tarball":"https://registry.npmjs.org/@capawesome/capacitor-superwall/-/capacitor-superwall-0.1.5.tgz","fileCount":70,"integrity":"sha512-URD68z2EEK3+peo9jQisgkvCyzrt42QCL0xUgEs1ca5UCSII1XQeVGDMVT4RqjfdkMLow5qXjYh82om8GJf8Wg==","signatures":[{"sig":"MEQCIDmzYxQDQ4amxyN+MdzANxWzlekO8jLuk/yPEr5d0QcZAiAJgGIRa62krTTcjqpOh/manZZU7BZOCGoBJmgKe8mIKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDZrFZtl9Fmy4nAWzRlfNk7yhjRXRUVg9WyTwniKqC3SgIhAOb7dI39J3O0sReLWyPFyOsvCF5ojhYZ1UI8hbMw/ELR"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@capawesome%2fcapacitor-superwall@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":287308},"main":"dist/plugin.cjs.js","name":"@capawesome/capacitor-superwall","types":"dist/esm/index.d.ts","unpkg":"dist/plugin.js","author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"module":"dist/esm/index.js","funding":[{"url":"https://github.com/sponsors/capawesome-team/","type":"github"},{"url":"https://opencollective.com/capawesome","type":"opencollective"}],"gitHead":"0c68cba3644a715d12354fbc968f1b09034fd175","license":"MIT","scripts":{"fmt":"npm run eslint -- --fix && npm run prettier -- --write && npm run swiftlint -- --fix --format","lint":"npm run eslint && npm run prettier -- --check && npm run swiftlint -- lint","build":"npm run clean && npm run docgen && tsc && rollup -c rollup.config.mjs","clean":"rimraf ./dist","watch":"tsc --watch","docgen":"docgen --api SuperwallPlugin --output-readme README.md --output-json dist/docs.json","eslint":"eslint . --ext ts","verify":"npm run verify:ios && npm run verify:android && npm run verify:web","prettier":"prettier \"**/*.{css,html,ts,js,java}\"","swiftlint":"node-swiftlint","verify:ios":"cd ios && pod install && xcodebuild -workspace Plugin.xcworkspace -scheme Plugin -destination generic/platform=iOS && cd ..","verify:web":"npm run build","prepublishOnly":"npm run build","verify:android":"cd android && ./gradlew clean build test && cd ..","ios:pod:install":"cd ios && pod install --repo-update && cd ..","ios:spm:install":"cd ios && swift package resolve && cd .."},"version":"0.1.5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:78c4bde9-b494-4619-9cff-fb096adcff37"}},"homepage":"https://capawesome.io/docs/sdks/capacitor/superwall/","keywords":["capacitor","plugin","native","capacitor-plugin","superwall","paywall","subscriptions","in-app purchases","monetization","feature gating","a/b testing"],"capacitor":{"ios":{"src":"ios"},"android":{"src":"android"}},"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"_npmVersion":"11.19.0","description":"Unofficial Capacitor plugin for Superwall SDK to present paywalls on Android and iOS.","directories":{},"maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"_nodeVersion":"24.20.0","eslintConfig":{"extends":"@ionic/eslint-config/recommended"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"8.57.0","rimraf":"6.1.2","rollup":"4.62.3","swiftlint":"2.0.0","typescript":"5.9.3","@capacitor/cli":"8.4.2","@capacitor/ios":"8.0.0","@capacitor/core":"8.0.0","@capacitor/docgen":"0.3.1","@capacitor/android":"8.0.0","@ionic/eslint-config":"0.4.0","prettier-plugin-java":"2.9.7"},"peerDependencies":{"@capacitor/core":">=8.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/capacitor-superwall_0.1.5_1789110763615_0.6440508459681349"}}},"time":{"created":"2025-12-30T13:20:37.947Z","modified":"2026-09-11T07:12:44.098Z","0.0.1":"2025-12-30T13:20:38.234Z","0.1.0":"2025-12-30T13:23:37.319Z","0.1.1":"2026-02-19T07:39:45.476Z","0.1.2":"2026-08-03T08:48:08.265Z","0.1.3":"2026-08-05T17:30:22.730Z","0.1.4":"2026-09-02T08:23:43.902Z","0.1.5":"2026-09-11T07:12:43.721Z"},"bugs":{"url":"https://github.com/capawesome-team/capacitor-plugins/issues"},"author":{"name":"Robin Genz","email":"mail@robingenz.dev"},"license":"MIT","homepage":"https://capawesome.io/docs/sdks/capacitor/superwall/","keywords":["capacitor","plugin","native","capacitor-plugin","superwall","paywall","subscriptions","in-app purchases","monetization","feature gating","a/b testing"],"repository":{"url":"git+https://github.com/capawesome-team/capacitor-plugins.git","type":"git"},"description":"Unofficial Capacitor plugin for Superwall SDK to present paywalls on Android and iOS.","maintainers":[{"name":"robingenz","email":"mail@robingenz.dev"}],"readme":"# Capacitor Superwall Plugin\n\nUnofficial Capacitor plugin for [Superwall SDK](https://superwall.com/).[^1]\n\n<div class=\"capawesome-z29o10a\">\n  <a href=\"https://cloud.capawesome.io/\" target=\"_blank\">\n    <img alt=\"Deliver Live Updates to your Capacitor app with Capawesome Cloud\" src=\"https://cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.png?t=1\" />\n  </a>\n</div>\n\n## Features\n\nThe Capacitor Superwall plugin brings remotely-configured paywalls and paywall experiments to Capacitor apps. Here are some of the key features:\n\n- 🖥️ **Cross-platform**: Supports Android and iOS.\n- 💰 **Paywall Presentation**: Show beautiful, remotely-configured paywalls to drive subscriptions.\n- 🎯 **Feature Gating**: Control feature access based on subscription status.\n- 📊 **Analytics Events**: Forward Superwall events to your analytics platform.\n- 👤 **User Management**: Identify users, set custom attributes, and manage subscription status.\n- 🧪 **A/B Testing**: Built-in support for paywall experiments and holdout groups.\n- 🔗 **Deep Linking**: Handle deep links for paywall campaigns.\n- 🎨 **Customization**: Configure paywall behavior, logging, and appearance.\n- 🤝 **Compatibility**: Works alongside the [PostHog](https://capawesome.io/docs/sdks/capacitor/posthog/) and [Purchases](https://capawesome.io/docs/sdks/capacitor/purchases/) plugins.\n- 🔁 **Up-to-date**: Always supports the latest Capacitor version.\n\nMissing a feature? Just [open an issue](https://github.com/capawesome-team/capacitor-plugins/issues) and we'll take a look!\n\n## Use Cases\n\nThe Superwall plugin is typically used to monetize an app with subscriptions, for example:\n\n- **Feature gating**: Register a placement with `register(...)` when the user taps a premium feature and present a paywall if they don't have an active subscription.\n- **Paywall experiments**: Run A/B tests and holdout groups for your paywalls, configured remotely on the Superwall dashboard without app updates.\n- **Personalized paywalls**: Identify users and set custom attributes to target paywalls with audience filters.\n- **Analytics forwarding**: Listen for Superwall events and forward them to your analytics platform.\n- **Campaign deep links**: Handle deep links for paywall campaigns configured on the dashboard.\n\n## Compatibility\n\n| Plugin Version | Capacitor Version | Status         |\n| -------------- | ----------------- | -------------- |\n| 0.1.x          | >=8.x.x           | Active support |\n\n## Installation\n\nYou can use our **AI-Assisted Setup** to install the plugin.\nAdd the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:\n\n```bash\nnpx skills add capawesome-team/skills --skill capacitor-plugins\n```\n\nThen use the following prompt:\n\n```\n Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-superwall` plugin in my project.\n```\n\nIf you prefer **Manual Setup**, install the plugin by running the following commands and follow the platform-specific instructions below:\n\n```bash\nnpm install @capawesome/capacitor-superwall\nnpx cap sync\n```\n\n### Android\n\n#### Variables\n\nThis plugin will use the following project variables (defined in your app's `variables.gradle` file):\n\n- `$superwallAndroidVersion` version of `com.superwall.sdk:superwall-android` (default: `2.6.6`)\n\n#### Manifest\n\nAdd the required activities to your `AndroidManifest.xml` file:\n\n```xml\n<activity\n  android:name=\"com.superwall.sdk.paywall.view.SuperwallPaywallActivity\"\n  android:theme=\"@style/Theme.MaterialComponents.DayNight.NoActionBar\"\n  android:configChanges=\"orientation|screenSize|keyboardHidden\">\n</activity>\n<activity android:name=\"com.superwall.sdk.debug.DebugViewActivity\" />\n<activity android:name=\"com.superwall.sdk.debug.localizations.SWLocalizationActivity\" />\n<activity android:name=\"com.superwall.sdk.debug.SWConsoleActivity\" />\n```\n\nSet your app's theme in the `android:theme` section of the `SuperwallPaywallActivity`.\n\n## Configuration\n\nNo configuration required for this plugin.\n\n## Usage\n\nThe following examples show how to configure the SDK, present paywalls, identify users, manage subscription status, handle deep links, and listen for events.\n\n### Configure the SDK\n\nConfigure the Superwall SDK with the API key from your dashboard. This must be called once before all other methods:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst configureSuperwall = async () => {\n  await Superwall.configure({\n    apiKey: 'pk_your_api_key_here',\n    options: {\n      paywalls: {\n        shouldPreload: true,\n        automaticallyDismiss: true,\n      },\n      logging: {\n        level: 'WARN',\n        scopes: ['ALL'],\n      },\n    },\n  });\n};\n```\n\n### Present a paywall\n\nRegister a placement with `register(...)` to present a paywall if the user doesn't have an active subscription. This is the primary method for feature gating and paywall presentation:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst showPaywall = async () => {\n  const result = await Superwall.register({\n    placement: 'premium_feature',\n    params: {\n      user_level: 5,\n      source: 'settings',\n    },\n  });\n\n  console.log('Paywall result:', result.result); // 'PURCHASED', 'CANCELLED', or 'RESTORED'\n};\n```\n\n### Check whether a paywall would be presented\n\nUse `getPresentationResult(...)` to check if a paywall would be presented for a placement without actually presenting it:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst checkPaywall = async () => {\n  const result = await Superwall.getPresentationResult({\n    placement: 'premium_feature',\n  });\n\n  if (result.type === 'PAYWALL') {\n    console.log('Paywall would be shown');\n  } else if (result.type === 'NO_AUDIENCE_MATCH') {\n    console.log('User does not match audience, no paywall');\n  }\n};\n```\n\n### Identify the user\n\nIdentify the current user with a unique ID to link it to their anonymous alias for analytics and paywall assignments:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst identifyUser = async (userId: string) => {\n  await Superwall.identify({\n    userId: userId,\n    options: {\n      restorePaywallAssignments: true,\n    },\n  });\n};\n```\n\n### Set user attributes\n\nSet custom user attributes for personalization and audience filtering on the Superwall dashboard. Keys starting with `$` are reserved for Superwall use:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst setAttributes = async () => {\n  await Superwall.setUserAttributes({\n    attributes: {\n      username: 'john_doe',\n      subscription_tier: 'free',\n      total_purchases: 5,\n    },\n  });\n};\n```\n\n### Check the subscription status\n\nRead the current subscription status of the user:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst checkSubscription = async () => {\n  const result = await Superwall.getSubscriptionStatus();\n  console.log('Subscription status:', result.status); // 'ACTIVE', 'INACTIVE', or 'UNKNOWN'\n};\n```\n\n### Listen for events\n\nListen for analytics events, subscription status changes, paywall lifecycle events and custom paywall actions:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst addListeners = async () => {\n  // Forward analytics events to your platform\n  await Superwall.addListener('superwallEvent', (event) => {\n    console.log('Superwall event:', event.type, event.data);\n    // Forward to your analytics: Analytics.track(event.type, event.data);\n  });\n\n  // Track subscription status changes\n  await Superwall.addListener('subscriptionStatusDidChange', (event) => {\n    console.log('Subscription status changed to:', event.status);\n  });\n\n  // Handle paywall lifecycle events\n  await Superwall.addListener('paywallPresented', (event) => {\n    console.log('Paywall presented:', event.paywallInfo.placement);\n  });\n\n  await Superwall.addListener('paywallDismissed', (event) => {\n    console.log('Paywall dismissed:', event.paywallInfo.placement);\n  });\n\n  // Handle custom paywall actions\n  await Superwall.addListener('customPaywallAction', (event) => {\n    console.log('Custom action:', event.name);\n    // Handle custom actions like 'help', 'contact', etc.\n  });\n};\n```\n\n### Handle a campaign deep link\n\nProcess deep links associated with Superwall campaigns configured on the dashboard:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst handleCampaignDeepLink = async (url: string) => {\n  await Superwall.handleDeepLink({ url });\n};\n```\n\n### Reset the user identity on logout\n\nReset the user identity when the user explicitly logs out:\n\n```typescript\nimport { Superwall } from '@capawesome/capacitor-superwall';\n\nconst logout = async () => {\n  await Superwall.reset();\n};\n```\n\n## API\n\n<docgen-index>\n\n* [`configure(...)`](#configure)\n* [`register(...)`](#register)\n* [`dismiss()`](#dismiss)\n* [`restorePurchases()`](#restorepurchases)\n* [`getPresentationResult(...)`](#getpresentationresult)\n* [`identify(...)`](#identify)\n* [`reset()`](#reset)\n* [`getUserId()`](#getuserid)\n* [`getIsLoggedIn()`](#getisloggedin)\n* [`setUserAttributes(...)`](#setuserattributes)\n* [`handleDeepLink(...)`](#handledeeplink)\n* [`getSubscriptionStatus()`](#getsubscriptionstatus)\n* [`addListener('superwallEvent', ...)`](#addlistenersuperwallevent-)\n* [`addListener('subscriptionStatusDidChange', ...)`](#addlistenersubscriptionstatusdidchange-)\n* [`addListener('paywallPresented', ...)`](#addlistenerpaywallpresented-)\n* [`addListener('paywallWillDismiss', ...)`](#addlistenerpaywallwilldismiss-)\n* [`addListener('paywallDismissed', ...)`](#addlistenerpaywalldismissed-)\n* [`addListener('customPaywallAction', ...)`](#addlistenercustompaywallaction-)\n* [`removeAllListeners()`](#removealllisteners)\n* [Interfaces](#interfaces)\n* [Enums](#enums)\n\n</docgen-index>\n\n<docgen-api>\n<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->\n\n### configure(...)\n\n```typescript\nconfigure(options: ConfigureOptions) => Promise<void>\n```\n\nConfigure the Superwall SDK.\n\nThis method must be called once before all other methods.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                          |\n| ------------- | ------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#configureoptions\">ConfigureOptions</a></code> |\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### register(...)\n\n```typescript\nregister(options: RegisterOptions) => Promise<RegisterResult>\n```\n\nRegister a placement and present a paywall if the user doesn't have an active subscription.\n\nThis is the primary method for feature gating and paywall presentation.\nThe feature closure will execute based on the gating mode:\n- Non-gated: Executes immediately\n- Gated: Executes after subscription or if already subscribed\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                        |\n| ------------- | ----------------------------------------------------------- |\n| **`options`** | <code><a href=\"#registeroptions\">RegisterOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#registerresult\">RegisterResult</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### dismiss()\n\n```typescript\ndismiss() => Promise<void>\n```\n\nDismiss the currently presented paywall, if one exists.\n\nResolves once the paywall has been dismissed.\nIf no paywall is presented, the method resolves immediately.\n\nOnly available on Android and iOS.\n\n**Since:** 0.1.3\n\n--------------------\n\n\n### restorePurchases()\n\n```typescript\nrestorePurchases() => Promise<void>\n```\n\nRestore purchases made by the user.\n\nRejects if the SDK has not been configured or the restore fails.\nA successful restore does not necessarily mean the user has an active subscription.\nUse `getSubscriptionStatus()` to check the subscription status after restoring.\n\nOnly available on Android and iOS.\n\n**Since:** 0.1.5\n\n--------------------\n\n\n### getPresentationResult(...)\n\n```typescript\ngetPresentationResult(options: GetPresentationResultOptions) => Promise<GetPresentationResultResult>\n```\n\nCheck if a paywall would be presented for a placement without actually presenting it.\n\nUseful for determining whether to show a feature or paywall before the user interacts.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                                  |\n| ------------- | ------------------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#getpresentationresultoptions\">GetPresentationResultOptions</a></code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#getpresentationresultresult\">GetPresentationResultResult</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### identify(...)\n\n```typescript\nidentify(options: IdentifyOptions) => Promise<void>\n```\n\nIdentify the current user with a unique ID.\n\nThis links the user ID to their anonymous alias for analytics and paywall assignments.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                        |\n| ------------- | ----------------------------------------------------------- |\n| **`options`** | <code><a href=\"#identifyoptions\">IdentifyOptions</a></code> |\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### reset()\n\n```typescript\nreset() => Promise<void>\n```\n\nReset the user identity.\n\nThis rotates the anonymous user ID, clears local paywall assignments,\nand requires the SDK to re-download configuration.\nShould only be called on explicit logout.\n\nOnly available on Android and iOS.\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### getUserId()\n\n```typescript\ngetUserId() => Promise<GetUserIdResult>\n```\n\nGet the current user ID.\n\nReturns the identified user ID if set, otherwise returns the anonymous ID.\n\nOnly available on Android and iOS.\n\n**Returns:** <code>Promise&lt;<a href=\"#getuseridresult\">GetUserIdResult</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### getIsLoggedIn()\n\n```typescript\ngetIsLoggedIn() => Promise<GetIsLoggedInResult>\n```\n\nCheck if the user is logged in (identified).\n\nOnly available on Android and iOS.\n\n**Returns:** <code>Promise&lt;<a href=\"#getisloggedinresult\">GetIsLoggedInResult</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### setUserAttributes(...)\n\n```typescript\nsetUserAttributes(options: SetUserAttributesOptions) => Promise<void>\n```\n\nSet custom user attributes for personalization and audience filtering.\n\nAttributes can be used in audience filters on the Superwall dashboard.\nKeys starting with `$` are reserved for Superwall use.\nArrays and nested structures are not supported.\nSet values to null to remove attributes.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                          |\n| ------------- | ----------------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#setuserattributesoptions\">SetUserAttributesOptions</a></code> |\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### handleDeepLink(...)\n\n```typescript\nhandleDeepLink(options: HandleDeepLinkOptions) => Promise<void>\n```\n\nHandle a deep link URL for paywall campaigns.\n\nThis processes deep links associated with Superwall campaigns\nconfigured on the dashboard.\n\nOnly available on Android and iOS.\n\n| Param         | Type                                                                    |\n| ------------- | ----------------------------------------------------------------------- |\n| **`options`** | <code><a href=\"#handledeeplinkoptions\">HandleDeepLinkOptions</a></code> |\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### getSubscriptionStatus()\n\n```typescript\ngetSubscriptionStatus() => Promise<GetSubscriptionStatusResult>\n```\n\nGet the current subscription status.\n\nOnly available on Android and iOS.\n\n**Returns:** <code>Promise&lt;<a href=\"#getsubscriptionstatusresult\">GetSubscriptionStatusResult</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### addListener('superwallEvent', ...)\n\n```typescript\naddListener(eventName: 'superwallEvent', listenerFunc: (event: SuperwallEventInfo) => void) => Promise<PluginListenerHandle>\n```\n\nAdd a listener for Superwall analytics events.\n\nThese events can be forwarded to your analytics platform.\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                                  |\n| ------------------ | ------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'superwallEvent'</code>                                                         |\n| **`listenerFunc`** | <code>(event: <a href=\"#superwalleventinfo\">SuperwallEventInfo</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### addListener('subscriptionStatusDidChange', ...)\n\n```typescript\naddListener(eventName: 'subscriptionStatusDidChange', listenerFunc: (event: SubscriptionStatusDidChangeEvent) => void) => Promise<PluginListenerHandle>\n```\n\nAdd a listener for subscription status changes.\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                                                              |\n| ------------------ | ----------------------------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'subscriptionStatusDidChange'</code>                                                                        |\n| **`listenerFunc`** | <code>(event: <a href=\"#subscriptionstatusdidchangeevent\">SubscriptionStatusDidChangeEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### addListener('paywallPresented', ...)\n\n```typescript\naddListener(eventName: 'paywallPresented', listenerFunc: (event: PaywallPresentedEvent) => void) => Promise<PluginListenerHandle>\n```\n\nAdd a listener for when a paywall is presented.\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                                        |\n| ------------------ | ------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'paywallPresented'</code>                                                             |\n| **`listenerFunc`** | <code>(event: <a href=\"#paywallpresentedevent\">PaywallPresentedEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### addListener('paywallWillDismiss', ...)\n\n```typescript\naddListener(eventName: 'paywallWillDismiss', listenerFunc: (event: PaywallWillDismissEvent) => void) => Promise<PluginListenerHandle>\n```\n\nAdd a listener for when a paywall will dismiss.\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                                            |\n| ------------------ | ----------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'paywallWillDismiss'</code>                                                               |\n| **`listenerFunc`** | <code>(event: <a href=\"#paywallwilldismissevent\">PaywallWillDismissEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### addListener('paywallDismissed', ...)\n\n```typescript\naddListener(eventName: 'paywallDismissed', listenerFunc: (event: PaywallDismissedEvent) => void) => Promise<PluginListenerHandle>\n```\n\nAdd a listener for when a paywall is dismissed.\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                                        |\n| ------------------ | ------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'paywallDismissed'</code>                                                             |\n| **`listenerFunc`** | <code>(event: <a href=\"#paywalldismissedevent\">PaywallDismissedEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### addListener('customPaywallAction', ...)\n\n```typescript\naddListener(eventName: 'customPaywallAction', listenerFunc: (event: CustomPaywallActionEvent) => void) => Promise<PluginListenerHandle>\n```\n\nAdd a listener for custom paywall actions.\n\nTriggered when a user taps an element with the `data-pw-custom` attribute.\n\nOnly available on Android and iOS.\n\n| Param              | Type                                                                                              |\n| ------------------ | ------------------------------------------------------------------------------------------------- |\n| **`eventName`**    | <code>'customPaywallAction'</code>                                                                |\n| **`listenerFunc`** | <code>(event: <a href=\"#custompaywallactionevent\">CustomPaywallActionEvent</a>) =&gt; void</code> |\n\n**Returns:** <code>Promise&lt;<a href=\"#pluginlistenerhandle\">PluginListenerHandle</a>&gt;</code>\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### removeAllListeners()\n\n```typescript\nremoveAllListeners() => Promise<void>\n```\n\nRemove all listeners for this plugin.\n\n**Since:** 0.0.1\n\n--------------------\n\n\n### Interfaces\n\n\n#### ConfigureOptions\n\n| Prop          | Type                                                          | Description                                 | Since |\n| ------------- | ------------------------------------------------------------- | ------------------------------------------- | ----- |\n| **`apiKey`**  | <code>string</code>                                           | The Superwall API key from your dashboard.  | 0.0.1 |\n| **`options`** | <code><a href=\"#superwalloptions\">SuperwallOptions</a></code> | Optional configuration options for the SDK. | 0.0.1 |\n\n\n#### SuperwallOptions\n\n| Prop                                  | Type                                                              | Description                                                                          | Default                                 | Since |\n| ------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------ | --------------------------------------- | ----- |\n| **`paywalls`**                        | <code><a href=\"#paywalloptions\">PaywallOptions</a></code>         | Paywall presentation and behavior options.                                           |                                         | 0.0.1 |\n| **`logging`**                         | <code><a href=\"#loggingoptions\">LoggingOptions</a></code>         | Logging configuration.                                                               |                                         | 0.0.1 |\n| **`networkEnvironment`**              | <code><a href=\"#networkenvironment\">NetworkEnvironment</a></code> | Network environment for API requests.                                                | <code>NetworkEnvironment.Release</code> | 0.0.1 |\n| **`localeIdentifier`**                | <code>string</code>                                               | Override the locale identifier for localization.                                     |                                         | 0.0.1 |\n| **`shouldObservePurchases`**          | <code>boolean</code>                                              | Observe external Google Play purchases. Only available on Android.                   | <code>true</code>                       | 0.0.1 |\n| **`isExternalDataCollectionEnabled`** | <code>boolean</code>                                              | Enable or disable external data collection for analytics. Only available on Android. | <code>true</code>                       | 0.0.1 |\n\n\n#### PaywallOptions\n\n| Prop                                 | Type                 | Description                                           | Default           | Since |\n| ------------------------------------ | -------------------- | ----------------------------------------------------- | ----------------- | ----- |\n| **`isHapticFeedbackEnabled`**        | <code>boolean</code> | Enable haptic feedback on paywall interactions.       | <code>true</code> | 0.0.1 |\n| **`shouldShowPurchaseFailureAlert`** | <code>boolean</code> | Show an alert when purchase restoration fails.        | <code>true</code> | 0.0.1 |\n| **`shouldPreload`**                  | <code>boolean</code> | Preload paywalls during SDK initialization.           | <code>true</code> | 0.0.1 |\n| **`automaticallyDismiss`**           | <code>boolean</code> | Automatically dismiss paywall on purchase or restore. | <code>true</code> | 0.0.1 |\n\n\n#### LoggingOptions\n\n| Prop         | Type                                          | Description                 | Default                     | Since |\n| ------------ | --------------------------------------------- | --------------------------- | --------------------------- | ----- |\n| **`level`**  | <code><a href=\"#loglevel\">LogLevel</a></code> | The log level for SDK logs. | <code>LogLevel.Warn</code>  | 0.0.1 |\n| **`scopes`** | <code>LogScope[]</code>                       | The log scopes to enable.   | <code>[LogScope.All]</code> | 0.0.1 |\n\n\n#### RegisterResult\n\n| Prop         | Type                                                    | Description                             | Since |\n| ------------ | ------------------------------------------------------- | --------------------------------------- | ----- |\n| **`result`** | <code><a href=\"#paywallresult\">PaywallResult</a></code> | The result of the paywall presentation. | 0.0.1 |\n\n\n#### RegisterOptions\n\n| Prop            | Type                                   | Description                                                                                        | Since |\n| --------------- | -------------------------------------- | -------------------------------------------------------------------------------------------------- | ----- |\n| **`placement`** | <code>string</code>                    | The placement identifier configured in the Superwall dashboard.                                    | 0.0.1 |\n| **`params`**    | <code>Record&lt;string, any&gt;</code> | Optional parameters for audience filtering. Keys starting with `$` are reserved for Superwall use. | 0.0.1 |\n\n\n#### GetPresentationResultResult\n\n| Prop             | Type                                                                      | Description                                                                             | Since |\n| ---------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----- |\n| **`type`**       | <code><a href=\"#presentationresulttype\">PresentationResultType</a></code> | The type of presentation result.                                                        | 0.0.1 |\n| **`experiment`** | <code><a href=\"#experiment\">Experiment</a></code>                         | <a href=\"#experiment\">Experiment</a> information if the result is a paywall or holdout. | 0.0.1 |\n\n\n#### Experiment\n\n| Prop          | Type                | Description                               | Since |\n| ------------- | ------------------- | ----------------------------------------- | ----- |\n| **`id`**      | <code>string</code> | The unique identifier for the experiment. | 0.0.1 |\n| **`variant`** | <code>string</code> | The variant assigned to the user.         | 0.0.1 |\n\n\n#### GetPresentationResultOptions\n\n| Prop            | Type                                   | Description                                 | Since |\n| --------------- | -------------------------------------- | ------------------------------------------- | ----- |\n| **`placement`** | <code>string</code>                    | The placement identifier to check.          | 0.0.1 |\n| **`params`**    | <code>Record&lt;string, any&gt;</code> | Optional parameters for audience filtering. | 0.0.1 |\n\n\n#### IdentifyOptions\n\n| Prop          | Type                                                                    | Description                              | Since |\n| ------------- | ----------------------------------------------------------------------- | ---------------------------------------- | ----- |\n| **`userId`**  | <code>string</code>                                                     | The unique user ID to identify the user. | 0.0.1 |\n| **`options`** | <code><a href=\"#identifyoptionsconfig\">IdentifyOptionsConfig</a></code> | Additional options for identification.   | 0.0.1 |\n\n\n#### IdentifyOptionsConfig\n\n| Prop                            | Type                 | Description                                                                                              | Default            | Since |\n| ------------------------------- | -------------------- | -------------------------------------------------------------------------------------------------------- | ------------------ | ----- |\n| **`restorePaywallAssignments`** | <code>boolean</code> | Restore paywall assignments from the server. Set to true when switching accounts to restore assignments. | <code>false</code> | 0.0.1 |\n\n\n#### GetUserIdResult\n\n| Prop         | Type                | Description                                    | Since |\n| ------------ | ------------------- | ---------------------------------------------- | ----- |\n| **`userId`** | <code>string</code> | The current user ID (identified or anonymous). | 0.0.1 |\n\n\n#### GetIsLoggedInResult\n\n| Prop             | Type                 | Description                                 | Since |\n| ---------------- | -------------------- | ------------------------------------------- | ----- |\n| **`isLoggedIn`** | <code>boolean</code> | Whether the user is logged in (identified). | 0.0.1 |\n\n\n#### SetUserAttributesOptions\n\n| Prop             | Type                                   | Description                                                                                                       | Since |\n| ---------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ----- |\n| **`attributes`** | <code>Record&lt;string, any&gt;</code> | User attributes as key-value pairs. Keys starting with `$` are reserved. Set values to null to remove attributes. | 0.0.1 |\n\n\n#### HandleDeepLinkOptions\n\n| Prop      | Type                | Description                  | Since |\n| --------- | ------------------- | ---------------------------- | ----- |\n| **`url`** | <code>string</code> | The deep link URL to handle. | 0.0.1 |\n\n\n#### GetSubscriptionStatusResult\n\n| Prop         | Type                                                              | Description                      | Since |\n| ------------ | ----------------------------------------------------------------- | -------------------------------- | ----- |\n| **`status`** | <code><a href=\"#subscriptionstatus\">SubscriptionStatus</a></code> | The current subscription status. | 0.0.1 |\n\n\n#### PluginListenerHandle\n\n| Prop         | Type                                      |\n| ------------ | ----------------------------------------- |\n| **`remove`** | <code>() =&gt; Promise&lt;void&gt;</code> |\n\n\n#### SuperwallEventInfo\n\n| Prop       | Type                                                              | Description                               | Since |\n| ---------- | ----------------------------------------------------------------- | ----------------------------------------- | ----- |\n| **`type`** | <code><a href=\"#superwalleventtype\">SuperwallEventType</a></code> | The type of Superwall event.              | 0.0.1 |\n| **`data`** | <code>Record&lt;string, any&gt;</code>                            | Additional event data as key-value pairs. | 0.0.1 |\n\n\n#### SubscriptionStatusDidChangeEvent\n\n| Prop         | Type                                                              | Description                  | Since |\n| ------------ | ----------------------------------------------------------------- | ---------------------------- | ----- |\n| **`status`** | <code><a href=\"#subscriptionstatus\">SubscriptionStatus</a></code> | The new subscription status. | 0.0.1 |\n\n\n#### PaywallPresentedEvent\n\n| Prop              | Type                                                | Description                              | Since |\n| ----------------- | --------------------------------------------------- | ---------------------------------------- | ----- |\n| **`paywallInfo`** | <code><a href=\"#paywallinfo\">PaywallInfo</a></code> | Information about the presented paywall. | 0.0.1 |\n\n\n#### PaywallInfo\n\n| Prop             | Type                                              | Description                                                                             | Since |\n| ---------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------- | ----- |\n| **`id`**         | <code>string</code>                               | The unique identifier for the paywall.                                                  | 0.0.1 |\n| **`placement`**  | <code>string</code>                               | The placement identifier.                                                               | 0.0.1 |\n| **`experiment`** | <code><a href=\"#experiment\">Experiment</a></code> | <a href=\"#experiment\">Experiment</a> information if the paywall is part of an A/B test. | 0.0.1 |\n| **`data`**       | <code>Record&lt;string, any&gt;</code>            | Additional paywall metadata.                                                            | 0.0.1 |\n\n\n#### PaywallWillDismissEvent\n\n| Prop              | Type                                                | Description                                    | Since |\n| ----------------- | --------------------------------------------------- | ---------------------------------------------- | ----- |\n| **`paywallInfo`** | <code><a href=\"#paywallinfo\">PaywallInfo</a></code> | Information about the paywall being dismissed. | 0.0.1 |\n\n\n#### PaywallDismissedEvent\n\n| Prop              | Type                                                | Description                              | Since |\n| ----------------- | --------------------------------------------------- | ---------------------------------------- | ----- |\n| **`paywallInfo`** | <code><a href=\"#paywallinfo\">PaywallInfo</a></code> | Information about the dismissed paywall. | 0.0.1 |\n\n\n#### CustomPaywallActionEvent\n\n| Prop       | Type                | Description                    | Since |\n| ---------- | ------------------- | ------------------------------ | ----- |\n| **`name`** | <code>string</code> | The name of the custom action. | 0.0.1 |\n\n\n### Enums\n\n\n#### LogLevel\n\n| Members     | Value                | Description            | Since |\n| ----------- | -------------------- | ---------------------- | ----- |\n| **`Debug`** | <code>'DEBUG'</code> | Debug level logging.   | 0.0.1 |\n| **`Info`**  | <code>'INFO'</code>  | Info level logging.    | 0.0.1 |\n| **`Warn`**  | <code>'WARN'</code>  | Warning level logging. | 0.0.1 |\n| **`Error`** | <code>'ERROR'</code> | Error level logging.   | 0.0.1 |\n\n\n#### LogScope\n\n| Members         | Value                    | Description                 | Since |\n| --------------- | ------------------------ | --------------------------- | ----- |\n| **`All`**       | <code>'ALL'</code>       | All log scopes.             | 0.0.1 |\n| **`Analytics`** | <code>'ANALYTICS'</code> | Analytics related logs.     | 0.0.1 |\n| **`Config`**    | <code>'CONFIG'</code>    | Configuration related logs. | 0.0.1 |\n| **`Events`**    | <code>'EVENTS'</code>    | Event tracking logs.        | 0.0.1 |\n| **`Paywalls`**  | <code>'PAYWALLS'</code>  | Paywall related logs.       | 0.0.1 |\n| **`Purchases`** | <code>'PURCHASES'</code> | Purchase related logs.      | 0.0.1 |\n\n\n#### NetworkEnvironment\n\n| Members         | Value                    | Description                          | Since |\n| --------------- | ------------------------ | ------------------------------------ | ----- |\n| **`Release`**   | <code>'RELEASE'</code>   | Production environment.              | 0.0.1 |\n| **`Developer`** | <code>'DEVELOPER'</code> | Development environment for testing. | 0.0.1 |\n\n\n#### PaywallResult\n\n| Members         | Value                    | Description                 | Since |\n| --------------- | ------------------------ | --------------------------- | ----- |\n| **`Purchased`** | <code>'PURCHASED'</code> | User completed a purchase.  | 0.0.1 |\n| **`Cancelled`** | <code>'CANCELLED'</code> | User cancelled the paywall. | 0.0.1 |\n| **`Restored`**  | <code>'RESTORED'</code>  | User restored purchases.    | 0.0.1 |\n\n\n#### PresentationResultType\n\n| Members                   | Value                                | Description                             | Since |\n| ------------------------- | ------------------------------------ | --------------------------------------- | ----- |\n| **`PlacementNotFound`**   | <code>'PLACEMENT_NOT_FOUND'</code>   | The placement was not found.            | 0.0.1 |\n| **`NoAudienceMatch`**     | <code>'NO_AUDIENCE_MATCH'</code>     | No audience matched for this placement. | 0.0.1 |\n| **`Paywall`**             | <code>'PAYWALL'</code>               | A paywall would be presented.           | 0.0.1 |\n| **`Holdout`**             | <code>'HOLDOUT'</code>               | User is in a holdout group.             | 0.0.1 |\n| **`PaywallNotAvailable`** | <code>'PAYWALL_NOT_AVAILABLE'</code> | Paywall is not available.               | 0.0.1 |\n\n\n#### SubscriptionStatus\n\n| Members        | Value                   | Description                                | Since |\n| -------------- | ----------------------- | ------------------------------------------ | ----- |\n| **`Unknown`**  | <code>'UNKNOWN'</code>  | Subscription status is unknown.            | 0.0.1 |\n| **`Active`**   | <code>'ACTIVE'</code>   | User has an active subscription.           | 0.0.1 |\n| **`Inactive`** | <code>'INACTIVE'</code> | User does not have an active subscription. | 0.0.1 |\n\n\n#### SuperwallEventType\n\n| Members                           | Value                                         | Description                  | Since |\n| --------------------------------- | --------------------------------------------- | ---------------------------- | ----- |\n| **`FirstSeen`**                   | <code>'FIRST_SEEN'</code>                     | First time user is seen.     | 0.0.1 |\n| **`AppOpen`**                     | <code>'APP_OPEN'</code>                       | App was opened.              | 0.0.1 |\n| **`AppLaunch`**                   | <code>'APP_LAUNCH'</code>                     | App was launched.            | 0.0.1 |\n| **`AppClose`**                    | <code>'APP_CLOSE'</code>                      | App was closed.              | 0.0.1 |\n| **`SessionStart`**                | <code>'SESSION_START'</code>                  | Session started.             | 0.0.1 |\n| **`DeepLink`**                    | <code>'DEEP_LINK'</code>                      | Deep link was opened.        | 0.0.1 |\n| **`TriggerFire`**                 | <code>'TRIGGER_FIRE'</code>                   | Trigger was fired.           | 0.0.1 |\n| **`PaywallOpen`**                 | <code>'PAYWALL_OPEN'</code>                   | Paywall was opened.          | 0.0.1 |\n| **`PaywallClose`**                | <code>'PAYWALL_CLOSE'</code>                  | Paywall was closed.          | 0.0.1 |\n| **`PaywallDecline`**              | <code>'PAYWALL_DECLINE'</code>                | Paywall was declined.        | 0.0.1 |\n| **`TransactionStart`**            | <code>'TRANSACTION_START'</code>              | Transaction started.         | 0.0.1 |\n| **`TransactionComplete`**         | <code>'TRANSACTION_COMPLETE'</code>           | Transaction completed.       | 0.0.1 |\n| **`TransactionFail`**             | <code>'TRANSACTION_FAIL'</code>               | Transaction failed.          | 0.0.1 |\n| **`TransactionAbandon`**          | <code>'TRANSACTION_ABANDON'</code>            | Transaction was abandoned.   | 0.0.1 |\n| **`TransactionRestore`**          | <code>'TRANSACTION_RESTORE'</code>            | Transaction restore.         | 0.0.1 |\n| **`TransactionTimeout`**          | <code>'TRANSACTION_TIMEOUT'</code>            | Transaction timeout.         | 0.0.1 |\n| **`SubscriptionStart`**           | <code>'SUBSCRIPTION_START'</code>             | Subscription started.        | 0.0.1 |\n| **`FreeTrialStart`**              | <code>'FREE_TRIAL_START'</code>               | Free trial started.          | 0.0.1 |\n| **`SubscriptionStatusDidChange`** | <code>'SUBSCRIPTION_STATUS_DID_CHANGE'</code> | Subscription status changed. | 0.0.1 |\n\n</docgen-api>\n\n## FAQ\n\n### Which platforms are supported by this plugin?\n\nThe plugin supports Android and iOS. There is no Web implementation, since the Superwall SDK targets native mobile apps.\n\n### Do I need to call `configure` before using other methods?\n\nYes, `configure(...)` must be called once with the Superwall API key from your dashboard before all other methods. You can optionally pass configuration options for paywall behavior, logging, and the network environment.\n\n### What is the difference between `register` and `getPresentationResult`?\n\nThe `register(...)` method registers a placement and actually presents a paywall if the user doesn't have an active subscription. The `getPresentationResult(...)` method only checks whether a paywall would be presented for a placement without presenting it, which is useful for deciding whether to show a feature or a paywall before the user interacts.\n\n### When should I call `reset`?\n\nCall `reset()` only on explicit logout. It rotates the anonymous user ID, clears local paywall assignments, and requires the SDK to re-download its configuration. To identify a new user afterwards, use `identify(...)`.\n\n### How do I forward Superwall events to my analytics platform?\n\nAdd a listener for the `superwallEvent` event. It emits Superwall analytics events such as paywall opens, transactions, and subscription starts, together with additional event data that you can pass to your analytics platform. See [Listen for events](#listen-for-events) above for an example.\n\n### Is this an official Superwall plugin?\n\nNo, this is an unofficial Capacitor plugin for the Superwall SDK maintained by Capawesome. It is not affiliated with, endorsed by, or sponsored by the makers of Superwall.\n\n### Can I use this plugin with Ionic, React, Vue or Angular?\n\nYes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.\n\n## Related Plugins\n\n- [App Review](https://capawesome.io/docs/sdks/capacitor/app-review/): Let users submit app store reviews and ratings.\n- [PostHog](https://capawesome.io/docs/sdks/capacitor/posthog/): Track events and analyze user behavior with PostHog.\n- [Purchases](https://capawesome.io/docs/sdks/capacitor/purchases/): Support in-app purchases in your Capacitor app.\n\n## Newsletter\n\nStay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).\n\n## Changelog\n\nSee [CHANGELOG.md](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/superwall/CHANGELOG.md).\n\n## License\n\nSee [LICENSE](https://github.com/capawesome-team/capacitor-plugins/blob/main/packages/superwall/LICENSE).\n\n[^1]: This project is not affiliated with, endorsed by, sponsored by, or approved by Nest 22, Inc. or any of their affiliates or subsidiaries.\n","readmeFilename":"README.md"}