@storyblok/management-api-client 0.2.4 → 1.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/client.cjs +190 -0
  2. package/dist/client.cjs.map +1 -0
  3. package/dist/client.d.cts +624 -0
  4. package/dist/client.d.mts +624 -0
  5. package/dist/client.mjs +189 -0
  6. package/dist/client.mjs.map +1 -0
  7. package/dist/error.cjs.map +1 -1
  8. package/dist/error.d.cts +12 -2
  9. package/dist/error.d.mts +12 -2
  10. package/dist/error.mjs.map +1 -1
  11. package/dist/generated/asset_folders/types.gen.d.cts +5 -31
  12. package/dist/generated/asset_folders/types.gen.d.mts +5 -31
  13. package/dist/generated/assets/types.gen.d.cts +1 -73
  14. package/dist/generated/assets/types.gen.d.mts +1 -73
  15. package/dist/generated/component_folders/types.gen.d.cts +29 -45
  16. package/dist/generated/component_folders/types.gen.d.mts +29 -45
  17. package/dist/generated/components/types.gen.d.cts +636 -465
  18. package/dist/generated/components/types.gen.d.mts +636 -465
  19. package/dist/generated/datasource_entries/types.gen.d.cts +6 -32
  20. package/dist/generated/datasource_entries/types.gen.d.mts +6 -32
  21. package/dist/generated/datasources/types.gen.d.cts +18 -39
  22. package/dist/generated/datasources/types.gen.d.mts +18 -39
  23. package/dist/generated/internal_tags/types.gen.d.cts +28 -32
  24. package/dist/generated/internal_tags/types.gen.d.mts +28 -32
  25. package/dist/generated/presets/types.gen.d.cts +53 -58
  26. package/dist/generated/presets/types.gen.d.mts +53 -58
  27. package/dist/generated/spaces/types.gen.d.cts +1 -41
  28. package/dist/generated/spaces/types.gen.d.mts +1 -41
  29. package/dist/generated/stories/types.gen.d.cts +206 -198
  30. package/dist/generated/stories/types.gen.d.mts +206 -198
  31. package/dist/generated/users/types.gen.d.cts +13 -112
  32. package/dist/generated/users/types.gen.d.mts +13 -112
  33. package/dist/index.cjs +3 -178
  34. package/dist/index.d.cts +8 -425
  35. package/dist/index.d.mts +8 -425
  36. package/dist/index.mjs +2 -176
  37. package/dist/resources/asset-folders.cjs.map +1 -1
  38. package/dist/resources/asset-folders.mjs.map +1 -1
  39. package/dist/resources/assets.cjs +11 -2
  40. package/dist/resources/assets.cjs.map +1 -1
  41. package/dist/resources/assets.d.cts +3 -2
  42. package/dist/resources/assets.d.mts +3 -2
  43. package/dist/resources/assets.mjs +11 -2
  44. package/dist/resources/assets.mjs.map +1 -1
  45. package/dist/resources/component-folders.cjs.map +1 -1
  46. package/dist/resources/component-folders.mjs.map +1 -1
  47. package/dist/resources/components.cjs.map +1 -1
  48. package/dist/resources/components.mjs.map +1 -1
  49. package/dist/resources/datasource-entries.cjs.map +1 -1
  50. package/dist/resources/datasource-entries.mjs.map +1 -1
  51. package/dist/resources/datasources.cjs.map +1 -1
  52. package/dist/resources/datasources.mjs.map +1 -1
  53. package/dist/resources/internal-tags.cjs.map +1 -1
  54. package/dist/resources/internal-tags.mjs.map +1 -1
  55. package/dist/resources/presets.cjs.map +1 -1
  56. package/dist/resources/presets.mjs.map +1 -1
  57. package/dist/resources/spaces.cjs.map +1 -1
  58. package/dist/resources/spaces.mjs.map +1 -1
  59. package/dist/resources/stories.cjs.map +1 -1
  60. package/dist/resources/stories.d.cts +105 -0
  61. package/dist/resources/stories.d.mts +105 -0
  62. package/dist/resources/stories.mjs.map +1 -1
  63. package/dist/resources/users.cjs.map +1 -1
  64. package/dist/resources/users.mjs.map +1 -1
  65. package/package.json +13 -10
  66. package/test/GUIDE.md +59 -0
  67. package/test/setup.e2e.ts +11 -0
  68. package/test/specs/mapi-round-trip.spec.e2e.ts +520 -0
  69. package/vitest.config.e2e.ts +26 -0
  70. package/vitest.config.ts +3 -0
  71. package/dist/index.cjs.map +0 -1
  72. package/dist/index.mjs.map +0 -1
  73. package/dist/types.d.cts +0 -130
  74. package/dist/types.d.mts +0 -130
@@ -0,0 +1,624 @@
1
+ import { AssetFolder, CreateData, DeleteData, ListData, UpdateData } from "./generated/asset_folders/types.gen.mjs";
2
+ import { SpaceIdPathOverride } from "./resources/shared.mjs";
3
+ import { Asset, AssetUpdateRequest, BulkMoveData, BulkRestoreData, DeleteManyData, ListData as ListData$1, SignResponseObjectData, SignedResponseObject, UpdateData as UpdateData$1 } from "./generated/assets/types.gen.mjs";
4
+ import { AssetCreate, AssetUploadRequest } from "./resources/assets.mjs";
5
+ import { ComponentFolder, CreateData as CreateData$1, ListData as ListData$2, UpdateData as UpdateData$2 } from "./generated/component_folders/types.gen.mjs";
6
+ import { Component, ComponentCreate, ComponentUpdate, ListData as ListData$3, RestoreVersionData, VersionData, VersionsData } from "./generated/components/types.gen.mjs";
7
+ import { CreateData as CreateData$2, DatasourceEntry, ListData as ListData$4, UpdateData as UpdateData$3 } from "./generated/datasource_entries/types.gen.mjs";
8
+ import { CreateData as CreateData$3, Datasource, ListData as ListData$5, UpdateData as UpdateData$4 } from "./generated/datasources/types.gen.mjs";
9
+ import { CreateData as CreateData$4, InternalTag, ListData as ListData$6, UpdateData as UpdateData$5 } from "./generated/internal_tags/types.gen.mjs";
10
+ import { CreateData as CreateData$5, ListData as ListData$7, Preset, UpdateData as UpdateData$6 } from "./generated/presets/types.gen.mjs";
11
+ import { CreateData as CreateData$6, ListData as ListData$8, Space, UpdateData as UpdateData$7 } from "./generated/spaces/types.gen.mjs";
12
+ import { UpdateMeData, User } from "./generated/users/types.gen.mjs";
13
+ import { Middleware } from "./generated/shared/client/utils.gen.mjs";
14
+ import { Client, ResolvedRequestOptions, RetryOptions } from "./generated/shared/client/types.gen.mjs";
15
+ import { ClientError } from "./error.mjs";
16
+ import { RateLimitConfig } from "./utils/rate-limit.mjs";
17
+ import { createStoriesResource } from "./resources/stories.mjs";
18
+ import { Region } from "@storyblok/region-helper";
19
+ import * as _storyblok_schema0 from "@storyblok/schema";
20
+ import { Block } from "@storyblok/schema";
21
+
22
+ //#region src/client.d.ts
23
+ type ApiResponse<T, ThrowOnError extends boolean = false> = ThrowOnError extends true ? {
24
+ data: T;
25
+ error?: never;
26
+ response: Response;
27
+ request: Request;
28
+ } : {
29
+ data: T;
30
+ error: undefined;
31
+ response: Response;
32
+ request: Request;
33
+ } | {
34
+ data: undefined;
35
+ error: ClientError;
36
+ response: Response;
37
+ request: Request;
38
+ };
39
+ interface RequestConfigOverrides {
40
+ throwOnError?: boolean;
41
+ }
42
+ /**
43
+ * Arbitrary options forwarded to the underlying `fetch()` call.
44
+ *
45
+ * Standard `RequestInit` properties (`cache`, `credentials`, `mode`, …) and
46
+ * non-standard, vendor-specific properties (Next.js `next`, Cloudflare `cf`, …)
47
+ * are both supported.
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * client.stories.get(123, {
52
+ * fetchOptions: {
53
+ * cache: 'no-store',
54
+ * next: { revalidate: 60 },
55
+ * },
56
+ * })
57
+ * ```
58
+ */
59
+ type FetchOptions = Record<string, unknown>;
60
+ interface HttpRequestOptions {
61
+ query?: Record<string, unknown>;
62
+ body?: unknown;
63
+ headers?: Record<string, string>;
64
+ signal?: AbortSignal;
65
+ throwOnError?: RequestConfigOverrides['throwOnError'];
66
+ fetchOptions?: FetchOptions;
67
+ }
68
+ /**
69
+ * Dependencies injected into every resource factory.
70
+ */
71
+ interface MapiResourceDeps<DefaultThrowOnError extends boolean = false> {
72
+ client: Client;
73
+ spaceId?: number;
74
+ wrapRequest: <TData, ThrowOnError extends boolean = DefaultThrowOnError>(fn: () => Promise<unknown>, throwOnError?: ThrowOnError) => Promise<ApiResponse<TData, ThrowOnError>>;
75
+ }
76
+ type TokenConfig = {
77
+ /** Personal access token for authentication. */personalAccessToken: string;
78
+ oauthToken?: never;
79
+ } | {
80
+ personalAccessToken?: never; /** OAuth bearer token for authentication. */
81
+ oauthToken: string;
82
+ } | {
83
+ personalAccessToken?: undefined;
84
+ oauthToken?: undefined;
85
+ };
86
+ type ManagementApiClientConfig<ThrowOnError extends boolean = false> = TokenConfig & {
87
+ /**
88
+ * The Storyblok space ID. Used as the default for space-scoped endpoints.
89
+ * You can also override it per request via `path.space_id`.
90
+ */
91
+ spaceId?: number;
92
+ /**
93
+ * Storyblok region. Determines the base URL.
94
+ * @default 'eu'
95
+ */
96
+ region?: Region;
97
+ /**
98
+ * Override the base URL entirely (e.g. for testing).
99
+ */
100
+ baseUrl?: string;
101
+ /**
102
+ * Additional request headers.
103
+ */
104
+ headers?: Record<string, string>;
105
+ /**
106
+ * Throw on HTTP errors instead of returning them.
107
+ * @default false
108
+ */
109
+ throwOnError?: ThrowOnError;
110
+ /**
111
+ * Retry configuration for failed requests.
112
+ */
113
+ retry?: RetryOptions;
114
+ /**
115
+ * Request timeout in milliseconds.
116
+ * @default 30_000
117
+ */
118
+ timeout?: number;
119
+ /**
120
+ * Preventive rate limiting to avoid hitting the Storyblok Management API rate limits.
121
+ *
122
+ * - `undefined` (default): single bucket at maxConcurrency: 6.
123
+ * - `number`: fixed max concurrent requests per second.
124
+ * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.
125
+ * - `false`: disable rate limiting entirely.
126
+ */
127
+ rateLimit?: RateLimitConfig | number | false;
128
+ };
129
+ declare function buildResources<DefaultThrowOnError extends boolean = false>(deps: MapiResourceDeps<DefaultThrowOnError>, client: Client): {
130
+ assetFolders: {
131
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
132
+ query?: ListData["query"];
133
+ signal?: AbortSignal;
134
+ throwOnError?: ThrowOnError | undefined;
135
+ fetchOptions?: FetchOptions;
136
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
137
+ asset_folders?: Array<AssetFolder>;
138
+ }, ThrowOnError>>;
139
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(assetFolderId: number | string, options?: {
140
+ signal?: AbortSignal;
141
+ throwOnError?: ThrowOnError | undefined;
142
+ fetchOptions?: FetchOptions;
143
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
144
+ asset_folder?: AssetFolder;
145
+ }, ThrowOnError>>;
146
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
147
+ body: CreateData["body"];
148
+ signal?: AbortSignal;
149
+ throwOnError?: ThrowOnError | undefined;
150
+ fetchOptions?: FetchOptions;
151
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
152
+ asset_folder?: AssetFolder;
153
+ }, ThrowOnError>>;
154
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(assetFolderId: number | string, options: {
155
+ body: UpdateData["body"];
156
+ signal?: AbortSignal;
157
+ throwOnError?: ThrowOnError | undefined;
158
+ fetchOptions?: FetchOptions;
159
+ } & SpaceIdPathOverride): Promise<ApiResponse<void, ThrowOnError>>;
160
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(assetFolderId: number | string, options?: {
161
+ query?: DeleteData["query"];
162
+ signal?: AbortSignal;
163
+ throwOnError?: ThrowOnError | undefined;
164
+ fetchOptions?: FetchOptions;
165
+ } & SpaceIdPathOverride): Promise<ApiResponse<void, ThrowOnError>>;
166
+ };
167
+ assets: {
168
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
169
+ query?: ListData$1["query"];
170
+ signal?: AbortSignal;
171
+ throwOnError?: ThrowOnError | undefined;
172
+ fetchOptions?: FetchOptions;
173
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
174
+ assets?: Array<Asset>;
175
+ }, ThrowOnError>>;
176
+ signResponseObject<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
177
+ body: SignResponseObjectData["body"];
178
+ signal?: AbortSignal;
179
+ throwOnError?: ThrowOnError | undefined;
180
+ fetchOptions?: FetchOptions;
181
+ } & SpaceIdPathOverride): Promise<ApiResponse<SignedResponseObject, ThrowOnError>>;
182
+ upload(options: {
183
+ body: AssetUploadRequest;
184
+ file: Blob | ArrayBuffer;
185
+ signal?: AbortSignal;
186
+ fetchOptions?: FetchOptions;
187
+ } & SpaceIdPathOverride): Promise<Asset>;
188
+ create(options: {
189
+ body: AssetCreate;
190
+ file: Blob | ArrayBuffer;
191
+ signal?: AbortSignal;
192
+ fetchOptions?: FetchOptions;
193
+ } & SpaceIdPathOverride): Promise<Asset>;
194
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(assetId: number | string, options?: {
195
+ signal?: AbortSignal;
196
+ throwOnError?: ThrowOnError | undefined;
197
+ fetchOptions?: FetchOptions;
198
+ } & SpaceIdPathOverride): Promise<ApiResponse<Asset, ThrowOnError>>;
199
+ update(assetId: number | string, options: ({
200
+ body: UpdateData$1["body"];
201
+ file?: undefined;
202
+ } | {
203
+ body: AssetUpdateRequest & {
204
+ short_filename: string;
205
+ };
206
+ file: Blob | ArrayBuffer;
207
+ }) & {
208
+ signal?: AbortSignal;
209
+ fetchOptions?: FetchOptions;
210
+ } & SpaceIdPathOverride): Promise<void>;
211
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(assetId: number | string, options?: {
212
+ signal?: AbortSignal;
213
+ throwOnError?: ThrowOnError | undefined;
214
+ fetchOptions?: FetchOptions;
215
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
216
+ asset?: Asset;
217
+ }, ThrowOnError>>;
218
+ finalize<ThrowOnError extends boolean = DefaultThrowOnError>(signedResponseObjectId: string, options?: {
219
+ signal?: AbortSignal;
220
+ throwOnError?: ThrowOnError | undefined;
221
+ fetchOptions?: FetchOptions;
222
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
223
+ message?: string;
224
+ }, ThrowOnError>>;
225
+ deleteMany<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
226
+ body: DeleteManyData["body"];
227
+ signal?: AbortSignal;
228
+ throwOnError?: ThrowOnError | undefined;
229
+ fetchOptions?: FetchOptions;
230
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
231
+ message?: string;
232
+ }, ThrowOnError>>;
233
+ bulkMove<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
234
+ body: BulkMoveData["body"];
235
+ signal?: AbortSignal;
236
+ throwOnError?: ThrowOnError | undefined;
237
+ fetchOptions?: FetchOptions;
238
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
239
+ message?: string;
240
+ }, ThrowOnError>>;
241
+ bulkRestore<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
242
+ body: BulkRestoreData["body"];
243
+ signal?: AbortSignal;
244
+ throwOnError?: ThrowOnError | undefined;
245
+ fetchOptions?: FetchOptions;
246
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
247
+ message?: string;
248
+ }, ThrowOnError>>;
249
+ };
250
+ componentFolders: {
251
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
252
+ query?: ListData$2["query"];
253
+ signal?: AbortSignal;
254
+ throwOnError?: ThrowOnError | undefined;
255
+ fetchOptions?: FetchOptions;
256
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
257
+ component_groups: Array<ComponentFolder>;
258
+ }, ThrowOnError>>;
259
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(componentGroupId: number | string, options?: {
260
+ signal?: AbortSignal;
261
+ throwOnError?: ThrowOnError | undefined;
262
+ fetchOptions?: FetchOptions;
263
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
264
+ component_group?: ComponentFolder;
265
+ }, ThrowOnError>>;
266
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
267
+ body: CreateData$1["body"];
268
+ signal?: AbortSignal;
269
+ throwOnError?: ThrowOnError | undefined;
270
+ fetchOptions?: FetchOptions;
271
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
272
+ component_group?: ComponentFolder;
273
+ }, ThrowOnError>>;
274
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(componentGroupId: number | string, options: {
275
+ body: UpdateData$2["body"];
276
+ signal?: AbortSignal;
277
+ throwOnError?: ThrowOnError | undefined;
278
+ fetchOptions?: FetchOptions;
279
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
280
+ component_group?: ComponentFolder;
281
+ }, ThrowOnError>>;
282
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(componentGroupId: number | string, options?: {
283
+ signal?: AbortSignal;
284
+ throwOnError?: ThrowOnError | undefined;
285
+ fetchOptions?: FetchOptions;
286
+ } & SpaceIdPathOverride): Promise<ApiResponse<void, ThrowOnError>>;
287
+ };
288
+ components: {
289
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
290
+ query?: ListData$3["query"];
291
+ signal?: AbortSignal;
292
+ throwOnError?: ThrowOnError | undefined;
293
+ fetchOptions?: FetchOptions;
294
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
295
+ components?: Array<Component>;
296
+ }, ThrowOnError>>;
297
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(componentId: number | string, options?: {
298
+ signal?: AbortSignal;
299
+ throwOnError?: ThrowOnError | undefined;
300
+ fetchOptions?: FetchOptions;
301
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
302
+ component?: Component;
303
+ }, ThrowOnError>>;
304
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
305
+ body: Omit<{
306
+ component?: ComponentCreate;
307
+ }, "component"> & {
308
+ component?: _storyblok_schema0.ComponentCreate;
309
+ };
310
+ signal?: AbortSignal;
311
+ throwOnError?: ThrowOnError | undefined;
312
+ fetchOptions?: FetchOptions;
313
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
314
+ component?: Component;
315
+ }, ThrowOnError>>;
316
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(componentId: number | string, options: {
317
+ body: Omit<{
318
+ component?: ComponentUpdate;
319
+ update_content?: boolean;
320
+ }, "component"> & {
321
+ component?: _storyblok_schema0.ComponentUpdate;
322
+ };
323
+ signal?: AbortSignal;
324
+ throwOnError?: ThrowOnError | undefined;
325
+ fetchOptions?: FetchOptions;
326
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
327
+ component?: Component;
328
+ }, ThrowOnError>>;
329
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(componentId: number | string, options?: {
330
+ signal?: AbortSignal;
331
+ throwOnError?: ThrowOnError | undefined;
332
+ fetchOptions?: FetchOptions;
333
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
334
+ component?: Component;
335
+ }, ThrowOnError>>;
336
+ restore<ThrowOnError extends boolean = DefaultThrowOnError>(componentId: number | string, options?: {
337
+ signal?: AbortSignal;
338
+ throwOnError?: ThrowOnError | undefined;
339
+ fetchOptions?: FetchOptions;
340
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
341
+ component?: Component;
342
+ }, ThrowOnError>>;
343
+ versions<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
344
+ query?: VersionsData["query"];
345
+ signal?: AbortSignal;
346
+ throwOnError?: ThrowOnError | undefined;
347
+ fetchOptions?: FetchOptions;
348
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
349
+ versions?: Array<{
350
+ id?: number;
351
+ event?: string;
352
+ created_at?: string;
353
+ author_id?: number;
354
+ item_id?: number;
355
+ author?: string;
356
+ is_draft?: boolean;
357
+ }>;
358
+ }, ThrowOnError>>;
359
+ version<ThrowOnError extends boolean = DefaultThrowOnError>(componentId: number | string, versionId: VersionData["path"]["version_id"], options?: {
360
+ signal?: AbortSignal;
361
+ throwOnError?: ThrowOnError | undefined;
362
+ fetchOptions?: FetchOptions;
363
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
364
+ component_version?: {
365
+ schema?: {
366
+ [key: string]: unknown;
367
+ };
368
+ };
369
+ }, ThrowOnError>>;
370
+ restoreVersion<ThrowOnError extends boolean = DefaultThrowOnError>(versionId: RestoreVersionData["path"]["version_id"], options: {
371
+ body: RestoreVersionData["body"];
372
+ signal?: AbortSignal;
373
+ throwOnError?: ThrowOnError | undefined;
374
+ fetchOptions?: FetchOptions;
375
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
376
+ component?: Component;
377
+ }, ThrowOnError>>;
378
+ };
379
+ datasourceEntries: {
380
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
381
+ query?: ListData$4["query"];
382
+ signal?: AbortSignal;
383
+ throwOnError?: ThrowOnError | undefined;
384
+ fetchOptions?: FetchOptions;
385
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
386
+ datasource_entries?: Array<DatasourceEntry>;
387
+ }, ThrowOnError>>;
388
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(datasourceEntryId: number, options?: {
389
+ signal?: AbortSignal;
390
+ throwOnError?: ThrowOnError | undefined;
391
+ fetchOptions?: FetchOptions;
392
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
393
+ datasource_entry?: DatasourceEntry;
394
+ }, ThrowOnError>>;
395
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
396
+ body: CreateData$2["body"];
397
+ signal?: AbortSignal;
398
+ throwOnError?: ThrowOnError | undefined;
399
+ fetchOptions?: FetchOptions;
400
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
401
+ datasource_entry?: DatasourceEntry;
402
+ }, ThrowOnError>>;
403
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(datasourceEntryId: number, options: {
404
+ body: UpdateData$3["body"];
405
+ signal?: AbortSignal;
406
+ throwOnError?: ThrowOnError | undefined;
407
+ fetchOptions?: FetchOptions;
408
+ } & SpaceIdPathOverride): Promise<ApiResponse<void, ThrowOnError>>;
409
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(datasourceEntryId: number, options?: {
410
+ signal?: AbortSignal;
411
+ throwOnError?: ThrowOnError | undefined;
412
+ fetchOptions?: FetchOptions;
413
+ } & SpaceIdPathOverride): Promise<ApiResponse<void, ThrowOnError>>;
414
+ };
415
+ datasources: {
416
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
417
+ query?: ListData$5["query"];
418
+ signal?: AbortSignal;
419
+ throwOnError?: ThrowOnError | undefined;
420
+ fetchOptions?: FetchOptions;
421
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
422
+ datasources?: Array<Datasource>;
423
+ }, ThrowOnError>>;
424
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(datasourceId: number, options?: {
425
+ signal?: AbortSignal;
426
+ throwOnError?: ThrowOnError | undefined;
427
+ fetchOptions?: FetchOptions;
428
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
429
+ datasource?: Datasource;
430
+ }, ThrowOnError>>;
431
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
432
+ body: CreateData$3["body"];
433
+ signal?: AbortSignal;
434
+ throwOnError?: ThrowOnError | undefined;
435
+ fetchOptions?: FetchOptions;
436
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
437
+ datasource?: Datasource;
438
+ }, ThrowOnError>>;
439
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(datasourceId: number, options: {
440
+ body: UpdateData$4["body"];
441
+ signal?: AbortSignal;
442
+ throwOnError?: ThrowOnError | undefined;
443
+ fetchOptions?: FetchOptions;
444
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
445
+ datasource?: Datasource;
446
+ }, ThrowOnError>>;
447
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(datasourceId: number, options?: {
448
+ signal?: AbortSignal;
449
+ throwOnError?: ThrowOnError | undefined;
450
+ fetchOptions?: FetchOptions;
451
+ } & SpaceIdPathOverride): Promise<ApiResponse<void, ThrowOnError>>;
452
+ };
453
+ delete: <TData = unknown>(path: string, options?: HttpRequestOptions) => Promise<ApiResponse<TData, DefaultThrowOnError>>;
454
+ get: <TData = unknown>(path: string, options?: HttpRequestOptions) => Promise<ApiResponse<TData, DefaultThrowOnError>>;
455
+ patch: <TData = unknown>(path: string, options?: HttpRequestOptions) => Promise<ApiResponse<TData, DefaultThrowOnError>>;
456
+ interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions>;
457
+ internalTags: {
458
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
459
+ query?: ListData$6["query"];
460
+ signal?: AbortSignal;
461
+ throwOnError?: ThrowOnError | undefined;
462
+ fetchOptions?: FetchOptions;
463
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
464
+ internal_tags?: Array<InternalTag>;
465
+ }, ThrowOnError>>;
466
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
467
+ body: CreateData$4["body"];
468
+ signal?: AbortSignal;
469
+ throwOnError?: ThrowOnError | undefined;
470
+ fetchOptions?: FetchOptions;
471
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
472
+ internal_tag?: InternalTag;
473
+ }, ThrowOnError>>;
474
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(internalTagId: number, options: {
475
+ body: UpdateData$5["body"];
476
+ signal?: AbortSignal;
477
+ throwOnError?: ThrowOnError | undefined;
478
+ fetchOptions?: FetchOptions;
479
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
480
+ internal_tag?: InternalTag;
481
+ }, ThrowOnError>>;
482
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(internalTagId: number, options?: {
483
+ signal?: AbortSignal;
484
+ throwOnError?: ThrowOnError | undefined;
485
+ fetchOptions?: FetchOptions;
486
+ } & SpaceIdPathOverride): Promise<ApiResponse<void, ThrowOnError>>;
487
+ };
488
+ post: <TData = unknown>(path: string, options?: HttpRequestOptions) => Promise<ApiResponse<TData, DefaultThrowOnError>>;
489
+ presets: {
490
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
491
+ query?: ListData$7["query"];
492
+ signal?: AbortSignal;
493
+ throwOnError?: ThrowOnError | undefined;
494
+ fetchOptions?: FetchOptions;
495
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
496
+ presets: Array<Preset>;
497
+ }, ThrowOnError>>;
498
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(presetId: number | string, options?: {
499
+ signal?: AbortSignal;
500
+ throwOnError?: ThrowOnError | undefined;
501
+ fetchOptions?: FetchOptions;
502
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
503
+ preset?: Preset;
504
+ }, ThrowOnError>>;
505
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
506
+ body: CreateData$5["body"];
507
+ signal?: AbortSignal;
508
+ throwOnError?: ThrowOnError | undefined;
509
+ fetchOptions?: FetchOptions;
510
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
511
+ preset?: Preset;
512
+ }, ThrowOnError>>;
513
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(presetId: number | string, options: {
514
+ body: UpdateData$6["body"];
515
+ signal?: AbortSignal;
516
+ throwOnError?: ThrowOnError | undefined;
517
+ fetchOptions?: FetchOptions;
518
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
519
+ preset?: Preset;
520
+ }, ThrowOnError>>;
521
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(presetId: number | string, options?: {
522
+ signal?: AbortSignal;
523
+ throwOnError?: ThrowOnError | undefined;
524
+ fetchOptions?: FetchOptions;
525
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
526
+ preset?: Preset;
527
+ }, ThrowOnError>>;
528
+ };
529
+ put: <TData = unknown>(path: string, options?: HttpRequestOptions) => Promise<ApiResponse<TData, DefaultThrowOnError>>;
530
+ spaces: {
531
+ list<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
532
+ query?: ListData$8["query"];
533
+ signal?: AbortSignal;
534
+ throwOnError?: ThrowOnError | undefined;
535
+ fetchOptions?: FetchOptions;
536
+ }): Promise<ApiResponse<{
537
+ spaces?: Array<Space>;
538
+ }, ThrowOnError>>;
539
+ create<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
540
+ body: CreateData$6["body"];
541
+ signal?: AbortSignal;
542
+ throwOnError?: ThrowOnError | undefined;
543
+ fetchOptions?: FetchOptions;
544
+ }): Promise<ApiResponse<{
545
+ space?: Space;
546
+ }, ThrowOnError>>;
547
+ get<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
548
+ signal?: AbortSignal;
549
+ throwOnError?: ThrowOnError | undefined;
550
+ fetchOptions?: FetchOptions;
551
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
552
+ space?: Space;
553
+ }, ThrowOnError>>;
554
+ update<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
555
+ body: UpdateData$7["body"];
556
+ signal?: AbortSignal;
557
+ throwOnError?: ThrowOnError | undefined;
558
+ fetchOptions?: FetchOptions;
559
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
560
+ space?: Space;
561
+ }, ThrowOnError>>;
562
+ delete<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
563
+ signal?: AbortSignal;
564
+ throwOnError?: ThrowOnError | undefined;
565
+ fetchOptions?: FetchOptions;
566
+ } & SpaceIdPathOverride): Promise<ApiResponse<{
567
+ space?: Space;
568
+ }, ThrowOnError>>;
569
+ };
570
+ users: {
571
+ me<ThrowOnError extends boolean = DefaultThrowOnError>(options?: {
572
+ signal?: AbortSignal;
573
+ throwOnError?: ThrowOnError | undefined;
574
+ fetchOptions?: FetchOptions;
575
+ }): Promise<ApiResponse<{
576
+ user?: User;
577
+ }, ThrowOnError>>;
578
+ updateMe<ThrowOnError extends boolean = DefaultThrowOnError>(options: {
579
+ body: UpdateMeData["body"];
580
+ signal?: AbortSignal;
581
+ throwOnError?: ThrowOnError | undefined;
582
+ fetchOptions?: FetchOptions;
583
+ }): Promise<ApiResponse<{
584
+ user?: User;
585
+ }, ThrowOnError>>;
586
+ };
587
+ };
588
+ type StoryblokTypesConfig = {
589
+ components: Block;
590
+ } | {
591
+ blocks: Block;
592
+ };
593
+ type ResolveComponents<T extends StoryblokTypesConfig> = T extends {
594
+ components: infer C extends Block;
595
+ } ? C : T extends {
596
+ blocks: infer B extends Block;
597
+ } ? B : never;
598
+ /**
599
+ * The return type of `createManagementApiClient`, parameterised by `TComponents` so that
600
+ * `.stories` methods can narrow story content types without touching the runtime object.
601
+ */
602
+ type ManagementApiClient<TComponents extends Block = Block, DefaultThrowOnError extends boolean = false> = ReturnType<typeof buildResources<DefaultThrowOnError>> & {
603
+ stories: ReturnType<typeof createStoriesResource<TComponents, DefaultThrowOnError>>;
604
+ /**
605
+ * Returns the same client instance cast to a version that narrows story content
606
+ * to the provided component types. No runtime cost — type parameter is erased.
607
+ *
608
+ * Accepts either `{ components: ... }` or `{ blocks: ... }` — the latter matches the
609
+ * `Schema` type produced by `@storyblok/schema`'s `InferSchema`.
610
+ *
611
+ * @example
612
+ * ```ts
613
+ * import type { Schema } from './schema';
614
+ *
615
+ * const client = createManagementApiClient({ personalAccessToken: '...' })
616
+ * .withTypes<Schema>();
617
+ * ```
618
+ */
619
+ withTypes: <T extends StoryblokTypesConfig>() => ManagementApiClient<ResolveComponents<T>, DefaultThrowOnError>;
620
+ };
621
+ declare const createManagementApiClient: <DefaultThrowOnError extends boolean = false>(config: ManagementApiClientConfig<DefaultThrowOnError>) => ManagementApiClient<Block, DefaultThrowOnError>;
622
+ //#endregion
623
+ export { ApiResponse, FetchOptions, HttpRequestOptions, ManagementApiClient, ManagementApiClientConfig, MapiResourceDeps, RequestConfigOverrides, createManagementApiClient };
624
+ //# sourceMappingURL=client.d.mts.map