Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
1f408f4
feat(examples): add Capacitor demo app with docs
fadi-george Apr 3, 2026
5f31331
chore(examples): remove demo HTML file
fadi-george Apr 3, 2026
555b079
fix(build): correct podspec filename casing
fadi-george Apr 3, 2026
718a8e2
chore(examples): upgrade Android/iOS dependencies
fadi-george Apr 3, 2026
4ca582c
chore(examples): add iOS entitlements for push notifications
fadi-george Apr 3, 2026
78305f1
docs(examples): update build docs and fix typos
fadi-george Apr 3, 2026
c7faf32
chore(examples): add location permissions and Kotlin
fadi-george Apr 3, 2026
54045a3
docs(examples): update icon generation to use @capacitor/assets
fadi-george Apr 3, 2026
2653d34
fix(ios): improve type safety and null handling
fadi-george Apr 3, 2026
9c2cb65
fix(android): migrate to OneSignal 5.x API patterns
fadi-george Apr 3, 2026
16ca754
feat(examples): rebuild demo app with modern UI
fadi-george Apr 3, 2026
c7cf0cb
feat(ios): add OneSignal notification service extension
fadi-george Apr 3, 2026
ab8aac3
feat(examples): add vine boom sound effect
fadi-george Apr 3, 2026
88405d3
fix(examples): increase modal z-index to 50
fadi-george Apr 3, 2026
e9c3d40
refactor: replace deprecated hasPermission with async
fadi-george Apr 3, 2026
3806a76
refactor(examples): fix remove duplicate email/sms for demo
fadi-george Apr 3, 2026
4937660
feat(examples): add iOS location permissions
fadi-george Apr 3, 2026
94f7b91
feat(examples): add iOS Live Activities widget support
fadi-george Apr 3, 2026
ed99da2
feat(examples): add CocoaPods support for OneSignalWidgetExtension
fadi-george Apr 3, 2026
d176204
feat(examples): add API key config for live activities
fadi-george Apr 3, 2026
8c0f8b6
refactor(examples): rename "Activity" to "Screen"
fadi-george Apr 3, 2026
bc79a4f
refactor(ios): simplify in-app message event data
fadi-george Apr 3, 2026
6fdcb3e
refactor(ios): extract notification click event handling
fadi-george Apr 3, 2026
d292521
feat(examples): add iOS platform check and notification demo
fadi-george Apr 3, 2026
53d1aad
fix(android): handle null strings in object parsing
fadi-george Apr 3, 2026
6b908ec
refactor(examples): remove StatusBar setup code
fadi-george Apr 4, 2026
3e37ba2
chore(examples): add VSCode config for oxc formatting
fadi-george Apr 4, 2026
cd3260c
refactor(examples): remove Keyboard setup code
fadi-george Apr 4, 2026
1e26465
feat(examples): add keyboard handling and status bar
fadi-george Apr 4, 2026
d7a2e40
feat(examples): implement edge-to-edge display for Android 15+
fadi-george Apr 4, 2026
152f23c
feat(android): add nested JSON support for event properties
fadi-george Apr 4, 2026
58fe694
chore(examples): remove Android adaptive icons
fadi-george Apr 4, 2026
eaa1aaa
chore(examples): fix lint warnings and scope
fadi-george Apr 6, 2026
208ed40
refactor(examples): rename demo to demo_pods
fadi-george Apr 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/create-release-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,8 @@ jobs:
exit 1
fi

sed -i '' "s/s\.dependency 'OneSignalXCFramework', '[^']*'/s.dependency 'OneSignalXCFramework', '$VERSION'/" OneSignalCapacitorPlugin.podspec
echo "✓ Updated OneSignalCapacitorPlugin.podspec with iOS SDK ${VERSION}"
sed -i '' "s/s\.dependency 'OneSignalXCFramework', '[^']*'/s.dependency 'OneSignalXCFramework', '$VERSION'/" OnesignalCapacitorPlugin.podspec
echo "✓ Updated OnesignalCapacitorPlugin.podspec with iOS SDK ${VERSION}"

# Only commit if there are changes
git add -A
Expand Down
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,23 @@ local.properties
*.apk
*.dex
*.class

# Secrets
.env

# Examples
examples/*/node_modules
examples/*/bun.lock
examples/*/dist
examples/*/android/app/build
examples/*/android/app/.cxx
examples/*/android/.gradle
examples/*/android/.idea
examples/*/android/build
examples/*/android/local.properties
examples/*/android/capacitor.build.gradle
examples/*/ios/App/Pods
examples/*/ios/App/Podfile.lock
examples/*/ios/App/App.xcworkspace/xcshareddata
examples/*/ios/App/App.xcworkspace/xcuserdata
examples/*/ios/App/DerivedData
3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["redhat.vscode-yaml", "VoidZero.vite-plus-extension-pack"]
}
9 changes: 9 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"editor.defaultFormatter": "oxc.oxc-vscode",
"oxc.fmt.configPath": "./vite.config.ts",
"editor.formatOnSave": true,
"editor.formatOnSaveMode": "file",
"editor.codeActionsOnSave": {
"source.fixAll.oxc": "explicit"
}
}
76 changes: 76 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<!--VITE PLUS START-->

# Using Vite+, the Unified Toolchain for the Web

This project is using Vite+, a unified toolchain built on top of Vite, Rolldown, Vitest, tsdown, Oxlint, Oxfmt, and Vite Task. Vite+ wraps runtime management, package management, and frontend tooling in a single global CLI called `vp`. Vite+ is distinct from Vite, but it invokes Vite through `vp dev` and `vp build`.

## Vite+ Workflow

`vp` is a global binary that handles the full development lifecycle. Run `vp help` to print a list of commands and `vp <command> --help` for information about a specific command.

### Start

- create - Create a new project from a template
- migrate - Migrate an existing project to Vite+
- config - Configure hooks and agent integration
- staged - Run linters on staged files
- install (`i`) - Install dependencies
- env - Manage Node.js versions

### Develop

- dev - Run the development server
- check - Run format, lint, and TypeScript type checks
- lint - Lint code
- fmt - Format code
- test - Run tests

### Execute

- run - Run monorepo tasks
- exec - Execute a command from local `node_modules/.bin`
- dlx - Execute a package binary without installing it as a dependency
- cache - Manage the task cache

### Build

- build - Build for production
- pack - Build libraries
- preview - Preview production build

### Manage Dependencies

Vite+ automatically detects and wraps the underlying package manager such as pnpm, npm, or Yarn through the `packageManager` field in `package.json` or package manager-specific lockfiles.

- add - Add packages to dependencies
- remove (`rm`, `un`, `uninstall`) - Remove packages from dependencies
- update (`up`) - Update packages to latest versions
- dedupe - Deduplicate dependencies
- outdated - Check for outdated packages
- list (`ls`) - List installed packages
- why (`explain`) - Show why a package is installed
- info (`view`, `show`) - View package information from the registry
- link (`ln`) / unlink - Manage local package links
- pm - Forward a command to the package manager

### Maintain

- upgrade - Update `vp` itself to the latest version

These commands map to their corresponding tools. For example, `vp dev --port 3000` runs Vite's dev server and works the same as Vite. `vp test` runs JavaScript tests through the bundled Vitest. The version of all tools can be checked using `vp --version`. This is useful when researching documentation, features, and bugs.

## Common Pitfalls

- **Using the package manager directly:** Do not use pnpm, npm, or Yarn directly. Vite+ can handle all package manager operations.
- **Always use Vite commands to run tools:** Don't attempt to run `vp vitest` or `vp oxlint`. They do not exist. Use `vp test` and `vp lint` instead.
- **Running scripts:** Vite+ commands take precedence over `package.json` scripts. If there is a `test` script defined in `scripts` that conflicts with the built-in `vp test` command, run it using `vp run test`.
- **Do not install Vitest, Oxlint, Oxfmt, or tsdown directly:** Vite+ wraps these tools. They must not be installed directly. You cannot upgrade these tools by installing their latest versions. Always use Vite+ commands.
- **Use Vite+ wrappers for one-off binaries:** Use `vp dlx` instead of package-manager-specific `dlx`/`npx` commands.
- **Import JavaScript modules from `vite-plus`:** Instead of importing from `vite` or `vitest`, all modules should be imported from the project's `vite-plus` dependency. For example, `import { defineConfig } from 'vite-plus';` or `import { expect, test, vi } from 'vite-plus/test';`. You must not install `vitest` to import test utilities.
- **Type-Aware Linting:** There is no need to install `oxlint-tsgolint`, `vp lint --type-aware` works out of the box.

## Review Checklist for Agents

- [ ] Run `vp install` after pulling remote changes and before getting started.
- [ ] Run `vp check` and `vp test` to validate changes.
<!--VITE PLUS END-->
1 change: 1 addition & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @OneSignal/eng-sdk-platform
2 changes: 1 addition & 1 deletion OneSignalCapacitorPlugin.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ require 'json'
package = JSON.parse(File.read(File.join(__dir__, 'package.json')))

Pod::Spec.new do |s|
s.name = 'OneSignalCapacitorPlugin'
s.name = 'OnesignalCapacitorPlugin'
s.version = package['version']
s.summary = 'OneSignal Push Notifications Capacitor Plugin'
s.license = package['license']
Expand Down
Loading
Loading