ultracart_rest_api_v2_typescript 4.1.150 → 4.1.152

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 (42) hide show
  1. package/.openapi-generator/FILES +10 -0
  2. package/README.md +4 -2
  3. package/dist/apis/ConversationApi.d.ts +61 -1
  4. package/dist/apis/ConversationApi.js +129 -0
  5. package/dist/apis/SfvbApi.d.ts +61 -1
  6. package/dist/apis/SfvbApi.js +129 -0
  7. package/dist/models/ConversationAgentTestSessionJoinRequest.d.ts +31 -0
  8. package/dist/models/ConversationAgentTestSessionJoinRequest.js +50 -0
  9. package/dist/models/ConversationAgentTestSessionRequest.d.ts +49 -0
  10. package/dist/models/ConversationAgentTestSessionRequest.js +56 -0
  11. package/dist/models/ConversationAgentTestSessionResponse.d.ts +77 -0
  12. package/dist/models/ConversationAgentTestSessionResponse.js +68 -0
  13. package/dist/models/ConversationCustomerAuth.d.ts +67 -0
  14. package/dist/models/ConversationCustomerAuth.js +62 -0
  15. package/dist/models/SfvbThemeAttribute.d.ts +103 -0
  16. package/dist/models/SfvbThemeAttribute.js +89 -0
  17. package/dist/models/SfvbThemeAttributeUpdate.d.ts +64 -0
  18. package/dist/models/SfvbThemeAttributeUpdate.js +70 -0
  19. package/dist/models/SfvbThemeAttributeUpdateRequest.d.ts +32 -0
  20. package/dist/models/SfvbThemeAttributeUpdateRequest.js +51 -0
  21. package/dist/models/SfvbThemeAttributesResponse.d.ts +50 -0
  22. package/dist/models/SfvbThemeAttributesResponse.js +57 -0
  23. package/dist/models/SfvbThemeFont.d.ts +44 -0
  24. package/dist/models/SfvbThemeFont.js +55 -0
  25. package/dist/models/SfvbThemeFontFamily.d.ts +53 -0
  26. package/dist/models/SfvbThemeFontFamily.js +63 -0
  27. package/dist/models/index.d.ts +10 -0
  28. package/dist/models/index.js +10 -0
  29. package/package.json +1 -1
  30. package/src/apis/ConversationApi.ts +154 -0
  31. package/src/apis/SfvbApi.ts +149 -0
  32. package/src/models/ConversationAgentTestSessionJoinRequest.ts +67 -0
  33. package/src/models/ConversationAgentTestSessionRequest.ts +91 -0
  34. package/src/models/ConversationAgentTestSessionResponse.ts +148 -0
  35. package/src/models/ConversationCustomerAuth.ts +115 -0
  36. package/src/models/SfvbThemeAttribute.ts +163 -0
  37. package/src/models/SfvbThemeAttributeUpdate.ts +114 -0
  38. package/src/models/SfvbThemeAttributeUpdateRequest.ts +74 -0
  39. package/src/models/SfvbThemeAttributesResponse.ts +98 -0
  40. package/src/models/SfvbThemeFont.ts +90 -0
  41. package/src/models/SfvbThemeFontFamily.ts +95 -0
  42. package/src/models/index.ts +10 -0
@@ -206,6 +206,9 @@ src/models/ConversationAgentStatusRollupSearchRequest.ts
206
206
  src/models/ConversationAgentStatusRollupSearchResponse.ts
207
207
  src/models/ConversationAgentStatusSummaryResponse.ts
208
208
  src/models/ConversationAgentStatusTimelineResponse.ts
209
+ src/models/ConversationAgentTestSessionJoinRequest.ts
210
+ src/models/ConversationAgentTestSessionRequest.ts
211
+ src/models/ConversationAgentTestSessionResponse.ts
209
212
  src/models/ConversationAutocompleteRequest.ts
210
213
  src/models/ConversationAutocompleteResponse.ts
211
214
  src/models/ConversationAutocompleteValue.ts
@@ -213,6 +216,7 @@ src/models/ConversationCannedMessage.ts
213
216
  src/models/ConversationCannedMessageResponse.ts
214
217
  src/models/ConversationCannedMessagesResponse.ts
215
218
  src/models/ConversationCannedMessagesSearch.ts
219
+ src/models/ConversationCustomerAuth.ts
216
220
  src/models/ConversationDeleteKnowledgeBaseDocumentResponse.ts
217
221
  src/models/ConversationDepartment.ts
218
222
  src/models/ConversationDepartmentMember.ts
@@ -1019,7 +1023,13 @@ src/models/SfvbRenderResponse.ts
1019
1023
  src/models/SfvbStorefront.ts
1020
1024
  src/models/SfvbStorefrontsResponse.ts
1021
1025
  src/models/SfvbTheme.ts
1026
+ src/models/SfvbThemeAttribute.ts
1027
+ src/models/SfvbThemeAttributeUpdate.ts
1028
+ src/models/SfvbThemeAttributeUpdateRequest.ts
1029
+ src/models/SfvbThemeAttributesResponse.ts
1022
1030
  src/models/SfvbThemeDuplicateRequest.ts
1031
+ src/models/SfvbThemeFont.ts
1032
+ src/models/SfvbThemeFontFamily.ts
1023
1033
  src/models/SfvbThemeJobResponse.ts
1024
1034
  src/models/SfvbThemesResponse.ts
1025
1035
  src/models/SfvbUpsellOffer.ts
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # UltraCart Typescript SDK
2
- ## ultracart_rest_api_v2_typescript@4.1.150
2
+ ## ultracart_rest_api_v2_typescript@4.1.152
3
3
 
4
4
  Every API method call has a sample for every language SDK. See https://github.com/UltraCart/sdk_samples
5
5
 
6
6
  Installation
7
7
 
8
8
  ```
9
- npm install ultracart_rest_api_v2_typescript@4.1.150 --save
9
+ npm install ultracart_rest_api_v2_typescript@4.1.152 --save
10
10
  ```
11
11
 
12
12
  ```typescript
@@ -85,6 +85,8 @@ Not every change is committed to every SDK.
85
85
 
86
86
  | Version | Date | Comments |
87
87
  | --: | :-: | --- |
88
+ | 4.1.152 | 09/09/2026 | sfvb - internal testing |
89
+ | 4.1.151 | 09/04/2026 | conversations - added ai agent capabilities |
88
90
  | 4.1.150 | 09/04/2026 | conversations - add ai agent capabilities |
89
91
  | 4.1.149 | 09/04/2026 | conversations - added ai agent capabilities |
90
92
  | 4.1.148 | 09/04/2026 | conversations - added ai agent capabilities |
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import { BaseResponse, ConversationAgentAuthResponse, ConversationAgentProfile, ConversationAgentProfileResponse, ConversationAgentProfilesResponse, ConversationAgentStatusConfig, ConversationAgentStatusConfigResponse, ConversationAgentStatusConfigsResponse, ConversationAgentStatusHeatmapRequest, ConversationAgentStatusHeatmapResponse, ConversationAgentStatusHistorySearchRequest, ConversationAgentStatusHistorySearchResponse, ConversationAgentStatusRollupSearchRequest, ConversationAgentStatusRollupSearchResponse, ConversationAgentStatusSummaryResponse, ConversationAgentStatusTimelineResponse, ConversationAutocompleteRequest, ConversationAutocompleteResponse, ConversationCannedMessage, ConversationCannedMessageResponse, ConversationCannedMessagesResponse, ConversationCannedMessagesSearch, ConversationDeleteKnowledgeBaseDocumentResponse, ConversationDepartment, ConversationDepartmentMembersResponse, ConversationDepartmentResponse, ConversationDepartmentsResponse, ConversationEngagement, ConversationEngagementResponse, ConversationEngagementsResponse, ConversationInsertKnowledgeBaseDocumentRequest, ConversationInsertKnowledgeBaseDocumentResponse, ConversationJoinRequest, ConversationKnowledgeBaseDocumentUploadUrlResponse, ConversationKnowledgeBaseDocumentsResponse, ConversationLocationsResponse, ConversationMcpServer, ConversationMcpServerResponse, ConversationMcpServerToolsResponse, ConversationMcpServersResponse, ConversationMessagesResponse, ConversationMultimediaUploadUrlResponse, ConversationPbxAddress, ConversationPbxAddressResponse, ConversationPbxAddressesResponse, ConversationPbxAgent, ConversationPbxAgentResponse, ConversationPbxAgentsResponse, ConversationPbxAudio, ConversationPbxAudioResponse, ConversationPbxAudioUploadUrlResponse, ConversationPbxAudioUsageResponse, ConversationPbxAudiosResponse, ConversationPbxAvailablePhoneNumbersResponse, ConversationPbxCallResponse, ConversationPbxCallSearchRequest, ConversationPbxCallSearchResponse, ConversationPbxCallUpdateRequest, ConversationPbxClassOfService, ConversationPbxClassOfServiceResponse, ConversationPbxClassOfServicesResponse, ConversationPbxCosAuditLogsResponse, ConversationPbxCustomerSnapshotRequest, ConversationPbxCustomerSnapshotResponse, ConversationPbxDefaultTimezoneResponse, ConversationPbxDefaultTimezoneUpdateRequest, ConversationPbxHardwarePhone, ConversationPbxHardwarePhoneResponse, ConversationPbxHardwarePhonesResponse, ConversationPbxMenu, ConversationPbxMenuResponse, ConversationPbxMenusResponse, ConversationPbxPayConnectorsResponse, ConversationPbxPhoneManufacturersResponse, ConversationPbxPhoneNumber, ConversationPbxPhoneNumberPurchaseRequest, ConversationPbxPhoneNumberResponse, ConversationPbxPhoneNumbersResponse, ConversationPbxQueue, ConversationPbxQueueResponse, ConversationPbxQueuesResponse, ConversationPbxTimeBased, ConversationPbxTimeBasedResponse, ConversationPbxTimeBasedsResponse, ConversationPbxTimeRange, ConversationPbxTimeRangeResponse, ConversationPbxTimeRangesResponse, ConversationPbxVoicemailCapabilitiesResponse, ConversationPbxVoicemailMailbox, ConversationPbxVoicemailMailboxResponse, ConversationPbxVoicemailMailboxesResponse, ConversationPbxVoicemailMessageResponse, ConversationPbxVoicemailMessageSummariesResponse, ConversationPermissionsResponse, ConversationResponse, ConversationSearchRequest, ConversationSearchResponse, ConversationStartRequest, ConversationStartResponse, ConversationVirtualAgentBudget, ConversationVirtualAgentBudgetResponse, ConversationVirtualAgentCapabilities, ConversationVirtualAgentCapabilitiesResponse, ConversationWebchatContext, ConversationWebchatQueueStatusUpdateRequest, ConversationWebchatQueueStatusesResponse, ConversationsResponse, ItemResponse } from '../models';
13
+ import { BaseResponse, ConversationAgentAuthResponse, ConversationAgentProfile, ConversationAgentProfileResponse, ConversationAgentProfilesResponse, ConversationAgentStatusConfig, ConversationAgentStatusConfigResponse, ConversationAgentStatusConfigsResponse, ConversationAgentStatusHeatmapRequest, ConversationAgentStatusHeatmapResponse, ConversationAgentStatusHistorySearchRequest, ConversationAgentStatusHistorySearchResponse, ConversationAgentStatusRollupSearchRequest, ConversationAgentStatusRollupSearchResponse, ConversationAgentStatusSummaryResponse, ConversationAgentStatusTimelineResponse, ConversationAgentTestSessionJoinRequest, ConversationAgentTestSessionRequest, ConversationAgentTestSessionResponse, ConversationAutocompleteRequest, ConversationAutocompleteResponse, ConversationCannedMessage, ConversationCannedMessageResponse, ConversationCannedMessagesResponse, ConversationCannedMessagesSearch, ConversationDeleteKnowledgeBaseDocumentResponse, ConversationDepartment, ConversationDepartmentMembersResponse, ConversationDepartmentResponse, ConversationDepartmentsResponse, ConversationEngagement, ConversationEngagementResponse, ConversationEngagementsResponse, ConversationInsertKnowledgeBaseDocumentRequest, ConversationInsertKnowledgeBaseDocumentResponse, ConversationJoinRequest, ConversationKnowledgeBaseDocumentUploadUrlResponse, ConversationKnowledgeBaseDocumentsResponse, ConversationLocationsResponse, ConversationMcpServer, ConversationMcpServerResponse, ConversationMcpServerToolsResponse, ConversationMcpServersResponse, ConversationMessagesResponse, ConversationMultimediaUploadUrlResponse, ConversationPbxAddress, ConversationPbxAddressResponse, ConversationPbxAddressesResponse, ConversationPbxAgent, ConversationPbxAgentResponse, ConversationPbxAgentsResponse, ConversationPbxAudio, ConversationPbxAudioResponse, ConversationPbxAudioUploadUrlResponse, ConversationPbxAudioUsageResponse, ConversationPbxAudiosResponse, ConversationPbxAvailablePhoneNumbersResponse, ConversationPbxCallResponse, ConversationPbxCallSearchRequest, ConversationPbxCallSearchResponse, ConversationPbxCallUpdateRequest, ConversationPbxClassOfService, ConversationPbxClassOfServiceResponse, ConversationPbxClassOfServicesResponse, ConversationPbxCosAuditLogsResponse, ConversationPbxCustomerSnapshotRequest, ConversationPbxCustomerSnapshotResponse, ConversationPbxDefaultTimezoneResponse, ConversationPbxDefaultTimezoneUpdateRequest, ConversationPbxHardwarePhone, ConversationPbxHardwarePhoneResponse, ConversationPbxHardwarePhonesResponse, ConversationPbxMenu, ConversationPbxMenuResponse, ConversationPbxMenusResponse, ConversationPbxPayConnectorsResponse, ConversationPbxPhoneManufacturersResponse, ConversationPbxPhoneNumber, ConversationPbxPhoneNumberPurchaseRequest, ConversationPbxPhoneNumberResponse, ConversationPbxPhoneNumbersResponse, ConversationPbxQueue, ConversationPbxQueueResponse, ConversationPbxQueuesResponse, ConversationPbxTimeBased, ConversationPbxTimeBasedResponse, ConversationPbxTimeBasedsResponse, ConversationPbxTimeRange, ConversationPbxTimeRangeResponse, ConversationPbxTimeRangesResponse, ConversationPbxVoicemailCapabilitiesResponse, ConversationPbxVoicemailMailbox, ConversationPbxVoicemailMailboxResponse, ConversationPbxVoicemailMailboxesResponse, ConversationPbxVoicemailMessageResponse, ConversationPbxVoicemailMessageSummariesResponse, ConversationPermissionsResponse, ConversationResponse, ConversationSearchRequest, ConversationSearchResponse, ConversationStartRequest, ConversationStartResponse, ConversationVirtualAgentBudget, ConversationVirtualAgentBudgetResponse, ConversationVirtualAgentCapabilities, ConversationVirtualAgentCapabilitiesResponse, ConversationWebchatContext, ConversationWebchatQueueStatusUpdateRequest, ConversationWebchatQueueStatusesResponse, ConversationsResponse, ItemResponse } from '../models';
14
14
  export interface DeleteAgentProfileKnowledgeBaseDocumentRequest {
15
15
  userId: number;
16
16
  documentUuid: string;
@@ -252,6 +252,11 @@ export interface InsertPbxVoicemailMailboxRequest {
252
252
  export interface InsertUserPbxAudioRequest {
253
253
  pbxAudio: ConversationPbxAudio;
254
254
  }
255
+ export interface JoinAgentTestSessionRequest {
256
+ userId: number;
257
+ conversationUuid: string;
258
+ joinRequest: ConversationAgentTestSessionJoinRequest;
259
+ }
255
260
  export interface JoinConversationRequest {
256
261
  conversationUuid: string;
257
262
  joinRequest?: ConversationJoinRequest;
@@ -311,6 +316,10 @@ export interface SearchPbxCallsRequest {
311
316
  export interface SmsUnsubscribeConversationRequest {
312
317
  conversationUuid: string;
313
318
  }
319
+ export interface StartAgentTestSessionRequest {
320
+ userId: number;
321
+ testSessionRequest: ConversationAgentTestSessionRequest;
322
+ }
314
323
  export interface StartConversationRequest {
315
324
  startRequest: ConversationStartRequest;
316
325
  }
@@ -1846,6 +1855,22 @@ export interface ConversationApiInterface {
1846
1855
  * Insert user pbx audio
1847
1856
  */
1848
1857
  insertUserPbxAudio(requestParameters: InsertUserPbxAudioRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConversationPbxAudioResponse>;
1858
+ /**
1859
+ * Joins the simulated customer to the conversation the agent opened for a test session. This mirrors what the storefront webchat widget does after an agent picks up its queue entry, and it is what gives the conversation a customer participant. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
1860
+ * @summary Join a test conversation as the simulated customer
1861
+ * @param {number} userId
1862
+ * @param {string} conversationUuid
1863
+ * @param {ConversationAgentTestSessionJoinRequest} joinRequest Test session join request
1864
+ * @param {*} [options] Override http request option.
1865
+ * @throws {RequiredError}
1866
+ * @memberof ConversationApiInterface
1867
+ */
1868
+ joinAgentTestSessionRaw(requestParameters: JoinAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
1869
+ /**
1870
+ * Joins the simulated customer to the conversation the agent opened for a test session. This mirrors what the storefront webchat widget does after an agent picks up its queue entry, and it is what gives the conversation a customer participant. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
1871
+ * Join a test conversation as the simulated customer
1872
+ */
1873
+ joinAgentTestSession(requestParameters: JoinAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
1849
1874
  /**
1850
1875
  * Join a conversation
1851
1876
  * @summary Join a conversation
@@ -2070,6 +2095,21 @@ export interface ConversationApiInterface {
2070
2095
  * Unsubscribe any SMS participants in this conversation
2071
2096
  */
2072
2097
  smsUnsubscribeConversation(requestParameters: SmsUnsubscribeConversationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
2098
+ /**
2099
+ * Opens a webchat conversation against this specific AI agent as if the given customer had started it from the storefront, so the agent can be tried out before it is put in front of anyone. The session runs against live data: the cart is real, the customer is real, and anything the agent does during the conversation actually happens. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
2100
+ * @summary Start a test conversation with this AI agent
2101
+ * @param {number} userId
2102
+ * @param {ConversationAgentTestSessionRequest} testSessionRequest Test session request
2103
+ * @param {*} [options] Override http request option.
2104
+ * @throws {RequiredError}
2105
+ * @memberof ConversationApiInterface
2106
+ */
2107
+ startAgentTestSessionRaw(requestParameters: StartAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ConversationAgentTestSessionResponse>>;
2108
+ /**
2109
+ * Opens a webchat conversation against this specific AI agent as if the given customer had started it from the storefront, so the agent can be tried out before it is put in front of anyone. The session runs against live data: the cart is real, the customer is real, and anything the agent does during the conversation actually happens. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
2110
+ * Start a test conversation with this AI agent
2111
+ */
2112
+ startAgentTestSession(requestParameters: StartAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConversationAgentTestSessionResponse>;
2073
2113
  /**
2074
2114
  * Start a new conversation
2075
2115
  * @summary Start a conversation
@@ -3461,6 +3501,16 @@ export declare class ConversationApi extends runtime.BaseAPI implements Conversa
3461
3501
  * Insert user pbx audio
3462
3502
  */
3463
3503
  insertUserPbxAudio(requestParameters: InsertUserPbxAudioRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConversationPbxAudioResponse>;
3504
+ /**
3505
+ * Joins the simulated customer to the conversation the agent opened for a test session. This mirrors what the storefront webchat widget does after an agent picks up its queue entry, and it is what gives the conversation a customer participant. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
3506
+ * Join a test conversation as the simulated customer
3507
+ */
3508
+ joinAgentTestSessionRaw(requestParameters: JoinAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>>;
3509
+ /**
3510
+ * Joins the simulated customer to the conversation the agent opened for a test session. This mirrors what the storefront webchat widget does after an agent picks up its queue entry, and it is what gives the conversation a customer participant. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
3511
+ * Join a test conversation as the simulated customer
3512
+ */
3513
+ joinAgentTestSession(requestParameters: JoinAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
3464
3514
  /**
3465
3515
  * Join a conversation
3466
3516
  * Join a conversation
@@ -3611,6 +3661,16 @@ export declare class ConversationApi extends runtime.BaseAPI implements Conversa
3611
3661
  * Unsubscribe any SMS participants in this conversation
3612
3662
  */
3613
3663
  smsUnsubscribeConversation(requestParameters: SmsUnsubscribeConversationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void>;
3664
+ /**
3665
+ * Opens a webchat conversation against this specific AI agent as if the given customer had started it from the storefront, so the agent can be tried out before it is put in front of anyone. The session runs against live data: the cart is real, the customer is real, and anything the agent does during the conversation actually happens. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
3666
+ * Start a test conversation with this AI agent
3667
+ */
3668
+ startAgentTestSessionRaw(requestParameters: StartAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ConversationAgentTestSessionResponse>>;
3669
+ /**
3670
+ * Opens a webchat conversation against this specific AI agent as if the given customer had started it from the storefront, so the agent can be tried out before it is put in front of anyone. The session runs against live data: the cart is real, the customer is real, and anything the agent does during the conversation actually happens. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
3671
+ * Start a test conversation with this AI agent
3672
+ */
3673
+ startAgentTestSession(requestParameters: StartAgentTestSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ConversationAgentTestSessionResponse>;
3614
3674
  /**
3615
3675
  * Start a new conversation
3616
3676
  * Start a conversation
@@ -6167,6 +6167,71 @@ var ConversationApi = /** @class */ (function (_super) {
6167
6167
  });
6168
6168
  });
6169
6169
  };
6170
+ /**
6171
+ * Joins the simulated customer to the conversation the agent opened for a test session. This mirrors what the storefront webchat widget does after an agent picks up its queue entry, and it is what gives the conversation a customer participant. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
6172
+ * Join a test conversation as the simulated customer
6173
+ */
6174
+ ConversationApi.prototype.joinAgentTestSessionRaw = function (requestParameters, initOverrides) {
6175
+ return __awaiter(this, void 0, void 0, function () {
6176
+ var queryParameters, headerParameters, _a, _b, response;
6177
+ return __generator(this, function (_c) {
6178
+ switch (_c.label) {
6179
+ case 0:
6180
+ if (requestParameters.userId === null || requestParameters.userId === undefined) {
6181
+ throw new runtime.RequiredError('userId', 'Required parameter requestParameters.userId was null or undefined when calling joinAgentTestSession.');
6182
+ }
6183
+ if (requestParameters.conversationUuid === null || requestParameters.conversationUuid === undefined) {
6184
+ throw new runtime.RequiredError('conversationUuid', 'Required parameter requestParameters.conversationUuid was null or undefined when calling joinAgentTestSession.');
6185
+ }
6186
+ if (requestParameters.joinRequest === null || requestParameters.joinRequest === undefined) {
6187
+ throw new runtime.RequiredError('joinRequest', 'Required parameter requestParameters.joinRequest was null or undefined when calling joinAgentTestSession.');
6188
+ }
6189
+ queryParameters = {};
6190
+ headerParameters = {};
6191
+ headerParameters['Content-Type'] = 'application/json';
6192
+ if (!(this.configuration && this.configuration.accessToken)) return [3 /*break*/, 2];
6193
+ // oauth required
6194
+ _a = headerParameters;
6195
+ _b = "Authorization";
6196
+ return [4 /*yield*/, this.configuration.accessToken("ultraCartOauth", ["conversation_write"])];
6197
+ case 1:
6198
+ // oauth required
6199
+ _a[_b] = _c.sent();
6200
+ _c.label = 2;
6201
+ case 2:
6202
+ if (this.configuration && this.configuration.apiKey) {
6203
+ headerParameters["x-ultracart-simple-key"] = this.configuration.apiKey("x-ultracart-simple-key"); // ultraCartSimpleApiKey authentication
6204
+ }
6205
+ return [4 /*yield*/, this.request({
6206
+ path: "/conversation/agent/profiles/{user_id}/test_session/{conversation_uuid}/join".replace("{".concat("user_id", "}"), encodeURIComponent(String(requestParameters.userId))).replace("{".concat("conversation_uuid", "}"), encodeURIComponent(String(requestParameters.conversationUuid))),
6207
+ method: 'PUT',
6208
+ headers: headerParameters,
6209
+ query: queryParameters,
6210
+ body: (0, models_1.ConversationAgentTestSessionJoinRequestToJSON)(requestParameters.joinRequest),
6211
+ }, initOverrides)];
6212
+ case 3:
6213
+ response = _c.sent();
6214
+ return [2 /*return*/, new runtime.VoidApiResponse(response)];
6215
+ }
6216
+ });
6217
+ });
6218
+ };
6219
+ /**
6220
+ * Joins the simulated customer to the conversation the agent opened for a test session. This mirrors what the storefront webchat widget does after an agent picks up its queue entry, and it is what gives the conversation a customer participant. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
6221
+ * Join a test conversation as the simulated customer
6222
+ */
6223
+ ConversationApi.prototype.joinAgentTestSession = function (requestParameters, initOverrides) {
6224
+ return __awaiter(this, void 0, void 0, function () {
6225
+ return __generator(this, function (_a) {
6226
+ switch (_a.label) {
6227
+ case 0: return [4 /*yield*/, this.joinAgentTestSessionRaw(requestParameters, initOverrides)];
6228
+ case 1:
6229
+ _a.sent();
6230
+ return [2 /*return*/];
6231
+ }
6232
+ });
6233
+ });
6234
+ };
6170
6235
  /**
6171
6236
  * Join a conversation
6172
6237
  * Join a conversation
@@ -7094,6 +7159,70 @@ var ConversationApi = /** @class */ (function (_super) {
7094
7159
  });
7095
7160
  });
7096
7161
  };
7162
+ /**
7163
+ * Opens a webchat conversation against this specific AI agent as if the given customer had started it from the storefront, so the agent can be tried out before it is put in front of anyone. The session runs against live data: the cart is real, the customer is real, and anything the agent does during the conversation actually happens. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
7164
+ * Start a test conversation with this AI agent
7165
+ */
7166
+ ConversationApi.prototype.startAgentTestSessionRaw = function (requestParameters, initOverrides) {
7167
+ return __awaiter(this, void 0, void 0, function () {
7168
+ var queryParameters, headerParameters, _a, _b, response;
7169
+ return __generator(this, function (_c) {
7170
+ switch (_c.label) {
7171
+ case 0:
7172
+ if (requestParameters.userId === null || requestParameters.userId === undefined) {
7173
+ throw new runtime.RequiredError('userId', 'Required parameter requestParameters.userId was null or undefined when calling startAgentTestSession.');
7174
+ }
7175
+ if (requestParameters.testSessionRequest === null || requestParameters.testSessionRequest === undefined) {
7176
+ throw new runtime.RequiredError('testSessionRequest', 'Required parameter requestParameters.testSessionRequest was null or undefined when calling startAgentTestSession.');
7177
+ }
7178
+ queryParameters = {};
7179
+ headerParameters = {};
7180
+ headerParameters['Content-Type'] = 'application/json';
7181
+ if (!(this.configuration && this.configuration.accessToken)) return [3 /*break*/, 2];
7182
+ // oauth required
7183
+ _a = headerParameters;
7184
+ _b = "Authorization";
7185
+ return [4 /*yield*/, this.configuration.accessToken("ultraCartOauth", ["conversation_write"])];
7186
+ case 1:
7187
+ // oauth required
7188
+ _a[_b] = _c.sent();
7189
+ _c.label = 2;
7190
+ case 2:
7191
+ if (this.configuration && this.configuration.apiKey) {
7192
+ headerParameters["x-ultracart-simple-key"] = this.configuration.apiKey("x-ultracart-simple-key"); // ultraCartSimpleApiKey authentication
7193
+ }
7194
+ return [4 /*yield*/, this.request({
7195
+ path: "/conversation/agent/profiles/{user_id}/test_session".replace("{".concat("user_id", "}"), encodeURIComponent(String(requestParameters.userId))),
7196
+ method: 'PUT',
7197
+ headers: headerParameters,
7198
+ query: queryParameters,
7199
+ body: (0, models_1.ConversationAgentTestSessionRequestToJSON)(requestParameters.testSessionRequest),
7200
+ }, initOverrides)];
7201
+ case 3:
7202
+ response = _c.sent();
7203
+ return [2 /*return*/, new runtime.JSONApiResponse(response, function (jsonValue) { return (0, models_1.ConversationAgentTestSessionResponseFromJSON)(jsonValue); })];
7204
+ }
7205
+ });
7206
+ });
7207
+ };
7208
+ /**
7209
+ * Opens a webchat conversation against this specific AI agent as if the given customer had started it from the storefront, so the agent can be tried out before it is put in front of anyone. The session runs against live data: the cart is real, the customer is real, and anything the agent does during the conversation actually happens. Requires a logged in user with conversations admin; an API key or OAuth application cannot call this.
7210
+ * Start a test conversation with this AI agent
7211
+ */
7212
+ ConversationApi.prototype.startAgentTestSession = function (requestParameters, initOverrides) {
7213
+ return __awaiter(this, void 0, void 0, function () {
7214
+ var response;
7215
+ return __generator(this, function (_a) {
7216
+ switch (_a.label) {
7217
+ case 0: return [4 /*yield*/, this.startAgentTestSessionRaw(requestParameters, initOverrides)];
7218
+ case 1:
7219
+ response = _a.sent();
7220
+ return [4 /*yield*/, response.value()];
7221
+ case 2: return [2 /*return*/, _a.sent()];
7222
+ }
7223
+ });
7224
+ });
7225
+ };
7097
7226
  /**
7098
7227
  * Start a new conversation
7099
7228
  * Start a conversation
@@ -10,7 +10,7 @@
10
10
  * Do not edit the class manually.
11
11
  */
12
12
  import * as runtime from '../runtime';
13
- import { SfvbCompileRequest, SfvbCompileResponse, SfvbContainerResponse, SfvbContainerRevertRequest, SfvbContainerVersion, SfvbContainerVersionsResponse, SfvbContainerWriteRequest, SfvbElementSchemaResponse, SfvbElementsResponse, SfvbFileContentResponse, SfvbFileRevertRequest, SfvbFileSearchRequest, SfvbFileSearchResponse, SfvbFileUploadRequest, SfvbFileUploadUrlResponse, SfvbFileVersionsResponse, SfvbFileWriteRequest, SfvbFileWriteResponse, SfvbFilesResponse, SfvbLibraryEntry, SfvbLibraryResponse, SfvbPreviewSessionRequest, SfvbPreviewSessionResponse, SfvbPreviewUrlResponse, SfvbRenderRequest, SfvbRenderResponse, SfvbStorefrontsResponse, SfvbTheme, SfvbThemeDuplicateRequest, SfvbThemeJobResponse, SfvbThemesResponse, SfvbUpsellOffersResponse, SfvbValidateRequest, SfvbValidationResponse, SfvbVelocityValidateRequest, SfvbVersionResponse, SfvbWhoamiResponse, SfvbWidgetIdsResponse } from '../models';
13
+ import { SfvbCompileRequest, SfvbCompileResponse, SfvbContainerResponse, SfvbContainerRevertRequest, SfvbContainerVersion, SfvbContainerVersionsResponse, SfvbContainerWriteRequest, SfvbElementSchemaResponse, SfvbElementsResponse, SfvbFileContentResponse, SfvbFileRevertRequest, SfvbFileSearchRequest, SfvbFileSearchResponse, SfvbFileUploadRequest, SfvbFileUploadUrlResponse, SfvbFileVersionsResponse, SfvbFileWriteRequest, SfvbFileWriteResponse, SfvbFilesResponse, SfvbLibraryEntry, SfvbLibraryResponse, SfvbPreviewSessionRequest, SfvbPreviewSessionResponse, SfvbPreviewUrlResponse, SfvbRenderRequest, SfvbRenderResponse, SfvbStorefrontsResponse, SfvbTheme, SfvbThemeAttributeUpdateRequest, SfvbThemeAttributesResponse, SfvbThemeDuplicateRequest, SfvbThemeJobResponse, SfvbThemesResponse, SfvbUpsellOffersResponse, SfvbValidateRequest, SfvbValidationResponse, SfvbVelocityValidateRequest, SfvbVersionResponse, SfvbWhoamiResponse, SfvbWidgetIdsResponse } from '../models';
14
14
  export interface CompileSfvbCjsonRequest {
15
15
  compileRequest: SfvbCompileRequest;
16
16
  }
@@ -76,6 +76,10 @@ export interface GetSfvbThemeRequest {
76
76
  storefrontOid: number;
77
77
  themeOid: number;
78
78
  }
79
+ export interface GetSfvbThemeAttributesRequest {
80
+ storefrontOid: number;
81
+ themeOid: number;
82
+ }
79
83
  export interface GetSfvbThemeJobRequest {
80
84
  storefrontOid: number;
81
85
  jobId: number;
@@ -127,6 +131,11 @@ export interface PutSfvbPreviewSessionRequest {
127
131
  previewSession: SfvbPreviewSessionRequest;
128
132
  themeOid?: number;
129
133
  }
134
+ export interface PutSfvbThemeAttributesRequest {
135
+ storefrontOid: number;
136
+ themeOid: number;
137
+ attributeUpdateRequest: SfvbThemeAttributeUpdateRequest;
138
+ }
130
139
  export interface RenderSfvbWidgetsRequest {
131
140
  storefrontOid: number;
132
141
  themeOid: number;
@@ -407,6 +416,21 @@ export interface SfvbApiInterface {
407
416
  * Get a theme
408
417
  */
409
418
  getSfvbTheme(requestParameters: GetSfvbThemeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbTheme>;
419
+ /**
420
+ * The values theme.css and the compiled containers resolve at render time. These do NOT live in any file. settings.json contains a palette and looks like the answer, but it is the theme\'s factory template - it supplies defaults for slots that have never been set and is ignored for slots that have, so editing it will not change a color and reading it will not tell you the current one. Slots a template declares but nothing has ever set are included here, carrying the default they will render with, so the response describes the whole theme rather than the rows that happen to exist.
421
+ * @summary Read a theme\'s colors, fonts and settings
422
+ * @param {number} storefrontOid
423
+ * @param {number} themeOid
424
+ * @param {*} [options] Override http request option.
425
+ * @throws {RequiredError}
426
+ * @memberof SfvbApiInterface
427
+ */
428
+ getSfvbThemeAttributesRaw(requestParameters: GetSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbThemeAttributesResponse>>;
429
+ /**
430
+ * The values theme.css and the compiled containers resolve at render time. These do NOT live in any file. settings.json contains a palette and looks like the answer, but it is the theme\'s factory template - it supplies defaults for slots that have never been set and is ignored for slots that have, so editing it will not change a color and reading it will not tell you the current one. Slots a template declares but nothing has ever set are included here, carrying the default they will render with, so the response describes the whole theme rather than the rows that happen to exist.
431
+ * Read a theme\'s colors, fonts and settings
432
+ */
433
+ getSfvbThemeAttributes(requestParameters: GetSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbThemeAttributesResponse>;
410
434
  /**
411
435
  * Poll until complete is true, then check success. Note that the new theme\'s oid is not returned. The job\'s product is a plain text report rather than a structured result, so once it completes, list themes and match on the target_path the start call gave you.
412
436
  * @summary Status of an asynchronous theme job
@@ -618,6 +642,22 @@ export interface SfvbApiInterface {
618
642
  * Push containers into a preview session
619
643
  */
620
644
  putSfvbPreviewSession(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
645
+ /**
646
+ * A partial update. Only the slots you name are changed and every other slot on the theme keeps its value, so there is no need to send the whole set back to change one color. Send a whole palette in one call rather than one call per color - they are applied together, so the storefront never renders half of a change. Needs sfvb_publish when the theme is the one serving live traffic, because a color is referenced by name from every template that uses it and one write repaints the whole storefront at once. On a dormant theme sfvb_write is enough, which is what makes duplicate-then-restyle work.
647
+ * @summary Change a theme\'s colors, fonts and settings
648
+ * @param {number} storefrontOid
649
+ * @param {number} themeOid
650
+ * @param {SfvbThemeAttributeUpdateRequest} attributeUpdateRequest Slots to change
651
+ * @param {*} [options] Override http request option.
652
+ * @throws {RequiredError}
653
+ * @memberof SfvbApiInterface
654
+ */
655
+ putSfvbThemeAttributesRaw(requestParameters: PutSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbThemeAttributesResponse>>;
656
+ /**
657
+ * A partial update. Only the slots you name are changed and every other slot on the theme keeps its value, so there is no need to send the whole set back to change one color. Send a whole palette in one call rather than one call per color - they are applied together, so the storefront never renders half of a change. Needs sfvb_publish when the theme is the one serving live traffic, because a color is referenced by name from every template that uses it and one write repaints the whole storefront at once. On a dormant theme sfvb_write is enough, which is what makes duplicate-then-restyle work.
658
+ * Change a theme\'s colors, fonts and settings
659
+ */
660
+ putSfvbThemeAttributes(requestParameters: PutSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbThemeAttributesResponse>;
621
661
  /**
622
662
  * Renders one node in the context of a theme and a page. Unlike compile this is stateful. Rendering resolves merchant data, so an element bound to an item renders wrongly, and silently, without a context item id. One node per call, so a node that fails to render fails on its own rather than taking a batch with it, and a failure says why.
623
663
  * @summary Render a CJSON node to HTML
@@ -912,6 +952,16 @@ export declare class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface
912
952
  * Get a theme
913
953
  */
914
954
  getSfvbTheme(requestParameters: GetSfvbThemeRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbTheme>;
955
+ /**
956
+ * The values theme.css and the compiled containers resolve at render time. These do NOT live in any file. settings.json contains a palette and looks like the answer, but it is the theme\'s factory template - it supplies defaults for slots that have never been set and is ignored for slots that have, so editing it will not change a color and reading it will not tell you the current one. Slots a template declares but nothing has ever set are included here, carrying the default they will render with, so the response describes the whole theme rather than the rows that happen to exist.
957
+ * Read a theme\'s colors, fonts and settings
958
+ */
959
+ getSfvbThemeAttributesRaw(requestParameters: GetSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbThemeAttributesResponse>>;
960
+ /**
961
+ * The values theme.css and the compiled containers resolve at render time. These do NOT live in any file. settings.json contains a palette and looks like the answer, but it is the theme\'s factory template - it supplies defaults for slots that have never been set and is ignored for slots that have, so editing it will not change a color and reading it will not tell you the current one. Slots a template declares but nothing has ever set are included here, carrying the default they will render with, so the response describes the whole theme rather than the rows that happen to exist.
962
+ * Read a theme\'s colors, fonts and settings
963
+ */
964
+ getSfvbThemeAttributes(requestParameters: GetSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbThemeAttributesResponse>;
915
965
  /**
916
966
  * Poll until complete is true, then check success. Note that the new theme\'s oid is not returned. The job\'s product is a plain text report rather than a structured result, so once it completes, list themes and match on the target_path the start call gave you.
917
967
  * Status of an asynchronous theme job
@@ -1048,6 +1098,16 @@ export declare class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface
1048
1098
  * Push containers into a preview session
1049
1099
  */
1050
1100
  putSfvbPreviewSession(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
1101
+ /**
1102
+ * A partial update. Only the slots you name are changed and every other slot on the theme keeps its value, so there is no need to send the whole set back to change one color. Send a whole palette in one call rather than one call per color - they are applied together, so the storefront never renders half of a change. Needs sfvb_publish when the theme is the one serving live traffic, because a color is referenced by name from every template that uses it and one write repaints the whole storefront at once. On a dormant theme sfvb_write is enough, which is what makes duplicate-then-restyle work.
1103
+ * Change a theme\'s colors, fonts and settings
1104
+ */
1105
+ putSfvbThemeAttributesRaw(requestParameters: PutSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbThemeAttributesResponse>>;
1106
+ /**
1107
+ * A partial update. Only the slots you name are changed and every other slot on the theme keeps its value, so there is no need to send the whole set back to change one color. Send a whole palette in one call rather than one call per color - they are applied together, so the storefront never renders half of a change. Needs sfvb_publish when the theme is the one serving live traffic, because a color is referenced by name from every template that uses it and one write repaints the whole storefront at once. On a dormant theme sfvb_write is enough, which is what makes duplicate-then-restyle work.
1108
+ * Change a theme\'s colors, fonts and settings
1109
+ */
1110
+ putSfvbThemeAttributes(requestParameters: PutSfvbThemeAttributesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbThemeAttributesResponse>;
1051
1111
  /**
1052
1112
  * Renders one node in the context of a theme and a page. Unlike compile this is stateful. Rendering resolves merchant data, so an element bound to an item renders wrongly, and silently, without a context item id. One node per call, so a node that fails to render fails on its own rather than taking a batch with it, and a failure says why.
1053
1113
  * Render a CJSON node to HTML
@@ -1017,6 +1017,68 @@ var SfvbApi = /** @class */ (function (_super) {
1017
1017
  });
1018
1018
  });
1019
1019
  };
1020
+ /**
1021
+ * The values theme.css and the compiled containers resolve at render time. These do NOT live in any file. settings.json contains a palette and looks like the answer, but it is the theme\'s factory template - it supplies defaults for slots that have never been set and is ignored for slots that have, so editing it will not change a color and reading it will not tell you the current one. Slots a template declares but nothing has ever set are included here, carrying the default they will render with, so the response describes the whole theme rather than the rows that happen to exist.
1022
+ * Read a theme\'s colors, fonts and settings
1023
+ */
1024
+ SfvbApi.prototype.getSfvbThemeAttributesRaw = function (requestParameters, initOverrides) {
1025
+ return __awaiter(this, void 0, void 0, function () {
1026
+ var queryParameters, headerParameters, _a, _b, response;
1027
+ return __generator(this, function (_c) {
1028
+ switch (_c.label) {
1029
+ case 0:
1030
+ if (requestParameters.storefrontOid === null || requestParameters.storefrontOid === undefined) {
1031
+ throw new runtime.RequiredError('storefrontOid', 'Required parameter requestParameters.storefrontOid was null or undefined when calling getSfvbThemeAttributes.');
1032
+ }
1033
+ if (requestParameters.themeOid === null || requestParameters.themeOid === undefined) {
1034
+ throw new runtime.RequiredError('themeOid', 'Required parameter requestParameters.themeOid was null or undefined when calling getSfvbThemeAttributes.');
1035
+ }
1036
+ queryParameters = {};
1037
+ headerParameters = {};
1038
+ if (!(this.configuration && this.configuration.accessToken)) return [3 /*break*/, 2];
1039
+ // oauth required
1040
+ _a = headerParameters;
1041
+ _b = "Authorization";
1042
+ return [4 /*yield*/, this.configuration.accessToken("ultraCartOauth", [])];
1043
+ case 1:
1044
+ // oauth required
1045
+ _a[_b] = _c.sent();
1046
+ _c.label = 2;
1047
+ case 2:
1048
+ if (this.configuration && this.configuration.apiKey) {
1049
+ headerParameters["x-ultracart-simple-key"] = this.configuration.apiKey("x-ultracart-simple-key"); // ultraCartSimpleApiKey authentication
1050
+ }
1051
+ return [4 /*yield*/, this.request({
1052
+ path: "/sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/attributes".replace("{".concat("storefront_oid", "}"), encodeURIComponent(String(requestParameters.storefrontOid))).replace("{".concat("theme_oid", "}"), encodeURIComponent(String(requestParameters.themeOid))),
1053
+ method: 'GET',
1054
+ headers: headerParameters,
1055
+ query: queryParameters,
1056
+ }, initOverrides)];
1057
+ case 3:
1058
+ response = _c.sent();
1059
+ return [2 /*return*/, new runtime.JSONApiResponse(response, function (jsonValue) { return (0, models_1.SfvbThemeAttributesResponseFromJSON)(jsonValue); })];
1060
+ }
1061
+ });
1062
+ });
1063
+ };
1064
+ /**
1065
+ * The values theme.css and the compiled containers resolve at render time. These do NOT live in any file. settings.json contains a palette and looks like the answer, but it is the theme\'s factory template - it supplies defaults for slots that have never been set and is ignored for slots that have, so editing it will not change a color and reading it will not tell you the current one. Slots a template declares but nothing has ever set are included here, carrying the default they will render with, so the response describes the whole theme rather than the rows that happen to exist.
1066
+ * Read a theme\'s colors, fonts and settings
1067
+ */
1068
+ SfvbApi.prototype.getSfvbThemeAttributes = function (requestParameters, initOverrides) {
1069
+ return __awaiter(this, void 0, void 0, function () {
1070
+ var response;
1071
+ return __generator(this, function (_a) {
1072
+ switch (_a.label) {
1073
+ case 0: return [4 /*yield*/, this.getSfvbThemeAttributesRaw(requestParameters, initOverrides)];
1074
+ case 1:
1075
+ response = _a.sent();
1076
+ return [4 /*yield*/, response.value()];
1077
+ case 2: return [2 /*return*/, _a.sent()];
1078
+ }
1079
+ });
1080
+ });
1081
+ };
1020
1082
  /**
1021
1083
  * Poll until complete is true, then check success. Note that the new theme\'s oid is not returned. The job\'s product is a plain text report rather than a structured result, so once it completes, list themes and match on the target_path the start call gave you.
1022
1084
  * Status of an asynchronous theme job
@@ -1902,6 +1964,73 @@ var SfvbApi = /** @class */ (function (_super) {
1902
1964
  });
1903
1965
  });
1904
1966
  };
1967
+ /**
1968
+ * A partial update. Only the slots you name are changed and every other slot on the theme keeps its value, so there is no need to send the whole set back to change one color. Send a whole palette in one call rather than one call per color - they are applied together, so the storefront never renders half of a change. Needs sfvb_publish when the theme is the one serving live traffic, because a color is referenced by name from every template that uses it and one write repaints the whole storefront at once. On a dormant theme sfvb_write is enough, which is what makes duplicate-then-restyle work.
1969
+ * Change a theme\'s colors, fonts and settings
1970
+ */
1971
+ SfvbApi.prototype.putSfvbThemeAttributesRaw = function (requestParameters, initOverrides) {
1972
+ return __awaiter(this, void 0, void 0, function () {
1973
+ var queryParameters, headerParameters, _a, _b, response;
1974
+ return __generator(this, function (_c) {
1975
+ switch (_c.label) {
1976
+ case 0:
1977
+ if (requestParameters.storefrontOid === null || requestParameters.storefrontOid === undefined) {
1978
+ throw new runtime.RequiredError('storefrontOid', 'Required parameter requestParameters.storefrontOid was null or undefined when calling putSfvbThemeAttributes.');
1979
+ }
1980
+ if (requestParameters.themeOid === null || requestParameters.themeOid === undefined) {
1981
+ throw new runtime.RequiredError('themeOid', 'Required parameter requestParameters.themeOid was null or undefined when calling putSfvbThemeAttributes.');
1982
+ }
1983
+ if (requestParameters.attributeUpdateRequest === null || requestParameters.attributeUpdateRequest === undefined) {
1984
+ throw new runtime.RequiredError('attributeUpdateRequest', 'Required parameter requestParameters.attributeUpdateRequest was null or undefined when calling putSfvbThemeAttributes.');
1985
+ }
1986
+ queryParameters = {};
1987
+ headerParameters = {};
1988
+ headerParameters['Content-Type'] = 'application/json';
1989
+ if (!(this.configuration && this.configuration.accessToken)) return [3 /*break*/, 2];
1990
+ // oauth required
1991
+ _a = headerParameters;
1992
+ _b = "Authorization";
1993
+ return [4 /*yield*/, this.configuration.accessToken("ultraCartOauth", [])];
1994
+ case 1:
1995
+ // oauth required
1996
+ _a[_b] = _c.sent();
1997
+ _c.label = 2;
1998
+ case 2:
1999
+ if (this.configuration && this.configuration.apiKey) {
2000
+ headerParameters["x-ultracart-simple-key"] = this.configuration.apiKey("x-ultracart-simple-key"); // ultraCartSimpleApiKey authentication
2001
+ }
2002
+ return [4 /*yield*/, this.request({
2003
+ path: "/sfvb/storefronts/{storefront_oid}/themes/{theme_oid}/attributes".replace("{".concat("storefront_oid", "}"), encodeURIComponent(String(requestParameters.storefrontOid))).replace("{".concat("theme_oid", "}"), encodeURIComponent(String(requestParameters.themeOid))),
2004
+ method: 'PUT',
2005
+ headers: headerParameters,
2006
+ query: queryParameters,
2007
+ body: (0, models_1.SfvbThemeAttributeUpdateRequestToJSON)(requestParameters.attributeUpdateRequest),
2008
+ }, initOverrides)];
2009
+ case 3:
2010
+ response = _c.sent();
2011
+ return [2 /*return*/, new runtime.JSONApiResponse(response, function (jsonValue) { return (0, models_1.SfvbThemeAttributesResponseFromJSON)(jsonValue); })];
2012
+ }
2013
+ });
2014
+ });
2015
+ };
2016
+ /**
2017
+ * A partial update. Only the slots you name are changed and every other slot on the theme keeps its value, so there is no need to send the whole set back to change one color. Send a whole palette in one call rather than one call per color - they are applied together, so the storefront never renders half of a change. Needs sfvb_publish when the theme is the one serving live traffic, because a color is referenced by name from every template that uses it and one write repaints the whole storefront at once. On a dormant theme sfvb_write is enough, which is what makes duplicate-then-restyle work.
2018
+ * Change a theme\'s colors, fonts and settings
2019
+ */
2020
+ SfvbApi.prototype.putSfvbThemeAttributes = function (requestParameters, initOverrides) {
2021
+ return __awaiter(this, void 0, void 0, function () {
2022
+ var response;
2023
+ return __generator(this, function (_a) {
2024
+ switch (_a.label) {
2025
+ case 0: return [4 /*yield*/, this.putSfvbThemeAttributesRaw(requestParameters, initOverrides)];
2026
+ case 1:
2027
+ response = _a.sent();
2028
+ return [4 /*yield*/, response.value()];
2029
+ case 2: return [2 /*return*/, _a.sent()];
2030
+ }
2031
+ });
2032
+ });
2033
+ };
1905
2034
  /**
1906
2035
  * Renders one node in the context of a theme and a page. Unlike compile this is stateful. Rendering resolves merchant data, so an element bound to an item renders wrongly, and silently, without a context item id. One node per call, so a node that fails to render fails on its own rather than taking a batch with it, and a failure says why.
1907
2036
  * Render a CJSON node to HTML
@@ -0,0 +1,31 @@
1
+ /**
2
+ * UltraCart Rest API V2
3
+ * UltraCart REST API Version 2
4
+ *
5
+ * The version of the OpenAPI document: 2.0.0
6
+ * Contact: support@ultracart.com
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
+ * @export
15
+ * @interface ConversationAgentTestSessionJoinRequest
16
+ */
17
+ export interface ConversationAgentTestSessionJoinRequest {
18
+ /**
19
+ * Queue entry uuid returned when the test session was started
20
+ * @type {string}
21
+ * @memberof ConversationAgentTestSessionJoinRequest
22
+ */
23
+ conversation_webchat_queue_uuid?: string;
24
+ }
25
+ /**
26
+ * Check if a given object implements the ConversationAgentTestSessionJoinRequest interface.
27
+ */
28
+ export declare function instanceOfConversationAgentTestSessionJoinRequest(value: object): boolean;
29
+ export declare function ConversationAgentTestSessionJoinRequestFromJSON(json: any): ConversationAgentTestSessionJoinRequest;
30
+ export declare function ConversationAgentTestSessionJoinRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): ConversationAgentTestSessionJoinRequest;
31
+ export declare function ConversationAgentTestSessionJoinRequestToJSON(value?: ConversationAgentTestSessionJoinRequest | null): any;