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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/client.cjs +190 -0
  2. package/dist/client.cjs.map +1 -0
  3. package/dist/client.d.cts +624 -0
  4. package/dist/client.d.mts +624 -0
  5. package/dist/client.mjs +189 -0
  6. package/dist/client.mjs.map +1 -0
  7. package/dist/error.cjs.map +1 -1
  8. package/dist/error.d.cts +12 -2
  9. package/dist/error.d.mts +12 -2
  10. package/dist/error.mjs.map +1 -1
  11. package/dist/generated/asset_folders/types.gen.d.cts +5 -31
  12. package/dist/generated/asset_folders/types.gen.d.mts +5 -31
  13. package/dist/generated/assets/types.gen.d.cts +1 -73
  14. package/dist/generated/assets/types.gen.d.mts +1 -73
  15. package/dist/generated/component_folders/types.gen.d.cts +29 -45
  16. package/dist/generated/component_folders/types.gen.d.mts +29 -45
  17. package/dist/generated/components/types.gen.d.cts +636 -465
  18. package/dist/generated/components/types.gen.d.mts +636 -465
  19. package/dist/generated/datasource_entries/types.gen.d.cts +6 -32
  20. package/dist/generated/datasource_entries/types.gen.d.mts +6 -32
  21. package/dist/generated/datasources/types.gen.d.cts +18 -39
  22. package/dist/generated/datasources/types.gen.d.mts +18 -39
  23. package/dist/generated/internal_tags/types.gen.d.cts +28 -32
  24. package/dist/generated/internal_tags/types.gen.d.mts +28 -32
  25. package/dist/generated/presets/types.gen.d.cts +53 -58
  26. package/dist/generated/presets/types.gen.d.mts +53 -58
  27. package/dist/generated/spaces/types.gen.d.cts +1 -41
  28. package/dist/generated/spaces/types.gen.d.mts +1 -41
  29. package/dist/generated/stories/types.gen.d.cts +206 -198
  30. package/dist/generated/stories/types.gen.d.mts +206 -198
  31. package/dist/generated/users/types.gen.d.cts +13 -112
  32. package/dist/generated/users/types.gen.d.mts +13 -112
  33. package/dist/index.cjs +3 -178
  34. package/dist/index.d.cts +8 -425
  35. package/dist/index.d.mts +8 -425
  36. package/dist/index.mjs +2 -176
  37. package/dist/resources/asset-folders.cjs.map +1 -1
  38. package/dist/resources/asset-folders.mjs.map +1 -1
  39. package/dist/resources/assets.cjs +11 -2
  40. package/dist/resources/assets.cjs.map +1 -1
  41. package/dist/resources/assets.d.cts +3 -2
  42. package/dist/resources/assets.d.mts +3 -2
  43. package/dist/resources/assets.mjs +11 -2
  44. package/dist/resources/assets.mjs.map +1 -1
  45. package/dist/resources/component-folders.cjs.map +1 -1
  46. package/dist/resources/component-folders.mjs.map +1 -1
  47. package/dist/resources/components.cjs.map +1 -1
  48. package/dist/resources/components.mjs.map +1 -1
  49. package/dist/resources/datasource-entries.cjs.map +1 -1
  50. package/dist/resources/datasource-entries.mjs.map +1 -1
  51. package/dist/resources/datasources.cjs.map +1 -1
  52. package/dist/resources/datasources.mjs.map +1 -1
  53. package/dist/resources/internal-tags.cjs.map +1 -1
  54. package/dist/resources/internal-tags.mjs.map +1 -1
  55. package/dist/resources/presets.cjs.map +1 -1
  56. package/dist/resources/presets.mjs.map +1 -1
  57. package/dist/resources/spaces.cjs.map +1 -1
  58. package/dist/resources/spaces.mjs.map +1 -1
  59. package/dist/resources/stories.cjs.map +1 -1
  60. package/dist/resources/stories.d.cts +105 -0
  61. package/dist/resources/stories.d.mts +105 -0
  62. package/dist/resources/stories.mjs.map +1 -1
  63. package/dist/resources/users.cjs.map +1 -1
  64. package/dist/resources/users.mjs.map +1 -1
  65. package/package.json +13 -10
  66. package/test/GUIDE.md +59 -0
  67. package/test/setup.e2e.ts +11 -0
  68. package/test/specs/mapi-round-trip.spec.e2e.ts +520 -0
  69. package/vitest.config.e2e.ts +26 -0
  70. package/vitest.config.ts +3 -0
  71. package/dist/index.cjs.map +0 -1
  72. package/dist/index.mjs.map +0 -1
  73. package/dist/types.d.cts +0 -130
  74. package/dist/types.d.mts +0 -130
@@ -0,0 +1,189 @@
1
+ import { createConfig } from "./generated/shared/client/utils.gen.mjs";
2
+ import { createClient } from "./generated/shared/client/client.gen.mjs";
3
+ import "./generated/shared/client/index.mjs";
4
+ import { ClientError } from "./error.mjs";
5
+ import { createThrottleManager } from "./utils/rate-limit.mjs";
6
+ import { createAssetFoldersResource } from "./resources/asset-folders.mjs";
7
+ import { createAssetsResource } from "./resources/assets.mjs";
8
+ import { createComponentFoldersResource } from "./resources/component-folders.mjs";
9
+ import { createComponentsResource } from "./resources/components.mjs";
10
+ import { createDatasourceEntriesResource } from "./resources/datasource-entries.mjs";
11
+ import { createDatasourcesResource } from "./resources/datasources.mjs";
12
+ import { createInternalTagsResource } from "./resources/internal-tags.mjs";
13
+ import { createPresetsResource } from "./resources/presets.mjs";
14
+ import { createSpacesResource } from "./resources/spaces.mjs";
15
+ import { createStoriesResource } from "./resources/stories.mjs";
16
+ import { createUsersResource } from "./resources/users.mjs";
17
+ import { getManagementBaseUrl } from "@storyblok/region-helper";
18
+
19
+ //#region src/client.ts
20
+ function getAuthorizationHeader(config) {
21
+ if (config.personalAccessToken) return config.personalAccessToken;
22
+ if (config.oauthToken) return config.oauthToken.startsWith("Bearer ") ? config.oauthToken : `Bearer ${config.oauthToken}`;
23
+ }
24
+ const createManagementApiClientBase = (config) => {
25
+ const { spaceId, region = "eu", baseUrl, headers = {}, throwOnError = false, retry = {
26
+ limit: 12,
27
+ backoffLimit: 2e4,
28
+ methods: [
29
+ "get",
30
+ "post",
31
+ "put",
32
+ "delete",
33
+ "patch",
34
+ "head",
35
+ "options",
36
+ "trace"
37
+ ],
38
+ statusCodes: [429]
39
+ }, timeout = 3e4, rateLimit } = config;
40
+ const throttleManager = createThrottleManager(rateLimit ?? {});
41
+ const authHeader = getAuthorizationHeader(config);
42
+ const client = createClient(createConfig({
43
+ baseUrl: baseUrl || getManagementBaseUrl(region),
44
+ headers: {
45
+ ...authHeader ? { Authorization: authHeader } : {},
46
+ ...headers
47
+ },
48
+ throwOnError,
49
+ kyOptions: {
50
+ throwHttpErrors: true,
51
+ timeout,
52
+ retry
53
+ }
54
+ }));
55
+ client.interceptors.error.use((error, response) => new ClientError(response?.statusText || "API request failed", {
56
+ status: response?.status ?? 0,
57
+ statusText: response?.statusText ?? "",
58
+ data: error
59
+ }));
60
+ function wrapRequest(fn, _throwOnError) {
61
+ return throttleManager.execute(async () => {
62
+ const result = await fn();
63
+ throttleManager.adaptToResponse(result.response);
64
+ return result;
65
+ });
66
+ }
67
+ const deps = {
68
+ client,
69
+ spaceId,
70
+ wrapRequest
71
+ };
72
+ return {
73
+ deps,
74
+ resources: buildResources(deps, client)
75
+ };
76
+ };
77
+ function buildResources(deps, client) {
78
+ /**
79
+ * Escape hatch: send a GET request to any MAPI endpoint not yet wrapped
80
+ * in a dedicated resource method.
81
+ */
82
+ const httpGet = (path, options = {}) => {
83
+ const { fetchOptions, ...rest } = options;
84
+ return deps.wrapRequest(() => client.get({
85
+ url: path,
86
+ ...rest,
87
+ ...fetchOptions ? { kyOptions: {
88
+ ...client.getConfig().kyOptions,
89
+ ...fetchOptions
90
+ } } : {}
91
+ }));
92
+ };
93
+ /**
94
+ * Escape hatch: send a POST request to any MAPI endpoint not yet wrapped
95
+ * in a dedicated resource method.
96
+ */
97
+ const httpPost = (path, options = {}) => {
98
+ const { fetchOptions, ...rest } = options;
99
+ return deps.wrapRequest(() => client.post({
100
+ url: path,
101
+ ...rest,
102
+ ...fetchOptions ? { kyOptions: {
103
+ ...client.getConfig().kyOptions,
104
+ ...fetchOptions
105
+ } } : {}
106
+ }));
107
+ };
108
+ /**
109
+ * Escape hatch: send a PUT request to any MAPI endpoint not yet wrapped
110
+ * in a dedicated resource method.
111
+ */
112
+ const httpPut = (path, options = {}) => {
113
+ const { fetchOptions, ...rest } = options;
114
+ return deps.wrapRequest(() => client.put({
115
+ url: path,
116
+ ...rest,
117
+ ...fetchOptions ? { kyOptions: {
118
+ ...client.getConfig().kyOptions,
119
+ ...fetchOptions
120
+ } } : {}
121
+ }));
122
+ };
123
+ /**
124
+ * Escape hatch: send a PATCH request to any MAPI endpoint not yet wrapped
125
+ * in a dedicated resource method.
126
+ */
127
+ const httpPatch = (path, options = {}) => {
128
+ const { fetchOptions, ...rest } = options;
129
+ return deps.wrapRequest(() => client.patch({
130
+ url: path,
131
+ ...rest,
132
+ ...fetchOptions ? { kyOptions: {
133
+ ...client.getConfig().kyOptions,
134
+ ...fetchOptions
135
+ } } : {}
136
+ }));
137
+ };
138
+ /**
139
+ * Escape hatch: send a DELETE request to any MAPI endpoint not yet wrapped
140
+ * in a dedicated resource method.
141
+ */
142
+ const httpDelete = (path, options = {}) => {
143
+ const { fetchOptions, ...rest } = options;
144
+ return deps.wrapRequest(() => client.delete({
145
+ url: path,
146
+ ...rest,
147
+ ...fetchOptions ? { kyOptions: {
148
+ ...client.getConfig().kyOptions,
149
+ ...fetchOptions
150
+ } } : {}
151
+ }));
152
+ };
153
+ return {
154
+ assetFolders: createAssetFoldersResource(deps),
155
+ assets: createAssetsResource(deps),
156
+ componentFolders: createComponentFoldersResource(deps),
157
+ components: createComponentsResource(deps),
158
+ datasourceEntries: createDatasourceEntriesResource(deps),
159
+ datasources: createDatasourcesResource(deps),
160
+ delete: httpDelete,
161
+ get: httpGet,
162
+ patch: httpPatch,
163
+ interceptors: client.interceptors,
164
+ internalTags: createInternalTagsResource(deps),
165
+ post: httpPost,
166
+ presets: createPresetsResource(deps),
167
+ put: httpPut,
168
+ spaces: createSpacesResource(deps),
169
+ users: createUsersResource({
170
+ client,
171
+ wrapRequest: deps.wrapRequest
172
+ })
173
+ };
174
+ }
175
+ const createManagementApiClient = (config) => {
176
+ const { deps, resources } = createManagementApiClientBase(config);
177
+ const self = {
178
+ ...resources,
179
+ stories: createStoriesResource(deps),
180
+ withTypes() {
181
+ return self;
182
+ }
183
+ };
184
+ return self;
185
+ };
186
+
187
+ //#endregion
188
+ export { createManagementApiClient };
189
+ //# sourceMappingURL=client.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type { Client, ResolvedRequestOptions, RetryOptions } from './generated/shared/client';\nimport type { Middleware } from './generated/shared/client/utils.gen';\nimport { createClient, createConfig } from './generated/shared/client';\nimport { getManagementBaseUrl } from '@storyblok/region-helper';\nimport type { Region } from '@storyblok/region-helper';\nimport type { Block as Component } from '@storyblok/schema';\nimport { ClientError } from './error';\nimport type { RateLimitConfig } from './utils/rate-limit';\nimport { createThrottleManager } from './utils/rate-limit';\nimport { createAssetFoldersResource } from './resources/asset-folders';\nimport { createAssetsResource } from './resources/assets';\nimport { createComponentFoldersResource } from './resources/component-folders';\nimport { createComponentsResource } from './resources/components';\nimport { createDatasourceEntriesResource } from './resources/datasource-entries';\nimport { createDatasourcesResource } from './resources/datasources';\nimport { createInternalTagsResource } from './resources/internal-tags';\nimport { createPresetsResource } from './resources/presets';\nimport { createSpacesResource } from './resources/spaces';\nimport { createStoriesResource } from './resources/stories';\nimport { createUsersResource } from './resources/users';\n\n// ---------------------------------------------------------------------------\n// Client types (co-located with runtime)\n// ---------------------------------------------------------------------------\n\nexport type ApiResponse<T, ThrowOnError extends boolean = false> =\n ThrowOnError extends true\n ? { data: T; error?: never; response: Response; request: Request }\n : | { data: T; error: undefined; response: Response; request: Request }\n | { data: undefined; error: ClientError; response: Response; request: Request };\n\nexport interface RequestConfigOverrides {\n throwOnError?: boolean;\n}\n\n/**\n * Arbitrary options forwarded to the underlying `fetch()` call.\n *\n * Standard `RequestInit` properties (`cache`, `credentials`, `mode`, …) and\n * non-standard, vendor-specific properties (Next.js `next`, Cloudflare `cf`, …)\n * are both supported.\n *\n * @example\n * ```ts\n * client.stories.get(123, {\n * fetchOptions: {\n * cache: 'no-store',\n * next: { revalidate: 60 },\n * },\n * })\n * ```\n */\nexport type FetchOptions = Record<string, unknown>;\n\nexport interface HttpRequestOptions {\n query?: Record<string, unknown>;\n body?: unknown;\n headers?: Record<string, string>;\n signal?: AbortSignal;\n throwOnError?: RequestConfigOverrides['throwOnError'];\n fetchOptions?: FetchOptions;\n}\n\n/**\n * Dependencies injected into every resource factory.\n */\nexport interface MapiResourceDeps<DefaultThrowOnError extends boolean = false> {\n client: Client;\n spaceId?: number;\n wrapRequest: <TData, ThrowOnError extends boolean = DefaultThrowOnError>(fn: () => Promise<unknown>, throwOnError?: ThrowOnError) => Promise<ApiResponse<TData, ThrowOnError>>;\n}\n\ntype TokenConfig =\n | {\n /** Personal access token for authentication. */\n personalAccessToken: string;\n oauthToken?: never;\n }\n | {\n personalAccessToken?: never;\n /** OAuth bearer token for authentication. */\n oauthToken: string;\n }\n | {\n personalAccessToken?: undefined;\n oauthToken?: undefined;\n };\n\nexport type ManagementApiClientConfig<\n ThrowOnError extends boolean = false,\n> = TokenConfig & {\n /**\n * The Storyblok space ID. Used as the default for space-scoped endpoints.\n * You can also override it per request via `path.space_id`.\n */\n spaceId?: number;\n /**\n * Storyblok region. Determines the base URL.\n * @default 'eu'\n */\n region?: Region;\n /**\n * Override the base URL entirely (e.g. for testing).\n */\n baseUrl?: string;\n /**\n * Additional request headers.\n */\n headers?: Record<string, string>;\n /**\n * Throw on HTTP errors instead of returning them.\n * @default false\n */\n throwOnError?: ThrowOnError;\n /**\n * Retry configuration for failed requests.\n */\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 Management API rate limits.\n *\n * - `undefined` (default): single bucket at maxConcurrency: 6.\n * - `number`: fixed max concurrent requests per second.\n * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.\n * - `false`: disable rate limiting entirely.\n */\n rateLimit?: RateLimitConfig | number | false;\n};\n\n// ---------------------------------------------------------------------------\n// Client factory\n// ---------------------------------------------------------------------------\n\nfunction getAuthorizationHeader(config: ManagementApiClientConfig<boolean>): string | undefined {\n if (config.personalAccessToken) {\n return config.personalAccessToken;\n }\n if (config.oauthToken) {\n return config.oauthToken.startsWith('Bearer ')\n ? config.oauthToken\n : `Bearer ${config.oauthToken}`;\n }\n return undefined;\n}\n\nconst createManagementApiClientBase = <DefaultThrowOnError extends boolean = false>(\n config: ManagementApiClientConfig<DefaultThrowOnError>,\n): {\n deps: MapiResourceDeps<DefaultThrowOnError>;\n resources: Omit<ReturnType<typeof buildResources<DefaultThrowOnError>>, never>;\n} => {\n const {\n spaceId,\n region = 'eu',\n baseUrl,\n headers = {},\n throwOnError = false,\n retry = {\n limit: 12,\n backoffLimit: 20_000,\n methods: ['get', 'post', 'put', 'delete', 'patch', 'head', 'options', 'trace'],\n statusCodes: [429],\n },\n timeout = 30_000,\n rateLimit,\n } = config;\n\n const throttleManager = createThrottleManager(rateLimit ?? {});\n const authHeader = getAuthorizationHeader(config);\n\n const client: Client = createClient(\n createConfig({\n baseUrl: baseUrl || getManagementBaseUrl(region),\n headers: {\n ...(authHeader ? { Authorization: authHeader } : {}),\n ...headers,\n },\n throwOnError,\n kyOptions: {\n throwHttpErrors: true,\n timeout,\n retry,\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 function wrapRequest<TData, CurrentThrowOnError extends boolean = DefaultThrowOnError>(\n fn: () => Promise<unknown>,\n _throwOnError?: CurrentThrowOnError,\n ): Promise<ApiResponse<TData, CurrentThrowOnError>> {\n return throttleManager.execute(async () => {\n const result = await fn() as ApiResponse<TData, CurrentThrowOnError>;\n throttleManager.adaptToResponse((result as { response: Response }).response);\n return result;\n }) as Promise<ApiResponse<TData, CurrentThrowOnError>>;\n }\n\n const deps: MapiResourceDeps<DefaultThrowOnError> = { client, spaceId, wrapRequest };\n return { deps, resources: buildResources(deps, client) };\n};\n\nfunction buildResources<DefaultThrowOnError extends boolean = false>(\n deps: MapiResourceDeps<DefaultThrowOnError>,\n client: Client,\n) {\n /**\n * Escape hatch: send a GET request to any MAPI endpoint not yet wrapped\n * in a dedicated resource method.\n */\n const httpGet = <TData = unknown>(\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse<TData, DefaultThrowOnError>> => {\n const { fetchOptions, ...rest } = options;\n return deps.wrapRequest<TData>(() =>\n client.get({ url: path, ...rest, ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }),\n );\n };\n\n /**\n * Escape hatch: send a POST request to any MAPI endpoint not yet wrapped\n * in a dedicated resource method.\n */\n const httpPost = <TData = unknown>(\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse<TData, DefaultThrowOnError>> => {\n const { fetchOptions, ...rest } = options;\n return deps.wrapRequest<TData>(() =>\n client.post({ url: path, ...rest, ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }),\n );\n };\n\n /**\n * Escape hatch: send a PUT request to any MAPI endpoint not yet wrapped\n * in a dedicated resource method.\n */\n const httpPut = <TData = unknown>(\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse<TData, DefaultThrowOnError>> => {\n const { fetchOptions, ...rest } = options;\n return deps.wrapRequest<TData>(() =>\n client.put({ url: path, ...rest, ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }),\n );\n };\n\n /**\n * Escape hatch: send a PATCH request to any MAPI endpoint not yet wrapped\n * in a dedicated resource method.\n */\n const httpPatch = <TData = unknown>(\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse<TData, DefaultThrowOnError>> => {\n const { fetchOptions, ...rest } = options;\n return deps.wrapRequest<TData>(() =>\n client.patch({ url: path, ...rest, ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }),\n );\n };\n\n /**\n * Escape hatch: send a DELETE request to any MAPI endpoint not yet wrapped\n * in a dedicated resource method.\n */\n const httpDelete = <TData = unknown>(\n path: string,\n options: HttpRequestOptions = {},\n ): Promise<ApiResponse<TData, DefaultThrowOnError>> => {\n const { fetchOptions, ...rest } = options;\n return deps.wrapRequest<TData>(() =>\n client.delete({ url: path, ...rest, ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }),\n );\n };\n\n return {\n assetFolders: createAssetFoldersResource(deps),\n assets: createAssetsResource(deps),\n componentFolders: createComponentFoldersResource(deps),\n components: createComponentsResource(deps),\n datasourceEntries: createDatasourceEntriesResource(deps),\n datasources: createDatasourcesResource(deps),\n delete: httpDelete,\n get: httpGet,\n patch: httpPatch,\n interceptors: client.interceptors as Middleware<Request, Response, unknown, ResolvedRequestOptions>,\n internalTags: createInternalTagsResource(deps),\n post: httpPost,\n presets: createPresetsResource(deps),\n put: httpPut,\n spaces: createSpacesResource(deps),\n users: createUsersResource<DefaultThrowOnError>({ client, wrapRequest: deps.wrapRequest }),\n };\n}\n\ntype StoryblokTypesConfig = { components: Component } | { blocks: Component };\n\ntype ResolveComponents<T extends StoryblokTypesConfig> =\n T extends { components: infer C extends Component } ? C\n : T extends { blocks: infer B extends Component } ? B\n : never;\n\n/**\n * The return type of `createManagementApiClient`, parameterised by `TComponents` so that\n * `.stories` methods can narrow story content types without touching the runtime object.\n */\nexport type ManagementApiClient<\n TComponents extends Component = Component,\n DefaultThrowOnError extends boolean = false,\n> = ReturnType<typeof buildResources<DefaultThrowOnError>> & {\n stories: ReturnType<typeof createStoriesResource<TComponents, DefaultThrowOnError>>;\n /**\n * Returns the same client instance cast to a version that narrows story content\n * to the provided component types. No runtime cost — type parameter is erased.\n *\n * Accepts either `{ components: ... }` or `{ blocks: ... }` — the latter matches the\n * `Schema` type produced by `@storyblok/schema`'s `InferSchema`.\n *\n * @example\n * ```ts\n * import type { Schema } from './schema';\n *\n * const client = createManagementApiClient({ personalAccessToken: '...' })\n * .withTypes<Schema>();\n * ```\n */\n withTypes: <T extends StoryblokTypesConfig>() => ManagementApiClient<ResolveComponents<T>, DefaultThrowOnError>;\n};\n\nexport const createManagementApiClient = <\n DefaultThrowOnError extends boolean = false,\n>(\n config: ManagementApiClientConfig<DefaultThrowOnError>,\n): ManagementApiClient<Component, DefaultThrowOnError> => {\n const { deps, resources } = createManagementApiClientBase(config);\n const self: ManagementApiClient<Component, DefaultThrowOnError> = {\n ...resources,\n stories: createStoriesResource<Component, DefaultThrowOnError>(deps),\n withTypes<T extends StoryblokTypesConfig>() {\n return self as unknown as ManagementApiClient<ResolveComponents<T>, DefaultThrowOnError>;\n },\n };\n return self;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"error.cjs","names":[],"sources":["../src/error.ts"],"sourcesContent":["/**\n * Structured HTTP error thrown by the Management API client when `throwOnError: true`.\n */\nexport class ClientError extends Error {\n readonly response: { status: number; statusText: string; data: unknown };\n\n constructor(\n message: string,\n options: { status: number; statusText: string; data: unknown },\n ) {\n super(message);\n this.name = 'ClientError';\n this.response = {\n status: options.status,\n statusText: options.statusText,\n data: options.data,\n };\n }\n}\n"],"mappings":";;;;;AAGA,IAAa,cAAb,cAAiC,MAAM;CACrC,AAAS;CAET,YACE,SACA,SACA;AACA,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,WAAW;GACd,QAAQ,QAAQ;GAChB,YAAY,QAAQ;GACpB,MAAM,QAAQ;GACf"}
1
+ {"version":3,"file":"error.cjs","names":[],"sources":["../src/error.ts"],"sourcesContent":["/**\n * Common shape of error bodies returned by the Storyblok Management API.\n *\n * Most error responses include an `error` field with a human-readable message.\n */\nexport interface ApiErrorBody {\n error?: string;\n message?: string;\n [key: string]: unknown;\n}\n\n/**\n * Structured HTTP error thrown by the Management API client when `throwOnError: true`.\n */\nexport class ClientError extends Error {\n readonly response: { status: number; statusText: string; data: ApiErrorBody | undefined };\n\n constructor(\n message: string,\n options: { status: number; statusText: string; data: unknown },\n ) {\n super(message);\n this.name = 'ClientError';\n this.response = {\n status: options.status,\n statusText: options.statusText,\n data: options.data as ApiErrorBody | undefined,\n };\n }\n}\n"],"mappings":";;;;;AAcA,IAAa,cAAb,cAAiC,MAAM;CACrC,AAAS;CAET,YACE,SACA,SACA;AACA,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,WAAW;GACd,QAAQ,QAAQ;GAChB,YAAY,QAAQ;GACpB,MAAM,QAAQ;GACf"}
package/dist/error.d.cts CHANGED
@@ -1,4 +1,14 @@
1
1
  //#region src/error.d.ts
2
+ /**
3
+ * Common shape of error bodies returned by the Storyblok Management API.
4
+ *
5
+ * Most error responses include an `error` field with a human-readable message.
6
+ */
7
+ interface ApiErrorBody {
8
+ error?: string;
9
+ message?: string;
10
+ [key: string]: unknown;
11
+ }
2
12
  /**
3
13
  * Structured HTTP error thrown by the Management API client when `throwOnError: true`.
4
14
  */
@@ -6,7 +16,7 @@ declare class ClientError extends Error {
6
16
  readonly response: {
7
17
  status: number;
8
18
  statusText: string;
9
- data: unknown;
19
+ data: ApiErrorBody | undefined;
10
20
  };
11
21
  constructor(message: string, options: {
12
22
  status: number;
@@ -15,5 +25,5 @@ declare class ClientError extends Error {
15
25
  });
16
26
  }
17
27
  //#endregion
18
- export { ClientError };
28
+ export { ApiErrorBody, ClientError };
19
29
  //# sourceMappingURL=error.d.cts.map
package/dist/error.d.mts CHANGED
@@ -1,4 +1,14 @@
1
1
  //#region src/error.d.ts
2
+ /**
3
+ * Common shape of error bodies returned by the Storyblok Management API.
4
+ *
5
+ * Most error responses include an `error` field with a human-readable message.
6
+ */
7
+ interface ApiErrorBody {
8
+ error?: string;
9
+ message?: string;
10
+ [key: string]: unknown;
11
+ }
2
12
  /**
3
13
  * Structured HTTP error thrown by the Management API client when `throwOnError: true`.
4
14
  */
@@ -6,7 +16,7 @@ declare class ClientError extends Error {
6
16
  readonly response: {
7
17
  status: number;
8
18
  statusText: string;
9
- data: unknown;
19
+ data: ApiErrorBody | undefined;
10
20
  };
11
21
  constructor(message: string, options: {
12
22
  status: number;
@@ -15,5 +25,5 @@ declare class ClientError extends Error {
15
25
  });
16
26
  }
17
27
  //#endregion
18
- export { ClientError };
28
+ export { ApiErrorBody, ClientError };
19
29
  //# sourceMappingURL=error.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.mjs","names":[],"sources":["../src/error.ts"],"sourcesContent":["/**\n * Structured HTTP error thrown by the Management API client when `throwOnError: true`.\n */\nexport class ClientError extends Error {\n readonly response: { status: number; statusText: string; data: unknown };\n\n constructor(\n message: string,\n options: { status: number; statusText: string; data: unknown },\n ) {\n super(message);\n this.name = 'ClientError';\n this.response = {\n status: options.status,\n statusText: options.statusText,\n data: options.data,\n };\n }\n}\n"],"mappings":";;;;AAGA,IAAa,cAAb,cAAiC,MAAM;CACrC,AAAS;CAET,YACE,SACA,SACA;AACA,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,WAAW;GACd,QAAQ,QAAQ;GAChB,YAAY,QAAQ;GACpB,MAAM,QAAQ;GACf"}
1
+ {"version":3,"file":"error.mjs","names":[],"sources":["../src/error.ts"],"sourcesContent":["/**\n * Common shape of error bodies returned by the Storyblok Management API.\n *\n * Most error responses include an `error` field with a human-readable message.\n */\nexport interface ApiErrorBody {\n error?: string;\n message?: string;\n [key: string]: unknown;\n}\n\n/**\n * Structured HTTP error thrown by the Management API client when `throwOnError: true`.\n */\nexport class ClientError extends Error {\n readonly response: { status: number; statusText: string; data: ApiErrorBody | undefined };\n\n constructor(\n message: string,\n options: { status: number; statusText: string; data: unknown },\n ) {\n super(message);\n this.name = 'ClientError';\n this.response = {\n status: options.status,\n statusText: options.statusText,\n data: options.data as ApiErrorBody | undefined,\n };\n }\n}\n"],"mappings":";;;;AAcA,IAAa,cAAb,cAAiC,MAAM;CACrC,AAAS;CAET,YACE,SACA,SACA;AACA,QAAM,QAAQ;AACd,OAAK,OAAO;AACZ,OAAK,WAAW;GACd,QAAQ,QAAQ;GAChB,YAAY,QAAQ;GACpB,MAAM,QAAQ;GACf"}
@@ -21,12 +21,10 @@ type AssetFolder = {
21
21
  */
22
22
  readonly parent_uuid?: string | null;
23
23
  };
24
- type AssetFolderCreate = AssetFolderCreate2;
25
- type AssetFolderUpdate = AssetFolderUpdate2;
26
24
  /**
27
25
  * Input for creating an asset folder.
28
26
  */
29
- type AssetFolderCreate2 = {
27
+ type AssetFolderCreate = {
30
28
  /**
31
29
  * The name of the asset folder
32
30
  */
@@ -39,7 +37,7 @@ type AssetFolderCreate2 = {
39
37
  /**
40
38
  * Input for updating an asset folder.
41
39
  */
42
- type AssetFolderUpdate2 = {
40
+ type AssetFolderUpdate = {
43
41
  /**
44
42
  * The name of the asset folder
45
43
  */
@@ -77,17 +75,9 @@ type ListData = {
77
75
  };
78
76
  url: '/v1/spaces/{space_id}/asset_folders';
79
77
  };
80
- type ListResponses = {
81
- /**
82
- * List of asset folders
83
- */
84
- 200: {
85
- asset_folders?: Array<AssetFolder>;
86
- };
87
- };
88
78
  type CreateData = {
89
79
  body: {
90
- asset_folder?: AssetFolderCreate2;
80
+ asset_folder?: AssetFolderCreate;
91
81
  };
92
82
  path: {
93
83
  /**
@@ -98,14 +88,6 @@ type CreateData = {
98
88
  query?: never;
99
89
  url: '/v1/spaces/{space_id}/asset_folders';
100
90
  };
101
- type CreateResponses = {
102
- /**
103
- * Asset folder created successfully
104
- */
105
- 201: {
106
- asset_folder?: AssetFolder;
107
- };
108
- };
109
91
  type DeleteData = {
110
92
  body?: never;
111
93
  path: {
@@ -126,17 +108,9 @@ type DeleteData = {
126
108
  };
127
109
  url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
128
110
  };
129
- type GetResponses = {
130
- /**
131
- * Asset folder details
132
- */
133
- 200: {
134
- asset_folder?: AssetFolder;
135
- };
136
- };
137
111
  type UpdateData = {
138
112
  body: {
139
- asset_folder?: AssetFolderUpdate2;
113
+ asset_folder?: AssetFolderUpdate;
140
114
  };
141
115
  path: {
142
116
  /**
@@ -152,5 +126,5 @@ type UpdateData = {
152
126
  url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
153
127
  };
154
128
  //#endregion
155
- export { AssetFolder, AssetFolderCreate, AssetFolderUpdate, CreateData, CreateResponses, DeleteData, GetResponses, ListData, ListResponses, UpdateData };
129
+ export { AssetFolder, CreateData, DeleteData, ListData, UpdateData };
156
130
  //# sourceMappingURL=types.gen.d.cts.map
@@ -21,12 +21,10 @@ type AssetFolder = {
21
21
  */
22
22
  readonly parent_uuid?: string | null;
23
23
  };
24
- type AssetFolderCreate = AssetFolderCreate2;
25
- type AssetFolderUpdate = AssetFolderUpdate2;
26
24
  /**
27
25
  * Input for creating an asset folder.
28
26
  */
29
- type AssetFolderCreate2 = {
27
+ type AssetFolderCreate = {
30
28
  /**
31
29
  * The name of the asset folder
32
30
  */
@@ -39,7 +37,7 @@ type AssetFolderCreate2 = {
39
37
  /**
40
38
  * Input for updating an asset folder.
41
39
  */
42
- type AssetFolderUpdate2 = {
40
+ type AssetFolderUpdate = {
43
41
  /**
44
42
  * The name of the asset folder
45
43
  */
@@ -77,17 +75,9 @@ type ListData = {
77
75
  };
78
76
  url: '/v1/spaces/{space_id}/asset_folders';
79
77
  };
80
- type ListResponses = {
81
- /**
82
- * List of asset folders
83
- */
84
- 200: {
85
- asset_folders?: Array<AssetFolder>;
86
- };
87
- };
88
78
  type CreateData = {
89
79
  body: {
90
- asset_folder?: AssetFolderCreate2;
80
+ asset_folder?: AssetFolderCreate;
91
81
  };
92
82
  path: {
93
83
  /**
@@ -98,14 +88,6 @@ type CreateData = {
98
88
  query?: never;
99
89
  url: '/v1/spaces/{space_id}/asset_folders';
100
90
  };
101
- type CreateResponses = {
102
- /**
103
- * Asset folder created successfully
104
- */
105
- 201: {
106
- asset_folder?: AssetFolder;
107
- };
108
- };
109
91
  type DeleteData = {
110
92
  body?: never;
111
93
  path: {
@@ -126,17 +108,9 @@ type DeleteData = {
126
108
  };
127
109
  url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
128
110
  };
129
- type GetResponses = {
130
- /**
131
- * Asset folder details
132
- */
133
- 200: {
134
- asset_folder?: AssetFolder;
135
- };
136
- };
137
111
  type UpdateData = {
138
112
  body: {
139
- asset_folder?: AssetFolderUpdate2;
113
+ asset_folder?: AssetFolderUpdate;
140
114
  };
141
115
  path: {
142
116
  /**
@@ -152,5 +126,5 @@ type UpdateData = {
152
126
  url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
153
127
  };
154
128
  //#endregion
155
- export { AssetFolder, AssetFolderCreate, AssetFolderUpdate, CreateData, CreateResponses, DeleteData, GetResponses, ListData, ListResponses, UpdateData };
129
+ export { AssetFolder, CreateData, DeleteData, ListData, UpdateData };
156
130
  //# sourceMappingURL=types.gen.d.mts.map
@@ -260,14 +260,6 @@ type ListData = {
260
260
  };
261
261
  url: '/v1/spaces/{space_id}/assets';
262
262
  };
263
- type ListResponses = {
264
- /**
265
- * List of assets
266
- */
267
- 200: {
268
- assets?: Array<Asset>;
269
- };
270
- };
271
263
  type SignResponseObjectData = {
272
264
  body: AssetSignRequest;
273
265
  path: {
@@ -279,26 +271,6 @@ type SignResponseObjectData = {
279
271
  query?: never;
280
272
  url: '/v1/spaces/{space_id}/assets';
281
273
  };
282
- type SignResponseObjectResponses = {
283
- /**
284
- * Signed response object for upload
285
- */
286
- 200: SignedResponseObject;
287
- };
288
- type DeleteResponses = {
289
- /**
290
- * Asset deleted
291
- */
292
- 200: {
293
- asset?: Asset;
294
- };
295
- };
296
- type GetResponses = {
297
- /**
298
- * Asset details
299
- */
300
- 200: Asset;
301
- };
302
274
  type UpdateData = {
303
275
  body: AssetUpdateRequest;
304
276
  path: {
@@ -314,17 +286,6 @@ type UpdateData = {
314
286
  query?: never;
315
287
  url: '/v1/spaces/{space_id}/assets/{asset_id}';
316
288
  };
317
- type FinalizeResponses = {
318
- /**
319
- * Upload finalized successfully
320
- */
321
- 200: {
322
- /**
323
- * Success message indicating the upload was finalized
324
- */
325
- message?: string;
326
- };
327
- };
328
289
  type DeleteManyData = {
329
290
  body: {
330
291
  /**
@@ -341,17 +302,6 @@ type DeleteManyData = {
341
302
  query?: never;
342
303
  url: '/v1/spaces/{space_id}/assets/bulk_destroy';
343
304
  };
344
- type DeleteManyResponses = {
345
- /**
346
- * Assets deleted successfully
347
- */
348
- 200: {
349
- /**
350
- * Success message indicating which assets were deleted
351
- */
352
- message?: string;
353
- };
354
- };
355
305
  type BulkMoveData = {
356
306
  body: {
357
307
  /**
@@ -372,17 +322,6 @@ type BulkMoveData = {
372
322
  query?: never;
373
323
  url: '/v1/spaces/{space_id}/assets/bulk_update';
374
324
  };
375
- type BulkMoveResponses = {
376
- /**
377
- * Assets moved successfully
378
- */
379
- 200: {
380
- /**
381
- * Success message indicating which assets were moved
382
- */
383
- message?: string;
384
- };
385
- };
386
325
  type BulkRestoreData = {
387
326
  body: {
388
327
  /**
@@ -399,17 +338,6 @@ type BulkRestoreData = {
399
338
  query?: never;
400
339
  url: '/v1/spaces/{space_id}/assets/bulk_restore';
401
340
  };
402
- type BulkRestoreResponses = {
403
- /**
404
- * Assets restored successfully
405
- */
406
- 200: {
407
- /**
408
- * Success message indicating which assets were restored
409
- */
410
- message?: string;
411
- };
412
- };
413
341
  //#endregion
414
- export { Asset, AssetSignRequest, AssetUpdate, AssetUpdateRequest, BulkMoveData, BulkMoveResponses, BulkRestoreData, BulkRestoreResponses, DeleteManyData, DeleteManyResponses, DeleteResponses, FinalizeResponses, GetResponses, ListData, ListResponses, SignResponseObjectData, SignResponseObjectResponses, SignedResponseObject, UpdateData };
342
+ export { Asset, AssetSignRequest, AssetUpdate, AssetUpdateRequest, BulkMoveData, BulkRestoreData, DeleteManyData, ListData, SignResponseObjectData, SignedResponseObject, UpdateData };
415
343
  //# sourceMappingURL=types.gen.d.cts.map
@@ -260,14 +260,6 @@ type ListData = {
260
260
  };
261
261
  url: '/v1/spaces/{space_id}/assets';
262
262
  };
263
- type ListResponses = {
264
- /**
265
- * List of assets
266
- */
267
- 200: {
268
- assets?: Array<Asset>;
269
- };
270
- };
271
263
  type SignResponseObjectData = {
272
264
  body: AssetSignRequest;
273
265
  path: {
@@ -279,26 +271,6 @@ type SignResponseObjectData = {
279
271
  query?: never;
280
272
  url: '/v1/spaces/{space_id}/assets';
281
273
  };
282
- type SignResponseObjectResponses = {
283
- /**
284
- * Signed response object for upload
285
- */
286
- 200: SignedResponseObject;
287
- };
288
- type DeleteResponses = {
289
- /**
290
- * Asset deleted
291
- */
292
- 200: {
293
- asset?: Asset;
294
- };
295
- };
296
- type GetResponses = {
297
- /**
298
- * Asset details
299
- */
300
- 200: Asset;
301
- };
302
274
  type UpdateData = {
303
275
  body: AssetUpdateRequest;
304
276
  path: {
@@ -314,17 +286,6 @@ type UpdateData = {
314
286
  query?: never;
315
287
  url: '/v1/spaces/{space_id}/assets/{asset_id}';
316
288
  };
317
- type FinalizeResponses = {
318
- /**
319
- * Upload finalized successfully
320
- */
321
- 200: {
322
- /**
323
- * Success message indicating the upload was finalized
324
- */
325
- message?: string;
326
- };
327
- };
328
289
  type DeleteManyData = {
329
290
  body: {
330
291
  /**
@@ -341,17 +302,6 @@ type DeleteManyData = {
341
302
  query?: never;
342
303
  url: '/v1/spaces/{space_id}/assets/bulk_destroy';
343
304
  };
344
- type DeleteManyResponses = {
345
- /**
346
- * Assets deleted successfully
347
- */
348
- 200: {
349
- /**
350
- * Success message indicating which assets were deleted
351
- */
352
- message?: string;
353
- };
354
- };
355
305
  type BulkMoveData = {
356
306
  body: {
357
307
  /**
@@ -372,17 +322,6 @@ type BulkMoveData = {
372
322
  query?: never;
373
323
  url: '/v1/spaces/{space_id}/assets/bulk_update';
374
324
  };
375
- type BulkMoveResponses = {
376
- /**
377
- * Assets moved successfully
378
- */
379
- 200: {
380
- /**
381
- * Success message indicating which assets were moved
382
- */
383
- message?: string;
384
- };
385
- };
386
325
  type BulkRestoreData = {
387
326
  body: {
388
327
  /**
@@ -399,17 +338,6 @@ type BulkRestoreData = {
399
338
  query?: never;
400
339
  url: '/v1/spaces/{space_id}/assets/bulk_restore';
401
340
  };
402
- type BulkRestoreResponses = {
403
- /**
404
- * Assets restored successfully
405
- */
406
- 200: {
407
- /**
408
- * Success message indicating which assets were restored
409
- */
410
- message?: string;
411
- };
412
- };
413
341
  //#endregion
414
- export { Asset, AssetSignRequest, AssetUpdate, AssetUpdateRequest, BulkMoveData, BulkMoveResponses, BulkRestoreData, BulkRestoreResponses, DeleteManyData, DeleteManyResponses, DeleteResponses, FinalizeResponses, GetResponses, ListData, ListResponses, SignResponseObjectData, SignResponseObjectResponses, SignedResponseObject, UpdateData };
342
+ export { Asset, AssetSignRequest, AssetUpdate, AssetUpdateRequest, BulkMoveData, BulkRestoreData, DeleteManyData, ListData, SignResponseObjectData, SignedResponseObject, UpdateData };
415
343
  //# sourceMappingURL=types.gen.d.mts.map