rcs-js 2.0.3 → 2.0.5-rc.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.
Files changed (141) hide show
  1. package/README.md +36 -1
  2. package/dist/cjs/Client.d.ts +3 -0
  3. package/dist/cjs/Client.js +25 -20
  4. package/dist/cjs/api/resources/audiences/client/Client.d.ts +129 -0
  5. package/dist/cjs/api/resources/audiences/client/Client.js +385 -0
  6. package/dist/cjs/api/resources/audiences/client/index.d.ts +2 -0
  7. package/dist/cjs/api/resources/audiences/client/index.js +17 -0
  8. package/dist/cjs/api/resources/audiences/client/requests/AudiencesDeleteRequest.d.ts +13 -0
  9. package/dist/cjs/api/resources/audiences/client/requests/AudiencesDeleteRequest.js +5 -0
  10. package/dist/cjs/api/resources/audiences/client/requests/AudiencesGetRequest.d.ts +22 -0
  11. package/dist/cjs/api/resources/audiences/client/requests/AudiencesGetRequest.js +5 -0
  12. package/dist/cjs/api/resources/audiences/client/requests/CreateAudienceParams.d.ts +31 -0
  13. package/dist/cjs/api/resources/audiences/client/requests/CreateAudienceParams.js +5 -0
  14. package/dist/cjs/api/resources/audiences/client/requests/UpdateAudienceParams.d.ts +19 -0
  15. package/dist/cjs/api/resources/audiences/client/requests/UpdateAudienceParams.js +5 -0
  16. package/dist/cjs/api/resources/audiences/client/requests/index.d.ts +4 -0
  17. package/dist/cjs/api/resources/audiences/client/requests/index.js +2 -0
  18. package/dist/cjs/api/resources/audiences/index.d.ts +3 -0
  19. package/dist/cjs/api/resources/audiences/index.js +19 -0
  20. package/dist/cjs/api/resources/audiences/resources/contacts/client/Client.d.ts +80 -0
  21. package/dist/cjs/api/resources/audiences/resources/contacts/client/Client.js +220 -0
  22. package/dist/cjs/api/resources/audiences/resources/contacts/client/index.d.ts +2 -0
  23. package/dist/cjs/api/resources/audiences/resources/contacts/client/index.js +17 -0
  24. package/dist/cjs/api/resources/audiences/resources/contacts/client/requests/AddContactsParams.d.ts +16 -0
  25. package/dist/cjs/api/resources/audiences/resources/contacts/client/requests/AddContactsParams.js +5 -0
  26. package/dist/cjs/api/resources/audiences/resources/contacts/client/requests/RemoveContactsParams.d.ts +16 -0
  27. package/dist/cjs/api/resources/audiences/resources/contacts/client/requests/RemoveContactsParams.js +5 -0
  28. package/dist/cjs/api/resources/audiences/resources/contacts/client/requests/index.d.ts +2 -0
  29. package/dist/cjs/api/resources/audiences/resources/contacts/client/requests/index.js +2 -0
  30. package/dist/cjs/api/resources/audiences/resources/contacts/index.d.ts +1 -0
  31. package/dist/cjs/api/resources/audiences/resources/contacts/index.js +17 -0
  32. package/dist/cjs/api/resources/audiences/resources/index.d.ts +2 -0
  33. package/dist/cjs/api/resources/audiences/resources/index.js +41 -0
  34. package/dist/cjs/api/resources/audiences/types/AudiencesGetResponse.d.ts +11 -0
  35. package/dist/cjs/api/resources/audiences/types/AudiencesGetResponse.js +5 -0
  36. package/dist/cjs/api/resources/audiences/types/index.d.ts +1 -0
  37. package/dist/cjs/api/resources/audiences/types/index.js +17 -0
  38. package/dist/cjs/api/resources/index.d.ts +3 -0
  39. package/dist/cjs/api/resources/index.js +4 -1
  40. package/dist/cjs/api/resources/messages/resources/index.d.ts +1 -0
  41. package/dist/cjs/api/resources/messages/resources/index.js +1 -0
  42. package/dist/cjs/api/resources/messages/resources/rcs/client/Client.d.ts +33 -0
  43. package/dist/cjs/api/resources/messages/resources/rcs/client/Client.js +90 -0
  44. package/dist/cjs/api/resources/messages/resources/rcs/client/index.d.ts +1 -0
  45. package/dist/cjs/api/resources/messages/resources/rcs/client/index.js +15 -0
  46. package/dist/cjs/api/resources/messages/resources/rcs/client/requests/SendTypingIndicatorSchema.d.ts +38 -0
  47. package/dist/cjs/api/resources/messages/resources/rcs/client/requests/SendTypingIndicatorSchema.js +5 -0
  48. package/dist/cjs/api/resources/messages/resources/rcs/client/requests/index.d.ts +1 -0
  49. package/dist/cjs/api/resources/messages/resources/rcs/client/requests/index.js +2 -0
  50. package/dist/cjs/api/types/AudienceCountOnly.d.ts +17 -0
  51. package/dist/cjs/api/types/AudienceCountOnly.js +5 -0
  52. package/dist/cjs/api/types/AudienceWithPagination.d.ts +17 -0
  53. package/dist/cjs/api/types/AudienceWithPagination.js +5 -0
  54. package/dist/cjs/api/types/DeleteAudienceResponse.d.ts +7 -0
  55. package/dist/cjs/api/types/DeleteAudienceResponse.js +5 -0
  56. package/dist/cjs/api/types/Options.d.ts +21 -0
  57. package/dist/cjs/api/types/Options.js +5 -0
  58. package/dist/cjs/api/types/Pagination.d.ts +13 -0
  59. package/dist/cjs/api/types/Pagination.js +5 -0
  60. package/dist/cjs/api/types/RcsButtonOpenUrl.d.ts +31 -2
  61. package/dist/cjs/api/types/RcsButtonOpenUrl.js +9 -0
  62. package/dist/cjs/api/types/RcsButtonSendLocation.d.ts +8 -2
  63. package/dist/cjs/api/types/RichCardsMessage.d.ts +51 -1
  64. package/dist/cjs/api/types/RichCardsMessage.js +18 -0
  65. package/dist/cjs/api/types/SendTypingIndicatorResponse.d.ts +22 -0
  66. package/dist/cjs/api/types/SendTypingIndicatorResponse.js +5 -0
  67. package/dist/cjs/api/types/index.d.ts +6 -0
  68. package/dist/cjs/api/types/index.js +6 -0
  69. package/dist/cjs/version.d.ts +1 -1
  70. package/dist/cjs/version.js +1 -1
  71. package/dist/esm/Client.d.mts +3 -0
  72. package/dist/esm/Client.mjs +7 -2
  73. package/dist/esm/api/resources/audiences/client/Client.d.mts +129 -0
  74. package/dist/esm/api/resources/audiences/client/Client.mjs +348 -0
  75. package/dist/esm/api/resources/audiences/client/index.d.mts +2 -0
  76. package/dist/esm/api/resources/audiences/client/index.mjs +1 -0
  77. package/dist/esm/api/resources/audiences/client/requests/AudiencesDeleteRequest.d.mts +13 -0
  78. package/dist/esm/api/resources/audiences/client/requests/AudiencesDeleteRequest.mjs +4 -0
  79. package/dist/esm/api/resources/audiences/client/requests/AudiencesGetRequest.d.mts +22 -0
  80. package/dist/esm/api/resources/audiences/client/requests/AudiencesGetRequest.mjs +4 -0
  81. package/dist/esm/api/resources/audiences/client/requests/CreateAudienceParams.d.mts +31 -0
  82. package/dist/esm/api/resources/audiences/client/requests/CreateAudienceParams.mjs +4 -0
  83. package/dist/esm/api/resources/audiences/client/requests/UpdateAudienceParams.d.mts +19 -0
  84. package/dist/esm/api/resources/audiences/client/requests/UpdateAudienceParams.mjs +4 -0
  85. package/dist/esm/api/resources/audiences/client/requests/index.d.mts +4 -0
  86. package/dist/esm/api/resources/audiences/client/requests/index.mjs +1 -0
  87. package/dist/esm/api/resources/audiences/index.d.mts +3 -0
  88. package/dist/esm/api/resources/audiences/index.mjs +3 -0
  89. package/dist/esm/api/resources/audiences/resources/contacts/client/Client.d.mts +80 -0
  90. package/dist/esm/api/resources/audiences/resources/contacts/client/Client.mjs +183 -0
  91. package/dist/esm/api/resources/audiences/resources/contacts/client/index.d.mts +2 -0
  92. package/dist/esm/api/resources/audiences/resources/contacts/client/index.mjs +1 -0
  93. package/dist/esm/api/resources/audiences/resources/contacts/client/requests/AddContactsParams.d.mts +16 -0
  94. package/dist/esm/api/resources/audiences/resources/contacts/client/requests/AddContactsParams.mjs +4 -0
  95. package/dist/esm/api/resources/audiences/resources/contacts/client/requests/RemoveContactsParams.d.mts +16 -0
  96. package/dist/esm/api/resources/audiences/resources/contacts/client/requests/RemoveContactsParams.mjs +4 -0
  97. package/dist/esm/api/resources/audiences/resources/contacts/client/requests/index.d.mts +2 -0
  98. package/dist/esm/api/resources/audiences/resources/contacts/client/requests/index.mjs +1 -0
  99. package/dist/esm/api/resources/audiences/resources/contacts/index.d.mts +1 -0
  100. package/dist/esm/api/resources/audiences/resources/contacts/index.mjs +1 -0
  101. package/dist/esm/api/resources/audiences/resources/index.d.mts +2 -0
  102. package/dist/esm/api/resources/audiences/resources/index.mjs +2 -0
  103. package/dist/esm/api/resources/audiences/types/AudiencesGetResponse.d.mts +11 -0
  104. package/dist/esm/api/resources/audiences/types/AudiencesGetResponse.mjs +4 -0
  105. package/dist/esm/api/resources/audiences/types/index.d.mts +1 -0
  106. package/dist/esm/api/resources/audiences/types/index.mjs +1 -0
  107. package/dist/esm/api/resources/index.d.mts +3 -0
  108. package/dist/esm/api/resources/index.mjs +3 -0
  109. package/dist/esm/api/resources/messages/resources/index.d.mts +1 -0
  110. package/dist/esm/api/resources/messages/resources/index.mjs +1 -0
  111. package/dist/esm/api/resources/messages/resources/rcs/client/Client.d.mts +33 -0
  112. package/dist/esm/api/resources/messages/resources/rcs/client/Client.mjs +90 -0
  113. package/dist/esm/api/resources/messages/resources/rcs/client/index.d.mts +1 -0
  114. package/dist/esm/api/resources/messages/resources/rcs/client/index.mjs +1 -1
  115. package/dist/esm/api/resources/messages/resources/rcs/client/requests/SendTypingIndicatorSchema.d.mts +38 -0
  116. package/dist/esm/api/resources/messages/resources/rcs/client/requests/SendTypingIndicatorSchema.mjs +4 -0
  117. package/dist/esm/api/resources/messages/resources/rcs/client/requests/index.d.mts +1 -0
  118. package/dist/esm/api/resources/messages/resources/rcs/client/requests/index.mjs +1 -0
  119. package/dist/esm/api/types/AudienceCountOnly.d.mts +17 -0
  120. package/dist/esm/api/types/AudienceCountOnly.mjs +4 -0
  121. package/dist/esm/api/types/AudienceWithPagination.d.mts +17 -0
  122. package/dist/esm/api/types/AudienceWithPagination.mjs +4 -0
  123. package/dist/esm/api/types/DeleteAudienceResponse.d.mts +7 -0
  124. package/dist/esm/api/types/DeleteAudienceResponse.mjs +4 -0
  125. package/dist/esm/api/types/Options.d.mts +21 -0
  126. package/dist/esm/api/types/Options.mjs +4 -0
  127. package/dist/esm/api/types/Pagination.d.mts +13 -0
  128. package/dist/esm/api/types/Pagination.mjs +4 -0
  129. package/dist/esm/api/types/RcsButtonOpenUrl.d.mts +31 -2
  130. package/dist/esm/api/types/RcsButtonOpenUrl.mjs +8 -1
  131. package/dist/esm/api/types/RcsButtonSendLocation.d.mts +8 -2
  132. package/dist/esm/api/types/RichCardsMessage.d.mts +51 -1
  133. package/dist/esm/api/types/RichCardsMessage.mjs +17 -1
  134. package/dist/esm/api/types/SendTypingIndicatorResponse.d.mts +22 -0
  135. package/dist/esm/api/types/SendTypingIndicatorResponse.mjs +4 -0
  136. package/dist/esm/api/types/index.d.mts +6 -0
  137. package/dist/esm/api/types/index.mjs +6 -0
  138. package/dist/esm/version.d.mts +1 -1
  139. package/dist/esm/version.mjs +1 -1
  140. package/package.json +2 -2
  141. package/reference.md +487 -0
@@ -0,0 +1,385 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
39
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
40
+ return new (P || (P = Promise))(function (resolve, reject) {
41
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
42
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
43
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
44
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
45
+ });
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.Audiences = void 0;
49
+ const environments = __importStar(require("../../../../environments.js"));
50
+ const core = __importStar(require("../../../../core/index.js"));
51
+ const Pinnacle = __importStar(require("../../../index.js"));
52
+ const headers_js_1 = require("../../../../core/headers.js");
53
+ const errors = __importStar(require("../../../../errors/index.js"));
54
+ const Client_js_1 = require("../resources/contacts/client/Client.js");
55
+ class Audiences {
56
+ constructor(_options = {}) {
57
+ this._options = _options;
58
+ }
59
+ get contacts() {
60
+ var _a;
61
+ return ((_a = this._contacts) !== null && _a !== void 0 ? _a : (this._contacts = new Client_js_1.Contacts(this._options)));
62
+ }
63
+ /**
64
+ * Retrieve an audience by ID with optional pagination.
65
+ *
66
+ * @param {Pinnacle.AudiencesGetRequest} request
67
+ * @param {Audiences.RequestOptions} requestOptions - Request-specific configuration.
68
+ *
69
+ * @throws {@link Pinnacle.BadRequestError}
70
+ * @throws {@link Pinnacle.UnauthorizedError}
71
+ * @throws {@link Pinnacle.NotFoundError}
72
+ * @throws {@link Pinnacle.InternalServerError}
73
+ *
74
+ * @example
75
+ * await client.audiences.get({
76
+ * id: "aud_abc123"
77
+ * })
78
+ */
79
+ get(request, requestOptions) {
80
+ return core.HttpResponsePromise.fromPromise(this.__get(request, requestOptions));
81
+ }
82
+ __get(request, requestOptions) {
83
+ return __awaiter(this, void 0, void 0, function* () {
84
+ var _a, _b, _c;
85
+ const { id, page, limit } = request;
86
+ const _queryParams = {};
87
+ _queryParams["id"] = id;
88
+ if (page != null) {
89
+ _queryParams["page"] = page.toString();
90
+ }
91
+ if (limit != null) {
92
+ _queryParams["limit"] = limit.toString();
93
+ }
94
+ let _headers = (0, headers_js_1.mergeHeaders)((_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)(Object.assign({}, (yield this._getCustomAuthorizationHeaders()))), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
95
+ const _response = yield core.fetcher({
96
+ url: core.url.join((_c = (_b = (yield core.Supplier.get(this._options.baseUrl))) !== null && _b !== void 0 ? _b : (yield core.Supplier.get(this._options.environment))) !== null && _c !== void 0 ? _c : environments.PinnacleEnvironment.Default, "audiences"),
97
+ method: "GET",
98
+ headers: _headers,
99
+ queryParameters: Object.assign(Object.assign({}, _queryParams), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams),
100
+ timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : 60000,
101
+ maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
102
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
103
+ });
104
+ if (_response.ok) {
105
+ return { data: _response.body, rawResponse: _response.rawResponse };
106
+ }
107
+ if (_response.error.reason === "status-code") {
108
+ switch (_response.error.statusCode) {
109
+ case 400:
110
+ throw new Pinnacle.BadRequestError(_response.error.body, _response.rawResponse);
111
+ case 401:
112
+ throw new Pinnacle.UnauthorizedError(_response.error.body, _response.rawResponse);
113
+ case 404:
114
+ throw new Pinnacle.NotFoundError(_response.error.body, _response.rawResponse);
115
+ case 500:
116
+ throw new Pinnacle.InternalServerError(_response.error.body, _response.rawResponse);
117
+ default:
118
+ throw new errors.PinnacleError({
119
+ statusCode: _response.error.statusCode,
120
+ body: _response.error.body,
121
+ rawResponse: _response.rawResponse,
122
+ });
123
+ }
124
+ }
125
+ switch (_response.error.reason) {
126
+ case "non-json":
127
+ throw new errors.PinnacleError({
128
+ statusCode: _response.error.statusCode,
129
+ body: _response.error.rawBody,
130
+ rawResponse: _response.rawResponse,
131
+ });
132
+ case "timeout":
133
+ throw new errors.PinnacleTimeoutError("Timeout exceeded when calling GET /audiences.");
134
+ case "unknown":
135
+ throw new errors.PinnacleError({
136
+ message: _response.error.errorMessage,
137
+ rawResponse: _response.rawResponse,
138
+ });
139
+ }
140
+ });
141
+ }
142
+ /**
143
+ * Create a new audience with optional initial contacts. Phone numbers that don't exist will be auto-created as contacts.
144
+ *
145
+ * @param {Pinnacle.CreateAudienceParams} request
146
+ * @param {Audiences.RequestOptions} requestOptions - Request-specific configuration.
147
+ *
148
+ * @throws {@link Pinnacle.BadRequestError}
149
+ * @throws {@link Pinnacle.UnauthorizedError}
150
+ * @throws {@link Pinnacle.InternalServerError}
151
+ *
152
+ * @example
153
+ * await client.audiences.create({
154
+ * name: "Marketing Campaign Q1",
155
+ * description: "Contacts for Q1 marketing push"
156
+ * })
157
+ *
158
+ * @example
159
+ * await client.audiences.create({
160
+ * name: "VIP Customers",
161
+ * description: "Our best customers",
162
+ * contacts: ["+12125551234", "+13105551234"]
163
+ * })
164
+ *
165
+ * @example
166
+ * await client.audiences.create({
167
+ * name: "Mixed Audience",
168
+ * contacts: ["+12125551234", "cont_abc123", "+13105551234"]
169
+ * })
170
+ */
171
+ create(request, requestOptions) {
172
+ return core.HttpResponsePromise.fromPromise(this.__create(request, requestOptions));
173
+ }
174
+ __create(request, requestOptions) {
175
+ return __awaiter(this, void 0, void 0, function* () {
176
+ var _a, _b, _c;
177
+ let _headers = (0, headers_js_1.mergeHeaders)((_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)(Object.assign({}, (yield this._getCustomAuthorizationHeaders()))), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
178
+ const _response = yield core.fetcher({
179
+ url: core.url.join((_c = (_b = (yield core.Supplier.get(this._options.baseUrl))) !== null && _b !== void 0 ? _b : (yield core.Supplier.get(this._options.environment))) !== null && _c !== void 0 ? _c : environments.PinnacleEnvironment.Default, "audiences"),
180
+ method: "POST",
181
+ headers: _headers,
182
+ contentType: "application/json",
183
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
184
+ requestType: "json",
185
+ body: request,
186
+ timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : 60000,
187
+ maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
188
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
189
+ });
190
+ if (_response.ok) {
191
+ return { data: _response.body, rawResponse: _response.rawResponse };
192
+ }
193
+ if (_response.error.reason === "status-code") {
194
+ switch (_response.error.statusCode) {
195
+ case 400:
196
+ throw new Pinnacle.BadRequestError(_response.error.body, _response.rawResponse);
197
+ case 401:
198
+ throw new Pinnacle.UnauthorizedError(_response.error.body, _response.rawResponse);
199
+ case 500:
200
+ throw new Pinnacle.InternalServerError(_response.error.body, _response.rawResponse);
201
+ default:
202
+ throw new errors.PinnacleError({
203
+ statusCode: _response.error.statusCode,
204
+ body: _response.error.body,
205
+ rawResponse: _response.rawResponse,
206
+ });
207
+ }
208
+ }
209
+ switch (_response.error.reason) {
210
+ case "non-json":
211
+ throw new errors.PinnacleError({
212
+ statusCode: _response.error.statusCode,
213
+ body: _response.error.rawBody,
214
+ rawResponse: _response.rawResponse,
215
+ });
216
+ case "timeout":
217
+ throw new errors.PinnacleTimeoutError("Timeout exceeded when calling POST /audiences.");
218
+ case "unknown":
219
+ throw new errors.PinnacleError({
220
+ message: _response.error.errorMessage,
221
+ rawResponse: _response.rawResponse,
222
+ });
223
+ }
224
+ });
225
+ }
226
+ /**
227
+ * Permanently delete an audience and all its contact associations.
228
+ *
229
+ * Note: This will NOT delete the contacts themselves, only the audience and its memberships.
230
+ *
231
+ * @param {Pinnacle.AudiencesDeleteRequest} request
232
+ * @param {Audiences.RequestOptions} requestOptions - Request-specific configuration.
233
+ *
234
+ * @throws {@link Pinnacle.BadRequestError}
235
+ * @throws {@link Pinnacle.UnauthorizedError}
236
+ * @throws {@link Pinnacle.NotFoundError}
237
+ * @throws {@link Pinnacle.InternalServerError}
238
+ *
239
+ * @example
240
+ * await client.audiences.delete({
241
+ * id: "aud_abc123"
242
+ * })
243
+ */
244
+ delete(request, requestOptions) {
245
+ return core.HttpResponsePromise.fromPromise(this.__delete(request, requestOptions));
246
+ }
247
+ __delete(request, requestOptions) {
248
+ return __awaiter(this, void 0, void 0, function* () {
249
+ var _a, _b, _c;
250
+ const { id } = request;
251
+ const _queryParams = {};
252
+ _queryParams["id"] = id;
253
+ let _headers = (0, headers_js_1.mergeHeaders)((_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)(Object.assign({}, (yield this._getCustomAuthorizationHeaders()))), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
254
+ const _response = yield core.fetcher({
255
+ url: core.url.join((_c = (_b = (yield core.Supplier.get(this._options.baseUrl))) !== null && _b !== void 0 ? _b : (yield core.Supplier.get(this._options.environment))) !== null && _c !== void 0 ? _c : environments.PinnacleEnvironment.Default, "audiences"),
256
+ method: "DELETE",
257
+ headers: _headers,
258
+ queryParameters: Object.assign(Object.assign({}, _queryParams), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams),
259
+ timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : 60000,
260
+ maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
261
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
262
+ });
263
+ if (_response.ok) {
264
+ return { data: _response.body, rawResponse: _response.rawResponse };
265
+ }
266
+ if (_response.error.reason === "status-code") {
267
+ switch (_response.error.statusCode) {
268
+ case 400:
269
+ throw new Pinnacle.BadRequestError(_response.error.body, _response.rawResponse);
270
+ case 401:
271
+ throw new Pinnacle.UnauthorizedError(_response.error.body, _response.rawResponse);
272
+ case 404:
273
+ throw new Pinnacle.NotFoundError(_response.error.body, _response.rawResponse);
274
+ case 500:
275
+ throw new Pinnacle.InternalServerError(_response.error.body, _response.rawResponse);
276
+ default:
277
+ throw new errors.PinnacleError({
278
+ statusCode: _response.error.statusCode,
279
+ body: _response.error.body,
280
+ rawResponse: _response.rawResponse,
281
+ });
282
+ }
283
+ }
284
+ switch (_response.error.reason) {
285
+ case "non-json":
286
+ throw new errors.PinnacleError({
287
+ statusCode: _response.error.statusCode,
288
+ body: _response.error.rawBody,
289
+ rawResponse: _response.rawResponse,
290
+ });
291
+ case "timeout":
292
+ throw new errors.PinnacleTimeoutError("Timeout exceeded when calling DELETE /audiences.");
293
+ case "unknown":
294
+ throw new errors.PinnacleError({
295
+ message: _response.error.errorMessage,
296
+ rawResponse: _response.rawResponse,
297
+ });
298
+ }
299
+ });
300
+ }
301
+ /**
302
+ * Update audience metadata. This endpoint does NOT modify contacts.
303
+ *
304
+ * To add or remove contacts, use the [Add Contacts](/api-reference/audiences/add-contacts) or [Remove Contacts](/api-reference/audiences/remove-contacts) endpoints.
305
+ *
306
+ * @param {Pinnacle.UpdateAudienceParams} request
307
+ * @param {Audiences.RequestOptions} requestOptions - Request-specific configuration.
308
+ *
309
+ * @throws {@link Pinnacle.BadRequestError}
310
+ * @throws {@link Pinnacle.UnauthorizedError}
311
+ * @throws {@link Pinnacle.NotFoundError}
312
+ * @throws {@link Pinnacle.InternalServerError}
313
+ *
314
+ * @example
315
+ * await client.audiences.update({
316
+ * id: "aud_abc123",
317
+ * name: "Updated Audience Name",
318
+ * description: "New description"
319
+ * })
320
+ */
321
+ update(request, requestOptions) {
322
+ return core.HttpResponsePromise.fromPromise(this.__update(request, requestOptions));
323
+ }
324
+ __update(request, requestOptions) {
325
+ return __awaiter(this, void 0, void 0, function* () {
326
+ var _a, _b, _c;
327
+ let _headers = (0, headers_js_1.mergeHeaders)((_a = this._options) === null || _a === void 0 ? void 0 : _a.headers, (0, headers_js_1.mergeOnlyDefinedHeaders)(Object.assign({}, (yield this._getCustomAuthorizationHeaders()))), requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.headers);
328
+ const _response = yield core.fetcher({
329
+ url: core.url.join((_c = (_b = (yield core.Supplier.get(this._options.baseUrl))) !== null && _b !== void 0 ? _b : (yield core.Supplier.get(this._options.environment))) !== null && _c !== void 0 ? _c : environments.PinnacleEnvironment.Default, "audiences"),
330
+ method: "PATCH",
331
+ headers: _headers,
332
+ contentType: "application/json",
333
+ queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
334
+ requestType: "json",
335
+ body: request,
336
+ timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : 60000,
337
+ maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
338
+ abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
339
+ });
340
+ if (_response.ok) {
341
+ return { data: _response.body, rawResponse: _response.rawResponse };
342
+ }
343
+ if (_response.error.reason === "status-code") {
344
+ switch (_response.error.statusCode) {
345
+ case 400:
346
+ throw new Pinnacle.BadRequestError(_response.error.body, _response.rawResponse);
347
+ case 401:
348
+ throw new Pinnacle.UnauthorizedError(_response.error.body, _response.rawResponse);
349
+ case 404:
350
+ throw new Pinnacle.NotFoundError(_response.error.body, _response.rawResponse);
351
+ case 500:
352
+ throw new Pinnacle.InternalServerError(_response.error.body, _response.rawResponse);
353
+ default:
354
+ throw new errors.PinnacleError({
355
+ statusCode: _response.error.statusCode,
356
+ body: _response.error.body,
357
+ rawResponse: _response.rawResponse,
358
+ });
359
+ }
360
+ }
361
+ switch (_response.error.reason) {
362
+ case "non-json":
363
+ throw new errors.PinnacleError({
364
+ statusCode: _response.error.statusCode,
365
+ body: _response.error.rawBody,
366
+ rawResponse: _response.rawResponse,
367
+ });
368
+ case "timeout":
369
+ throw new errors.PinnacleTimeoutError("Timeout exceeded when calling PATCH /audiences.");
370
+ case "unknown":
371
+ throw new errors.PinnacleError({
372
+ message: _response.error.errorMessage,
373
+ rawResponse: _response.rawResponse,
374
+ });
375
+ }
376
+ });
377
+ }
378
+ _getCustomAuthorizationHeaders() {
379
+ return __awaiter(this, void 0, void 0, function* () {
380
+ const apiKeyValue = yield core.Supplier.get(this._options.apiKey);
381
+ return { "PINNACLE-API-KEY": apiKeyValue };
382
+ });
383
+ }
384
+ }
385
+ exports.Audiences = Audiences;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ export * from "./requests/index.js";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./requests/index.js"), exports);
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * @example
6
+ * {
7
+ * id: "aud_abc123"
8
+ * }
9
+ */
10
+ export interface AudiencesDeleteRequest {
11
+ /** Audience ID. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. */
12
+ id: string;
13
+ }
@@ -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,22 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * @example
6
+ * {
7
+ * id: "aud_abc123"
8
+ * }
9
+ *
10
+ * @example
11
+ * {
12
+ * id: "aud_abc123"
13
+ * }
14
+ */
15
+ export interface AudiencesGetRequest {
16
+ /** Audience ID. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. */
17
+ id: string;
18
+ /** Page number. If provided with or without limit, returns paginated contacts. */
19
+ page?: number;
20
+ /** Items per page. If provided with or without page, returns paginated contacts. */
21
+ limit?: number;
22
+ }
@@ -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,31 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * @example
6
+ * {
7
+ * name: "Marketing Campaign Q1",
8
+ * description: "Contacts for Q1 marketing push"
9
+ * }
10
+ *
11
+ * @example
12
+ * {
13
+ * name: "VIP Customers",
14
+ * description: "Our best customers",
15
+ * contacts: ["+12125551234", "+13105551234"]
16
+ * }
17
+ *
18
+ * @example
19
+ * {
20
+ * name: "Mixed Audience",
21
+ * contacts: ["+12125551234", "cont_abc123", "+13105551234"]
22
+ * }
23
+ */
24
+ export interface CreateAudienceParams {
25
+ /** Audience name. */
26
+ name: string;
27
+ /** Audience description. */
28
+ description?: string;
29
+ /** Optional array of phone numbers (E.164 format) or contact IDs. */
30
+ contacts?: string[];
31
+ }
@@ -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,19 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ /**
5
+ * @example
6
+ * {
7
+ * id: "aud_abc123",
8
+ * name: "Updated Audience Name",
9
+ * description: "New description"
10
+ * }
11
+ */
12
+ export interface UpdateAudienceParams {
13
+ /** Audience ID to update. This identifier is a string that always begins with the prefix `aud_`, for example: `aud_abc123`. */
14
+ id: string;
15
+ /** New audience name. */
16
+ name?: string;
17
+ /** New audience description. */
18
+ description?: string;
19
+ }
@@ -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,4 @@
1
+ export { type AudiencesGetRequest } from "./AudiencesGetRequest.js";
2
+ export { type CreateAudienceParams } from "./CreateAudienceParams.js";
3
+ export { type AudiencesDeleteRequest } from "./AudiencesDeleteRequest.js";
4
+ export { type UpdateAudienceParams } from "./UpdateAudienceParams.js";
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export * from "./types/index.js";
2
+ export * from "./client/index.js";
3
+ export * from "./resources/index.js";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types/index.js"), exports);
18
+ __exportStar(require("./client/index.js"), exports);
19
+ __exportStar(require("./resources/index.js"), exports);
@@ -0,0 +1,80 @@
1
+ /**
2
+ * This file was auto-generated by Fern from our API Definition.
3
+ */
4
+ import * as environments from "../../../../../../environments.js";
5
+ import * as core from "../../../../../../core/index.js";
6
+ import * as Pinnacle from "../../../../../index.js";
7
+ export declare namespace Contacts {
8
+ interface Options {
9
+ environment?: core.Supplier<environments.PinnacleEnvironment | string>;
10
+ /** Specify a custom URL to connect the client to. */
11
+ baseUrl?: core.Supplier<string>;
12
+ apiKey?: core.Supplier<string | undefined>;
13
+ /** Additional headers to include in requests. */
14
+ headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
15
+ }
16
+ interface RequestOptions {
17
+ /** The maximum time to wait for a response in seconds. */
18
+ timeoutInSeconds?: number;
19
+ /** The number of times to retry the request. Defaults to 2. */
20
+ maxRetries?: number;
21
+ /** A hook to abort the request. */
22
+ abortSignal?: AbortSignal;
23
+ /** Additional query string parameters to include in the request. */
24
+ queryParams?: Record<string, unknown>;
25
+ /** Additional headers to include in the request. */
26
+ headers?: Record<string, string | core.Supplier<string | null | undefined> | null | undefined>;
27
+ }
28
+ }
29
+ export declare class Contacts {
30
+ protected readonly _options: Contacts.Options;
31
+ constructor(_options?: Contacts.Options);
32
+ /**
33
+ * Remove contacts from an existing audience. This operation is idempotent.
34
+ *
35
+ * - Only removes contacts that exist in the audience
36
+ * - Contacts not in the audience are ignored
37
+ *
38
+ * @param {Pinnacle.audiences.RemoveContactsParams} request
39
+ * @param {Contacts.RequestOptions} requestOptions - Request-specific configuration.
40
+ *
41
+ * @throws {@link Pinnacle.BadRequestError}
42
+ * @throws {@link Pinnacle.UnauthorizedError}
43
+ * @throws {@link Pinnacle.NotFoundError}
44
+ * @throws {@link Pinnacle.InternalServerError}
45
+ *
46
+ * @example
47
+ * await client.audiences.contacts.remove({
48
+ * id: "aud_abc123",
49
+ * contacts: ["+12125551234", "cont_def456"]
50
+ * })
51
+ */
52
+ remove(request: Pinnacle.audiences.RemoveContactsParams, requestOptions?: Contacts.RequestOptions): core.HttpResponsePromise<Pinnacle.AudienceCountOnly>;
53
+ private __remove;
54
+ /**
55
+ * Add contacts to an existing audience. This operation is additive and idempotent.
56
+ *
57
+ * - Phone numbers that don't exist will be auto-created as contacts
58
+ * - Duplicate adds are ignored
59
+ * - Contacts already in the audience are ignored
60
+ *
61
+ * @param {Pinnacle.audiences.AddContactsParams} request
62
+ * @param {Contacts.RequestOptions} requestOptions - Request-specific configuration.
63
+ *
64
+ * @throws {@link Pinnacle.BadRequestError}
65
+ * @throws {@link Pinnacle.UnauthorizedError}
66
+ * @throws {@link Pinnacle.NotFoundError}
67
+ * @throws {@link Pinnacle.InternalServerError}
68
+ *
69
+ * @example
70
+ * await client.audiences.contacts.add({
71
+ * id: "aud_abc123",
72
+ * contacts: ["+12125551234", "cont_def456", "+13105551234"]
73
+ * })
74
+ */
75
+ add(request: Pinnacle.audiences.AddContactsParams, requestOptions?: Contacts.RequestOptions): core.HttpResponsePromise<Pinnacle.AudienceCountOnly>;
76
+ private __add;
77
+ protected _getCustomAuthorizationHeaders(): Promise<{
78
+ "PINNACLE-API-KEY": string | undefined;
79
+ }>;
80
+ }