@allanfsouza/aether-sdk 2.7.0 → 2.8.0
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/dist/push.d.ts +15 -1
- package/dist/push.d.ts.map +1 -1
- package/dist/push.js +21 -3
- package/dist/push.js.map +1 -1
- package/package.json +1 -1
- package/src/push.ts +36 -6
package/dist/push.d.ts
CHANGED
|
@@ -4,7 +4,15 @@ export type PushPlatform = "android" | "ios" | "web";
|
|
|
4
4
|
export type PushEnvironment = "dev" | "staging" | "prod";
|
|
5
5
|
export interface RegisterDeviceParams {
|
|
6
6
|
platform: PushPlatform;
|
|
7
|
-
token
|
|
7
|
+
/** FCM token (para mobile) */
|
|
8
|
+
token?: string;
|
|
9
|
+
/** Web Push endpoint (para web) */
|
|
10
|
+
endpoint?: string;
|
|
11
|
+
/** Web Push keys (para web) */
|
|
12
|
+
keys?: {
|
|
13
|
+
p256dh: string;
|
|
14
|
+
auth: string;
|
|
15
|
+
};
|
|
8
16
|
environment?: PushEnvironment;
|
|
9
17
|
}
|
|
10
18
|
export interface PushDevice {
|
|
@@ -57,6 +65,12 @@ export declare class PushModule {
|
|
|
57
65
|
private client;
|
|
58
66
|
private http;
|
|
59
67
|
constructor(client: PlataformaClient, http: AxiosInstance);
|
|
68
|
+
/**
|
|
69
|
+
* Obtém a chave pública VAPID para Web Push.
|
|
70
|
+
*/
|
|
71
|
+
getVapidKey(): Promise<{
|
|
72
|
+
publicKey: string;
|
|
73
|
+
}>;
|
|
60
74
|
/**
|
|
61
75
|
* Registra um dispositivo para receber push notifications.
|
|
62
76
|
* Suporta FCM (mobile) e Web Push (browser).
|
package/dist/push.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGnD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AACrD,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
|
package/dist/push.js
CHANGED
|
@@ -11,17 +11,35 @@ export class PushModule {
|
|
|
11
11
|
this.client = client;
|
|
12
12
|
this.http = http;
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Obtém a chave pública VAPID para Web Push.
|
|
16
|
+
*/
|
|
17
|
+
async getVapidKey() {
|
|
18
|
+
const projectId = this.client.projectId;
|
|
19
|
+
const { data } = await this.http.get(`/projects/${projectId}/push/vapid-key`);
|
|
20
|
+
return data;
|
|
21
|
+
}
|
|
14
22
|
/**
|
|
15
23
|
* Registra um dispositivo para receber push notifications.
|
|
16
24
|
* Suporta FCM (mobile) e Web Push (browser).
|
|
17
25
|
*/
|
|
18
26
|
async registerDevice(params) {
|
|
19
27
|
const projectId = this.client.projectId;
|
|
20
|
-
|
|
28
|
+
// Monta o body baseado no tipo de device
|
|
29
|
+
const body = {
|
|
21
30
|
platform: params.platform,
|
|
22
|
-
token: params.token,
|
|
23
31
|
environment: params.environment ?? "prod",
|
|
24
|
-
}
|
|
32
|
+
};
|
|
33
|
+
// FCM (mobile)
|
|
34
|
+
if (params.token) {
|
|
35
|
+
body.token = params.token;
|
|
36
|
+
}
|
|
37
|
+
// Web Push (browser)
|
|
38
|
+
if (params.endpoint) {
|
|
39
|
+
body.endpoint = params.endpoint;
|
|
40
|
+
body.keys = params.keys;
|
|
41
|
+
}
|
|
42
|
+
const { data } = await this.http.post(cleanUrl(routes.push.devices.build(projectId)), body);
|
|
25
43
|
return data.data;
|
|
26
44
|
}
|
|
27
45
|
async sendToToken(params) {
|
package/dist/push.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/push.ts
CHANGED
|
@@ -8,7 +8,15 @@ export type PushEnvironment = "dev" | "staging" | "prod";
|
|
|
8
8
|
|
|
9
9
|
export interface RegisterDeviceParams {
|
|
10
10
|
platform: PushPlatform;
|
|
11
|
-
token
|
|
11
|
+
/** FCM token (para mobile) */
|
|
12
|
+
token?: string;
|
|
13
|
+
/** Web Push endpoint (para web) */
|
|
14
|
+
endpoint?: string;
|
|
15
|
+
/** Web Push keys (para web) */
|
|
16
|
+
keys?: {
|
|
17
|
+
p256dh: string;
|
|
18
|
+
auth: string;
|
|
19
|
+
};
|
|
12
20
|
environment?: PushEnvironment;
|
|
13
21
|
}
|
|
14
22
|
|
|
@@ -79,6 +87,15 @@ export class PushModule {
|
|
|
79
87
|
private http: AxiosInstance
|
|
80
88
|
) { }
|
|
81
89
|
|
|
90
|
+
/**
|
|
91
|
+
* Obtém a chave pública VAPID para Web Push.
|
|
92
|
+
*/
|
|
93
|
+
async getVapidKey(): Promise<{ publicKey: string }> {
|
|
94
|
+
const projectId = this.client.projectId;
|
|
95
|
+
const { data } = await this.http.get<{ publicKey: string }>(`/projects/${projectId}/push/vapid-key`);
|
|
96
|
+
return data;
|
|
97
|
+
}
|
|
98
|
+
|
|
82
99
|
/**
|
|
83
100
|
* Registra um dispositivo para receber push notifications.
|
|
84
101
|
* Suporta FCM (mobile) e Web Push (browser).
|
|
@@ -86,13 +103,26 @@ export class PushModule {
|
|
|
86
103
|
async registerDevice(params: RegisterDeviceParams): Promise<PushDevice> {
|
|
87
104
|
const projectId = this.client.projectId;
|
|
88
105
|
|
|
106
|
+
// Monta o body baseado no tipo de device
|
|
107
|
+
const body: Record<string, any> = {
|
|
108
|
+
platform: params.platform,
|
|
109
|
+
environment: params.environment ?? "prod",
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// FCM (mobile)
|
|
113
|
+
if (params.token) {
|
|
114
|
+
body.token = params.token;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
// Web Push (browser)
|
|
118
|
+
if (params.endpoint) {
|
|
119
|
+
body.endpoint = params.endpoint;
|
|
120
|
+
body.keys = params.keys;
|
|
121
|
+
}
|
|
122
|
+
|
|
89
123
|
const { data } = await this.http.post<RegisterDeviceResponse>(
|
|
90
124
|
cleanUrl(routes.push.devices.build(projectId)),
|
|
91
|
-
|
|
92
|
-
platform: params.platform,
|
|
93
|
-
token: params.token,
|
|
94
|
-
environment: params.environment ?? "prod",
|
|
95
|
-
}
|
|
125
|
+
body
|
|
96
126
|
);
|
|
97
127
|
|
|
98
128
|
return data.data;
|