seenwa 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/client.d.ts CHANGED
@@ -1,11 +1,25 @@
1
+ import { MessagesResource } from './resources/messages';
2
+ import { ConversationsResource } from './resources/conversations';
3
+ import { ContactsResource } from './resources/contacts';
4
+ import { TemplatesResource } from './resources/templates';
5
+ import { MediaResource } from './resources/media';
6
+ import { WebhooksResource } from './resources/webhooks';
1
7
  export interface SeenClientOptions {
8
+ /** API key generated from the Seen dashboard (Settings -> API Keys). Required. */
2
9
  apiKey: string;
3
10
  baseUrl?: string;
4
11
  }
12
+ export type QueryParams = Record<string, string | number | boolean | undefined>;
5
13
  export declare class SeenClient {
6
14
  private readonly apiKey;
7
15
  private readonly baseUrl;
16
+ readonly messages: MessagesResource;
17
+ readonly conversations: ConversationsResource;
18
+ readonly contacts: ContactsResource;
19
+ readonly templates: TemplatesResource;
20
+ readonly media: MediaResource;
21
+ readonly webhooks: WebhooksResource;
8
22
  constructor(options: SeenClientOptions);
9
- request<T>(method: string, path: string, body?: unknown): Promise<T>;
23
+ request<T>(method: string, path: string, body?: unknown, query?: QueryParams): Promise<T>;
10
24
  }
11
25
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,EAAE,iBAAiB;IAKhC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;CAkB3E"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAIhF,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;gBAExB,OAAO,EAAE,iBAAiB;IAgBhC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;CAyBhG"}
package/dist/client.js CHANGED
@@ -2,14 +2,36 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SeenClient = void 0;
4
4
  const errors_1 = require("./errors");
5
+ const messages_1 = require("./resources/messages");
6
+ const conversations_1 = require("./resources/conversations");
7
+ const contacts_1 = require("./resources/contacts");
8
+ const templates_1 = require("./resources/templates");
9
+ const media_1 = require("./resources/media");
10
+ const webhooks_1 = require("./resources/webhooks");
5
11
  const DEFAULT_BASE_URL = 'https://api.seen.com/api/v1';
6
12
  class SeenClient {
7
13
  constructor(options) {
14
+ if (!options.apiKey) {
15
+ throw new Error('SeenClient requires an apiKey - generate one from the Seen dashboard under Settings > API Keys.');
16
+ }
8
17
  this.apiKey = options.apiKey;
9
18
  this.baseUrl = (options.baseUrl ?? DEFAULT_BASE_URL).replace(/\/+$/, '');
19
+ this.messages = new messages_1.MessagesResource(this);
20
+ this.conversations = new conversations_1.ConversationsResource(this);
21
+ this.contacts = new contacts_1.ContactsResource(this);
22
+ this.templates = new templates_1.TemplatesResource(this);
23
+ this.media = new media_1.MediaResource(this);
24
+ this.webhooks = new webhooks_1.WebhooksResource(this);
10
25
  }
11
- async request(method, path, body) {
12
- const res = await fetch(`${this.baseUrl}${path}`, {
26
+ async request(method, path, body, query) {
27
+ const url = new URL(`${this.baseUrl}${path}`);
28
+ if (query) {
29
+ for (const [key, value] of Object.entries(query)) {
30
+ if (value !== undefined)
31
+ url.searchParams.set(key, String(value));
32
+ }
33
+ }
34
+ const res = await fetch(url.toString(), {
13
35
  method,
14
36
  headers: {
15
37
  'Content-Type': 'application/json',
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAQxC,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAEvD,MAAa,UAAU;IAIrB,YAAY,OAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc;QAC3D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;YAChD,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;aACzB;YACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAgC,CAAC;QAEtF,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,qBAAY,CAAC,uCAAuC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AA3BD,gCA2BC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,qCAAwC;AAExC,mDAAwD;AACxD,6DAAkE;AAClE,mDAAwD;AACxD,qDAA0D;AAC1D,6CAAkD;AAClD,mDAAwD;AAUxD,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAEvD,MAAa,UAAU;IAWrB,YAAY,OAA0B;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;QACrH,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEzE,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,qCAAqB,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,6BAAiB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAgB,CAAC,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc,EAAE,KAAmB;QAChF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,SAAS;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACtC,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;aACzB;YACD,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAgC,CAAC;QAEtF,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,qBAAY,CAAC,uCAAuC,GAAG,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CACF;AApDD,gCAoDC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,11 @@
1
1
  export { SeenClient } from './client';
2
- export type { SeenClientOptions } from './client';
2
+ export type { SeenClientOptions, QueryParams } from './client';
3
3
  export * from './types';
4
4
  export { SeenAPIError } from './errors';
5
+ export * from './resources/messages';
6
+ export * from './resources/conversations';
7
+ export * from './resources/contacts';
8
+ export * from './resources/templates';
9
+ export * from './resources/media';
10
+ export * from './resources/webhooks';
5
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -20,4 +20,10 @@ Object.defineProperty(exports, "SeenClient", { enumerable: true, get: function (
20
20
  __exportStar(require("./types"), exports);
21
21
  var errors_1 = require("./errors");
22
22
  Object.defineProperty(exports, "SeenAPIError", { enumerable: true, get: function () { return errors_1.SeenAPIError; } });
23
+ __exportStar(require("./resources/messages"), exports);
24
+ __exportStar(require("./resources/conversations"), exports);
25
+ __exportStar(require("./resources/contacts"), exports);
26
+ __exportStar(require("./resources/templates"), exports);
27
+ __exportStar(require("./resources/media"), exports);
28
+ __exportStar(require("./resources/webhooks"), exports);
23
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AAEnB,0CAAwB;AACxB,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAsC;AAA7B,oGAAA,UAAU,OAAA;AAEnB,0CAAwB;AACxB,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AAErB,uDAAqC;AACrC,4DAA0C;AAC1C,uDAAqC;AACrC,wDAAsC;AACtC,oDAAkC;AAClC,uDAAqC"}
@@ -0,0 +1,31 @@
1
+ import type { SeenClient, QueryParams } from '../client';
2
+ export interface ListContactsParams extends QueryParams {
3
+ search?: string;
4
+ opted_in?: boolean;
5
+ page?: number;
6
+ limit?: number;
7
+ }
8
+ export interface CreateContactParams {
9
+ phone: string;
10
+ name?: string;
11
+ email?: string;
12
+ language?: string;
13
+ tags?: string[];
14
+ opted_in?: boolean;
15
+ }
16
+ export interface UpdateContactParams {
17
+ name?: string;
18
+ email?: string;
19
+ }
20
+ export declare class ContactsResource {
21
+ private readonly client;
22
+ constructor(client: SeenClient);
23
+ list(params?: ListContactsParams): Promise<unknown>;
24
+ get(id: string): Promise<unknown>;
25
+ create(params: CreateContactParams): Promise<unknown>;
26
+ update(id: string, params: UpdateContactParams): Promise<unknown>;
27
+ delete(id: string): Promise<unknown>;
28
+ import(contacts: CreateContactParams[]): Promise<unknown>;
29
+ optOut(phone: string): Promise<unknown>;
30
+ }
31
+ //# sourceMappingURL=contacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,IAAI,CAAC,MAAM,GAAE,kBAAuB;IAIpC,GAAG,CAAC,EAAE,EAAE,MAAM;IAId,MAAM,CAAC,MAAM,EAAE,mBAAmB;IAIlC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB;IAI9C,MAAM,CAAC,EAAE,EAAE,MAAM;IAIjB,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE;IAItC,MAAM,CAAC,KAAK,EAAE,MAAM;CAGrB"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContactsResource = void 0;
4
+ class ContactsResource {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ list(params = {}) {
9
+ return this.client.request('GET', '/contacts', undefined, params);
10
+ }
11
+ get(id) {
12
+ return this.client.request('GET', `/contacts/${id}`);
13
+ }
14
+ create(params) {
15
+ return this.client.request('POST', '/contacts', params);
16
+ }
17
+ update(id, params) {
18
+ return this.client.request('PUT', `/contacts/${id}`, params);
19
+ }
20
+ delete(id) {
21
+ return this.client.request('DELETE', `/contacts/${id}`);
22
+ }
23
+ import(contacts) {
24
+ return this.client.request('POST', '/contacts/import', { contacts });
25
+ }
26
+ optOut(phone) {
27
+ return this.client.request('POST', `/contacts/opt-out/${encodeURIComponent(phone)}`);
28
+ }
29
+ }
30
+ exports.ContactsResource = ContactsResource;
31
+ //# sourceMappingURL=contacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/resources/contacts.ts"],"names":[],"mappings":";;;AAuBA,MAAa,gBAAgB;IAC3B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,IAAI,CAAC,SAA6B,EAAE;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,MAA2B;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,MAA2B;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,QAA+B;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,qBAAqB,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvF,CAAC;CACF;AA9BD,4CA8BC"}
@@ -0,0 +1,16 @@
1
+ import type { SeenClient, QueryParams } from '../client';
2
+ export interface ListConversationsParams extends QueryParams {
3
+ status?: string;
4
+ assigned_to?: string;
5
+ page?: number;
6
+ limit?: number;
7
+ }
8
+ export declare class ConversationsResource {
9
+ private readonly client;
10
+ constructor(client: SeenClient);
11
+ list(params?: ListConversationsParams): Promise<unknown>;
12
+ get(id: string): Promise<unknown>;
13
+ sendMessage(id: string, message: string): Promise<unknown>;
14
+ resolve(id: string): Promise<unknown>;
15
+ }
16
+ //# sourceMappingURL=conversations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../src/resources/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,qBAAqB;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,IAAI,CAAC,MAAM,GAAE,uBAA4B;IAIzC,GAAG,CAAC,EAAE,EAAE,MAAM;IAId,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAIvC,OAAO,CAAC,EAAE,EAAE,MAAM;CAGnB"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConversationsResource = void 0;
4
+ class ConversationsResource {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ list(params = {}) {
9
+ return this.client.request('GET', '/conversations', undefined, params);
10
+ }
11
+ get(id) {
12
+ return this.client.request('GET', `/conversations/${id}`);
13
+ }
14
+ sendMessage(id, message) {
15
+ return this.client.request('POST', `/conversations/${id}/send`, { message });
16
+ }
17
+ resolve(id) {
18
+ return this.client.request('POST', `/conversations/${id}/resolve`);
19
+ }
20
+ }
21
+ exports.ConversationsResource = ConversationsResource;
22
+ //# sourceMappingURL=conversations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/resources/conversations.ts"],"names":[],"mappings":";;;AASA,MAAa,qBAAqB;IAChC,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,IAAI,CAAC,SAAkC,EAAE;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,WAAW,CAAC,EAAU,EAAE,OAAe;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC;IACrE,CAAC;CACF;AAlBD,sDAkBC"}
@@ -0,0 +1,18 @@
1
+ import type { SeenClient, QueryParams } from '../client';
2
+ export interface ListMediaParams extends QueryParams {
3
+ page?: number;
4
+ limit?: number;
5
+ }
6
+ export interface UploadMediaParams {
7
+ file: string;
8
+ file_type?: string;
9
+ file_name?: string;
10
+ }
11
+ export declare class MediaResource {
12
+ private readonly client;
13
+ constructor(client: SeenClient);
14
+ list(params?: ListMediaParams): Promise<unknown>;
15
+ upload(params: UploadMediaParams): Promise<unknown>;
16
+ delete(id: string): Promise<unknown>;
17
+ }
18
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/resources/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,IAAI,CAAC,MAAM,GAAE,eAAoB;IAIjC,MAAM,CAAC,MAAM,EAAE,iBAAiB;IAIhC,MAAM,CAAC,EAAE,EAAE,MAAM;CAGlB"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MediaResource = void 0;
4
+ class MediaResource {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ list(params = {}) {
9
+ return this.client.request('GET', '/media', undefined, params);
10
+ }
11
+ upload(params) {
12
+ return this.client.request('POST', '/media/upload', params);
13
+ }
14
+ delete(id) {
15
+ return this.client.request('DELETE', `/media/${id}`);
16
+ }
17
+ }
18
+ exports.MediaResource = MediaResource;
19
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/resources/media.ts"],"names":[],"mappings":";;;AAaA,MAAa,aAAa;IACxB,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,IAAI,CAAC,SAA0B,EAAE;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,MAAyB;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AAdD,sCAcC"}
@@ -0,0 +1,40 @@
1
+ import type { SeenClient, QueryParams } from '../client';
2
+ export interface SendTextParams {
3
+ to: string;
4
+ phone_number_id: string;
5
+ message: string;
6
+ }
7
+ export interface SendTemplateParams {
8
+ to: string;
9
+ phone_number_id: string;
10
+ template_name: string;
11
+ language_code?: string;
12
+ components?: unknown[];
13
+ }
14
+ export interface SendMediaParams {
15
+ to: string;
16
+ phone_number_id: string;
17
+ type: 'image' | 'video' | 'audio' | 'document' | 'sticker';
18
+ media_id?: string;
19
+ link?: string;
20
+ caption?: string;
21
+ filename?: string;
22
+ }
23
+ export interface ListMessagesParams extends QueryParams {
24
+ contact?: string;
25
+ conversation?: string;
26
+ status?: string;
27
+ type?: string;
28
+ page?: number;
29
+ limit?: number;
30
+ }
31
+ export declare class MessagesResource {
32
+ private readonly client;
33
+ constructor(client: SeenClient);
34
+ sendText(params: SendTextParams): Promise<unknown>;
35
+ sendTemplate(params: SendTemplateParams): Promise<unknown>;
36
+ sendMedia(params: SendMediaParams): Promise<unknown>;
37
+ list(params?: ListMessagesParams): Promise<unknown>;
38
+ get(id: string): Promise<unknown>;
39
+ }
40
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,QAAQ,CAAC,MAAM,EAAE,cAAc;IAI/B,YAAY,CAAC,MAAM,EAAE,kBAAkB;IAIvC,SAAS,CAAC,MAAM,EAAE,eAAe;IAIjC,IAAI,CAAC,MAAM,GAAE,kBAAuB;IAIpC,GAAG,CAAC,EAAE,EAAE,MAAM;CAGf"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessagesResource = void 0;
4
+ class MessagesResource {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ sendText(params) {
9
+ return this.client.request('POST', '/messages/text', params);
10
+ }
11
+ sendTemplate(params) {
12
+ return this.client.request('POST', '/messages/template', params);
13
+ }
14
+ sendMedia(params) {
15
+ return this.client.request('POST', '/messages/media', params);
16
+ }
17
+ list(params = {}) {
18
+ return this.client.request('GET', '/messages', undefined, params);
19
+ }
20
+ get(id) {
21
+ return this.client.request('GET', `/messages/${id}`);
22
+ }
23
+ }
24
+ exports.MessagesResource = MessagesResource;
25
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":";;;AAmCA,MAAa,gBAAgB;IAC3B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,QAAQ,CAAC,MAAsB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC;IAED,YAAY,CAAC,MAA0B;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,SAAS,CAAC,MAAuB;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,CAAC,SAA6B,EAAE;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;CACF;AAtBD,4CAsBC"}
@@ -0,0 +1,21 @@
1
+ import type { SeenClient, QueryParams } from '../client';
2
+ export interface CreateTemplateParams {
3
+ name: string;
4
+ category: 'marketing' | 'utility' | 'authentication';
5
+ language?: string;
6
+ components: unknown[];
7
+ }
8
+ export interface ListTemplatesParams extends QueryParams {
9
+ status?: string;
10
+ category?: string;
11
+ page?: number;
12
+ limit?: number;
13
+ }
14
+ export declare class TemplatesResource {
15
+ private readonly client;
16
+ constructor(client: SeenClient);
17
+ create(params: CreateTemplateParams): Promise<unknown>;
18
+ list(params?: ListTemplatesParams): Promise<unknown>;
19
+ get(id: string): Promise<unknown>;
20
+ }
21
+ //# 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,WAAW,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,SAAS,GAAG,gBAAgB,CAAC;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,OAAO,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,MAAM,CAAC,MAAM,EAAE,oBAAoB;IAInC,IAAI,CAAC,MAAM,GAAE,mBAAwB;IAIrC,GAAG,CAAC,EAAE,EAAE,MAAM;CAGf"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplatesResource = void 0;
4
+ class TemplatesResource {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ create(params) {
9
+ return this.client.request('POST', '/templates', params);
10
+ }
11
+ list(params = {}) {
12
+ return this.client.request('GET', '/templates', undefined, params);
13
+ }
14
+ get(id) {
15
+ return this.client.request('GET', `/templates/${id}`);
16
+ }
17
+ }
18
+ exports.TemplatesResource = TemplatesResource;
19
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":";;;AAgBA,MAAa,iBAAiB;IAC5B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,MAAM,CAAC,MAA4B;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,SAA8B,EAAE;QACnC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,GAAG,CAAC,EAAU;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC;IACxD,CAAC;CACF;AAdD,8CAcC"}
@@ -0,0 +1,20 @@
1
+ import type { SeenClient } from '../client';
2
+ export interface CreateWebhookParams {
3
+ url: string;
4
+ events: string[];
5
+ }
6
+ export interface UpdateWebhookParams {
7
+ url?: string;
8
+ events?: string[];
9
+ is_active?: boolean;
10
+ }
11
+ export declare class WebhooksResource {
12
+ private readonly client;
13
+ constructor(client: SeenClient);
14
+ list(): Promise<unknown>;
15
+ create(params: CreateWebhookParams): Promise<unknown>;
16
+ update(id: string, params: UpdateWebhookParams): Promise<unknown>;
17
+ delete(id: string): Promise<unknown>;
18
+ test(id: string): Promise<unknown>;
19
+ }
20
+ //# 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,WAAW,CAAC;AAE5C,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAE/C,IAAI;IAIJ,MAAM,CAAC,MAAM,EAAE,mBAAmB;IAIlC,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB;IAI9C,MAAM,CAAC,EAAE,EAAE,MAAM;IAIjB,IAAI,CAAC,EAAE,EAAE,MAAM;CAGhB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebhooksResource = void 0;
4
+ class WebhooksResource {
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ list() {
9
+ return this.client.request('GET', '/webhooks');
10
+ }
11
+ create(params) {
12
+ return this.client.request('POST', '/webhooks', params);
13
+ }
14
+ update(id, params) {
15
+ return this.client.request('PATCH', `/webhooks/${id}`, params);
16
+ }
17
+ delete(id) {
18
+ return this.client.request('DELETE', `/webhooks/${id}`);
19
+ }
20
+ test(id) {
21
+ return this.client.request('POST', `/webhooks/${id}/test`);
22
+ }
23
+ }
24
+ exports.WebhooksResource = WebhooksResource;
25
+ //# sourceMappingURL=webhooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/resources/webhooks.ts"],"names":[],"mappings":";;;AAaA,MAAa,gBAAgB;IAC3B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,IAAI;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,MAA2B;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,MAA2B;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;CACF;AAtBD,4CAsBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "seenwa",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Official Node.js/TypeScript SDK for the Seen WhatsApp Business API.",
5
5
  "license": "MIT",
6
6
  "repository": {