pushwave-client 0.3.1 → 0.3.3

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ![PushWave flow](docs/assets/flow.png)
2
2
  # pushwave-client (alpha)
3
3
 
4
- PushWave is a lightweight Expo-first SDK to get push notifications running without building your own backend or wrestling with native setup. It fetches the Expo push token and prepares app attestation (Android Play Integrity / iOS DeviceCheck) so you can secure delivery. The SaaS dashboard (scheduling, targeting, templates, cron-like sends) is coming soon. **Consider this an early-stage project**.
4
+ PushWave is a lightweight Expo-first SDK to get push notifications running without building your own backend or wrestling with native setup. It fetches the Expo push token and prepares app attestation (Android Play Integrity / iOS DeviceCheck) so you can secure delivery. The SaaS dashboard is now live at https://pushwave.dev/—log in to create audiences, templates, and scheduled sends. **Consider this an early-stage project**.
5
5
 
6
6
  ---
7
7
 
@@ -9,9 +9,9 @@ PushWave is a lightweight Expo-first SDK to get push notifications running witho
9
9
 
10
10
  - **No backend needed**: token storage, targeting logic, scheduling, and sending are all handled by PushWave’s cloud. Forget cron jobs and custom endpoints.
11
11
  - **Expo-first design**: auto-linking, config plugin, no manual Gradle/Pod edits. Works seamlessly with EAS Build and Expo Dev Clients. Compatible with Expo Router.
12
- - **Native attestation (roadmap)**: Play Integrity on Android + DeviceCheck on iOS to reduce spoofed APKs, fake tokens, and leaked API keys.
12
+ - **Native attestation**: Play Integrity on Android + DeviceCheck on iOS to reduce spoofed APKs, fake tokens, and leaked API keys. Server-side validation is live.
13
13
  - **One-line setup**: `PushWaveClient.init({ apiKey })` retrieves the Expo token, performs attestation when required, and logs enhanced debug info under `__DEV__`.
14
- - **Dashboard-first workflow (roadmap)**: audiences, groups, segments, templates, one-off or recurring pushes without touching Firebase or APNs directly.
14
+ - **Dashboard-first workflow**: audiences, groups, segments, templates, one-off or recurring pushes without touching Firebase or APNs directly (available at https://pushwave.dev/).
15
15
  - **Minimal external config**: for Android you still upload your FCM credentials to Expo (required by the platform), but PushWave handles the rest.
16
16
 
17
17
  ---
@@ -68,6 +68,13 @@ export default function App() {
68
68
 
69
69
  ---
70
70
 
71
+ ## Dashboard
72
+
73
+ - The PushWave dashboard is live: go to https://pushwave.dev/ and log in to manage audiences, templates, one-off sends, and scheduled campaigns.
74
+ - The SDK handles token collection and attaches attestation data so your dashboard campaigns can target real devices.
75
+
76
+ ---
77
+
71
78
  ## Notifications (expo-notifications)
72
79
 
73
80
  - The SDK retrieves the user’s Expo push token. If the user denies notification permission, no push will be delivered and the token may not be available depending on platform/permission.
@@ -77,12 +84,12 @@ export default function App() {
77
84
 
78
85
  ---
79
86
 
80
- ## Attestation (current status)
87
+ ## Attestation
81
88
 
82
- - Backend validation is not live yet; it will arrive with the PushWave SaaS.
83
- - Android (Play Integrity): will require a build distributed via the Play Store (internal/closed track) with Play App Signing + Play Integrity API enabled. No support for Expo Go / sideload.
84
- - iOS (DeviceCheck): will require a real build (dev client or TestFlight), not Expo Go.
85
- - For now, consider attestation non-blocking (the SDK may return a `disabled` flag until the SaaS is active).
89
+ - Backend validation is live: integrity tokens are checked server-side when attestation is enabled for your project.
90
+ - Android (Play Integrity): requires a build distributed via the Play Store (internal/closed track) with Play App Signing + Play Integrity API enabled. No support for Expo Go / sideload.
91
+ - iOS (DeviceCheck): requires a real build (dev client or TestFlight), not Expo Go.
92
+ - Attestation can be toggled per project in the dashboard; if off, the SDK may return a `disabled` flag.
86
93
 
87
94
  ---
88
95
 
@@ -101,9 +108,4 @@ export default function App() {
101
108
 
102
109
  ---
103
110
 
104
- ## Roadmap (with SaaS)
105
-
106
- - Server-side validation of Play Integrity / DeviceCheck tokens.
107
- - Full attestation docs and Play Store setup (enable Integrity API, internal track).
108
- - Dashboard for targeting, templates, scheduling (one-off and cron-like).
109
- - Complete registration flow with the PushWave backend.
111
+ *Roadmap is no longer tracked in this README; check the dashboard or docs for current feature status.*
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchApiPost = fetchApiPost;
4
4
  exports.fetchApiGet = fetchApiGet;
5
- const BASE_URL = "https://pushwave.luruk-hai.fr/v1/";
5
+ const BASE_URL = "https://api.pushwave.dev/v1/public/";
6
6
  async function fetchApiPost(path, data = {}) {
7
7
  const url = BASE_URL + path;
8
8
  const res = await fetch(url, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pushwave-client",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "PushWave Client, Expo Push Notifications SaaS SDK",
5
5
  "homepage": "https://github.com/luruk-hai/pushwave-client#readme",
6
6
  "bugs": {
@@ -1,11 +1,10 @@
1
- import { fetchApiPost, fetchApiGet } from "../utils/fetch";
1
+ import { fetchApiPost } from "../utils/fetch";
2
2
  import { getExpoToken } from "../utils/expoToken";
3
3
  import { Platform } from "react-native";
4
4
  import { PWLogger } from "../utils/pwLogger";
5
5
  import { isSecretKey } from "../utils/apiKeyCheck";
6
6
  import { RegisterPushWaveClient, RegisterPushWaveDTO, RegisterPushWaveResponse } from "./registerPushWave.dto";
7
7
  import { getApplicationAttestation } from "../attestation/index";
8
- import { platform } from "os";
9
8
 
10
9
  export async function registerPushWave(
11
10
  { apiKey }: RegisterPushWaveClient
@@ -1,4 +1,4 @@
1
- const BASE_URL = "https://api.pushwave.dev/v1/";
1
+ const BASE_URL = "https://api.pushwave.dev/v1/public/";
2
2
 
3
3
  export async function fetchApiPost<TResponse>(
4
4
  path: string,