ultracart_rest_api_v2_typescript 4.1.146 → 4.1.147

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,12 +1,12 @@
1
1
  # UltraCart Typescript SDK
2
- ## ultracart_rest_api_v2_typescript@4.1.146
2
+ ## ultracart_rest_api_v2_typescript@4.1.147
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.146 --save
9
+ npm install ultracart_rest_api_v2_typescript@4.1.147 --save
10
10
  ```
11
11
 
12
12
  ```typescript
@@ -85,6 +85,7 @@ Not every change is committed to every SDK.
85
85
 
86
86
  | Version | Date | Comments |
87
87
  | --: | :-: | --- |
88
+ | 4.1.147 | 09/04/2026 | sfvb - internal testing |
88
89
  | 4.1.146 | 09/03/2026 | sfvb - internal testing |
89
90
  | 4.1.145 | 09/02/2026 | sfvb - internal testing |
90
91
  | 4.1.144 | 09/02/2026 | sfvb - internal testing |
@@ -195,7 +195,7 @@ export interface SfvbApiInterface {
195
195
  */
196
196
  compileSfvbCjson(requestParameters: CompileSfvbCjsonRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbCompileResponse>;
197
197
  /**
198
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
198
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
199
199
  * @summary Create a preview session
200
200
  * @param {number} storefrontOid
201
201
  * @param {*} [options] Override http request option.
@@ -204,7 +204,7 @@ export interface SfvbApiInterface {
204
204
  */
205
205
  createSfvbPreviewSessionRaw(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>>;
206
206
  /**
207
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
207
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
208
208
  * Create a preview session
209
209
  */
210
210
  createSfvbPreviewSession(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
@@ -602,7 +602,7 @@ export interface SfvbApiInterface {
602
602
  */
603
603
  putSfvbFileContent(requestParameters: PutSfvbFileContentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbFileWriteResponse>;
604
604
  /**
605
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
605
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
606
606
  * @summary Push containers into a preview session
607
607
  * @param {number} storefrontOid
608
608
  * @param {string} previewSessionId
@@ -614,7 +614,7 @@ export interface SfvbApiInterface {
614
614
  */
615
615
  putSfvbPreviewSessionRaw(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>>;
616
616
  /**
617
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
617
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
618
618
  * Push containers into a preview session
619
619
  */
620
620
  putSfvbPreviewSession(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
@@ -779,12 +779,12 @@ export declare class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface
779
779
  */
780
780
  compileSfvbCjson(requestParameters: CompileSfvbCjsonRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbCompileResponse>;
781
781
  /**
782
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
782
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
783
783
  * Create a preview session
784
784
  */
785
785
  createSfvbPreviewSessionRaw(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>>;
786
786
  /**
787
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
787
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
788
788
  * Create a preview session
789
789
  */
790
790
  createSfvbPreviewSession(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
@@ -1039,12 +1039,12 @@ export declare class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface
1039
1039
  */
1040
1040
  putSfvbFileContent(requestParameters: PutSfvbFileContentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbFileWriteResponse>;
1041
1041
  /**
1042
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1042
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1043
1043
  * Push containers into a preview session
1044
1044
  */
1045
1045
  putSfvbPreviewSessionRaw(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>>;
1046
1046
  /**
1047
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1047
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1048
1048
  * Push containers into a preview session
1049
1049
  */
1050
1050
  putSfvbPreviewSession(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
@@ -137,7 +137,7 @@ var SfvbApi = /** @class */ (function (_super) {
137
137
  });
138
138
  };
139
139
  /**
140
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
140
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
141
141
  * Create a preview session
142
142
  */
143
143
  SfvbApi.prototype.createSfvbPreviewSessionRaw = function (requestParameters, initOverrides) {
@@ -178,7 +178,7 @@ var SfvbApi = /** @class */ (function (_super) {
178
178
  });
179
179
  };
180
180
  /**
181
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
181
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
182
182
  * Create a preview session
183
183
  */
184
184
  SfvbApi.prototype.createSfvbPreviewSession = function (requestParameters, initOverrides) {
@@ -1833,7 +1833,7 @@ var SfvbApi = /** @class */ (function (_super) {
1833
1833
  });
1834
1834
  };
1835
1835
  /**
1836
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1836
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1837
1837
  * Push containers into a preview session
1838
1838
  */
1839
1839
  SfvbApi.prototype.putSfvbPreviewSessionRaw = function (requestParameters, initOverrides) {
@@ -1885,7 +1885,7 @@ var SfvbApi = /** @class */ (function (_super) {
1885
1885
  });
1886
1886
  };
1887
1887
  /**
1888
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1888
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
1889
1889
  * Push containers into a preview session
1890
1890
  */
1891
1891
  SfvbApi.prototype.putSfvbPreviewSession = function (requestParameters, initOverrides) {
@@ -34,7 +34,7 @@ export interface SfvbContainerResponse {
34
34
  */
35
35
  hash_sha256?: string;
36
36
  /**
37
- * When the container was last modified, in the store's own record of it. Present for email, postcardfront and postcardback. Absent for upsell and item, because those tables carry no modification timestamp at all - for those two, read created_dts on the current entry of container_versions, which records when this API last wrote the container. Note that a postcard keeps one timestamp for both of its sides, so writing the front moves the value the back reports.
37
+ * When the container was last modified, in the store's own record of it. Every owner type reports this. It is absent only when the container has never been written since the store began recording it, so treat an absent value as unknown rather than as never modified. Two behaviours worth knowing. A postcard keeps one timestamp for both of its sides, so writing the front moves the value the back reports. An upsell container that is rewritten with byte identical content keeps its original date rather than moving to now, because the timestamp tracks changes to the container and not writes to the offer.
38
38
  * @type {string}
39
39
  * @memberof SfvbContainerResponse
40
40
  */
@@ -16,7 +16,7 @@
16
16
  */
17
17
  export interface SfvbThemeDuplicateRequest {
18
18
  /**
19
- * Directory name for the new theme under /themes/. Letters and numbers; it is cleansed before use. Must not already exist - a collision is refused rather than resolved, because silently creating a differently named theme leaves you unsure what you made.
19
+ * Directory name for the new theme under /themes/. Letters and numbers, one path segment. Used verbatim - anything that is not already a valid directory name is refused rather than adjusted, because this call does not return the new theme's oid and you find your copy by matching the target_path you asked for. Must not already exist - a collision is refused rather than resolved, because silently creating a differently named theme leaves you unsure what you made.
20
20
  * @type {string}
21
21
  * @memberof SfvbThemeDuplicateRequest
22
22
  */
@@ -82,7 +82,7 @@ export interface SfvbThemeJobResponse {
82
82
  */
83
83
  success?: boolean;
84
84
  /**
85
- * Path the new theme was created at. Returned when the job is started; the theme oid itself is NOT returned, because the job's product is a plain text report rather than a structured result. Once the job completes, list themes and match on this path.
85
+ * Path the new theme is being created at. Returned when the job is started and on every poll, so you do not have to keep the response that started it. The theme oid itself is NOT returned, so once the job completes you list themes and match on this path. It is also what success is checked against - a finished job whose theme is not here reports success false rather than pretending.
86
86
  * @type {string}
87
87
  * @memberof SfvbThemeJobResponse
88
88
  */
@@ -33,18 +33,42 @@ export interface SfvbVersionResponse {
33
33
  * @memberof SfvbVersionResponse
34
34
  */
35
35
  element_count?: number;
36
+ /**
37
+ * Largest binary asset that can be uploaded, in bytes, for every accepted type except video.
38
+ * @type {number}
39
+ * @memberof SfvbVersionResponse
40
+ */
41
+ max_asset_bytes?: number;
36
42
  /**
37
43
  * Largest CJSON document that will be parsed, in bytes.
38
44
  * @type {number}
39
45
  * @memberof SfvbVersionResponse
40
46
  */
41
47
  max_cjson_bytes?: number;
48
+ /**
49
+ * Most entries one directory listing returns. Asking for more is silently reduced to this rather than refused, so compare against it instead of trusting that you got what you asked for. The listing does set a truncated flag when it drops entries.
50
+ * @type {number}
51
+ * @memberof SfvbVersionResponse
52
+ */
53
+ max_directory_entries?: number;
54
+ /**
55
+ * Most element library results one page returns. Asking for more is silently reduced to this, and unlike the directory listing there is no truncation flag on the response, so this number is the only way to know a larger request was cut.
56
+ * @type {number}
57
+ * @memberof SfvbVersionResponse
58
+ */
59
+ max_library_results_per_page?: number;
42
60
  /**
43
61
  * Largest payload one preview session may hold, in bytes.
44
62
  * @type {number}
45
63
  * @memberof SfvbVersionResponse
46
64
  */
47
65
  max_preview_session_bytes?: number;
66
+ /**
67
+ * Largest historical version files/revert will restore, in bytes. Higher than max_text_read_bytes deliberately - putting back a version that is already stored is cheaper than serving it as JSON, so a version too large to read can still be reverted to.
68
+ * @type {number}
69
+ * @memberof SfvbVersionResponse
70
+ */
71
+ max_revertable_bytes?: number;
48
72
  /**
49
73
  * Hard ceiling on file search results per page.
50
74
  * @type {number}
@@ -52,11 +76,23 @@ export interface SfvbVersionResponse {
52
76
  */
53
77
  max_search_results?: number;
54
78
  /**
55
- * Largest template file that can be written, in bytes.
79
+ * Largest .vm template that can be written, in bytes. Narrow on purpose - it gates writes, only for files ending in .vm, and it is not the ceiling on reading a file back. Use max_text_read_bytes for that.
56
80
  * @type {number}
57
81
  * @memberof SfvbVersionResponse
58
82
  */
59
83
  max_template_bytes?: number;
84
+ /**
85
+ * Largest file files/content will return as text, in bytes. A file above this is refused with sfvb.too_large however small its history versions are. Bigger than max_template_bytes, so a file can be readable here and still be too large to write back as a template. Anything above this is still readable in full through files/download, which returns raw bytes and applies no ceiling.
86
+ * @type {number}
87
+ * @memberof SfvbVersionResponse
88
+ */
89
+ max_text_read_bytes?: number;
90
+ /**
91
+ * Largest video that can be uploaded, in bytes. Video is the one type allowed past max_asset_bytes.
92
+ * @type {number}
93
+ * @memberof SfvbVersionResponse
94
+ */
95
+ max_video_bytes?: number;
60
96
  /**
61
97
  * Most widget ids that can be reserved in one call.
62
98
  * @type {number}
@@ -43,10 +43,16 @@ function SfvbVersionResponseFromJSONTyped(json, ignoreDiscriminator) {
43
43
  'container_manager_version': !(0, runtime_1.exists)(json, 'container_manager_version') ? undefined : json['container_manager_version'],
44
44
  'container_versions_retained': !(0, runtime_1.exists)(json, 'container_versions_retained') ? undefined : json['container_versions_retained'],
45
45
  'element_count': !(0, runtime_1.exists)(json, 'element_count') ? undefined : json['element_count'],
46
+ 'max_asset_bytes': !(0, runtime_1.exists)(json, 'max_asset_bytes') ? undefined : json['max_asset_bytes'],
46
47
  'max_cjson_bytes': !(0, runtime_1.exists)(json, 'max_cjson_bytes') ? undefined : json['max_cjson_bytes'],
48
+ 'max_directory_entries': !(0, runtime_1.exists)(json, 'max_directory_entries') ? undefined : json['max_directory_entries'],
49
+ 'max_library_results_per_page': !(0, runtime_1.exists)(json, 'max_library_results_per_page') ? undefined : json['max_library_results_per_page'],
47
50
  'max_preview_session_bytes': !(0, runtime_1.exists)(json, 'max_preview_session_bytes') ? undefined : json['max_preview_session_bytes'],
51
+ 'max_revertable_bytes': !(0, runtime_1.exists)(json, 'max_revertable_bytes') ? undefined : json['max_revertable_bytes'],
48
52
  'max_search_results': !(0, runtime_1.exists)(json, 'max_search_results') ? undefined : json['max_search_results'],
49
53
  'max_template_bytes': !(0, runtime_1.exists)(json, 'max_template_bytes') ? undefined : json['max_template_bytes'],
54
+ 'max_text_read_bytes': !(0, runtime_1.exists)(json, 'max_text_read_bytes') ? undefined : json['max_text_read_bytes'],
55
+ 'max_video_bytes': !(0, runtime_1.exists)(json, 'max_video_bytes') ? undefined : json['max_video_bytes'],
50
56
  'max_widget_ids_per_request': !(0, runtime_1.exists)(json, 'max_widget_ids_per_request') ? undefined : json['max_widget_ids_per_request'],
51
57
  'preview_session_ttl_seconds': !(0, runtime_1.exists)(json, 'preview_session_ttl_seconds') ? undefined : json['preview_session_ttl_seconds'],
52
58
  'release': !(0, runtime_1.exists)(json, 'release') ? undefined : json['release'],
@@ -64,10 +70,16 @@ function SfvbVersionResponseToJSON(value) {
64
70
  'container_manager_version': value.container_manager_version,
65
71
  'container_versions_retained': value.container_versions_retained,
66
72
  'element_count': value.element_count,
73
+ 'max_asset_bytes': value.max_asset_bytes,
67
74
  'max_cjson_bytes': value.max_cjson_bytes,
75
+ 'max_directory_entries': value.max_directory_entries,
76
+ 'max_library_results_per_page': value.max_library_results_per_page,
68
77
  'max_preview_session_bytes': value.max_preview_session_bytes,
78
+ 'max_revertable_bytes': value.max_revertable_bytes,
69
79
  'max_search_results': value.max_search_results,
70
80
  'max_template_bytes': value.max_template_bytes,
81
+ 'max_text_read_bytes': value.max_text_read_bytes,
82
+ 'max_video_bytes': value.max_video_bytes,
71
83
  'max_widget_ids_per_request': value.max_widget_ids_per_request,
72
84
  'preview_session_ttl_seconds': value.preview_session_ttl_seconds,
73
85
  'release': value.release,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ultracart_rest_api_v2_typescript",
3
- "version": "4.1.146",
3
+ "version": "4.1.147",
4
4
  "description": "UltraCart Rest TypeScript SDK",
5
5
  "author": "UltraCart",
6
6
  "repository": {
@@ -354,7 +354,7 @@ export interface SfvbApiInterface {
354
354
  compileSfvbCjson(requestParameters: CompileSfvbCjsonRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbCompileResponse>;
355
355
 
356
356
  /**
357
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
357
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
358
358
  * @summary Create a preview session
359
359
  * @param {number} storefrontOid
360
360
  * @param {*} [options] Override http request option.
@@ -364,7 +364,7 @@ export interface SfvbApiInterface {
364
364
  createSfvbPreviewSessionRaw(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>>;
365
365
 
366
366
  /**
367
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
367
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
368
368
  * Create a preview session
369
369
  */
370
370
  createSfvbPreviewSession(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
@@ -815,7 +815,7 @@ export interface SfvbApiInterface {
815
815
  putSfvbFileContent(requestParameters: PutSfvbFileContentRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbFileWriteResponse>;
816
816
 
817
817
  /**
818
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
818
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
819
819
  * @summary Push containers into a preview session
820
820
  * @param {number} storefrontOid
821
821
  * @param {string} previewSessionId
@@ -828,7 +828,7 @@ export interface SfvbApiInterface {
828
828
  putSfvbPreviewSessionRaw(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>>;
829
829
 
830
830
  /**
831
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
831
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
832
832
  * Push containers into a preview session
833
833
  */
834
834
  putSfvbPreviewSession(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse>;
@@ -1048,7 +1048,7 @@ export class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface {
1048
1048
  }
1049
1049
 
1050
1050
  /**
1051
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
1051
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
1052
1052
  * Create a preview session
1053
1053
  */
1054
1054
  async createSfvbPreviewSessionRaw(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>> {
@@ -1080,7 +1080,7 @@ export class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface {
1080
1080
  }
1081
1081
 
1082
1082
  /**
1083
- * Returns a server generated session id to push containers into. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
1083
+ * Returns a server generated session id to push containers into, and opens the session so that id exists rather than merely being random. The id is not caller supplied, because concurrent agents choosing their own would be free to collide, and the browser editor\'s habit of minting one with Math.random is not a property worth carrying into an API. Expires after eight hours and can be deleted sooner. Requires a token that resolves to a user, so use the device authorization flow.
1084
1084
  * Create a preview session
1085
1085
  */
1086
1086
  async createSfvbPreviewSession(requestParameters: CreateSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse> {
@@ -2302,7 +2302,7 @@ export class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface {
2302
2302
  }
2303
2303
 
2304
2304
  /**
2305
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
2305
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
2306
2306
  * Push containers into a preview session
2307
2307
  */
2308
2308
  async putSfvbPreviewSessionRaw(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SfvbPreviewSessionResponse>> {
@@ -2349,7 +2349,7 @@ export class SfvbApi extends runtime.BaseAPI implements SfvbApiInterface {
2349
2349
  }
2350
2350
 
2351
2351
  /**
2352
- * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
2352
+ * Stores compiled containers against a session created by createSfvbPreviewSession. Replaces whatever the session held. The session must exist - this does not create one, so a deleted, expired or never issued id is a 404 rather than a new session. Nothing durable is written. Requires a token that resolves to a user, so use the device authorization flow.
2353
2353
  * Push containers into a preview session
2354
2354
  */
2355
2355
  async putSfvbPreviewSession(requestParameters: PutSfvbPreviewSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SfvbPreviewSessionResponse> {
@@ -38,7 +38,7 @@ export interface SfvbContainerResponse {
38
38
  */
39
39
  hash_sha256?: string;
40
40
  /**
41
- * When the container was last modified, in the store's own record of it. Present for email, postcardfront and postcardback. Absent for upsell and item, because those tables carry no modification timestamp at all - for those two, read created_dts on the current entry of container_versions, which records when this API last wrote the container. Note that a postcard keeps one timestamp for both of its sides, so writing the front moves the value the back reports.
41
+ * When the container was last modified, in the store's own record of it. Every owner type reports this. It is absent only when the container has never been written since the store began recording it, so treat an absent value as unknown rather than as never modified. Two behaviours worth knowing. A postcard keeps one timestamp for both of its sides, so writing the front moves the value the back reports. An upsell container that is rewritten with byte identical content keeps its original date rather than moving to now, because the timestamp tracks changes to the container and not writes to the offer.
42
42
  * @type {string}
43
43
  * @memberof SfvbContainerResponse
44
44
  */
@@ -20,7 +20,7 @@ import { exists, mapValues } from '../runtime';
20
20
  */
21
21
  export interface SfvbThemeDuplicateRequest {
22
22
  /**
23
- * Directory name for the new theme under /themes/. Letters and numbers; it is cleansed before use. Must not already exist - a collision is refused rather than resolved, because silently creating a differently named theme leaves you unsure what you made.
23
+ * Directory name for the new theme under /themes/. Letters and numbers, one path segment. Used verbatim - anything that is not already a valid directory name is refused rather than adjusted, because this call does not return the new theme's oid and you find your copy by matching the target_path you asked for. Must not already exist - a collision is refused rather than resolved, because silently creating a differently named theme leaves you unsure what you made.
24
24
  * @type {string}
25
25
  * @memberof SfvbThemeDuplicateRequest
26
26
  */
@@ -86,7 +86,7 @@ export interface SfvbThemeJobResponse {
86
86
  */
87
87
  success?: boolean;
88
88
  /**
89
- * Path the new theme was created at. Returned when the job is started; the theme oid itself is NOT returned, because the job's product is a plain text report rather than a structured result. Once the job completes, list themes and match on this path.
89
+ * Path the new theme is being created at. Returned when the job is started and on every poll, so you do not have to keep the response that started it. The theme oid itself is NOT returned, so once the job completes you list themes and match on this path. It is also what success is checked against - a finished job whose theme is not here reports success false rather than pretending.
90
90
  * @type {string}
91
91
  * @memberof SfvbThemeJobResponse
92
92
  */
@@ -37,18 +37,42 @@ export interface SfvbVersionResponse {
37
37
  * @memberof SfvbVersionResponse
38
38
  */
39
39
  element_count?: number;
40
+ /**
41
+ * Largest binary asset that can be uploaded, in bytes, for every accepted type except video.
42
+ * @type {number}
43
+ * @memberof SfvbVersionResponse
44
+ */
45
+ max_asset_bytes?: number;
40
46
  /**
41
47
  * Largest CJSON document that will be parsed, in bytes.
42
48
  * @type {number}
43
49
  * @memberof SfvbVersionResponse
44
50
  */
45
51
  max_cjson_bytes?: number;
52
+ /**
53
+ * Most entries one directory listing returns. Asking for more is silently reduced to this rather than refused, so compare against it instead of trusting that you got what you asked for. The listing does set a truncated flag when it drops entries.
54
+ * @type {number}
55
+ * @memberof SfvbVersionResponse
56
+ */
57
+ max_directory_entries?: number;
58
+ /**
59
+ * Most element library results one page returns. Asking for more is silently reduced to this, and unlike the directory listing there is no truncation flag on the response, so this number is the only way to know a larger request was cut.
60
+ * @type {number}
61
+ * @memberof SfvbVersionResponse
62
+ */
63
+ max_library_results_per_page?: number;
46
64
  /**
47
65
  * Largest payload one preview session may hold, in bytes.
48
66
  * @type {number}
49
67
  * @memberof SfvbVersionResponse
50
68
  */
51
69
  max_preview_session_bytes?: number;
70
+ /**
71
+ * Largest historical version files/revert will restore, in bytes. Higher than max_text_read_bytes deliberately - putting back a version that is already stored is cheaper than serving it as JSON, so a version too large to read can still be reverted to.
72
+ * @type {number}
73
+ * @memberof SfvbVersionResponse
74
+ */
75
+ max_revertable_bytes?: number;
52
76
  /**
53
77
  * Hard ceiling on file search results per page.
54
78
  * @type {number}
@@ -56,11 +80,23 @@ export interface SfvbVersionResponse {
56
80
  */
57
81
  max_search_results?: number;
58
82
  /**
59
- * Largest template file that can be written, in bytes.
83
+ * Largest .vm template that can be written, in bytes. Narrow on purpose - it gates writes, only for files ending in .vm, and it is not the ceiling on reading a file back. Use max_text_read_bytes for that.
60
84
  * @type {number}
61
85
  * @memberof SfvbVersionResponse
62
86
  */
63
87
  max_template_bytes?: number;
88
+ /**
89
+ * Largest file files/content will return as text, in bytes. A file above this is refused with sfvb.too_large however small its history versions are. Bigger than max_template_bytes, so a file can be readable here and still be too large to write back as a template. Anything above this is still readable in full through files/download, which returns raw bytes and applies no ceiling.
90
+ * @type {number}
91
+ * @memberof SfvbVersionResponse
92
+ */
93
+ max_text_read_bytes?: number;
94
+ /**
95
+ * Largest video that can be uploaded, in bytes. Video is the one type allowed past max_asset_bytes.
96
+ * @type {number}
97
+ * @memberof SfvbVersionResponse
98
+ */
99
+ max_video_bytes?: number;
64
100
  /**
65
101
  * Most widget ids that can be reserved in one call.
66
102
  * @type {number}
@@ -116,10 +152,16 @@ export function SfvbVersionResponseFromJSONTyped(json: any, ignoreDiscriminator:
116
152
  'container_manager_version': !exists(json, 'container_manager_version') ? undefined : json['container_manager_version'],
117
153
  'container_versions_retained': !exists(json, 'container_versions_retained') ? undefined : json['container_versions_retained'],
118
154
  'element_count': !exists(json, 'element_count') ? undefined : json['element_count'],
155
+ 'max_asset_bytes': !exists(json, 'max_asset_bytes') ? undefined : json['max_asset_bytes'],
119
156
  'max_cjson_bytes': !exists(json, 'max_cjson_bytes') ? undefined : json['max_cjson_bytes'],
157
+ 'max_directory_entries': !exists(json, 'max_directory_entries') ? undefined : json['max_directory_entries'],
158
+ 'max_library_results_per_page': !exists(json, 'max_library_results_per_page') ? undefined : json['max_library_results_per_page'],
120
159
  'max_preview_session_bytes': !exists(json, 'max_preview_session_bytes') ? undefined : json['max_preview_session_bytes'],
160
+ 'max_revertable_bytes': !exists(json, 'max_revertable_bytes') ? undefined : json['max_revertable_bytes'],
121
161
  'max_search_results': !exists(json, 'max_search_results') ? undefined : json['max_search_results'],
122
162
  'max_template_bytes': !exists(json, 'max_template_bytes') ? undefined : json['max_template_bytes'],
163
+ 'max_text_read_bytes': !exists(json, 'max_text_read_bytes') ? undefined : json['max_text_read_bytes'],
164
+ 'max_video_bytes': !exists(json, 'max_video_bytes') ? undefined : json['max_video_bytes'],
123
165
  'max_widget_ids_per_request': !exists(json, 'max_widget_ids_per_request') ? undefined : json['max_widget_ids_per_request'],
124
166
  'preview_session_ttl_seconds': !exists(json, 'preview_session_ttl_seconds') ? undefined : json['preview_session_ttl_seconds'],
125
167
  'release': !exists(json, 'release') ? undefined : json['release'],
@@ -138,10 +180,16 @@ export function SfvbVersionResponseToJSON(value?: SfvbVersionResponse | null): a
138
180
  'container_manager_version': value.container_manager_version,
139
181
  'container_versions_retained': value.container_versions_retained,
140
182
  'element_count': value.element_count,
183
+ 'max_asset_bytes': value.max_asset_bytes,
141
184
  'max_cjson_bytes': value.max_cjson_bytes,
185
+ 'max_directory_entries': value.max_directory_entries,
186
+ 'max_library_results_per_page': value.max_library_results_per_page,
142
187
  'max_preview_session_bytes': value.max_preview_session_bytes,
188
+ 'max_revertable_bytes': value.max_revertable_bytes,
143
189
  'max_search_results': value.max_search_results,
144
190
  'max_template_bytes': value.max_template_bytes,
191
+ 'max_text_read_bytes': value.max_text_read_bytes,
192
+ 'max_video_bytes': value.max_video_bytes,
145
193
  'max_widget_ids_per_request': value.max_widget_ids_per_request,
146
194
  'preview_session_ttl_seconds': value.preview_session_ttl_seconds,
147
195
  'release': value.release,