@usehercules/sdk 1.8.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/client.d.mts +0 -3
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +0 -3
  5. package/client.d.ts.map +1 -1
  6. package/client.js +2 -15
  7. package/client.js.map +1 -1
  8. package/client.mjs +2 -15
  9. package/client.mjs.map +1 -1
  10. package/internal/qs/formats.d.mts +7 -0
  11. package/internal/qs/formats.d.mts.map +1 -0
  12. package/internal/qs/formats.d.ts +7 -0
  13. package/internal/qs/formats.d.ts.map +1 -0
  14. package/internal/qs/formats.js +13 -0
  15. package/internal/qs/formats.js.map +1 -0
  16. package/internal/qs/formats.mjs +9 -0
  17. package/internal/qs/formats.mjs.map +1 -0
  18. package/internal/qs/index.d.mts +10 -0
  19. package/internal/qs/index.d.mts.map +1 -0
  20. package/internal/qs/index.d.ts +10 -0
  21. package/internal/qs/index.d.ts.map +1 -0
  22. package/internal/qs/index.js +14 -0
  23. package/internal/qs/index.js.map +1 -0
  24. package/internal/qs/index.mjs +10 -0
  25. package/internal/qs/index.mjs.map +1 -0
  26. package/internal/qs/stringify.d.mts +3 -0
  27. package/internal/qs/stringify.d.mts.map +1 -0
  28. package/internal/qs/stringify.d.ts +3 -0
  29. package/internal/qs/stringify.d.ts.map +1 -0
  30. package/internal/qs/stringify.js +277 -0
  31. package/internal/qs/stringify.js.map +1 -0
  32. package/internal/qs/stringify.mjs +274 -0
  33. package/internal/qs/stringify.mjs.map +1 -0
  34. package/internal/qs/types.d.mts +57 -0
  35. package/internal/qs/types.d.mts.map +1 -0
  36. package/internal/qs/types.d.ts +57 -0
  37. package/internal/qs/types.d.ts.map +1 -0
  38. package/internal/qs/types.js +3 -0
  39. package/internal/qs/types.js.map +1 -0
  40. package/internal/qs/types.mjs +2 -0
  41. package/internal/qs/types.mjs.map +1 -0
  42. package/internal/qs/utils.d.mts +15 -0
  43. package/internal/qs/utils.d.mts.map +1 -0
  44. package/internal/qs/utils.d.ts +15 -0
  45. package/internal/qs/utils.d.ts.map +1 -0
  46. package/internal/qs/utils.js +230 -0
  47. package/internal/qs/utils.js.map +1 -0
  48. package/internal/qs/utils.mjs +217 -0
  49. package/internal/qs/utils.mjs.map +1 -0
  50. package/package.json +1 -1
  51. package/resources/beta/beta.d.mts +4 -0
  52. package/resources/beta/beta.d.mts.map +1 -1
  53. package/resources/beta/beta.d.ts +4 -0
  54. package/resources/beta/beta.d.ts.map +1 -1
  55. package/resources/beta/beta.js +4 -0
  56. package/resources/beta/beta.js.map +1 -1
  57. package/resources/beta/beta.mjs +4 -0
  58. package/resources/beta/beta.mjs.map +1 -1
  59. package/resources/beta/commerce/commerce.d.mts +17 -12
  60. package/resources/beta/commerce/commerce.d.mts.map +1 -1
  61. package/resources/beta/commerce/commerce.d.ts +17 -12
  62. package/resources/beta/commerce/commerce.d.ts.map +1 -1
  63. package/resources/beta/commerce/commerce.js.map +1 -1
  64. package/resources/beta/commerce/commerce.mjs.map +1 -1
  65. package/resources/beta/commerce/coupons.d.mts +2 -1
  66. package/resources/beta/commerce/coupons.d.mts.map +1 -1
  67. package/resources/beta/commerce/coupons.d.ts +2 -1
  68. package/resources/beta/commerce/coupons.d.ts.map +1 -1
  69. package/resources/beta/commerce/customers.d.mts +255 -4
  70. package/resources/beta/commerce/customers.d.mts.map +1 -1
  71. package/resources/beta/commerce/customers.d.ts +255 -4
  72. package/resources/beta/commerce/customers.d.ts.map +1 -1
  73. package/resources/beta/commerce/customers.js +2 -1
  74. package/resources/beta/commerce/customers.js.map +1 -1
  75. package/resources/beta/commerce/customers.mjs +2 -1
  76. package/resources/beta/commerce/customers.mjs.map +1 -1
  77. package/resources/beta/commerce/products/products.d.mts +275 -183
  78. package/resources/beta/commerce/products/products.d.mts.map +1 -1
  79. package/resources/beta/commerce/products/products.d.ts +275 -183
  80. package/resources/beta/commerce/products/products.d.ts.map +1 -1
  81. package/resources/beta/commerce/products/products.js.map +1 -1
  82. package/resources/beta/commerce/products/products.mjs.map +1 -1
  83. package/resources/beta/commerce/products/resources.d.mts +23 -22
  84. package/resources/beta/commerce/products/resources.d.mts.map +1 -1
  85. package/resources/beta/commerce/products/resources.d.ts +23 -22
  86. package/resources/beta/commerce/products/resources.d.ts.map +1 -1
  87. package/resources/beta/commerce/products/variants.d.mts +137 -103
  88. package/resources/beta/commerce/products/variants.d.mts.map +1 -1
  89. package/resources/beta/commerce/products/variants.d.ts +137 -103
  90. package/resources/beta/commerce/products/variants.d.ts.map +1 -1
  91. package/resources/beta/content/assets.d.mts +226 -0
  92. package/resources/beta/content/assets.d.mts.map +1 -0
  93. package/resources/beta/content/assets.d.ts +226 -0
  94. package/resources/beta/content/assets.d.ts.map +1 -0
  95. package/resources/beta/content/assets.js +56 -0
  96. package/resources/beta/content/assets.js.map +1 -0
  97. package/resources/beta/content/assets.mjs +52 -0
  98. package/resources/beta/content/assets.mjs.map +1 -0
  99. package/resources/beta/content/content.d.mts +26 -0
  100. package/resources/beta/content/content.d.mts.map +1 -0
  101. package/resources/beta/content/content.d.ts +26 -0
  102. package/resources/beta/content/content.d.ts.map +1 -0
  103. package/resources/beta/content/content.js +33 -0
  104. package/resources/beta/content/content.js.map +1 -0
  105. package/resources/beta/content/content.mjs +28 -0
  106. package/resources/beta/content/content.mjs.map +1 -0
  107. package/resources/beta/content/entries.d.mts +266 -0
  108. package/resources/beta/content/entries.d.mts.map +1 -0
  109. package/resources/beta/content/entries.d.ts +266 -0
  110. package/resources/beta/content/entries.d.ts.map +1 -0
  111. package/resources/beta/content/entries.js +63 -0
  112. package/resources/beta/content/entries.js.map +1 -0
  113. package/resources/beta/content/entries.mjs +59 -0
  114. package/resources/beta/content/entries.mjs.map +1 -0
  115. package/resources/beta/content/index.d.mts +7 -0
  116. package/resources/beta/content/index.d.mts.map +1 -0
  117. package/resources/beta/content/index.d.ts +7 -0
  118. package/resources/beta/content/index.d.ts.map +1 -0
  119. package/resources/beta/content/index.js +17 -0
  120. package/resources/beta/content/index.js.map +1 -0
  121. package/resources/beta/content/index.mjs +8 -0
  122. package/resources/beta/content/index.mjs.map +1 -0
  123. package/resources/beta/content/locales.d.mts +116 -0
  124. package/resources/beta/content/locales.d.mts.map +1 -0
  125. package/resources/beta/content/locales.d.ts +116 -0
  126. package/resources/beta/content/locales.d.ts.map +1 -0
  127. package/resources/beta/content/locales.js +49 -0
  128. package/resources/beta/content/locales.js.map +1 -0
  129. package/resources/beta/content/locales.mjs +45 -0
  130. package/resources/beta/content/locales.mjs.map +1 -0
  131. package/resources/beta/content/models/fields.d.mts +186 -0
  132. package/resources/beta/content/models/fields.d.mts.map +1 -0
  133. package/resources/beta/content/models/fields.d.ts +186 -0
  134. package/resources/beta/content/models/fields.d.ts.map +1 -0
  135. package/resources/beta/content/models/fields.js +37 -0
  136. package/resources/beta/content/models/fields.js.map +1 -0
  137. package/resources/beta/content/models/fields.mjs +33 -0
  138. package/resources/beta/content/models/fields.mjs.map +1 -0
  139. package/resources/beta/content/models/index.d.mts +3 -0
  140. package/resources/beta/content/models/index.d.mts.map +1 -0
  141. package/resources/beta/content/models/index.d.ts +3 -0
  142. package/resources/beta/content/models/index.d.ts.map +1 -0
  143. package/resources/beta/content/models/index.js +9 -0
  144. package/resources/beta/content/models/index.js.map +1 -0
  145. package/resources/beta/content/models/index.mjs +4 -0
  146. package/resources/beta/content/models/index.mjs.map +1 -0
  147. package/resources/beta/content/models/models.d.mts +296 -0
  148. package/resources/beta/content/models/models.d.mts.map +1 -0
  149. package/resources/beta/content/models/models.d.ts +296 -0
  150. package/resources/beta/content/models/models.d.ts.map +1 -0
  151. package/resources/beta/content/models/models.js +54 -0
  152. package/resources/beta/content/models/models.js.map +1 -0
  153. package/resources/beta/content/models/models.mjs +49 -0
  154. package/resources/beta/content/models/models.mjs.map +1 -0
  155. package/resources/beta/content/models.d.mts +2 -0
  156. package/resources/beta/content/models.d.mts.map +1 -0
  157. package/resources/beta/content/models.d.ts +2 -0
  158. package/resources/beta/content/models.d.ts.map +1 -0
  159. package/resources/beta/content/models.js +6 -0
  160. package/resources/beta/content/models.js.map +1 -0
  161. package/resources/beta/content/models.mjs +3 -0
  162. package/resources/beta/content/models.mjs.map +1 -0
  163. package/resources/beta/content/releases/index.d.mts +3 -0
  164. package/resources/beta/content/releases/index.d.mts.map +1 -0
  165. package/resources/beta/content/releases/index.d.ts +3 -0
  166. package/resources/beta/content/releases/index.d.ts.map +1 -0
  167. package/resources/beta/content/releases/index.js +9 -0
  168. package/resources/beta/content/releases/index.js.map +1 -0
  169. package/resources/beta/content/releases/index.mjs +4 -0
  170. package/resources/beta/content/releases/index.mjs.map +1 -0
  171. package/resources/beta/content/releases/items.d.mts +39 -0
  172. package/resources/beta/content/releases/items.d.mts.map +1 -0
  173. package/resources/beta/content/releases/items.d.ts +39 -0
  174. package/resources/beta/content/releases/items.d.ts.map +1 -0
  175. package/resources/beta/content/releases/items.js +28 -0
  176. package/resources/beta/content/releases/items.js.map +1 -0
  177. package/resources/beta/content/releases/items.mjs +24 -0
  178. package/resources/beta/content/releases/items.mjs.map +1 -0
  179. package/resources/beta/content/releases/releases.d.mts +151 -0
  180. package/resources/beta/content/releases/releases.d.mts.map +1 -0
  181. package/resources/beta/content/releases/releases.d.ts +151 -0
  182. package/resources/beta/content/releases/releases.d.ts.map +1 -0
  183. package/resources/beta/content/releases/releases.js +69 -0
  184. package/resources/beta/content/releases/releases.js.map +1 -0
  185. package/resources/beta/content/releases/releases.mjs +64 -0
  186. package/resources/beta/content/releases/releases.mjs.map +1 -0
  187. package/resources/beta/content/releases.d.mts +2 -0
  188. package/resources/beta/content/releases.d.mts.map +1 -0
  189. package/resources/beta/content/releases.d.ts +2 -0
  190. package/resources/beta/content/releases.d.ts.map +1 -0
  191. package/resources/beta/content/releases.js +6 -0
  192. package/resources/beta/content/releases.js.map +1 -0
  193. package/resources/beta/content/releases.mjs +3 -0
  194. package/resources/beta/content/releases.mjs.map +1 -0
  195. package/resources/beta/content.d.mts +2 -0
  196. package/resources/beta/content.d.mts.map +1 -0
  197. package/resources/beta/content.d.ts +2 -0
  198. package/resources/beta/content.d.ts.map +1 -0
  199. package/resources/beta/content.js +6 -0
  200. package/resources/beta/content.js.map +1 -0
  201. package/resources/beta/content.mjs +3 -0
  202. package/resources/beta/content.mjs.map +1 -0
  203. package/resources/beta/index.d.mts +1 -0
  204. package/resources/beta/index.d.mts.map +1 -1
  205. package/resources/beta/index.d.ts +1 -0
  206. package/resources/beta/index.d.ts.map +1 -1
  207. package/resources/beta/index.js +3 -1
  208. package/resources/beta/index.js.map +1 -1
  209. package/resources/beta/index.mjs +1 -0
  210. package/resources/beta/index.mjs.map +1 -1
  211. package/src/client.ts +2 -17
  212. package/src/internal/qs/LICENSE.md +13 -0
  213. package/src/internal/qs/README.md +3 -0
  214. package/src/internal/qs/formats.ts +10 -0
  215. package/src/internal/qs/index.ts +13 -0
  216. package/src/internal/qs/stringify.ts +385 -0
  217. package/src/internal/qs/types.ts +71 -0
  218. package/src/internal/qs/utils.ts +265 -0
  219. package/src/resources/beta/beta.ts +6 -0
  220. package/src/resources/beta/commerce/commerce.ts +19 -13
  221. package/src/resources/beta/commerce/coupons.ts +2 -1
  222. package/src/resources/beta/commerce/customers.ts +315 -5
  223. package/src/resources/beta/commerce/products/products.ts +318 -206
  224. package/src/resources/beta/commerce/products/resources.ts +23 -22
  225. package/src/resources/beta/commerce/products/variants.ts +164 -118
  226. package/src/resources/beta/content/assets.ts +299 -0
  227. package/src/resources/beta/content/content.ts +117 -0
  228. package/src/resources/beta/content/entries.ts +347 -0
  229. package/src/resources/beta/content/index.ts +47 -0
  230. package/src/resources/beta/content/locales.ts +169 -0
  231. package/src/resources/beta/content/models/fields.ts +276 -0
  232. package/src/resources/beta/content/models/index.ts +12 -0
  233. package/src/resources/beta/content/models/models.ts +436 -0
  234. package/src/resources/beta/content/models.ts +3 -0
  235. package/src/resources/beta/content/releases/index.ts +13 -0
  236. package/src/resources/beta/content/releases/items.ts +57 -0
  237. package/src/resources/beta/content/releases/releases.ts +220 -0
  238. package/src/resources/beta/content/releases.ts +3 -0
  239. package/src/resources/beta/content.ts +3 -0
  240. package/src/resources/beta/index.ts +1 -0
  241. package/src/version.ts +1 -1
  242. package/version.d.mts +1 -1
  243. package/version.d.mts.map +1 -1
  244. package/version.d.ts +1 -1
  245. package/version.d.ts.map +1 -1
  246. package/version.js +1 -1
  247. package/version.js.map +1 -1
  248. package/version.mjs +1 -1
  249. package/version.mjs.map +1 -1
@@ -0,0 +1,347 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../core/resource';
4
+ import { APIPromise } from '../../../core/api-promise';
5
+ import { CursorIDPage, type CursorIDPageParams, PagePromise } from '../../../core/pagination';
6
+ import { RequestOptions } from '../../../internal/request-options';
7
+ import { path } from '../../../internal/utils/path';
8
+
9
+ export class Entries extends APIResource {
10
+ /**
11
+ * Creates a new content entry for a given model. Entries start as drafts by
12
+ * default. Use the publish endpoint to make entries publicly accessible.
13
+ */
14
+ create(body: EntryCreateParams, options?: RequestOptions): APIPromise<Entry> {
15
+ return this._client.post('/v1/content/entries', { body, ...options });
16
+ }
17
+
18
+ /**
19
+ * Updates an existing content entry. Supports partial updates - only specified
20
+ * fields are modified. Use the version parameter for optimistic locking to prevent
21
+ * concurrent update conflicts.
22
+ */
23
+ update(
24
+ entryID: string,
25
+ body: EntryUpdateParams | null | undefined = {},
26
+ options?: RequestOptions,
27
+ ): APIPromise<Entry> {
28
+ return this._client.patch(path`/v1/content/entries/${entryID}`, { body, ...options });
29
+ }
30
+
31
+ /**
32
+ * Retrieves a paginated list of content entries. Supports filtering by model,
33
+ * status, locale, and custom field queries. Use the 'where' parameter for
34
+ * field-based filtering with operators like $eq, $contains, $gt, etc.
35
+ */
36
+ list(
37
+ query: EntryListParams | null | undefined = {},
38
+ options?: RequestOptions,
39
+ ): PagePromise<EntriesCursorIDPage, Entry> {
40
+ return this._client.getAPIList('/v1/content/entries', CursorIDPage<Entry>, { query, ...options });
41
+ }
42
+
43
+ /**
44
+ * Archives a content entry, hiding it from the API and public access. The entry
45
+ * data is preserved and can be restored later.
46
+ */
47
+ archive(entryID: string, options?: RequestOptions): APIPromise<Entry> {
48
+ return this._client.delete(path`/v1/content/entries/${entryID}`, options);
49
+ }
50
+
51
+ /**
52
+ * Retrieves a content entry by ID. Optionally specify a locale to get localized
53
+ * field values with fallback resolution.
54
+ */
55
+ get(entryID: string, options?: RequestOptions): APIPromise<Entry> {
56
+ return this._client.get(path`/v1/content/entries/${entryID}`, options);
57
+ }
58
+
59
+ /**
60
+ * Publishes a content entry, making it publicly accessible. Optionally schedule
61
+ * publishing for a future time. Publishing validates that all required fields have
62
+ * values.
63
+ */
64
+ publish(
65
+ entryID: string,
66
+ body: EntryPublishParams | null | undefined = {},
67
+ options?: RequestOptions,
68
+ ): APIPromise<Entry> {
69
+ return this._client.post(path`/v1/content/entries/${entryID}/publish`, { body, ...options });
70
+ }
71
+
72
+ /**
73
+ * Unpublishes a content entry, reverting it to draft status. The entry will no
74
+ * longer be publicly accessible but all data is preserved.
75
+ */
76
+ unpublish(entryID: string, options?: RequestOptions): APIPromise<Entry> {
77
+ return this._client.post(path`/v1/content/entries/${entryID}/unpublish`, options);
78
+ }
79
+ }
80
+
81
+ export type EntriesCursorIDPage = CursorIDPage<Entry>;
82
+
83
+ /**
84
+ * A content entry containing field values based on its model schema. Entries can
85
+ * be drafts, published, or archived.
86
+ */
87
+ export interface Entry {
88
+ /**
89
+ * Unique identifier for the topic subscription
90
+ */
91
+ id: string;
92
+
93
+ /**
94
+ * Timestamp when the entry was created
95
+ */
96
+ created: string;
97
+
98
+ /**
99
+ * Field values. For localized fields: { fieldApiId: { locale: value } }. For
100
+ * non-localized: { fieldApiId: value }
101
+ */
102
+ fields: { [key: string]: unknown };
103
+
104
+ /**
105
+ * Primary locale for this entry
106
+ */
107
+ locale: string;
108
+
109
+ /**
110
+ * ID of the content model this entry belongs to
111
+ */
112
+ model_id: string;
113
+
114
+ /**
115
+ * Publishing status: draft, published, or archived
116
+ */
117
+ status: 'draft' | 'published' | 'archived';
118
+
119
+ /**
120
+ * Timestamp when the entry was last updated
121
+ */
122
+ updated: string;
123
+
124
+ /**
125
+ * Version number for optimistic locking
126
+ */
127
+ version: number;
128
+
129
+ /**
130
+ * Timestamp when first published
131
+ */
132
+ first_published_at?: string | null;
133
+
134
+ /**
135
+ * API ID of the content model (included when populated)
136
+ */
137
+ model_api_id?: string;
138
+
139
+ /**
140
+ * Timestamp when last published
141
+ */
142
+ published_at?: string | null;
143
+
144
+ /**
145
+ * Scheduled publish time
146
+ */
147
+ scheduled_publish_at?: string | null;
148
+
149
+ /**
150
+ * Scheduled unpublish time
151
+ */
152
+ scheduled_unpublish_at?: string | null;
153
+ }
154
+
155
+ export interface EntryCreateParams {
156
+ /**
157
+ * API ID of the content model (e.g., 'blogPost')
158
+ */
159
+ model: string;
160
+
161
+ /**
162
+ * Optional custom ID for the entry. Must start with 'ce\_'. If not provided, one
163
+ * will be generated.
164
+ */
165
+ id?: string;
166
+
167
+ /**
168
+ * Field values. For localized fields: { fieldApiId: { locale: value } }. For
169
+ * non-localized: { fieldApiId: value }
170
+ */
171
+ fields?: { [key: string]: unknown };
172
+
173
+ /**
174
+ * Primary locale for this entry
175
+ */
176
+ locale?: string;
177
+
178
+ /**
179
+ * Initial status (default: draft)
180
+ */
181
+ status?: 'draft' | 'published' | 'archived';
182
+ }
183
+
184
+ export interface EntryUpdateParams {
185
+ /**
186
+ * Field values to update. Supports partial updates - only specified fields are
187
+ * changed.
188
+ */
189
+ fields?: { [key: string]: unknown };
190
+
191
+ /**
192
+ * Primary locale
193
+ */
194
+ locale?: string;
195
+
196
+ /**
197
+ * Expected version for optimistic locking. Update fails if version mismatch.
198
+ */
199
+ version?: number;
200
+ }
201
+
202
+ export interface EntryListParams extends CursorIDPageParams {
203
+ /**
204
+ * Filter by creation date
205
+ */
206
+ created?: EntryListParams.Created;
207
+
208
+ /**
209
+ * Depth for populating reference fields (0-3)
210
+ */
211
+ include_depth?: number;
212
+
213
+ /**
214
+ * Filter by primary locale
215
+ */
216
+ locale?: string;
217
+
218
+ /**
219
+ * Filter by content model API ID (e.g., 'blogPost')
220
+ */
221
+ model?: string;
222
+
223
+ /**
224
+ * JSON-encoded sort order. Example: {"field":"publishedAt","direction":"desc"}
225
+ */
226
+ order_by?: string;
227
+
228
+ /**
229
+ * Filter by publish date
230
+ */
231
+ published?: EntryListParams.Published;
232
+
233
+ /**
234
+ * Full-text search across text fields
235
+ */
236
+ query?: string;
237
+
238
+ /**
239
+ * Filter by status
240
+ */
241
+ status?: 'draft' | 'published' | 'archived';
242
+
243
+ /**
244
+ * Filter by update date
245
+ */
246
+ updated?: EntryListParams.Updated;
247
+
248
+ /**
249
+ * JSON-encoded field filters. Example: {"title":{"$contains":"hello"}}
250
+ */
251
+ where?: string;
252
+ }
253
+
254
+ export namespace EntryListParams {
255
+ /**
256
+ * Filter by creation date
257
+ */
258
+ export interface Created {
259
+ /**
260
+ * Greater than (Unix timestamp in seconds)
261
+ */
262
+ gt?: number;
263
+
264
+ /**
265
+ * Greater than or equal (Unix timestamp in seconds)
266
+ */
267
+ gte?: number;
268
+
269
+ /**
270
+ * Less than (Unix timestamp in seconds)
271
+ */
272
+ lt?: number;
273
+
274
+ /**
275
+ * Less than or equal (Unix timestamp in seconds)
276
+ */
277
+ lte?: number;
278
+ }
279
+
280
+ /**
281
+ * Filter by publish date
282
+ */
283
+ export interface Published {
284
+ /**
285
+ * Greater than (Unix timestamp in seconds)
286
+ */
287
+ gt?: number;
288
+
289
+ /**
290
+ * Greater than or equal (Unix timestamp in seconds)
291
+ */
292
+ gte?: number;
293
+
294
+ /**
295
+ * Less than (Unix timestamp in seconds)
296
+ */
297
+ lt?: number;
298
+
299
+ /**
300
+ * Less than or equal (Unix timestamp in seconds)
301
+ */
302
+ lte?: number;
303
+ }
304
+
305
+ /**
306
+ * Filter by update date
307
+ */
308
+ export interface Updated {
309
+ /**
310
+ * Greater than (Unix timestamp in seconds)
311
+ */
312
+ gt?: number;
313
+
314
+ /**
315
+ * Greater than or equal (Unix timestamp in seconds)
316
+ */
317
+ gte?: number;
318
+
319
+ /**
320
+ * Less than (Unix timestamp in seconds)
321
+ */
322
+ lt?: number;
323
+
324
+ /**
325
+ * Less than or equal (Unix timestamp in seconds)
326
+ */
327
+ lte?: number;
328
+ }
329
+ }
330
+
331
+ export interface EntryPublishParams {
332
+ /**
333
+ * Schedule publish for a future time instead of publishing immediately
334
+ */
335
+ scheduled_at?: string;
336
+ }
337
+
338
+ export declare namespace Entries {
339
+ export {
340
+ type Entry as Entry,
341
+ type EntriesCursorIDPage as EntriesCursorIDPage,
342
+ type EntryCreateParams as EntryCreateParams,
343
+ type EntryUpdateParams as EntryUpdateParams,
344
+ type EntryListParams as EntryListParams,
345
+ type EntryPublishParams as EntryPublishParams,
346
+ };
347
+ }
@@ -0,0 +1,47 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ export {
4
+ Assets,
5
+ type Asset,
6
+ type AssetCreateParams,
7
+ type AssetUpdateParams,
8
+ type AssetListParams,
9
+ type AssetsCursorIDPage,
10
+ } from './assets';
11
+ export { Content } from './content';
12
+ export {
13
+ Entries,
14
+ type Entry,
15
+ type EntryCreateParams,
16
+ type EntryUpdateParams,
17
+ type EntryListParams,
18
+ type EntryPublishParams,
19
+ type EntriesCursorIDPage,
20
+ } from './entries';
21
+ export {
22
+ Locales,
23
+ type Locale,
24
+ type LocaleCreateParams,
25
+ type LocaleUpdateParams,
26
+ type LocaleListParams,
27
+ type LocalesCursorIDPage,
28
+ } from './locales';
29
+ export {
30
+ Models,
31
+ type Field,
32
+ type Model,
33
+ type ModelCreateParams,
34
+ type ModelUpdateParams,
35
+ type ModelListParams,
36
+ type ModelsCursorIDPage,
37
+ } from './models/index';
38
+ export {
39
+ Releases,
40
+ type Release,
41
+ type ReleaseItem,
42
+ type ReleaseCreateParams,
43
+ type ReleaseUpdateParams,
44
+ type ReleaseListParams,
45
+ type ReleaseScheduleParams,
46
+ type ReleasesCursorIDPage,
47
+ } from './releases/index';
@@ -0,0 +1,169 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../../core/resource';
4
+ import { APIPromise } from '../../../core/api-promise';
5
+ import { CursorIDPage, type CursorIDPageParams, PagePromise } from '../../../core/pagination';
6
+ import { buildHeaders } from '../../../internal/headers';
7
+ import { RequestOptions } from '../../../internal/request-options';
8
+ import { path } from '../../../internal/utils/path';
9
+
10
+ export class Locales extends APIResource {
11
+ /**
12
+ * Creates a new locale for content localization. Configure fallback chains by
13
+ * setting the fallback_locale to another locale code.
14
+ */
15
+ create(body: LocaleCreateParams, options?: RequestOptions): APIPromise<Locale> {
16
+ return this._client.post('/v1/content/locales', { body, ...options });
17
+ }
18
+
19
+ /**
20
+ * Updates a locale's configuration including name, fallback, default status, and
21
+ * active status.
22
+ */
23
+ update(
24
+ localeCode: string,
25
+ body: LocaleUpdateParams | null | undefined = {},
26
+ options?: RequestOptions,
27
+ ): APIPromise<Locale> {
28
+ return this._client.patch(path`/v1/content/locales/${localeCode}`, { body, ...options });
29
+ }
30
+
31
+ /**
32
+ * Retrieves a list of configured locales. Locales define the languages available
33
+ * for content localization.
34
+ */
35
+ list(
36
+ query: LocaleListParams | null | undefined = {},
37
+ options?: RequestOptions,
38
+ ): PagePromise<LocalesCursorIDPage, Locale> {
39
+ return this._client.getAPIList('/v1/content/locales', CursorIDPage<Locale>, { query, ...options });
40
+ }
41
+
42
+ /**
43
+ * Deletes a locale. The default locale cannot be deleted - set another locale as
44
+ * default first. Existing localized content is preserved.
45
+ */
46
+ delete(localeCode: string, options?: RequestOptions): APIPromise<void> {
47
+ return this._client.delete(path`/v1/content/locales/${localeCode}`, {
48
+ ...options,
49
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
50
+ });
51
+ }
52
+
53
+ /**
54
+ * Retrieves a locale by its code.
55
+ */
56
+ get(localeCode: string, options?: RequestOptions): APIPromise<Locale> {
57
+ return this._client.get(path`/v1/content/locales/${localeCode}`, options);
58
+ }
59
+ }
60
+
61
+ export type LocalesCursorIDPage = CursorIDPage<Locale>;
62
+
63
+ /**
64
+ * A locale configuration for content localization. Locales define supported
65
+ * languages and fallback chains.
66
+ */
67
+ export interface Locale {
68
+ /**
69
+ * Unique identifier for the topic subscription
70
+ */
71
+ id: string;
72
+
73
+ /**
74
+ * Whether the locale is active
75
+ */
76
+ active: boolean;
77
+
78
+ /**
79
+ * Locale code (e.g., 'en', 'en-US', 'fr-CA')
80
+ */
81
+ code: string;
82
+
83
+ /**
84
+ * Timestamp when the locale was created
85
+ */
86
+ created: string;
87
+
88
+ /**
89
+ * Whether this is the default locale
90
+ */
91
+ is_default: boolean;
92
+
93
+ /**
94
+ * Display name (e.g., 'English', 'French (Canada)')
95
+ */
96
+ name: string;
97
+
98
+ /**
99
+ * Fallback locale code for missing translations
100
+ */
101
+ fallback_locale?: string | null;
102
+ }
103
+
104
+ export interface LocaleCreateParams {
105
+ /**
106
+ * Locale code (e.g., 'en', 'en-US', 'fr-CA')
107
+ */
108
+ code: string;
109
+
110
+ /**
111
+ * Display name (e.g., 'English', 'French (Canada)')
112
+ */
113
+ name: string;
114
+
115
+ /**
116
+ * Optional custom ID for the locale. Must start with 'cl\_'. If not provided, one
117
+ * will be generated.
118
+ */
119
+ id?: string;
120
+
121
+ /**
122
+ * Fallback locale code for missing translations
123
+ */
124
+ fallback_locale?: string;
125
+
126
+ /**
127
+ * Set as the default locale (only one per website)
128
+ */
129
+ is_default?: boolean;
130
+ }
131
+
132
+ export interface LocaleUpdateParams {
133
+ /**
134
+ * Whether the locale is active
135
+ */
136
+ active?: boolean;
137
+
138
+ /**
139
+ * Fallback locale code
140
+ */
141
+ fallback_locale?: string | null;
142
+
143
+ /**
144
+ * Set as the default locale
145
+ */
146
+ is_default?: boolean;
147
+
148
+ /**
149
+ * Display name
150
+ */
151
+ name?: string;
152
+ }
153
+
154
+ export interface LocaleListParams extends CursorIDPageParams {
155
+ /**
156
+ * Filter by active status
157
+ */
158
+ active?: 'true' | 'false';
159
+ }
160
+
161
+ export declare namespace Locales {
162
+ export {
163
+ type Locale as Locale,
164
+ type LocalesCursorIDPage as LocalesCursorIDPage,
165
+ type LocaleCreateParams as LocaleCreateParams,
166
+ type LocaleUpdateParams as LocaleUpdateParams,
167
+ type LocaleListParams as LocaleListParams,
168
+ };
169
+ }