@allanfsouza/aether-sdk 2.6.1 → 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/index.d.ts CHANGED
@@ -83,7 +83,7 @@ export declare class PlataformaClient {
83
83
  }
84
84
  export { AetherError } from "./errors.js";
85
85
  export type { ListOptions } from "./database.js";
86
- export type { PushPlatform, PushEnvironment, PushDevice, RegisterDeviceParams, SendPushResponse, PushStatus, PushLogEntry, ListPushLogsOptions, PushStats, PushTrigger, PushTriggerEvent, PushTriggerCondition, CreatePushTriggerParams, } from "./push.js";
86
+ export type { PushPlatform, PushEnvironment, PushDevice, RegisterDeviceParams, SendPushResponse, PushStatus, PushLogEntry, ListPushLogsOptions, PushStats, PushTrigger, PushTriggerEvent, PushTriggerCondition, CreatePushTriggerParams, LookupFieldConfig, } from "./push.js";
87
87
  export type { TenantUser, TenantLoginResponse, TenantRegisterCredentials, TenantLoginCredentials, } from "./tenant-auth.js";
88
88
  export type { ChatOptions, ChatMetadata, AskResponse, Conversation, Message, FeedbackType, SemanticSearchOptions, SemanticSearchResult, GenerateOptions, RetrievedSource, UsageInfo, PersonaConfig, } from "./ai.js";
89
89
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAaF,qBAAa,gBAAgB;IAUpB,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,EAAE,EAAE,QAAQ,CAAC;IAGb,QAAQ,EAAE,cAAc,CAAC;IAEzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,IAAI,EAAE,aAAa,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAU;gBAErB,MAAM,EAAE,YAAY;IA2ChC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAYpC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU3C;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAWhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAUtC;;OAEG;IACH,OAAO,IAAI,UAAU,GAAG,IAAI;IAmB5B;;;OAGG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAUxB;AASD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,SAAS,EAET,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EAIhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IAEzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAaF,qBAAa,gBAAgB;IAUpB,EAAE,EAAE,cAAc,CAAC;IACnB,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,eAAe,CAAC;IAC3B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,EAAE,EAAE,QAAQ,CAAC;IAGb,QAAQ,EAAE,cAAc,CAAC;IAEzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEpC,IAAI,EAAE,aAAa,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,eAAe,CAAU;gBAErB,MAAM,EAAE,YAAY;IA2ChC;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAYpC;;OAEG;IACH,QAAQ,IAAI,MAAM,GAAG,IAAI;IAQzB;;;OAGG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAU3C;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI;IAWhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAUtC;;OAEG;IACH,OAAO,IAAI,UAAU,GAAG,IAAI;IAmB5B;;;OAGG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,UAAU,IAAI,OAAO;IAIrB;;;OAGG;IACH,OAAO,CAAC,eAAe;CAUxB;AASD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EACV,YAAY,EACZ,eAAe,EACf,UAAU,EACV,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,mBAAmB,EACnB,SAAS,EAET,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EAEvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,GACd,MAAM,SAAS,CAAC"}
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: string;
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).
@@ -129,6 +143,26 @@ export interface PushTriggerCondition {
129
143
  lt?: number;
130
144
  lte?: number;
131
145
  }
146
+ /**
147
+ * Configuração de lookup de FK para resolver campos de documentos relacionados.
148
+ * Permite que targetUserField e templates referenciem campos de outras collections.
149
+ *
150
+ * @example
151
+ * // Buscar clientId do ticket quando uma mensagem é criada:
152
+ * {
153
+ * collection: "tickets",
154
+ * foreignKey: "ticketId",
155
+ * fields: ["clientId", "agentId", "title"]
156
+ * }
157
+ */
158
+ export interface LookupFieldConfig {
159
+ /** Nome da collection relacionada a buscar */
160
+ collection: string;
161
+ /** Campo no documento atual que é a foreign key */
162
+ foreignKey: string;
163
+ /** Campos a extrair do documento relacionado */
164
+ fields: string[];
165
+ }
132
166
  export interface PushTrigger {
133
167
  id: string;
134
168
  projectId: string;
@@ -137,6 +171,7 @@ export interface PushTrigger {
137
171
  collectionName: string;
138
172
  event: PushTriggerEvent;
139
173
  conditions: Record<string, PushTriggerCondition>;
174
+ lookupFields: Record<string, LookupFieldConfig>;
140
175
  targetUserField: string;
141
176
  titleTemplate: string;
142
177
  bodyTemplate: string;
@@ -159,11 +194,26 @@ export interface CreatePushTriggerParams {
159
194
  event: PushTriggerEvent;
160
195
  /** Condições para ativar (ex: { status: { equals: "resolved" } }) */
161
196
  conditions?: Record<string, PushTriggerCondition>;
162
- /** Campo do documento que contém o userId de destino */
197
+ /**
198
+ * Lookups de FK para resolver campos de documentos relacionados.
199
+ * Permite usar targetUserField como "ticket.clientId" e templates como "{{ticket.title}}".
200
+ *
201
+ * @example
202
+ * // Para notificar o clientId do ticket quando uma mensagem é criada:
203
+ * {
204
+ * ticket: {
205
+ * collection: "tickets",
206
+ * foreignKey: "ticketId",
207
+ * fields: ["clientId", "agentId", "title"]
208
+ * }
209
+ * }
210
+ */
211
+ lookupFields?: Record<string, LookupFieldConfig>;
212
+ /** Campo do documento que contém o userId de destino (suporta dot notation: "ticket.clientId") */
163
213
  targetUserField: string;
164
- /** Template do título (suporta {{placeholders}}) */
214
+ /** Template do título (suporta {{placeholders}} incluindo campos de lookups) */
165
215
  titleTemplate: string;
166
- /** Template do corpo (suporta {{placeholders}}) */
216
+ /** Template do corpo (suporta {{placeholders}} incluindo campos de lookups) */
167
217
  bodyTemplate: string;
168
218
  /** Dados extras para a notificação */
169
219
  dataTemplate?: Record<string, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
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
- const { data } = await this.http.post(cleanUrl(routes.push.devices.build(projectId)), {
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":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allanfsouza/aether-sdk",
3
- "version": "2.6.1",
3
+ "version": "2.8.0",
4
4
  "description": "SDK do Cliente para a Plataforma Aether",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -285,11 +285,13 @@ export type {
285
285
  PushLogEntry,
286
286
  ListPushLogsOptions,
287
287
  PushStats,
288
- // Push Triggers (v2.6.0)
288
+ // Push Triggers (v2.6.0+)
289
289
  PushTrigger,
290
290
  PushTriggerEvent,
291
291
  PushTriggerCondition,
292
292
  CreatePushTriggerParams,
293
+ // FK Lookup (v2.7.0)
294
+ LookupFieldConfig,
293
295
  } from "./push.js";
294
296
  export type {
295
297
  TenantUser,
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: string;
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;
@@ -274,6 +304,27 @@ export interface PushTriggerCondition {
274
304
  lte?: number;
275
305
  }
276
306
 
307
+ /**
308
+ * Configuração de lookup de FK para resolver campos de documentos relacionados.
309
+ * Permite que targetUserField e templates referenciem campos de outras collections.
310
+ *
311
+ * @example
312
+ * // Buscar clientId do ticket quando uma mensagem é criada:
313
+ * {
314
+ * collection: "tickets",
315
+ * foreignKey: "ticketId",
316
+ * fields: ["clientId", "agentId", "title"]
317
+ * }
318
+ */
319
+ export interface LookupFieldConfig {
320
+ /** Nome da collection relacionada a buscar */
321
+ collection: string;
322
+ /** Campo no documento atual que é a foreign key */
323
+ foreignKey: string;
324
+ /** Campos a extrair do documento relacionado */
325
+ fields: string[];
326
+ }
327
+
277
328
  export interface PushTrigger {
278
329
  id: string;
279
330
  projectId: string;
@@ -282,6 +333,7 @@ export interface PushTrigger {
282
333
  collectionName: string;
283
334
  event: PushTriggerEvent;
284
335
  conditions: Record<string, PushTriggerCondition>;
336
+ lookupFields: Record<string, LookupFieldConfig>;
285
337
  targetUserField: string;
286
338
  titleTemplate: string;
287
339
  bodyTemplate: string;
@@ -305,11 +357,26 @@ export interface CreatePushTriggerParams {
305
357
  event: PushTriggerEvent;
306
358
  /** Condições para ativar (ex: { status: { equals: "resolved" } }) */
307
359
  conditions?: Record<string, PushTriggerCondition>;
308
- /** Campo do documento que contém o userId de destino */
360
+ /**
361
+ * Lookups de FK para resolver campos de documentos relacionados.
362
+ * Permite usar targetUserField como "ticket.clientId" e templates como "{{ticket.title}}".
363
+ *
364
+ * @example
365
+ * // Para notificar o clientId do ticket quando uma mensagem é criada:
366
+ * {
367
+ * ticket: {
368
+ * collection: "tickets",
369
+ * foreignKey: "ticketId",
370
+ * fields: ["clientId", "agentId", "title"]
371
+ * }
372
+ * }
373
+ */
374
+ lookupFields?: Record<string, LookupFieldConfig>;
375
+ /** Campo do documento que contém o userId de destino (suporta dot notation: "ticket.clientId") */
309
376
  targetUserField: string;
310
- /** Template do título (suporta {{placeholders}}) */
377
+ /** Template do título (suporta {{placeholders}} incluindo campos de lookups) */
311
378
  titleTemplate: string;
312
- /** Template do corpo (suporta {{placeholders}}) */
379
+ /** Template do corpo (suporta {{placeholders}} incluindo campos de lookups) */
313
380
  bodyTemplate: string;
314
381
  /** Dados extras para a notificação */
315
382
  dataTemplate?: Record<string, any>;