@storyblok/api-client 0.3.1 → 1.0.0-alpha.2

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 (216) hide show
  1. package/README.md +3 -1
  2. package/dist/client.cjs +179 -0
  3. package/dist/client.cjs.map +1 -0
  4. package/dist/client.d.cts +567 -0
  5. package/dist/client.d.mts +567 -0
  6. package/dist/client.mjs +178 -0
  7. package/dist/client.mjs.map +1 -0
  8. package/dist/error.cjs.map +1 -1
  9. package/dist/error.d.cts +13 -2
  10. package/dist/error.d.mts +13 -2
  11. package/dist/error.mjs.map +1 -1
  12. package/dist/generated/capi/_internal.gen.d.cts +120 -0
  13. package/dist/generated/capi/_internal.gen.d.mts +120 -0
  14. package/dist/generated/{shared → capi}/client/client.gen.cjs +1 -1
  15. package/dist/generated/capi/client/client.gen.cjs.map +1 -0
  16. package/dist/generated/capi/client/client.gen.d.mts +1 -0
  17. package/dist/generated/{shared → capi}/client/client.gen.mjs +1 -1
  18. package/dist/generated/capi/client/client.gen.mjs.map +1 -0
  19. package/dist/generated/capi/client/index.d.mts +3 -0
  20. package/dist/generated/{shared → capi}/client/types.gen.d.cts +40 -4
  21. package/dist/generated/{shared → capi}/client/types.gen.d.mts +40 -4
  22. package/dist/generated/{shared → capi}/client/utils.gen.cjs +1 -1
  23. package/dist/generated/capi/client/utils.gen.cjs.map +1 -0
  24. package/dist/generated/{shared → capi}/client/utils.gen.d.cts +1 -1
  25. package/dist/generated/{shared → capi}/client/utils.gen.d.mts +1 -1
  26. package/dist/generated/{shared → capi}/client/utils.gen.mjs +1 -1
  27. package/dist/generated/capi/client/utils.gen.mjs.map +1 -0
  28. package/dist/generated/capi/client.gen.cjs +10 -0
  29. package/dist/generated/capi/client.gen.cjs.map +1 -0
  30. package/dist/generated/capi/client.gen.mjs +10 -0
  31. package/dist/generated/capi/client.gen.mjs.map +1 -0
  32. package/dist/generated/{shared → capi}/core/auth.gen.cjs +1 -1
  33. package/dist/generated/capi/core/auth.gen.cjs.map +1 -0
  34. package/dist/generated/{shared → capi}/core/auth.gen.d.cts +1 -1
  35. package/dist/generated/{shared → capi}/core/auth.gen.d.mts +1 -1
  36. package/dist/generated/{shared → capi}/core/auth.gen.mjs +1 -1
  37. package/dist/generated/capi/core/auth.gen.mjs.map +1 -0
  38. package/dist/generated/{shared → capi}/core/bodySerializer.gen.cjs +1 -1
  39. package/dist/generated/capi/core/bodySerializer.gen.cjs.map +1 -0
  40. package/dist/generated/{shared → capi}/core/bodySerializer.gen.d.cts +1 -1
  41. package/dist/generated/{shared → capi}/core/bodySerializer.gen.d.mts +1 -1
  42. package/dist/generated/{shared → capi}/core/bodySerializer.gen.mjs +1 -1
  43. package/dist/generated/capi/core/bodySerializer.gen.mjs.map +1 -0
  44. package/dist/generated/{shared → capi}/core/params.gen.cjs +1 -1
  45. package/dist/generated/capi/core/params.gen.cjs.map +1 -0
  46. package/dist/generated/{shared → capi}/core/params.gen.mjs +1 -1
  47. package/dist/generated/capi/core/params.gen.mjs.map +1 -0
  48. package/dist/generated/{shared → capi}/core/pathSerializer.gen.cjs +1 -1
  49. package/dist/generated/capi/core/pathSerializer.gen.cjs.map +1 -0
  50. package/dist/generated/{shared → capi}/core/pathSerializer.gen.d.cts +1 -1
  51. package/dist/generated/{shared → capi}/core/pathSerializer.gen.d.mts +1 -1
  52. package/dist/generated/{shared → capi}/core/pathSerializer.gen.mjs +1 -1
  53. package/dist/generated/capi/core/pathSerializer.gen.mjs.map +1 -0
  54. package/dist/generated/{shared → capi}/core/serverSentEvents.gen.cjs +1 -1
  55. package/dist/generated/capi/core/serverSentEvents.gen.cjs.map +1 -0
  56. package/dist/generated/{shared → capi}/core/serverSentEvents.gen.d.cts +5 -2
  57. package/dist/generated/{shared → capi}/core/serverSentEvents.gen.d.mts +5 -2
  58. package/dist/generated/{shared → capi}/core/serverSentEvents.gen.mjs +1 -1
  59. package/dist/generated/capi/core/serverSentEvents.gen.mjs.map +1 -0
  60. package/dist/generated/{shared → capi}/core/types.gen.d.cts +15 -2
  61. package/dist/generated/{shared → capi}/core/types.gen.d.mts +15 -2
  62. package/dist/generated/{shared → capi}/core/utils.gen.cjs +1 -1
  63. package/dist/generated/capi/core/utils.gen.cjs.map +1 -0
  64. package/dist/generated/{shared → capi}/core/utils.gen.mjs +1 -1
  65. package/dist/generated/capi/core/utils.gen.mjs.map +1 -0
  66. package/dist/generated/capi/sdk.gen.cjs +141 -0
  67. package/dist/generated/capi/sdk.gen.cjs.map +1 -0
  68. package/dist/generated/capi/sdk.gen.mjs +133 -0
  69. package/dist/generated/capi/sdk.gen.mjs.map +1 -0
  70. package/dist/generated/capi/types-aliased.gen.d.cts +181 -0
  71. package/dist/generated/capi/types-aliased.gen.d.mts +181 -0
  72. package/dist/generated/capi/types.gen.d.cts +919 -0
  73. package/dist/generated/capi/types.gen.d.mts +919 -0
  74. package/dist/generated/mapi/_internal.gen.d.cts +146 -0
  75. package/dist/generated/mapi/_internal.gen.d.mts +146 -0
  76. package/dist/generated/mapi/types.gen.d.cts +293 -0
  77. package/dist/generated/mapi/types.gen.d.mts +293 -0
  78. package/dist/generated/overlay/_internal.gen.d.cts +831 -0
  79. package/dist/generated/overlay/_internal.gen.d.mts +831 -0
  80. package/dist/generated/types/_utils.d.cts +7 -0
  81. package/dist/generated/types/_utils.d.mts +7 -0
  82. package/dist/generated/types/block.d.cts +29 -0
  83. package/dist/generated/types/block.d.mts +29 -0
  84. package/dist/generated/types/field.d.cts +64 -0
  85. package/dist/generated/types/field.d.mts +64 -0
  86. package/dist/generated/types/story.d.cts +19 -0
  87. package/dist/generated/types/story.d.mts +19 -0
  88. package/dist/index.cjs +2 -154
  89. package/dist/index.d.cts +8 -184
  90. package/dist/index.d.mts +8 -184
  91. package/dist/index.mjs +2 -151
  92. package/dist/resources/datasource-entries.cjs +2 -2
  93. package/dist/resources/datasource-entries.cjs.map +1 -1
  94. package/dist/resources/datasource-entries.mjs +2 -2
  95. package/dist/resources/datasource-entries.mjs.map +1 -1
  96. package/dist/resources/datasources.cjs +4 -4
  97. package/dist/resources/datasources.cjs.map +1 -1
  98. package/dist/resources/datasources.mjs +4 -4
  99. package/dist/resources/datasources.mjs.map +1 -1
  100. package/dist/resources/experiments.cjs +26 -0
  101. package/dist/resources/experiments.cjs.map +1 -0
  102. package/dist/resources/experiments.mjs +26 -0
  103. package/dist/resources/experiments.mjs.map +1 -0
  104. package/dist/resources/links.cjs +2 -2
  105. package/dist/resources/links.cjs.map +1 -1
  106. package/dist/resources/links.mjs +2 -2
  107. package/dist/resources/links.mjs.map +1 -1
  108. package/dist/resources/spaces.cjs +4 -4
  109. package/dist/resources/spaces.cjs.map +1 -1
  110. package/dist/resources/spaces.mjs +4 -4
  111. package/dist/resources/spaces.mjs.map +1 -1
  112. package/dist/resources/stories.cjs +16 -12
  113. package/dist/resources/stories.cjs.map +1 -1
  114. package/dist/resources/stories.d.cts +82 -4
  115. package/dist/resources/stories.d.mts +82 -4
  116. package/dist/resources/stories.mjs +16 -12
  117. package/dist/resources/stories.mjs.map +1 -1
  118. package/dist/resources/tags.cjs +2 -2
  119. package/dist/resources/tags.cjs.map +1 -1
  120. package/dist/resources/tags.mjs +2 -2
  121. package/dist/resources/tags.mjs.map +1 -1
  122. package/dist/utils/fetch-rel-uuids.cjs +2 -2
  123. package/dist/utils/fetch-rel-uuids.cjs.map +1 -1
  124. package/dist/utils/fetch-rel-uuids.mjs +2 -2
  125. package/dist/utils/fetch-rel-uuids.mjs.map +1 -1
  126. package/dist/utils/inline-relations.cjs.map +1 -1
  127. package/dist/utils/inline-relations.mjs.map +1 -1
  128. package/dist/utils/rate-limit.cjs +9 -5
  129. package/dist/utils/rate-limit.cjs.map +1 -1
  130. package/dist/utils/rate-limit.d.cts +4 -18
  131. package/dist/utils/rate-limit.d.mts +4 -18
  132. package/dist/utils/rate-limit.mjs +10 -4
  133. package/dist/utils/rate-limit.mjs.map +1 -1
  134. package/package.json +16 -12
  135. package/dist/generated/datasource_entries/client.gen.cjs +0 -10
  136. package/dist/generated/datasource_entries/client.gen.cjs.map +0 -1
  137. package/dist/generated/datasource_entries/client.gen.mjs +0 -10
  138. package/dist/generated/datasource_entries/client.gen.mjs.map +0 -1
  139. package/dist/generated/datasource_entries/sdk.gen.cjs +0 -21
  140. package/dist/generated/datasource_entries/sdk.gen.cjs.map +0 -1
  141. package/dist/generated/datasource_entries/sdk.gen.mjs +0 -21
  142. package/dist/generated/datasource_entries/sdk.gen.mjs.map +0 -1
  143. package/dist/generated/datasource_entries/types.gen.d.cts +0 -67
  144. package/dist/generated/datasource_entries/types.gen.d.mts +0 -67
  145. package/dist/generated/datasources/client.gen.cjs +0 -10
  146. package/dist/generated/datasources/client.gen.cjs.map +0 -1
  147. package/dist/generated/datasources/client.gen.mjs +0 -10
  148. package/dist/generated/datasources/client.gen.mjs.map +0 -1
  149. package/dist/generated/datasources/sdk.gen.cjs +0 -36
  150. package/dist/generated/datasources/sdk.gen.cjs.map +0 -1
  151. package/dist/generated/datasources/sdk.gen.mjs +0 -35
  152. package/dist/generated/datasources/sdk.gen.mjs.map +0 -1
  153. package/dist/generated/datasources/types.gen.d.cts +0 -109
  154. package/dist/generated/datasources/types.gen.d.mts +0 -109
  155. package/dist/generated/links/client.gen.cjs +0 -10
  156. package/dist/generated/links/client.gen.cjs.map +0 -1
  157. package/dist/generated/links/client.gen.mjs +0 -10
  158. package/dist/generated/links/client.gen.mjs.map +0 -1
  159. package/dist/generated/links/sdk.gen.cjs +0 -21
  160. package/dist/generated/links/sdk.gen.cjs.map +0 -1
  161. package/dist/generated/links/sdk.gen.mjs +0 -21
  162. package/dist/generated/links/sdk.gen.mjs.map +0 -1
  163. package/dist/generated/links/types.gen.d.cts +0 -142
  164. package/dist/generated/links/types.gen.d.mts +0 -142
  165. package/dist/generated/shared/client/client.gen.cjs.map +0 -1
  166. package/dist/generated/shared/client/client.gen.mjs.map +0 -1
  167. package/dist/generated/shared/client/utils.gen.cjs.map +0 -1
  168. package/dist/generated/shared/client/utils.gen.mjs.map +0 -1
  169. package/dist/generated/shared/core/auth.gen.cjs.map +0 -1
  170. package/dist/generated/shared/core/auth.gen.mjs.map +0 -1
  171. package/dist/generated/shared/core/bodySerializer.gen.cjs.map +0 -1
  172. package/dist/generated/shared/core/bodySerializer.gen.mjs.map +0 -1
  173. package/dist/generated/shared/core/params.gen.cjs.map +0 -1
  174. package/dist/generated/shared/core/params.gen.mjs.map +0 -1
  175. package/dist/generated/shared/core/pathSerializer.gen.cjs.map +0 -1
  176. package/dist/generated/shared/core/pathSerializer.gen.mjs.map +0 -1
  177. package/dist/generated/shared/core/serverSentEvents.gen.cjs.map +0 -1
  178. package/dist/generated/shared/core/serverSentEvents.gen.mjs.map +0 -1
  179. package/dist/generated/shared/core/utils.gen.cjs.map +0 -1
  180. package/dist/generated/shared/core/utils.gen.mjs.map +0 -1
  181. package/dist/generated/spaces/client.gen.cjs +0 -10
  182. package/dist/generated/spaces/client.gen.cjs.map +0 -1
  183. package/dist/generated/spaces/client.gen.mjs +0 -10
  184. package/dist/generated/spaces/client.gen.mjs.map +0 -1
  185. package/dist/generated/spaces/sdk.gen.cjs +0 -21
  186. package/dist/generated/spaces/sdk.gen.cjs.map +0 -1
  187. package/dist/generated/spaces/sdk.gen.mjs +0 -21
  188. package/dist/generated/spaces/sdk.gen.mjs.map +0 -1
  189. package/dist/generated/spaces/types.gen.d.cts +0 -34
  190. package/dist/generated/spaces/types.gen.d.mts +0 -34
  191. package/dist/generated/stories/client.gen.cjs +0 -10
  192. package/dist/generated/stories/client.gen.cjs.map +0 -1
  193. package/dist/generated/stories/client.gen.mjs +0 -10
  194. package/dist/generated/stories/client.gen.mjs.map +0 -1
  195. package/dist/generated/stories/sdk.gen.cjs +0 -36
  196. package/dist/generated/stories/sdk.gen.cjs.map +0 -1
  197. package/dist/generated/stories/sdk.gen.mjs +0 -35
  198. package/dist/generated/stories/sdk.gen.mjs.map +0 -1
  199. package/dist/generated/stories/types.gen.d.cts +0 -544
  200. package/dist/generated/stories/types.gen.d.mts +0 -544
  201. package/dist/generated/tags/client.gen.cjs +0 -10
  202. package/dist/generated/tags/client.gen.cjs.map +0 -1
  203. package/dist/generated/tags/client.gen.mjs +0 -10
  204. package/dist/generated/tags/client.gen.mjs.map +0 -1
  205. package/dist/generated/tags/sdk.gen.cjs +0 -21
  206. package/dist/generated/tags/sdk.gen.cjs.map +0 -1
  207. package/dist/generated/tags/sdk.gen.mjs +0 -21
  208. package/dist/generated/tags/sdk.gen.mjs.map +0 -1
  209. package/dist/generated/tags/types.gen.d.cts +0 -44
  210. package/dist/generated/tags/types.gen.d.mts +0 -44
  211. package/dist/index.cjs.map +0 -1
  212. package/dist/index.mjs.map +0 -1
  213. package/dist/types.d.cts +0 -37
  214. package/dist/types.d.mts +0 -37
  215. /package/dist/generated/{shared → capi}/client/index.cjs +0 -0
  216. /package/dist/generated/{shared → capi}/client/index.mjs +0 -0
@@ -0,0 +1,567 @@
1
+ import { CdnExperiment, Datasource, DatasourceEntry, GetDatasourceByIdData, GetSpaceData, Link, LinkWithFullSlug, ListCdnExperimentsV2Data, ListDatasourceEntriesData, ListDatasourcesData, ListLinksData, ListTagsData, PublicSpace, Story, Tag } from "./generated/capi/types.gen.cjs";
2
+ import { Middleware } from "./generated/capi/client/utils.gen.cjs";
3
+ import { Client, RequestOptions, ResolvedRequestOptions } from "./generated/capi/client/types.gen.cjs";
4
+ import { StoryAlternate } from "./generated/capi/_internal.gen.cjs";
5
+ import { AssetFieldValueRoot, BlockContentRoot } from "./generated/overlay/_internal.gen.cjs";
6
+ import { CacheProvider, CacheStrategy, CacheStrategyHandler } from "./utils/cache.cjs";
7
+ import { ClientError } from "./error.cjs";
8
+ import { RateLimitConfig, ThrottleManager } from "./utils/rate-limit.cjs";
9
+ import { Block } from "./generated/types/block.cjs";
10
+ import { StoryWithInlinedRelations, createStoriesResource } from "./resources/stories.cjs";
11
+ import { RetryOptions } from "ky";
12
+ import { Region } from "@storyblok/region-helper";
13
+
14
+ //#region src/client.d.ts
15
+ type ApiResponse<Data = unknown, ThrowOnError extends boolean = false> = ThrowOnError extends true ? {
16
+ data: Data;
17
+ error?: never;
18
+ response: Response;
19
+ request: Request;
20
+ } : {
21
+ data?: Data;
22
+ error?: ClientError;
23
+ response: Response;
24
+ request: Request;
25
+ };
26
+ type HttpRequestOptions = Omit<RequestOptions, 'method' | 'security' | 'url'>;
27
+ type HttpRequestMethod = <TData = unknown>(path: string, options?: HttpRequestOptions) => Promise<ApiResponse<TData>>;
28
+ /**
29
+ * Arbitrary options forwarded to the underlying `fetch()` call.
30
+ *
31
+ * Standard `RequestInit` properties (`cache`, `credentials`, `mode`, …) and
32
+ * non-standard, vendor-specific properties (Next.js `next`, Cloudflare `cf`, …)
33
+ * are both supported.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * client.stories.get('home', {
38
+ * fetchOptions: {
39
+ * cache: 'no-store',
40
+ * next: { revalidate: 60, tags: ['home'] },
41
+ * },
42
+ * })
43
+ * ```
44
+ */
45
+ type FetchOptions = Record<string, unknown>;
46
+ interface RequestWithCacheOptions {
47
+ /** Prefix added to the cache key to namespace entries (e.g. `'inline'`). */
48
+ cacheKeyPrefix?: string;
49
+ }
50
+ interface ResourceDeps<DefaultThrowOnError extends boolean = false> {
51
+ client: Client;
52
+ requestWithCache: <TData, ThrowOnError extends boolean = DefaultThrowOnError>(method: 'GET', path: string, rawQuery: Record<string, unknown>, fetchFn: (query: Record<string, unknown>) => Promise<ApiResponse<TData, ThrowOnError>>, options?: RequestWithCacheOptions) => Promise<ApiResponse<TData, ThrowOnError>>;
53
+ asApiResponse: <TData, ThrowOnError extends boolean = DefaultThrowOnError>(p: Promise<unknown>) => Promise<ApiResponse<TData, ThrowOnError>>;
54
+ throttleManager: ThrottleManager;
55
+ }
56
+ /**
57
+ * Cache configuration.
58
+ *
59
+ * **Note:** Requests with `version: 'draft'` always bypass the cache regardless
60
+ * of the configured strategy. Only published content is cached.
61
+ */
62
+ interface CacheConfig {
63
+ /** Custom cache provider. Defaults to an in-memory LRU cache (1 000 entries). */
64
+ provider?: CacheProvider;
65
+ /** Cache strategy for published requests. @default 'cache-first' */
66
+ strategy?: CacheStrategy | CacheStrategyHandler;
67
+ /** Time-to-live in milliseconds for cached entries. @default 60_000 */
68
+ ttlMs?: number;
69
+ /**
70
+ * Controls how the `cv` (content version) query parameter is managed.
71
+ *
72
+ * - `'auto'` (default): automatically attach the tracked `cv` to
73
+ * subsequent published requests for cache busting.
74
+ * - `'manual'`: do not attach `cv` to outgoing requests. The client still
75
+ * tracks cv internally for cache invalidation (flushing when cv changes),
76
+ * but the query parameter is not sent. Useful for SSR with edge caching
77
+ * where stable URLs are required.
78
+ */
79
+ cv?: 'auto' | 'manual';
80
+ /**
81
+ * Controls when the cache is flushed on cv change.
82
+ *
83
+ * - `'auto'` (default): automatically flush the cache whenever the API returns a new cv value.
84
+ * - `'manual'`: never auto-flush; call `client.flushCache()` explicitly (e.g. on webhook trigger).
85
+ */
86
+ flush?: 'auto' | 'manual';
87
+ /**
88
+ * Called when SWR background revalidation fails.
89
+ * Only relevant when `strategy` is `'swr'`.
90
+ * @default console.warn
91
+ */
92
+ onRevalidationError?: (error: unknown) => void;
93
+ }
94
+ interface ContentApiClientConfig<ThrowOnError extends boolean = false, InlineRelations extends boolean = false> {
95
+ accessToken: string;
96
+ region?: Region;
97
+ baseUrl?: string;
98
+ headers?: Record<string, string>;
99
+ throwOnError?: ThrowOnError;
100
+ cache?: CacheConfig;
101
+ inlineRelations?: InlineRelations;
102
+ retry?: RetryOptions;
103
+ /**
104
+ * Request timeout in milliseconds.
105
+ * @default 30_000
106
+ */
107
+ timeout?: number;
108
+ /**
109
+ * Preventive rate limiting to avoid hitting the Storyblok CDN rate limits.
110
+ *
111
+ * - `undefined` (default): auto-detect tier from path + `per_page` query param.
112
+ * - `number`: fixed max concurrent requests per second (single queue).
113
+ * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.
114
+ * - `false`: disable rate limiting entirely.
115
+ */
116
+ rateLimit?: RateLimitConfig | number | false;
117
+ /**
118
+ * Custom `fetch` function to use for all requests.
119
+ * Must be fully compatible with the Fetch API standard.
120
+ *
121
+ * Use cases:
122
+ * - SSR framework fetch wrappers (e.g., Next.js `fetch` with caching)
123
+ * - Custom instrumentation or logging around requests
124
+ *
125
+ * @default globalThis.fetch
126
+ */
127
+ fetch?: typeof globalThis.fetch;
128
+ }
129
+ type StoryblokTypesConfig = {
130
+ components: Block;
131
+ } | {
132
+ blocks: Block;
133
+ };
134
+ type ResolveComponents<T extends StoryblokTypesConfig> = T extends {
135
+ components: infer C extends Block;
136
+ } ? C : T extends {
137
+ blocks: infer B extends Block;
138
+ } ? B : never;
139
+ /**
140
+ * The return type of `createApiClient`, parameterised by `TComponents` and `InlineRelations`
141
+ * so that `.withTypes<T>()` can change the story response types without touching the
142
+ * runtime object.
143
+ */
144
+ type ContentApiClient<TComponents extends Block = Block, InlineRelations extends boolean = false, ThrowOnError extends boolean = false> = Omit<ReturnType<typeof createApiClientBase>, 'stories' | 'withTypes'> & {
145
+ stories: ReturnType<typeof createStoriesResource<TComponents, InlineRelations, ThrowOnError>>;
146
+ /**
147
+ * Returns the same client instance cast to a version that narrows story content
148
+ * to the provided component types. No runtime cost — the type parameter is erased.
149
+ *
150
+ * Accepts either `{ components: ... }` or `{ blocks: ... }` — the latter matches the
151
+ * `Schema` type produced by `@storyblok/schema`'s `InferSchema`.
152
+ *
153
+ * @example
154
+ * ```ts
155
+ * import type { Schema } from './schema';
156
+ *
157
+ * const client = createApiClient({ accessToken: 'your-token' })
158
+ * .withTypes<Schema>();
159
+ * // story.content is now typed as a discriminated union
160
+ * ```
161
+ */
162
+ withTypes: <T extends StoryblokTypesConfig>() => ContentApiClient<ResolveComponents<T>, InlineRelations, ThrowOnError>;
163
+ };
164
+ declare const createApiClientBase: <ThrowOnError extends boolean = false, InlineRelations extends boolean = false>(config: ContentApiClientConfig<ThrowOnError, InlineRelations>) => {
165
+ datasourceEntries: {
166
+ list: <ThrowOnError_1 extends boolean = ThrowOnError>(options?: {
167
+ query?: ListDatasourceEntriesData["query"];
168
+ signal?: AbortSignal;
169
+ throwOnError?: ThrowOnError_1 | undefined;
170
+ fetchOptions?: FetchOptions;
171
+ }) => Promise<ApiResponse<{
172
+ datasource_entries: Array<DatasourceEntry>;
173
+ cv?: number | null;
174
+ }, ThrowOnError_1>>;
175
+ };
176
+ datasources: {
177
+ get: <ThrowOnError_1 extends boolean = ThrowOnError>(id: GetDatasourceByIdData["path"]["id"], options?: {
178
+ query?: GetDatasourceByIdData["query"];
179
+ signal?: AbortSignal;
180
+ throwOnError?: ThrowOnError_1 | undefined;
181
+ fetchOptions?: FetchOptions;
182
+ }) => Promise<ApiResponse<{
183
+ datasource: Datasource;
184
+ cv: number | null;
185
+ }, ThrowOnError_1>>;
186
+ list: <ThrowOnError_1 extends boolean = ThrowOnError>(options?: {
187
+ query?: ListDatasourcesData["query"];
188
+ signal?: AbortSignal;
189
+ throwOnError?: ThrowOnError_1 | undefined;
190
+ fetchOptions?: FetchOptions;
191
+ }) => Promise<ApiResponse<{
192
+ datasources: Array<Datasource>;
193
+ cv?: number | null;
194
+ }, ThrowOnError_1>>;
195
+ };
196
+ experiments: {
197
+ list: <ThrowOnError_1 extends boolean = ThrowOnError>(options?: {
198
+ query?: ListCdnExperimentsV2Data["query"];
199
+ signal?: AbortSignal;
200
+ throwOnError?: ThrowOnError_1 | undefined;
201
+ fetchOptions?: FetchOptions;
202
+ }) => Promise<ApiResponse<{
203
+ experiments: Array<CdnExperiment>;
204
+ cv?: number | null;
205
+ }, ThrowOnError_1>>;
206
+ };
207
+ flushCache: () => Promise<void>;
208
+ get: (path: string, options?: HttpRequestOptions) => Promise<{
209
+ data?: unknown;
210
+ error?: ClientError;
211
+ response: Response;
212
+ request: Request;
213
+ }>;
214
+ interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions<"fields", boolean, string>>;
215
+ links: {
216
+ list: <ThrowOnError_1 extends boolean = ThrowOnError>(options?: {
217
+ query?: ListLinksData["query"];
218
+ signal?: AbortSignal;
219
+ throwOnError?: ThrowOnError_1 | undefined;
220
+ fetchOptions?: FetchOptions;
221
+ }) => Promise<ApiResponse<{
222
+ links: {
223
+ [key: string]: Link;
224
+ };
225
+ }, ThrowOnError_1>>;
226
+ };
227
+ spaces: {
228
+ get: <ThrowOnError_1 extends boolean = ThrowOnError>(options?: {
229
+ query?: GetSpaceData["query"];
230
+ signal?: AbortSignal;
231
+ throwOnError?: ThrowOnError_1 | undefined;
232
+ fetchOptions?: FetchOptions;
233
+ }) => Promise<ApiResponse<{
234
+ space: PublicSpace;
235
+ }, ThrowOnError_1>>;
236
+ };
237
+ stories: {
238
+ get: <ThrowOnError_1 extends boolean = ThrowOnError, const ResolveRelationsStr extends string | undefined = undefined>(identifier: string, options?: {
239
+ query?: (Omit<{
240
+ find_by?: string;
241
+ version?: "draft" | "published";
242
+ resolve_links?: "story" | "url" | "link";
243
+ resolve_links_level?: 1 | 2;
244
+ resolve_relations?: string;
245
+ from_release?: string;
246
+ content_type?: string;
247
+ cv?: number;
248
+ excluding_fields?: string;
249
+ language?: string;
250
+ fallback_lang?: string;
251
+ resolve_assets?: number;
252
+ resolve_level?: 2;
253
+ param_with_null_char?: string;
254
+ }, "resolve_relations"> & {
255
+ resolve_relations?: ResolveRelationsStr | undefined;
256
+ }) | undefined;
257
+ signal?: AbortSignal;
258
+ throwOnError?: ThrowOnError_1 | undefined;
259
+ fetchOptions?: FetchOptions;
260
+ }) => Promise<ApiResponse<Omit<{
261
+ story: Story;
262
+ cv: number;
263
+ rels?: Array<Story>;
264
+ links?: Array<LinkWithFullSlug | Link | Story>;
265
+ rel_uuids?: Array<string>;
266
+ link_uuids?: Array<string>;
267
+ }, "story"> & {
268
+ story: InlineRelations extends true ? StoryWithInlinedRelations : {
269
+ path: string | null;
270
+ id: number;
271
+ name: string;
272
+ created_at: string;
273
+ updated_at?: string | null | undefined;
274
+ version?: "draft" | "published" | undefined;
275
+ is_startpage: boolean;
276
+ published_at: string | null;
277
+ alternates: Array<StoryAlternate>;
278
+ uuid: string;
279
+ slug: string;
280
+ full_slug: string;
281
+ default_full_slug: string | null;
282
+ sort_by_date: string | null;
283
+ position: number;
284
+ tag_list: Array<string>;
285
+ parent_id: number;
286
+ meta_data: {
287
+ [key: string]: unknown;
288
+ } | {
289
+ [key: string]: unknown;
290
+ } | null;
291
+ group_id: string;
292
+ first_published_at: string | null;
293
+ release_id?: number | null | undefined;
294
+ lang: string;
295
+ translated_slugs: {
296
+ path: string;
297
+ name: string | null;
298
+ lang: string;
299
+ published: string | null;
300
+ }[] | {
301
+ path: string;
302
+ name: string | null;
303
+ lang: string;
304
+ published: string | null;
305
+ }[] | null;
306
+ content: {
307
+ [x: string]: string | number | boolean | string[] | AssetFieldValueRoot[] | {
308
+ type: "doc";
309
+ content?: Array<{
310
+ [key: string]: unknown;
311
+ }> | undefined;
312
+ } | {
313
+ fieldtype: "asset";
314
+ id: number | null;
315
+ alt: string | null;
316
+ name?: string | undefined;
317
+ focus?: string | null | undefined;
318
+ title?: string | null | undefined;
319
+ source?: string | null | undefined;
320
+ filename: string;
321
+ copyright?: string | null | undefined;
322
+ meta_data?: {
323
+ [key: string]: unknown;
324
+ } | undefined;
325
+ is_external_url?: boolean | undefined;
326
+ } | {
327
+ fieldtype: "multilink";
328
+ id: string;
329
+ url: string;
330
+ linktype: "story" | "url" | "email" | "asset";
331
+ cached_url: string;
332
+ anchor?: string | null | undefined;
333
+ target?: "_self" | "_blank" | null | undefined;
334
+ } | BlockContentRoot[] | {
335
+ thead: Array<{
336
+ _uid: string;
337
+ component: "_table_head";
338
+ value?: string;
339
+ }>;
340
+ tbody: Array<{
341
+ _uid: string;
342
+ component: "_table_row";
343
+ body?: Array<{
344
+ _uid: string;
345
+ component: "_table_col";
346
+ value?: string;
347
+ }>;
348
+ }>;
349
+ } | {
350
+ [x: string]: unknown;
351
+ plugin: string;
352
+ _uid?: string | undefined;
353
+ } | null | undefined;
354
+ _uid: string;
355
+ component: string;
356
+ _editable?: string | undefined;
357
+ };
358
+ };
359
+ }, ThrowOnError_1>>;
360
+ list: <ThrowOnError_1 extends boolean = ThrowOnError, const ResolveRelationsStr_1 extends string | undefined = undefined>(options?: {
361
+ query?: (Omit<{
362
+ version?: "draft" | "published";
363
+ cv?: number;
364
+ starts_with?: string;
365
+ search_term?: string;
366
+ sort_by?: string;
367
+ per_page?: number;
368
+ page?: number;
369
+ by_slugs?: string;
370
+ excluding_slugs?: string;
371
+ published_at_gt?: string;
372
+ published_at_gte?: string;
373
+ published_at_lt?: string;
374
+ published_at_lte?: string;
375
+ first_published_at_gt?: string;
376
+ first_published_at_gte?: string;
377
+ first_published_at_lt?: string;
378
+ first_published_at_lte?: string;
379
+ updated_at_gt?: string;
380
+ updated_at_gte?: string;
381
+ updated_at_lt?: string;
382
+ updated_at_lte?: string;
383
+ in_workflow_stages?: string;
384
+ content_type?: string;
385
+ level?: number;
386
+ resolve_relations?: string;
387
+ excluding_ids?: string;
388
+ by_uuids?: string;
389
+ by_uuids_ordered?: string;
390
+ by_ids?: string;
391
+ with_tag?: string;
392
+ is_startpage?: 0 | 1;
393
+ resolve_links?: "story" | "url" | "link";
394
+ resolve_links_level?: 1 | 2;
395
+ from_release?: string;
396
+ fallback_lang?: string;
397
+ language?: string;
398
+ filter_query?: {
399
+ __or?: Array<{
400
+ [key: string]: {
401
+ [key: string]: string;
402
+ };
403
+ }>;
404
+ [key: string]: {
405
+ in?: string;
406
+ not_in?: string;
407
+ like?: string;
408
+ not_like?: string;
409
+ exists?: string;
410
+ in_array?: Array<string> | string;
411
+ all_in_array?: Array<string> | string;
412
+ gt_date?: string;
413
+ lt_date?: string;
414
+ gt_int?: number;
415
+ lt_int?: number;
416
+ gt_float?: number;
417
+ lt_float?: number;
418
+ is?: "empty" | "not_empty" | "empty_array" | "not_empty_array" | "null" | "not_null" | "true" | "false";
419
+ } | Array<{
420
+ [key: string]: {
421
+ [key: string]: string;
422
+ };
423
+ }> | undefined;
424
+ };
425
+ excluding_fields?: string;
426
+ resolve_assets?: 1;
427
+ resolve_level?: 2;
428
+ only_variants?: "true";
429
+ non_existing_sort_by?: string;
430
+ non_existing_updated_at_gt?: string;
431
+ param_with_null_char?: string;
432
+ }, "resolve_relations"> & {
433
+ resolve_relations?: ResolveRelationsStr_1 | undefined;
434
+ }) | undefined;
435
+ signal?: AbortSignal;
436
+ throwOnError?: ThrowOnError_1 | undefined;
437
+ fetchOptions?: FetchOptions;
438
+ }) => Promise<ApiResponse<Omit<{
439
+ stories: Array<Story>;
440
+ cv: number;
441
+ rels?: Array<Story>;
442
+ links?: Array<LinkWithFullSlug | Link | Story>;
443
+ rel_uuids?: Array<string>;
444
+ link_uuids?: Array<string>;
445
+ }, "stories"> & {
446
+ stories: (InlineRelations extends true ? StoryWithInlinedRelations : {
447
+ path: string | null;
448
+ id: number;
449
+ name: string;
450
+ created_at: string;
451
+ updated_at?: string | null | undefined;
452
+ version?: "draft" | "published" | undefined;
453
+ is_startpage: boolean;
454
+ published_at: string | null;
455
+ alternates: Array<StoryAlternate>;
456
+ uuid: string;
457
+ slug: string;
458
+ full_slug: string;
459
+ default_full_slug: string | null;
460
+ sort_by_date: string | null;
461
+ position: number;
462
+ tag_list: Array<string>;
463
+ parent_id: number;
464
+ meta_data: {
465
+ [key: string]: unknown;
466
+ } | {
467
+ [key: string]: unknown;
468
+ } | null;
469
+ group_id: string;
470
+ first_published_at: string | null;
471
+ release_id?: number | null | undefined;
472
+ lang: string;
473
+ translated_slugs: {
474
+ path: string;
475
+ name: string | null;
476
+ lang: string;
477
+ published: string | null;
478
+ }[] | {
479
+ path: string;
480
+ name: string | null;
481
+ lang: string;
482
+ published: string | null;
483
+ }[] | null;
484
+ content: {
485
+ [x: string]: string | number | boolean | string[] | AssetFieldValueRoot[] | {
486
+ type: "doc";
487
+ content?: Array<{
488
+ [key: string]: unknown;
489
+ }> | undefined;
490
+ } | {
491
+ fieldtype: "asset";
492
+ id: number | null;
493
+ alt: string | null;
494
+ name?: string | undefined;
495
+ focus?: string | null | undefined;
496
+ title?: string | null | undefined;
497
+ source?: string | null | undefined;
498
+ filename: string;
499
+ copyright?: string | null | undefined;
500
+ meta_data?: {
501
+ [key: string]: unknown;
502
+ } | undefined;
503
+ is_external_url?: boolean | undefined;
504
+ } | {
505
+ fieldtype: "multilink";
506
+ id: string;
507
+ url: string;
508
+ linktype: "story" | "url" | "email" | "asset";
509
+ cached_url: string;
510
+ anchor?: string | null | undefined;
511
+ target?: "_self" | "_blank" | null | undefined;
512
+ } | BlockContentRoot[] | {
513
+ thead: Array<{
514
+ _uid: string;
515
+ component: "_table_head";
516
+ value?: string;
517
+ }>;
518
+ tbody: Array<{
519
+ _uid: string;
520
+ component: "_table_row";
521
+ body?: Array<{
522
+ _uid: string;
523
+ component: "_table_col";
524
+ value?: string;
525
+ }>;
526
+ }>;
527
+ } | {
528
+ [x: string]: unknown;
529
+ plugin: string;
530
+ _uid?: string | undefined;
531
+ } | null | undefined;
532
+ _uid: string;
533
+ component: string;
534
+ _editable?: string | undefined;
535
+ };
536
+ })[];
537
+ }, ThrowOnError_1>>;
538
+ };
539
+ tags: {
540
+ list: <ThrowOnError_1 extends boolean = ThrowOnError>(options?: {
541
+ query?: ListTagsData["query"];
542
+ signal?: AbortSignal;
543
+ throwOnError?: ThrowOnError_1 | undefined;
544
+ fetchOptions?: FetchOptions;
545
+ }) => Promise<ApiResponse<{
546
+ tags: Array<Tag>;
547
+ }, ThrowOnError_1>>;
548
+ };
549
+ };
550
+ /**
551
+ * Creates a Storyblok Content Delivery API client.
552
+ *
553
+ * Use `.withTypes<YourTypes>()` on the returned client to enable discriminated
554
+ * union typing on `story.content` without including any schema values in your bundle.
555
+ *
556
+ * @example
557
+ * ```ts
558
+ * import type { pageBlock, heroBlock } from './blocks';
559
+ *
560
+ * const client = createApiClient({ accessToken: 'your-token' })
561
+ * .withTypes<StoryblokTypes>();
562
+ * ```
563
+ */
564
+ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRelations extends boolean = false>(config: ContentApiClientConfig<ThrowOnError, InlineRelations>) => ContentApiClient<Block, InlineRelations, ThrowOnError>;
565
+ //#endregion
566
+ export { ApiResponse, CacheConfig, ContentApiClient, ContentApiClientConfig, FetchOptions, HttpRequestMethod, HttpRequestOptions, RequestWithCacheOptions, ResourceDeps, createApiClient };
567
+ //# sourceMappingURL=client.d.cts.map