@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,60 @@
1
+ import { accountPath, enc } from "../core.js";
2
+ import { Resource } from "./base.js";
3
+ const path = (messageId, suffix = "") => `/v1/messages/${enc(messageId)}${suffix}`;
4
+ export 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, options) {
12
+ return this._post("/v1/messages", params, options);
13
+ }
14
+ /** List messages, newest first. Iterate with `for await` or call `.page()`. */
15
+ list(params = {}, options) {
16
+ return this._list("/v1/messages", params, (p) => ({ accountId: p.accountId, chatId: p.chatId, direction: p.direction, projectId: p.projectId }), options);
17
+ }
18
+ get(messageId, options) {
19
+ return this._get(path(messageId), undefined, options);
20
+ }
21
+ /** Edit an outbound text message, within WhatsApp's edit window (about 15 minutes). Fires `message.edited`. */
22
+ edit(messageId, text, options) {
23
+ return this._patch(path(messageId), { text }, options);
24
+ }
25
+ /** Delete an outbound message, for everyone by default. */
26
+ delete(messageId, params = {}, options) {
27
+ return this._delete(path(messageId), { forEveryone: params.forEveryone }, options);
28
+ }
29
+ /** React with an emoji. An empty string removes the reaction. */
30
+ react(messageId, emoji, options) {
31
+ return this._post(path(messageId, "/react"), { emoji }, options);
32
+ }
33
+ /** Vote in a poll with the names of its options. `[]` retracts the vote. Returns the poll with its tally. */
34
+ vote(messageId, pollOptions, options) {
35
+ return this._post(path(messageId, "/vote"), { options: pollOptions }, options);
36
+ }
37
+ star(messageId, options) {
38
+ return this._post(path(messageId, "/star"), undefined, options);
39
+ }
40
+ unstar(messageId, options) {
41
+ return this._post(path(messageId, "/unstar"), undefined, options);
42
+ }
43
+ /** WhatsApp Business accounts only. */
44
+ addLabel(messageId, labelId, options) {
45
+ return this._post(path(messageId, "/labels"), { labelId }, options);
46
+ }
47
+ removeLabel(messageId, labelId, options) {
48
+ return this._delete(path(messageId, `/labels/${enc(labelId)}`), undefined, options);
49
+ }
50
+ }
51
+ export class Stories extends Resource {
52
+ /**
53
+ * Post a story (a WhatsApp Status). Queued like a message and stored with
54
+ * `chatId: "stories"`.
55
+ */
56
+ create(accountId, params, options) {
57
+ return this._post(accountPath(accountId, "/stories"), params, options);
58
+ }
59
+ }
60
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAU9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,IAAI,GAAG,CAAC,SAAiB,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,CAAC,gBAAgB,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,CAAC;AAE3F,MAAM,OAAO,QAAS,SAAQ,QAAQ;IACpC;;;;;OAKG;IACH,IAAI,CAAC,MAAyB,EAAE,OAAqB;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,+EAA+E;IAC/E,IAAI,CAAC,SAA4B,EAAE,EAAE,OAAqB;QACxD,OAAO,IAAI,CAAC,KAAK,CACf,cAAc,EACd,MAAM,EACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,EACrG,OAAO,CACR,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,OAAqB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,+GAA+G;IAC/G,IAAI,CAAC,SAAiB,EAAE,IAAY,EAAE,OAAqB;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,2DAA2D;IAC3D,MAAM,CAAC,SAAiB,EAAE,SAA8B,EAAE,EAAE,OAAqB;QAC/E,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,iEAAiE;IACjE,KAAK,CAAC,SAAiB,EAAE,KAAa,EAAE,OAAqB;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,6GAA6G;IAC7G,IAAI,CAAC,SAAiB,EAAE,WAAqB,EAAE,OAAqB;QAClE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,OAAqB;QAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,OAAqB;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IAED,uCAAuC;IACvC,QAAQ,CAAC,SAAiB,EAAE,OAAe,EAAE,OAAqB;QAChE,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,OAAe,EAAE,OAAqB;QACnE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACtF,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,QAAQ;IACnC;;;OAGG;IACH,MAAM,CAAC,SAAiB,EAAE,MAAyB,EAAE,OAAqB;QACxE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;CACF"}
@@ -0,0 +1,21 @@
1
+ import type { CallOptions, Order, StickerPack } from "../types.js";
2
+ import { Resource } from "./base.js";
3
+ export declare class Calls extends Resource {
4
+ /**
5
+ * Reject an incoming call: `callId` and `from` come from `call.received`.
6
+ * For automatic rejection set `rejectCalls` on the account.
7
+ */
8
+ reject(accountId: string, callId: string, params: {
9
+ from: string;
10
+ }, options?: CallOptions): Promise<void>;
11
+ }
12
+ export declare class StickerPacks extends Resource {
13
+ get(accountId: string, stickerPackId: string, options?: CallOptions): Promise<StickerPack>;
14
+ }
15
+ export declare class Orders extends Resource {
16
+ /** A catalog order received as a message. `token` comes from the order message. */
17
+ get(accountId: string, orderId: string, params: {
18
+ token: string;
19
+ }, options?: CallOptions): Promise<Order>;
20
+ }
21
+ //# sourceMappingURL=misc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.d.ts","sourceRoot":"","sources":["../../src/resources/misc.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,qBAAa,KAAM,SAAQ,QAAQ;IACjC;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1G;AAED,qBAAa,YAAa,SAAQ,QAAQ;IACxC,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAG3F;AAED,qBAAa,MAAO,SAAQ,QAAQ;IAClC,mFAAmF;IACnF,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;CAG1G"}
@@ -0,0 +1,23 @@
1
+ import { accountPath, enc } from "../core.js";
2
+ import { Resource } from "./base.js";
3
+ export class Calls extends Resource {
4
+ /**
5
+ * Reject an incoming call: `callId` and `from` come from `call.received`.
6
+ * For automatic rejection set `rejectCalls` on the account.
7
+ */
8
+ reject(accountId, callId, params, options) {
9
+ return this._post(accountPath(accountId, `/calls/${enc(callId)}/reject`), params, options);
10
+ }
11
+ }
12
+ export class StickerPacks extends Resource {
13
+ get(accountId, stickerPackId, options) {
14
+ return this._get(accountPath(accountId, `/sticker-packs/${enc(stickerPackId)}`), undefined, options);
15
+ }
16
+ }
17
+ export class Orders extends Resource {
18
+ /** A catalog order received as a message. `token` comes from the order message. */
19
+ get(accountId, orderId, params, options) {
20
+ return this._get(accountPath(accountId, `/orders/${enc(orderId)}`), { token: params.token }, options);
21
+ }
22
+ }
23
+ //# sourceMappingURL=misc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"misc.js","sourceRoot":"","sources":["../../src/resources/misc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,OAAO,KAAM,SAAQ,QAAQ;IACjC;;;OAGG;IACH,MAAM,CAAC,SAAiB,EAAE,MAAc,EAAE,MAAwB,EAAE,OAAqB;QACvF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7F,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,QAAQ;IACxC,GAAG,CAAC,SAAiB,EAAE,aAAqB,EAAE,OAAqB;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,kBAAkB,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvG,CAAC;CACF;AAED,MAAM,OAAO,MAAO,SAAQ,QAAQ;IAClC,mFAAmF;IACnF,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAE,MAAyB,EAAE,OAAqB;QACtF,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,WAAW,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;IACxG,CAAC;CACF"}
@@ -0,0 +1,65 @@
1
+ import { type HttpClient } from "../core.js";
2
+ import type { Paginator } from "../pagination.js";
3
+ import type { ApiKey, ApiKeyCreateParams, Branding, BrandingUpdateParams, CallOptions, Invitation, InvitationCreateParams, InvitationListParams, ListParams, MonthParams, Project, ProjectCreateParams, ProjectListFilter, ProjectListParams, ProjectUpdateParams, ProjectUsage, Usage, UsageReport, WebhookEndpoint, WebhookEndpointCreateParams, WebhookEndpointUpdateParams } from "../types.js";
4
+ import { Resource } from "./base.js";
5
+ /** A project's API keys. Organization keys only. */
6
+ export declare class ProjectApiKeys extends Resource {
7
+ list(projectId: string, params?: ListParams, options?: CallOptions): Paginator<ApiKey, ListParams>;
8
+ /** A key that reaches only this project. `key` is returned only here. */
9
+ create(projectId: string, params: ApiKeyCreateParams, options?: CallOptions): Promise<ApiKey>;
10
+ revoke(projectId: string, apiKeyId: string, options?: CallOptions): Promise<void>;
11
+ }
12
+ /**
13
+ * Projects isolate a platform's customers: each has its own accounts, keys,
14
+ * webhook endpoints and usage. Organization keys only. `projectId` accepts
15
+ * `ext:<externalId>`.
16
+ */
17
+ export declare class Projects extends Resource {
18
+ readonly apiKeys: ProjectApiKeys;
19
+ constructor(http: HttpClient);
20
+ list(params?: ProjectListFilter, options?: CallOptions): Paginator<Project, ProjectListFilter>;
21
+ /** Fires `project.created`. 409 `already_exists` on a duplicate `externalId`. */
22
+ create(params: ProjectCreateParams, options?: CallOptions): Promise<Project>;
23
+ get(projectId: string, options?: CallOptions): Promise<Project>;
24
+ /** Rename, relabel, change the limit, or suspend (`status: "suspended"`) and resume. */
25
+ update(projectId: string, params: ProjectUpdateParams, options?: CallOptions): Promise<Project>;
26
+ /** The project is gone at once; its accounts are logged out in the background, then `project.deleted` fires. */
27
+ delete(projectId: string, options?: CallOptions): Promise<void>;
28
+ getUsage(projectId: string, params?: MonthParams, options?: CallOptions): Promise<ProjectUsage>;
29
+ }
30
+ export declare class Invitations extends Resource {
31
+ /**
32
+ * A branded page (`url`) where someone else links their own WhatsApp into
33
+ * your project. `url` is returned only here and by `resend`.
34
+ */
35
+ create(params?: InvitationCreateParams, options?: CallOptions): Promise<Invitation>;
36
+ list(params?: InvitationListParams, options?: CallOptions): Paginator<Invitation, InvitationListParams>;
37
+ get(invitationId: string, options?: CallOptions): Promise<Invitation>;
38
+ /** The link stops working. 409 `already_completed` if completed. */
39
+ cancel(invitationId: string, options?: CallOptions): Promise<Invitation>;
40
+ /** New token and `url` (the old one stops working), new expiry, email sent again. */
41
+ resend(invitationId: string, options?: CallOptions): Promise<Invitation>;
42
+ }
43
+ export declare class WebhookEndpoints extends Resource {
44
+ list(params?: ProjectListParams, options?: CallOptions): Paginator<WebhookEndpoint, ProjectListParams>;
45
+ /** `secret` is returned only here and by `rotateSecret`. */
46
+ create(params: WebhookEndpointCreateParams, options?: CallOptions): Promise<WebhookEndpoint>;
47
+ get(webhookEndpointId: string, options?: CallOptions): Promise<WebhookEndpoint>;
48
+ update(webhookEndpointId: string, params: WebhookEndpointUpdateParams, options?: CallOptions): Promise<WebhookEndpoint>;
49
+ delete(webhookEndpointId: string, options?: CallOptions): Promise<void>;
50
+ /** New signing secret; the old one stops working at once. */
51
+ rotateSecret(webhookEndpointId: string, options?: CallOptions): Promise<WebhookEndpoint>;
52
+ }
53
+ /** What the invitation page and email show. Organization keys only. */
54
+ export declare class BrandingResource extends Resource {
55
+ get(options?: CallOptions): Promise<Branding>;
56
+ update(params: BrandingUpdateParams, options?: CallOptions): Promise<Branding>;
57
+ }
58
+ /** Billable usage. Organization keys only. */
59
+ export declare class UsageResource extends Resource {
60
+ /** The current calendar month (UTC). */
61
+ get(options?: CallOptions): Promise<Usage>;
62
+ /** The rebilling export: one line per project, plus unassigned resources and totals. */
63
+ byProject(params?: MonthParams, options?: CallOptions): Promise<UsageReport>;
64
+ }
65
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/resources/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAIrC,oDAAoD;AACpD,qBAAa,cAAe,SAAQ,QAAQ;IAC1C,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,UAAe,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC;IAItG,yEAAyE;IACzE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7F,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlF;AAED;;;;GAIG;AACH,qBAAa,QAAS,SAAQ,QAAQ;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;gBAErB,IAAI,EAAE,UAAU;IAK5B,IAAI,CAAC,MAAM,GAAE,iBAAsB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,OAAO,EAAE,iBAAiB,CAAC;IAIlG,iFAAiF;IACjF,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5E,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D,wFAAwF;IACxF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/F,gHAAgH;IAChH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;CAGpG;AAED,qBAAa,WAAY,SAAQ,QAAQ;IACvC;;;OAGG;IACH,MAAM,CAAC,MAAM,GAAE,sBAA2B,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAIvF,IAAI,CAAC,MAAM,GAAE,oBAAyB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,UAAU,EAAE,oBAAoB,CAAC;IAI3G,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAIrE,oEAAoE;IACpE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAIxE,qFAAqF;IACrF,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAGzE;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,IAAI,CAAC,MAAM,GAAE,iBAAsB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC,eAAe,EAAE,iBAAiB,CAAC;IAI1G,4DAA4D;IAC5D,MAAM,CAAC,MAAM,EAAE,2BAA2B,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5F,GAAG,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAI/E,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,2BAA2B,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvH,MAAM,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE,6DAA6D;IAC7D,YAAY,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;CAGzF;AAED,uEAAuE;AACvE,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI7C,MAAM,CAAC,MAAM,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAG/E;AAED,8CAA8C;AAC9C,qBAAa,aAAc,SAAQ,QAAQ;IACzC,wCAAwC;IACxC,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;IAI1C,wFAAwF;IACxF,SAAS,CAAC,MAAM,GAAE,WAAgB,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAGjF"}
@@ -0,0 +1,115 @@
1
+ import { enc } from "../core.js";
2
+ import { Resource } from "./base.js";
3
+ const project = (projectId, suffix = "") => `/v1/projects/${enc(projectId)}${suffix}`;
4
+ /** A project's API keys. Organization keys only. */
5
+ export class ProjectApiKeys extends Resource {
6
+ list(projectId, params = {}, options) {
7
+ return this._list(project(projectId, "/api-keys"), params, undefined, options);
8
+ }
9
+ /** A key that reaches only this project. `key` is returned only here. */
10
+ create(projectId, params, options) {
11
+ return this._post(project(projectId, "/api-keys"), params, options);
12
+ }
13
+ revoke(projectId, apiKeyId, options) {
14
+ return this._delete(project(projectId, `/api-keys/${enc(apiKeyId)}`), undefined, options);
15
+ }
16
+ }
17
+ /**
18
+ * Projects isolate a platform's customers: each has its own accounts, keys,
19
+ * webhook endpoints and usage. Organization keys only. `projectId` accepts
20
+ * `ext:<externalId>`.
21
+ */
22
+ export class Projects extends Resource {
23
+ apiKeys;
24
+ constructor(http) {
25
+ super(http);
26
+ this.apiKeys = new ProjectApiKeys(http);
27
+ }
28
+ list(params = {}, options) {
29
+ return this._list("/v1/projects", params, (p) => ({ externalId: p.externalId, status: p.status }), options);
30
+ }
31
+ /** Fires `project.created`. 409 `already_exists` on a duplicate `externalId`. */
32
+ create(params, options) {
33
+ return this._post("/v1/projects", params, options);
34
+ }
35
+ get(projectId, options) {
36
+ return this._get(project(projectId), undefined, options);
37
+ }
38
+ /** Rename, relabel, change the limit, or suspend (`status: "suspended"`) and resume. */
39
+ update(projectId, params, options) {
40
+ return this._patch(project(projectId), params, options);
41
+ }
42
+ /** The project is gone at once; its accounts are logged out in the background, then `project.deleted` fires. */
43
+ delete(projectId, options) {
44
+ return this._delete(project(projectId), undefined, options);
45
+ }
46
+ getUsage(projectId, params = {}, options) {
47
+ return this._get(project(projectId, "/usage"), { month: params.month }, options);
48
+ }
49
+ }
50
+ export class Invitations extends Resource {
51
+ /**
52
+ * A branded page (`url`) where someone else links their own WhatsApp into
53
+ * your project. `url` is returned only here and by `resend`.
54
+ */
55
+ create(params = {}, options) {
56
+ return this._post("/v1/invitations", params, options);
57
+ }
58
+ list(params = {}, options) {
59
+ return this._list("/v1/invitations", params, (p) => ({ status: p.status, projectId: p.projectId }), options);
60
+ }
61
+ get(invitationId, options) {
62
+ return this._get(`/v1/invitations/${enc(invitationId)}`, undefined, options);
63
+ }
64
+ /** The link stops working. 409 `already_completed` if completed. */
65
+ cancel(invitationId, options) {
66
+ return this._post(`/v1/invitations/${enc(invitationId)}/cancel`, undefined, options);
67
+ }
68
+ /** New token and `url` (the old one stops working), new expiry, email sent again. */
69
+ resend(invitationId, options) {
70
+ return this._post(`/v1/invitations/${enc(invitationId)}/resend`, undefined, options);
71
+ }
72
+ }
73
+ export class WebhookEndpoints extends Resource {
74
+ list(params = {}, options) {
75
+ return this._list("/v1/webhook-endpoints", params, (p) => ({ projectId: p.projectId }), options);
76
+ }
77
+ /** `secret` is returned only here and by `rotateSecret`. */
78
+ create(params, options) {
79
+ return this._post("/v1/webhook-endpoints", params, options);
80
+ }
81
+ get(webhookEndpointId, options) {
82
+ return this._get(`/v1/webhook-endpoints/${enc(webhookEndpointId)}`, undefined, options);
83
+ }
84
+ update(webhookEndpointId, params, options) {
85
+ return this._patch(`/v1/webhook-endpoints/${enc(webhookEndpointId)}`, params, options);
86
+ }
87
+ delete(webhookEndpointId, options) {
88
+ return this._delete(`/v1/webhook-endpoints/${enc(webhookEndpointId)}`, undefined, options);
89
+ }
90
+ /** New signing secret; the old one stops working at once. */
91
+ rotateSecret(webhookEndpointId, options) {
92
+ return this._post(`/v1/webhook-endpoints/${enc(webhookEndpointId)}/rotate-secret`, undefined, options);
93
+ }
94
+ }
95
+ /** What the invitation page and email show. Organization keys only. */
96
+ export class BrandingResource extends Resource {
97
+ get(options) {
98
+ return this._get("/v1/branding", undefined, options);
99
+ }
100
+ update(params, options) {
101
+ return this._patch("/v1/branding", params, options);
102
+ }
103
+ }
104
+ /** Billable usage. Organization keys only. */
105
+ export class UsageResource extends Resource {
106
+ /** The current calendar month (UTC). */
107
+ get(options) {
108
+ return this._get("/v1/usage", undefined, options);
109
+ }
110
+ /** The rebilling export: one line per project, plus unassigned resources and totals. */
111
+ byProject(params = {}, options) {
112
+ return this._get("/v1/usage/by-project", { month: params.month }, options);
113
+ }
114
+ }
115
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/resources/projects.ts"],"names":[],"mappings":"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"}