postboost 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +1 -1
  2. package/api/aIApi.ts +582 -0
  3. package/api/accountsApi.ts +1 -1
  4. package/api/apis.ts +3 -1
  5. package/api/mediaApi.ts +1 -1
  6. package/api/postsApi.ts +1 -1
  7. package/api/receiptsApi.ts +1 -1
  8. package/api/subscriptionsApi.ts +1 -1
  9. package/api/tagsApi.ts +1 -1
  10. package/api/usersApi.ts +1 -1
  11. package/api/workspacesApi.ts +1 -1
  12. package/model/account.ts +1 -1
  13. package/model/addGenericSubscriptionRequest.ts +1 -1
  14. package/model/blogToSocial200Response.ts +32 -0
  15. package/model/blogToSocial429Response.ts +31 -0
  16. package/model/blogToSocialCaption.ts +79 -0
  17. package/model/blogToSocialInput.ts +196 -0
  18. package/model/blogToSocialMedia.ts +46 -0
  19. package/model/blogToSocialResponse.ts +87 -0
  20. package/model/changeSubscriptionPlanRequest.ts +1 -1
  21. package/model/checkoutSubscription200Response.ts +1 -1
  22. package/model/checkoutSubscriptionRequest.ts +1 -1
  23. package/model/deleteMediaBulkRequest.ts +1 -1
  24. package/model/deleteMode.ts +1 -1
  25. package/model/deletePostRequest.ts +1 -1
  26. package/model/deletePostsBulkRequest.ts +1 -1
  27. package/model/deleteReceiptsBulkRequest.ts +1 -1
  28. package/model/deleteResult.ts +1 -1
  29. package/model/deleteUser400Response.ts +1 -1
  30. package/model/deleteUsersBulkRequest.ts +1 -1
  31. package/model/deleteWorkspacesBulkRequest.ts +1 -1
  32. package/model/generatedImageItem.ts +43 -0
  33. package/model/getRemoteUploadStatus200Response.ts +1 -1
  34. package/model/imageAltText200Response.ts +32 -0
  35. package/model/imageAltTextInput.ts +31 -0
  36. package/model/imageAltTextResponse.ts +49 -0
  37. package/model/imageEditInput.ts +82 -0
  38. package/model/imageGenerate200Response.ts +32 -0
  39. package/model/imageGenerate429Response.ts +31 -0
  40. package/model/imageGenerateInput.ts +116 -0
  41. package/model/imageGenerationResponse.ts +68 -0
  42. package/model/imagePrompt200Response.ts +32 -0
  43. package/model/imagePrompt429Response.ts +31 -0
  44. package/model/imagePromptInput.ts +73 -0
  45. package/model/imagePromptResponse.ts +31 -0
  46. package/model/imageVariations200Response.ts +32 -0
  47. package/model/imageVariationsInput.ts +61 -0
  48. package/model/imageVariationsResponse.ts +56 -0
  49. package/model/initiateChunkedUpload201Response.ts +1 -1
  50. package/model/initiateChunkedUploadRequest.ts +1 -1
  51. package/model/initiateRemoteUpload201Response.ts +1 -1
  52. package/model/initiateRemoteUpload201ResponseOneOf.ts +1 -1
  53. package/model/initiateRemoteUploadRequest.ts +1 -1
  54. package/model/listAccounts200Response.ts +1 -1
  55. package/model/listMedia200Response.ts +1 -1
  56. package/model/listPosts200Response.ts +1 -1
  57. package/model/listReceipts200Response.ts +1 -1
  58. package/model/listTags200Response.ts +1 -1
  59. package/model/listUsers200Response.ts +1 -1
  60. package/model/listWorkspaces200Response.ts +1 -1
  61. package/model/media.ts +1 -1
  62. package/model/models.ts +79 -0
  63. package/model/paginationMeta.ts +1 -1
  64. package/model/paginationMetaLinks.ts +1 -1
  65. package/model/paginationMetaMeta.ts +1 -1
  66. package/model/post.ts +1 -1
  67. package/model/postContent.ts +1 -1
  68. package/model/postInput.ts +1 -1
  69. package/model/postStatus.ts +1 -1
  70. package/model/postVersion.ts +1 -1
  71. package/model/receipt.ts +1 -1
  72. package/model/receiptInput.ts +1 -1
  73. package/model/receiptUpdateInput.ts +1 -1
  74. package/model/removeUserFromWorkspaceRequest.ts +1 -1
  75. package/model/schedulePostRequest.ts +1 -1
  76. package/model/scheduleResult.ts +1 -1
  77. package/model/subscription.ts +1 -1
  78. package/model/subscriptionInput.ts +1 -1
  79. package/model/subscriptionStatus.ts +1 -1
  80. package/model/subscriptionUpdateInput.ts +1 -1
  81. package/model/tag.ts +1 -1
  82. package/model/tagInput.ts +1 -1
  83. package/model/updateMediaRequest.ts +1 -1
  84. package/model/uploadChunk201Response.ts +1 -1
  85. package/model/user.ts +1 -1
  86. package/model/userInput.ts +1 -1
  87. package/model/userUpdateInput.ts +1 -1
  88. package/model/workspace.ts +1 -1
  89. package/model/workspaceInput.ts +1 -1
  90. package/model/workspaceUserInput.ts +1 -1
  91. package/package.json +1 -1
package/README.md CHANGED
@@ -13,7 +13,7 @@ npm install postboost
13
13
  | **npm** | [npmjs.com/package/postboost](https://www.npmjs.com/package/postboost) |
14
14
  | **GitHub** | [postboost-co/postboost-node](https://github.com/postboost-co/postboost-node) |
15
15
  | **Docs** | [postboost.co/docs/api](https://postboost.co/docs/api) |
16
- | **Version** | v1.4.0 |
16
+ | **Version** | v1.6.0 |
17
17
 
18
18
  ## Quick start
19
19
 
package/api/aIApi.ts ADDED
@@ -0,0 +1,582 @@
1
+ /**
2
+ * PostBoost API
3
+ * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
4
+ *
5
+ * The version of the OpenAPI document: 1.0.0
6
+ * Contact: hi@postboost.co
7
+ *
8
+ * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
+ * https://openapi-generator.tech
10
+ * Do not edit the class manually.
11
+ */
12
+
13
+
14
+ import localVarRequest from 'request';
15
+ import http from 'http';
16
+
17
+ /* tslint:disable:no-unused-locals */
18
+ import { BlogToSocial200Response } from '../model/blogToSocial200Response';
19
+ import { BlogToSocial429Response } from '../model/blogToSocial429Response';
20
+ import { BlogToSocialInput } from '../model/blogToSocialInput';
21
+ import { ImageAltText200Response } from '../model/imageAltText200Response';
22
+ import { ImageAltTextInput } from '../model/imageAltTextInput';
23
+ import { ImageEditInput } from '../model/imageEditInput';
24
+ import { ImageGenerate200Response } from '../model/imageGenerate200Response';
25
+ import { ImageGenerate429Response } from '../model/imageGenerate429Response';
26
+ import { ImageGenerateInput } from '../model/imageGenerateInput';
27
+ import { ImagePrompt200Response } from '../model/imagePrompt200Response';
28
+ import { ImagePrompt429Response } from '../model/imagePrompt429Response';
29
+ import { ImagePromptInput } from '../model/imagePromptInput';
30
+ import { ImageVariations200Response } from '../model/imageVariations200Response';
31
+ import { ImageVariationsInput } from '../model/imageVariationsInput';
32
+
33
+ import { ObjectSerializer, Authentication, VoidAuth, Interceptor } from '../model/models';
34
+ import { HttpBasicAuth, HttpBearerAuth, ApiKeyAuth, OAuth } from '../model/models';
35
+
36
+ import { HttpError, RequestFile } from './apis';
37
+
38
+ let defaultBasePath = 'https://postboost.co/app/api';
39
+
40
+ // ===============================================
41
+ // This file is autogenerated - Please do not edit
42
+ // ===============================================
43
+
44
+ export enum AIApiApiKeys {
45
+ }
46
+
47
+ export class AIApi {
48
+ protected _basePath = defaultBasePath;
49
+ protected _defaultHeaders : any = {};
50
+ protected _useQuerystring : boolean = false;
51
+
52
+ protected authentications = {
53
+ 'default': <Authentication>new VoidAuth(),
54
+ 'bearerAuth': new HttpBearerAuth(),
55
+ }
56
+
57
+ protected interceptors: Interceptor[] = [];
58
+
59
+ constructor(basePath?: string);
60
+ constructor(basePathOrUsername: string, password?: string, basePath?: string) {
61
+ if (password) {
62
+ if (basePath) {
63
+ this.basePath = basePath;
64
+ }
65
+ } else {
66
+ if (basePathOrUsername) {
67
+ this.basePath = basePathOrUsername
68
+ }
69
+ }
70
+ }
71
+
72
+ set useQuerystring(value: boolean) {
73
+ this._useQuerystring = value;
74
+ }
75
+
76
+ set basePath(basePath: string) {
77
+ this._basePath = basePath;
78
+ }
79
+
80
+ set defaultHeaders(defaultHeaders: any) {
81
+ this._defaultHeaders = defaultHeaders;
82
+ }
83
+
84
+ get defaultHeaders() {
85
+ return this._defaultHeaders;
86
+ }
87
+
88
+ get basePath() {
89
+ return this._basePath;
90
+ }
91
+
92
+ public setDefaultAuthentication(auth: Authentication) {
93
+ this.authentications.default = auth;
94
+ }
95
+
96
+ public setApiKey(key: AIApiApiKeys, value: string) {
97
+ (this.authentications as any)[AIApiApiKeys[key]].apiKey = value;
98
+ }
99
+
100
+ set accessToken(accessToken: string | (() => string)) {
101
+ this.authentications.bearerAuth.accessToken = accessToken;
102
+ }
103
+
104
+ public addInterceptor(interceptor: Interceptor) {
105
+ this.interceptors.push(interceptor);
106
+ }
107
+
108
+ /**
109
+ * Generates platform-specific social media captions from a blog post URL or directly provided title and excerpt. Each platform generates one caption, which consumes one AI credit from the workspace\'s monthly allowance. **Input modes** (at least one required): - **URL mode**: provide `url` and the API scrapes the blog content automatically, including detecting the featured image via `og:image`. - **Direct mode**: provide `title` and `excerpt` directly (no scraping). If both are provided, direct values take priority. When `create_post` is `true`, a draft post is created in the workspace with per-account caption versions. If an image is available (from `image_url` or the scraped `og:image`), it is imported into the workspace media library and attached to the draft post.
110
+ * @summary Generate social media captions from a blog post
111
+ * @param workspaceUuid UUID of the workspace.
112
+ * @param blogToSocialInput
113
+ */
114
+ public async blogToSocial (workspaceUuid: string, blogToSocialInput: BlogToSocialInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: BlogToSocial200Response; }> {
115
+ const localVarPath = this.basePath + '/{workspaceUuid}/ai/blog-to-social'
116
+ .replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
117
+ let localVarQueryParameters: any = {};
118
+ let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
119
+ const produces = ['application/json'];
120
+ // give precedence to 'application/json'
121
+ if (produces.indexOf('application/json') >= 0) {
122
+ localVarHeaderParams.Accept = 'application/json';
123
+ } else {
124
+ localVarHeaderParams.Accept = produces.join(',');
125
+ }
126
+ let localVarFormParams: any = {};
127
+
128
+ // verify required parameter 'workspaceUuid' is not null or undefined
129
+ if (workspaceUuid === null || workspaceUuid === undefined) {
130
+ throw new Error('Required parameter workspaceUuid was null or undefined when calling blogToSocial.');
131
+ }
132
+
133
+ // verify required parameter 'blogToSocialInput' is not null or undefined
134
+ if (blogToSocialInput === null || blogToSocialInput === undefined) {
135
+ throw new Error('Required parameter blogToSocialInput was null or undefined when calling blogToSocial.');
136
+ }
137
+
138
+ (<any>Object).assign(localVarHeaderParams, options.headers);
139
+
140
+ let localVarUseFormData = false;
141
+
142
+ let localVarRequestOptions: localVarRequest.Options = {
143
+ method: 'POST',
144
+ qs: localVarQueryParameters,
145
+ headers: localVarHeaderParams,
146
+ uri: localVarPath,
147
+ useQuerystring: this._useQuerystring,
148
+ json: true,
149
+ body: ObjectSerializer.serialize(blogToSocialInput, "BlogToSocialInput")
150
+ };
151
+
152
+ let authenticationPromise = Promise.resolve();
153
+ if (this.authentications.bearerAuth.accessToken) {
154
+ authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
155
+ }
156
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
157
+
158
+ let interceptorPromise = authenticationPromise;
159
+ for (const interceptor of this.interceptors) {
160
+ interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
161
+ }
162
+
163
+ return interceptorPromise.then(() => {
164
+ if (Object.keys(localVarFormParams).length) {
165
+ if (localVarUseFormData) {
166
+ (<any>localVarRequestOptions).formData = localVarFormParams;
167
+ } else {
168
+ localVarRequestOptions.form = localVarFormParams;
169
+ }
170
+ }
171
+ return new Promise<{ response: http.IncomingMessage; body: BlogToSocial200Response; }>((resolve, reject) => {
172
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
173
+ if (error) {
174
+ reject(error);
175
+ } else {
176
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
177
+ body = ObjectSerializer.deserialize(body, "BlogToSocial200Response");
178
+ resolve({ response: response, body: body });
179
+ } else {
180
+ reject(new HttpError(response, body, response.statusCode));
181
+ }
182
+ }
183
+ });
184
+ });
185
+ });
186
+ }
187
+ /**
188
+ * Analyzes an existing workspace media item and generates accessible alt text. The alt text is saved back to the media record. Costs 1 AI credit per call.
189
+ * @summary Generate alt text for a media image using AI
190
+ * @param workspaceUuid UUID of the workspace.
191
+ * @param imageAltTextInput
192
+ */
193
+ public async imageAltText (workspaceUuid: string, imageAltTextInput: ImageAltTextInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageAltText200Response; }> {
194
+ const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-alt-text'
195
+ .replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
196
+ let localVarQueryParameters: any = {};
197
+ let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
198
+ const produces = ['application/json'];
199
+ // give precedence to 'application/json'
200
+ if (produces.indexOf('application/json') >= 0) {
201
+ localVarHeaderParams.Accept = 'application/json';
202
+ } else {
203
+ localVarHeaderParams.Accept = produces.join(',');
204
+ }
205
+ let localVarFormParams: any = {};
206
+
207
+ // verify required parameter 'workspaceUuid' is not null or undefined
208
+ if (workspaceUuid === null || workspaceUuid === undefined) {
209
+ throw new Error('Required parameter workspaceUuid was null or undefined when calling imageAltText.');
210
+ }
211
+
212
+ // verify required parameter 'imageAltTextInput' is not null or undefined
213
+ if (imageAltTextInput === null || imageAltTextInput === undefined) {
214
+ throw new Error('Required parameter imageAltTextInput was null or undefined when calling imageAltText.');
215
+ }
216
+
217
+ (<any>Object).assign(localVarHeaderParams, options.headers);
218
+
219
+ let localVarUseFormData = false;
220
+
221
+ let localVarRequestOptions: localVarRequest.Options = {
222
+ method: 'POST',
223
+ qs: localVarQueryParameters,
224
+ headers: localVarHeaderParams,
225
+ uri: localVarPath,
226
+ useQuerystring: this._useQuerystring,
227
+ json: true,
228
+ body: ObjectSerializer.serialize(imageAltTextInput, "ImageAltTextInput")
229
+ };
230
+
231
+ let authenticationPromise = Promise.resolve();
232
+ if (this.authentications.bearerAuth.accessToken) {
233
+ authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
234
+ }
235
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
236
+
237
+ let interceptorPromise = authenticationPromise;
238
+ for (const interceptor of this.interceptors) {
239
+ interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
240
+ }
241
+
242
+ return interceptorPromise.then(() => {
243
+ if (Object.keys(localVarFormParams).length) {
244
+ if (localVarUseFormData) {
245
+ (<any>localVarRequestOptions).formData = localVarFormParams;
246
+ } else {
247
+ localVarRequestOptions.form = localVarFormParams;
248
+ }
249
+ }
250
+ return new Promise<{ response: http.IncomingMessage; body: ImageAltText200Response; }>((resolve, reject) => {
251
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
252
+ if (error) {
253
+ reject(error);
254
+ } else {
255
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
256
+ body = ObjectSerializer.deserialize(body, "ImageAltText200Response");
257
+ resolve({ response: response, body: body });
258
+ } else {
259
+ reject(new HttpError(response, body, response.statusCode));
260
+ }
261
+ }
262
+ });
263
+ });
264
+ });
265
+ }
266
+ /**
267
+ * Edits an existing workspace media item using the source image and a text prompt. Optionally accepts a mask (transparent areas are replaced). Saves results to the media library. Credits: `count × credit_weight`.
268
+ * @summary Edit an existing media image using AI
269
+ * @param workspaceUuid UUID of the workspace.
270
+ * @param imageEditInput
271
+ */
272
+ public async imageEdit (workspaceUuid: string, imageEditInput: ImageEditInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }> {
273
+ const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-edit'
274
+ .replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
275
+ let localVarQueryParameters: any = {};
276
+ let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
277
+ const produces = ['application/json'];
278
+ // give precedence to 'application/json'
279
+ if (produces.indexOf('application/json') >= 0) {
280
+ localVarHeaderParams.Accept = 'application/json';
281
+ } else {
282
+ localVarHeaderParams.Accept = produces.join(',');
283
+ }
284
+ let localVarFormParams: any = {};
285
+
286
+ // verify required parameter 'workspaceUuid' is not null or undefined
287
+ if (workspaceUuid === null || workspaceUuid === undefined) {
288
+ throw new Error('Required parameter workspaceUuid was null or undefined when calling imageEdit.');
289
+ }
290
+
291
+ // verify required parameter 'imageEditInput' is not null or undefined
292
+ if (imageEditInput === null || imageEditInput === undefined) {
293
+ throw new Error('Required parameter imageEditInput was null or undefined when calling imageEdit.');
294
+ }
295
+
296
+ (<any>Object).assign(localVarHeaderParams, options.headers);
297
+
298
+ let localVarUseFormData = false;
299
+
300
+ let localVarRequestOptions: localVarRequest.Options = {
301
+ method: 'POST',
302
+ qs: localVarQueryParameters,
303
+ headers: localVarHeaderParams,
304
+ uri: localVarPath,
305
+ useQuerystring: this._useQuerystring,
306
+ json: true,
307
+ body: ObjectSerializer.serialize(imageEditInput, "ImageEditInput")
308
+ };
309
+
310
+ let authenticationPromise = Promise.resolve();
311
+ if (this.authentications.bearerAuth.accessToken) {
312
+ authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
313
+ }
314
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
315
+
316
+ let interceptorPromise = authenticationPromise;
317
+ for (const interceptor of this.interceptors) {
318
+ interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
319
+ }
320
+
321
+ return interceptorPromise.then(() => {
322
+ if (Object.keys(localVarFormParams).length) {
323
+ if (localVarUseFormData) {
324
+ (<any>localVarRequestOptions).formData = localVarFormParams;
325
+ } else {
326
+ localVarRequestOptions.form = localVarFormParams;
327
+ }
328
+ }
329
+ return new Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }>((resolve, reject) => {
330
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
331
+ if (error) {
332
+ reject(error);
333
+ } else {
334
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
335
+ body = ObjectSerializer.deserialize(body, "ImageGenerate200Response");
336
+ resolve({ response: response, body: body });
337
+ } else {
338
+ reject(new HttpError(response, body, response.statusCode));
339
+ }
340
+ }
341
+ });
342
+ });
343
+ });
344
+ }
345
+ /**
346
+ * Generates one or more images and saves them immediately to the workspace media library. **Standard mode** (recommended): provide `caption` + `platform`. PostBoost builds a professional image prompt internally using platform-specific templates. No prompt engineering required. **Developer mode**: provide `prompt` directly to bypass prompt building. If both `caption` and `prompt` are sent, standard mode runs. Credits: `count x credit_weight` (default: 5 per image).
347
+ * @summary Generate social media images from a caption
348
+ * @param workspaceUuid UUID of the workspace.
349
+ * @param imageGenerateInput
350
+ */
351
+ public async imageGenerate (workspaceUuid: string, imageGenerateInput: ImageGenerateInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }> {
352
+ const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-generate'
353
+ .replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
354
+ let localVarQueryParameters: any = {};
355
+ let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
356
+ const produces = ['application/json'];
357
+ // give precedence to 'application/json'
358
+ if (produces.indexOf('application/json') >= 0) {
359
+ localVarHeaderParams.Accept = 'application/json';
360
+ } else {
361
+ localVarHeaderParams.Accept = produces.join(',');
362
+ }
363
+ let localVarFormParams: any = {};
364
+
365
+ // verify required parameter 'workspaceUuid' is not null or undefined
366
+ if (workspaceUuid === null || workspaceUuid === undefined) {
367
+ throw new Error('Required parameter workspaceUuid was null or undefined when calling imageGenerate.');
368
+ }
369
+
370
+ // verify required parameter 'imageGenerateInput' is not null or undefined
371
+ if (imageGenerateInput === null || imageGenerateInput === undefined) {
372
+ throw new Error('Required parameter imageGenerateInput was null or undefined when calling imageGenerate.');
373
+ }
374
+
375
+ (<any>Object).assign(localVarHeaderParams, options.headers);
376
+
377
+ let localVarUseFormData = false;
378
+
379
+ let localVarRequestOptions: localVarRequest.Options = {
380
+ method: 'POST',
381
+ qs: localVarQueryParameters,
382
+ headers: localVarHeaderParams,
383
+ uri: localVarPath,
384
+ useQuerystring: this._useQuerystring,
385
+ json: true,
386
+ body: ObjectSerializer.serialize(imageGenerateInput, "ImageGenerateInput")
387
+ };
388
+
389
+ let authenticationPromise = Promise.resolve();
390
+ if (this.authentications.bearerAuth.accessToken) {
391
+ authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
392
+ }
393
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
394
+
395
+ let interceptorPromise = authenticationPromise;
396
+ for (const interceptor of this.interceptors) {
397
+ interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
398
+ }
399
+
400
+ return interceptorPromise.then(() => {
401
+ if (Object.keys(localVarFormParams).length) {
402
+ if (localVarUseFormData) {
403
+ (<any>localVarRequestOptions).formData = localVarFormParams;
404
+ } else {
405
+ localVarRequestOptions.form = localVarFormParams;
406
+ }
407
+ }
408
+ return new Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }>((resolve, reject) => {
409
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
410
+ if (error) {
411
+ reject(error);
412
+ } else {
413
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
414
+ body = ObjectSerializer.deserialize(body, "ImageGenerate200Response");
415
+ resolve({ response: response, body: body });
416
+ } else {
417
+ reject(new HttpError(response, body, response.statusCode));
418
+ }
419
+ }
420
+ });
421
+ });
422
+ });
423
+ }
424
+ /**
425
+ * Builds a professional image generation prompt from a caption and platform. No image is generated. Use this to preview the prompt before calling `image-generate`. Costs 1 AI credit per call. When `image-generate` builds the prompt internally (standard mode), no credit is charged for the prompt step.
426
+ * @summary Build an optimized image prompt from a social media caption
427
+ * @param workspaceUuid UUID of the workspace.
428
+ * @param imagePromptInput
429
+ */
430
+ public async imagePrompt (workspaceUuid: string, imagePromptInput: ImagePromptInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImagePrompt200Response; }> {
431
+ const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-prompt'
432
+ .replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
433
+ let localVarQueryParameters: any = {};
434
+ let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
435
+ const produces = ['application/json'];
436
+ // give precedence to 'application/json'
437
+ if (produces.indexOf('application/json') >= 0) {
438
+ localVarHeaderParams.Accept = 'application/json';
439
+ } else {
440
+ localVarHeaderParams.Accept = produces.join(',');
441
+ }
442
+ let localVarFormParams: any = {};
443
+
444
+ // verify required parameter 'workspaceUuid' is not null or undefined
445
+ if (workspaceUuid === null || workspaceUuid === undefined) {
446
+ throw new Error('Required parameter workspaceUuid was null or undefined when calling imagePrompt.');
447
+ }
448
+
449
+ // verify required parameter 'imagePromptInput' is not null or undefined
450
+ if (imagePromptInput === null || imagePromptInput === undefined) {
451
+ throw new Error('Required parameter imagePromptInput was null or undefined when calling imagePrompt.');
452
+ }
453
+
454
+ (<any>Object).assign(localVarHeaderParams, options.headers);
455
+
456
+ let localVarUseFormData = false;
457
+
458
+ let localVarRequestOptions: localVarRequest.Options = {
459
+ method: 'POST',
460
+ qs: localVarQueryParameters,
461
+ headers: localVarHeaderParams,
462
+ uri: localVarPath,
463
+ useQuerystring: this._useQuerystring,
464
+ json: true,
465
+ body: ObjectSerializer.serialize(imagePromptInput, "ImagePromptInput")
466
+ };
467
+
468
+ let authenticationPromise = Promise.resolve();
469
+ if (this.authentications.bearerAuth.accessToken) {
470
+ authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
471
+ }
472
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
473
+
474
+ let interceptorPromise = authenticationPromise;
475
+ for (const interceptor of this.interceptors) {
476
+ interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
477
+ }
478
+
479
+ return interceptorPromise.then(() => {
480
+ if (Object.keys(localVarFormParams).length) {
481
+ if (localVarUseFormData) {
482
+ (<any>localVarRequestOptions).formData = localVarFormParams;
483
+ } else {
484
+ localVarRequestOptions.form = localVarFormParams;
485
+ }
486
+ }
487
+ return new Promise<{ response: http.IncomingMessage; body: ImagePrompt200Response; }>((resolve, reject) => {
488
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
489
+ if (error) {
490
+ reject(error);
491
+ } else {
492
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
493
+ body = ObjectSerializer.deserialize(body, "ImagePrompt200Response");
494
+ resolve({ response: response, body: body });
495
+ } else {
496
+ reject(new HttpError(response, body, response.statusCode));
497
+ }
498
+ }
499
+ });
500
+ });
501
+ });
502
+ }
503
+ /**
504
+ * Creates one or more variations of an existing workspace media item. Saves results to the media library. Credits: `count × credit_weight`.
505
+ * @summary Generate variations of an existing media image
506
+ * @param workspaceUuid UUID of the workspace.
507
+ * @param imageVariationsInput
508
+ */
509
+ public async imageVariations (workspaceUuid: string, imageVariationsInput: ImageVariationsInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageVariations200Response; }> {
510
+ const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-variations'
511
+ .replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
512
+ let localVarQueryParameters: any = {};
513
+ let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
514
+ const produces = ['application/json'];
515
+ // give precedence to 'application/json'
516
+ if (produces.indexOf('application/json') >= 0) {
517
+ localVarHeaderParams.Accept = 'application/json';
518
+ } else {
519
+ localVarHeaderParams.Accept = produces.join(',');
520
+ }
521
+ let localVarFormParams: any = {};
522
+
523
+ // verify required parameter 'workspaceUuid' is not null or undefined
524
+ if (workspaceUuid === null || workspaceUuid === undefined) {
525
+ throw new Error('Required parameter workspaceUuid was null or undefined when calling imageVariations.');
526
+ }
527
+
528
+ // verify required parameter 'imageVariationsInput' is not null or undefined
529
+ if (imageVariationsInput === null || imageVariationsInput === undefined) {
530
+ throw new Error('Required parameter imageVariationsInput was null or undefined when calling imageVariations.');
531
+ }
532
+
533
+ (<any>Object).assign(localVarHeaderParams, options.headers);
534
+
535
+ let localVarUseFormData = false;
536
+
537
+ let localVarRequestOptions: localVarRequest.Options = {
538
+ method: 'POST',
539
+ qs: localVarQueryParameters,
540
+ headers: localVarHeaderParams,
541
+ uri: localVarPath,
542
+ useQuerystring: this._useQuerystring,
543
+ json: true,
544
+ body: ObjectSerializer.serialize(imageVariationsInput, "ImageVariationsInput")
545
+ };
546
+
547
+ let authenticationPromise = Promise.resolve();
548
+ if (this.authentications.bearerAuth.accessToken) {
549
+ authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
550
+ }
551
+ authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
552
+
553
+ let interceptorPromise = authenticationPromise;
554
+ for (const interceptor of this.interceptors) {
555
+ interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
556
+ }
557
+
558
+ return interceptorPromise.then(() => {
559
+ if (Object.keys(localVarFormParams).length) {
560
+ if (localVarUseFormData) {
561
+ (<any>localVarRequestOptions).formData = localVarFormParams;
562
+ } else {
563
+ localVarRequestOptions.form = localVarFormParams;
564
+ }
565
+ }
566
+ return new Promise<{ response: http.IncomingMessage; body: ImageVariations200Response; }>((resolve, reject) => {
567
+ localVarRequest(localVarRequestOptions, (error, response, body) => {
568
+ if (error) {
569
+ reject(error);
570
+ } else {
571
+ if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
572
+ body = ObjectSerializer.deserialize(body, "ImageVariations200Response");
573
+ resolve({ response: response, body: body });
574
+ } else {
575
+ reject(new HttpError(response, body, response.statusCode));
576
+ }
577
+ }
578
+ });
579
+ });
580
+ });
581
+ }
582
+ }
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * PostBoost API
3
- * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 8+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
3
+ * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
4
4
  *
5
5
  * The version of the OpenAPI document: 1.0.0
6
6
  * Contact: hi@postboost.co
package/api/apis.ts CHANGED
@@ -1,3 +1,5 @@
1
+ export * from './aIApi';
2
+ import { AIApi } from './aIApi';
1
3
  export * from './accountsApi';
2
4
  import { AccountsApi } from './accountsApi';
3
5
  export * from './mediaApi';
@@ -25,4 +27,4 @@ export class HttpError extends Error {
25
27
 
26
28
  export { RequestFile } from '../model/models';
27
29
 
28
- export const APIS = [AccountsApi, MediaApi, PostsApi, ReceiptsApi, SubscriptionsApi, TagsApi, UsersApi, WorkspacesApi];
30
+ export const APIS = [AIApi, AccountsApi, MediaApi, PostsApi, ReceiptsApi, SubscriptionsApi, TagsApi, UsersApi, WorkspacesApi];
package/api/mediaApi.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * PostBoost API
3
- * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 8+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
3
+ * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
4
4
  *
5
5
  * The version of the OpenAPI document: 1.0.0
6
6
  * Contact: hi@postboost.co
package/api/postsApi.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * PostBoost API
3
- * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 8+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
3
+ * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
4
4
  *
5
5
  * The version of the OpenAPI document: 1.0.0
6
6
  * Contact: hi@postboost.co
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * PostBoost API
3
- * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 8+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
3
+ * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
4
4
  *
5
5
  * The version of the OpenAPI document: 1.0.0
6
6
  * Contact: hi@postboost.co
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * PostBoost API
3
- * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 8+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
3
+ * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
4
4
  *
5
5
  * The version of the OpenAPI document: 1.0.0
6
6
  * Contact: hi@postboost.co
package/api/tagsApi.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * PostBoost API
3
- * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 8+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
3
+ * The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
4
4
  *
5
5
  * The version of the OpenAPI document: 1.0.0
6
6
  * Contact: hi@postboost.co