@storyblok/management-api-client 0.3.0 → 1.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/README.md +3 -1
  2. package/dist/client.cjs +190 -0
  3. package/dist/client.cjs.map +1 -0
  4. package/dist/client.d.cts +632 -0
  5. package/dist/client.d.mts +632 -0
  6. package/dist/client.mjs +189 -0
  7. package/dist/client.mjs.map +1 -0
  8. package/dist/error.cjs.map +1 -1
  9. package/dist/error.d.cts +12 -2
  10. package/dist/error.d.mts +12 -2
  11. package/dist/error.mjs.map +1 -1
  12. package/dist/generated/mapi/_internal.gen.d.cts +541 -0
  13. package/dist/generated/mapi/_internal.gen.d.mts +541 -0
  14. package/dist/generated/{shared → mapi}/client/client.gen.cjs +1 -1
  15. package/dist/generated/mapi/client/client.gen.cjs.map +1 -0
  16. package/dist/generated/{shared → mapi}/client/client.gen.mjs +1 -1
  17. package/dist/generated/mapi/client/client.gen.mjs.map +1 -0
  18. package/dist/generated/{shared → mapi}/client/types.gen.d.cts +1 -1
  19. package/dist/generated/{shared → mapi}/client/types.gen.d.mts +1 -1
  20. package/dist/generated/{shared → mapi}/client/utils.gen.cjs +1 -1
  21. package/dist/generated/mapi/client/utils.gen.cjs.map +1 -0
  22. package/dist/generated/{shared → mapi}/client/utils.gen.d.cts +1 -1
  23. package/dist/generated/{shared → mapi}/client/utils.gen.d.mts +1 -1
  24. package/dist/generated/{shared → mapi}/client/utils.gen.mjs +1 -1
  25. package/dist/generated/mapi/client/utils.gen.mjs.map +1 -0
  26. package/dist/generated/mapi/client.gen.cjs +10 -0
  27. package/dist/generated/mapi/client.gen.cjs.map +1 -0
  28. package/dist/generated/mapi/client.gen.mjs +10 -0
  29. package/dist/generated/mapi/client.gen.mjs.map +1 -0
  30. package/dist/generated/{shared → mapi}/core/auth.gen.cjs +1 -1
  31. package/dist/generated/mapi/core/auth.gen.cjs.map +1 -0
  32. package/dist/generated/{shared → mapi}/core/auth.gen.d.cts +1 -1
  33. package/dist/generated/{shared → mapi}/core/auth.gen.d.mts +1 -1
  34. package/dist/generated/{shared → mapi}/core/auth.gen.mjs +1 -1
  35. package/dist/generated/mapi/core/auth.gen.mjs.map +1 -0
  36. package/dist/generated/{shared → mapi}/core/bodySerializer.gen.cjs +1 -1
  37. package/dist/generated/mapi/core/bodySerializer.gen.cjs.map +1 -0
  38. package/dist/generated/{shared → mapi}/core/bodySerializer.gen.d.cts +1 -1
  39. package/dist/generated/{shared → mapi}/core/bodySerializer.gen.d.mts +1 -1
  40. package/dist/generated/{shared → mapi}/core/bodySerializer.gen.mjs +1 -1
  41. package/dist/generated/mapi/core/bodySerializer.gen.mjs.map +1 -0
  42. package/dist/generated/{shared → mapi}/core/params.gen.cjs +1 -1
  43. package/dist/generated/mapi/core/params.gen.cjs.map +1 -0
  44. package/dist/generated/{shared → mapi}/core/params.gen.mjs +1 -1
  45. package/dist/generated/mapi/core/params.gen.mjs.map +1 -0
  46. package/dist/generated/{shared → mapi}/core/pathSerializer.gen.cjs +1 -1
  47. package/dist/generated/mapi/core/pathSerializer.gen.cjs.map +1 -0
  48. package/dist/generated/{shared → mapi}/core/pathSerializer.gen.d.cts +1 -1
  49. package/dist/generated/{shared → mapi}/core/pathSerializer.gen.d.mts +1 -1
  50. package/dist/generated/{shared → mapi}/core/pathSerializer.gen.mjs +1 -1
  51. package/dist/generated/mapi/core/pathSerializer.gen.mjs.map +1 -0
  52. package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.cjs +1 -1
  53. package/dist/generated/mapi/core/serverSentEvents.gen.cjs.map +1 -0
  54. package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.d.cts +1 -1
  55. package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.d.mts +1 -1
  56. package/dist/generated/{shared → mapi}/core/serverSentEvents.gen.mjs +1 -1
  57. package/dist/generated/mapi/core/serverSentEvents.gen.mjs.map +1 -0
  58. package/dist/generated/{shared → mapi}/core/types.gen.d.cts +1 -1
  59. package/dist/generated/{shared → mapi}/core/types.gen.d.mts +1 -1
  60. package/dist/generated/{shared → mapi}/core/utils.gen.cjs +1 -1
  61. package/dist/generated/mapi/core/utils.gen.cjs.map +1 -0
  62. package/dist/generated/{shared → mapi}/core/utils.gen.mjs +1 -1
  63. package/dist/generated/mapi/core/utils.gen.mjs.map +1 -0
  64. package/dist/generated/mapi/sdk.gen.cjs +1477 -0
  65. package/dist/generated/mapi/sdk.gen.cjs.map +1 -0
  66. package/dist/generated/mapi/sdk.gen.mjs +1399 -0
  67. package/dist/generated/mapi/sdk.gen.mjs.map +1 -0
  68. package/dist/generated/mapi/types-aliased.gen.d.cts +1428 -0
  69. package/dist/generated/mapi/types-aliased.gen.d.mts +1428 -0
  70. package/dist/generated/mapi/types.gen.d.cts +5075 -0
  71. package/dist/generated/mapi/types.gen.d.mts +5075 -0
  72. package/dist/generated/overlay/_internal.gen.d.cts +850 -0
  73. package/dist/generated/overlay/_internal.gen.d.mts +850 -0
  74. package/dist/generated/types/_utils.d.cts +7 -0
  75. package/dist/generated/types/_utils.d.mts +7 -0
  76. package/dist/generated/types/block.d.cts +30 -0
  77. package/dist/generated/types/block.d.mts +30 -0
  78. package/dist/generated/types/field.d.cts +75 -0
  79. package/dist/generated/types/field.d.mts +75 -0
  80. package/dist/generated/types/mapi-story.d.cts +29 -0
  81. package/dist/generated/types/mapi-story.d.mts +29 -0
  82. package/dist/index.cjs +3 -173
  83. package/dist/index.d.cts +13 -433
  84. package/dist/index.d.mts +13 -433
  85. package/dist/index.mjs +2 -171
  86. package/dist/resources/asset-folders.cjs +9 -9
  87. package/dist/resources/asset-folders.cjs.map +1 -1
  88. package/dist/resources/asset-folders.mjs +9 -9
  89. package/dist/resources/asset-folders.mjs.map +1 -1
  90. package/dist/resources/assets.cjs +57 -48
  91. package/dist/resources/assets.cjs.map +1 -1
  92. package/dist/resources/assets.d.cts +23 -27
  93. package/dist/resources/assets.d.mts +23 -27
  94. package/dist/resources/assets.mjs +57 -48
  95. package/dist/resources/assets.mjs.map +1 -1
  96. package/dist/resources/component-folders.cjs +9 -9
  97. package/dist/resources/component-folders.cjs.map +1 -1
  98. package/dist/resources/component-folders.mjs +9 -9
  99. package/dist/resources/component-folders.mjs.map +1 -1
  100. package/dist/resources/components.cjs +28 -20
  101. package/dist/resources/components.cjs.map +1 -1
  102. package/dist/resources/components.d.cts +76 -0
  103. package/dist/resources/components.d.mts +76 -0
  104. package/dist/resources/components.mjs +28 -20
  105. package/dist/resources/components.mjs.map +1 -1
  106. package/dist/resources/datasource-entries.cjs +28 -34
  107. package/dist/resources/datasource-entries.cjs.map +1 -1
  108. package/dist/resources/datasource-entries.mjs +29 -35
  109. package/dist/resources/datasource-entries.mjs.map +1 -1
  110. package/dist/resources/datasources.cjs +27 -9
  111. package/dist/resources/datasources.cjs.map +1 -1
  112. package/dist/resources/datasources.mjs +27 -9
  113. package/dist/resources/datasources.mjs.map +1 -1
  114. package/dist/resources/experiments.cjs +299 -0
  115. package/dist/resources/experiments.cjs.map +1 -0
  116. package/dist/resources/experiments.mjs +299 -0
  117. package/dist/resources/experiments.mjs.map +1 -0
  118. package/dist/resources/internal-tags.cjs +7 -7
  119. package/dist/resources/internal-tags.cjs.map +1 -1
  120. package/dist/resources/internal-tags.mjs +7 -7
  121. package/dist/resources/internal-tags.mjs.map +1 -1
  122. package/dist/resources/presets.cjs +9 -9
  123. package/dist/resources/presets.cjs.map +1 -1
  124. package/dist/resources/presets.mjs +9 -9
  125. package/dist/resources/presets.mjs.map +1 -1
  126. package/dist/resources/shared.cjs +15 -0
  127. package/dist/resources/shared.cjs.map +1 -1
  128. package/dist/resources/shared.mjs +15 -1
  129. package/dist/resources/shared.mjs.map +1 -1
  130. package/dist/resources/spaces.cjs +8 -7
  131. package/dist/resources/spaces.cjs.map +1 -1
  132. package/dist/resources/spaces.d.cts +8 -0
  133. package/dist/resources/spaces.d.mts +7 -0
  134. package/dist/resources/spaces.mjs +8 -7
  135. package/dist/resources/spaces.mjs.map +1 -1
  136. package/dist/resources/stories.cjs +20 -16
  137. package/dist/resources/stories.cjs.map +1 -1
  138. package/dist/resources/stories.d.cts +93 -0
  139. package/dist/resources/stories.d.mts +93 -0
  140. package/dist/resources/stories.mjs +20 -16
  141. package/dist/resources/stories.mjs.map +1 -1
  142. package/dist/resources/users.cjs +3 -3
  143. package/dist/resources/users.cjs.map +1 -1
  144. package/dist/resources/users.mjs +3 -3
  145. package/dist/resources/users.mjs.map +1 -1
  146. package/dist/utils/query-serializer.cjs +54 -0
  147. package/dist/utils/query-serializer.cjs.map +1 -0
  148. package/dist/utils/query-serializer.mjs +54 -0
  149. package/dist/utils/query-serializer.mjs.map +1 -0
  150. package/package.json +16 -14
  151. package/playground/integration-tests/README.md +24 -0
  152. package/playground/integration-tests/eslint.config.js +5 -0
  153. package/playground/integration-tests/node_modules/.bin/eslint +16 -0
  154. package/playground/integration-tests/node_modules/.bin/tsc +16 -0
  155. package/playground/integration-tests/node_modules/.bin/tsserver +16 -0
  156. package/playground/integration-tests/node_modules/.bin/vitest +16 -0
  157. package/playground/integration-tests/package.json +24 -0
  158. package/playground/integration-tests/test/setup.e2e.ts +11 -0
  159. package/playground/integration-tests/test/specs/mapi-round-trip.spec.e2e.ts +520 -0
  160. package/playground/integration-tests/test/types/components.test-d.ts +113 -0
  161. package/playground/integration-tests/test/types/resources.test-d.ts +364 -0
  162. package/playground/integration-tests/test/types/stories.test-d.ts +306 -0
  163. package/playground/integration-tests/vitest.config.e2e.ts +25 -0
  164. package/playground/integration-tests/vitest.config.ts +13 -0
  165. package/test/GUIDE.md +59 -0
  166. package/vitest.config.ts +5 -0
  167. package/dist/generated/asset_folders/client.gen.cjs +0 -10
  168. package/dist/generated/asset_folders/client.gen.cjs.map +0 -1
  169. package/dist/generated/asset_folders/client.gen.mjs +0 -10
  170. package/dist/generated/asset_folders/client.gen.mjs.map +0 -1
  171. package/dist/generated/asset_folders/sdk.gen.cjs +0 -99
  172. package/dist/generated/asset_folders/sdk.gen.cjs.map +0 -1
  173. package/dist/generated/asset_folders/sdk.gen.mjs +0 -95
  174. package/dist/generated/asset_folders/sdk.gen.mjs.map +0 -1
  175. package/dist/generated/asset_folders/types.gen.d.cts +0 -156
  176. package/dist/generated/asset_folders/types.gen.d.mts +0 -156
  177. package/dist/generated/assets/client.gen.cjs +0 -10
  178. package/dist/generated/assets/client.gen.cjs.map +0 -1
  179. package/dist/generated/assets/client.gen.mjs +0 -10
  180. package/dist/generated/assets/client.gen.mjs.map +0 -1
  181. package/dist/generated/assets/sdk.gen.cjs +0 -179
  182. package/dist/generated/assets/sdk.gen.cjs.map +0 -1
  183. package/dist/generated/assets/sdk.gen.mjs +0 -171
  184. package/dist/generated/assets/sdk.gen.mjs.map +0 -1
  185. package/dist/generated/assets/types.gen.d.cts +0 -415
  186. package/dist/generated/assets/types.gen.d.mts +0 -415
  187. package/dist/generated/component_folders/client.gen.cjs +0 -10
  188. package/dist/generated/component_folders/client.gen.cjs.map +0 -1
  189. package/dist/generated/component_folders/client.gen.mjs +0 -10
  190. package/dist/generated/component_folders/client.gen.mjs.map +0 -1
  191. package/dist/generated/component_folders/sdk.gen.cjs +0 -99
  192. package/dist/generated/component_folders/sdk.gen.cjs.map +0 -1
  193. package/dist/generated/component_folders/sdk.gen.mjs +0 -95
  194. package/dist/generated/component_folders/sdk.gen.mjs.map +0 -1
  195. package/dist/generated/component_folders/types.gen.d.cts +0 -118
  196. package/dist/generated/component_folders/types.gen.d.mts +0 -118
  197. package/dist/generated/components/client.gen.cjs +0 -10
  198. package/dist/generated/components/client.gen.cjs.map +0 -1
  199. package/dist/generated/components/client.gen.mjs +0 -10
  200. package/dist/generated/components/client.gen.mjs.map +0 -1
  201. package/dist/generated/components/sdk.gen.cjs +0 -171
  202. package/dist/generated/components/sdk.gen.cjs.map +0 -1
  203. package/dist/generated/components/sdk.gen.mjs +0 -163
  204. package/dist/generated/components/sdk.gen.mjs.map +0 -1
  205. package/dist/generated/components/types.gen.d.cts +0 -855
  206. package/dist/generated/components/types.gen.d.mts +0 -855
  207. package/dist/generated/datasource_entries/client.gen.cjs +0 -10
  208. package/dist/generated/datasource_entries/client.gen.cjs.map +0 -1
  209. package/dist/generated/datasource_entries/client.gen.mjs +0 -10
  210. package/dist/generated/datasource_entries/client.gen.mjs.map +0 -1
  211. package/dist/generated/datasource_entries/sdk.gen.cjs +0 -89
  212. package/dist/generated/datasource_entries/sdk.gen.cjs.map +0 -1
  213. package/dist/generated/datasource_entries/sdk.gen.mjs +0 -85
  214. package/dist/generated/datasource_entries/sdk.gen.mjs.map +0 -1
  215. package/dist/generated/datasource_entries/types.gen.d.cts +0 -156
  216. package/dist/generated/datasource_entries/types.gen.d.mts +0 -156
  217. package/dist/generated/datasources/client.gen.cjs +0 -10
  218. package/dist/generated/datasources/client.gen.cjs.map +0 -1
  219. package/dist/generated/datasources/client.gen.mjs +0 -10
  220. package/dist/generated/datasources/client.gen.mjs.map +0 -1
  221. package/dist/generated/datasources/sdk.gen.cjs +0 -89
  222. package/dist/generated/datasources/sdk.gen.cjs.map +0 -1
  223. package/dist/generated/datasources/sdk.gen.mjs +0 -85
  224. package/dist/generated/datasources/sdk.gen.mjs.map +0 -1
  225. package/dist/generated/datasources/types.gen.d.cts +0 -186
  226. package/dist/generated/datasources/types.gen.d.mts +0 -186
  227. package/dist/generated/internal_tags/client.gen.cjs +0 -10
  228. package/dist/generated/internal_tags/client.gen.cjs.map +0 -1
  229. package/dist/generated/internal_tags/client.gen.mjs +0 -10
  230. package/dist/generated/internal_tags/client.gen.mjs.map +0 -1
  231. package/dist/generated/internal_tags/sdk.gen.cjs +0 -74
  232. package/dist/generated/internal_tags/sdk.gen.cjs.map +0 -1
  233. package/dist/generated/internal_tags/sdk.gen.mjs +0 -71
  234. package/dist/generated/internal_tags/sdk.gen.mjs.map +0 -1
  235. package/dist/generated/internal_tags/types.gen.d.cts +0 -106
  236. package/dist/generated/internal_tags/types.gen.d.mts +0 -106
  237. package/dist/generated/presets/client.gen.cjs +0 -10
  238. package/dist/generated/presets/client.gen.cjs.map +0 -1
  239. package/dist/generated/presets/client.gen.mjs +0 -10
  240. package/dist/generated/presets/client.gen.mjs.map +0 -1
  241. package/dist/generated/presets/sdk.gen.cjs +0 -99
  242. package/dist/generated/presets/sdk.gen.cjs.map +0 -1
  243. package/dist/generated/presets/sdk.gen.mjs +0 -95
  244. package/dist/generated/presets/sdk.gen.mjs.map +0 -1
  245. package/dist/generated/presets/types.gen.d.cts +0 -176
  246. package/dist/generated/presets/types.gen.d.mts +0 -176
  247. package/dist/generated/shared/client/client.gen.cjs.map +0 -1
  248. package/dist/generated/shared/client/client.gen.mjs.map +0 -1
  249. package/dist/generated/shared/client/utils.gen.cjs.map +0 -1
  250. package/dist/generated/shared/client/utils.gen.mjs.map +0 -1
  251. package/dist/generated/shared/core/auth.gen.cjs.map +0 -1
  252. package/dist/generated/shared/core/auth.gen.mjs.map +0 -1
  253. package/dist/generated/shared/core/bodySerializer.gen.cjs.map +0 -1
  254. package/dist/generated/shared/core/bodySerializer.gen.mjs.map +0 -1
  255. package/dist/generated/shared/core/params.gen.cjs.map +0 -1
  256. package/dist/generated/shared/core/params.gen.mjs.map +0 -1
  257. package/dist/generated/shared/core/pathSerializer.gen.cjs.map +0 -1
  258. package/dist/generated/shared/core/pathSerializer.gen.mjs.map +0 -1
  259. package/dist/generated/shared/core/serverSentEvents.gen.cjs.map +0 -1
  260. package/dist/generated/shared/core/serverSentEvents.gen.mjs.map +0 -1
  261. package/dist/generated/shared/core/utils.gen.cjs.map +0 -1
  262. package/dist/generated/shared/core/utils.gen.mjs.map +0 -1
  263. package/dist/generated/spaces/client.gen.cjs +0 -10
  264. package/dist/generated/spaces/client.gen.cjs.map +0 -1
  265. package/dist/generated/spaces/client.gen.mjs +0 -10
  266. package/dist/generated/spaces/client.gen.mjs.map +0 -1
  267. package/dist/generated/spaces/sdk.gen.cjs +0 -99
  268. package/dist/generated/spaces/sdk.gen.cjs.map +0 -1
  269. package/dist/generated/spaces/sdk.gen.mjs +0 -95
  270. package/dist/generated/spaces/sdk.gen.mjs.map +0 -1
  271. package/dist/generated/spaces/types.gen.d.cts +0 -544
  272. package/dist/generated/spaces/types.gen.d.mts +0 -544
  273. package/dist/generated/stories/client.gen.cjs +0 -10
  274. package/dist/generated/stories/client.gen.cjs.map +0 -1
  275. package/dist/generated/stories/client.gen.mjs +0 -10
  276. package/dist/generated/stories/client.gen.mjs.map +0 -1
  277. package/dist/generated/stories/sdk.gen.cjs +0 -138
  278. package/dist/generated/stories/sdk.gen.cjs.map +0 -1
  279. package/dist/generated/stories/sdk.gen.mjs +0 -131
  280. package/dist/generated/stories/sdk.gen.mjs.map +0 -1
  281. package/dist/generated/stories/types.gen.d.cts +0 -1306
  282. package/dist/generated/stories/types.gen.d.mts +0 -1306
  283. package/dist/generated/users/client.gen.cjs +0 -10
  284. package/dist/generated/users/client.gen.cjs.map +0 -1
  285. package/dist/generated/users/client.gen.mjs +0 -10
  286. package/dist/generated/users/client.gen.mjs.map +0 -1
  287. package/dist/generated/users/sdk.gen.cjs +0 -44
  288. package/dist/generated/users/sdk.gen.cjs.map +0 -1
  289. package/dist/generated/users/sdk.gen.mjs +0 -43
  290. package/dist/generated/users/sdk.gen.mjs.map +0 -1
  291. package/dist/generated/users/types.gen.d.cts +0 -348
  292. package/dist/generated/users/types.gen.d.mts +0 -348
  293. package/dist/index.cjs.map +0 -1
  294. package/dist/index.mjs.map +0 -1
  295. package/dist/types.d.cts +0 -130
  296. package/dist/types.d.mts +0 -130
  297. /package/dist/generated/{shared → mapi}/client/client.gen.d.mts +0 -0
  298. /package/dist/generated/{shared → mapi}/client/index.cjs +0 -0
  299. /package/dist/generated/{shared → mapi}/client/index.d.mts +0 -0
  300. /package/dist/generated/{shared → mapi}/client/index.mjs +0 -0
@@ -0,0 +1,25 @@
1
+ /// <reference types="vitest" />
2
+ import { defineConfig } from 'vitest/config';
3
+
4
+ /**
5
+ * Vitest config for end-to-end tests that hit the real Storyblok Management API.
6
+ *
7
+ * These tests are NOT run in CI. Trigger them manually:
8
+ * pnpm --filter @storyblok/mapi-integration-tests test:e2e
9
+ *
10
+ * Prerequisites:
11
+ * - A .env.qa-engineer-manual file at the repo root with STORYBLOK_TOKEN and STORYBLOK_SPACE_ID.
12
+ * - The @storyblok/management-api-client package must be built.
13
+ */
14
+ export default defineConfig({
15
+ test: {
16
+ include: ['./test/specs/**/*.spec.e2e.ts'],
17
+ setupFiles: ['./test/setup.e2e.ts'],
18
+ globals: true,
19
+ testTimeout: 60_000,
20
+ hookTimeout: 120_000,
21
+ sequence: {
22
+ concurrent: false,
23
+ },
24
+ },
25
+ });
@@ -0,0 +1,13 @@
1
+ /// <reference types="vitest" />
2
+ import { defineConfig } from 'vitest/config';
3
+
4
+ export default defineConfig({
5
+ test: {
6
+ environment: 'node',
7
+ include: [],
8
+ typecheck: {
9
+ enabled: true,
10
+ include: ['./test/types/**/*.test-d.ts'],
11
+ },
12
+ },
13
+ });
package/test/GUIDE.md ADDED
@@ -0,0 +1,59 @@
1
+ # Manually Test the @storyblok/management-api-client Package
2
+
3
+ `@storyblok/management-api-client` is the Management API (MAPI) client. The key things to validate manually are that the schema-aware `.withTypes()` integration correctly narrows story content, that every define helper produces a valid creation payload, and that Zod schemas accept real API responses.
4
+
5
+ ## Automated e2e tests
6
+
7
+ The `@storyblok/mapi-integration-tests` package (`packages/mapi-client/playground/integration-tests`) covers the full round-trip against a real Storyblok space in `test/specs/mapi-round-trip.spec.e2e.ts`:
8
+
9
+ - Seeds components, datasources, internal tags, presets, and stories via the MAPI.
10
+ - Validates runtime values, type narrowing, nested bloks (two- and three-level), unwhitelisted bloks, and update round-trips.
11
+ - Validates MAPI Zod schemas (`componentSchema`, `storySchema`, `datasourceSchema`, `datasourceEntrySchema`) against real API responses.
12
+
13
+ Run manually:
14
+
15
+ ```bash
16
+ pnpm --filter @storyblok/mapi-integration-tests test:e2e
17
+ ```
18
+
19
+ ### Prerequisites
20
+
21
+ - A `.env.qa-engineer-manual` file at the repo root with `STORYBLOK_TOKEN` and `STORYBLOK_SPACE_ID`.
22
+ - `@storyblok/management-api-client` must be built first.
23
+
24
+ ## Fetch via MAPI client and check content types
25
+
26
+ `stories.get(storyId)` takes a numeric/string ID as its first positional argument — there is no `getBySlug`. Fetch the ID from `stories.list` first:
27
+
28
+ ```ts
29
+ import { createManagementApiClient } from '@storyblok/management-api-client';
30
+
31
+ const client = createManagementApiClient({ personalAccessToken: process.env.STORYBLOK_TOKEN, spaceId });
32
+ const list = await client.stories.list({ query: { per_page: 100 } });
33
+ const story = list.data?.stories?.find(s => s.slug === 'home');
34
+ const result = await client.stories.get(story.id);
35
+ console.info(result.data?.story?.content);
36
+ ```
37
+
38
+ ## Push component JSONs via the CLI
39
+
40
+ To push `defineComponent` components, serialize the component objects to JSON and stage them under `.storyblok/components/<space_id>/`:
41
+
42
+ ```bash
43
+ node packages/cli/dist/index.mjs components push \
44
+ --from qa-test \
45
+ --space $STORYBLOK_SPACE_ID \
46
+ --separate-files
47
+ ```
48
+
49
+ **Always push components before stories.** The CLI validates that each story's `content.component` (and any nested block components) exist in the space. Pushing stories first fails if the referenced components are not yet present.
50
+
51
+ You can do the same with stories and `defineStory`. **Story filename convention:** the CLI requires files named `{slug}_{uuid}.json` where the part after the last `_` exactly matches `story.uuid` in the JSON. Use hyphens (not underscores) in UUIDs. A mismatch causes Pass 2 of the push (reference mapping + content update) to silently skip all stories.
52
+
53
+ ## Known quirks
54
+
55
+ - **Stories require a content type component (`is_root: true`).** The MAPI rejects story creation with `"please select a content type component as your root component"` if the component used as the story root does not have `is_root: true`.
56
+ - **MAPI `stories.get` takes a positional ID, not an options object:** `client.stories.get(id)` — there is no `getBySlug`. The `list` response does not include `content`; call `get(id)` for full content.
57
+ - **MAPI client constructor uses `personalAccessToken`:** `createManagementApiClient({ personalAccessToken: '...', spaceId: ... })`.
58
+ - **Delete methods are `delete`:** Use `client.RESOURCE.delete(id)`.
59
+ - **Each story JSON must have a unique `id`.** `defineStory` defaults `id` to `1`. If multiple story files share the same `id`, the CLI's manifest maps all of them to the same `old_id` entry, causing "slug already taken" errors.
package/vitest.config.ts CHANGED
@@ -4,5 +4,10 @@ import { defineConfig } from 'vitest/config';
4
4
  export default defineConfig({
5
5
  test: {
6
6
  environment: 'node',
7
+ exclude: ['**/node_modules/**', '**/dist/**', './playground/**'],
8
+ typecheck: {
9
+ enabled: true,
10
+ exclude: ['**/node_modules/**', '**/dist/**', './playground/**'],
11
+ },
7
12
  },
8
13
  });
@@ -1,10 +0,0 @@
1
- const require_utils_gen = require('../shared/client/utils.gen.cjs');
2
- const require_client_gen = require('../shared/client/client.gen.cjs');
3
- require('../shared/client/index.cjs');
4
-
5
- //#region src/generated/asset_folders/client.gen.ts
6
- const client = require_client_gen.createClient(require_utils_gen.createConfig({ baseUrl: "https://mapi.storyblok.com" }));
7
-
8
- //#endregion
9
- exports.client = client;
10
- //# sourceMappingURL=client.gen.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.gen.cjs","names":["createClient","createConfig"],"sources":["../../../src/generated/asset_folders/client.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from '../shared/client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://mapi.storyblok.com' }));\n"],"mappings":";;;;;AAeA,MAAa,SAASA,gCAAaC,+BAA6B,EAAE,SAAS,8BAA8B,CAAC,CAAC"}
@@ -1,10 +0,0 @@
1
- import { createConfig } from "../shared/client/utils.gen.mjs";
2
- import { createClient } from "../shared/client/client.gen.mjs";
3
- import "../shared/client/index.mjs";
4
-
5
- //#region src/generated/asset_folders/client.gen.ts
6
- const client = createClient(createConfig({ baseUrl: "https://mapi.storyblok.com" }));
7
-
8
- //#endregion
9
- export { client };
10
- //# sourceMappingURL=client.gen.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.gen.mjs","names":[],"sources":["../../../src/generated/asset_folders/client.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type ClientOptions, type Config, createClient, createConfig } from '../shared/client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client = createClient(createConfig<ClientOptions2>({ baseUrl: 'https://mapi.storyblok.com' }));\n"],"mappings":";;;;;AAeA,MAAa,SAAS,aAAa,aAA6B,EAAE,SAAS,8BAA8B,CAAC,CAAC"}
@@ -1,99 +0,0 @@
1
- const require_client_gen = require('./client.gen.cjs');
2
-
3
- //#region src/generated/asset_folders/sdk.gen.ts
4
- /**
5
- * Retrieve Multiple Asset Folders
6
- *
7
- * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
8
- */
9
- const list = (options) => (options.client ?? require_client_gen.client).get({
10
- security: [{
11
- name: "Authorization",
12
- type: "apiKey"
13
- }, {
14
- scheme: "bearer",
15
- type: "http"
16
- }],
17
- url: "/v1/spaces/{space_id}/asset_folders",
18
- ...options
19
- });
20
- /**
21
- * Create an Asset Folder
22
- *
23
- * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
24
- */
25
- const create = (options) => (options.client ?? require_client_gen.client).post({
26
- security: [{
27
- name: "Authorization",
28
- type: "apiKey"
29
- }, {
30
- scheme: "bearer",
31
- type: "http"
32
- }],
33
- url: "/v1/spaces/{space_id}/asset_folders",
34
- ...options,
35
- headers: {
36
- "Content-Type": "application/json",
37
- ...options.headers
38
- }
39
- });
40
- /**
41
- * Delete an Asset Folder
42
- *
43
- * Operations for a specific asset folder
44
- */
45
- const delete_ = (options) => (options.client ?? require_client_gen.client).delete({
46
- security: [{
47
- name: "Authorization",
48
- type: "apiKey"
49
- }, {
50
- scheme: "bearer",
51
- type: "http"
52
- }],
53
- url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
54
- ...options
55
- });
56
- /**
57
- * Retrieve a Single Asset Folder
58
- *
59
- * Operations for a specific asset folder
60
- */
61
- const get = (options) => (options.client ?? require_client_gen.client).get({
62
- security: [{
63
- name: "Authorization",
64
- type: "apiKey"
65
- }, {
66
- scheme: "bearer",
67
- type: "http"
68
- }],
69
- url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
70
- ...options
71
- });
72
- /**
73
- * Update an Asset Folder
74
- *
75
- * Operations for a specific asset folder
76
- */
77
- const update = (options) => (options.client ?? require_client_gen.client).put({
78
- security: [{
79
- name: "Authorization",
80
- type: "apiKey"
81
- }, {
82
- scheme: "bearer",
83
- type: "http"
84
- }],
85
- url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
86
- ...options,
87
- headers: {
88
- "Content-Type": "application/json",
89
- ...options.headers
90
- }
91
- });
92
-
93
- //#endregion
94
- exports.create = create;
95
- exports.delete_ = delete_;
96
- exports.get = get;
97
- exports.list = list;
98
- exports.update = update;
99
- //# sourceMappingURL=sdk.gen.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.gen.cjs","names":["client"],"sources":["../../../src/generated/asset_folders/sdk.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from '../shared/client';\nimport { client } from './client.gen';\nimport type { CreateData, CreateErrors, CreateResponses, DeleteData, DeleteErrors, DeleteResponses, GetData, GetErrors, GetResponses, ListData, ListErrors, ListResponses, UpdateData, UpdateErrors, UpdateResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Retrieve Multiple Asset Folders\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const list = <ThrowOnError extends boolean = false>(options: Options<ListData, ThrowOnError>) => (options.client ?? client).get<ListResponses, ListErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options\n});\n\n/**\n * Create an Asset Folder\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const create = <ThrowOnError extends boolean = false>(options: Options<CreateData, ThrowOnError>) => (options.client ?? client).post<CreateResponses, CreateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const delete_ = <ThrowOnError extends boolean = false>(options: Options<DeleteData, ThrowOnError>) => (options.client ?? client).delete<DeleteResponses, DeleteErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Retrieve a Single Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const get = <ThrowOnError extends boolean = false>(options: Options<GetData, ThrowOnError>) => (options.client ?? client).get<GetResponses, GetErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Update an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const update = <ThrowOnError extends boolean = false>(options: Options<UpdateData, ThrowOnError>) => (options.client ?? client).put<UpdateResponses, UpdateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n"],"mappings":";;;;;;;;AAyBA,MAAa,QAA8C,aAA8C,QAAQ,UAAUA,2BAAQ,IAA6C;CAC5K,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAUA,2BAAQ,KAAkD;CACrL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC;;;;;;AAOF,MAAa,WAAiD,aAAgD,QAAQ,UAAUA,2BAAQ,OAAoD;CACxL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,OAA6C,aAA6C,QAAQ,UAAUA,2BAAQ,IAA2C;CACxK,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAUA,2BAAQ,IAAiD;CACpL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC"}
@@ -1,95 +0,0 @@
1
- import { client } from "./client.gen.mjs";
2
-
3
- //#region src/generated/asset_folders/sdk.gen.ts
4
- /**
5
- * Retrieve Multiple Asset Folders
6
- *
7
- * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
8
- */
9
- const list = (options) => (options.client ?? client).get({
10
- security: [{
11
- name: "Authorization",
12
- type: "apiKey"
13
- }, {
14
- scheme: "bearer",
15
- type: "http"
16
- }],
17
- url: "/v1/spaces/{space_id}/asset_folders",
18
- ...options
19
- });
20
- /**
21
- * Create an Asset Folder
22
- *
23
- * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.
24
- */
25
- const create = (options) => (options.client ?? client).post({
26
- security: [{
27
- name: "Authorization",
28
- type: "apiKey"
29
- }, {
30
- scheme: "bearer",
31
- type: "http"
32
- }],
33
- url: "/v1/spaces/{space_id}/asset_folders",
34
- ...options,
35
- headers: {
36
- "Content-Type": "application/json",
37
- ...options.headers
38
- }
39
- });
40
- /**
41
- * Delete an Asset Folder
42
- *
43
- * Operations for a specific asset folder
44
- */
45
- const delete_ = (options) => (options.client ?? client).delete({
46
- security: [{
47
- name: "Authorization",
48
- type: "apiKey"
49
- }, {
50
- scheme: "bearer",
51
- type: "http"
52
- }],
53
- url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
54
- ...options
55
- });
56
- /**
57
- * Retrieve a Single Asset Folder
58
- *
59
- * Operations for a specific asset folder
60
- */
61
- const get = (options) => (options.client ?? client).get({
62
- security: [{
63
- name: "Authorization",
64
- type: "apiKey"
65
- }, {
66
- scheme: "bearer",
67
- type: "http"
68
- }],
69
- url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
70
- ...options
71
- });
72
- /**
73
- * Update an Asset Folder
74
- *
75
- * Operations for a specific asset folder
76
- */
77
- const update = (options) => (options.client ?? client).put({
78
- security: [{
79
- name: "Authorization",
80
- type: "apiKey"
81
- }, {
82
- scheme: "bearer",
83
- type: "http"
84
- }],
85
- url: "/v1/spaces/{space_id}/asset_folders/{asset_folder_id}",
86
- ...options,
87
- headers: {
88
- "Content-Type": "application/json",
89
- ...options.headers
90
- }
91
- });
92
-
93
- //#endregion
94
- export { create, delete_, get, list, update };
95
- //# sourceMappingURL=sdk.gen.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.gen.mjs","names":[],"sources":["../../../src/generated/asset_folders/sdk.gen.ts"],"sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, Options as Options2, TDataShape } from '../shared/client';\nimport { client } from './client.gen';\nimport type { CreateData, CreateErrors, CreateResponses, DeleteData, DeleteErrors, DeleteResponses, GetData, GetErrors, GetResponses, ListData, ListErrors, ListResponses, UpdateData, UpdateErrors, UpdateResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean> = Options2<TData, ThrowOnError> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: Record<string, unknown>;\n};\n\n/**\n * Retrieve Multiple Asset Folders\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const list = <ThrowOnError extends boolean = false>(options: Options<ListData, ThrowOnError>) => (options.client ?? client).get<ListResponses, ListErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options\n});\n\n/**\n * Create an Asset Folder\n *\n * An asset folder can be used to organize assets together. Each asset can belong to only one folder. Asset folders support hierarchical nesting via parent_id. This endpoint allows you to manage asset folders. You can use it to retrieve, create, update, or delete asset folders.\n */\nexport const create = <ThrowOnError extends boolean = false>(options: Options<CreateData, ThrowOnError>) => (options.client ?? client).post<CreateResponses, CreateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Delete an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const delete_ = <ThrowOnError extends boolean = false>(options: Options<DeleteData, ThrowOnError>) => (options.client ?? client).delete<DeleteResponses, DeleteErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Retrieve a Single Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const get = <ThrowOnError extends boolean = false>(options: Options<GetData, ThrowOnError>) => (options.client ?? client).get<GetResponses, GetErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options\n});\n\n/**\n * Update an Asset Folder\n *\n * Operations for a specific asset folder\n */\nexport const update = <ThrowOnError extends boolean = false>(options: Options<UpdateData, ThrowOnError>) => (options.client ?? client).put<UpdateResponses, UpdateErrors, ThrowOnError>({\n security: [{ name: 'Authorization', type: 'apiKey' }, { scheme: 'bearer', type: 'http' }],\n url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n"],"mappings":";;;;;;;;AAyBA,MAAa,QAA8C,aAA8C,QAAQ,UAAU,QAAQ,IAA6C;CAC5K,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAU,QAAQ,KAAkD;CACrL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC;;;;;;AAOF,MAAa,WAAiD,aAAgD,QAAQ,UAAU,QAAQ,OAAoD;CACxL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,OAA6C,aAA6C,QAAQ,UAAU,QAAQ,IAA2C;CACxK,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACN,CAAC;;;;;;AAOF,MAAa,UAAgD,aAAgD,QAAQ,UAAU,QAAQ,IAAiD;CACpL,UAAU,CAAC;EAAE,MAAM;EAAiB,MAAM;EAAU,EAAE;EAAE,QAAQ;EAAU,MAAM;EAAQ,CAAC;CACzF,KAAK;CACL,GAAG;CACH,SAAS;EACL,gBAAgB;EAChB,GAAG,QAAQ;EACd;CACJ,CAAC"}
@@ -1,156 +0,0 @@
1
- //#region src/generated/asset_folders/types.gen.d.ts
2
- type AssetFolder = {
3
- /**
4
- * The numeric ID of the asset folder
5
- */
6
- readonly id: number;
7
- /**
8
- * The name of the asset folder
9
- */
10
- name: string;
11
- /**
12
- * ID of the parent folder for hierarchical structure
13
- */
14
- parent_id?: number | null;
15
- /**
16
- * The UUID of the asset folder
17
- */
18
- readonly uuid: string;
19
- /**
20
- * The UUID of the parent folder
21
- */
22
- readonly parent_uuid?: string | null;
23
- };
24
- type AssetFolderCreate = AssetFolderCreate2;
25
- type AssetFolderUpdate = AssetFolderUpdate2;
26
- /**
27
- * Input for creating an asset folder.
28
- */
29
- type AssetFolderCreate2 = {
30
- /**
31
- * The name of the asset folder
32
- */
33
- name: string;
34
- /**
35
- * ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
36
- */
37
- parent_id?: number | null;
38
- };
39
- /**
40
- * Input for updating an asset folder.
41
- */
42
- type AssetFolderUpdate2 = {
43
- /**
44
- * The name of the asset folder
45
- */
46
- name?: string;
47
- /**
48
- * ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
49
- */
50
- parent_id?: number | null;
51
- };
52
- type ListData = {
53
- body?: never;
54
- path: {
55
- /**
56
- * The ID of the Storyblok space (can be integer or string)
57
- */
58
- space_id: number | string;
59
- };
60
- query?: {
61
- /**
62
- * Search by folder's name
63
- */
64
- search?: string;
65
- /**
66
- * Filter by parent id. Use 0 or "0" for root level folders.
67
- */
68
- with_parent?: number | string;
69
- /**
70
- * Comma-separated list of UUIDs to filter by
71
- */
72
- by_uuids?: string;
73
- /**
74
- * Comma-separated list of IDs to filter by
75
- */
76
- by_ids?: string;
77
- };
78
- url: '/v1/spaces/{space_id}/asset_folders';
79
- };
80
- type ListResponses = {
81
- /**
82
- * List of asset folders
83
- */
84
- 200: {
85
- asset_folders?: Array<AssetFolder>;
86
- };
87
- };
88
- type CreateData = {
89
- body: {
90
- asset_folder?: AssetFolderCreate2;
91
- };
92
- path: {
93
- /**
94
- * The ID of the Storyblok space (can be integer or string)
95
- */
96
- space_id: number | string;
97
- };
98
- query?: never;
99
- url: '/v1/spaces/{space_id}/asset_folders';
100
- };
101
- type CreateResponses = {
102
- /**
103
- * Asset folder created successfully
104
- */
105
- 201: {
106
- asset_folder?: AssetFolder;
107
- };
108
- };
109
- type DeleteData = {
110
- body?: never;
111
- path: {
112
- /**
113
- * The ID of the Storyblok space (can be integer or string)
114
- */
115
- space_id: number | string;
116
- /**
117
- * The ID of the asset folder (can be integer or string)
118
- */
119
- asset_folder_id: number | string;
120
- };
121
- query?: {
122
- /**
123
- * If true, recursively delete all child folders and orphan their assets. If false (default), assets are orphaned and child folders are moved to the parent level.
124
- */
125
- recursive?: boolean;
126
- };
127
- url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
128
- };
129
- type GetResponses = {
130
- /**
131
- * Asset folder details
132
- */
133
- 200: {
134
- asset_folder?: AssetFolder;
135
- };
136
- };
137
- type UpdateData = {
138
- body: {
139
- asset_folder?: AssetFolderUpdate2;
140
- };
141
- path: {
142
- /**
143
- * The ID of the Storyblok space (can be integer or string)
144
- */
145
- space_id: number | string;
146
- /**
147
- * The ID of the asset folder (can be integer or string)
148
- */
149
- asset_folder_id: number | string;
150
- };
151
- query?: never;
152
- url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
153
- };
154
- //#endregion
155
- export { AssetFolder, AssetFolderCreate, AssetFolderUpdate, CreateData, CreateResponses, DeleteData, GetResponses, ListData, ListResponses, UpdateData };
156
- //# sourceMappingURL=types.gen.d.cts.map
@@ -1,156 +0,0 @@
1
- //#region src/generated/asset_folders/types.gen.d.ts
2
- type AssetFolder = {
3
- /**
4
- * The numeric ID of the asset folder
5
- */
6
- readonly id: number;
7
- /**
8
- * The name of the asset folder
9
- */
10
- name: string;
11
- /**
12
- * ID of the parent folder for hierarchical structure
13
- */
14
- parent_id?: number | null;
15
- /**
16
- * The UUID of the asset folder
17
- */
18
- readonly uuid: string;
19
- /**
20
- * The UUID of the parent folder
21
- */
22
- readonly parent_uuid?: string | null;
23
- };
24
- type AssetFolderCreate = AssetFolderCreate2;
25
- type AssetFolderUpdate = AssetFolderUpdate2;
26
- /**
27
- * Input for creating an asset folder.
28
- */
29
- type AssetFolderCreate2 = {
30
- /**
31
- * The name of the asset folder
32
- */
33
- name: string;
34
- /**
35
- * ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
36
- */
37
- parent_id?: number | null;
38
- };
39
- /**
40
- * Input for updating an asset folder.
41
- */
42
- type AssetFolderUpdate2 = {
43
- /**
44
- * The name of the asset folder
45
- */
46
- name?: string;
47
- /**
48
- * ID of the parent folder for hierarchical structure. Use 0 or null to move to root level.
49
- */
50
- parent_id?: number | null;
51
- };
52
- type ListData = {
53
- body?: never;
54
- path: {
55
- /**
56
- * The ID of the Storyblok space (can be integer or string)
57
- */
58
- space_id: number | string;
59
- };
60
- query?: {
61
- /**
62
- * Search by folder's name
63
- */
64
- search?: string;
65
- /**
66
- * Filter by parent id. Use 0 or "0" for root level folders.
67
- */
68
- with_parent?: number | string;
69
- /**
70
- * Comma-separated list of UUIDs to filter by
71
- */
72
- by_uuids?: string;
73
- /**
74
- * Comma-separated list of IDs to filter by
75
- */
76
- by_ids?: string;
77
- };
78
- url: '/v1/spaces/{space_id}/asset_folders';
79
- };
80
- type ListResponses = {
81
- /**
82
- * List of asset folders
83
- */
84
- 200: {
85
- asset_folders?: Array<AssetFolder>;
86
- };
87
- };
88
- type CreateData = {
89
- body: {
90
- asset_folder?: AssetFolderCreate2;
91
- };
92
- path: {
93
- /**
94
- * The ID of the Storyblok space (can be integer or string)
95
- */
96
- space_id: number | string;
97
- };
98
- query?: never;
99
- url: '/v1/spaces/{space_id}/asset_folders';
100
- };
101
- type CreateResponses = {
102
- /**
103
- * Asset folder created successfully
104
- */
105
- 201: {
106
- asset_folder?: AssetFolder;
107
- };
108
- };
109
- type DeleteData = {
110
- body?: never;
111
- path: {
112
- /**
113
- * The ID of the Storyblok space (can be integer or string)
114
- */
115
- space_id: number | string;
116
- /**
117
- * The ID of the asset folder (can be integer or string)
118
- */
119
- asset_folder_id: number | string;
120
- };
121
- query?: {
122
- /**
123
- * If true, recursively delete all child folders and orphan their assets. If false (default), assets are orphaned and child folders are moved to the parent level.
124
- */
125
- recursive?: boolean;
126
- };
127
- url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
128
- };
129
- type GetResponses = {
130
- /**
131
- * Asset folder details
132
- */
133
- 200: {
134
- asset_folder?: AssetFolder;
135
- };
136
- };
137
- type UpdateData = {
138
- body: {
139
- asset_folder?: AssetFolderUpdate2;
140
- };
141
- path: {
142
- /**
143
- * The ID of the Storyblok space (can be integer or string)
144
- */
145
- space_id: number | string;
146
- /**
147
- * The ID of the asset folder (can be integer or string)
148
- */
149
- asset_folder_id: number | string;
150
- };
151
- query?: never;
152
- url: '/v1/spaces/{space_id}/asset_folders/{asset_folder_id}';
153
- };
154
- //#endregion
155
- export { AssetFolder, AssetFolderCreate, AssetFolderUpdate, CreateData, CreateResponses, DeleteData, GetResponses, ListData, ListResponses, UpdateData };
156
- //# sourceMappingURL=types.gen.d.mts.map