@storyblok/api-client 0.2.1 → 0.2.3

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 (72) hide show
  1. package/README.md +1 -1
  2. package/dist/generated/datasource_entries/sdk.gen.cjs +2 -2
  3. package/dist/generated/datasource_entries/sdk.gen.cjs.map +1 -1
  4. package/dist/generated/datasource_entries/sdk.gen.mjs +2 -2
  5. package/dist/generated/datasource_entries/sdk.gen.mjs.map +1 -1
  6. package/dist/generated/datasource_entries/types.gen.d.cts +3 -3
  7. package/dist/generated/datasource_entries/types.gen.d.mts +3 -3
  8. package/dist/generated/datasources/sdk.gen.cjs +2 -2
  9. package/dist/generated/datasources/sdk.gen.cjs.map +1 -1
  10. package/dist/generated/datasources/sdk.gen.mjs +2 -2
  11. package/dist/generated/datasources/sdk.gen.mjs.map +1 -1
  12. package/dist/generated/datasources/types.gen.d.cts +3 -3
  13. package/dist/generated/datasources/types.gen.d.mts +3 -3
  14. package/dist/generated/links/sdk.gen.cjs +2 -2
  15. package/dist/generated/links/sdk.gen.cjs.map +1 -1
  16. package/dist/generated/links/sdk.gen.mjs +2 -2
  17. package/dist/generated/links/sdk.gen.mjs.map +1 -1
  18. package/dist/generated/links/types.gen.d.cts +3 -3
  19. package/dist/generated/links/types.gen.d.mts +3 -3
  20. package/dist/generated/shared/client/client.gen.d.mts +1 -0
  21. package/dist/generated/shared/client/index.d.mts +3 -0
  22. package/dist/generated/shared/client/types.gen.d.mts +1 -1
  23. package/dist/generated/stories/index.d.mts +1 -0
  24. package/dist/generated/stories/sdk.gen.cjs +2 -2
  25. package/dist/generated/stories/sdk.gen.cjs.map +1 -1
  26. package/dist/generated/stories/sdk.gen.d.mts +1 -0
  27. package/dist/generated/stories/sdk.gen.mjs +2 -2
  28. package/dist/generated/stories/sdk.gen.mjs.map +1 -1
  29. package/dist/generated/stories/types.gen.d.cts +6 -6
  30. package/dist/generated/stories/types.gen.d.mts +6 -6
  31. package/dist/generated/tags/sdk.gen.cjs +2 -2
  32. package/dist/generated/tags/sdk.gen.cjs.map +1 -1
  33. package/dist/generated/tags/sdk.gen.mjs +2 -2
  34. package/dist/generated/tags/sdk.gen.mjs.map +1 -1
  35. package/dist/generated/tags/types.gen.d.cts +3 -3
  36. package/dist/generated/tags/types.gen.d.mts +3 -3
  37. package/dist/index.cjs.map +1 -1
  38. package/dist/index.d.cts +20 -20
  39. package/dist/index.d.mts +20 -20
  40. package/dist/index.mjs.map +1 -1
  41. package/dist/resources/datasource-entries.cjs +2 -2
  42. package/dist/resources/datasource-entries.cjs.map +1 -1
  43. package/dist/resources/datasource-entries.mjs +3 -3
  44. package/dist/resources/datasource-entries.mjs.map +1 -1
  45. package/dist/resources/datasources.cjs +2 -2
  46. package/dist/resources/datasources.cjs.map +1 -1
  47. package/dist/resources/datasources.mjs +3 -3
  48. package/dist/resources/datasources.mjs.map +1 -1
  49. package/dist/resources/links.cjs +2 -2
  50. package/dist/resources/links.cjs.map +1 -1
  51. package/dist/resources/links.mjs +3 -3
  52. package/dist/resources/links.mjs.map +1 -1
  53. package/dist/resources/stories.cjs +2 -2
  54. package/dist/resources/stories.cjs.map +1 -1
  55. package/dist/resources/stories.d.mts +0 -1
  56. package/dist/resources/stories.mjs +3 -3
  57. package/dist/resources/stories.mjs.map +1 -1
  58. package/dist/resources/tags.cjs +2 -2
  59. package/dist/resources/tags.cjs.map +1 -1
  60. package/dist/resources/tags.mjs +3 -3
  61. package/dist/resources/tags.mjs.map +1 -1
  62. package/dist/utils/fetch-rel-uuids.cjs +1 -1
  63. package/dist/utils/fetch-rel-uuids.cjs.map +1 -1
  64. package/dist/utils/fetch-rel-uuids.mjs +2 -2
  65. package/dist/utils/fetch-rel-uuids.mjs.map +1 -1
  66. package/dist/utils/rate-limit.cjs +4 -4
  67. package/dist/utils/rate-limit.cjs.map +1 -1
  68. package/dist/utils/rate-limit.d.cts +1 -1
  69. package/dist/utils/rate-limit.d.mts +1 -1
  70. package/dist/utils/rate-limit.mjs +4 -4
  71. package/dist/utils/rate-limit.mjs.map +1 -1
  72. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["createThrottleManager","createMemoryCacheProvider","createStrategy","createClient","createConfig","ClientError","extractCv","applyCvToQuery","shouldUseCache","createCacheKey","createStoriesResource","createDatasourceEntriesResource","createDatasourcesResource","createLinksResource","createSpacesResource","createTagsResource"],"sources":["../src/index.ts"],"sourcesContent":["import { createClient, createConfig } from './generated/shared/client';\nimport type { StoryCapi } from './generated/stories';\nimport type { CacheProvider, CacheStrategy, CacheStrategyHandler } from './utils/cache';\nimport { createMemoryCacheProvider, createStrategy } from './utils/cache';\nimport { ClientError } from './error';\nimport type { RateLimitConfig } from './utils/rate-limit';\nimport { createThrottleManager } from './utils/rate-limit';\nimport { applyCvToQuery, extractCv } from './utils/cv';\nimport { createCacheKey, shouldUseCache } from './utils/request';\nimport { getRegionBaseUrl, type Region } from '@storyblok/region-helper';\nimport type { RetryOptions } from 'ky';\nimport type { Client } from './generated/shared/client';\nimport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions, RequestWithCacheOptions, ResourceDeps } from './types';\nimport { createStoriesResource } from './resources/stories';\nimport { createLinksResource } from './resources/links';\nimport { createTagsResource } from './resources/tags';\nimport { createDatasourcesResource } from './resources/datasources';\nimport { createDatasourceEntriesResource } from './resources/datasource-entries';\nimport { createSpacesResource } from './resources/spaces';\n\ntype Prettify<T> = {\n [K in keyof T]: T[K];\n} & {};\n\nexport type Story = Prettify<StoryCapi>;\nexport { ClientError } from './error';\nexport type { DatasourceEntryCapi as DatasourceEntry } from './generated/datasource_entries/types.gen';\nexport type { DatasourceCapi as Datasource } from './generated/datasources/types.gen';\nexport type { LinkCapi as Link } from './generated/links/types.gen';\nexport type { Middleware } from './generated/shared/client/utils.gen';\nexport type { SpaceCapi as Space } from './generated/spaces/types.gen';\nexport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions };\nexport type { CacheProvider, CacheStrategy, CacheStrategyHandler };\nexport type { RateLimitConfig };\nexport type { TagCapi as Tag } from './generated/tags/types.gen';\nexport type { StoryWithInlinedRelations } from './resources/stories';\n\nexport { createThrottle, parseRateLimitPolicyHeader } from './utils/rate-limit';\n\n/**\n * Cache configuration.\n *\n * **Note:** Requests with `version: 'draft'` always bypass the cache regardless\n * of the configured strategy. Only published content is cached.\n */\ninterface CacheConfig {\n /** Custom cache provider. Defaults to an in-memory LRU cache (1 000 entries). */\n provider?: CacheProvider;\n /** Cache strategy for published requests. @default 'cache-first' */\n strategy?: CacheStrategy | CacheStrategyHandler;\n /** Time-to-live in milliseconds for cached entries. @default 60_000 */\n ttlMs?: number;\n /**\n * Controls when the cache is flushed on cv change.\n *\n * - `'auto'` (default): automatically flush the cache whenever the API returns a new cv value.\n * - `'manual'`: never auto-flush; call `client.flushCache()` explicitly (e.g. on webhook trigger).\n */\n flush?: 'auto' | 'manual';\n /**\n * Called when SWR background revalidation fails.\n * Only relevant when `strategy` is `'swr'`.\n * @default console.warn\n */\n onRevalidationError?: (error: unknown) => void;\n}\n\nexport interface ContentApiClientConfig<\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n> {\n accessToken: string;\n region?: Region;\n baseUrl?: string;\n headers?: Record<string, string>;\n throwOnError?: ThrowOnError;\n cache?: CacheConfig;\n inlineRelations?: InlineRelations;\n retry?: RetryOptions;\n /**\n * Request timeout in milliseconds.\n * @default 30_000\n */\n timeout?: number;\n /**\n * Preventive rate limiting to avoid hitting the Storyblok CDN rate limits.\n *\n * - `undefined` (default): auto-detect tier from path + `per_page` query param.\n * - `number`: fixed max concurrent requests per second (single queue).\n * - `{ maxConcurrent?: number; adaptToServerHeaders?: boolean }`: full config.\n * - `false`: disable rate limiting entirely.\n */\n rateLimit?: RateLimitConfig | number | false;\n /**\n * Custom `fetch` function to use for all requests.\n * Must be fully compatible with the Fetch API standard.\n *\n * Use cases:\n * - SSR framework fetch wrappers (e.g., Next.js `fetch` with caching)\n * - Custom instrumentation or logging around requests\n *\n * @default globalThis.fetch\n */\n fetch?: typeof globalThis.fetch;\n}\n\nexport const createApiClient = <\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n>(\n config: ContentApiClientConfig<ThrowOnError, InlineRelations>,\n) => {\n const {\n accessToken,\n region = 'eu',\n baseUrl,\n headers = {},\n throwOnError = false,\n cache = {},\n inlineRelations = false,\n retry,\n timeout = 30_000,\n rateLimit,\n fetch: customFetch,\n } = config;\n const retryOptions: RetryOptions = { limit: 3, backoffLimit: 20_000, jitter: true, ...retry };\n // `rateLimit` defaults to `{}` (auto-detect mode) when not supplied.\n const throttleManager = createThrottleManager(rateLimit ?? {});\n const cacheProvider = cache.provider ?? createMemoryCacheProvider();\n const swrOptions = cache.onRevalidationError ? { onRevalidationError: cache.onRevalidationError } : undefined;\n const strategy = cache.strategy\n ? typeof cache.strategy === 'string'\n ? createStrategy(cache.strategy, swrOptions)\n : cache.strategy\n : createStrategy('cache-first');\n const cacheTtlMs = cache.ttlMs ?? 60_000;\n const cacheFlush = cache.flush ?? 'auto';\n let currentCv: number | undefined;\n\n const client: Client = createClient(\n createConfig({\n auth: accessToken,\n baseUrl: baseUrl || getRegionBaseUrl(region),\n headers,\n throwOnError,\n kyOptions: {\n // Enable `throwHttpErrors` to make retry work, even if `throwOnError`\n // is `false`. The client's error handling will still work because it\n // catches `HTTPError`.\n throwHttpErrors: true,\n timeout,\n retry: retryOptions,\n ...(customFetch && { fetch: customFetch }),\n },\n }),\n );\n\n client.interceptors.error.use(\n (error: unknown, response: Response) =>\n new ClientError(response?.statusText || 'API request failed', {\n status: response?.status ?? 0,\n statusText: response?.statusText ?? '',\n data: error,\n }),\n );\n\n const security = [\n {\n in: 'query' as const,\n name: 'token',\n type: 'apiKey' as const,\n },\n ];\n\n const updateCv = async (result: ApiResponse): Promise<boolean> => {\n const nextCv = extractCv(result.data);\n if (nextCv === undefined) {\n return true;\n }\n\n // Guard against cv regression: SWR background revalidation may carry a\n // stale cv from a prior request; never move cv backward.\n if (currentCv !== undefined && nextCv < currentCv) {\n return false;\n }\n\n if (cacheFlush === 'auto' && currentCv !== undefined && currentCv !== nextCv) {\n await cacheProvider.flush();\n }\n\n currentCv = nextCv;\n return true;\n };\n\n const cacheSuccessResult = async <TResponse extends ApiResponse>(key: string, result: TResponse) => {\n const shouldCacheResult = await updateCv(result);\n if (result.error === undefined && shouldCacheResult) {\n await cacheProvider.set(key, {\n value: result,\n ttlMs: cacheTtlMs,\n });\n }\n return result;\n };\n\n const requestNetwork = async (\n method: 'GET',\n path: string,\n query: Record<string, unknown>,\n options: HttpRequestOptions,\n ): Promise<ApiResponse> => {\n return client.request<unknown, ClientError, boolean>({\n ...options,\n method,\n query,\n security,\n url: path,\n });\n };\n\n /**\n * Wraps a raw SDK call to cast the `error: unknown` type returned by\n * generated code to `ClientError` — the error interceptor ensures the\n * runtime value IS a ClientError.\n */\n const asApiResponse = <TData, ThrowOnError extends boolean = false>(\n p: Promise<unknown>,\n ): Promise<ApiResponse<TData, ThrowOnError>> => p as unknown as Promise<ApiResponse<TData, ThrowOnError>>;\n\n const requestWithCache = async <TData = unknown, ThrowOnError extends boolean = false>(\n method: 'GET',\n path: string,\n rawQuery: Record<string, unknown>,\n fetchFn: (query: Record<string, unknown>) => Promise<ApiResponse<TData, ThrowOnError>>,\n cacheOptions?: RequestWithCacheOptions,\n ): Promise<ApiResponse<TData, ThrowOnError>> => {\n const query = currentCv !== undefined ? applyCvToQuery(rawQuery, currentCv) : rawQuery;\n const cacheEnabled = shouldUseCache(method, path, rawQuery);\n\n if (!cacheEnabled) {\n const networkResult = await fetchFn(query);\n throttleManager.adaptToResponse(networkResult.response);\n await updateCv(networkResult);\n return networkResult;\n }\n\n const baseKey = createCacheKey(method, path, rawQuery);\n const key = cacheOptions?.cacheKeyPrefix ? `${cacheOptions.cacheKeyPrefix}:${baseKey}` : baseKey;\n const cachedEntry = await cacheProvider.get<ApiResponse<TData, ThrowOnError>>(key);\n const cachedResult = cachedEntry?.value;\n\n const loadNetwork = async () => {\n const result = await fetchFn(query);\n throttleManager.adaptToResponse(result.response);\n return cacheSuccessResult(key, result);\n };\n\n return strategy({\n key,\n cachedResult,\n loadNetwork,\n });\n };\n\n const request = async (\n method: 'GET',\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse> => {\n const rawQuery = options.query || {};\n\n return requestWithCache(method, path, rawQuery, (query) => {\n return throttleManager.execute(path, rawQuery, () => requestNetwork(method, path, query, options));\n });\n };\n\n const getRequest = (\n path: string,\n options: HttpRequestOptions = {},\n ) => {\n return request('GET', path, options);\n };\n\n const resourceDeps: ResourceDeps = {\n client,\n requestWithCache,\n asApiResponse,\n throttleManager,\n };\n\n const stories = createStoriesResource<InlineRelations>({\n ...resourceDeps,\n inlineRelations,\n });\n\n /**\n * Flush the in-memory cache and reset the tracked cv.\n *\n * Call this explicitly when `cache.flush` is set to `'manual'`, e.g. after\n * receiving a Storyblok webhook event that signals content has changed.\n */\n const flushCache = async (): Promise<void> => {\n await cacheProvider.flush();\n currentCv = undefined;\n };\n\n return {\n datasourceEntries: createDatasourceEntriesResource(resourceDeps),\n datasources: createDatasourcesResource(resourceDeps),\n flushCache,\n get: getRequest,\n interceptors: client.interceptors,\n links: createLinksResource(resourceDeps),\n spaces: createSpacesResource(resourceDeps),\n stories,\n tags: createTagsResource(resourceDeps),\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["createThrottleManager","createMemoryCacheProvider","createStrategy","createClient","createConfig","ClientError","extractCv","applyCvToQuery","shouldUseCache","createCacheKey","createStoriesResource","createDatasourceEntriesResource","createDatasourcesResource","createLinksResource","createSpacesResource","createTagsResource"],"sources":["../src/index.ts"],"sourcesContent":["import { createClient, createConfig } from './generated/shared/client';\nimport type { StoryCapi } from './generated/stories';\nimport type { CacheProvider, CacheStrategy, CacheStrategyHandler } from './utils/cache';\nimport { createMemoryCacheProvider, createStrategy } from './utils/cache';\nimport { ClientError } from './error';\nimport type { RateLimitConfig } from './utils/rate-limit';\nimport { createThrottleManager } from './utils/rate-limit';\nimport { applyCvToQuery, extractCv } from './utils/cv';\nimport { createCacheKey, shouldUseCache } from './utils/request';\nimport { getRegionBaseUrl, type Region } from '@storyblok/region-helper';\nimport type { RetryOptions } from 'ky';\nimport type { Client } from './generated/shared/client';\nimport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions, RequestWithCacheOptions, ResourceDeps } from './types';\nimport { createStoriesResource } from './resources/stories';\nimport { createLinksResource } from './resources/links';\nimport { createTagsResource } from './resources/tags';\nimport { createDatasourcesResource } from './resources/datasources';\nimport { createDatasourceEntriesResource } from './resources/datasource-entries';\nimport { createSpacesResource } from './resources/spaces';\n\ntype Prettify<T> = {\n [K in keyof T]: T[K];\n} & {};\n\nexport type Story = Prettify<StoryCapi>;\nexport { ClientError } from './error';\nexport type { DatasourceEntryCapi as DatasourceEntry } from './generated/datasource_entries/types.gen';\nexport type { DatasourceCapi as Datasource } from './generated/datasources/types.gen';\nexport type { LinkCapi as Link } from './generated/links/types.gen';\nexport type { Middleware } from './generated/shared/client/utils.gen';\nexport type { SpaceCapi as Space } from './generated/spaces/types.gen';\nexport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions };\nexport type { CacheProvider, CacheStrategy, CacheStrategyHandler };\nexport type { RateLimitConfig };\nexport type { TagCapi as Tag } from './generated/tags/types.gen';\nexport type { StoryWithInlinedRelations } from './resources/stories';\n\nexport { createThrottle, parseRateLimitPolicyHeader } from './utils/rate-limit';\n\n/**\n * Cache configuration.\n *\n * **Note:** Requests with `version: 'draft'` always bypass the cache regardless\n * of the configured strategy. Only published content is cached.\n */\ninterface CacheConfig {\n /** Custom cache provider. Defaults to an in-memory LRU cache (1 000 entries). */\n provider?: CacheProvider;\n /** Cache strategy for published requests. @default 'cache-first' */\n strategy?: CacheStrategy | CacheStrategyHandler;\n /** Time-to-live in milliseconds for cached entries. @default 60_000 */\n ttlMs?: number;\n /**\n * Controls when the cache is flushed on cv change.\n *\n * - `'auto'` (default): automatically flush the cache whenever the API returns a new cv value.\n * - `'manual'`: never auto-flush; call `client.flushCache()` explicitly (e.g. on webhook trigger).\n */\n flush?: 'auto' | 'manual';\n /**\n * Called when SWR background revalidation fails.\n * Only relevant when `strategy` is `'swr'`.\n * @default console.warn\n */\n onRevalidationError?: (error: unknown) => void;\n}\n\nexport interface ContentApiClientConfig<\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n> {\n accessToken: string;\n region?: Region;\n baseUrl?: string;\n headers?: Record<string, string>;\n throwOnError?: ThrowOnError;\n cache?: CacheConfig;\n inlineRelations?: InlineRelations;\n retry?: RetryOptions;\n /**\n * Request timeout in milliseconds.\n * @default 30_000\n */\n timeout?: number;\n /**\n * Preventive rate limiting to avoid hitting the Storyblok CDN rate limits.\n *\n * - `undefined` (default): auto-detect tier from path + `per_page` query param.\n * - `number`: fixed max concurrent requests per second (single queue).\n * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.\n * - `false`: disable rate limiting entirely.\n */\n rateLimit?: RateLimitConfig | number | false;\n /**\n * Custom `fetch` function to use for all requests.\n * Must be fully compatible with the Fetch API standard.\n *\n * Use cases:\n * - SSR framework fetch wrappers (e.g., Next.js `fetch` with caching)\n * - Custom instrumentation or logging around requests\n *\n * @default globalThis.fetch\n */\n fetch?: typeof globalThis.fetch;\n}\n\nexport const createApiClient = <\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n>(\n config: ContentApiClientConfig<ThrowOnError, InlineRelations>,\n) => {\n const {\n accessToken,\n region = 'eu',\n baseUrl,\n headers = {},\n throwOnError = false,\n cache = {},\n inlineRelations = false,\n retry,\n timeout = 30_000,\n rateLimit,\n fetch: customFetch,\n } = config;\n const retryOptions: RetryOptions = { limit: 3, backoffLimit: 20_000, jitter: true, ...retry };\n // `rateLimit` defaults to `{}` (auto-detect mode) when not supplied.\n const throttleManager = createThrottleManager(rateLimit ?? {});\n const cacheProvider = cache.provider ?? createMemoryCacheProvider();\n const swrOptions = cache.onRevalidationError ? { onRevalidationError: cache.onRevalidationError } : undefined;\n const strategy = cache.strategy\n ? typeof cache.strategy === 'string'\n ? createStrategy(cache.strategy, swrOptions)\n : cache.strategy\n : createStrategy('cache-first');\n const cacheTtlMs = cache.ttlMs ?? 60_000;\n const cacheFlush = cache.flush ?? 'auto';\n let currentCv: number | undefined;\n\n const client: Client = createClient(\n createConfig({\n auth: accessToken,\n baseUrl: baseUrl || getRegionBaseUrl(region),\n headers,\n throwOnError,\n kyOptions: {\n // Enable `throwHttpErrors` to make retry work, even if `throwOnError`\n // is `false`. The client's error handling will still work because it\n // catches `HTTPError`.\n throwHttpErrors: true,\n timeout,\n retry: retryOptions,\n ...(customFetch && { fetch: customFetch }),\n },\n }),\n );\n\n client.interceptors.error.use(\n (error: unknown, response: Response) =>\n new ClientError(response?.statusText || 'API request failed', {\n status: response?.status ?? 0,\n statusText: response?.statusText ?? '',\n data: error,\n }),\n );\n\n const security = [\n {\n in: 'query' as const,\n name: 'token',\n type: 'apiKey' as const,\n },\n ];\n\n const updateCv = async (result: ApiResponse): Promise<boolean> => {\n const nextCv = extractCv(result.data);\n if (nextCv === undefined) {\n return true;\n }\n\n // Guard against cv regression: SWR background revalidation may carry a\n // stale cv from a prior request; never move cv backward.\n if (currentCv !== undefined && nextCv < currentCv) {\n return false;\n }\n\n if (cacheFlush === 'auto' && currentCv !== undefined && currentCv !== nextCv) {\n await cacheProvider.flush();\n }\n\n currentCv = nextCv;\n return true;\n };\n\n const cacheSuccessResult = async <TResponse extends ApiResponse>(key: string, result: TResponse) => {\n const shouldCacheResult = await updateCv(result);\n if (result.error === undefined && shouldCacheResult) {\n await cacheProvider.set(key, {\n value: result,\n ttlMs: cacheTtlMs,\n });\n }\n return result;\n };\n\n const requestNetwork = async (\n method: 'GET',\n path: string,\n query: Record<string, unknown>,\n options: HttpRequestOptions,\n ): Promise<ApiResponse> => {\n return client.request<unknown, ClientError, boolean>({\n ...options,\n method,\n query,\n security,\n url: path,\n });\n };\n\n /**\n * Wraps a raw SDK call to cast the `error: unknown` type returned by\n * generated code to `ClientError` — the error interceptor ensures the\n * runtime value IS a ClientError.\n */\n const asApiResponse = <TData, ThrowOnError extends boolean = false>(\n p: Promise<unknown>,\n ): Promise<ApiResponse<TData, ThrowOnError>> => p as unknown as Promise<ApiResponse<TData, ThrowOnError>>;\n\n const requestWithCache = async <TData = unknown, ThrowOnError extends boolean = false>(\n method: 'GET',\n path: string,\n rawQuery: Record<string, unknown>,\n fetchFn: (query: Record<string, unknown>) => Promise<ApiResponse<TData, ThrowOnError>>,\n cacheOptions?: RequestWithCacheOptions,\n ): Promise<ApiResponse<TData, ThrowOnError>> => {\n const query = currentCv !== undefined ? applyCvToQuery(rawQuery, currentCv) : rawQuery;\n const cacheEnabled = shouldUseCache(method, path, rawQuery);\n\n if (!cacheEnabled) {\n const networkResult = await fetchFn(query);\n throttleManager.adaptToResponse(networkResult.response);\n await updateCv(networkResult);\n return networkResult;\n }\n\n const baseKey = createCacheKey(method, path, rawQuery);\n const key = cacheOptions?.cacheKeyPrefix ? `${cacheOptions.cacheKeyPrefix}:${baseKey}` : baseKey;\n const cachedEntry = await cacheProvider.get<ApiResponse<TData, ThrowOnError>>(key);\n const cachedResult = cachedEntry?.value;\n\n const loadNetwork = async () => {\n const result = await fetchFn(query);\n throttleManager.adaptToResponse(result.response);\n return cacheSuccessResult(key, result);\n };\n\n return strategy({\n key,\n cachedResult,\n loadNetwork,\n });\n };\n\n const request = async (\n method: 'GET',\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse> => {\n const rawQuery = options.query || {};\n\n return requestWithCache(method, path, rawQuery, (query) => {\n return throttleManager.execute(path, rawQuery, () => requestNetwork(method, path, query, options));\n });\n };\n\n const getRequest = (\n path: string,\n options: HttpRequestOptions = {},\n ) => {\n return request('GET', path, options);\n };\n\n const resourceDeps: ResourceDeps = {\n client,\n requestWithCache,\n asApiResponse,\n throttleManager,\n };\n\n const stories = createStoriesResource<InlineRelations>({\n ...resourceDeps,\n inlineRelations,\n });\n\n /**\n * Flush the in-memory cache and reset the tracked cv.\n *\n * Call this explicitly when `cache.flush` is set to `'manual'`, e.g. after\n * receiving a Storyblok webhook event that signals content has changed.\n */\n const flushCache = async (): Promise<void> => {\n await cacheProvider.flush();\n currentCv = undefined;\n };\n\n return {\n datasourceEntries: createDatasourceEntriesResource(resourceDeps),\n datasources: createDatasourcesResource(resourceDeps),\n flushCache,\n get: getRequest,\n interceptors: client.interceptors,\n links: createLinksResource(resourceDeps),\n spaces: createSpacesResource(resourceDeps),\n stories,\n tags: createTagsResource(resourceDeps),\n };\n};\n"],"mappings":"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"}
package/dist/index.d.cts CHANGED
@@ -1,11 +1,11 @@
1
- import { DatasourceEntryCapi, GetAllData, GetAllResponses } from "./generated/datasource_entries/types.gen.cjs";
2
- import { DatasourceCapi, GetAllData as GetAllData$1, GetAllResponses as GetAllResponses$1, GetData, GetResponses } from "./generated/datasources/types.gen.cjs";
1
+ import { DatasourceEntryCapi, ListData, ListResponses } from "./generated/datasource_entries/types.gen.cjs";
2
+ import { DatasourceCapi, GetData, GetResponses, ListData as ListData$1, ListResponses as ListResponses$1 } from "./generated/datasources/types.gen.cjs";
3
3
  import { Middleware } from "./generated/shared/client/utils.gen.cjs";
4
4
  import { ResolvedRequestOptions } from "./generated/shared/client/types.gen.cjs";
5
- import { GetAllData as GetAllData$2, GetAllResponses as GetAllResponses$2, LinkCapi } from "./generated/links/types.gen.cjs";
5
+ import { LinkCapi, ListData as ListData$2, ListResponses as ListResponses$2 } from "./generated/links/types.gen.cjs";
6
6
  import { GetResponses as GetResponses$1, SpaceCapi } from "./generated/spaces/types.gen.cjs";
7
- import { GetAllData as GetAllData$3, GetData as GetData$1, StoryCapi } from "./generated/stories/types.gen.cjs";
8
- import { GetAllData as GetAllData$4, GetAllResponses as GetAllResponses$3, TagCapi } from "./generated/tags/types.gen.cjs";
7
+ import { GetData as GetData$1, ListData as ListData$3, StoryCapi } from "./generated/stories/types.gen.cjs";
8
+ import { ListData as ListData$4, ListResponses as ListResponses$3, TagCapi } from "./generated/tags/types.gen.cjs";
9
9
  import { CacheProvider, CacheStrategy, CacheStrategyHandler } from "./utils/cache.cjs";
10
10
  import { ClientError } from "./error.cjs";
11
11
  import { RateLimitConfig, createThrottle, parseRateLimitPolicyHeader } from "./utils/rate-limit.cjs";
@@ -63,7 +63,7 @@ interface ContentApiClientConfig<ThrowOnError extends boolean = false, InlineRel
63
63
  *
64
64
  * - `undefined` (default): auto-detect tier from path + `per_page` query param.
65
65
  * - `number`: fixed max concurrent requests per second (single queue).
66
- * - `{ maxConcurrent?: number; adaptToServerHeaders?: boolean }`: full config.
66
+ * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.
67
67
  * - `false`: disable rate limiting entirely.
68
68
  */
69
69
  rateLimit?: RateLimitConfig | number | false;
@@ -81,12 +81,12 @@ interface ContentApiClientConfig<ThrowOnError extends boolean = false, InlineRel
81
81
  }
82
82
  declare const createApiClient: <ThrowOnError extends boolean = false, InlineRelations extends boolean = false>(config: ContentApiClientConfig<ThrowOnError, InlineRelations>) => {
83
83
  datasourceEntries: {
84
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
85
- query?: GetAllData["query"];
84
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
85
+ query?: ListData["query"];
86
86
  signal?: AbortSignal;
87
87
  throwOnError?: ThrowOnError_1;
88
88
  fetchOptions?: FetchOptions;
89
- }) => Promise<ApiResponse<GetAllResponses[200], ThrowOnError_1>>;
89
+ }) => Promise<ApiResponse<ListResponses[200], ThrowOnError_1>>;
90
90
  };
91
91
  datasources: {
92
92
  get: <ThrowOnError_1 extends boolean = false>(id: GetData["path"]["id"], options?: {
@@ -95,12 +95,12 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
95
95
  throwOnError?: ThrowOnError_1;
96
96
  fetchOptions?: FetchOptions;
97
97
  }) => Promise<ApiResponse<GetResponses[200], ThrowOnError_1>>;
98
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
99
- query?: GetAllData$1["query"];
98
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
99
+ query?: ListData$1["query"];
100
100
  signal?: AbortSignal;
101
101
  throwOnError?: ThrowOnError_1;
102
102
  fetchOptions?: FetchOptions;
103
- }) => Promise<ApiResponse<GetAllResponses$1[200], ThrowOnError_1>>;
103
+ }) => Promise<ApiResponse<ListResponses$1[200], ThrowOnError_1>>;
104
104
  };
105
105
  flushCache: () => Promise<void>;
106
106
  get: (path: string, options?: HttpRequestOptions) => Promise<{
@@ -111,12 +111,12 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
111
111
  }>;
112
112
  interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions<"fields", boolean, string>>;
113
113
  links: {
114
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
115
- query?: GetAllData$2["query"];
114
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
115
+ query?: ListData$2["query"];
116
116
  signal?: AbortSignal;
117
117
  throwOnError?: ThrowOnError_1;
118
118
  fetchOptions?: FetchOptions;
119
- }) => Promise<ApiResponse<GetAllResponses$2[200], ThrowOnError_1>>;
119
+ }) => Promise<ApiResponse<ListResponses$2[200], ThrowOnError_1>>;
120
120
  };
121
121
  spaces: {
122
122
  get: <ThrowOnError_1 extends boolean = false>(options?: {
@@ -143,8 +143,8 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
143
143
  }, "story"> & {
144
144
  story: InlineRelations extends true ? StoryWithInlinedRelations : StoryCapi;
145
145
  }, ThrowOnError_1>>;
146
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
147
- query?: GetAllData$3["query"];
146
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
147
+ query?: ListData$3["query"];
148
148
  signal?: AbortSignal;
149
149
  throwOnError?: ThrowOnError_1 | undefined;
150
150
  fetchOptions?: FetchOptions;
@@ -162,12 +162,12 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
162
162
  }, ThrowOnError_1>>;
163
163
  };
164
164
  tags: {
165
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
166
- query?: GetAllData$4["query"];
165
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
166
+ query?: ListData$4["query"];
167
167
  signal?: AbortSignal;
168
168
  throwOnError?: ThrowOnError_1;
169
169
  fetchOptions?: FetchOptions;
170
- }) => Promise<ApiResponse<GetAllResponses$3[200], ThrowOnError_1>>;
170
+ }) => Promise<ApiResponse<ListResponses$3[200], ThrowOnError_1>>;
171
171
  };
172
172
  };
173
173
  //#endregion
package/dist/index.d.mts CHANGED
@@ -1,11 +1,11 @@
1
- import { DatasourceEntryCapi, GetAllData, GetAllResponses } from "./generated/datasource_entries/types.gen.mjs";
2
- import { DatasourceCapi, GetAllData as GetAllData$1, GetAllResponses as GetAllResponses$1, GetData, GetResponses } from "./generated/datasources/types.gen.mjs";
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
3
  import { Middleware } from "./generated/shared/client/utils.gen.mjs";
4
4
  import { ResolvedRequestOptions } from "./generated/shared/client/types.gen.mjs";
5
- import { GetAllData as GetAllData$2, GetAllResponses as GetAllResponses$2, LinkCapi } from "./generated/links/types.gen.mjs";
5
+ import { LinkCapi, ListData as ListData$2, ListResponses as ListResponses$2 } from "./generated/links/types.gen.mjs";
6
6
  import { GetResponses as GetResponses$1, SpaceCapi } from "./generated/spaces/types.gen.mjs";
7
- import { GetAllData as GetAllData$3, GetData as GetData$1, StoryCapi } from "./generated/stories/types.gen.mjs";
8
- import { GetAllData as GetAllData$4, GetAllResponses as GetAllResponses$3, TagCapi } from "./generated/tags/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";
9
9
  import { CacheProvider, CacheStrategy, CacheStrategyHandler } from "./utils/cache.mjs";
10
10
  import { ClientError } from "./error.mjs";
11
11
  import { RateLimitConfig, createThrottle, parseRateLimitPolicyHeader } from "./utils/rate-limit.mjs";
@@ -63,7 +63,7 @@ interface ContentApiClientConfig<ThrowOnError extends boolean = false, InlineRel
63
63
  *
64
64
  * - `undefined` (default): auto-detect tier from path + `per_page` query param.
65
65
  * - `number`: fixed max concurrent requests per second (single queue).
66
- * - `{ maxConcurrent?: number; adaptToServerHeaders?: boolean }`: full config.
66
+ * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.
67
67
  * - `false`: disable rate limiting entirely.
68
68
  */
69
69
  rateLimit?: RateLimitConfig | number | false;
@@ -81,12 +81,12 @@ interface ContentApiClientConfig<ThrowOnError extends boolean = false, InlineRel
81
81
  }
82
82
  declare const createApiClient: <ThrowOnError extends boolean = false, InlineRelations extends boolean = false>(config: ContentApiClientConfig<ThrowOnError, InlineRelations>) => {
83
83
  datasourceEntries: {
84
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
85
- query?: GetAllData["query"];
84
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
85
+ query?: ListData["query"];
86
86
  signal?: AbortSignal;
87
87
  throwOnError?: ThrowOnError_1;
88
88
  fetchOptions?: FetchOptions;
89
- }) => Promise<ApiResponse<GetAllResponses[200], ThrowOnError_1>>;
89
+ }) => Promise<ApiResponse<ListResponses[200], ThrowOnError_1>>;
90
90
  };
91
91
  datasources: {
92
92
  get: <ThrowOnError_1 extends boolean = false>(id: GetData["path"]["id"], options?: {
@@ -95,12 +95,12 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
95
95
  throwOnError?: ThrowOnError_1;
96
96
  fetchOptions?: FetchOptions;
97
97
  }) => Promise<ApiResponse<GetResponses[200], ThrowOnError_1>>;
98
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
99
- query?: GetAllData$1["query"];
98
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
99
+ query?: ListData$1["query"];
100
100
  signal?: AbortSignal;
101
101
  throwOnError?: ThrowOnError_1;
102
102
  fetchOptions?: FetchOptions;
103
- }) => Promise<ApiResponse<GetAllResponses$1[200], ThrowOnError_1>>;
103
+ }) => Promise<ApiResponse<ListResponses$1[200], ThrowOnError_1>>;
104
104
  };
105
105
  flushCache: () => Promise<void>;
106
106
  get: (path: string, options?: HttpRequestOptions) => Promise<{
@@ -111,12 +111,12 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
111
111
  }>;
112
112
  interceptors: Middleware<Request, Response, unknown, ResolvedRequestOptions<"fields", boolean, string>>;
113
113
  links: {
114
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
115
- query?: GetAllData$2["query"];
114
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
115
+ query?: ListData$2["query"];
116
116
  signal?: AbortSignal;
117
117
  throwOnError?: ThrowOnError_1;
118
118
  fetchOptions?: FetchOptions;
119
- }) => Promise<ApiResponse<GetAllResponses$2[200], ThrowOnError_1>>;
119
+ }) => Promise<ApiResponse<ListResponses$2[200], ThrowOnError_1>>;
120
120
  };
121
121
  spaces: {
122
122
  get: <ThrowOnError_1 extends boolean = false>(options?: {
@@ -143,8 +143,8 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
143
143
  }, "story"> & {
144
144
  story: InlineRelations extends true ? StoryWithInlinedRelations : StoryCapi;
145
145
  }, ThrowOnError_1>>;
146
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
147
- query?: GetAllData$3["query"];
146
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
147
+ query?: ListData$3["query"];
148
148
  signal?: AbortSignal;
149
149
  throwOnError?: ThrowOnError_1 | undefined;
150
150
  fetchOptions?: FetchOptions;
@@ -162,12 +162,12 @@ declare const createApiClient: <ThrowOnError extends boolean = false, InlineRela
162
162
  }, ThrowOnError_1>>;
163
163
  };
164
164
  tags: {
165
- getAll: <ThrowOnError_1 extends boolean = false>(options?: {
166
- query?: GetAllData$4["query"];
165
+ list: <ThrowOnError_1 extends boolean = false>(options?: {
166
+ query?: ListData$4["query"];
167
167
  signal?: AbortSignal;
168
168
  throwOnError?: ThrowOnError_1;
169
169
  fetchOptions?: FetchOptions;
170
- }) => Promise<ApiResponse<GetAllResponses$3[200], ThrowOnError_1>>;
170
+ }) => Promise<ApiResponse<ListResponses$3[200], ThrowOnError_1>>;
171
171
  };
172
172
  };
173
173
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import { createClient, createConfig } from './generated/shared/client';\nimport type { StoryCapi } from './generated/stories';\nimport type { CacheProvider, CacheStrategy, CacheStrategyHandler } from './utils/cache';\nimport { createMemoryCacheProvider, createStrategy } from './utils/cache';\nimport { ClientError } from './error';\nimport type { RateLimitConfig } from './utils/rate-limit';\nimport { createThrottleManager } from './utils/rate-limit';\nimport { applyCvToQuery, extractCv } from './utils/cv';\nimport { createCacheKey, shouldUseCache } from './utils/request';\nimport { getRegionBaseUrl, type Region } from '@storyblok/region-helper';\nimport type { RetryOptions } from 'ky';\nimport type { Client } from './generated/shared/client';\nimport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions, RequestWithCacheOptions, ResourceDeps } from './types';\nimport { createStoriesResource } from './resources/stories';\nimport { createLinksResource } from './resources/links';\nimport { createTagsResource } from './resources/tags';\nimport { createDatasourcesResource } from './resources/datasources';\nimport { createDatasourceEntriesResource } from './resources/datasource-entries';\nimport { createSpacesResource } from './resources/spaces';\n\ntype Prettify<T> = {\n [K in keyof T]: T[K];\n} & {};\n\nexport type Story = Prettify<StoryCapi>;\nexport { ClientError } from './error';\nexport type { DatasourceEntryCapi as DatasourceEntry } from './generated/datasource_entries/types.gen';\nexport type { DatasourceCapi as Datasource } from './generated/datasources/types.gen';\nexport type { LinkCapi as Link } from './generated/links/types.gen';\nexport type { Middleware } from './generated/shared/client/utils.gen';\nexport type { SpaceCapi as Space } from './generated/spaces/types.gen';\nexport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions };\nexport type { CacheProvider, CacheStrategy, CacheStrategyHandler };\nexport type { RateLimitConfig };\nexport type { TagCapi as Tag } from './generated/tags/types.gen';\nexport type { StoryWithInlinedRelations } from './resources/stories';\n\nexport { createThrottle, parseRateLimitPolicyHeader } from './utils/rate-limit';\n\n/**\n * Cache configuration.\n *\n * **Note:** Requests with `version: 'draft'` always bypass the cache regardless\n * of the configured strategy. Only published content is cached.\n */\ninterface CacheConfig {\n /** Custom cache provider. Defaults to an in-memory LRU cache (1 000 entries). */\n provider?: CacheProvider;\n /** Cache strategy for published requests. @default 'cache-first' */\n strategy?: CacheStrategy | CacheStrategyHandler;\n /** Time-to-live in milliseconds for cached entries. @default 60_000 */\n ttlMs?: number;\n /**\n * Controls when the cache is flushed on cv change.\n *\n * - `'auto'` (default): automatically flush the cache whenever the API returns a new cv value.\n * - `'manual'`: never auto-flush; call `client.flushCache()` explicitly (e.g. on webhook trigger).\n */\n flush?: 'auto' | 'manual';\n /**\n * Called when SWR background revalidation fails.\n * Only relevant when `strategy` is `'swr'`.\n * @default console.warn\n */\n onRevalidationError?: (error: unknown) => void;\n}\n\nexport interface ContentApiClientConfig<\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n> {\n accessToken: string;\n region?: Region;\n baseUrl?: string;\n headers?: Record<string, string>;\n throwOnError?: ThrowOnError;\n cache?: CacheConfig;\n inlineRelations?: InlineRelations;\n retry?: RetryOptions;\n /**\n * Request timeout in milliseconds.\n * @default 30_000\n */\n timeout?: number;\n /**\n * Preventive rate limiting to avoid hitting the Storyblok CDN rate limits.\n *\n * - `undefined` (default): auto-detect tier from path + `per_page` query param.\n * - `number`: fixed max concurrent requests per second (single queue).\n * - `{ maxConcurrent?: number; adaptToServerHeaders?: boolean }`: full config.\n * - `false`: disable rate limiting entirely.\n */\n rateLimit?: RateLimitConfig | number | false;\n /**\n * Custom `fetch` function to use for all requests.\n * Must be fully compatible with the Fetch API standard.\n *\n * Use cases:\n * - SSR framework fetch wrappers (e.g., Next.js `fetch` with caching)\n * - Custom instrumentation or logging around requests\n *\n * @default globalThis.fetch\n */\n fetch?: typeof globalThis.fetch;\n}\n\nexport const createApiClient = <\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n>(\n config: ContentApiClientConfig<ThrowOnError, InlineRelations>,\n) => {\n const {\n accessToken,\n region = 'eu',\n baseUrl,\n headers = {},\n throwOnError = false,\n cache = {},\n inlineRelations = false,\n retry,\n timeout = 30_000,\n rateLimit,\n fetch: customFetch,\n } = config;\n const retryOptions: RetryOptions = { limit: 3, backoffLimit: 20_000, jitter: true, ...retry };\n // `rateLimit` defaults to `{}` (auto-detect mode) when not supplied.\n const throttleManager = createThrottleManager(rateLimit ?? {});\n const cacheProvider = cache.provider ?? createMemoryCacheProvider();\n const swrOptions = cache.onRevalidationError ? { onRevalidationError: cache.onRevalidationError } : undefined;\n const strategy = cache.strategy\n ? typeof cache.strategy === 'string'\n ? createStrategy(cache.strategy, swrOptions)\n : cache.strategy\n : createStrategy('cache-first');\n const cacheTtlMs = cache.ttlMs ?? 60_000;\n const cacheFlush = cache.flush ?? 'auto';\n let currentCv: number | undefined;\n\n const client: Client = createClient(\n createConfig({\n auth: accessToken,\n baseUrl: baseUrl || getRegionBaseUrl(region),\n headers,\n throwOnError,\n kyOptions: {\n // Enable `throwHttpErrors` to make retry work, even if `throwOnError`\n // is `false`. The client's error handling will still work because it\n // catches `HTTPError`.\n throwHttpErrors: true,\n timeout,\n retry: retryOptions,\n ...(customFetch && { fetch: customFetch }),\n },\n }),\n );\n\n client.interceptors.error.use(\n (error: unknown, response: Response) =>\n new ClientError(response?.statusText || 'API request failed', {\n status: response?.status ?? 0,\n statusText: response?.statusText ?? '',\n data: error,\n }),\n );\n\n const security = [\n {\n in: 'query' as const,\n name: 'token',\n type: 'apiKey' as const,\n },\n ];\n\n const updateCv = async (result: ApiResponse): Promise<boolean> => {\n const nextCv = extractCv(result.data);\n if (nextCv === undefined) {\n return true;\n }\n\n // Guard against cv regression: SWR background revalidation may carry a\n // stale cv from a prior request; never move cv backward.\n if (currentCv !== undefined && nextCv < currentCv) {\n return false;\n }\n\n if (cacheFlush === 'auto' && currentCv !== undefined && currentCv !== nextCv) {\n await cacheProvider.flush();\n }\n\n currentCv = nextCv;\n return true;\n };\n\n const cacheSuccessResult = async <TResponse extends ApiResponse>(key: string, result: TResponse) => {\n const shouldCacheResult = await updateCv(result);\n if (result.error === undefined && shouldCacheResult) {\n await cacheProvider.set(key, {\n value: result,\n ttlMs: cacheTtlMs,\n });\n }\n return result;\n };\n\n const requestNetwork = async (\n method: 'GET',\n path: string,\n query: Record<string, unknown>,\n options: HttpRequestOptions,\n ): Promise<ApiResponse> => {\n return client.request<unknown, ClientError, boolean>({\n ...options,\n method,\n query,\n security,\n url: path,\n });\n };\n\n /**\n * Wraps a raw SDK call to cast the `error: unknown` type returned by\n * generated code to `ClientError` — the error interceptor ensures the\n * runtime value IS a ClientError.\n */\n const asApiResponse = <TData, ThrowOnError extends boolean = false>(\n p: Promise<unknown>,\n ): Promise<ApiResponse<TData, ThrowOnError>> => p as unknown as Promise<ApiResponse<TData, ThrowOnError>>;\n\n const requestWithCache = async <TData = unknown, ThrowOnError extends boolean = false>(\n method: 'GET',\n path: string,\n rawQuery: Record<string, unknown>,\n fetchFn: (query: Record<string, unknown>) => Promise<ApiResponse<TData, ThrowOnError>>,\n cacheOptions?: RequestWithCacheOptions,\n ): Promise<ApiResponse<TData, ThrowOnError>> => {\n const query = currentCv !== undefined ? applyCvToQuery(rawQuery, currentCv) : rawQuery;\n const cacheEnabled = shouldUseCache(method, path, rawQuery);\n\n if (!cacheEnabled) {\n const networkResult = await fetchFn(query);\n throttleManager.adaptToResponse(networkResult.response);\n await updateCv(networkResult);\n return networkResult;\n }\n\n const baseKey = createCacheKey(method, path, rawQuery);\n const key = cacheOptions?.cacheKeyPrefix ? `${cacheOptions.cacheKeyPrefix}:${baseKey}` : baseKey;\n const cachedEntry = await cacheProvider.get<ApiResponse<TData, ThrowOnError>>(key);\n const cachedResult = cachedEntry?.value;\n\n const loadNetwork = async () => {\n const result = await fetchFn(query);\n throttleManager.adaptToResponse(result.response);\n return cacheSuccessResult(key, result);\n };\n\n return strategy({\n key,\n cachedResult,\n loadNetwork,\n });\n };\n\n const request = async (\n method: 'GET',\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse> => {\n const rawQuery = options.query || {};\n\n return requestWithCache(method, path, rawQuery, (query) => {\n return throttleManager.execute(path, rawQuery, () => requestNetwork(method, path, query, options));\n });\n };\n\n const getRequest = (\n path: string,\n options: HttpRequestOptions = {},\n ) => {\n return request('GET', path, options);\n };\n\n const resourceDeps: ResourceDeps = {\n client,\n requestWithCache,\n asApiResponse,\n throttleManager,\n };\n\n const stories = createStoriesResource<InlineRelations>({\n ...resourceDeps,\n inlineRelations,\n });\n\n /**\n * Flush the in-memory cache and reset the tracked cv.\n *\n * Call this explicitly when `cache.flush` is set to `'manual'`, e.g. after\n * receiving a Storyblok webhook event that signals content has changed.\n */\n const flushCache = async (): Promise<void> => {\n await cacheProvider.flush();\n currentCv = undefined;\n };\n\n return {\n datasourceEntries: createDatasourceEntriesResource(resourceDeps),\n datasources: createDatasourcesResource(resourceDeps),\n flushCache,\n get: getRequest,\n interceptors: client.interceptors,\n links: createLinksResource(resourceDeps),\n spaces: createSpacesResource(resourceDeps),\n stories,\n tags: createTagsResource(resourceDeps),\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import { createClient, createConfig } from './generated/shared/client';\nimport type { StoryCapi } from './generated/stories';\nimport type { CacheProvider, CacheStrategy, CacheStrategyHandler } from './utils/cache';\nimport { createMemoryCacheProvider, createStrategy } from './utils/cache';\nimport { ClientError } from './error';\nimport type { RateLimitConfig } from './utils/rate-limit';\nimport { createThrottleManager } from './utils/rate-limit';\nimport { applyCvToQuery, extractCv } from './utils/cv';\nimport { createCacheKey, shouldUseCache } from './utils/request';\nimport { getRegionBaseUrl, type Region } from '@storyblok/region-helper';\nimport type { RetryOptions } from 'ky';\nimport type { Client } from './generated/shared/client';\nimport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions, RequestWithCacheOptions, ResourceDeps } from './types';\nimport { createStoriesResource } from './resources/stories';\nimport { createLinksResource } from './resources/links';\nimport { createTagsResource } from './resources/tags';\nimport { createDatasourcesResource } from './resources/datasources';\nimport { createDatasourceEntriesResource } from './resources/datasource-entries';\nimport { createSpacesResource } from './resources/spaces';\n\ntype Prettify<T> = {\n [K in keyof T]: T[K];\n} & {};\n\nexport type Story = Prettify<StoryCapi>;\nexport { ClientError } from './error';\nexport type { DatasourceEntryCapi as DatasourceEntry } from './generated/datasource_entries/types.gen';\nexport type { DatasourceCapi as Datasource } from './generated/datasources/types.gen';\nexport type { LinkCapi as Link } from './generated/links/types.gen';\nexport type { Middleware } from './generated/shared/client/utils.gen';\nexport type { SpaceCapi as Space } from './generated/spaces/types.gen';\nexport type { ApiResponse, FetchOptions, HttpRequestMethod, HttpRequestOptions };\nexport type { CacheProvider, CacheStrategy, CacheStrategyHandler };\nexport type { RateLimitConfig };\nexport type { TagCapi as Tag } from './generated/tags/types.gen';\nexport type { StoryWithInlinedRelations } from './resources/stories';\n\nexport { createThrottle, parseRateLimitPolicyHeader } from './utils/rate-limit';\n\n/**\n * Cache configuration.\n *\n * **Note:** Requests with `version: 'draft'` always bypass the cache regardless\n * of the configured strategy. Only published content is cached.\n */\ninterface CacheConfig {\n /** Custom cache provider. Defaults to an in-memory LRU cache (1 000 entries). */\n provider?: CacheProvider;\n /** Cache strategy for published requests. @default 'cache-first' */\n strategy?: CacheStrategy | CacheStrategyHandler;\n /** Time-to-live in milliseconds for cached entries. @default 60_000 */\n ttlMs?: number;\n /**\n * Controls when the cache is flushed on cv change.\n *\n * - `'auto'` (default): automatically flush the cache whenever the API returns a new cv value.\n * - `'manual'`: never auto-flush; call `client.flushCache()` explicitly (e.g. on webhook trigger).\n */\n flush?: 'auto' | 'manual';\n /**\n * Called when SWR background revalidation fails.\n * Only relevant when `strategy` is `'swr'`.\n * @default console.warn\n */\n onRevalidationError?: (error: unknown) => void;\n}\n\nexport interface ContentApiClientConfig<\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n> {\n accessToken: string;\n region?: Region;\n baseUrl?: string;\n headers?: Record<string, string>;\n throwOnError?: ThrowOnError;\n cache?: CacheConfig;\n inlineRelations?: InlineRelations;\n retry?: RetryOptions;\n /**\n * Request timeout in milliseconds.\n * @default 30_000\n */\n timeout?: number;\n /**\n * Preventive rate limiting to avoid hitting the Storyblok CDN rate limits.\n *\n * - `undefined` (default): auto-detect tier from path + `per_page` query param.\n * - `number`: fixed max concurrent requests per second (single queue).\n * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.\n * - `false`: disable rate limiting entirely.\n */\n rateLimit?: RateLimitConfig | number | false;\n /**\n * Custom `fetch` function to use for all requests.\n * Must be fully compatible with the Fetch API standard.\n *\n * Use cases:\n * - SSR framework fetch wrappers (e.g., Next.js `fetch` with caching)\n * - Custom instrumentation or logging around requests\n *\n * @default globalThis.fetch\n */\n fetch?: typeof globalThis.fetch;\n}\n\nexport const createApiClient = <\n ThrowOnError extends boolean = false,\n InlineRelations extends boolean = false,\n>(\n config: ContentApiClientConfig<ThrowOnError, InlineRelations>,\n) => {\n const {\n accessToken,\n region = 'eu',\n baseUrl,\n headers = {},\n throwOnError = false,\n cache = {},\n inlineRelations = false,\n retry,\n timeout = 30_000,\n rateLimit,\n fetch: customFetch,\n } = config;\n const retryOptions: RetryOptions = { limit: 3, backoffLimit: 20_000, jitter: true, ...retry };\n // `rateLimit` defaults to `{}` (auto-detect mode) when not supplied.\n const throttleManager = createThrottleManager(rateLimit ?? {});\n const cacheProvider = cache.provider ?? createMemoryCacheProvider();\n const swrOptions = cache.onRevalidationError ? { onRevalidationError: cache.onRevalidationError } : undefined;\n const strategy = cache.strategy\n ? typeof cache.strategy === 'string'\n ? createStrategy(cache.strategy, swrOptions)\n : cache.strategy\n : createStrategy('cache-first');\n const cacheTtlMs = cache.ttlMs ?? 60_000;\n const cacheFlush = cache.flush ?? 'auto';\n let currentCv: number | undefined;\n\n const client: Client = createClient(\n createConfig({\n auth: accessToken,\n baseUrl: baseUrl || getRegionBaseUrl(region),\n headers,\n throwOnError,\n kyOptions: {\n // Enable `throwHttpErrors` to make retry work, even if `throwOnError`\n // is `false`. The client's error handling will still work because it\n // catches `HTTPError`.\n throwHttpErrors: true,\n timeout,\n retry: retryOptions,\n ...(customFetch && { fetch: customFetch }),\n },\n }),\n );\n\n client.interceptors.error.use(\n (error: unknown, response: Response) =>\n new ClientError(response?.statusText || 'API request failed', {\n status: response?.status ?? 0,\n statusText: response?.statusText ?? '',\n data: error,\n }),\n );\n\n const security = [\n {\n in: 'query' as const,\n name: 'token',\n type: 'apiKey' as const,\n },\n ];\n\n const updateCv = async (result: ApiResponse): Promise<boolean> => {\n const nextCv = extractCv(result.data);\n if (nextCv === undefined) {\n return true;\n }\n\n // Guard against cv regression: SWR background revalidation may carry a\n // stale cv from a prior request; never move cv backward.\n if (currentCv !== undefined && nextCv < currentCv) {\n return false;\n }\n\n if (cacheFlush === 'auto' && currentCv !== undefined && currentCv !== nextCv) {\n await cacheProvider.flush();\n }\n\n currentCv = nextCv;\n return true;\n };\n\n const cacheSuccessResult = async <TResponse extends ApiResponse>(key: string, result: TResponse) => {\n const shouldCacheResult = await updateCv(result);\n if (result.error === undefined && shouldCacheResult) {\n await cacheProvider.set(key, {\n value: result,\n ttlMs: cacheTtlMs,\n });\n }\n return result;\n };\n\n const requestNetwork = async (\n method: 'GET',\n path: string,\n query: Record<string, unknown>,\n options: HttpRequestOptions,\n ): Promise<ApiResponse> => {\n return client.request<unknown, ClientError, boolean>({\n ...options,\n method,\n query,\n security,\n url: path,\n });\n };\n\n /**\n * Wraps a raw SDK call to cast the `error: unknown` type returned by\n * generated code to `ClientError` — the error interceptor ensures the\n * runtime value IS a ClientError.\n */\n const asApiResponse = <TData, ThrowOnError extends boolean = false>(\n p: Promise<unknown>,\n ): Promise<ApiResponse<TData, ThrowOnError>> => p as unknown as Promise<ApiResponse<TData, ThrowOnError>>;\n\n const requestWithCache = async <TData = unknown, ThrowOnError extends boolean = false>(\n method: 'GET',\n path: string,\n rawQuery: Record<string, unknown>,\n fetchFn: (query: Record<string, unknown>) => Promise<ApiResponse<TData, ThrowOnError>>,\n cacheOptions?: RequestWithCacheOptions,\n ): Promise<ApiResponse<TData, ThrowOnError>> => {\n const query = currentCv !== undefined ? applyCvToQuery(rawQuery, currentCv) : rawQuery;\n const cacheEnabled = shouldUseCache(method, path, rawQuery);\n\n if (!cacheEnabled) {\n const networkResult = await fetchFn(query);\n throttleManager.adaptToResponse(networkResult.response);\n await updateCv(networkResult);\n return networkResult;\n }\n\n const baseKey = createCacheKey(method, path, rawQuery);\n const key = cacheOptions?.cacheKeyPrefix ? `${cacheOptions.cacheKeyPrefix}:${baseKey}` : baseKey;\n const cachedEntry = await cacheProvider.get<ApiResponse<TData, ThrowOnError>>(key);\n const cachedResult = cachedEntry?.value;\n\n const loadNetwork = async () => {\n const result = await fetchFn(query);\n throttleManager.adaptToResponse(result.response);\n return cacheSuccessResult(key, result);\n };\n\n return strategy({\n key,\n cachedResult,\n loadNetwork,\n });\n };\n\n const request = async (\n method: 'GET',\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse> => {\n const rawQuery = options.query || {};\n\n return requestWithCache(method, path, rawQuery, (query) => {\n return throttleManager.execute(path, rawQuery, () => requestNetwork(method, path, query, options));\n });\n };\n\n const getRequest = (\n path: string,\n options: HttpRequestOptions = {},\n ) => {\n return request('GET', path, options);\n };\n\n const resourceDeps: ResourceDeps = {\n client,\n requestWithCache,\n asApiResponse,\n throttleManager,\n };\n\n const stories = createStoriesResource<InlineRelations>({\n ...resourceDeps,\n inlineRelations,\n });\n\n /**\n * Flush the in-memory cache and reset the tracked cv.\n *\n * Call this explicitly when `cache.flush` is set to `'manual'`, e.g. after\n * receiving a Storyblok webhook event that signals content has changed.\n */\n const flushCache = async (): Promise<void> => {\n await cacheProvider.flush();\n currentCv = undefined;\n };\n\n return {\n datasourceEntries: createDatasourceEntriesResource(resourceDeps),\n datasources: createDatasourcesResource(resourceDeps),\n flushCache,\n get: getRequest,\n interceptors: client.interceptors,\n links: createLinksResource(resourceDeps),\n spaces: createSpacesResource(resourceDeps),\n stories,\n tags: createTagsResource(resourceDeps),\n };\n};\n"],"mappings":"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"}
@@ -3,11 +3,11 @@ const require_sdk_gen = require('../generated/datasource_entries/sdk.gen.cjs');
3
3
  //#region src/resources/datasource-entries.ts
4
4
  function createDatasourceEntriesResource(deps) {
5
5
  const { client, requestWithCache, asApiResponse, throttleManager } = deps;
6
- return { getAll: async (options = {}) => {
6
+ return { list: async (options = {}) => {
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.getAll({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.list({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasource-entries.cjs","names":["getAllDatasourceEntriesApi"],"sources":["../../src/resources/datasource-entries.ts"],"sourcesContent":["import { getAll as getAllDatasourceEntriesApi } from '../generated/datasource_entries/sdk.gen';\nimport type {\n GetAllData as DatasourceEntriesGetAllData,\n GetAllResponses as DatasourceEntriesGetAllResponses,\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 getAll: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourceEntriesGetAllData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourceEntriesGetAllResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasource_entries';\n return requestWithCache<DatasourceEntriesGetAllResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourceEntriesGetAllResponses[200], ThrowOnError>(getAllDatasourceEntriesApi({\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,QAAQ,OACN,UAA4I,EAAE,KAChE;EAC9E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAsE,OAAO,aAAa,QAAQ,iBAA0C;AACjJ,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAmEA,uBAA2B;IAC5F;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":["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,13 +1,13 @@
1
- import { getAll } from "../generated/datasource_entries/sdk.gen.mjs";
1
+ import { list } from "../generated/datasource_entries/sdk.gen.mjs";
2
2
 
3
3
  //#region src/resources/datasource-entries.ts
4
4
  function createDatasourceEntriesResource(deps) {
5
5
  const { client, requestWithCache, asApiResponse, throttleManager } = deps;
6
- return { getAll: async (options = {}) => {
6
+ return { list: async (options = {}) => {
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(getAll({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(list({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasource-entries.mjs","names":["getAllDatasourceEntriesApi"],"sources":["../../src/resources/datasource-entries.ts"],"sourcesContent":["import { getAll as getAllDatasourceEntriesApi } from '../generated/datasource_entries/sdk.gen';\nimport type {\n GetAllData as DatasourceEntriesGetAllData,\n GetAllResponses as DatasourceEntriesGetAllResponses,\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 getAll: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourceEntriesGetAllData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourceEntriesGetAllResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasource_entries';\n return requestWithCache<DatasourceEntriesGetAllResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourceEntriesGetAllResponses[200], ThrowOnError>(getAllDatasourceEntriesApi({\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,QAAQ,OACN,UAA4I,EAAE,KAChE;EAC9E,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAAsE,OAAO,aAAa,QAAQ,iBAA0C;AACjJ,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAmEA,OAA2B;IAC5F;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":["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"}
@@ -21,11 +21,11 @@ function createDatasourcesResource(deps) {
21
21
  })));
22
22
  });
23
23
  },
24
- getAll: async (options = {}) => {
24
+ list: async (options = {}) => {
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.getAll({
28
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.list({
29
29
  client,
30
30
  query: requestQuery,
31
31
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasources.cjs","names":["getDatasourceApi","getAllDatasourcesApi"],"sources":["../../src/resources/datasources.ts"],"sourcesContent":["import { getAll as getAllDatasourcesApi, get as getDatasourceApi } from '../generated/datasources/sdk.gen';\nimport type {\n GetAllData as DatasourcesGetAllData,\n GetAllResponses as DatasourcesGetAllResponses,\n GetData as DatasourcesGetData,\n GetResponses as DatasourcesGetResponses,\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 getAll: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourcesGetAllData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourcesGetAllResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasources';\n return requestWithCache<DatasourcesGetAllResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourcesGetAllResponses[200], ThrowOnError>(getAllDatasourcesApi({\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,QAAQ,OACN,UAAsI,EAAE,KAChE;GACxE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc;AACpB,UAAO,iBAAgE,OAAO,aAAa,QAAQ,iBAA0C;AAC3I,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA6DC,uBAAqB;KAChF;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":["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,4 +1,4 @@
1
- import { get, getAll } from "../generated/datasources/sdk.gen.mjs";
1
+ import { get, list } from "../generated/datasources/sdk.gen.mjs";
2
2
 
3
3
  //#region src/resources/datasources.ts
4
4
  function createDatasourcesResource(deps) {
@@ -21,11 +21,11 @@ function createDatasourcesResource(deps) {
21
21
  })));
22
22
  });
23
23
  },
24
- getAll: async (options = {}) => {
24
+ list: async (options = {}) => {
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(getAll({
28
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(list({
29
29
  client,
30
30
  query: requestQuery,
31
31
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"datasources.mjs","names":["getDatasourceApi","getAllDatasourcesApi"],"sources":["../../src/resources/datasources.ts"],"sourcesContent":["import { getAll as getAllDatasourcesApi, get as getDatasourceApi } from '../generated/datasources/sdk.gen';\nimport type {\n GetAllData as DatasourcesGetAllData,\n GetAllResponses as DatasourcesGetAllResponses,\n GetData as DatasourcesGetData,\n GetResponses as DatasourcesGetResponses,\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 getAll: async <ThrowOnError extends boolean = false>(\n options: { query?: DatasourcesGetAllData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<DatasourcesGetAllResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/datasources';\n return requestWithCache<DatasourcesGetAllResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<DatasourcesGetAllResponses[200], ThrowOnError>(getAllDatasourcesApi({\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,QAAQ,OACN,UAAsI,EAAE,KAChE;GACxE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;GAC3D,MAAM,cAAc;AACpB,UAAO,iBAAgE,OAAO,aAAa,QAAQ,iBAA0C;AAC3I,WAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAA6DC,OAAqB;KAChF;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":["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"}
@@ -3,11 +3,11 @@ const require_sdk_gen = require('../generated/links/sdk.gen.cjs');
3
3
  //#region src/resources/links.ts
4
4
  function createLinksResource(deps) {
5
5
  const { client, requestWithCache, asApiResponse, throttleManager } = deps;
6
- return { getAll: async (options = {}) => {
6
+ return { list: async (options = {}) => {
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.getAll({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.list({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"links.cjs","names":["getAllLinks"],"sources":["../../src/resources/links.ts"],"sourcesContent":["import { getAll as getAllLinks } from '../generated/links/sdk.gen';\nimport type { GetAllData as LinksGetAllData, GetAllResponses as LinksGetAllResponses } 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 getAll: async <ThrowOnError extends boolean = false>(\n options: { query?: LinksGetAllData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<LinksGetAllResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/links';\n return requestWithCache<LinksGetAllResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<LinksGetAllResponses[200], ThrowOnError>(getAllLinks({\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,QAAQ,OACN,UAAgI,EAAE,KAChE;EAClE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAA0D,OAAO,aAAa,QAAQ,iBAA0C;AACrI,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAuDA,uBAAY;IACjE;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 { 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,13 +1,13 @@
1
- import { getAll } from "../generated/links/sdk.gen.mjs";
1
+ import { list } from "../generated/links/sdk.gen.mjs";
2
2
 
3
3
  //#region src/resources/links.ts
4
4
  function createLinksResource(deps) {
5
5
  const { client, requestWithCache, asApiResponse, throttleManager } = deps;
6
- return { getAll: async (options = {}) => {
6
+ return { list: async (options = {}) => {
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(getAll({
10
+ return throttleManager.execute(requestPath, requestQuery, () => asApiResponse(list({
11
11
  client,
12
12
  query: requestQuery,
13
13
  signal,
@@ -1 +1 @@
1
- {"version":3,"file":"links.mjs","names":["getAllLinks"],"sources":["../../src/resources/links.ts"],"sourcesContent":["import { getAll as getAllLinks } from '../generated/links/sdk.gen';\nimport type { GetAllData as LinksGetAllData, GetAllResponses as LinksGetAllResponses } 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 getAll: async <ThrowOnError extends boolean = false>(\n options: { query?: LinksGetAllData['query']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {},\n ): Promise<ApiResponse<LinksGetAllResponses[200], ThrowOnError>> => {\n const { query = {}, signal, throwOnError, fetchOptions } = options;\n const requestPath = '/v2/cdn/links';\n return requestWithCache<LinksGetAllResponses[200], ThrowOnError>('GET', requestPath, query, (requestQuery: Record<string, unknown>) => {\n return throttleManager.execute(requestPath, requestQuery, () =>\n asApiResponse<LinksGetAllResponses[200], ThrowOnError>(getAllLinks({\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,QAAQ,OACN,UAAgI,EAAE,KAChE;EAClE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,cAAc,iBAAiB;EAC3D,MAAM,cAAc;AACpB,SAAO,iBAA0D,OAAO,aAAa,QAAQ,iBAA0C;AACrI,UAAO,gBAAgB,QAAQ,aAAa,oBAC1C,cAAuDA,OAAY;IACjE;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.mjs","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,KAAU;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"}
@@ -40,11 +40,11 @@ function createStoriesResource(deps) {
40
40
  };
41
41
  }, inlineRelations ? { cacheKeyPrefix: "inline" } : void 0);
42
42
  },
43
- getAll: async (options = {}) => {
43
+ list: async (options = {}) => {
44
44
  const { query = {}, signal, throwOnError, fetchOptions } = options;
45
45
  const requestPath = "/v2/cdn/stories";
46
46
  return requestWithCache("GET", requestPath, query, async (requestQuery) => {
47
- const response = await throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.getAll({
47
+ const response = await throttleManager.execute(requestPath, requestQuery, () => asApiResponse(require_sdk_gen.list({
48
48
  client,
49
49
  query: requestQuery,
50
50
  signal,