@geekapps/post-fastify 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 (96) hide show
  1. package/dist/client.d.ts +31 -0
  2. package/dist/client.d.ts.map +1 -0
  3. package/dist/client.js +29 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/errors.d.ts +11 -0
  6. package/dist/errors.d.ts.map +1 -0
  7. package/dist/errors.js +24 -0
  8. package/dist/errors.js.map +1 -0
  9. package/dist/http.d.ts +21 -0
  10. package/dist/http.d.ts.map +1 -0
  11. package/dist/http.js +56 -0
  12. package/dist/http.js.map +1 -0
  13. package/dist/index.d.ts +21 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +17 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/nextjs.d.ts +22 -0
  18. package/dist/nextjs.d.ts.map +1 -0
  19. package/dist/nextjs.js +15 -0
  20. package/dist/nextjs.js.map +1 -0
  21. package/dist/plugin.d.ts +19 -0
  22. package/dist/plugin.d.ts.map +1 -0
  23. package/dist/plugin.js +17 -0
  24. package/dist/plugin.js.map +1 -0
  25. package/dist/resources/domains.d.ts +14 -0
  26. package/dist/resources/domains.d.ts.map +1 -0
  27. package/dist/resources/domains.js +21 -0
  28. package/dist/resources/domains.js.map +1 -0
  29. package/dist/resources/history.d.ts +9 -0
  30. package/dist/resources/history.d.ts.map +1 -0
  31. package/dist/resources/history.js +26 -0
  32. package/dist/resources/history.js.map +1 -0
  33. package/dist/resources/managed-numbers.d.ts +28 -0
  34. package/dist/resources/managed-numbers.d.ts.map +1 -0
  35. package/dist/resources/managed-numbers.js +24 -0
  36. package/dist/resources/managed-numbers.js.map +1 -0
  37. package/dist/resources/messages.d.ts +8 -0
  38. package/dist/resources/messages.d.ts.map +1 -0
  39. package/dist/resources/messages.js +9 -0
  40. package/dist/resources/messages.js.map +1 -0
  41. package/dist/resources/plans.d.ts +10 -0
  42. package/dist/resources/plans.d.ts.map +1 -0
  43. package/dist/resources/plans.js +15 -0
  44. package/dist/resources/plans.js.map +1 -0
  45. package/dist/resources/smtp.d.ts +14 -0
  46. package/dist/resources/smtp.d.ts.map +1 -0
  47. package/dist/resources/smtp.js +18 -0
  48. package/dist/resources/smtp.js.map +1 -0
  49. package/dist/resources/statistics.d.ts +8 -0
  50. package/dist/resources/statistics.d.ts.map +1 -0
  51. package/dist/resources/statistics.js +17 -0
  52. package/dist/resources/statistics.js.map +1 -0
  53. package/dist/resources/templates.d.ts +17 -0
  54. package/dist/resources/templates.d.ts.map +1 -0
  55. package/dist/resources/templates.js +33 -0
  56. package/dist/resources/templates.js.map +1 -0
  57. package/dist/resources/webhooks.d.ts +13 -0
  58. package/dist/resources/webhooks.d.ts.map +1 -0
  59. package/dist/resources/webhooks.js +24 -0
  60. package/dist/resources/webhooks.js.map +1 -0
  61. package/dist/resources/whatsapp-numbers.d.ts +23 -0
  62. package/dist/resources/whatsapp-numbers.d.ts.map +1 -0
  63. package/dist/resources/whatsapp-numbers.js +56 -0
  64. package/dist/resources/whatsapp-numbers.js.map +1 -0
  65. package/dist/resources/whatsapp-templates.d.ts +12 -0
  66. package/dist/resources/whatsapp-templates.d.ts.map +1 -0
  67. package/dist/resources/whatsapp-templates.js +21 -0
  68. package/dist/resources/whatsapp-templates.js.map +1 -0
  69. package/dist/service-account.d.ts +47 -0
  70. package/dist/service-account.d.ts.map +1 -0
  71. package/dist/service-account.js +76 -0
  72. package/dist/service-account.js.map +1 -0
  73. package/dist/types.d.ts +346 -0
  74. package/dist/types.d.ts.map +1 -0
  75. package/dist/types.js +3 -0
  76. package/dist/types.js.map +1 -0
  77. package/package.json +27 -0
  78. package/src/client.ts +49 -0
  79. package/src/errors.ts +30 -0
  80. package/src/http.ts +88 -0
  81. package/src/index.ts +79 -0
  82. package/src/plugin.ts +39 -0
  83. package/src/resources/domains.ts +26 -0
  84. package/src/resources/history.ts +22 -0
  85. package/src/resources/managed-numbers.ts +47 -0
  86. package/src/resources/messages.ts +10 -0
  87. package/src/resources/plans.ts +18 -0
  88. package/src/resources/smtp.ts +22 -0
  89. package/src/resources/statistics.ts +15 -0
  90. package/src/resources/templates.ts +44 -0
  91. package/src/resources/webhooks.ts +37 -0
  92. package/src/resources/whatsapp-numbers.ts +84 -0
  93. package/src/resources/whatsapp-templates.ts +31 -0
  94. package/src/service-account.ts +112 -0
  95. package/src/types.ts +418 -0
  96. package/tsconfig.json +18 -0
@@ -0,0 +1,8 @@
1
+ import type { HttpClient } from "../http.js";
2
+ import type { StatisticsParams, StatisticsResult } from "../types.js";
3
+ export declare class StatisticsResource {
4
+ private readonly http;
5
+ constructor(http: HttpClient);
6
+ get(params?: StatisticsParams): Promise<StatisticsResult>;
7
+ }
8
+ //# sourceMappingURL=statistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statistics.d.ts","sourceRoot":"","sources":["../../src/resources/statistics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEtE,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,GAAG,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAQ1D"}
@@ -0,0 +1,17 @@
1
+ export class StatisticsResource {
2
+ constructor(http) {
3
+ this.http = http;
4
+ }
5
+ get(params) {
6
+ const qs = new URLSearchParams();
7
+ if (params?.from)
8
+ qs.set("from", params.from);
9
+ if (params?.to)
10
+ qs.set("to", params.to);
11
+ if (params?.groupBy)
12
+ qs.set("groupBy", params.groupBy);
13
+ const query = qs.toString();
14
+ return this.http.get(`/statistics${query ? `?${query}` : ""}`);
15
+ }
16
+ }
17
+ //# sourceMappingURL=statistics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statistics.js","sourceRoot":"","sources":["../../src/resources/statistics.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,kBAAkB;IAC7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,GAAG,CAAC,MAAyB;QAC3B,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,IAAI;YAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,EAAE;YAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,MAAM,EAAE,OAAO;YAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,cAAc,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import type { HttpClient } from "../http.js";
2
+ import type { CreateTemplateInput, MessageTemplate, MessageType, SaveDraftInput, UpdateTemplateInput } from "../types.js";
3
+ export declare class TemplatesResource {
4
+ private readonly http;
5
+ constructor(http: HttpClient);
6
+ list(params?: {
7
+ type?: MessageType;
8
+ isActive?: boolean;
9
+ }): Promise<MessageTemplate[]>;
10
+ get(id: string): Promise<MessageTemplate>;
11
+ create(input: CreateTemplateInput): Promise<MessageTemplate>;
12
+ update(id: string, input: UpdateTemplateInput): Promise<MessageTemplate>;
13
+ saveDraft(id: string, input: SaveDraftInput): Promise<MessageTemplate>;
14
+ publish(id: string): Promise<MessageTemplate>;
15
+ delete(id: string): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,cAAc,EACd,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,WAAW,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQrF,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIzC,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5D,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAItE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI7C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlC"}
@@ -0,0 +1,33 @@
1
+ export class TemplatesResource {
2
+ constructor(http) {
3
+ this.http = http;
4
+ }
5
+ list(params) {
6
+ const qs = new URLSearchParams();
7
+ if (params?.type)
8
+ qs.set("type", params.type);
9
+ if (params?.isActive !== undefined)
10
+ qs.set("isActive", String(params.isActive));
11
+ const query = qs.toString();
12
+ return this.http.get(`/templates${query ? `?${query}` : ""}`);
13
+ }
14
+ get(id) {
15
+ return this.http.get(`/templates/${id}`);
16
+ }
17
+ create(input) {
18
+ return this.http.post("/templates", input);
19
+ }
20
+ update(id, input) {
21
+ return this.http.put(`/templates/${id}`, input);
22
+ }
23
+ saveDraft(id, input) {
24
+ return this.http.patch(`/templates/${id}/draft`, input);
25
+ }
26
+ publish(id) {
27
+ return this.http.post(`/templates/${id}/publish`);
28
+ }
29
+ delete(id) {
30
+ return this.http.delete(`/templates/${id}`);
31
+ }
32
+ }
33
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,iBAAiB;IAC5B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI,CAAC,MAAmD;QACtD,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QACjC,IAAI,MAAM,EAAE,IAAI;YAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,MAAM,EAAE,QAAQ,KAAK,SAAS;YAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,aAAa,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,cAAc,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,CAAC,KAA0B;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,KAA0B;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,cAAc,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,KAAqB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAkB,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,cAAc,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAC9C,CAAC;CACF"}
@@ -0,0 +1,13 @@
1
+ import type { HttpClient } from "../http.js";
2
+ import type { CreateWebhookInput, OrgWebhook, OrgWebhookWithSecret, RotateSecretResult, UpdateWebhookInput, WebhookDelivery } from "../types.js";
3
+ export declare class WebhooksResource {
4
+ private readonly http;
5
+ constructor(http: HttpClient);
6
+ list(): Promise<OrgWebhook[]>;
7
+ create(input: CreateWebhookInput): Promise<OrgWebhookWithSecret>;
8
+ update(id: string, input: UpdateWebhookInput): Promise<OrgWebhook>;
9
+ delete(id: string): Promise<void>;
10
+ listDeliveries(id: string): Promise<WebhookDelivery[]>;
11
+ rotateSecret(id: string): Promise<RotateSecretResult>;
12
+ }
13
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI7B,MAAM,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAIhE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAIlE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAItD,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAGtD"}
@@ -0,0 +1,24 @@
1
+ export class WebhooksResource {
2
+ constructor(http) {
3
+ this.http = http;
4
+ }
5
+ list() {
6
+ return this.http.get("/webhooks");
7
+ }
8
+ create(input) {
9
+ return this.http.post("/webhooks", input);
10
+ }
11
+ update(id, input) {
12
+ return this.http.put(`/webhooks/${id}`, input);
13
+ }
14
+ delete(id) {
15
+ return this.http.delete(`/webhooks/${id}`);
16
+ }
17
+ listDeliveries(id) {
18
+ return this.http.get(`/webhooks/${id}/deliveries`);
19
+ }
20
+ rotateSecret(id) {
21
+ return this.http.post(`/webhooks/${id}/rotate-secret`);
22
+ }
23
+ }
24
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,gBAAgB;IAC3B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,KAAyB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,WAAW,EAAE,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,KAAyB;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,aAAa,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,aAAa,EAAE,aAAa,CAAC,CAAC;IACxE,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAqB,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC7E,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import type { HttpClient } from "../http.js";
2
+ import type { ConnectWabaInput, ConnectWhatsappNumberInput, OrgWaba, PhoneNumberStatusResult, RegisterWhatsappNumberInput, UpdateWhatsappProfileInput, WabaHealthResult, WhatsappNumber, WhatsappNumberProfile } from "../types.js";
3
+ export declare class WhatsappNumbersResource {
4
+ private readonly http;
5
+ constructor(http: HttpClient);
6
+ listWabas(): Promise<OrgWaba[]>;
7
+ connectWaba(input: ConnectWabaInput): Promise<OrgWaba>;
8
+ reconnectWaba(id: string): Promise<OrgWaba>;
9
+ disconnectWaba(id: string): Promise<void>;
10
+ getWabaHealth(id: string): Promise<WabaHealthResult>;
11
+ listNumbers(): Promise<WhatsappNumber[]>;
12
+ connectNumber(input: ConnectWhatsappNumberInput): Promise<WhatsappNumber>;
13
+ registerNumber(input: RegisterWhatsappNumberInput): Promise<WhatsappNumber>;
14
+ verifyCode(id: string, code: string): Promise<WhatsappNumber>;
15
+ resendCode(id: string): Promise<void>;
16
+ getProfile(id: string): Promise<WhatsappNumberProfile>;
17
+ updateProfile(id: string, input: UpdateWhatsappProfileInput): Promise<WhatsappNumberProfile>;
18
+ updateDisplayName(id: string, displayName: string): Promise<WhatsappNumber>;
19
+ getStatus(id: string): Promise<PhoneNumberStatusResult>;
20
+ refreshNumbers(): Promise<WhatsappNumber[]>;
21
+ deleteNumber(id: string): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=whatsapp-numbers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-numbers.d.ts","sourceRoot":"","sources":["../../src/resources/whatsapp-numbers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,gBAAgB,EAChB,0BAA0B,EAC1B,OAAO,EACP,uBAAuB,EACvB,2BAA2B,EAC3B,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAErB,qBAAa,uBAAuB;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAI7C,SAAS,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI/B,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI3C,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMpD,WAAW,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAIxC,aAAa,CAAC,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,cAAc,CAAC;IAIzE,cAAc,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;IAI3E,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI7D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrC,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAItD,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,0BAA0B,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAI5F,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI3E,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIvD,cAAc,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAI3C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGxC"}
@@ -0,0 +1,56 @@
1
+ export class WhatsappNumbersResource {
2
+ constructor(http) {
3
+ this.http = http;
4
+ }
5
+ // ── WABAs ────────────────────────────────────────────────────────────────
6
+ listWabas() {
7
+ return this.http.get("/whatsapp/wabas");
8
+ }
9
+ connectWaba(input) {
10
+ return this.http.post("/whatsapp/wabas/connect", input);
11
+ }
12
+ reconnectWaba(id) {
13
+ return this.http.post(`/whatsapp/wabas/${id}/reconnect`);
14
+ }
15
+ disconnectWaba(id) {
16
+ return this.http.delete(`/whatsapp/wabas/${id}`);
17
+ }
18
+ getWabaHealth(id) {
19
+ return this.http.get(`/whatsapp/wabas/${id}/health`);
20
+ }
21
+ // ── Numbers ──────────────────────────────────────────────────────────────
22
+ listNumbers() {
23
+ return this.http.get("/whatsapp/numbers");
24
+ }
25
+ connectNumber(input) {
26
+ return this.http.post("/whatsapp/numbers/connect", input);
27
+ }
28
+ registerNumber(input) {
29
+ return this.http.post("/whatsapp/numbers", input);
30
+ }
31
+ verifyCode(id, code) {
32
+ return this.http.post(`/whatsapp/numbers/${id}/verify-code`, { code });
33
+ }
34
+ resendCode(id) {
35
+ return this.http.post(`/whatsapp/numbers/${id}/resend-code`);
36
+ }
37
+ getProfile(id) {
38
+ return this.http.get(`/whatsapp/numbers/${id}/profile`);
39
+ }
40
+ updateProfile(id, input) {
41
+ return this.http.patch(`/whatsapp/numbers/${id}/profile`, input);
42
+ }
43
+ updateDisplayName(id, displayName) {
44
+ return this.http.patch(`/whatsapp/numbers/${id}`, { displayName });
45
+ }
46
+ getStatus(id) {
47
+ return this.http.get(`/whatsapp/numbers/${id}/status`);
48
+ }
49
+ refreshNumbers() {
50
+ return this.http.post("/whatsapp/numbers/refresh");
51
+ }
52
+ deleteNumber(id) {
53
+ return this.http.delete(`/whatsapp/numbers/${id}`);
54
+ }
55
+ }
56
+ //# sourceMappingURL=whatsapp-numbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-numbers.js","sourceRoot":"","sources":["../../src/resources/whatsapp-numbers.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,uBAAuB;IAClC,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,4EAA4E;IAE5E,SAAS;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,WAAW,CAAC,KAAuB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,mBAAmB,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,mBAAmB,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,4EAA4E;IAE5E,WAAW;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,aAAa,CAAC,KAAiC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,2BAA2B,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IAED,cAAc,CAAC,KAAkC;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC;IAED,UAAU,CAAC,EAAU,EAAE,IAAY;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,qBAAqB,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;IAC/D,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,qBAAqB,EAAE,UAAU,CAAC,CAAC;IACjF,CAAC;IAED,aAAa,CAAC,EAAU,EAAE,KAAiC;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAwB,qBAAqB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1F,CAAC;IAED,iBAAiB,CAAC,EAAU,EAAE,WAAmB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAiB,qBAAqB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,qBAAqB,EAAE,SAAS,CAAC,CAAC;IAClF,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,2BAA2B,CAAC,CAAC;IACvE,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import type { HttpClient } from "../http.js";
2
+ import type { CreateWhatsappTemplateInput, SyncWhatsappTemplatesResult, UpdateWhatsappTemplateInput, WhatsappTemplate } from "../types.js";
3
+ export declare class WhatsappTemplatesResource {
4
+ private readonly http;
5
+ constructor(http: HttpClient);
6
+ list(): Promise<WhatsappTemplate[]>;
7
+ create(input: CreateWhatsappTemplateInput): Promise<WhatsappTemplate>;
8
+ update(id: string, input: UpdateWhatsappTemplateInput): Promise<WhatsappTemplate>;
9
+ sync(): Promise<SyncWhatsappTemplatesResult>;
10
+ delete(id: string): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=whatsapp-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-templates.d.ts","sourceRoot":"","sources":["../../src/resources/whatsapp-templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,2BAA2B,EAC3B,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAE7C,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAInC,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIrE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,2BAA2B,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIjF,IAAI,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAI5C,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGlC"}
@@ -0,0 +1,21 @@
1
+ export class WhatsappTemplatesResource {
2
+ constructor(http) {
3
+ this.http = http;
4
+ }
5
+ list() {
6
+ return this.http.get("/whatsapp/templates");
7
+ }
8
+ create(input) {
9
+ return this.http.post("/whatsapp/templates", input);
10
+ }
11
+ update(id, input) {
12
+ return this.http.put(`/whatsapp/templates/${id}`, input);
13
+ }
14
+ sync() {
15
+ return this.http.post("/whatsapp/templates/sync");
16
+ }
17
+ delete(id) {
18
+ return this.http.delete(`/whatsapp/templates/${id}`);
19
+ }
20
+ }
21
+ //# sourceMappingURL=whatsapp-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whatsapp-templates.js","sourceRoot":"","sources":["../../src/resources/whatsapp-templates.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,yBAAyB;IACpC,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,qBAAqB,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,CAAC,KAAkC;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,qBAAqB,EAAE,KAAK,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,KAAkC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,uBAAuB,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,0BAA0B,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF"}
@@ -0,0 +1,47 @@
1
+ import type { TokenResolver } from "./http.js";
2
+ export interface ServiceAccountOptions {
3
+ /** Geekapps Auth issuer base URL (e.g. https://auth.geekapps.com.br) */
4
+ issuerUrl: string;
5
+ clientId: string;
6
+ clientSecret: string;
7
+ /** Seconds before expiry to proactively refresh. Defaults to 30. */
8
+ refreshBeforeExpirySeconds?: number;
9
+ }
10
+ /**
11
+ * Fetches a short-lived token from the Geekapps Auth service using
12
+ * client_credentials grant and caches it until near expiry.
13
+ *
14
+ * Tokens are valid for ~7 min. A new one is fetched 30 s before that.
15
+ */
16
+ export declare class ServiceAccountTokenProvider {
17
+ private readonly issuerUrl;
18
+ private readonly clientId;
19
+ private readonly clientSecret;
20
+ private readonly refreshBeforeMs;
21
+ private cached;
22
+ private inflight;
23
+ constructor(options: ServiceAccountOptions);
24
+ /** Returns a valid token, fetching a new one if necessary. */
25
+ getToken(): Promise<string>;
26
+ private fetchToken;
27
+ /** Returns this provider as a TokenResolver to pass directly to PostClient. */
28
+ asTokenResolver(): TokenResolver;
29
+ }
30
+ /**
31
+ * Convenience factory. Returns a TokenResolver ready for use in PostClient.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const post = new PostClient({
36
+ * baseUrl: process.env.POST_API_URL!,
37
+ * token: createServiceAccountToken({
38
+ * issuerUrl: process.env.GEEKAPPS_AUTH_ISSUER!,
39
+ * clientId: process.env.GEEKAPPS_SERVICE_ACCOUNT_CLIENT_ID!,
40
+ * clientSecret: process.env.GEEKAPPS_SERVICE_ACCOUNT_CLIENT_SECRET!,
41
+ * }),
42
+ * organizationId: process.env.POST_ORGANIZATION_ID!,
43
+ * });
44
+ * ```
45
+ */
46
+ export declare function createServiceAccountToken(options: ServiceAccountOptions): TokenResolver;
47
+ //# sourceMappingURL=service-account.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-account.d.ts","sourceRoot":"","sources":["../src/service-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC;AAOD;;;;;GAKG;AACH,qBAAa,2BAA2B;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,OAAO,EAAE,qBAAqB;IAO1C,8DAA8D;IAC9D,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;YAiBb,UAAU;IA8BxB,+EAA+E;IAC/E,eAAe,IAAI,aAAa;CAGjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,qBAAqB,GAC7B,aAAa,CAEf"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Fetches a short-lived token from the Geekapps Auth service using
3
+ * client_credentials grant and caches it until near expiry.
4
+ *
5
+ * Tokens are valid for ~7 min. A new one is fetched 30 s before that.
6
+ */
7
+ export class ServiceAccountTokenProvider {
8
+ constructor(options) {
9
+ this.cached = null;
10
+ this.inflight = null;
11
+ this.issuerUrl = options.issuerUrl.replace(/\/$/, "");
12
+ this.clientId = options.clientId;
13
+ this.clientSecret = options.clientSecret;
14
+ this.refreshBeforeMs = (options.refreshBeforeExpirySeconds ?? 30) * 1000;
15
+ }
16
+ /** Returns a valid token, fetching a new one if necessary. */
17
+ getToken() {
18
+ const now = Date.now();
19
+ if (this.cached && this.cached.expiresAt - now > this.refreshBeforeMs) {
20
+ return Promise.resolve(this.cached.value);
21
+ }
22
+ // Deduplicate concurrent calls — only one fetch in flight at a time
23
+ if (this.inflight)
24
+ return this.inflight;
25
+ this.inflight = this.fetchToken().finally(() => {
26
+ this.inflight = null;
27
+ });
28
+ return this.inflight;
29
+ }
30
+ async fetchToken() {
31
+ const body = new URLSearchParams();
32
+ body.set("grant_type", "client_credentials");
33
+ body.set("client_id", this.clientId);
34
+ body.set("client_secret", this.clientSecret);
35
+ const res = await fetch(`${this.issuerUrl}/auth/token`, {
36
+ method: "POST",
37
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
38
+ body,
39
+ });
40
+ if (!res.ok) {
41
+ const err = await res.json().catch(() => ({}));
42
+ throw new Error(`ServiceAccount token fetch failed (${res.status}): ${err.error ?? "unknown error"}`);
43
+ }
44
+ const data = await res.json();
45
+ const expiresInMs = (data.expires_in ?? 420) * 1000;
46
+ this.cached = {
47
+ value: data.access_token,
48
+ expiresAt: Date.now() + expiresInMs,
49
+ };
50
+ return this.cached.value;
51
+ }
52
+ /** Returns this provider as a TokenResolver to pass directly to PostClient. */
53
+ asTokenResolver() {
54
+ return () => this.getToken();
55
+ }
56
+ }
57
+ /**
58
+ * Convenience factory. Returns a TokenResolver ready for use in PostClient.
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * const post = new PostClient({
63
+ * baseUrl: process.env.POST_API_URL!,
64
+ * token: createServiceAccountToken({
65
+ * issuerUrl: process.env.GEEKAPPS_AUTH_ISSUER!,
66
+ * clientId: process.env.GEEKAPPS_SERVICE_ACCOUNT_CLIENT_ID!,
67
+ * clientSecret: process.env.GEEKAPPS_SERVICE_ACCOUNT_CLIENT_SECRET!,
68
+ * }),
69
+ * organizationId: process.env.POST_ORGANIZATION_ID!,
70
+ * });
71
+ * ```
72
+ */
73
+ export function createServiceAccountToken(options) {
74
+ return new ServiceAccountTokenProvider(options).asTokenResolver();
75
+ }
76
+ //# sourceMappingURL=service-account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-account.js","sourceRoot":"","sources":["../src/service-account.ts"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IAQtC,YAAY,OAA8B;QAHlC,WAAM,GAAuB,IAAI,CAAC;QAClC,aAAQ,GAA2B,IAAI,CAAC;QAG9C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC3E,CAAC;IAED,8DAA8D;IAC9D,QAAQ;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACtE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,oEAAoE;QACpE,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAExC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,MAAM,IAAI,GAAG,IAAI,eAAe,EAAE,CAAC;QACnC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;QAC7C,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE7C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,aAAa,EAAE;YACtD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,mCAAmC,EAAE;YAChE,IAAI;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAuB,CAAC;YACrE,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,eAAe,EAAE,CACrF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAmD,CAAC;QAE/E,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW;SACpC,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC3B,CAAC;IAED,+EAA+E;IAC/E,eAAe;QACb,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAA8B;IAE9B,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;AACpE,CAAC"}