@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
package/dist/index.d.mts CHANGED
@@ -1,186 +1,10 @@
1
- import { DatasourceEntryCapi, ListData, ListResponses } from "./generated/datasource_entries/types.gen.mjs";
2
- import { DatasourceCapi, GetData, GetResponses, ListData as ListData$1, ListResponses as ListResponses$1 } from "./generated/datasources/types.gen.mjs";
3
- import { Middleware } from "./generated/shared/client/utils.gen.mjs";
4
- import { ResolvedRequestOptions } from "./generated/shared/client/types.gen.mjs";
5
- import { LinkCapi, ListData as ListData$2, ListResponses as ListResponses$2 } from "./generated/links/types.gen.mjs";
6
- import { GetResponses as GetResponses$1, SpaceCapi } from "./generated/spaces/types.gen.mjs";
7
- import { GetData as GetData$1, ListData as ListData$3, StoryCapi } from "./generated/stories/types.gen.mjs";
8
- import { ListData as ListData$4, ListResponses as ListResponses$3, TagCapi } from "./generated/tags/types.gen.mjs";
1
+ import { Middleware } from "./generated/capi/client/utils.gen.mjs";
9
2
  import { CacheProvider, CacheStrategy, CacheStrategyHandler } from "./utils/cache.mjs";
10
- import { ClientError } from "./error.mjs";
11
- import { RateLimitConfig, createThrottle, parseRateLimitPolicyHeader } from "./utils/rate-limit.mjs";
12
- import { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions } from "./types.mjs";
3
+ import { ApiErrorBody, ClientError } from "./error.mjs";
4
+ import { Block } from "./generated/types/block.mjs";
5
+ import { Story } from "./generated/types/story.mjs";
13
6
  import { StoryWithInlinedRelations } from "./resources/stories.mjs";
14
- import { RetryOptions } from "ky";
15
- import { Region } from "@storyblok/region-helper";
16
-
17
- //#region src/index.d.ts
18
- type Prettify<T> = { [K in keyof T]: T[K] } & {};
19
- type Story = Prettify<StoryCapi>;
20
- /**
21
- * Cache configuration.
22
- *
23
- * **Note:** Requests with `version: 'draft'` always bypass the cache regardless
24
- * of the configured strategy. Only published content is cached.
25
- */
26
- interface CacheConfig {
27
- /** Custom cache provider. Defaults to an in-memory LRU cache (1 000 entries). */
28
- provider?: CacheProvider;
29
- /** Cache strategy for published requests. @default 'cache-first' */
30
- strategy?: CacheStrategy | CacheStrategyHandler;
31
- /** Time-to-live in milliseconds for cached entries. @default 60_000 */
32
- ttlMs?: number;
33
- /**
34
- * Controls how the `cv` (content version) query parameter is managed.
35
- *
36
- * - `'auto'` (default): automatically attach the tracked `cv` to
37
- * subsequent published requests for cache busting.
38
- * - `'manual'`: do not attach `cv` to outgoing requests. The client still
39
- * tracks cv internally for cache invalidation (flushing when cv changes),
40
- * but the query parameter is not sent. Useful for SSR with edge caching
41
- * where stable URLs are required.
42
- */
43
- cv?: 'auto' | 'manual';
44
- /**
45
- * Controls when the cache is flushed on cv change.
46
- *
47
- * - `'auto'` (default): automatically flush the cache whenever the API returns a new cv value.
48
- * - `'manual'`: never auto-flush; call `client.flushCache()` explicitly (e.g. on webhook trigger).
49
- */
50
- flush?: 'auto' | 'manual';
51
- /**
52
- * Called when SWR background revalidation fails.
53
- * Only relevant when `strategy` is `'swr'`.
54
- * @default console.warn
55
- */
56
- onRevalidationError?: (error: unknown) => void;
57
- }
58
- interface ContentApiClientConfig<ThrowOnError extends boolean = false, InlineRelations extends boolean = false> {
59
- accessToken: string;
60
- region?: Region;
61
- baseUrl?: string;
62
- headers?: Record<string, string>;
63
- throwOnError?: ThrowOnError;
64
- cache?: CacheConfig;
65
- inlineRelations?: InlineRelations;
66
- retry?: RetryOptions;
67
- /**
68
- * Request timeout in milliseconds.
69
- * @default 30_000
70
- */
71
- timeout?: number;
72
- /**
73
- * Preventive rate limiting to avoid hitting the Storyblok CDN rate limits.
74
- *
75
- * - `undefined` (default): auto-detect tier from path + `per_page` query param.
76
- * - `number`: fixed max concurrent requests per second (single queue).
77
- * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.
78
- * - `false`: disable rate limiting entirely.
79
- */
80
- rateLimit?: RateLimitConfig | number | false;
81
- /**
82
- * Custom `fetch` function to use for all requests.
83
- * Must be fully compatible with the Fetch API standard.
84
- *
85
- * Use cases:
86
- * - SSR framework fetch wrappers (e.g., Next.js `fetch` with caching)
87
- * - Custom instrumentation or logging around requests
88
- *
89
- * @default globalThis.fetch
90
- */
91
- fetch?: typeof globalThis.fetch;
92
- }
93
- declare const createApiClient: <ThrowOnError extends boolean = false, InlineRelations extends boolean = false>(config: ContentApiClientConfig<ThrowOnError, InlineRelations>) => {
94
- datasourceEntries: {
95
- list: <ThrowOnError_1 extends boolean = false>(options?: {
96
- query?: ListData["query"];
97
- signal?: AbortSignal;
98
- throwOnError?: ThrowOnError_1;
99
- fetchOptions?: FetchOptions;
100
- }) => Promise<ApiResponse<ListResponses[200], ThrowOnError_1>>;
101
- };
102
- datasources: {
103
- get: <ThrowOnError_1 extends boolean = false>(id: GetData["path"]["id"], options?: {
104
- query?: GetData["query"];
105
- signal?: AbortSignal;
106
- throwOnError?: ThrowOnError_1;
107
- fetchOptions?: FetchOptions;
108
- }) => Promise<ApiResponse<GetResponses[200], ThrowOnError_1>>;
109
- list: <ThrowOnError_1 extends boolean = false>(options?: {
110
- query?: ListData$1["query"];
111
- signal?: AbortSignal;
112
- throwOnError?: ThrowOnError_1;
113
- fetchOptions?: FetchOptions;
114
- }) => Promise<ApiResponse<ListResponses$1[200], ThrowOnError_1>>;
115
- };
116
- flushCache: () => Promise<void>;
117
- get: (path: string, options?: HttpRequestOptions) => Promise<{
118
- data?: unknown;
119
- error?: ClientError;
120
- response: Response;
121
- request: Request;
122
- }>;
123
- interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions<"fields", boolean, string>>;
124
- links: {
125
- list: <ThrowOnError_1 extends boolean = false>(options?: {
126
- query?: ListData$2["query"];
127
- signal?: AbortSignal;
128
- throwOnError?: ThrowOnError_1;
129
- fetchOptions?: FetchOptions;
130
- }) => Promise<ApiResponse<ListResponses$2[200], ThrowOnError_1>>;
131
- };
132
- spaces: {
133
- get: <ThrowOnError_1 extends boolean = false>(options?: {
134
- signal?: AbortSignal;
135
- throwOnError?: ThrowOnError_1;
136
- fetchOptions?: FetchOptions;
137
- }) => Promise<ApiResponse<GetResponses$1[200], ThrowOnError_1>>;
138
- };
139
- stories: {
140
- get: <ThrowOnError_1 extends boolean = false>(identifier: string | number, options?: {
141
- query?: GetData$1["query"];
142
- signal?: AbortSignal;
143
- throwOnError?: ThrowOnError_1 | undefined;
144
- fetchOptions?: FetchOptions;
145
- }) => Promise<ApiResponse<Omit<{
146
- story: StoryCapi;
147
- cv?: number;
148
- rels?: Array<StoryCapi>;
149
- links?: Array<{
150
- [key: string]: unknown;
151
- }>;
152
- rel_uuids?: Array<string>;
153
- link_uuids?: Array<string>;
154
- }, "story"> & {
155
- story: InlineRelations extends true ? StoryWithInlinedRelations : StoryCapi;
156
- }, ThrowOnError_1>>;
157
- list: <ThrowOnError_1 extends boolean = false>(options?: {
158
- query?: ListData$3["query"];
159
- signal?: AbortSignal;
160
- throwOnError?: ThrowOnError_1 | undefined;
161
- fetchOptions?: FetchOptions;
162
- }) => Promise<ApiResponse<Omit<{
163
- stories: Array<StoryCapi>;
164
- cv?: number;
165
- rels?: Array<StoryCapi>;
166
- links?: Array<{
167
- [key: string]: unknown;
168
- }>;
169
- rel_uuids?: Array<string>;
170
- link_uuids?: Array<string>;
171
- }, "stories"> & {
172
- stories: (InlineRelations extends true ? StoryWithInlinedRelations : StoryCapi)[];
173
- }, ThrowOnError_1>>;
174
- };
175
- tags: {
176
- list: <ThrowOnError_1 extends boolean = false>(options?: {
177
- query?: ListData$4["query"];
178
- signal?: AbortSignal;
179
- throwOnError?: ThrowOnError_1;
180
- fetchOptions?: FetchOptions;
181
- }) => Promise<ApiResponse<ListResponses$3[200], ThrowOnError_1>>;
182
- };
183
- };
184
- //#endregion
185
- export { type ApiResponse, type CacheProvider, type CacheStrategy, type CacheStrategyHandler, ClientError, ContentApiClientConfig, type DatasourceCapi as Datasource, type DatasourceEntryCapi as DatasourceEntry, type FetchOptions, type HttpRequestMethod, type HttpRequestOptions, type LinkCapi as Link, type Middleware, type RateLimitConfig, type SpaceCapi as Space, Story, type StoryWithInlinedRelations, type TagCapi as Tag, createApiClient, createThrottle, parseRateLimitPolicyHeader };
186
- //# sourceMappingURL=index.d.mts.map
7
+ import { ApiResponse, CacheConfig, ContentApiClient, ContentApiClientConfig, FetchOptions, HttpRequestMethod, HttpRequestOptions, RequestWithCacheOptions, ResourceDeps, createApiClient } from "./client.mjs";
8
+ import { Datasource, DatasourceEntry, Link, StoryAlternate, Tag } from "./generated/capi/types-aliased.gen.mjs";
9
+ import { Space, StoryLocalizedPath, StoryTranslatedSlug } from "./generated/mapi/types.gen.mjs";
10
+ export { type ApiErrorBody, type ApiResponse, type CacheConfig, type CacheProvider, type CacheStrategy, type CacheStrategyHandler, ClientError, type Block as Component, type ContentApiClient, type ContentApiClientConfig, type Datasource, type DatasourceEntry, type FetchOptions, type HttpRequestMethod, type HttpRequestOptions, type Link, type Middleware, type RequestWithCacheOptions, type ResourceDeps, type Space, type Story, type StoryAlternate, type StoryLocalizedPath, type StoryTranslatedSlug, type StoryWithInlinedRelations, type Tag, createApiClient };
package/dist/index.mjs CHANGED
@@ -1,153 +1,4 @@
1
- import { createConfig } from "./generated/shared/client/utils.gen.mjs";
2
- import { createClient } from "./generated/shared/client/client.gen.mjs";
3
- import "./generated/shared/client/index.mjs";
4
- import { createMemoryCacheProvider, createStrategy } from "./utils/cache.mjs";
5
1
  import { ClientError } from "./error.mjs";
6
- import { createThrottle, createThrottleManager, parseRateLimitPolicyHeader } from "./utils/rate-limit.mjs";
7
- import { createCacheKey, shouldUseCache } from "./utils/request.mjs";
8
- import { applyCvToQuery, extractCv } from "./utils/cv.mjs";
9
- import { createStoriesResource } from "./resources/stories.mjs";
10
- import { createLinksResource } from "./resources/links.mjs";
11
- import { createTagsResource } from "./resources/tags.mjs";
12
- import { createDatasourcesResource } from "./resources/datasources.mjs";
13
- import { createDatasourceEntriesResource } from "./resources/datasource-entries.mjs";
14
- import { createSpacesResource } from "./resources/spaces.mjs";
15
- import { getRegionBaseUrl } from "@storyblok/region-helper";
2
+ import { createApiClient } from "./client.mjs";
16
3
 
17
- //#region src/index.ts
18
- const createApiClient = (config) => {
19
- const { accessToken, region = "eu", baseUrl, headers = {}, throwOnError = false, cache = {}, inlineRelations = false, retry, timeout = 3e4, rateLimit, fetch: customFetch } = config;
20
- const retryOptions = {
21
- limit: 3,
22
- backoffLimit: 2e4,
23
- jitter: true,
24
- ...retry
25
- };
26
- const throttleManager = createThrottleManager(rateLimit ?? {});
27
- const cacheProvider = cache.provider ?? createMemoryCacheProvider();
28
- const swrOptions = cache.onRevalidationError ? { onRevalidationError: cache.onRevalidationError } : void 0;
29
- const strategy = cache.strategy ? typeof cache.strategy === "string" ? createStrategy(cache.strategy, swrOptions) : cache.strategy : createStrategy("cache-first");
30
- const cacheTtlMs = cache.ttlMs ?? 6e4;
31
- const cacheFlush = cache.flush ?? "auto";
32
- const cvMode = cache.cv ?? "auto";
33
- let currentCv;
34
- const client = createClient(createConfig({
35
- auth: accessToken,
36
- baseUrl: baseUrl || getRegionBaseUrl(region),
37
- headers,
38
- throwOnError,
39
- kyOptions: {
40
- throwHttpErrors: true,
41
- timeout,
42
- retry: retryOptions,
43
- ...customFetch && { fetch: customFetch }
44
- }
45
- }));
46
- client.interceptors.error.use((error, response) => new ClientError(response?.statusText || "API request failed", {
47
- status: response?.status ?? 0,
48
- statusText: response?.statusText ?? "",
49
- data: error
50
- }));
51
- const security = [{
52
- in: "query",
53
- name: "token",
54
- type: "apiKey"
55
- }];
56
- const updateCv = async (result) => {
57
- const nextCv = extractCv(result.data);
58
- if (nextCv === void 0) return true;
59
- if (currentCv !== void 0 && nextCv < currentCv) return false;
60
- if (cacheFlush === "auto" && currentCv !== void 0 && currentCv !== nextCv) await cacheProvider.flush();
61
- currentCv = nextCv;
62
- return true;
63
- };
64
- const cacheSuccessResult = async (key, result) => {
65
- const shouldCacheResult = await updateCv(result);
66
- if (result.error === void 0 && shouldCacheResult) await cacheProvider.set(key, {
67
- value: result,
68
- ttlMs: cacheTtlMs
69
- });
70
- return result;
71
- };
72
- const requestNetwork = async (method, path, query, options) => {
73
- return client.request({
74
- ...options,
75
- method,
76
- query,
77
- security,
78
- url: path
79
- });
80
- };
81
- /**
82
- * Wraps a raw SDK call to cast the `error: unknown` type returned by
83
- * generated code to `ClientError` — the error interceptor ensures the
84
- * runtime value IS a ClientError.
85
- */
86
- const asApiResponse = (p) => p;
87
- const requestWithCache = async (method, path, rawQuery, fetchFn, cacheOptions) => {
88
- const query = cvMode === "auto" && currentCv !== void 0 ? applyCvToQuery(rawQuery, currentCv) : rawQuery;
89
- if (!shouldUseCache(method, path, rawQuery)) {
90
- const networkResult = await fetchFn(query);
91
- throttleManager.adaptToResponse(networkResult.response);
92
- await updateCv(networkResult);
93
- return networkResult;
94
- }
95
- const baseKey = createCacheKey(method, path, rawQuery);
96
- const key = cacheOptions?.cacheKeyPrefix ? `${cacheOptions.cacheKeyPrefix}:${baseKey}` : baseKey;
97
- const cachedResult = (await cacheProvider.get(key))?.value;
98
- const loadNetwork = async () => {
99
- const result = await fetchFn(query);
100
- throttleManager.adaptToResponse(result.response);
101
- return cacheSuccessResult(key, result);
102
- };
103
- return strategy({
104
- key,
105
- cachedResult,
106
- loadNetwork
107
- });
108
- };
109
- const request = async (method, path, options = {}) => {
110
- const rawQuery = options.query || {};
111
- return requestWithCache(method, path, rawQuery, (query) => {
112
- return throttleManager.execute(path, rawQuery, () => requestNetwork(method, path, query, options));
113
- });
114
- };
115
- const getRequest = (path, options = {}) => {
116
- return request("GET", path, options);
117
- };
118
- const resourceDeps = {
119
- client,
120
- requestWithCache,
121
- asApiResponse,
122
- throttleManager
123
- };
124
- const stories = createStoriesResource({
125
- ...resourceDeps,
126
- inlineRelations
127
- });
128
- /**
129
- * Flush the in-memory cache and reset the tracked cv.
130
- *
131
- * Call this explicitly when `cache.flush` is set to `'manual'`, e.g. after
132
- * receiving a Storyblok webhook event that signals content has changed.
133
- */
134
- const flushCache = async () => {
135
- await cacheProvider.flush();
136
- currentCv = void 0;
137
- };
138
- return {
139
- datasourceEntries: createDatasourceEntriesResource(resourceDeps),
140
- datasources: createDatasourcesResource(resourceDeps),
141
- flushCache,
142
- get: getRequest,
143
- interceptors: client.interceptors,
144
- links: createLinksResource(resourceDeps),
145
- spaces: createSpacesResource(resourceDeps),
146
- stories,
147
- tags: createTagsResource(resourceDeps)
148
- };
149
- };
150
-
151
- //#endregion
152
- export { ClientError, createApiClient, createThrottle, parseRateLimitPolicyHeader };
153
- //# sourceMappingURL=index.mjs.map
4
+ export { ClientError, createApiClient };
@@ -1,4 +1,4 @@
1
- const require_sdk_gen = require('../generated/datasource_entries/sdk.gen.cjs');
1
+ const require_sdk_gen = require('../generated/capi/sdk.gen.cjs');
2
2
 
3
3
  //#region src/resources/datasource-entries.ts
4
4
  function createDatasourceEntriesResource(deps) {
@@ -7,7 +7,7 @@ function createDatasourceEntriesResource(deps) {
7
7
  const { query = {}, signal, throwOnError, fetchOptions } = options;
8
8
  const requestPath = "/v2/cdn/datasource_entries";
9
9
  return requestWithCache("GET", requestPath, query, (requestQuery) => {
10
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.list({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.listDatasourceEntries({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasource-entries.cjs","names":["listDatasourceEntriesApi"],"sources":["../../src/resources/datasource-entries.ts"],"sourcesContent":["import { list as listDatasourceEntriesApi } from '../generated/datasource_entries/sdk.gen';\nimport type {\n ListData as DatasourceEntriesListData,\n ListResponses as DatasourceEntriesListResponses,\n} from '../generated/datasource_entries/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../types';\n\nexport function createDatasourceEntriesResource(deps: ResourceDeps) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n list: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourceEntriesListData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourceEntriesListResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasource_entries';\n return requestWithCache<DatasourceEntriesListResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourceEntriesListResponses[200], ThrowOnError>(listDatasourceEntriesApi({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAOA,SAAgB,gCAAgC,MAAoB;CAClE,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EACL,MAAM,OACJ,UAA0I,EAAE,KAChE;EAC5E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAoE,OAAO,aAAa,QAAQ,iBAA0C;AAC/I,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAiEA,qBAAyB;IACxF;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
1
+ {"version":3,"file":"datasource-entries.cjs","names":["listDatasourceEntries"],"sources":["../../src/resources/datasource-entries.ts"],"sourcesContent":["import { listDatasourceEntries } from '../generated/capi/sdk.gen';\nimport type {\n ListDatasourceEntriesData,\n ListDatasourceEntriesResponses,\n} from '../generated/capi/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../client';\n\nexport function createDatasourceEntriesResource<DefaultThrowOnError extends boolean = false>(deps: ResourceDeps<DefaultThrowOnError>) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n list: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n options: { query?: ListDatasourceEntriesData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<ListDatasourceEntriesResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasource_entries';\n return requestWithCache<ListDatasourceEntriesResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<ListDatasourceEntriesResponses[200], ThrowOnError>(listDatasourceEntries({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAOA,SAAgB,gCAA6E,MAAyC;CACpI,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EACL,MAAM,OACJ,UAA0I,EAAE,KAChE;EAC5E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAoE,OAAO,aAAa,QAAQ,iBAA0C;AAC/I,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAiEA,sCAAsB;IACrF;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
@@ -1,4 +1,4 @@
1
- import { list } from "../generated/datasource_entries/sdk.gen.mjs";
1
+ import { listDatasourceEntries } from "../generated/capi/sdk.gen.mjs";
2
2
 
3
3
  //#region src/resources/datasource-entries.ts
4
4
  function createDatasourceEntriesResource(deps) {
@@ -7,7 +7,7 @@ function createDatasourceEntriesResource(deps) {
7
7
  const { query = {}, signal, throwOnError, fetchOptions } = options;
8
8
  const requestPath = "/v2/cdn/datasource_entries";
9
9
  return requestWithCache("GET", requestPath, query, (requestQuery) => {
10
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(list({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(listDatasourceEntries({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasource-entries.mjs","names":["listDatasourceEntriesApi"],"sources":["../../src/resources/datasource-entries.ts"],"sourcesContent":["import { list as listDatasourceEntriesApi } from '../generated/datasource_entries/sdk.gen';\nimport type {\n ListData as DatasourceEntriesListData,\n ListResponses as DatasourceEntriesListResponses,\n} from '../generated/datasource_entries/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../types';\n\nexport function createDatasourceEntriesResource(deps: ResourceDeps) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n list: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourceEntriesListData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourceEntriesListResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasource_entries';\n return requestWithCache<DatasourceEntriesListResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourceEntriesListResponses[200], ThrowOnError>(listDatasourceEntriesApi({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAOA,SAAgB,gCAAgC,MAAoB;CAClE,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EACL,MAAM,OACJ,UAA0I,EAAE,KAChE;EAC5E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAoE,OAAO,aAAa,QAAQ,iBAA0C;AAC/I,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAiEA,KAAyB;IACxF;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
1
+ {"version":3,"file":"datasource-entries.mjs","names":[],"sources":["../../src/resources/datasource-entries.ts"],"sourcesContent":["import { listDatasourceEntries } from '../generated/capi/sdk.gen';\nimport type {\n ListDatasourceEntriesData,\n ListDatasourceEntriesResponses,\n} from '../generated/capi/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../client';\n\nexport function createDatasourceEntriesResource<DefaultThrowOnError extends boolean = false>(deps: ResourceDeps<DefaultThrowOnError>) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n list: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n options: { query?: ListDatasourceEntriesData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<ListDatasourceEntriesResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasource_entries';\n return requestWithCache<ListDatasourceEntriesResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<ListDatasourceEntriesResponses[200], ThrowOnError>(listDatasourceEntries({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAOA,SAAgB,gCAA6E,MAAyC;CACpI,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EACL,MAAM,OACJ,UAA0I,EAAE,KAChE;EAC5E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAoE,OAAO,aAAa,QAAQ,iBAA0C;AAC/I,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAiE,sBAAsB;IACrF;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
@@ -1,4 +1,4 @@
1
- const require_sdk_gen = require('../generated/datasources/sdk.gen.cjs');
1
+ const require_sdk_gen = require('../generated/capi/sdk.gen.cjs');
2
2
 
3
3
  //#region src/resources/datasources.ts
4
4
  function createDatasourcesResource(deps) {
@@ -7,8 +7,8 @@ function createDatasourcesResource(deps) {
7
7
  get: async (id, options = {}) => {
8
8
  const { query = {}, signal, throwOnError, fetchOptions } = options;
9
9
  const requestPath = `/v2/cdn/datasources/${id}`;
10
- return requestWithCache("GET", requestPath, query, (requestQuery) => {
11
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.get({
10
+ return requestWithCache("GET", requestPath, query ?? {}, (requestQuery) => {
11
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.getDatasourceById({
12
12
  client,
13
13
  path: { id },
14
14
  query: requestQuery,
@@ -25,7 +25,7 @@ function createDatasourcesResource(deps) {
25
25
  const { query = {}, signal, throwOnError, fetchOptions } = options;
26
26
  const requestPath = "/v2/cdn/datasources";
27
27
  return requestWithCache("GET", requestPath, query, (requestQuery) => {
28
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.list({
28
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.listDatasources({
29
29
  client,
30
30
  query: requestQuery,
31
31
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasources.cjs","names":["getDatasourceApi","listDatasourcesApi"],"sources":["../../src/resources/datasources.ts"],"sourcesContent":["import { get as getDatasourceApi, list as listDatasourcesApi } from '../generated/datasources/sdk.gen';\nimport type {\n GetData as DatasourcesGetData,\n GetResponses as DatasourcesGetResponses,\n ListData as DatasourcesListData,\n ListResponses as DatasourcesListResponses,\n} from '../generated/datasources/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../types';\n\nexport function createDatasourcesResource(deps: ResourceDeps) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n get: async <ThrowOnError extends boolean = false>(\n id: DatasourcesGetData['path']['id'],\n options: { query?: DatasourcesGetData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourcesGetResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = `/v2/cdn/datasources/${id}`;\n return requestWithCache<DatasourcesGetResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourcesGetResponses[200], ThrowOnError>(getDatasourceApi({\n client,\n path: { id },\n query: requestQuery as DatasourcesGetData['query'], // bridge generic cache callback (Record<string, unknown>) to typed SDK query\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n\n list: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourcesListData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourcesListResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasources';\n return requestWithCache<DatasourcesListResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourcesListResponses[200], ThrowOnError>(listDatasourcesApi({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AASA,SAAgB,0BAA0B,MAAoB;CAC5D,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO;EACL,KAAK,OACH,IACA,UAAmI,EAAE,KAChE;GACrE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc,uBAAuB;AAC3C,UAAO,iBAA6D,OAAO,aAAa,QAAQ,iBAA0C;AACxI,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA0DA,oBAAiB;KACzE;KACA,MAAM,EAAE,IAAI;KACZ,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAGJ,MAAM,OACJ,UAAoI,EAAE,KAChE;GACtE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc;AACpB,UAAO,iBAA8D,OAAO,aAAa,QAAQ,iBAA0C;AACzI,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA2DC,qBAAmB;KAC5E;KACA,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAEL"}
1
+ {"version":3,"file":"datasources.cjs","names":["getDatasourceById","listDatasources"],"sources":["../../src/resources/datasources.ts"],"sourcesContent":["import { getDatasourceById, listDatasources } from '../generated/capi/sdk.gen';\nimport type {\n GetDatasourceByIdData,\n GetDatasourceByIdResponses,\n ListDatasourcesData,\n ListDatasourcesResponses,\n} from '../generated/capi/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../client';\n\nexport function createDatasourcesResource<DefaultThrowOnError extends boolean = false>(deps: ResourceDeps<DefaultThrowOnError>) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n get: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n id: GetDatasourceByIdData['path']['id'],\n options: { query?: GetDatasourceByIdData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<GetDatasourceByIdResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = `/v2/cdn/datasources/${id}`;\n return requestWithCache<GetDatasourceByIdResponses[200], ThrowOnError>('GET', requestPath, query ?? {}, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<GetDatasourceByIdResponses[200], ThrowOnError>(getDatasourceById({\n client,\n path: { id },\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n\n list: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n options: { query?: ListDatasourcesData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<ListDatasourcesResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasources';\n return requestWithCache<ListDatasourcesResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<ListDatasourcesResponses[200], ThrowOnError>(listDatasources({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AASA,SAAgB,0BAAuE,MAAyC;CAC9H,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO;EACL,KAAK,OACH,IACA,UAAsI,EAAE,KAChE;GACxE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc,uBAAuB;AAC3C,UAAO,iBAAgE,OAAO,aAAa,SAAS,EAAE,GAAG,iBAA0C;AACjJ,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA6DA,kCAAkB;KAC7E;KACA,MAAM,EAAE,IAAI;KACZ,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAGJ,MAAM,OACJ,UAAoI,EAAE,KAChE;GACtE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc;AACpB,UAAO,iBAA8D,OAAO,aAAa,QAAQ,iBAA0C;AACzI,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA2DC,gCAAgB;KACzE;KACA,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAEL"}
@@ -1,4 +1,4 @@
1
- import { get, list } from "../generated/datasources/sdk.gen.mjs";
1
+ import { getDatasourceById, listDatasources } from "../generated/capi/sdk.gen.mjs";
2
2
 
3
3
  //#region src/resources/datasources.ts
4
4
  function createDatasourcesResource(deps) {
@@ -7,8 +7,8 @@ function createDatasourcesResource(deps) {
7
7
  get: async (id, options = {}) => {
8
8
  const { query = {}, signal, throwOnError, fetchOptions } = options;
9
9
  const requestPath = `/v2/cdn/datasources/${id}`;
10
- return requestWithCache("GET", requestPath, query, (requestQuery) => {
11
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(get({
10
+ return requestWithCache("GET", requestPath, query ?? {}, (requestQuery) => {
11
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(getDatasourceById({
12
12
  client,
13
13
  path: { id },
14
14
  query: requestQuery,
@@ -25,7 +25,7 @@ function createDatasourcesResource(deps) {
25
25
  const { query = {}, signal, throwOnError, fetchOptions } = options;
26
26
  const requestPath = "/v2/cdn/datasources";
27
27
  return requestWithCache("GET", requestPath, query, (requestQuery) => {
28
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(list({
28
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(listDatasources({
29
29
  client,
30
30
  query: requestQuery,
31
31
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasources.mjs","names":["getDatasourceApi","listDatasourcesApi"],"sources":["../../src/resources/datasources.ts"],"sourcesContent":["import { get as getDatasourceApi, list as listDatasourcesApi } from '../generated/datasources/sdk.gen';\nimport type {\n GetData as DatasourcesGetData,\n GetResponses as DatasourcesGetResponses,\n ListData as DatasourcesListData,\n ListResponses as DatasourcesListResponses,\n} from '../generated/datasources/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../types';\n\nexport function createDatasourcesResource(deps: ResourceDeps) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n get: async <ThrowOnError extends boolean = false>(\n id: DatasourcesGetData['path']['id'],\n options: { query?: DatasourcesGetData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourcesGetResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = `/v2/cdn/datasources/${id}`;\n return requestWithCache<DatasourcesGetResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourcesGetResponses[200], ThrowOnError>(getDatasourceApi({\n client,\n path: { id },\n query: requestQuery as DatasourcesGetData['query'], // bridge generic cache callback (Record<string, unknown>) to typed SDK query\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n\n list: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourcesListData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourcesListResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasources';\n return requestWithCache<DatasourcesListResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourcesListResponses[200], ThrowOnError>(listDatasourcesApi({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AASA,SAAgB,0BAA0B,MAAoB;CAC5D,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO;EACL,KAAK,OACH,IACA,UAAmI,EAAE,KAChE;GACrE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc,uBAAuB;AAC3C,UAAO,iBAA6D,OAAO,aAAa,QAAQ,iBAA0C;AACxI,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA0DA,IAAiB;KACzE;KACA,MAAM,EAAE,IAAI;KACZ,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAGJ,MAAM,OACJ,UAAoI,EAAE,KAChE;GACtE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc;AACpB,UAAO,iBAA8D,OAAO,aAAa,QAAQ,iBAA0C;AACzI,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA2DC,KAAmB;KAC5E;KACA,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAEL"}
1
+ {"version":3,"file":"datasources.mjs","names":[],"sources":["../../src/resources/datasources.ts"],"sourcesContent":["import { getDatasourceById, listDatasources } from '../generated/capi/sdk.gen';\nimport type {\n GetDatasourceByIdData,\n GetDatasourceByIdResponses,\n ListDatasourcesData,\n ListDatasourcesResponses,\n} from '../generated/capi/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../client';\n\nexport function createDatasourcesResource<DefaultThrowOnError extends boolean = false>(deps: ResourceDeps<DefaultThrowOnError>) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n get: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n id: GetDatasourceByIdData['path']['id'],\n options: { query?: GetDatasourceByIdData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<GetDatasourceByIdResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = `/v2/cdn/datasources/${id}`;\n return requestWithCache<GetDatasourceByIdResponses[200], ThrowOnError>('GET', requestPath, query ?? {}, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<GetDatasourceByIdResponses[200], ThrowOnError>(getDatasourceById({\n client,\n path: { id },\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n\n list: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n options: { query?: ListDatasourcesData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<ListDatasourcesResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasources';\n return requestWithCache<ListDatasourcesResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<ListDatasourcesResponses[200], ThrowOnError>(listDatasources({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AASA,SAAgB,0BAAuE,MAAyC;CAC9H,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO;EACL,KAAK,OACH,IACA,UAAsI,EAAE,KAChE;GACxE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc,uBAAuB;AAC3C,UAAO,iBAAgE,OAAO,aAAa,SAAS,EAAE,GAAG,iBAA0C;AACjJ,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA6D,kBAAkB;KAC7E;KACA,MAAM,EAAE,IAAI;KACZ,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAGJ,MAAM,OACJ,UAAoI,EAAE,KAChE;GACtE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc;AACpB,UAAO,iBAA8D,OAAO,aAAa,QAAQ,iBAA0C;AACzI,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA2D,gBAAgB;KACzE;KACA,OAAO;KACP;KACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;KACtD,GAAI,eAAe,EAAE,WAAW;MAAE,GAAG,OAAO,WAAW,CAAC;MAAW,GAAG;MAAc,EAAE,GAAG,EAAE;KAC5F,CAAC,CAAC,CAAC;KACN;;EAEL"}
@@ -0,0 +1,26 @@
1
+ const require_sdk_gen = require('../generated/capi/sdk.gen.cjs');
2
+
3
+ //#region src/resources/experiments.ts
4
+ function createExperimentsResource(deps) {
5
+ const { client, requestWithCache, asApiResponse, throttleManager } = deps;
6
+ return { list: async (options = {}) => {
7
+ const { query = {}, signal, throwOnError, fetchOptions } = options;
8
+ const requestPath = "/v2/cdn/experiments";
9
+ return requestWithCache("GET", requestPath, query, (requestQuery) => {
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.listCdnExperimentsV2({
11
+ client,
12
+ query: requestQuery,
13
+ signal,
14
+ ...throwOnError === void 0 ? {} : { throwOnError },
15
+ ...fetchOptions ? { kyOptions: {
16
+ ...client.getConfig().kyOptions,
17
+ ...fetchOptions
18
+ } } : {}
19
+ })));
20
+ });
21
+ } };
22
+ }
23
+
24
+ //#endregion
25
+ exports.createExperimentsResource = createExperimentsResource;
26
+ //# sourceMappingURL=experiments.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiments.cjs","names":["listCdnExperimentsV2"],"sources":["../../src/resources/experiments.ts"],"sourcesContent":["import { listCdnExperimentsV2 } from '../generated/capi/sdk.gen';\nimport type { ListCdnExperimentsV2Data, ListCdnExperimentsV2Responses } from '../generated/capi/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../client';\n\nexport function createExperimentsResource<DefaultThrowOnError extends boolean = false>(deps: ResourceDeps<DefaultThrowOnError>) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n /**\n * Retrieve all running experiments for the space.\n *\n * Each experiment lists its variants and their `story_mappings`, which map an\n * `original_story_id`/`original_slug` to a `variant_story_id`/`variant_slug`.\n * The CDN has no per-story variant filter, so the typical flow is:\n *\n * 1. `experiments.list()` to fetch the running experiments.\n * 2. Pick a variant deterministically (e.g. hash the visitor id against the\n * variant `public_id`/`weight`) for the experiment that maps the story you\n * are rendering.\n * 3. Fetch that variant's own `variant_slug` via the `stories` resource (the\n * control variant resolves back to the `original_slug`).\n *\n * See `@storyblok/experiments` for variant assignment and tracking helpers.\n */\n list: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n options: { query?: ListCdnExperimentsV2Data['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<ListCdnExperimentsV2Responses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/experiments';\n return requestWithCache<ListCdnExperimentsV2Responses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<ListCdnExperimentsV2Responses[200], ThrowOnError>(listCdnExperimentsV2({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAIA,SAAgB,0BAAuE,MAAyC;CAC9H,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EAiBL,MAAM,OACJ,UAAyI,EAAE,KAChE;EAC3E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAmE,OAAO,aAAa,QAAQ,iBAA0C;AAC9I,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAgEA,qCAAqB;IACnF;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
@@ -0,0 +1,26 @@
1
+ import { listCdnExperimentsV2 } from "../generated/capi/sdk.gen.mjs";
2
+
3
+ //#region src/resources/experiments.ts
4
+ function createExperimentsResource(deps) {
5
+ const { client, requestWithCache, asApiResponse, throttleManager } = deps;
6
+ return { list: async (options = {}) => {
7
+ const { query = {}, signal, throwOnError, fetchOptions } = options;
8
+ const requestPath = "/v2/cdn/experiments";
9
+ return requestWithCache("GET", requestPath, query, (requestQuery) => {
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(listCdnExperimentsV2({
11
+ client,
12
+ query: requestQuery,
13
+ signal,
14
+ ...throwOnError === void 0 ? {} : { throwOnError },
15
+ ...fetchOptions ? { kyOptions: {
16
+ ...client.getConfig().kyOptions,
17
+ ...fetchOptions
18
+ } } : {}
19
+ })));
20
+ });
21
+ } };
22
+ }
23
+
24
+ //#endregion
25
+ export { createExperimentsResource };
26
+ //# sourceMappingURL=experiments.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"experiments.mjs","names":[],"sources":["../../src/resources/experiments.ts"],"sourcesContent":["import { listCdnExperimentsV2 } from '../generated/capi/sdk.gen';\nimport type { ListCdnExperimentsV2Data, ListCdnExperimentsV2Responses } from '../generated/capi/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../client';\n\nexport function createExperimentsResource<DefaultThrowOnError extends boolean = false>(deps: ResourceDeps<DefaultThrowOnError>) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n /**\n * Retrieve all running experiments for the space.\n *\n * Each experiment lists its variants and their `story_mappings`, which map an\n * `original_story_id`/`original_slug` to a `variant_story_id`/`variant_slug`.\n * The CDN has no per-story variant filter, so the typical flow is:\n *\n * 1. `experiments.list()` to fetch the running experiments.\n * 2. Pick a variant deterministically (e.g. hash the visitor id against the\n * variant `public_id`/`weight`) for the experiment that maps the story you\n * are rendering.\n * 3. Fetch that variant's own `variant_slug` via the `stories` resource (the\n * control variant resolves back to the `original_slug`).\n *\n * See `@storyblok/experiments` for variant assignment and tracking helpers.\n */\n list: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n options: { query?: ListCdnExperimentsV2Data['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<ListCdnExperimentsV2Responses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/experiments';\n return requestWithCache<ListCdnExperimentsV2Responses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<ListCdnExperimentsV2Responses[200], ThrowOnError>(listCdnExperimentsV2({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAIA,SAAgB,0BAAuE,MAAyC;CAC9H,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EAiBL,MAAM,OACJ,UAAyI,EAAE,KAChE;EAC3E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAmE,OAAO,aAAa,QAAQ,iBAA0C;AAC9I,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAgE,qBAAqB;IACnF;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
@@ -1,4 +1,4 @@
1
- const require_sdk_gen = require('../generated/links/sdk.gen.cjs');
1
+ const require_sdk_gen = require('../generated/capi/sdk.gen.cjs');
2
2
 
3
3
  //#region src/resources/links.ts
4
4
  function createLinksResource(deps) {
@@ -7,7 +7,7 @@ function createLinksResource(deps) {
7
7
  const { query = {}, signal, throwOnError, fetchOptions } = options;
8
8
  const requestPath = "/v2/cdn/links";
9
9
  return requestWithCache("GET", requestPath, query, (requestQuery) => {
10
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.list({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.listLinks({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"links.cjs","names":["listLinks"],"sources":["../../src/resources/links.ts"],"sourcesContent":["import { list as listLinks } from '../generated/links/sdk.gen';\nimport type { ListData as LinksListData, ListResponses as LinksListResponses } from '../generated/links/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../types';\n\nexport function createLinksResource(deps: ResourceDeps) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n list: async <ThrowOnError extends boolean = false>(\n options: { query?: LinksListData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<LinksListResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/links';\n return requestWithCache<LinksListResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<LinksListResponses[200], ThrowOnError>(listLinks({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAIA,SAAgB,oBAAoB,MAAoB;CACtD,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EACL,MAAM,OACJ,UAA8H,EAAE,KAChE;EAChE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAwD,OAAO,aAAa,QAAQ,iBAA0C;AACnI,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAqDA,qBAAU;IAC7D;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
1
+ {"version":3,"file":"links.cjs","names":["listLinks"],"sources":["../../src/resources/links.ts"],"sourcesContent":["import { listLinks } from '../generated/capi/sdk.gen';\nimport type { ListLinksData, ListLinksResponses } from '../generated/capi/types.gen';\nimport type { ApiResponse, FetchOptions, ResourceDeps } from '../client';\n\nexport function createLinksResource<DefaultThrowOnError extends boolean = false>(deps: ResourceDeps<DefaultThrowOnError>) {\n const { client, requestWithCache, asApiResponse, throttleManager } = deps;\n\n return {\n list: async <ThrowOnError extends boolean = DefaultThrowOnError>(\n options: { query?: ListLinksData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<ListLinksResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/links';\n return requestWithCache<ListLinksResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<ListLinksResponses[200], ThrowOnError>(listLinks({\n client,\n query: requestQuery,\n signal,\n ...(throwOnError === undefined ? {} : { throwOnError }),\n ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}),\n })));\n });\n },\n };\n}\n"],"mappings":";;;AAIA,SAAgB,oBAAiE,MAAyC;CACxH,MAAM,EAAE,QAAQ,kBAAkB,eAAe,oBAAoB;AAErE,QAAO,EACL,MAAM,OACJ,UAA8H,EAAE,KAChE;EAChE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAwD,OAAO,aAAa,QAAQ,iBAA0C;AACnI,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAqDA,0BAAU;IAC7D;IACA,OAAO;IACP;IACA,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IACtD,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAC5F,CAAC,CAAC,CAAC;IACN;IAEL"}
@@ -1,4 +1,4 @@
1
- import { list } from "../generated/links/sdk.gen.mjs";
1
+ import { listLinks } from "../generated/capi/sdk.gen.mjs";
2
2
 
3
3
  //#region src/resources/links.ts
4
4
  function createLinksResource(deps) {
@@ -7,7 +7,7 @@ function createLinksResource(deps) {
7
7
  const { query = {}, signal, throwOnError, fetchOptions } = options;
8
8
  const requestPath = "/v2/cdn/links";
9
9
  return requestWithCache("GET", requestPath, query, (requestQuery) => {
10
- return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(list({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(listLinks({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,