@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
package/dist/types.d.cts DELETED
@@ -1,130 +0,0 @@
1
- import { AssetFolder, AssetFolderCreate, AssetFolderUpdate } from "./generated/asset_folders/types.gen.cjs";
2
- import { Asset, AssetSignRequest, AssetUpdate, AssetUpdateRequest, ListData, SignedResponseObject } from "./generated/assets/types.gen.cjs";
3
- import { AssetField, ListData as ListData$1, MultilinkField, PluginField, RichtextField, StoryAlternate, StoryContent, StoryCreate, StoryLocalizedPath, StoryMapi, StoryTranslatedSlug, StoryUpdate, TableField } from "./generated/stories/types.gen.cjs";
4
- import { Client, RetryOptions } from "./generated/shared/client/types.gen.cjs";
5
- import { ClientError } from "./error.cjs";
6
- import { RateLimitConfig } from "./utils/rate-limit.cjs";
7
- import { ComponentFolder } from "./generated/component_folders/types.gen.cjs";
8
- import { Component, ComponentCreate, ComponentSchemaField, ComponentUpdate } from "./generated/components/types.gen.cjs";
9
- import { DatasourceEntry, DatasourceEntryCreate, DatasourceEntryUpdate } from "./generated/datasource_entries/types.gen.cjs";
10
- import { Datasource, DatasourceCreate, DatasourceUpdate } from "./generated/datasources/types.gen.cjs";
11
- import { InternalTag } from "./generated/internal_tags/types.gen.cjs";
12
- import { Preset } from "./generated/presets/types.gen.cjs";
13
- import { Space, SpaceCreate, SpaceUpdate } from "./generated/spaces/types.gen.cjs";
14
- import { User } from "./generated/users/types.gen.cjs";
15
- import { AssetCreate, AssetUploadRequest } from "./resources/assets.cjs";
16
- import { Region } from "@storyblok/region-helper";
17
-
18
- //#region src/types.d.ts
19
- type Prettify<T> = { [K in keyof T]: T[K] } & {};
20
- type ApiResponse<T, ThrowOnError extends boolean = false> = ThrowOnError extends true ? {
21
- data: T;
22
- response: Response;
23
- request: Request;
24
- } : {
25
- data: T;
26
- error: undefined;
27
- response: Response;
28
- request: Request;
29
- } | {
30
- data: undefined;
31
- error: ClientError;
32
- response: Response;
33
- request: Request;
34
- };
35
- interface RequestConfigOverrides {
36
- throwOnError?: boolean;
37
- }
38
- /**
39
- * Arbitrary options forwarded to the underlying `fetch()` call.
40
- *
41
- * Standard `RequestInit` properties (`cache`, `credentials`, `mode`, …) and
42
- * non-standard, vendor-specific properties (Next.js `next`, Cloudflare `cf`, …)
43
- * are both supported.
44
- *
45
- * @example
46
- * ```ts
47
- * client.stories.get(123, {
48
- * fetchOptions: {
49
- * cache: 'no-store',
50
- * next: { revalidate: 60 },
51
- * },
52
- * })
53
- * ```
54
- */
55
- type FetchOptions = Record<string, unknown>;
56
- interface HttpRequestOptions {
57
- query?: Record<string, unknown>;
58
- body?: unknown;
59
- headers?: Record<string, string>;
60
- signal?: AbortSignal;
61
- throwOnError?: RequestConfigOverrides['throwOnError'];
62
- fetchOptions?: FetchOptions;
63
- }
64
- /**
65
- * Dependencies injected into every resource factory.
66
- */
67
- interface MapiResourceDeps {
68
- client: Client;
69
- spaceId?: number;
70
- wrapRequest: <TData, ThrowOnError extends boolean = false>(fn: () => Promise<unknown>, throwOnError?: ThrowOnError) => Promise<ApiResponse<TData, ThrowOnError>>;
71
- }
72
- interface ManagementApiClientConfig {
73
- /**
74
- * Personal access token for authentication.
75
- * Provide either `personalAccessToken` or `oauthToken`.
76
- */
77
- personalAccessToken?: string;
78
- /**
79
- * OAuth bearer token for authentication.
80
- * Provide either `personalAccessToken` or `oauthToken`.
81
- */
82
- oauthToken?: string;
83
- /**
84
- * The Storyblok space ID. Used as the default for space-scoped endpoints.
85
- * You can also override it per request via `path.space_id`.
86
- */
87
- spaceId?: number;
88
- /**
89
- * Storyblok region. Determines the base URL.
90
- * @default 'eu'
91
- */
92
- region?: Region;
93
- /**
94
- * Override the base URL entirely (e.g. for testing).
95
- */
96
- baseUrl?: string;
97
- /**
98
- * Additional request headers.
99
- */
100
- headers?: Record<string, string>;
101
- /**
102
- * Throw on HTTP errors instead of returning them.
103
- * @default false
104
- */
105
- throwOnError?: boolean;
106
- /**
107
- * Retry configuration for failed requests.
108
- */
109
- retry?: RetryOptions;
110
- /**
111
- * Request timeout in milliseconds.
112
- * @default 30_000
113
- */
114
- timeout?: number;
115
- /**
116
- * Preventive rate limiting to avoid hitting the Storyblok Management API rate limits.
117
- *
118
- * - `undefined` (default): single bucket at maxConcurrency: 6.
119
- * - `number`: fixed max concurrent requests per second.
120
- * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.
121
- * - `false`: disable rate limiting entirely.
122
- */
123
- rateLimit?: RateLimitConfig | number | false;
124
- }
125
- type AssetListQuery = NonNullable<ListData['query']>;
126
- type Story = Prettify<StoryMapi>;
127
- type StoryListQuery = NonNullable<ListData$1['query']>;
128
- //#endregion
129
- export { ApiResponse, AssetListQuery, FetchOptions, HttpRequestOptions, ManagementApiClientConfig, MapiResourceDeps, RequestConfigOverrides, Story, StoryListQuery };
130
- //# sourceMappingURL=types.d.cts.map
package/dist/types.d.mts DELETED
@@ -1,130 +0,0 @@
1
- import { AssetFolder, AssetFolderCreate, AssetFolderUpdate } from "./generated/asset_folders/types.gen.mjs";
2
- import { Asset, AssetSignRequest, AssetUpdate, AssetUpdateRequest, ListData, SignedResponseObject } from "./generated/assets/types.gen.mjs";
3
- import { AssetField, ListData as ListData$1, MultilinkField, PluginField, RichtextField, StoryAlternate, StoryContent, StoryCreate, StoryLocalizedPath, StoryMapi, StoryTranslatedSlug, StoryUpdate, TableField } from "./generated/stories/types.gen.mjs";
4
- import { Client, RetryOptions } from "./generated/shared/client/types.gen.mjs";
5
- import { ClientError } from "./error.mjs";
6
- import { RateLimitConfig } from "./utils/rate-limit.mjs";
7
- import { ComponentFolder } from "./generated/component_folders/types.gen.mjs";
8
- import { Component, ComponentCreate, ComponentSchemaField, ComponentUpdate } from "./generated/components/types.gen.mjs";
9
- import { DatasourceEntry, DatasourceEntryCreate, DatasourceEntryUpdate } from "./generated/datasource_entries/types.gen.mjs";
10
- import { Datasource, DatasourceCreate, DatasourceUpdate } from "./generated/datasources/types.gen.mjs";
11
- import { InternalTag } from "./generated/internal_tags/types.gen.mjs";
12
- import { Preset } from "./generated/presets/types.gen.mjs";
13
- import { Space, SpaceCreate, SpaceUpdate } from "./generated/spaces/types.gen.mjs";
14
- import { User } from "./generated/users/types.gen.mjs";
15
- import { AssetCreate, AssetUploadRequest } from "./resources/assets.mjs";
16
- import { Region } from "@storyblok/region-helper";
17
-
18
- //#region src/types.d.ts
19
- type Prettify<T> = { [K in keyof T]: T[K] } & {};
20
- type ApiResponse<T, ThrowOnError extends boolean = false> = ThrowOnError extends true ? {
21
- data: T;
22
- response: Response;
23
- request: Request;
24
- } : {
25
- data: T;
26
- error: undefined;
27
- response: Response;
28
- request: Request;
29
- } | {
30
- data: undefined;
31
- error: ClientError;
32
- response: Response;
33
- request: Request;
34
- };
35
- interface RequestConfigOverrides {
36
- throwOnError?: boolean;
37
- }
38
- /**
39
- * Arbitrary options forwarded to the underlying `fetch()` call.
40
- *
41
- * Standard `RequestInit` properties (`cache`, `credentials`, `mode`, …) and
42
- * non-standard, vendor-specific properties (Next.js `next`, Cloudflare `cf`, …)
43
- * are both supported.
44
- *
45
- * @example
46
- * ```ts
47
- * client.stories.get(123, {
48
- * fetchOptions: {
49
- * cache: 'no-store',
50
- * next: { revalidate: 60 },
51
- * },
52
- * })
53
- * ```
54
- */
55
- type FetchOptions = Record<string, unknown>;
56
- interface HttpRequestOptions {
57
- query?: Record<string, unknown>;
58
- body?: unknown;
59
- headers?: Record<string, string>;
60
- signal?: AbortSignal;
61
- throwOnError?: RequestConfigOverrides['throwOnError'];
62
- fetchOptions?: FetchOptions;
63
- }
64
- /**
65
- * Dependencies injected into every resource factory.
66
- */
67
- interface MapiResourceDeps {
68
- client: Client;
69
- spaceId?: number;
70
- wrapRequest: <TData, ThrowOnError extends boolean = false>(fn: () => Promise<unknown>, throwOnError?: ThrowOnError) => Promise<ApiResponse<TData, ThrowOnError>>;
71
- }
72
- interface ManagementApiClientConfig {
73
- /**
74
- * Personal access token for authentication.
75
- * Provide either `personalAccessToken` or `oauthToken`.
76
- */
77
- personalAccessToken?: string;
78
- /**
79
- * OAuth bearer token for authentication.
80
- * Provide either `personalAccessToken` or `oauthToken`.
81
- */
82
- oauthToken?: string;
83
- /**
84
- * The Storyblok space ID. Used as the default for space-scoped endpoints.
85
- * You can also override it per request via `path.space_id`.
86
- */
87
- spaceId?: number;
88
- /**
89
- * Storyblok region. Determines the base URL.
90
- * @default 'eu'
91
- */
92
- region?: Region;
93
- /**
94
- * Override the base URL entirely (e.g. for testing).
95
- */
96
- baseUrl?: string;
97
- /**
98
- * Additional request headers.
99
- */
100
- headers?: Record<string, string>;
101
- /**
102
- * Throw on HTTP errors instead of returning them.
103
- * @default false
104
- */
105
- throwOnError?: boolean;
106
- /**
107
- * Retry configuration for failed requests.
108
- */
109
- retry?: RetryOptions;
110
- /**
111
- * Request timeout in milliseconds.
112
- * @default 30_000
113
- */
114
- timeout?: number;
115
- /**
116
- * Preventive rate limiting to avoid hitting the Storyblok Management API rate limits.
117
- *
118
- * - `undefined` (default): single bucket at maxConcurrency: 6.
119
- * - `number`: fixed max concurrent requests per second.
120
- * - `{ maxConcurrency?: number; adaptToServerHeaders?: boolean }`: full config.
121
- * - `false`: disable rate limiting entirely.
122
- */
123
- rateLimit?: RateLimitConfig | number | false;
124
- }
125
- type AssetListQuery = NonNullable<ListData['query']>;
126
- type Story = Prettify<StoryMapi>;
127
- type StoryListQuery = NonNullable<ListData$1['query']>;
128
- //#endregion
129
- export { ApiResponse, AssetListQuery, FetchOptions, HttpRequestOptions, ManagementApiClientConfig, MapiResourceDeps, RequestConfigOverrides, Story, StoryListQuery };
130
- //# sourceMappingURL=types.d.mts.map