rcs-js 2.0.1-rc.1 → 2.0.2

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 (54) hide show
  1. package/dist/cjs/api/resources/rcs/client/Client.d.ts +11 -7
  2. package/dist/cjs/api/resources/rcs/client/Client.js +11 -7
  3. package/dist/cjs/api/resources/tools/resources/file/client/Client.d.ts +1 -0
  4. package/dist/cjs/api/resources/tools/resources/file/client/Client.js +1 -0
  5. package/dist/cjs/api/resources/tools/resources/file/client/requests/UploadFileParams.d.ts +7 -0
  6. package/dist/cjs/api/types/ButtonClickedData.d.ts +1 -1
  7. package/dist/cjs/api/types/MessageEvent.d.ts +1 -13
  8. package/dist/cjs/api/types/MessageEventContent.d.ts +29 -0
  9. package/dist/cjs/api/types/MessageEventContent.js +5 -0
  10. package/dist/cjs/api/types/MessageEventMmsContent.d.ts +23 -0
  11. package/dist/cjs/api/types/MessageEventMmsContent.js +5 -0
  12. package/dist/cjs/api/types/MessageEventRcsButtonData.d.ts +18 -0
  13. package/dist/cjs/api/types/MessageEventRcsButtonData.js +5 -0
  14. package/dist/cjs/api/types/MessageEventRcsCardsContent.d.ts +39 -0
  15. package/dist/cjs/api/types/MessageEventRcsCardsContent.js +5 -0
  16. package/dist/cjs/api/types/MessageEventRcsLocationData.d.ts +18 -0
  17. package/dist/cjs/api/types/MessageEventRcsLocationData.js +5 -0
  18. package/dist/cjs/api/types/MessageEventRcsMediaContent.d.ts +21 -0
  19. package/dist/cjs/api/types/MessageEventRcsMediaContent.js +5 -0
  20. package/dist/cjs/api/types/MessageEventRcsTextContent.d.ts +20 -0
  21. package/dist/cjs/api/types/MessageEventRcsTextContent.js +5 -0
  22. package/dist/cjs/api/types/MessageEventSmsContent.d.ts +17 -0
  23. package/dist/cjs/api/types/MessageEventSmsContent.js +5 -0
  24. package/dist/cjs/api/types/UploadResults.d.ts +6 -0
  25. package/dist/cjs/api/types/index.d.ts +8 -0
  26. package/dist/cjs/api/types/index.js +8 -0
  27. package/dist/esm/api/resources/rcs/client/Client.d.mts +11 -7
  28. package/dist/esm/api/resources/rcs/client/Client.mjs +11 -7
  29. package/dist/esm/api/resources/tools/resources/file/client/Client.d.mts +1 -0
  30. package/dist/esm/api/resources/tools/resources/file/client/Client.mjs +1 -0
  31. package/dist/esm/api/resources/tools/resources/file/client/requests/UploadFileParams.d.mts +7 -0
  32. package/dist/esm/api/types/ButtonClickedData.d.mts +1 -1
  33. package/dist/esm/api/types/MessageEvent.d.mts +1 -13
  34. package/dist/esm/api/types/MessageEventContent.d.mts +29 -0
  35. package/dist/esm/api/types/MessageEventContent.mjs +4 -0
  36. package/dist/esm/api/types/MessageEventMmsContent.d.mts +23 -0
  37. package/dist/esm/api/types/MessageEventMmsContent.mjs +4 -0
  38. package/dist/esm/api/types/MessageEventRcsButtonData.d.mts +18 -0
  39. package/dist/esm/api/types/MessageEventRcsButtonData.mjs +4 -0
  40. package/dist/esm/api/types/MessageEventRcsCardsContent.d.mts +39 -0
  41. package/dist/esm/api/types/MessageEventRcsCardsContent.mjs +4 -0
  42. package/dist/esm/api/types/MessageEventRcsLocationData.d.mts +18 -0
  43. package/dist/esm/api/types/MessageEventRcsLocationData.mjs +4 -0
  44. package/dist/esm/api/types/MessageEventRcsMediaContent.d.mts +21 -0
  45. package/dist/esm/api/types/MessageEventRcsMediaContent.mjs +4 -0
  46. package/dist/esm/api/types/MessageEventRcsTextContent.d.mts +20 -0
  47. package/dist/esm/api/types/MessageEventRcsTextContent.mjs +4 -0
  48. package/dist/esm/api/types/MessageEventSmsContent.d.mts +17 -0
  49. package/dist/esm/api/types/MessageEventSmsContent.mjs +4 -0
  50. package/dist/esm/api/types/UploadResults.d.mts +6 -0
  51. package/dist/esm/api/types/index.d.mts +8 -0
  52. package/dist/esm/api/types/index.mjs +8 -0
  53. package/package.json +3 -3
  54. package/reference.md +12 -7
@@ -55,23 +55,27 @@ export declare class Rcs {
55
55
  *
56
56
  * ## Overview
57
57
  * During development and testing, RCS agents can only send messages to whitelisted phone numbers.
58
- * Use this endpoint to add test devices to your agent's whitelist before sending test messages.
58
+ * Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
59
59
  *
60
60
  * ## Verification Process
61
61
  * After whitelisting a number, you'll need to complete verification:
62
62
  *
63
- * 1. Check the test device for an "RBM Tester Management" request
64
- * 2. Accept the request on the device
65
- * 3. Enter the 4-digit verification code in the Pinnacle dashboard at:
63
+ * 1. Check the test device for message from "RBM Tester Management"
64
+ * 2. Click the "Make me a tester" button
65
+ * 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
66
66
  * ```
67
67
  * https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
68
68
  * ```
69
69
  *
70
+ * > **⚠️ Important: Re-whitelisting Numbers**
71
+ * >
72
+ * > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
73
+ *
70
74
  * > **Important Notes**
71
75
  * >
72
- * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number
73
- * > - **AT&T limitation:** Whitelisting may currently fail for AT&T numbers
74
- * > - **Verification required:** The whitelist request isn't complete until you verify the device.
76
+ * > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a tester" button on the test device.
77
+ * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number.
78
+ * > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually restored shortly.
75
79
  *
76
80
  * @param {Pinnacle.RcsWhitelistRequest} request
77
81
  * @param {Rcs.RequestOptions} requestOptions - Request-specific configuration.
@@ -136,23 +136,27 @@ class Rcs {
136
136
  *
137
137
  * ## Overview
138
138
  * During development and testing, RCS agents can only send messages to whitelisted phone numbers.
139
- * Use this endpoint to add test devices to your agent's whitelist before sending test messages.
139
+ * Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
140
140
  *
141
141
  * ## Verification Process
142
142
  * After whitelisting a number, you'll need to complete verification:
143
143
  *
144
- * 1. Check the test device for an "RBM Tester Management" request
145
- * 2. Accept the request on the device
146
- * 3. Enter the 4-digit verification code in the Pinnacle dashboard at:
144
+ * 1. Check the test device for message from "RBM Tester Management"
145
+ * 2. Click the "Make me a tester" button
146
+ * 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
147
147
  * ```
148
148
  * https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
149
149
  * ```
150
150
  *
151
+ * > **⚠️ Important: Re-whitelisting Numbers**
152
+ * >
153
+ * > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
154
+ *
151
155
  * > **Important Notes**
152
156
  * >
153
- * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number
154
- * > - **AT&T limitation:** Whitelisting may currently fail for AT&T numbers
155
- * > - **Verification required:** The whitelist request isn't complete until you verify the device.
157
+ * > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a tester" button on the test device.
158
+ * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number.
159
+ * > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually restored shortly.
156
160
  *
157
161
  * @param {Pinnacle.RcsWhitelistRequest} request
158
162
  * @param {Rcs.RequestOptions} requestOptions - Request-specific configuration.
@@ -45,6 +45,7 @@ export declare class File_ {
45
45
  * size: 1024,
46
46
  * name: "test.jpg",
47
47
  * options: {
48
+ * deleteAt: "2025-12-31T23:59:59Z",
48
49
  * download: {
49
50
  * expiresAt: "2025-06-30T12:00:00.000Z"
50
51
  * }
@@ -71,6 +71,7 @@ class File_ {
71
71
  * size: 1024,
72
72
  * name: "test.jpg",
73
73
  * options: {
74
+ * deleteAt: "2025-12-31T23:59:59Z",
74
75
  * download: {
75
76
  * expiresAt: "2025-06-30T12:00:00.000Z"
76
77
  * }
@@ -8,6 +8,7 @@
8
8
  * size: 1024,
9
9
  * name: "test.jpg",
10
10
  * options: {
11
+ * deleteAt: "2025-12-31T23:59:59Z",
11
12
  * download: {
12
13
  * expiresAt: "2025-06-30T12:00:00.000Z"
13
14
  * }
@@ -37,6 +38,12 @@ export declare namespace UploadFileParams {
37
38
  * Additional configurations for your file.
38
39
  */
39
40
  interface Options {
41
+ /**
42
+ * Set a deletion date for your file in ISO 8601 format. After this date, the file will be automatically deleted from our storage.<br>
43
+ *
44
+ * If this field is not provided, the file will not be deleted. You can still schedule deletion or delete the file manually in the Storage page in the dashboard.
45
+ */
46
+ deleteAt?: string;
40
47
  /** Configure download settings for your uploaded file. */
41
48
  download?: Options.Download;
42
49
  }
@@ -8,7 +8,7 @@ import * as Pinnacle from "../index.js";
8
8
  export interface ButtonClickedData {
9
9
  /** Information about the button that was clicked. */
10
10
  button: ButtonClickedData.Button;
11
- /** ID of the message this button was attached to, or null if not available. To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint. */
11
+ /** ID of the message this button was sent in, or null if not available. To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint. */
12
12
  messageId: string | null;
13
13
  }
14
14
  export declare namespace ButtonClickedData {
@@ -22,8 +22,7 @@ export interface MessageEvent {
22
22
  * Null if not yet delivered or for inbound messages.
23
23
  */
24
24
  deliveredAt?: string | null;
25
- /** Message details including ID and content. */
26
- message: MessageEvent.Message;
25
+ message: Pinnacle.MessageEventContent;
27
26
  }
28
27
  export declare namespace MessageEvent {
29
28
  /**
@@ -48,15 +47,4 @@ export declare namespace MessageEvent {
48
47
  readonly Inbound: "INBOUND";
49
48
  readonly Outbound: "OUTBOUND";
50
49
  };
51
- /**
52
- * Message details including ID and content.
53
- */
54
- interface Message {
55
- /**
56
- * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
57
- * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
58
- */
59
- id: string;
60
- content: Pinnacle.MessageContent;
61
- }
62
50
  }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.js";
5
+ /**
6
+ * Content of an incoming or outgoing message. Discriminated by the `type` field.
7
+ */
8
+ export type MessageEventContent =
9
+ /**
10
+ * SMS message containing plain text only. Has type `SMS`. */
11
+ Pinnacle.MessageEventSmsContent
12
+ /**
13
+ * MMS message with text and/or media files from a phone number. Has type `MMS`. */
14
+ | Pinnacle.MessageEventMmsContent
15
+ /**
16
+ * RCS message containing longer text content with optional quick reply buttons. Has type `RCS_TEXT`. */
17
+ | Pinnacle.MessageEventRcsTextContent
18
+ /**
19
+ * RCS message containing media file with optional quick reply buttons. Has type `RCS_MEDIA`. */
20
+ | Pinnacle.MessageEventRcsMediaContent
21
+ /**
22
+ * RCS message containing cards with titles, subtitles, and buttons. Has type `RCS_CARDS`. */
23
+ | Pinnacle.MessageEventRcsCardsContent
24
+ /**
25
+ * RCS button click data. Sent when user clicks any button. Has type `RCS_BUTTON_DATA`. */
26
+ | Pinnacle.MessageEventRcsButtonData
27
+ /**
28
+ * RCS location sharing data. Sent when user shares their location via a `requestUserLocation` button. Has type `RCS_LOCATION_DATA`. */
29
+ | Pinnacle.MessageEventRcsLocationData;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,23 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * MMS message with text and/or media files from a phone number.
6
+ */
7
+ export interface MessageEventMmsContent {
8
+ /** Message type identifier. */
9
+ type: "MMS";
10
+ /**
11
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
12
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
13
+ */
14
+ id: string;
15
+ /**
16
+ * URLs of media files in this message. <br>
17
+ *
18
+ * See [supported media types](https://app.pinnacle.sh/supported-file-types?type=MMS).
19
+ */
20
+ mediaUrls: string[];
21
+ /** Text content that may accompany the media files. */
22
+ text?: string;
23
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.js";
5
+ /**
6
+ * Button click event data received when a user clicks on an RCS button or quick reply (excluding `requestUserLocation` buttons).
7
+ *
8
+ * This event contains information about which button was clicked, how many times it's been clicked, and any payload or metadata attached to the button. Use this data to handle user interactions with your RCS messages.
9
+ */
10
+ export interface MessageEventRcsButtonData extends Pinnacle.ButtonClickedData {
11
+ /** Message type identifier. */
12
+ type: "RCS_BUTTON_DATA";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,39 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.js";
5
+ /**
6
+ * RCS message containing cards, each with its own title, subtitle, and/or buttons. Quick replies can also be added. <br>
7
+ *
8
+ * See [supported file types](https://app.pinnacle.sh/supported-file-types?type=RCS-CARD).
9
+ */
10
+ export interface MessageEventRcsCardsContent {
11
+ /** Message type identifier. */
12
+ type: "RCS_CARDS";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ /** Collection of cards attached to the message. */
19
+ cards: MessageEventRcsCardsContent.Cards.Item[];
20
+ /** List of interactive quick reply buttons in the message. */
21
+ quickReplies: Pinnacle.RichButton[];
22
+ }
23
+ export declare namespace MessageEventRcsCardsContent {
24
+ type Cards = Cards.Item[];
25
+ namespace Cards {
26
+ /**
27
+ * Individual card containing title, optional media, and action buttons.
28
+ */
29
+ interface Item {
30
+ /** Action buttons attached to the card. */
31
+ buttons: Pinnacle.RichButton[];
32
+ media?: Pinnacle.RcsMediaDetailsContent;
33
+ /** Secondary text displayed below the title for additional context. */
34
+ subtitle?: string;
35
+ /** Title displayed on the card. */
36
+ title: string;
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.js";
5
+ /**
6
+ * Location sharing event data received when a user responds to a `requestUserLocation` button and shares their current location.
7
+ *
8
+ * This event contains the geographic coordinates (latitude/longitude) and human-readable address of the location the user chose to share. Use this data to process location-based requests or provide location-specific services.
9
+ */
10
+ export interface MessageEventRcsLocationData extends Pinnacle.LocationShareAction {
11
+ /** Message type identifier. */
12
+ type: "RCS_LOCATION_DATA";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,21 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.js";
5
+ /**
6
+ * RCS message containing a media file with optional quick reply buttons. <br>
7
+ *
8
+ * See [supported file types](https://app.pinnacle.sh/supported-file-types?type=RCS-MEDIA).
9
+ */
10
+ export interface MessageEventRcsMediaContent {
11
+ /** Message type identifier. */
12
+ type: "RCS_MEDIA";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ media: Pinnacle.RcsMediaDetailsContent;
19
+ /** List of interactive quick reply buttons in the message. */
20
+ quickReplies: Pinnacle.RichButton[];
21
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,20 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.js";
5
+ /**
6
+ * RCS message containing longer text content with optional quick reply buttons.
7
+ */
8
+ export interface MessageEventRcsTextContent {
9
+ /** Message type identifier. */
10
+ type: "RCS_TEXT";
11
+ /**
12
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
13
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
14
+ */
15
+ id: string;
16
+ /** List of interactive quick reply buttons in the message. */
17
+ quickReplies: Pinnacle.RichButton[];
18
+ /** Text content of the RCS message. */
19
+ text: string;
20
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * SMS message containing plain text only.
6
+ */
7
+ export interface MessageEventSmsContent {
8
+ /** Message type identifier. */
9
+ type: "SMS";
10
+ /**
11
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
12
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
13
+ */
14
+ id: string;
15
+ /** Message content. */
16
+ text: string;
17
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -20,5 +20,11 @@ export declare namespace UploadResults {
20
20
  * Null indicates that `download.expiresAt` was not provided and the expiration time is defaulted to one hour after uploading.
21
21
  */
22
22
  expiresAt: string | null;
23
+ /**
24
+ * Deletion date for the file in ISO 8601 format. After this date, the file will be automatically deleted from our storage.<br>
25
+ *
26
+ * If this field is not provided, the file will not be deleted. You can still schedule deletion or delete the file manually in the Storage page in the dashboard.
27
+ */
28
+ deleteAt?: string | null;
23
29
  }
24
30
  }
@@ -132,5 +132,13 @@ export * from "./VCardData.js";
132
132
  export * from "./VcardResource.js";
133
133
  export * from "./Webhooks.js";
134
134
  export * from "./WebhookResult.js";
135
+ export * from "./MessageEventSmsContent.js";
136
+ export * from "./MessageEventMmsContent.js";
137
+ export * from "./MessageEventRcsTextContent.js";
138
+ export * from "./MessageEventRcsMediaContent.js";
139
+ export * from "./MessageEventRcsCardsContent.js";
140
+ export * from "./MessageEventRcsButtonData.js";
141
+ export * from "./MessageEventRcsLocationData.js";
142
+ export * from "./MessageEventContent.js";
135
143
  export * from "./MessageEvent.js";
136
144
  export * from "./UserEvent.js";
@@ -148,5 +148,13 @@ __exportStar(require("./VCardData.js"), exports);
148
148
  __exportStar(require("./VcardResource.js"), exports);
149
149
  __exportStar(require("./Webhooks.js"), exports);
150
150
  __exportStar(require("./WebhookResult.js"), exports);
151
+ __exportStar(require("./MessageEventSmsContent.js"), exports);
152
+ __exportStar(require("./MessageEventMmsContent.js"), exports);
153
+ __exportStar(require("./MessageEventRcsTextContent.js"), exports);
154
+ __exportStar(require("./MessageEventRcsMediaContent.js"), exports);
155
+ __exportStar(require("./MessageEventRcsCardsContent.js"), exports);
156
+ __exportStar(require("./MessageEventRcsButtonData.js"), exports);
157
+ __exportStar(require("./MessageEventRcsLocationData.js"), exports);
158
+ __exportStar(require("./MessageEventContent.js"), exports);
151
159
  __exportStar(require("./MessageEvent.js"), exports);
152
160
  __exportStar(require("./UserEvent.js"), exports);
@@ -55,23 +55,27 @@ export declare class Rcs {
55
55
  *
56
56
  * ## Overview
57
57
  * During development and testing, RCS agents can only send messages to whitelisted phone numbers.
58
- * Use this endpoint to add test devices to your agent's whitelist before sending test messages.
58
+ * Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
59
59
  *
60
60
  * ## Verification Process
61
61
  * After whitelisting a number, you'll need to complete verification:
62
62
  *
63
- * 1. Check the test device for an "RBM Tester Management" request
64
- * 2. Accept the request on the device
65
- * 3. Enter the 4-digit verification code in the Pinnacle dashboard at:
63
+ * 1. Check the test device for message from "RBM Tester Management"
64
+ * 2. Click the "Make me a tester" button
65
+ * 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
66
66
  * ```
67
67
  * https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
68
68
  * ```
69
69
  *
70
+ * > **⚠️ Important: Re-whitelisting Numbers**
71
+ * >
72
+ * > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
73
+ *
70
74
  * > **Important Notes**
71
75
  * >
72
- * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number
73
- * > - **AT&T limitation:** Whitelisting may currently fail for AT&T numbers
74
- * > - **Verification required:** The whitelist request isn't complete until you verify the device.
76
+ * > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a tester" button on the test device.
77
+ * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number.
78
+ * > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually restored shortly.
75
79
  *
76
80
  * @param {Pinnacle.RcsWhitelistRequest} request
77
81
  * @param {Rcs.RequestOptions} requestOptions - Request-specific configuration.
@@ -100,23 +100,27 @@ export class Rcs {
100
100
  *
101
101
  * ## Overview
102
102
  * During development and testing, RCS agents can only send messages to whitelisted phone numbers.
103
- * Use this endpoint to add test devices to your agent's whitelist before sending test messages.
103
+ * Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
104
104
  *
105
105
  * ## Verification Process
106
106
  * After whitelisting a number, you'll need to complete verification:
107
107
  *
108
- * 1. Check the test device for an "RBM Tester Management" request
109
- * 2. Accept the request on the device
110
- * 3. Enter the 4-digit verification code in the Pinnacle dashboard at:
108
+ * 1. Check the test device for message from "RBM Tester Management"
109
+ * 2. Click the "Make me a tester" button
110
+ * 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
111
111
  * ```
112
112
  * https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
113
113
  * ```
114
114
  *
115
+ * > **⚠️ Important: Re-whitelisting Numbers**
116
+ * >
117
+ * > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
118
+ *
115
119
  * > **Important Notes**
116
120
  * >
117
- * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number
118
- * > - **AT&T limitation:** Whitelisting may currently fail for AT&T numbers
119
- * > - **Verification required:** The whitelist request isn't complete until you verify the device.
121
+ * > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a tester" button on the test device.
122
+ * > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number.
123
+ * > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually restored shortly.
120
124
  *
121
125
  * @param {Pinnacle.RcsWhitelistRequest} request
122
126
  * @param {Rcs.RequestOptions} requestOptions - Request-specific configuration.
@@ -45,6 +45,7 @@ export declare class File_ {
45
45
  * size: 1024,
46
46
  * name: "test.jpg",
47
47
  * options: {
48
+ * deleteAt: "2025-12-31T23:59:59Z",
48
49
  * download: {
49
50
  * expiresAt: "2025-06-30T12:00:00.000Z"
50
51
  * }
@@ -35,6 +35,7 @@ export class File_ {
35
35
  * size: 1024,
36
36
  * name: "test.jpg",
37
37
  * options: {
38
+ * deleteAt: "2025-12-31T23:59:59Z",
38
39
  * download: {
39
40
  * expiresAt: "2025-06-30T12:00:00.000Z"
40
41
  * }
@@ -8,6 +8,7 @@
8
8
  * size: 1024,
9
9
  * name: "test.jpg",
10
10
  * options: {
11
+ * deleteAt: "2025-12-31T23:59:59Z",
11
12
  * download: {
12
13
  * expiresAt: "2025-06-30T12:00:00.000Z"
13
14
  * }
@@ -37,6 +38,12 @@ export declare namespace UploadFileParams {
37
38
  * Additional configurations for your file.
38
39
  */
39
40
  interface Options {
41
+ /**
42
+ * Set a deletion date for your file in ISO 8601 format. After this date, the file will be automatically deleted from our storage.<br>
43
+ *
44
+ * If this field is not provided, the file will not be deleted. You can still schedule deletion or delete the file manually in the Storage page in the dashboard.
45
+ */
46
+ deleteAt?: string;
40
47
  /** Configure download settings for your uploaded file. */
41
48
  download?: Options.Download;
42
49
  }
@@ -8,7 +8,7 @@ import * as Pinnacle from "../index.mjs";
8
8
  export interface ButtonClickedData {
9
9
  /** Information about the button that was clicked. */
10
10
  button: ButtonClickedData.Button;
11
- /** ID of the message this button was attached to, or null if not available. To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint. */
11
+ /** ID of the message this button was sent in, or null if not available. To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint. */
12
12
  messageId: string | null;
13
13
  }
14
14
  export declare namespace ButtonClickedData {
@@ -22,8 +22,7 @@ export interface MessageEvent {
22
22
  * Null if not yet delivered or for inbound messages.
23
23
  */
24
24
  deliveredAt?: string | null;
25
- /** Message details including ID and content. */
26
- message: MessageEvent.Message;
25
+ message: Pinnacle.MessageEventContent;
27
26
  }
28
27
  export declare namespace MessageEvent {
29
28
  /**
@@ -48,15 +47,4 @@ export declare namespace MessageEvent {
48
47
  readonly Inbound: "INBOUND";
49
48
  readonly Outbound: "OUTBOUND";
50
49
  };
51
- /**
52
- * Message details including ID and content.
53
- */
54
- interface Message {
55
- /**
56
- * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
57
- * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
58
- */
59
- id: string;
60
- content: Pinnacle.MessageContent;
61
- }
62
50
  }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.mjs";
5
+ /**
6
+ * Content of an incoming or outgoing message. Discriminated by the `type` field.
7
+ */
8
+ export type MessageEventContent =
9
+ /**
10
+ * SMS message containing plain text only. Has type `SMS`. */
11
+ Pinnacle.MessageEventSmsContent
12
+ /**
13
+ * MMS message with text and/or media files from a phone number. Has type `MMS`. */
14
+ | Pinnacle.MessageEventMmsContent
15
+ /**
16
+ * RCS message containing longer text content with optional quick reply buttons. Has type `RCS_TEXT`. */
17
+ | Pinnacle.MessageEventRcsTextContent
18
+ /**
19
+ * RCS message containing media file with optional quick reply buttons. Has type `RCS_MEDIA`. */
20
+ | Pinnacle.MessageEventRcsMediaContent
21
+ /**
22
+ * RCS message containing cards with titles, subtitles, and buttons. Has type `RCS_CARDS`. */
23
+ | Pinnacle.MessageEventRcsCardsContent
24
+ /**
25
+ * RCS button click data. Sent when user clicks any button. Has type `RCS_BUTTON_DATA`. */
26
+ | Pinnacle.MessageEventRcsButtonData
27
+ /**
28
+ * RCS location sharing data. Sent when user shares their location via a `requestUserLocation` button. Has type `RCS_LOCATION_DATA`. */
29
+ | Pinnacle.MessageEventRcsLocationData;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * MMS message with text and/or media files from a phone number.
6
+ */
7
+ export interface MessageEventMmsContent {
8
+ /** Message type identifier. */
9
+ type: "MMS";
10
+ /**
11
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
12
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
13
+ */
14
+ id: string;
15
+ /**
16
+ * URLs of media files in this message. <br>
17
+ *
18
+ * See [supported media types](https://app.pinnacle.sh/supported-file-types?type=MMS).
19
+ */
20
+ mediaUrls: string[];
21
+ /** Text content that may accompany the media files. */
22
+ text?: string;
23
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.mjs";
5
+ /**
6
+ * Button click event data received when a user clicks on an RCS button or quick reply (excluding `requestUserLocation` buttons).
7
+ *
8
+ * This event contains information about which button was clicked, how many times it's been clicked, and any payload or metadata attached to the button. Use this data to handle user interactions with your RCS messages.
9
+ */
10
+ export interface MessageEventRcsButtonData extends Pinnacle.ButtonClickedData {
11
+ /** Message type identifier. */
12
+ type: "RCS_BUTTON_DATA";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -0,0 +1,39 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.mjs";
5
+ /**
6
+ * RCS message containing cards, each with its own title, subtitle, and/or buttons. Quick replies can also be added. <br>
7
+ *
8
+ * See [supported file types](https://app.pinnacle.sh/supported-file-types?type=RCS-CARD).
9
+ */
10
+ export interface MessageEventRcsCardsContent {
11
+ /** Message type identifier. */
12
+ type: "RCS_CARDS";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ /** Collection of cards attached to the message. */
19
+ cards: MessageEventRcsCardsContent.Cards.Item[];
20
+ /** List of interactive quick reply buttons in the message. */
21
+ quickReplies: Pinnacle.RichButton[];
22
+ }
23
+ export declare namespace MessageEventRcsCardsContent {
24
+ type Cards = Cards.Item[];
25
+ namespace Cards {
26
+ /**
27
+ * Individual card containing title, optional media, and action buttons.
28
+ */
29
+ interface Item {
30
+ /** Action buttons attached to the card. */
31
+ buttons: Pinnacle.RichButton[];
32
+ media?: Pinnacle.RcsMediaDetailsContent;
33
+ /** Secondary text displayed below the title for additional context. */
34
+ subtitle?: string;
35
+ /** Title displayed on the card. */
36
+ title: string;
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.mjs";
5
+ /**
6
+ * Location sharing event data received when a user responds to a `requestUserLocation` button and shares their current location.
7
+ *
8
+ * This event contains the geographic coordinates (latitude/longitude) and human-readable address of the location the user chose to share. Use this data to process location-based requests or provide location-specific services.
9
+ */
10
+ export interface MessageEventRcsLocationData extends Pinnacle.LocationShareAction {
11
+ /** Message type identifier. */
12
+ type: "RCS_LOCATION_DATA";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -0,0 +1,21 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.mjs";
5
+ /**
6
+ * RCS message containing a media file with optional quick reply buttons. <br>
7
+ *
8
+ * See [supported file types](https://app.pinnacle.sh/supported-file-types?type=RCS-MEDIA).
9
+ */
10
+ export interface MessageEventRcsMediaContent {
11
+ /** Message type identifier. */
12
+ type: "RCS_MEDIA";
13
+ /**
14
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
15
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
16
+ */
17
+ id: string;
18
+ media: Pinnacle.RcsMediaDetailsContent;
19
+ /** List of interactive quick reply buttons in the message. */
20
+ quickReplies: Pinnacle.RichButton[];
21
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -0,0 +1,20 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as Pinnacle from "../index.mjs";
5
+ /**
6
+ * RCS message containing longer text content with optional quick reply buttons.
7
+ */
8
+ export interface MessageEventRcsTextContent {
9
+ /** Message type identifier. */
10
+ type: "RCS_TEXT";
11
+ /**
12
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
13
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
14
+ */
15
+ id: string;
16
+ /** List of interactive quick reply buttons in the message. */
17
+ quickReplies: Pinnacle.RichButton[];
18
+ /** Text content of the RCS message. */
19
+ text: string;
20
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -0,0 +1,17 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * SMS message containing plain text only.
6
+ */
7
+ export interface MessageEventSmsContent {
8
+ /** Message type identifier. */
9
+ type: "SMS";
10
+ /**
11
+ * Unique identifier of the message. This identifier is a string that always begins with the prefix `msg_`, for example: `msg_1234567890`. <br><br>
12
+ * To get the message details, use the [GET /messages/{id}](/api-reference/messages/get) endpoint.
13
+ */
14
+ id: string;
15
+ /** Message content. */
16
+ text: string;
17
+ }
@@ -0,0 +1,4 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ export {};
@@ -20,5 +20,11 @@ export declare namespace UploadResults {
20
20
  * Null indicates that `download.expiresAt` was not provided and the expiration time is defaulted to one hour after uploading.
21
21
  */
22
22
  expiresAt: string | null;
23
+ /**
24
+ * Deletion date for the file in ISO 8601 format. After this date, the file will be automatically deleted from our storage.<br>
25
+ *
26
+ * If this field is not provided, the file will not be deleted. You can still schedule deletion or delete the file manually in the Storage page in the dashboard.
27
+ */
28
+ deleteAt?: string | null;
23
29
  }
24
30
  }
@@ -132,5 +132,13 @@ export * from "./VCardData.mjs";
132
132
  export * from "./VcardResource.mjs";
133
133
  export * from "./Webhooks.mjs";
134
134
  export * from "./WebhookResult.mjs";
135
+ export * from "./MessageEventSmsContent.mjs";
136
+ export * from "./MessageEventMmsContent.mjs";
137
+ export * from "./MessageEventRcsTextContent.mjs";
138
+ export * from "./MessageEventRcsMediaContent.mjs";
139
+ export * from "./MessageEventRcsCardsContent.mjs";
140
+ export * from "./MessageEventRcsButtonData.mjs";
141
+ export * from "./MessageEventRcsLocationData.mjs";
142
+ export * from "./MessageEventContent.mjs";
135
143
  export * from "./MessageEvent.mjs";
136
144
  export * from "./UserEvent.mjs";
@@ -132,5 +132,13 @@ export * from "./VCardData.mjs";
132
132
  export * from "./VcardResource.mjs";
133
133
  export * from "./Webhooks.mjs";
134
134
  export * from "./WebhookResult.mjs";
135
+ export * from "./MessageEventSmsContent.mjs";
136
+ export * from "./MessageEventMmsContent.mjs";
137
+ export * from "./MessageEventRcsTextContent.mjs";
138
+ export * from "./MessageEventRcsMediaContent.mjs";
139
+ export * from "./MessageEventRcsCardsContent.mjs";
140
+ export * from "./MessageEventRcsButtonData.mjs";
141
+ export * from "./MessageEventRcsLocationData.mjs";
142
+ export * from "./MessageEventContent.mjs";
135
143
  export * from "./MessageEvent.mjs";
136
144
  export * from "./UserEvent.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rcs-js",
3
- "version": "2.0.1-rc.1",
3
+ "version": "2.0.2",
4
4
  "private": false,
5
5
  "repository": "github:pinnacle-dev/rcs-js",
6
6
  "type": "commonjs",
@@ -33,10 +33,10 @@
33
33
  "build": "yarn build:cjs && yarn build:esm",
34
34
  "build:cjs": "tsc --project ./tsconfig.cjs.json",
35
35
  "build:esm": "tsc --project ./tsconfig.esm.json && node scripts/rename-to-esm-files.js dist/esm",
36
- "test": "jest --config jest.config.mjs",
36
+ "test": "jest --selectProjects unit && NODE_OPTIONS=--experimental-vm-modules jest --selectProjects wire",
37
37
  "test:unit": "jest --selectProjects unit",
38
38
  "test:browser": "jest --selectProjects browser",
39
- "test:wire": "jest --selectProjects wire"
39
+ "test:wire": "NODE_OPTIONS=--experimental-vm-modules jest --selectProjects wire"
40
40
  },
41
41
  "dependencies": {
42
42
  "mime-types": "^3.0.1"
package/reference.md CHANGED
@@ -1361,24 +1361,28 @@ Whitelist a phone number for testing with your test RCS agent.
1361
1361
  ## Overview
1362
1362
 
1363
1363
  During development and testing, RCS agents can only send messages to whitelisted phone numbers.
1364
- Use this endpoint to add test devices to your agent's whitelist before sending test messages.
1364
+ Use this endpoint to whitelist specific phone numbers to send and receive messages from the test agent.
1365
1365
 
1366
1366
  ## Verification Process
1367
1367
 
1368
1368
  After whitelisting a number, you'll need to complete verification:
1369
1369
 
1370
- 1. Check the test device for an "RBM Tester Management" request
1371
- 2. Accept the request on the device
1372
- 3. Enter the 4-digit verification code in the Pinnacle dashboard at:
1370
+ 1. Check the test device for message from "RBM Tester Management"
1371
+ 2. Click the "Make me a tester" button
1372
+ 3. Enter the separate 4-digit verification SMS code in the Pinnacle dashboard at:
1373
1373
  ```
1374
1374
  https://app.pinnacle.sh/dashboard/brands/{brandId}?campaignId={campaignId}&campaignType=RCS
1375
1375
  ```
1376
1376
 
1377
+ > **⚠️ Important: Re-whitelisting Numbers**
1378
+ >
1379
+ > If you whitelist a number that's already whitelisted, you'll receive a new message from "RBM Tester Management". **You must click the "Make me a tester" button again to continue sending and receiving messages.**
1380
+
1377
1381
  > **Important Notes**
1378
1382
  >
1379
- > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number
1380
- > - **AT&T limitation:** Whitelisting may currently fail for AT&T numbers
1381
- > - **Verification required:** The whitelist request isn't complete until you verify the device.
1383
+ > - **Verification required:** Messages cannot be sent nor received until you have clicked the "Make me a tester" button on the test device.
1384
+ > - **Testing only:** This is only required for test agents. Production agents can message any RCS-enabled number.
1385
+ > - **Network limitations:** Whitelisting may be temporarily unavailable for some carriers but are usually restored shortly.
1382
1386
 
1383
1387
  </dd>
1384
1388
  </dl>
@@ -3948,6 +3952,7 @@ await client.tools.file.upload({
3948
3952
  size: 1024,
3949
3953
  name: "test.jpg",
3950
3954
  options: {
3955
+ deleteAt: "2025-12-31T23:59:59Z",
3951
3956
  download: {
3952
3957
  expiresAt: "2025-06-30T12:00:00.000Z",
3953
3958
  },