@wuapidev/sdk 0.1.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.
Files changed (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +355 -0
  3. package/dist/client.d.ts +50 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +80 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/core.d.ts +58 -0
  8. package/dist/core.d.ts.map +1 -0
  9. package/dist/core.js +191 -0
  10. package/dist/core.js.map +1 -0
  11. package/dist/errors.d.ts +26 -0
  12. package/dist/errors.d.ts.map +1 -0
  13. package/dist/errors.js +29 -0
  14. package/dist/errors.js.map +1 -0
  15. package/dist/index.d.ts +17 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +8 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/pagination.d.ts +23 -0
  20. package/dist/pagination.d.ts.map +1 -0
  21. package/dist/pagination.js +53 -0
  22. package/dist/pagination.js.map +1 -0
  23. package/dist/resources/accounts.d.ts +76 -0
  24. package/dist/resources/accounts.d.ts.map +1 -0
  25. package/dist/resources/accounts.js +139 -0
  26. package/dist/resources/accounts.js.map +1 -0
  27. package/dist/resources/base.d.ts +18 -0
  28. package/dist/resources/base.d.ts.map +1 -0
  29. package/dist/resources/base.js +34 -0
  30. package/dist/resources/base.js.map +1 -0
  31. package/dist/resources/channels.d.ts +22 -0
  32. package/dist/resources/channels.d.ts.map +1 -0
  33. package/dist/resources/channels.js +45 -0
  34. package/dist/resources/channels.js.map +1 -0
  35. package/dist/resources/chats.d.ts +35 -0
  36. package/dist/resources/chats.d.ts.map +1 -0
  37. package/dist/resources/chats.js +64 -0
  38. package/dist/resources/chats.js.map +1 -0
  39. package/dist/resources/contacts.d.ts +45 -0
  40. package/dist/resources/contacts.d.ts.map +1 -0
  41. package/dist/resources/contacts.js +79 -0
  42. package/dist/resources/contacts.js.map +1 -0
  43. package/dist/resources/groups.d.ts +36 -0
  44. package/dist/resources/groups.d.ts.map +1 -0
  45. package/dist/resources/groups.js +81 -0
  46. package/dist/resources/groups.js.map +1 -0
  47. package/dist/resources/messages.d.ts +36 -0
  48. package/dist/resources/messages.d.ts.map +1 -0
  49. package/dist/resources/messages.js +60 -0
  50. package/dist/resources/messages.js.map +1 -0
  51. package/dist/resources/misc.d.ts +21 -0
  52. package/dist/resources/misc.d.ts.map +1 -0
  53. package/dist/resources/misc.js +23 -0
  54. package/dist/resources/misc.js.map +1 -0
  55. package/dist/resources/projects.d.ts +65 -0
  56. package/dist/resources/projects.d.ts.map +1 -0
  57. package/dist/resources/projects.js +115 -0
  58. package/dist/resources/projects.js.map +1 -0
  59. package/dist/types.d.ts +1073 -0
  60. package/dist/types.d.ts.map +1 -0
  61. package/dist/types.js +46 -0
  62. package/dist/types.js.map +1 -0
  63. package/dist/webhook.d.ts +15 -0
  64. package/dist/webhook.d.ts.map +1 -0
  65. package/dist/webhook.js +77 -0
  66. package/dist/webhook.js.map +1 -0
  67. package/package.json +56 -0
@@ -0,0 +1,18 @@
1
+ import { type HttpClient, type Query } from "../core.js";
2
+ import { Paginator } from "../pagination.js";
3
+ import type { CallOptions, ListParams } from "../types.js";
4
+ /** Shared request helpers for every resource. */
5
+ export declare abstract class Resource {
6
+ protected readonly http: HttpClient;
7
+ constructor(http: HttpClient);
8
+ protected _get<T>(path: string, query?: Query, options?: CallOptions): Promise<T>;
9
+ protected _post<T>(path: string, body?: unknown, options?: CallOptions): Promise<T>;
10
+ protected _put<T>(path: string, body?: unknown, options?: CallOptions): Promise<T>;
11
+ protected _patch<T>(path: string, body?: unknown, options?: CallOptions): Promise<T>;
12
+ protected _delete(path: string, query?: Query, options?: CallOptions): Promise<void>;
13
+ /** A list endpoint as a Paginator. `query` maps the params to query-string values. */
14
+ protected _list<T, P extends ListParams>(path: string, params: P, query?: (p: P) => Query, options?: CallOptions): Paginator<T, P>;
15
+ /** A batch POST that answers a list: its items. */
16
+ protected _items<T>(path: string, body: unknown, options?: CallOptions): Promise<T[]>;
17
+ }
18
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/resources/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,UAAU,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAQ,MAAM,aAAa,CAAC;AAEjE,iDAAiD;AACjD,8BAAsB,QAAQ;IAC5B,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;gBAExB,IAAI,EAAE,UAAU;IAI5B,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAIjF,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAInF,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAIlF,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;cAIpE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1F,sFAAsF;IACtF,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,CAAC,EACT,KAAK,GAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAkB,EACnC,OAAO,CAAC,EAAE,WAAW,GACpB,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAOlB,mDAAmD;cACnC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAI5F"}
@@ -0,0 +1,34 @@
1
+ import { callOpts } from "../core.js";
2
+ import { Paginator } from "../pagination.js";
3
+ /** Shared request helpers for every resource. */
4
+ export class Resource {
5
+ http;
6
+ constructor(http) {
7
+ this.http = http;
8
+ }
9
+ _get(path, query, options) {
10
+ return this.http.request({ method: "GET", path, query, ...callOpts(options) });
11
+ }
12
+ _post(path, body, options) {
13
+ return this.http.request({ method: "POST", path, body, ...callOpts(options) });
14
+ }
15
+ _put(path, body, options) {
16
+ return this.http.request({ method: "PUT", path, body, ...callOpts(options) });
17
+ }
18
+ _patch(path, body, options) {
19
+ return this.http.request({ method: "PATCH", path, body, ...callOpts(options) });
20
+ }
21
+ async _delete(path, query, options) {
22
+ await this.http.request({ method: "DELETE", path, query, ...callOpts(options) });
23
+ }
24
+ /** A list endpoint as a Paginator. `query` maps the params to query-string values. */
25
+ _list(path, params, query = () => ({}), options) {
26
+ return new Paginator((p) => this._get(path, { ...query(p), limit: p.limit, cursor: p.cursor }, options), params);
27
+ }
28
+ /** A batch POST that answers a list: its items. */
29
+ async _items(path, body, options) {
30
+ const res = await this._post(path, body, options);
31
+ return res.items;
32
+ }
33
+ }
34
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/resources/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA+B,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,iDAAiD;AACjD,MAAM,OAAgB,QAAQ;IACT,IAAI,CAAa;IAEpC,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAES,IAAI,CAAI,IAAY,EAAE,KAAa,EAAE,OAAqB;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAES,KAAK,CAAI,IAAY,EAAE,IAAc,EAAE,OAAqB;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAES,IAAI,CAAI,IAAY,EAAE,IAAc,EAAE,OAAqB;QACnE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAES,MAAM,CAAI,IAAY,EAAE,IAAc,EAAE,OAAqB;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrF,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,KAAa,EAAE,OAAqB;QACxE,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,sFAAsF;IAC5E,KAAK,CACb,IAAY,EACZ,MAAS,EACT,QAAyB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EACnC,OAAqB;QAErB,OAAO,IAAI,SAAS,CAClB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,CAAC,EAC3F,MAAM,CACP,CAAC;IACJ,CAAC;IAED,mDAAmD;IACzC,KAAK,CAAC,MAAM,CAAI,IAAY,EAAE,IAAa,EAAE,OAAqB;QAC1E,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAU,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import type { Paginator } from "../pagination.js";
2
+ import type { CallOptions, Channel, ChannelCreateParams, ChannelMessage, ListParams } from "../types.js";
3
+ import { Resource } from "./base.js";
4
+ /** WhatsApp channels. To post to one you administer, use `messages.send` with `to` set to the channel id. */
5
+ export declare class Channels extends Resource {
6
+ /** Channels the account follows. */
7
+ list(accountId: string, params?: ListParams, options?: CallOptions): Paginator<Channel, ListParams>;
8
+ create(accountId: string, params: ChannelCreateParams, options?: CallOptions): Promise<Channel>;
9
+ get(accountId: string, channelId: string, options?: CallOptions): Promise<Channel>;
10
+ /** The channel behind an invite code (`https://whatsapp.com/channel/<code>`). */
11
+ getInvite(accountId: string, code: string, options?: CallOptions): Promise<Channel>;
12
+ follow(accountId: string, channelId: string, options?: CallOptions): Promise<void>;
13
+ unfollow(accountId: string, channelId: string, options?: CallOptions): Promise<void>;
14
+ mute(accountId: string, channelId: string, options?: CallOptions): Promise<void>;
15
+ unmute(accountId: string, channelId: string, options?: CallOptions): Promise<void>;
16
+ /** The channel's messages, newest first, read from WhatsApp. */
17
+ listMessages(accountId: string, channelId: string, params?: ListParams, options?: CallOptions): Paginator<ChannelMessage, ListParams>;
18
+ /** React to a channel message. An empty string removes the reaction. */
19
+ react(accountId: string, channelId: string, channelMessageId: string, emoji: string, options?: CallOptions): Promise<void>;
20
+ markViewed(accountId: string, channelId: string, channelMessageIds: string[], options?: CallOptions): Promise<void>;
21
+ }
22
+ //# sourceMappingURL=channels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.d.ts","sourceRoot":"","sources":["../../src/resources/channels.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAKrC,6GAA6G;AAC7G,qBAAa,QAAS,SAAQ,QAAQ;IACpC,oCAAoC;IACpC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;IAIvG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/F,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlF,iFAAiF;IACjF,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAInF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlF,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlF,gEAAgE;IAChE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,cAAc,EAAE,UAAU,CAAC;IAIzI,wEAAwE;IACxE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1H,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAGpH"}
@@ -0,0 +1,45 @@
1
+ import { accountPath, enc } from "../core.js";
2
+ import { Resource } from "./base.js";
3
+ const channels = (accountId, suffix = "") => accountPath(accountId, `/channels${suffix}`);
4
+ const channel = (accountId, channelId, suffix = "") => channels(accountId, `/${enc(channelId)}${suffix}`);
5
+ /** WhatsApp channels. To post to one you administer, use `messages.send` with `to` set to the channel id. */
6
+ export class Channels extends Resource {
7
+ /** Channels the account follows. */
8
+ list(accountId, params = {}, options) {
9
+ return this._list(channels(accountId), params, undefined, options);
10
+ }
11
+ create(accountId, params, options) {
12
+ return this._post(channels(accountId), params, options);
13
+ }
14
+ get(accountId, channelId, options) {
15
+ return this._get(channel(accountId, channelId), undefined, options);
16
+ }
17
+ /** The channel behind an invite code (`https://whatsapp.com/channel/<code>`). */
18
+ getInvite(accountId, code, options) {
19
+ return this._get(channels(accountId, `/invites/${enc(code)}`), undefined, options);
20
+ }
21
+ follow(accountId, channelId, options) {
22
+ return this._post(channel(accountId, channelId, "/follow"), undefined, options);
23
+ }
24
+ unfollow(accountId, channelId, options) {
25
+ return this._post(channel(accountId, channelId, "/unfollow"), undefined, options);
26
+ }
27
+ mute(accountId, channelId, options) {
28
+ return this._post(channel(accountId, channelId, "/mute"), undefined, options);
29
+ }
30
+ unmute(accountId, channelId, options) {
31
+ return this._post(channel(accountId, channelId, "/unmute"), undefined, options);
32
+ }
33
+ /** The channel's messages, newest first, read from WhatsApp. */
34
+ listMessages(accountId, channelId, params = {}, options) {
35
+ return this._list(channel(accountId, channelId, "/messages"), params, undefined, options);
36
+ }
37
+ /** React to a channel message. An empty string removes the reaction. */
38
+ react(accountId, channelId, channelMessageId, emoji, options) {
39
+ return this._post(channel(accountId, channelId, `/messages/${enc(channelMessageId)}/react`), { emoji }, options);
40
+ }
41
+ markViewed(accountId, channelId, channelMessageIds, options) {
42
+ return this._post(channel(accountId, channelId, "/mark-viewed"), { channelMessageIds }, options);
43
+ }
44
+ }
45
+ //# sourceMappingURL=channels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../src/resources/channels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { CallOptions, ChatId, ChatPresenceState, ChatRead, DisappearingSeconds, Label, LabelUpsertParams, ReadReceiptsParams } from "../types.js";
2
+ import { Resource } from "./base.js";
3
+ export declare class Chats extends Resource {
4
+ /** Show (`typing`, `recording`) or clear (`paused`) the typing indicator in a chat. */
5
+ sendPresence(accountId: string, chatId: ChatId, state: ChatPresenceState, options?: CallOptions): Promise<void>;
6
+ /** Send read receipts (blue ticks). Without `messageIds`, every unread inbound message wuapi stores for the chat. */
7
+ sendReadReceipts(accountId: string, chatId: ChatId, params?: ReadReceiptsParams, options?: CallOptions): Promise<ChatRead>;
8
+ /** Mark the chat read on the linked devices (the unread badge). Sends no receipts. */
9
+ markRead(accountId: string, chatId: ChatId, options?: CallOptions): Promise<void>;
10
+ markUnread(accountId: string, chatId: ChatId, options?: CallOptions): Promise<void>;
11
+ archive(accountId: string, chatId: ChatId, options?: CallOptions): Promise<void>;
12
+ unarchive(accountId: string, chatId: ChatId, options?: CallOptions): Promise<void>;
13
+ pin(accountId: string, chatId: ChatId, options?: CallOptions): Promise<void>;
14
+ unpin(accountId: string, chatId: ChatId, options?: CallOptions): Promise<void>;
15
+ /** Mute for `durationSeconds`, or until unmuted when omitted or 0. */
16
+ mute(accountId: string, chatId: ChatId, params?: {
17
+ durationSeconds?: number;
18
+ }, options?: CallOptions): Promise<void>;
19
+ unmute(accountId: string, chatId: ChatId, options?: CallOptions): Promise<void>;
20
+ /** Delete the chat on the linked devices. Messages stored in wuapi are kept. */
21
+ delete(accountId: string, chatId: ChatId, params?: {
22
+ deleteMedia?: boolean;
23
+ }, options?: CallOptions): Promise<void>;
24
+ /** The chat's disappearing-messages timer. 0 turns it off. */
25
+ setDisappearingTimer(accountId: string, chatId: ChatId, durationSeconds: DisappearingSeconds, options?: CallOptions): Promise<void>;
26
+ /** WhatsApp Business accounts only. */
27
+ addLabel(accountId: string, chatId: ChatId, labelId: string, options?: CallOptions): Promise<void>;
28
+ removeLabel(accountId: string, chatId: ChatId, labelId: string, options?: CallOptions): Promise<void>;
29
+ }
30
+ export declare class Labels extends Resource {
31
+ /** Create or edit a WhatsApp Business label. Reuse an id to edit it. */
32
+ upsert(accountId: string, labelId: string, params: LabelUpsertParams, options?: CallOptions): Promise<Label>;
33
+ delete(accountId: string, labelId: string, options?: CallOptions): Promise<void>;
34
+ }
35
+ //# sourceMappingURL=chats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.d.ts","sourceRoot":"","sources":["../../src/resources/chats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { accountPath, enc } from "../core.js";
2
+ import { Resource } from "./base.js";
3
+ const chat = (accountId, chatId, suffix = "") => accountPath(accountId, `/chats/${enc(chatId)}${suffix}`);
4
+ export class Chats extends Resource {
5
+ /** Show (`typing`, `recording`) or clear (`paused`) the typing indicator in a chat. */
6
+ sendPresence(accountId, chatId, state, options) {
7
+ return this._post(chat(accountId, chatId, "/presence"), { state }, options);
8
+ }
9
+ /** Send read receipts (blue ticks). Without `messageIds`, every unread inbound message wuapi stores for the chat. */
10
+ sendReadReceipts(accountId, chatId, params = {}, options) {
11
+ return this._post(chat(accountId, chatId, "/read"), params, options);
12
+ }
13
+ /** Mark the chat read on the linked devices (the unread badge). Sends no receipts. */
14
+ markRead(accountId, chatId, options) {
15
+ return this._post(chat(accountId, chatId, "/mark-read"), undefined, options);
16
+ }
17
+ markUnread(accountId, chatId, options) {
18
+ return this._post(chat(accountId, chatId, "/mark-unread"), undefined, options);
19
+ }
20
+ archive(accountId, chatId, options) {
21
+ return this._post(chat(accountId, chatId, "/archive"), undefined, options);
22
+ }
23
+ unarchive(accountId, chatId, options) {
24
+ return this._post(chat(accountId, chatId, "/unarchive"), undefined, options);
25
+ }
26
+ pin(accountId, chatId, options) {
27
+ return this._post(chat(accountId, chatId, "/pin"), undefined, options);
28
+ }
29
+ unpin(accountId, chatId, options) {
30
+ return this._post(chat(accountId, chatId, "/unpin"), undefined, options);
31
+ }
32
+ /** Mute for `durationSeconds`, or until unmuted when omitted or 0. */
33
+ mute(accountId, chatId, params = {}, options) {
34
+ return this._post(chat(accountId, chatId, "/mute"), params, options);
35
+ }
36
+ unmute(accountId, chatId, options) {
37
+ return this._post(chat(accountId, chatId, "/unmute"), undefined, options);
38
+ }
39
+ /** Delete the chat on the linked devices. Messages stored in wuapi are kept. */
40
+ delete(accountId, chatId, params = {}, options) {
41
+ return this._delete(chat(accountId, chatId), { deleteMedia: params.deleteMedia }, options);
42
+ }
43
+ /** The chat's disappearing-messages timer. 0 turns it off. */
44
+ setDisappearingTimer(accountId, chatId, durationSeconds, options) {
45
+ return this._put(chat(accountId, chatId, "/disappearing-timer"), { durationSeconds }, options);
46
+ }
47
+ /** WhatsApp Business accounts only. */
48
+ addLabel(accountId, chatId, labelId, options) {
49
+ return this._post(chat(accountId, chatId, "/labels"), { labelId }, options);
50
+ }
51
+ removeLabel(accountId, chatId, labelId, options) {
52
+ return this._delete(chat(accountId, chatId, `/labels/${enc(labelId)}`), undefined, options);
53
+ }
54
+ }
55
+ export class Labels extends Resource {
56
+ /** Create or edit a WhatsApp Business label. Reuse an id to edit it. */
57
+ upsert(accountId, labelId, params, options) {
58
+ return this._put(accountPath(accountId, `/labels/${enc(labelId)}`), params, options);
59
+ }
60
+ delete(accountId, labelId, options) {
61
+ return this._delete(accountPath(accountId, `/labels/${enc(labelId)}`), undefined, options);
62
+ }
63
+ }
64
+ //# sourceMappingURL=chats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chats.js","sourceRoot":"","sources":["../../src/resources/chats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { Paginator } from "../pagination.js";
2
+ import type { BlockedContact, Bot, BusinessProfile, CallOptions, Contact, ContactCheck, ContactId, ContactLink, LinkResolveParams, ListParams, Picture, PictureInput, PrivacySettings, PrivacyUpdateParams, ProfileUpdateParams, ResolvedLink, StoryPrivacy } from "../types.js";
3
+ import { Resource } from "./base.js";
4
+ export declare class Contacts extends Resource {
5
+ /** Which of these numbers (1 to 50, E.164 or digits) have WhatsApp. */
6
+ check(accountId: string, phones: string[], options?: CallOptions): Promise<ContactCheck[]>;
7
+ /** About text, picture id, business name and device count of 1 to 50 contacts. */
8
+ lookup(accountId: string, contactIds: ContactId[], options?: CallOptions): Promise<Contact[]>;
9
+ /** 404 `picture_not_found` when the contact has no picture this account can see. */
10
+ getPicture(accountId: string, contactId: ContactId, params?: {
11
+ preview?: boolean;
12
+ }, options?: CallOptions): Promise<Picture>;
13
+ /** 404 `business_profile_not_found` when the contact is not a WhatsApp Business account. */
14
+ getBusinessProfile(accountId: string, contactId: ContactId, options?: CallOptions): Promise<BusinessProfile>;
15
+ /** Receive `contact.presence_updated` for this contact. */
16
+ subscribePresence(accountId: string, contactId: ContactId, options?: CallOptions): Promise<void>;
17
+ block(accountId: string, contactId: ContactId, options?: CallOptions): Promise<void>;
18
+ unblock(accountId: string, contactId: ContactId, options?: CallOptions): Promise<void>;
19
+ listBlocked(accountId: string, params?: ListParams, options?: CallOptions): Paginator<BlockedContact, ListParams>;
20
+ /** The account's own contact QR link. */
21
+ getLink(accountId: string, options?: CallOptions): Promise<ContactLink>;
22
+ /** Revoke the contact link and return a new one. */
23
+ resetLink(accountId: string, options?: CallOptions): Promise<ContactLink>;
24
+ /** Who a contact QR link or a business message link points to. */
25
+ resolveLink(accountId: string, params: LinkResolveParams, options?: CallOptions): Promise<ResolvedLink>;
26
+ }
27
+ export declare class Bots extends Resource {
28
+ /** WhatsApp's AI bot directory as the account sees it. */
29
+ list(accountId: string, params?: ListParams, options?: CallOptions): Paginator<Bot, ListParams>;
30
+ }
31
+ export declare class Profile extends Resource {
32
+ /** The linked number's About text and display name. */
33
+ update(accountId: string, params: ProfileUpdateParams, options?: CallOptions): Promise<void>;
34
+ /** JPEG, from an https URL or base64. */
35
+ setPicture(accountId: string, picture: PictureInput, options?: CallOptions): Promise<Picture>;
36
+ deletePicture(accountId: string, options?: CallOptions): Promise<void>;
37
+ }
38
+ export declare class Privacy extends Resource {
39
+ get(accountId: string, options?: CallOptions): Promise<PrivacySettings>;
40
+ /** Change one or more settings. Returns every setting after the change. */
41
+ update(accountId: string, params: PrivacyUpdateParams, options?: CallOptions): Promise<PrivacySettings>;
42
+ /** Who sees the account's stories. */
43
+ getStoryPrivacy(accountId: string, options?: CallOptions): Promise<StoryPrivacy>;
44
+ }
45
+ //# sourceMappingURL=contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { accountPath, enc } from "../core.js";
2
+ import { Resource } from "./base.js";
3
+ const contact = (accountId, contactId, suffix) => accountPath(accountId, `/contacts/${enc(contactId)}${suffix}`);
4
+ export class Contacts extends Resource {
5
+ /** Which of these numbers (1 to 50, E.164 or digits) have WhatsApp. */
6
+ check(accountId, phones, options) {
7
+ return this._items(accountPath(accountId, "/contacts/check"), { phones }, options);
8
+ }
9
+ /** About text, picture id, business name and device count of 1 to 50 contacts. */
10
+ lookup(accountId, contactIds, options) {
11
+ return this._items(accountPath(accountId, "/contacts/lookup"), { contactIds }, options);
12
+ }
13
+ /** 404 `picture_not_found` when the contact has no picture this account can see. */
14
+ getPicture(accountId, contactId, params = {}, options) {
15
+ return this._get(contact(accountId, contactId, "/picture"), { preview: params.preview }, options);
16
+ }
17
+ /** 404 `business_profile_not_found` when the contact is not a WhatsApp Business account. */
18
+ getBusinessProfile(accountId, contactId, options) {
19
+ return this._get(contact(accountId, contactId, "/business-profile"), undefined, options);
20
+ }
21
+ /** Receive `contact.presence_updated` for this contact. */
22
+ subscribePresence(accountId, contactId, options) {
23
+ return this._post(contact(accountId, contactId, "/subscribe-presence"), undefined, options);
24
+ }
25
+ block(accountId, contactId, options) {
26
+ return this._post(contact(accountId, contactId, "/block"), undefined, options);
27
+ }
28
+ unblock(accountId, contactId, options) {
29
+ return this._post(contact(accountId, contactId, "/unblock"), undefined, options);
30
+ }
31
+ listBlocked(accountId, params = {}, options) {
32
+ return this._list(accountPath(accountId, "/blocklist"), params, undefined, options);
33
+ }
34
+ /** The account's own contact QR link. */
35
+ getLink(accountId, options) {
36
+ return this._get(accountPath(accountId, "/contact-link"), undefined, options);
37
+ }
38
+ /** Revoke the contact link and return a new one. */
39
+ resetLink(accountId, options) {
40
+ return this._post(accountPath(accountId, "/contact-link/reset"), undefined, options);
41
+ }
42
+ /** Who a contact QR link or a business message link points to. */
43
+ resolveLink(accountId, params, options) {
44
+ return this._post(accountPath(accountId, "/links/resolve"), params, options);
45
+ }
46
+ }
47
+ export class Bots extends Resource {
48
+ /** WhatsApp's AI bot directory as the account sees it. */
49
+ list(accountId, params = {}, options) {
50
+ return this._list(accountPath(accountId, "/bots"), params, undefined, options);
51
+ }
52
+ }
53
+ export class Profile extends Resource {
54
+ /** The linked number's About text and display name. */
55
+ update(accountId, params, options) {
56
+ return this._patch(accountPath(accountId, "/profile"), params, options);
57
+ }
58
+ /** JPEG, from an https URL or base64. */
59
+ setPicture(accountId, picture, options) {
60
+ return this._put(accountPath(accountId, "/profile/picture"), picture, options);
61
+ }
62
+ deletePicture(accountId, options) {
63
+ return this._delete(accountPath(accountId, "/profile/picture"), undefined, options);
64
+ }
65
+ }
66
+ export class Privacy extends Resource {
67
+ get(accountId, options) {
68
+ return this._get(accountPath(accountId, "/privacy"), undefined, options);
69
+ }
70
+ /** Change one or more settings. Returns every setting after the change. */
71
+ update(accountId, params, options) {
72
+ return this._patch(accountPath(accountId, "/privacy"), params, options);
73
+ }
74
+ /** Who sees the account's stories. */
75
+ getStoryPrivacy(accountId, options) {
76
+ return this._get(accountPath(accountId, "/privacy/stories"), undefined, options);
77
+ }
78
+ }
79
+ //# sourceMappingURL=contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { Paginator } from "../pagination.js";
2
+ import type { CallOptions, CommunityParticipant, ContactId, Group, GroupCreateParams, GroupInviteLink, GroupJoin, GroupJoinRequest, GroupUpdateParams, ListParams, ParticipantResult, Picture, PictureInput, Subgroup } from "../types.js";
3
+ import { Resource } from "./base.js";
4
+ export declare class Groups extends Resource {
5
+ /** Every group of the account, read live from WhatsApp. */
6
+ list(accountId: string, params?: ListParams, options?: CallOptions): Paginator<Group, ListParams>;
7
+ /** Create a group, or a community with `community: true` (participants optional then). */
8
+ create(accountId: string, params: GroupCreateParams, options?: CallOptions): Promise<Group>;
9
+ get(accountId: string, groupId: string, options?: CallOptions): Promise<Group>;
10
+ update(accountId: string, groupId: string, params: GroupUpdateParams, options?: CallOptions): Promise<Group>;
11
+ leave(accountId: string, groupId: string, options?: CallOptions): Promise<void>;
12
+ addParticipants(accountId: string, groupId: string, contactIds: ContactId[], options?: CallOptions): Promise<ParticipantResult[]>;
13
+ removeParticipants(accountId: string, groupId: string, contactIds: ContactId[], options?: CallOptions): Promise<ParticipantResult[]>;
14
+ promoteParticipants(accountId: string, groupId: string, contactIds: ContactId[], options?: CallOptions): Promise<ParticipantResult[]>;
15
+ demoteParticipants(accountId: string, groupId: string, contactIds: ContactId[], options?: CallOptions): Promise<ParticipantResult[]>;
16
+ getInviteLink(accountId: string, groupId: string, options?: CallOptions): Promise<GroupInviteLink>;
17
+ /** Revoke the invite link and return a new one. */
18
+ resetInviteLink(accountId: string, groupId: string, options?: CallOptions): Promise<GroupInviteLink>;
19
+ /** Join by invite code or full `https://chat.whatsapp.com/…` link. */
20
+ join(accountId: string, code: string, options?: CallOptions): Promise<GroupJoin>;
21
+ /** The group behind an invite code, without joining. */
22
+ getInvite(accountId: string, code: string, options?: CallOptions): Promise<Group>;
23
+ /** JPEG. Admins only. */
24
+ setPicture(accountId: string, groupId: string, picture: PictureInput, options?: CallOptions): Promise<Picture>;
25
+ deletePicture(accountId: string, groupId: string, options?: CallOptions): Promise<void>;
26
+ listJoinRequests(accountId: string, groupId: string, params?: ListParams, options?: CallOptions): Paginator<GroupJoinRequest, ListParams>;
27
+ approveJoinRequests(accountId: string, groupId: string, contactIds: ContactId[], options?: CallOptions): Promise<ParticipantResult[]>;
28
+ rejectJoinRequests(accountId: string, groupId: string, contactIds: ContactId[], options?: CallOptions): Promise<ParticipantResult[]>;
29
+ /** The groups linked to a community. */
30
+ listSubgroups(accountId: string, communityId: string, params?: ListParams, options?: CallOptions): Paginator<Subgroup, ListParams>;
31
+ linkSubgroup(accountId: string, communityId: string, groupId: string, options?: CallOptions): Promise<void>;
32
+ unlinkSubgroup(accountId: string, communityId: string, subgroupId: string, options?: CallOptions): Promise<void>;
33
+ /** Members across a community's linked groups. */
34
+ listCommunityParticipants(accountId: string, communityId: string, params?: ListParams, options?: CallOptions): Paginator<CommunityParticipant, ListParams>;
35
+ }
36
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/resources/groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ import { accountPath, enc } from "../core.js";
2
+ import { Resource } from "./base.js";
3
+ const groups = (accountId, suffix = "") => accountPath(accountId, `/groups${suffix}`);
4
+ const group = (accountId, groupId, suffix = "") => groups(accountId, `/${enc(groupId)}${suffix}`);
5
+ export class Groups extends Resource {
6
+ /** Every group of the account, read live from WhatsApp. */
7
+ list(accountId, params = {}, options) {
8
+ return this._list(groups(accountId), params, undefined, options);
9
+ }
10
+ /** Create a group, or a community with `community: true` (participants optional then). */
11
+ create(accountId, params, options) {
12
+ return this._post(groups(accountId), params, options);
13
+ }
14
+ get(accountId, groupId, options) {
15
+ return this._get(group(accountId, groupId), undefined, options);
16
+ }
17
+ update(accountId, groupId, params, options) {
18
+ return this._patch(group(accountId, groupId), params, options);
19
+ }
20
+ leave(accountId, groupId, options) {
21
+ return this._post(group(accountId, groupId, "/leave"), undefined, options);
22
+ }
23
+ addParticipants(accountId, groupId, contactIds, options) {
24
+ return this._items(group(accountId, groupId, "/participants/add"), { contactIds }, options);
25
+ }
26
+ removeParticipants(accountId, groupId, contactIds, options) {
27
+ return this._items(group(accountId, groupId, "/participants/remove"), { contactIds }, options);
28
+ }
29
+ promoteParticipants(accountId, groupId, contactIds, options) {
30
+ return this._items(group(accountId, groupId, "/participants/promote"), { contactIds }, options);
31
+ }
32
+ demoteParticipants(accountId, groupId, contactIds, options) {
33
+ return this._items(group(accountId, groupId, "/participants/demote"), { contactIds }, options);
34
+ }
35
+ getInviteLink(accountId, groupId, options) {
36
+ return this._get(group(accountId, groupId, "/invite-link"), undefined, options);
37
+ }
38
+ /** Revoke the invite link and return a new one. */
39
+ resetInviteLink(accountId, groupId, options) {
40
+ return this._post(group(accountId, groupId, "/invite-link/reset"), undefined, options);
41
+ }
42
+ /** Join by invite code or full `https://chat.whatsapp.com/…` link. */
43
+ join(accountId, code, options) {
44
+ return this._post(groups(accountId, "/join"), { code }, options);
45
+ }
46
+ /** The group behind an invite code, without joining. */
47
+ getInvite(accountId, code, options) {
48
+ return this._get(groups(accountId, `/invites/${enc(code)}`), undefined, options);
49
+ }
50
+ /** JPEG. Admins only. */
51
+ setPicture(accountId, groupId, picture, options) {
52
+ return this._put(group(accountId, groupId, "/picture"), picture, options);
53
+ }
54
+ deletePicture(accountId, groupId, options) {
55
+ return this._delete(group(accountId, groupId, "/picture"), undefined, options);
56
+ }
57
+ listJoinRequests(accountId, groupId, params = {}, options) {
58
+ return this._list(group(accountId, groupId, "/join-requests"), params, undefined, options);
59
+ }
60
+ approveJoinRequests(accountId, groupId, contactIds, options) {
61
+ return this._items(group(accountId, groupId, "/join-requests/approve"), { contactIds }, options);
62
+ }
63
+ rejectJoinRequests(accountId, groupId, contactIds, options) {
64
+ return this._items(group(accountId, groupId, "/join-requests/reject"), { contactIds }, options);
65
+ }
66
+ /** The groups linked to a community. */
67
+ listSubgroups(accountId, communityId, params = {}, options) {
68
+ return this._list(group(accountId, communityId, "/subgroups"), params, undefined, options);
69
+ }
70
+ linkSubgroup(accountId, communityId, groupId, options) {
71
+ return this._post(group(accountId, communityId, "/subgroups"), { groupId }, options);
72
+ }
73
+ unlinkSubgroup(accountId, communityId, subgroupId, options) {
74
+ return this._delete(group(accountId, communityId, `/subgroups/${enc(subgroupId)}`), undefined, options);
75
+ }
76
+ /** Members across a community's linked groups. */
77
+ listCommunityParticipants(accountId, communityId, params = {}, options) {
78
+ return this._list(group(accountId, communityId, "/community-participants"), params, undefined, options);
79
+ }
80
+ }
81
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../src/resources/groups.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import type { Paginator } from "../pagination.js";
2
+ import type { CallOptions, Message, MessageDeleteParams, MessageListParams, SendMessageParams, StoryCreateParams } from "../types.js";
3
+ import { Resource } from "./base.js";
4
+ export declare class Messages extends Resource {
5
+ /**
6
+ * Queue a message to a contact, a group, or a channel you administer. It is
7
+ * returned with `status: "queued"`; the outcome arrives as `message.sent` /
8
+ * `message.failed` webhooks or via `get()`. An idempotency key is generated
9
+ * when you pass none, so retries never send twice.
10
+ */
11
+ send(params: SendMessageParams, options?: CallOptions): Promise<Message>;
12
+ /** List messages, newest first. Iterate with `for await` or call `.page()`. */
13
+ list(params?: MessageListParams, options?: CallOptions): Paginator<Message, MessageListParams>;
14
+ get(messageId: string, options?: CallOptions): Promise<Message>;
15
+ /** Edit an outbound text message, within WhatsApp's edit window (about 15 minutes). Fires `message.edited`. */
16
+ edit(messageId: string, text: string, options?: CallOptions): Promise<Message>;
17
+ /** Delete an outbound message, for everyone by default. */
18
+ delete(messageId: string, params?: MessageDeleteParams, options?: CallOptions): Promise<void>;
19
+ /** React with an emoji. An empty string removes the reaction. */
20
+ react(messageId: string, emoji: string, options?: CallOptions): Promise<void>;
21
+ /** Vote in a poll with the names of its options. `[]` retracts the vote. Returns the poll with its tally. */
22
+ vote(messageId: string, pollOptions: string[], options?: CallOptions): Promise<Message>;
23
+ star(messageId: string, options?: CallOptions): Promise<Message>;
24
+ unstar(messageId: string, options?: CallOptions): Promise<Message>;
25
+ /** WhatsApp Business accounts only. */
26
+ addLabel(messageId: string, labelId: string, options?: CallOptions): Promise<void>;
27
+ removeLabel(messageId: string, labelId: string, options?: CallOptions): Promise<void>;
28
+ }
29
+ export declare class Stories extends Resource {
30
+ /**
31
+ * Post a story (a WhatsApp Status). Queued like a message and stored with
32
+ * `chatId: "stories"`.
33
+ */
34
+ create(accountId: string, params: StoryCreateParams, options?: CallOptions): Promise<Message>;
35
+ }
36
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,qBAAa,QAAS,SAAQ,QAAQ;IACpC;;;;;OAKG;IACH,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIxE,+EAA+E;IAC/E,IAAI,CAAC,MAAM,GAAE,iBAAsB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC;IASlG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,+GAA+G;IAC/G,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9E,2DAA2D;IAC3D,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,mBAAwB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjG,iEAAiE;IACjE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7E,6GAA6G;IAC7G,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvF,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIhE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIlE,uCAAuC;IACvC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlF,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAGtF;AAED,qBAAa,OAAQ,SAAQ,QAAQ;IACnC;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAG9F"}