@kirimdev/sdk 1.0.1 → 2.0.1
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/README.md +63 -63
- package/dist/client.d.ts +36 -9
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +43 -14
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/resources/contacts.d.ts +12 -5
- package/dist/resources/contacts.d.ts.map +1 -1
- package/dist/resources/contacts.js +24 -13
- package/dist/resources/contacts.js.map +1 -1
- package/dist/resources/conversations.d.ts +10 -3
- package/dist/resources/conversations.d.ts.map +1 -1
- package/dist/resources/conversations.js +19 -8
- package/dist/resources/conversations.js.map +1 -1
- package/dist/resources/messages.d.ts +43 -6
- package/dist/resources/messages.d.ts.map +1 -1
- package/dist/resources/messages.js +61 -10
- package/dist/resources/messages.js.map +1 -1
- package/dist/resources/phone-number.d.ts +38 -0
- package/dist/resources/phone-number.d.ts.map +1 -0
- package/dist/resources/phone-number.js +29 -0
- package/dist/resources/phone-number.js.map +1 -0
- package/dist/resources/templates.d.ts +8 -1
- package/dist/resources/templates.d.ts.map +1 -1
- package/dist/resources/templates.js +14 -3
- package/dist/resources/templates.js.map +1 -1
- package/dist/types.d.ts +30 -12
- package/dist/types.d.ts.map +1 -1
- package/openapi.json +6920 -6330
- package/package.json +1 -1
|
@@ -1,19 +1,56 @@
|
|
|
1
1
|
import type { HttpClient, RequestOptions } from '../http.js';
|
|
2
2
|
import { Paginator } from '../pagination.js';
|
|
3
3
|
import type { ListMessagesParams, Message, MessageListItem, MessageMediaRedirect, SendMessageParams } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Messages resource — Meta-style path-scoped.
|
|
6
|
+
*
|
|
7
|
+
* Instantiated by {@link PhoneNumberClient}; not constructed directly
|
|
8
|
+
* by SDK consumers. The `prefix` is `/{phone_number_id}` and is
|
|
9
|
+
* pre-built (and URL-encoded) by the parent client so every method
|
|
10
|
+
* here just appends its own path segment.
|
|
11
|
+
*/
|
|
4
12
|
export declare class MessagesResource {
|
|
5
13
|
private readonly http;
|
|
6
|
-
|
|
7
|
-
|
|
14
|
+
private readonly prefix;
|
|
15
|
+
constructor(http: HttpClient, prefix: string);
|
|
16
|
+
/** POST /{phone_number_id}/messages — send a WhatsApp message (any supported type). */
|
|
8
17
|
send(params: SendMessageParams, options?: RequestOptions): Promise<Message>;
|
|
9
|
-
/** GET /messages — list messages; async-iterable + per-page. */
|
|
18
|
+
/** GET /{phone_number_id}/messages — list messages; async-iterable + per-page. */
|
|
10
19
|
list(params?: ListMessagesParams, options?: RequestOptions): Paginator<MessageListItem>;
|
|
11
|
-
/** GET /messages/{id} */
|
|
20
|
+
/** GET /{phone_number_id}/messages/{id} */
|
|
12
21
|
retrieve(id: string, options?: RequestOptions): Promise<Message>;
|
|
13
22
|
/**
|
|
14
|
-
* GET /messages/{id}/media — returns the signed URL
|
|
15
|
-
* (the SDK does NOT follow the redirect — you
|
|
23
|
+
* GET /{phone_number_id}/messages/{id}/media — returns the signed URL
|
|
24
|
+
* the API redirects to (the SDK does NOT follow the redirect — you
|
|
25
|
+
* decide whether to stream).
|
|
16
26
|
*/
|
|
17
27
|
media(id: string, options?: RequestOptions): Promise<MessageMediaRedirect>;
|
|
28
|
+
/**
|
|
29
|
+
* POST /{phone_number_id}/messages with `{status: "read", ...}` —
|
|
30
|
+
* convenience wrapper around {@link send} for the Meta-native
|
|
31
|
+
* read-receipt body shape. Sends a read receipt for an inbound
|
|
32
|
+
* message so the double-tick turns blue on the sender's phone, and
|
|
33
|
+
* (optionally) shows a typing indicator alongside.
|
|
34
|
+
*
|
|
35
|
+
* `wamid` is the Meta-native id (`wamid....`) you receive in the
|
|
36
|
+
* inbound webhook payload — NOT a Kirim `msg_*` external id, since
|
|
37
|
+
* Meta itself uses wamids for this operation.
|
|
38
|
+
*
|
|
39
|
+
* Idempotent: the API returns 200 with the same shape even when the
|
|
40
|
+
* message is already in `read` state, so retry safely. Only valid
|
|
41
|
+
* for inbound messages — calling on an outbound message rejects with
|
|
42
|
+
* a 400 `invalid_field_value`.
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* ```ts
|
|
46
|
+
* await phone.messages.markAsRead('wamid.HBgN…')
|
|
47
|
+
* // with typing indicator (auto-dismisses on response or after 25s):
|
|
48
|
+
* await phone.messages.markAsRead('wamid.HBgN…', { typing: true })
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
markAsRead(wamid: string, opts?: {
|
|
52
|
+
typing?: boolean;
|
|
53
|
+
options?: RequestOptions;
|
|
54
|
+
}): Promise<Message>;
|
|
18
55
|
}
|
|
19
56
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,eAAe,EACf,oBAAoB,
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EACV,kBAAkB,EAClB,OAAO,EACP,eAAe,EACf,oBAAoB,EAEpB,iBAAiB,EAClB,MAAM,aAAa,CAAA;AAEpB;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAEzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM;IAGjC,uFAAuF;IACvF,IAAI,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAS3E,kFAAkF;IAClF,IAAI,CAAC,MAAM,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC,eAAe,CAAC;IAWvF,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAQhE;;;;OAIG;IACH,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQ1E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU,CACR,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,cAAc,CAAA;KAAE,GACpD,OAAO,CAAC,OAAO,CAAC;CAcpB"}
|
|
@@ -1,40 +1,91 @@
|
|
|
1
1
|
import { Paginator } from '../pagination.js';
|
|
2
|
+
/**
|
|
3
|
+
* Messages resource — Meta-style path-scoped.
|
|
4
|
+
*
|
|
5
|
+
* Instantiated by {@link PhoneNumberClient}; not constructed directly
|
|
6
|
+
* by SDK consumers. The `prefix` is `/{phone_number_id}` and is
|
|
7
|
+
* pre-built (and URL-encoded) by the parent client so every method
|
|
8
|
+
* here just appends its own path segment.
|
|
9
|
+
*/
|
|
2
10
|
export class MessagesResource {
|
|
3
11
|
http;
|
|
4
|
-
|
|
12
|
+
prefix;
|
|
13
|
+
constructor(http, prefix) {
|
|
5
14
|
this.http = http;
|
|
15
|
+
this.prefix = prefix;
|
|
6
16
|
}
|
|
7
|
-
/** POST /messages — send a WhatsApp message (any supported type). */
|
|
17
|
+
/** POST /{phone_number_id}/messages — send a WhatsApp message (any supported type). */
|
|
8
18
|
send(params, options) {
|
|
9
19
|
return this.http.requestData({
|
|
10
20
|
method: 'POST',
|
|
11
|
-
path:
|
|
21
|
+
path: `${this.prefix}/messages`,
|
|
12
22
|
body: params,
|
|
13
23
|
...(options ? { options } : {}),
|
|
14
24
|
});
|
|
15
25
|
}
|
|
16
|
-
/** GET /messages — list messages; async-iterable + per-page. */
|
|
26
|
+
/** GET /{phone_number_id}/messages — list messages; async-iterable + per-page. */
|
|
17
27
|
list(params, options) {
|
|
18
|
-
return new Paginator(this.http, {
|
|
28
|
+
return new Paginator(this.http, {
|
|
29
|
+
path: `${this.prefix}/messages`,
|
|
30
|
+
...(params ? { query: params } : {}),
|
|
31
|
+
}, options);
|
|
19
32
|
}
|
|
20
|
-
/** GET /messages/{id} */
|
|
33
|
+
/** GET /{phone_number_id}/messages/{id} */
|
|
21
34
|
retrieve(id, options) {
|
|
22
35
|
return this.http.requestData({
|
|
23
36
|
method: 'GET',
|
|
24
|
-
path:
|
|
37
|
+
path: `${this.prefix}/messages/${encodeURIComponent(id)}`,
|
|
25
38
|
...(options ? { options } : {}),
|
|
26
39
|
});
|
|
27
40
|
}
|
|
28
41
|
/**
|
|
29
|
-
* GET /messages/{id}/media — returns the signed URL
|
|
30
|
-
* (the SDK does NOT follow the redirect — you
|
|
42
|
+
* GET /{phone_number_id}/messages/{id}/media — returns the signed URL
|
|
43
|
+
* the API redirects to (the SDK does NOT follow the redirect — you
|
|
44
|
+
* decide whether to stream).
|
|
31
45
|
*/
|
|
32
46
|
media(id, options) {
|
|
33
47
|
return this.http.requestData({
|
|
34
48
|
method: 'GET',
|
|
35
|
-
path:
|
|
49
|
+
path: `${this.prefix}/messages/${encodeURIComponent(id)}/media`,
|
|
36
50
|
...(options ? { options } : {}),
|
|
37
51
|
});
|
|
38
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* POST /{phone_number_id}/messages with `{status: "read", ...}` —
|
|
55
|
+
* convenience wrapper around {@link send} for the Meta-native
|
|
56
|
+
* read-receipt body shape. Sends a read receipt for an inbound
|
|
57
|
+
* message so the double-tick turns blue on the sender's phone, and
|
|
58
|
+
* (optionally) shows a typing indicator alongside.
|
|
59
|
+
*
|
|
60
|
+
* `wamid` is the Meta-native id (`wamid....`) you receive in the
|
|
61
|
+
* inbound webhook payload — NOT a Kirim `msg_*` external id, since
|
|
62
|
+
* Meta itself uses wamids for this operation.
|
|
63
|
+
*
|
|
64
|
+
* Idempotent: the API returns 200 with the same shape even when the
|
|
65
|
+
* message is already in `read` state, so retry safely. Only valid
|
|
66
|
+
* for inbound messages — calling on an outbound message rejects with
|
|
67
|
+
* a 400 `invalid_field_value`.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts
|
|
71
|
+
* await phone.messages.markAsRead('wamid.HBgN…')
|
|
72
|
+
* // with typing indicator (auto-dismisses on response or after 25s):
|
|
73
|
+
* await phone.messages.markAsRead('wamid.HBgN…', { typing: true })
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
markAsRead(wamid, opts) {
|
|
77
|
+
const body = {
|
|
78
|
+
messaging_product: 'whatsapp',
|
|
79
|
+
status: 'read',
|
|
80
|
+
message_id: wamid,
|
|
81
|
+
...(opts?.typing ? { typing_indicator: { type: 'text' } } : {}),
|
|
82
|
+
};
|
|
83
|
+
return this.http.requestData({
|
|
84
|
+
method: 'POST',
|
|
85
|
+
path: `${this.prefix}/messages`,
|
|
86
|
+
body,
|
|
87
|
+
...(opts?.options ? { options: opts.options } : {}),
|
|
88
|
+
});
|
|
89
|
+
}
|
|
39
90
|
}
|
|
40
91
|
//# sourceMappingURL=messages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/resources/messages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAU5C;;;;;;;GAOG;AACH,MAAM,OAAO,gBAAgB;IAER;IACA;IAFnB,YACmB,IAAgB,EAChB,MAAc;QADd,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,uFAAuF;IACvF,IAAI,CAAC,MAAyB,EAAE,OAAwB;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAU;YACpC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,WAAW;YAC/B,IAAI,EAAE,MAAM;YACZ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC,CAAA;IACJ,CAAC;IAED,kFAAkF;IAClF,IAAI,CAAC,MAA2B,EAAE,OAAwB;QACxD,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,IAAI,EACT;YACE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,WAAW;YAC/B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAsE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrG,EACD,OAAO,CACR,CAAA;IACH,CAAC;IAED,2CAA2C;IAC3C,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAU;YACpC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,aAAa,kBAAkB,CAAC,EAAE,CAAC,EAAE;YACzD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC,CAAA;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,EAAU,EAAE,OAAwB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAuB;YACjD,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,aAAa,kBAAkB,CAAC,EAAE,CAAC,QAAQ;YAC/D,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,UAAU,CACR,KAAa,EACb,IAAqD;QAErD,MAAM,IAAI,GAAsB;YAC9B,iBAAiB,EAAE,UAAU;YAC7B,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,KAAK;YACjB,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACzE,CAAA;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAU;YACpC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,WAAW;YAC/B,IAAI;YACJ,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpD,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client for resources scoped to a single WhatsApp account (Meta-style
|
|
3
|
+
* path-based addressing).
|
|
4
|
+
*
|
|
5
|
+
* Mirrors the public API tree:
|
|
6
|
+
*
|
|
7
|
+
* sdk.phoneNumbers(id).messages.send({...})
|
|
8
|
+
* sdk.phoneNumbers(id).messages.list()
|
|
9
|
+
* sdk.phoneNumbers(id).conversations.list()
|
|
10
|
+
* sdk.phoneNumbers(id).contacts.create({...})
|
|
11
|
+
* sdk.phoneNumbers(id).templates.list()
|
|
12
|
+
*
|
|
13
|
+
* Constructing a `PhoneNumberClient` is cheap (just wires sub-resources
|
|
14
|
+
* with the same `HttpClient`); cache it on a module local if you only
|
|
15
|
+
* use one account so you don't re-allocate per-call.
|
|
16
|
+
*/
|
|
17
|
+
import type { HttpClient } from '../http.js';
|
|
18
|
+
import { ContactsResource } from './contacts.js';
|
|
19
|
+
import { ConversationsResource } from './conversations.js';
|
|
20
|
+
import { MessagesResource } from './messages.js';
|
|
21
|
+
import { TemplatesResource } from './templates.js';
|
|
22
|
+
export declare class PhoneNumberClient {
|
|
23
|
+
private readonly http;
|
|
24
|
+
readonly phoneNumberId: string;
|
|
25
|
+
readonly messages: MessagesResource;
|
|
26
|
+
readonly conversations: ConversationsResource;
|
|
27
|
+
readonly contacts: ContactsResource;
|
|
28
|
+
readonly templates: TemplatesResource;
|
|
29
|
+
/**
|
|
30
|
+
* @param http - shared HttpClient (auth, retry, idempotency, etc.)
|
|
31
|
+
* @param phoneNumberId - Meta `business_phone_number_id`. Digit-only
|
|
32
|
+
* string (e.g. `'106540352242922'`). Validated server-side: a
|
|
33
|
+
* malformed or cross-org id returns 404 from the API; a known but
|
|
34
|
+
* disconnected account returns 422.
|
|
35
|
+
*/
|
|
36
|
+
constructor(http: HttpClient, phoneNumberId: string);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=phone-number.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-number.d.ts","sourceRoot":"","sources":["../../src/resources/phone-number.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,qBAAa,iBAAiB;IAc1B,OAAO,CAAC,QAAQ,CAAC,IAAI;aACL,aAAa,EAAE,MAAM;IAdvC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAA;IAC7C,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAA;IAErC;;;;;;OAMG;gBAEgB,IAAI,EAAE,UAAU,EACjB,aAAa,EAAE,MAAM;CAQxC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ContactsResource } from './contacts.js';
|
|
2
|
+
import { ConversationsResource } from './conversations.js';
|
|
3
|
+
import { MessagesResource } from './messages.js';
|
|
4
|
+
import { TemplatesResource } from './templates.js';
|
|
5
|
+
export class PhoneNumberClient {
|
|
6
|
+
http;
|
|
7
|
+
phoneNumberId;
|
|
8
|
+
messages;
|
|
9
|
+
conversations;
|
|
10
|
+
contacts;
|
|
11
|
+
templates;
|
|
12
|
+
/**
|
|
13
|
+
* @param http - shared HttpClient (auth, retry, idempotency, etc.)
|
|
14
|
+
* @param phoneNumberId - Meta `business_phone_number_id`. Digit-only
|
|
15
|
+
* string (e.g. `'106540352242922'`). Validated server-side: a
|
|
16
|
+
* malformed or cross-org id returns 404 from the API; a known but
|
|
17
|
+
* disconnected account returns 422.
|
|
18
|
+
*/
|
|
19
|
+
constructor(http, phoneNumberId) {
|
|
20
|
+
this.http = http;
|
|
21
|
+
this.phoneNumberId = phoneNumberId;
|
|
22
|
+
const prefix = `/${encodeURIComponent(phoneNumberId)}`;
|
|
23
|
+
this.messages = new MessagesResource(http, prefix);
|
|
24
|
+
this.conversations = new ConversationsResource(http, prefix);
|
|
25
|
+
this.contacts = new ContactsResource(http, prefix);
|
|
26
|
+
this.templates = new TemplatesResource(http, prefix);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=phone-number.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phone-number.js","sourceRoot":"","sources":["../../src/resources/phone-number.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,OAAO,iBAAiB;IAcT;IACD;IAdT,QAAQ,CAAkB;IAC1B,aAAa,CAAuB;IACpC,QAAQ,CAAkB;IAC1B,SAAS,CAAmB;IAErC;;;;;;OAMG;IACH,YACmB,IAAgB,EACjB,aAAqB;QADpB,SAAI,GAAJ,IAAI,CAAY;QACjB,kBAAa,GAAb,aAAa,CAAQ;QAErC,MAAM,MAAM,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,EAAE,CAAA;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAC5D,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACtD,CAAC;CACF"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import type { HttpClient, RequestOptions } from '../http.js';
|
|
2
2
|
import { Paginator } from '../pagination.js';
|
|
3
3
|
import type { ListTemplatesParams, RetrieveTemplateParams, Template, TemplateListItem } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Templates resource — Meta-style path-scoped.
|
|
6
|
+
*
|
|
7
|
+
* Instantiated by {@link PhoneNumberClient}; the `prefix` is
|
|
8
|
+
* `/{phone_number_id}` (already URL-encoded by the parent).
|
|
9
|
+
*/
|
|
4
10
|
export declare class TemplatesResource {
|
|
5
11
|
private readonly http;
|
|
6
|
-
|
|
12
|
+
private readonly prefix;
|
|
13
|
+
constructor(http: HttpClient, prefix: string);
|
|
7
14
|
list(params?: ListTemplatesParams, options?: RequestOptions): Paginator<TemplateListItem>;
|
|
8
15
|
retrieve(name: string, params?: RetrieveTemplateParams, options?: RequestOptions): Promise<Template>;
|
|
9
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAEpB,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,QAAQ,EACR,gBAAgB,EACjB,MAAM,aAAa,CAAA;AAEpB;;;;;GAKG;AACH,qBAAa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM;IAGjC,IAAI,CAAC,MAAM,CAAC,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC,gBAAgB,CAAC;IAWzF,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,sBAAsB,EAC/B,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,QAAQ,CAAC;CAQrB"}
|
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import { Paginator } from '../pagination.js';
|
|
2
|
+
/**
|
|
3
|
+
* Templates resource — Meta-style path-scoped.
|
|
4
|
+
*
|
|
5
|
+
* Instantiated by {@link PhoneNumberClient}; the `prefix` is
|
|
6
|
+
* `/{phone_number_id}` (already URL-encoded by the parent).
|
|
7
|
+
*/
|
|
2
8
|
export class TemplatesResource {
|
|
3
9
|
http;
|
|
4
|
-
|
|
10
|
+
prefix;
|
|
11
|
+
constructor(http, prefix) {
|
|
5
12
|
this.http = http;
|
|
13
|
+
this.prefix = prefix;
|
|
6
14
|
}
|
|
7
15
|
list(params, options) {
|
|
8
|
-
return new Paginator(this.http, {
|
|
16
|
+
return new Paginator(this.http, {
|
|
17
|
+
path: `${this.prefix}/templates`,
|
|
18
|
+
...(params ? { query: params } : {}),
|
|
19
|
+
}, options);
|
|
9
20
|
}
|
|
10
21
|
retrieve(name, params, options) {
|
|
11
22
|
return this.http.requestData({
|
|
12
23
|
method: 'GET',
|
|
13
|
-
path:
|
|
24
|
+
path: `${this.prefix}/templates/${encodeURIComponent(name)}`,
|
|
14
25
|
...(params ? { query: params } : {}),
|
|
15
26
|
...(options ? { options } : {}),
|
|
16
27
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAQ5C,MAAM,OAAO,iBAAiB;
|
|
1
|
+
{"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAQ5C;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IAET;IACA;IAFnB,YACmB,IAAgB,EAChB,MAAc;QADd,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;IAC9B,CAAC;IAEJ,IAAI,CAAC,MAA4B,EAAE,OAAwB;QACzD,OAAO,IAAI,SAAS,CAClB,IAAI,CAAC,IAAI,EACT;YACE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,YAAY;YAChC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAsE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrG,EACD,OAAO,CACR,CAAA;IACH,CAAC;IAED,QAAQ,CACN,IAAY,EACZ,MAA+B,EAC/B,OAAwB;QAExB,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAW;YACrC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,cAAc,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAC5D,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAsE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -16,28 +16,46 @@ export type Account = ListData<Schemas['ListAccountsResponse']>;
|
|
|
16
16
|
export type ListAccountsParams = NonNullable<paths['/accounts']['get']['parameters']['query']>;
|
|
17
17
|
export type Message = SingleData<Schemas['GetMessageResponse']>;
|
|
18
18
|
export type MessageListItem = ListData<Schemas['ListMessagesResponse']>;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Full union of request bodies accepted by `POST /{phone_number_id}/messages`.
|
|
21
|
+
*
|
|
22
|
+
* Includes both the outbound-send variants (text/image/.../interactive)
|
|
23
|
+
* and the Meta-style read-receipt shape (`{status:'read', message_id,
|
|
24
|
+
* typing_indicator?}`). The generated type from the OpenAPI schema
|
|
25
|
+
* already expresses this as a union; SDK consumers branch on the
|
|
26
|
+
* presence of `type` vs `status` to know which side of the API they're
|
|
27
|
+
* calling.
|
|
28
|
+
*/
|
|
29
|
+
export type SendMessageParams = NonNullable<paths['/{phone_number_id}/messages']['post']['requestBody']>['content']['application/json'];
|
|
30
|
+
/**
|
|
31
|
+
* Narrowed type for just the read-receipt branch — used by the
|
|
32
|
+
* `messages.markAsRead()` convenience wrapper so consumers don't have
|
|
33
|
+
* to construct `messaging_product: 'whatsapp'` themselves.
|
|
34
|
+
*/
|
|
35
|
+
export type ReadReceiptParams = Extract<SendMessageParams, {
|
|
36
|
+
status: 'read';
|
|
37
|
+
}>;
|
|
38
|
+
export type ListMessagesParams = NonNullable<paths['/{phone_number_id}/messages']['get']['parameters']['query']>;
|
|
21
39
|
export type MessageMediaRedirect = {
|
|
22
40
|
url: string | null;
|
|
23
41
|
request_id: string | null;
|
|
24
42
|
};
|
|
25
43
|
export type Template = SingleData<Schemas['GetTemplateResponse']>;
|
|
26
44
|
export type TemplateListItem = ListData<Schemas['ListTemplatesResponse']>;
|
|
27
|
-
export type ListTemplatesParams = NonNullable<paths['/templates']['get']['parameters']['query']>;
|
|
28
|
-
export type RetrieveTemplateParams = NonNullable<paths['/templates/{name}']['get']['parameters']['query']>;
|
|
45
|
+
export type ListTemplatesParams = NonNullable<paths['/{phone_number_id}/templates']['get']['parameters']['query']>;
|
|
46
|
+
export type RetrieveTemplateParams = NonNullable<paths['/{phone_number_id}/templates/{name}']['get']['parameters']['query']>;
|
|
29
47
|
export type Conversation = SingleData<Schemas['GetConversationResponse']>;
|
|
30
48
|
export type ConversationListItem = ListData<Schemas['ListConversationsResponse']>;
|
|
31
|
-
export type ListConversationsParams = NonNullable<paths['/conversations']['get']['parameters']['query']>;
|
|
32
|
-
export type UpdateConversationParams = NonNullable<paths['/conversations/{id}']['patch']['requestBody']>['content']['application/json'];
|
|
33
|
-
export type AttachConversationLabelParams = NonNullable<paths['/conversations/{id}/labels']['post']['requestBody']>['content']['application/json'];
|
|
49
|
+
export type ListConversationsParams = NonNullable<paths['/{phone_number_id}/conversations']['get']['parameters']['query']>;
|
|
50
|
+
export type UpdateConversationParams = NonNullable<paths['/{phone_number_id}/conversations/{id}']['patch']['requestBody']>['content']['application/json'];
|
|
51
|
+
export type AttachConversationLabelParams = NonNullable<paths['/{phone_number_id}/conversations/{id}/labels']['post']['requestBody']>['content']['application/json'];
|
|
34
52
|
export type Contact = SingleData<Schemas['GetContactResponse']>;
|
|
35
53
|
export type ContactListItem = ListData<Schemas['ListContactsResponse']>;
|
|
36
|
-
export type ListContactsParams = NonNullable<paths['/contacts']['get']['parameters']['query']>;
|
|
37
|
-
export type CreateContactParams = NonNullable<paths['/contacts']['post']['requestBody']>['content']['application/json'];
|
|
38
|
-
export type UpdateContactParams = NonNullable<paths['/contacts/{id}']['patch']['requestBody']>['content']['application/json'];
|
|
39
|
-
export type AttachContactLabelParams = NonNullable<paths['/contacts/{id}/labels']['post']['requestBody']>['content']['application/json'];
|
|
40
|
-
export type BulkLabelContactsParams = NonNullable<paths['/contacts/bulk_label']['post']['requestBody']>['content']['application/json'];
|
|
54
|
+
export type ListContactsParams = NonNullable<paths['/{phone_number_id}/contacts']['get']['parameters']['query']>;
|
|
55
|
+
export type CreateContactParams = NonNullable<paths['/{phone_number_id}/contacts']['post']['requestBody']>['content']['application/json'];
|
|
56
|
+
export type UpdateContactParams = NonNullable<paths['/{phone_number_id}/contacts/{id}']['patch']['requestBody']>['content']['application/json'];
|
|
57
|
+
export type AttachContactLabelParams = NonNullable<paths['/{phone_number_id}/contacts/{id}/labels']['post']['requestBody']>['content']['application/json'];
|
|
58
|
+
export type BulkLabelContactsParams = NonNullable<paths['/{phone_number_id}/contacts/bulk_label']['post']['requestBody']>['content']['application/json'];
|
|
41
59
|
export type Label = SingleData<Schemas['GetLabelResponse']>;
|
|
42
60
|
export type LabelListItem = ListData<Schemas['ListLabelsResponse']>;
|
|
43
61
|
export type ListLabelsParams = NonNullable<paths['/labels']['get']['parameters']['query']>;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAE9D,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;AAG3C,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAC5D,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAA;AAGjE,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAA;AAGzD,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAA;AAC/D,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA;AAG9F,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAA;AAC/D,MAAM,MAAM,eAAe,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAA;AACvE,MAAM,MAAM,iBAAiB,GAAG,WAAW,CACzC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|