@storyblok/management-api-client 0.5.1 → 0.6.0

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 (320) hide show
  1. package/README.md +3 -1
  2. package/dist/client.cjs +196 -0
  3. package/dist/client.cjs.map +1 -0
  4. package/dist/client.d.cts +761 -0
  5. package/dist/client.d.mts +761 -0
  6. package/dist/client.mjs +195 -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 +371 -0
  13. package/dist/generated/mapi/_internal.gen.d.mts +371 -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 +1598 -0
  69. package/dist/generated/mapi/types-aliased.gen.d.mts +1598 -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 +55 -0
  77. package/dist/generated/types/block.d.mts +55 -0
  78. package/dist/generated/types/field.d.cts +122 -0
  79. package/dist/generated/types/field.d.mts +122 -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 -181
  83. package/dist/index.d.cts +12 -650
  84. package/dist/index.d.mts +12 -649
  85. package/dist/index.mjs +2 -179
  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 -50
  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 -50
  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 +31 -31
  115. package/dist/resources/experiments.cjs.map +1 -1
  116. package/dist/resources/experiments.mjs +31 -31
  117. package/dist/resources/experiments.mjs.map +1 -1
  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-asset-folders.cjs.map +1 -1
  127. package/dist/resources/shared-asset-folders.d.cts +1 -1
  128. package/dist/resources/shared-asset-folders.d.mts +1 -1
  129. package/dist/resources/shared-asset-folders.mjs.map +1 -1
  130. package/dist/resources/shared-assets.cjs.map +1 -1
  131. package/dist/resources/shared-assets.d.cts +2 -2
  132. package/dist/resources/shared-assets.d.mts +2 -2
  133. package/dist/resources/shared-assets.mjs.map +1 -1
  134. package/dist/resources/shared-internal-tags.cjs.map +1 -1
  135. package/dist/resources/shared-internal-tags.mjs.map +1 -1
  136. package/dist/resources/shared.cjs +15 -0
  137. package/dist/resources/shared.cjs.map +1 -1
  138. package/dist/resources/shared.mjs +15 -1
  139. package/dist/resources/shared.mjs.map +1 -1
  140. package/dist/resources/spaces.cjs +8 -7
  141. package/dist/resources/spaces.cjs.map +1 -1
  142. package/dist/resources/spaces.d.cts +8 -0
  143. package/dist/resources/spaces.d.mts +7 -0
  144. package/dist/resources/spaces.mjs +8 -7
  145. package/dist/resources/spaces.mjs.map +1 -1
  146. package/dist/resources/stories.cjs +20 -16
  147. package/dist/resources/stories.cjs.map +1 -1
  148. package/dist/resources/stories.d.cts +93 -0
  149. package/dist/resources/stories.d.mts +93 -0
  150. package/dist/resources/stories.mjs +20 -16
  151. package/dist/resources/stories.mjs.map +1 -1
  152. package/dist/resources/users.cjs +3 -3
  153. package/dist/resources/users.cjs.map +1 -1
  154. package/dist/resources/users.mjs +3 -3
  155. package/dist/resources/users.mjs.map +1 -1
  156. package/dist/utils/query-serializer.cjs +54 -0
  157. package/dist/utils/query-serializer.cjs.map +1 -0
  158. package/dist/utils/query-serializer.mjs +54 -0
  159. package/dist/utils/query-serializer.mjs.map +1 -0
  160. package/package.json +17 -15
  161. package/playground/integration-tests/README.md +24 -0
  162. package/playground/integration-tests/eslint.config.js +5 -0
  163. package/playground/integration-tests/node_modules/.bin/eslint +16 -0
  164. package/playground/integration-tests/node_modules/.bin/tsc +16 -0
  165. package/playground/integration-tests/node_modules/.bin/tsserver +16 -0
  166. package/playground/integration-tests/node_modules/.bin/vitest +16 -0
  167. package/playground/integration-tests/package.json +24 -0
  168. package/playground/integration-tests/test/setup.e2e.ts +11 -0
  169. package/playground/integration-tests/test/specs/mapi-round-trip.spec.e2e.ts +510 -0
  170. package/playground/integration-tests/test/types/components.test-d.ts +74 -0
  171. package/playground/integration-tests/test/types/resources.test-d.ts +212 -0
  172. package/playground/integration-tests/test/types/stories.test-d.ts +310 -0
  173. package/playground/integration-tests/vitest.config.e2e.ts +25 -0
  174. package/playground/integration-tests/vitest.config.ts +13 -0
  175. package/test/GUIDE.md +59 -0
  176. package/vitest.config.ts +5 -0
  177. package/dist/generated/asset_folders/client.gen.cjs +0 -10
  178. package/dist/generated/asset_folders/client.gen.cjs.map +0 -1
  179. package/dist/generated/asset_folders/client.gen.mjs +0 -10
  180. package/dist/generated/asset_folders/client.gen.mjs.map +0 -1
  181. package/dist/generated/asset_folders/sdk.gen.cjs +0 -99
  182. package/dist/generated/asset_folders/sdk.gen.cjs.map +0 -1
  183. package/dist/generated/asset_folders/sdk.gen.mjs +0 -95
  184. package/dist/generated/asset_folders/sdk.gen.mjs.map +0 -1
  185. package/dist/generated/asset_folders/types.gen.d.cts +0 -156
  186. package/dist/generated/asset_folders/types.gen.d.mts +0 -156
  187. package/dist/generated/assets/client.gen.cjs +0 -10
  188. package/dist/generated/assets/client.gen.cjs.map +0 -1
  189. package/dist/generated/assets/client.gen.mjs +0 -10
  190. package/dist/generated/assets/client.gen.mjs.map +0 -1
  191. package/dist/generated/assets/sdk.gen.cjs +0 -179
  192. package/dist/generated/assets/sdk.gen.cjs.map +0 -1
  193. package/dist/generated/assets/sdk.gen.mjs +0 -171
  194. package/dist/generated/assets/sdk.gen.mjs.map +0 -1
  195. package/dist/generated/assets/types.gen.d.cts +0 -415
  196. package/dist/generated/assets/types.gen.d.mts +0 -415
  197. package/dist/generated/component_folders/client.gen.cjs +0 -10
  198. package/dist/generated/component_folders/client.gen.cjs.map +0 -1
  199. package/dist/generated/component_folders/client.gen.mjs +0 -10
  200. package/dist/generated/component_folders/client.gen.mjs.map +0 -1
  201. package/dist/generated/component_folders/sdk.gen.cjs +0 -99
  202. package/dist/generated/component_folders/sdk.gen.cjs.map +0 -1
  203. package/dist/generated/component_folders/sdk.gen.mjs +0 -95
  204. package/dist/generated/component_folders/sdk.gen.mjs.map +0 -1
  205. package/dist/generated/component_folders/types.gen.d.cts +0 -118
  206. package/dist/generated/component_folders/types.gen.d.mts +0 -118
  207. package/dist/generated/components/client.gen.cjs +0 -10
  208. package/dist/generated/components/client.gen.cjs.map +0 -1
  209. package/dist/generated/components/client.gen.mjs +0 -10
  210. package/dist/generated/components/client.gen.mjs.map +0 -1
  211. package/dist/generated/components/sdk.gen.cjs +0 -171
  212. package/dist/generated/components/sdk.gen.cjs.map +0 -1
  213. package/dist/generated/components/sdk.gen.mjs +0 -163
  214. package/dist/generated/components/sdk.gen.mjs.map +0 -1
  215. package/dist/generated/components/types.gen.d.cts +0 -855
  216. package/dist/generated/components/types.gen.d.mts +0 -855
  217. package/dist/generated/datasource_entries/client.gen.cjs +0 -10
  218. package/dist/generated/datasource_entries/client.gen.cjs.map +0 -1
  219. package/dist/generated/datasource_entries/client.gen.mjs +0 -10
  220. package/dist/generated/datasource_entries/client.gen.mjs.map +0 -1
  221. package/dist/generated/datasource_entries/sdk.gen.cjs +0 -89
  222. package/dist/generated/datasource_entries/sdk.gen.cjs.map +0 -1
  223. package/dist/generated/datasource_entries/sdk.gen.mjs +0 -85
  224. package/dist/generated/datasource_entries/sdk.gen.mjs.map +0 -1
  225. package/dist/generated/datasource_entries/types.gen.d.cts +0 -156
  226. package/dist/generated/datasource_entries/types.gen.d.mts +0 -156
  227. package/dist/generated/datasources/client.gen.cjs +0 -10
  228. package/dist/generated/datasources/client.gen.cjs.map +0 -1
  229. package/dist/generated/datasources/client.gen.mjs +0 -10
  230. package/dist/generated/datasources/client.gen.mjs.map +0 -1
  231. package/dist/generated/datasources/sdk.gen.cjs +0 -89
  232. package/dist/generated/datasources/sdk.gen.cjs.map +0 -1
  233. package/dist/generated/datasources/sdk.gen.mjs +0 -85
  234. package/dist/generated/datasources/sdk.gen.mjs.map +0 -1
  235. package/dist/generated/datasources/types.gen.d.cts +0 -186
  236. package/dist/generated/datasources/types.gen.d.mts +0 -186
  237. package/dist/generated/experiments/client.gen.cjs +0 -10
  238. package/dist/generated/experiments/client.gen.cjs.map +0 -1
  239. package/dist/generated/experiments/client.gen.mjs +0 -10
  240. package/dist/generated/experiments/client.gen.mjs.map +0 -1
  241. package/dist/generated/experiments/sdk.gen.cjs +0 -298
  242. package/dist/generated/experiments/sdk.gen.cjs.map +0 -1
  243. package/dist/generated/experiments/sdk.gen.mjs +0 -283
  244. package/dist/generated/experiments/sdk.gen.mjs.map +0 -1
  245. package/dist/generated/experiments/types.gen.d.cts +0 -522
  246. package/dist/generated/experiments/types.gen.d.mts +0 -522
  247. package/dist/generated/internal_tags/client.gen.cjs +0 -10
  248. package/dist/generated/internal_tags/client.gen.cjs.map +0 -1
  249. package/dist/generated/internal_tags/client.gen.mjs +0 -10
  250. package/dist/generated/internal_tags/client.gen.mjs.map +0 -1
  251. package/dist/generated/internal_tags/sdk.gen.cjs +0 -74
  252. package/dist/generated/internal_tags/sdk.gen.cjs.map +0 -1
  253. package/dist/generated/internal_tags/sdk.gen.mjs +0 -71
  254. package/dist/generated/internal_tags/sdk.gen.mjs.map +0 -1
  255. package/dist/generated/internal_tags/types.gen.d.cts +0 -106
  256. package/dist/generated/internal_tags/types.gen.d.mts +0 -106
  257. package/dist/generated/presets/client.gen.cjs +0 -10
  258. package/dist/generated/presets/client.gen.cjs.map +0 -1
  259. package/dist/generated/presets/client.gen.mjs +0 -10
  260. package/dist/generated/presets/client.gen.mjs.map +0 -1
  261. package/dist/generated/presets/sdk.gen.cjs +0 -99
  262. package/dist/generated/presets/sdk.gen.cjs.map +0 -1
  263. package/dist/generated/presets/sdk.gen.mjs +0 -95
  264. package/dist/generated/presets/sdk.gen.mjs.map +0 -1
  265. package/dist/generated/presets/types.gen.d.cts +0 -176
  266. package/dist/generated/presets/types.gen.d.mts +0 -176
  267. package/dist/generated/shared/client/client.gen.cjs.map +0 -1
  268. package/dist/generated/shared/client/client.gen.mjs.map +0 -1
  269. package/dist/generated/shared/client/utils.gen.cjs.map +0 -1
  270. package/dist/generated/shared/client/utils.gen.mjs.map +0 -1
  271. package/dist/generated/shared/core/auth.gen.cjs.map +0 -1
  272. package/dist/generated/shared/core/auth.gen.mjs.map +0 -1
  273. package/dist/generated/shared/core/bodySerializer.gen.cjs.map +0 -1
  274. package/dist/generated/shared/core/bodySerializer.gen.mjs.map +0 -1
  275. package/dist/generated/shared/core/params.gen.cjs.map +0 -1
  276. package/dist/generated/shared/core/params.gen.mjs.map +0 -1
  277. package/dist/generated/shared/core/pathSerializer.gen.cjs.map +0 -1
  278. package/dist/generated/shared/core/pathSerializer.gen.mjs.map +0 -1
  279. package/dist/generated/shared/core/serverSentEvents.gen.cjs.map +0 -1
  280. package/dist/generated/shared/core/serverSentEvents.gen.mjs.map +0 -1
  281. package/dist/generated/shared/core/utils.gen.cjs.map +0 -1
  282. package/dist/generated/shared/core/utils.gen.mjs.map +0 -1
  283. package/dist/generated/spaces/client.gen.cjs +0 -10
  284. package/dist/generated/spaces/client.gen.cjs.map +0 -1
  285. package/dist/generated/spaces/client.gen.mjs +0 -10
  286. package/dist/generated/spaces/client.gen.mjs.map +0 -1
  287. package/dist/generated/spaces/sdk.gen.cjs +0 -99
  288. package/dist/generated/spaces/sdk.gen.cjs.map +0 -1
  289. package/dist/generated/spaces/sdk.gen.mjs +0 -95
  290. package/dist/generated/spaces/sdk.gen.mjs.map +0 -1
  291. package/dist/generated/spaces/types.gen.d.cts +0 -544
  292. package/dist/generated/spaces/types.gen.d.mts +0 -544
  293. package/dist/generated/stories/client.gen.cjs +0 -10
  294. package/dist/generated/stories/client.gen.cjs.map +0 -1
  295. package/dist/generated/stories/client.gen.mjs +0 -10
  296. package/dist/generated/stories/client.gen.mjs.map +0 -1
  297. package/dist/generated/stories/sdk.gen.cjs +0 -138
  298. package/dist/generated/stories/sdk.gen.cjs.map +0 -1
  299. package/dist/generated/stories/sdk.gen.mjs +0 -131
  300. package/dist/generated/stories/sdk.gen.mjs.map +0 -1
  301. package/dist/generated/stories/types.gen.d.cts +0 -1306
  302. package/dist/generated/stories/types.gen.d.mts +0 -1306
  303. package/dist/generated/users/client.gen.cjs +0 -10
  304. package/dist/generated/users/client.gen.cjs.map +0 -1
  305. package/dist/generated/users/client.gen.mjs +0 -10
  306. package/dist/generated/users/client.gen.mjs.map +0 -1
  307. package/dist/generated/users/sdk.gen.cjs +0 -44
  308. package/dist/generated/users/sdk.gen.cjs.map +0 -1
  309. package/dist/generated/users/sdk.gen.mjs +0 -43
  310. package/dist/generated/users/sdk.gen.mjs.map +0 -1
  311. package/dist/generated/users/types.gen.d.cts +0 -348
  312. package/dist/generated/users/types.gen.d.mts +0 -348
  313. package/dist/index.cjs.map +0 -1
  314. package/dist/index.mjs.map +0 -1
  315. package/dist/types.d.cts +0 -130
  316. package/dist/types.d.mts +0 -130
  317. /package/dist/generated/{shared → mapi}/client/client.gen.d.mts +0 -0
  318. /package/dist/generated/{shared → mapi}/client/index.cjs +0 -0
  319. /package/dist/generated/{shared → mapi}/client/index.d.mts +0 -0
  320. /package/dist/generated/{shared → mapi}/client/index.mjs +0 -0
@@ -0,0 +1,7 @@
1
+ //#region src/generated/types/_utils.d.ts
2
+ type Prettify<T> = { [K in keyof T]: T[K] } & {};
3
+ /** Replaces the keys of `T` that also appear in `U` with the definitions from `U`. */
4
+ type Override<T, U> = Prettify<Omit<T, keyof U> & U>;
5
+ //#endregion
6
+ export { Override, Prettify };
7
+ //# sourceMappingURL=_utils.d.cts.map
@@ -0,0 +1,7 @@
1
+ //#region src/generated/types/_utils.d.ts
2
+ type Prettify<T> = { [K in keyof T]: T[K] } & {};
3
+ /** Replaces the keys of `T` that also appear in `U` with the definitions from `U`. */
4
+ type Override<T, U> = Prettify<Omit<T, keyof U> & U>;
5
+ //#endregion
6
+ export { Override, Prettify };
7
+ //# sourceMappingURL=_utils.d.mts.map
@@ -0,0 +1,55 @@
1
+ import { Component } from "../mapi/types-aliased.gen.cjs";
2
+ import { Field } from "../overlay/_internal.gen.cjs";
3
+ import { Override } from "./_utils.cjs";
4
+
5
+ //#region src/generated/types/block.d.ts
6
+ /**
7
+ * Ordered array of named fields — the content-shape DSL form `defineBlock`
8
+ * accepts and returns. A field's position in the array sets the order it appears
9
+ * in the editor (mapped to the wire `pos` on push).
10
+ */
11
+ type BlockFields = ReadonlyArray<Field & {
12
+ name: string;
13
+ pos?: number;
14
+ required?: boolean;
15
+ }>;
16
+ /**
17
+ * A Storyblok block: a named, ordered set of content fields. Uses the
18
+ * content-shape DSL `fields` array rather than the MAPI wire `schema` record.
19
+ */
20
+ type Block<TName extends string = string, TFields extends BlockFields = BlockFields, TIsRoot extends boolean = boolean, TIsNestable extends boolean = boolean> = Override<Omit<Component, 'schema' | 'component_group_uuid'>, {
21
+ name: TName;
22
+ fields: TFields;
23
+ is_root?: TIsRoot;
24
+ is_nestable?: TIsNestable;
25
+ /**
26
+ * Escape hatch for pinning this block to a Storyblok UI-managed component
27
+ * group by UUID. Component groups are normally maintained in code via the
28
+ * schema directory layout; set this only if you intentionally manage groups
29
+ * in the Storyblok UI, and fill in the group UUID yourself. When set,
30
+ * `schema push` diffs it and sends it to the Management API; when omitted,
31
+ * the block's remote group is left untouched.
32
+ *
33
+ * @deprecated Prefer maintaining component groups in code through the
34
+ * directory layout.
35
+ */
36
+ component_group_uuid?: string | null;
37
+ /**
38
+ * Folder membership as a display name path (e.g. `'Layout/Heros'`); `null` =
39
+ * explicitly ungrouped (push clears the group). Absent = unmanaged (push
40
+ * leaves the remote group untouched).
41
+ */
42
+ folder?: string | null;
43
+ }>;
44
+ /**
45
+ * A root {@link Block} (`is_root: true`). Given a union of blocks, narrows to
46
+ * its root members; with no argument it is the generic root-block type.
47
+ */
48
+ type RootBlock<T extends Block = Block & {
49
+ is_root: true;
50
+ }> = Extract<T, {
51
+ is_root: true;
52
+ }>;
53
+ //#endregion
54
+ export { Block, BlockFields, RootBlock };
55
+ //# sourceMappingURL=block.d.cts.map
@@ -0,0 +1,55 @@
1
+ import { Component } from "../mapi/types-aliased.gen.mjs";
2
+ import { Field } from "../overlay/_internal.gen.mjs";
3
+ import { Override } from "./_utils.mjs";
4
+
5
+ //#region src/generated/types/block.d.ts
6
+ /**
7
+ * Ordered array of named fields — the content-shape DSL form `defineBlock`
8
+ * accepts and returns. A field's position in the array sets the order it appears
9
+ * in the editor (mapped to the wire `pos` on push).
10
+ */
11
+ type BlockFields = ReadonlyArray<Field & {
12
+ name: string;
13
+ pos?: number;
14
+ required?: boolean;
15
+ }>;
16
+ /**
17
+ * A Storyblok block: a named, ordered set of content fields. Uses the
18
+ * content-shape DSL `fields` array rather than the MAPI wire `schema` record.
19
+ */
20
+ type Block<TName extends string = string, TFields extends BlockFields = BlockFields, TIsRoot extends boolean = boolean, TIsNestable extends boolean = boolean> = Override<Omit<Component, 'schema' | 'component_group_uuid'>, {
21
+ name: TName;
22
+ fields: TFields;
23
+ is_root?: TIsRoot;
24
+ is_nestable?: TIsNestable;
25
+ /**
26
+ * Escape hatch for pinning this block to a Storyblok UI-managed component
27
+ * group by UUID. Component groups are normally maintained in code via the
28
+ * schema directory layout; set this only if you intentionally manage groups
29
+ * in the Storyblok UI, and fill in the group UUID yourself. When set,
30
+ * `schema push` diffs it and sends it to the Management API; when omitted,
31
+ * the block's remote group is left untouched.
32
+ *
33
+ * @deprecated Prefer maintaining component groups in code through the
34
+ * directory layout.
35
+ */
36
+ component_group_uuid?: string | null;
37
+ /**
38
+ * Folder membership as a display name path (e.g. `'Layout/Heros'`); `null` =
39
+ * explicitly ungrouped (push clears the group). Absent = unmanaged (push
40
+ * leaves the remote group untouched).
41
+ */
42
+ folder?: string | null;
43
+ }>;
44
+ /**
45
+ * A root {@link Block} (`is_root: true`). Given a union of blocks, narrows to
46
+ * its root members; with no argument it is the generic root-block type.
47
+ */
48
+ type RootBlock<T extends Block = Block & {
49
+ is_root: true;
50
+ }> = Extract<T, {
51
+ is_root: true;
52
+ }>;
53
+ //#endregion
54
+ export { Block, BlockFields, RootBlock };
55
+ //# sourceMappingURL=block.d.mts.map
@@ -0,0 +1,122 @@
1
+ import { AssetFieldValue, BlockContentBase, BlockContentInputBase, Field, MultilinkFieldValue, PluginFieldValue, RichtextFieldValue, TableFieldValue } from "../overlay/_internal.gen.cjs";
2
+ import { Prettify } from "./_utils.cjs";
3
+ import { Block, BlockFields } from "./block.cjs";
4
+
5
+ //#region src/generated/types/field.d.ts
6
+ /**
7
+ * Registry of all blocks in the space, used to resolve nested `bloks` fields.
8
+ * A `Block` union resolves nested content against the registry; `NoBlocks`
9
+ * (the default) leaves it loose (`BlockContentBase`).
10
+ */
11
+ type NoBlocks = false;
12
+ /** True when `T` is the un-narrowed base `Block` (i.e. no specific block was supplied). */
13
+ type IsBaseBlock<T> = [Block] extends [T] ? true : false;
14
+ /**
15
+ * Maps a block's ordered `fields` array to its read content object, splitting
16
+ * required (`required: true`) from optional fields. Each `F` is a member of the
17
+ * field union, so it provably satisfies `FieldValue`'s `Field` constraint.
18
+ */
19
+ type ContentFields<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
20
+ required: true;
21
+ } ? F['name'] : never]: FieldValue<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
22
+ required: true;
23
+ } ? never : F['name']]?: FieldValue<F, TBlocks, TFieldPlugins> | null }>;
24
+ /** Input (write) variant of {@link ContentFields}, resolving each field via {@link FieldValueInput}. */
25
+ type ContentFieldsInput<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
26
+ required: true;
27
+ } ? F['name'] : never]: FieldValueInput<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
28
+ required: true;
29
+ } ? never : F['name']]?: FieldValueInput<F, TBlocks, TFieldPlugins> | null }>;
30
+ /**
31
+ * Content object for a single block instance as returned by the Storyblok
32
+ * Content Delivery API. Without a `TBlock` argument, this is the loose
33
+ * runtime shape (any block, `_editable` optional). With a schema-typed
34
+ * `TBlock`, fields are narrowed per the block's `fields`.
35
+ */
36
+ type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentBase : TBlock extends any ? Prettify<{
37
+ _uid: string;
38
+ component: TBlock['name'];
39
+ _editable?: string;
40
+ } & ContentFields<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
41
+ /** Input variant of {@link BlockContent} for write operations (creating/updating stories via the MAPI). `_uid` is optional. */
42
+ type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentInputBase : TBlock extends any ? Prettify<{
43
+ _uid?: string;
44
+ component: TBlock['name'];
45
+ _editable?: string;
46
+ } & ContentFieldsInput<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
47
+ type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = BlockContent<TBlock, TBlocks, TFieldPlugins>[];
48
+ interface FieldTypeValueMap {
49
+ text: string;
50
+ textarea: string;
51
+ richtext: RichtextFieldValue;
52
+ markdown: string;
53
+ number: number;
54
+ datetime: string;
55
+ boolean: boolean;
56
+ option: string;
57
+ options: string[];
58
+ asset: AssetFieldValue;
59
+ multiasset: AssetFieldValue[];
60
+ multilink: MultilinkFieldValue;
61
+ bloks: BlockContentBase[];
62
+ table: TableFieldValue;
63
+ section: never;
64
+ tab: never;
65
+ custom: PluginFieldValue;
66
+ }
67
+ type IsNestable<T> = T extends {
68
+ is_nestable: false;
69
+ } ? false : T extends {
70
+ is_nestable: true;
71
+ } ? true : true;
72
+ type AllowEntry = string | {
73
+ folder: string;
74
+ };
75
+ /**
76
+ * Keeps `TBlock` when its `folder` is `TFolder` or any nested subfolder (mirrors
77
+ * the editor's `isAnywhereInFolder`). This is a best-effort compile-time check,
78
+ * compared case-insensitively via `Lowercase` so `folder: 'blog'` and a `Blog`
79
+ * folder ref narrow the same. TypeScript cannot replicate the CLI's full slug at
80
+ * the type level, so separator/symbol drift (`'My Layout'` vs `'my-layout'`) is
81
+ * only reconciled at push/validate time — full folder identity is enforced
82
+ * there, not here. To rely on narrowing, prefer a `defineFolder` ref over a
83
+ * string path on both the block's `folder` and the field's `allow`: a shared ref
84
+ * carries the exact path on both sides, so no drift is possible.
85
+ */
86
+ type MatchesFolder<TBlock, TFolder extends string> = TBlock extends {
87
+ folder: infer BF extends string;
88
+ } ? Lowercase<BF> extends Lowercase<TFolder> | `${Lowercase<TFolder>}/${string}` ? TBlock : never : never;
89
+ type ApplyAllow<TField, TBlocks> = TField extends {
90
+ allow: ReadonlyArray<infer TAllowed extends AllowEntry>;
91
+ } ? TAllowed extends string ? Extract<TBlocks, {
92
+ name: TAllowed;
93
+ }> : TAllowed extends {
94
+ folder: infer F extends string;
95
+ } ? TBlocks extends any ? MatchesFolder<TBlocks, F> : never : never : TBlocks extends any ? IsNestable<TBlocks> extends true ? TBlocks : never : never;
96
+ /**
97
+ * Resolves a `custom` field to its registered plugin value. When the field's
98
+ * `field_type` is a key of `TFieldPlugins`, the validator output is merged with
99
+ * the plugin envelope (`plugin`, optional `_uid`); otherwise it falls back to
100
+ * the untyped {@link PluginFieldValue}. Same shape for read and write.
101
+ */
102
+ type ResolveCustom<TField, TFieldPlugins> = TField extends {
103
+ field_type: infer F extends string;
104
+ } ? F extends keyof TFieldPlugins ? Prettify<TFieldPlugins[F] & {
105
+ plugin: string;
106
+ _uid?: string;
107
+ }> : PluginFieldValue : PluginFieldValue;
108
+ /** Resolves a field definition to its runtime content value type (read). */
109
+ type FieldValue<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
110
+ type: 'bloks';
111
+ } ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentBase[] : TField extends {
112
+ type: 'custom';
113
+ } ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
114
+ /** Resolves a field definition to its input value type (write). */
115
+ type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
116
+ type: 'bloks';
117
+ } ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentInputBase[] : TField extends {
118
+ type: 'custom';
119
+ } ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
120
+ //#endregion
121
+ export { BlockContent, BlockContentInput, BlocksFieldValue };
122
+ //# sourceMappingURL=field.d.cts.map
@@ -0,0 +1,122 @@
1
+ import { AssetFieldValue, BlockContentBase, BlockContentInputBase, Field, MultilinkFieldValue, PluginFieldValue, RichtextFieldValue, TableFieldValue } from "../overlay/_internal.gen.mjs";
2
+ import { Prettify } from "./_utils.mjs";
3
+ import { Block, BlockFields } from "./block.mjs";
4
+
5
+ //#region src/generated/types/field.d.ts
6
+ /**
7
+ * Registry of all blocks in the space, used to resolve nested `bloks` fields.
8
+ * A `Block` union resolves nested content against the registry; `NoBlocks`
9
+ * (the default) leaves it loose (`BlockContentBase`).
10
+ */
11
+ type NoBlocks = false;
12
+ /** True when `T` is the un-narrowed base `Block` (i.e. no specific block was supplied). */
13
+ type IsBaseBlock<T> = [Block] extends [T] ? true : false;
14
+ /**
15
+ * Maps a block's ordered `fields` array to its read content object, splitting
16
+ * required (`required: true`) from optional fields. Each `F` is a member of the
17
+ * field union, so it provably satisfies `FieldValue`'s `Field` constraint.
18
+ */
19
+ type ContentFields<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
20
+ required: true;
21
+ } ? F['name'] : never]: FieldValue<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
22
+ required: true;
23
+ } ? never : F['name']]?: FieldValue<F, TBlocks, TFieldPlugins> | null }>;
24
+ /** Input (write) variant of {@link ContentFields}, resolving each field via {@link FieldValueInput}. */
25
+ type ContentFieldsInput<TFields extends BlockFields, TBlocks, TFieldPlugins = Record<never, never>> = Prettify<{ [F in TFields[number] as F extends {
26
+ required: true;
27
+ } ? F['name'] : never]: FieldValueInput<F, TBlocks, TFieldPlugins> } & { [F in TFields[number] as F extends {
28
+ required: true;
29
+ } ? never : F['name']]?: FieldValueInput<F, TBlocks, TFieldPlugins> | null }>;
30
+ /**
31
+ * Content object for a single block instance as returned by the Storyblok
32
+ * Content Delivery API. Without a `TBlock` argument, this is the loose
33
+ * runtime shape (any block, `_editable` optional). With a schema-typed
34
+ * `TBlock`, fields are narrowed per the block's `fields`.
35
+ */
36
+ type BlockContent<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentBase : TBlock extends any ? Prettify<{
37
+ _uid: string;
38
+ component: TBlock['name'];
39
+ _editable?: string;
40
+ } & ContentFields<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
41
+ /** Input variant of {@link BlockContent} for write operations (creating/updating stories via the MAPI). `_uid` is optional. */
42
+ type BlockContentInput<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = IsBaseBlock<TBlock> extends true ? BlockContentInputBase : TBlock extends any ? Prettify<{
43
+ _uid?: string;
44
+ component: TBlock['name'];
45
+ _editable?: string;
46
+ } & ContentFieldsInput<TBlock['fields'], TBlocks, TFieldPlugins>> : never;
47
+ type BlocksFieldValue<TBlock extends Block = Block, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = BlockContent<TBlock, TBlocks, TFieldPlugins>[];
48
+ interface FieldTypeValueMap {
49
+ text: string;
50
+ textarea: string;
51
+ richtext: RichtextFieldValue;
52
+ markdown: string;
53
+ number: number;
54
+ datetime: string;
55
+ boolean: boolean;
56
+ option: string;
57
+ options: string[];
58
+ asset: AssetFieldValue;
59
+ multiasset: AssetFieldValue[];
60
+ multilink: MultilinkFieldValue;
61
+ bloks: BlockContentBase[];
62
+ table: TableFieldValue;
63
+ section: never;
64
+ tab: never;
65
+ custom: PluginFieldValue;
66
+ }
67
+ type IsNestable<T> = T extends {
68
+ is_nestable: false;
69
+ } ? false : T extends {
70
+ is_nestable: true;
71
+ } ? true : true;
72
+ type AllowEntry = string | {
73
+ folder: string;
74
+ };
75
+ /**
76
+ * Keeps `TBlock` when its `folder` is `TFolder` or any nested subfolder (mirrors
77
+ * the editor's `isAnywhereInFolder`). This is a best-effort compile-time check,
78
+ * compared case-insensitively via `Lowercase` so `folder: 'blog'` and a `Blog`
79
+ * folder ref narrow the same. TypeScript cannot replicate the CLI's full slug at
80
+ * the type level, so separator/symbol drift (`'My Layout'` vs `'my-layout'`) is
81
+ * only reconciled at push/validate time — full folder identity is enforced
82
+ * there, not here. To rely on narrowing, prefer a `defineFolder` ref over a
83
+ * string path on both the block's `folder` and the field's `allow`: a shared ref
84
+ * carries the exact path on both sides, so no drift is possible.
85
+ */
86
+ type MatchesFolder<TBlock, TFolder extends string> = TBlock extends {
87
+ folder: infer BF extends string;
88
+ } ? Lowercase<BF> extends Lowercase<TFolder> | `${Lowercase<TFolder>}/${string}` ? TBlock : never : never;
89
+ type ApplyAllow<TField, TBlocks> = TField extends {
90
+ allow: ReadonlyArray<infer TAllowed extends AllowEntry>;
91
+ } ? TAllowed extends string ? Extract<TBlocks, {
92
+ name: TAllowed;
93
+ }> : TAllowed extends {
94
+ folder: infer F extends string;
95
+ } ? TBlocks extends any ? MatchesFolder<TBlocks, F> : never : never : TBlocks extends any ? IsNestable<TBlocks> extends true ? TBlocks : never : never;
96
+ /**
97
+ * Resolves a `custom` field to its registered plugin value. When the field's
98
+ * `field_type` is a key of `TFieldPlugins`, the validator output is merged with
99
+ * the plugin envelope (`plugin`, optional `_uid`); otherwise it falls back to
100
+ * the untyped {@link PluginFieldValue}. Same shape for read and write.
101
+ */
102
+ type ResolveCustom<TField, TFieldPlugins> = TField extends {
103
+ field_type: infer F extends string;
104
+ } ? F extends keyof TFieldPlugins ? Prettify<TFieldPlugins[F] & {
105
+ plugin: string;
106
+ _uid?: string;
107
+ }> : PluginFieldValue : PluginFieldValue;
108
+ /** Resolves a field definition to its runtime content value type (read). */
109
+ type FieldValue<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
110
+ type: 'bloks';
111
+ } ? [TBlocks] extends [never] ? BlockContentBase[] : [TBlocks] extends [Block] ? BlockContent<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentBase[] : TField extends {
112
+ type: 'custom';
113
+ } ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
114
+ /** Resolves a field definition to its input value type (write). */
115
+ type FieldValueInput<TField extends Field = Field, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = Prettify<TField extends {
116
+ type: 'bloks';
117
+ } ? [TBlocks] extends [never] ? BlockContentInputBase[] : [TBlocks] extends [Block] ? BlockContentInput<ApplyAllow<TField, TBlocks>, TBlocks, TFieldPlugins>[] : BlockContentInputBase[] : TField extends {
118
+ type: 'custom';
119
+ } ? ResolveCustom<TField, TFieldPlugins> : FieldTypeValueMap[TField['type']]>;
120
+ //#endregion
121
+ export { BlockContent, BlockContentInput, BlocksFieldValue };
122
+ //# sourceMappingURL=field.d.mts.map
@@ -0,0 +1,29 @@
1
+ import { MapiStory as MapiStory$1, StoryCreate as StoryCreate$1, StoryUpdate as StoryUpdate$1 } from "../mapi/_internal.gen.cjs";
2
+ import { Override, Prettify } from "./_utils.cjs";
3
+ import { Block, RootBlock } from "./block.cjs";
4
+ import { BlockContent, BlockContentInput } from "./field.cjs";
5
+
6
+ //#region src/generated/types/mapi-story.d.ts
7
+ /**
8
+ * Registry of all blocks, threaded through to resolve nested `bloks` fields.
9
+ * `NoBlocks` (the default) leaves nested content loose (`BlockContentBase`).
10
+ */
11
+ type NoBlocks = false;
12
+ /**
13
+ * Overrides a generated story's `content` with schema-typed block content.
14
+ * Base (un-narrowed) `RootBlock` means no schema was supplied, so the generated
15
+ * story passes through unchanged.
16
+ */
17
+ type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = RootBlock extends TBlock ? TStory : Override<TStory, {
18
+ content: TStory extends StoryCreate$1 | StoryUpdate$1 ? BlockContentInput<TBlock, TBlocks, TFieldPlugins> : BlockContent<TBlock, TBlocks, TFieldPlugins>;
19
+ }>;
20
+ type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
21
+ /** A Storyblok MAPI story. */
22
+ type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
23
+ /** Payload for creating a story via the MAPI. */
24
+ type StoryCreate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryCreate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
25
+ /** Payload for updating a story via the MAPI. */
26
+ type StoryUpdate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryUpdate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
27
+ //#endregion
28
+ export { MapiStory, StoryCreate, StoryUpdate };
29
+ //# sourceMappingURL=mapi-story.d.cts.map
@@ -0,0 +1,29 @@
1
+ import { MapiStory as MapiStory$1, StoryCreate as StoryCreate$1, StoryUpdate as StoryUpdate$1 } from "../mapi/_internal.gen.mjs";
2
+ import { Override, Prettify } from "./_utils.mjs";
3
+ import { Block, RootBlock } from "./block.mjs";
4
+ import { BlockContent, BlockContentInput } from "./field.mjs";
5
+
6
+ //#region src/generated/types/mapi-story.d.ts
7
+ /**
8
+ * Registry of all blocks, threaded through to resolve nested `bloks` fields.
9
+ * `NoBlocks` (the default) leaves nested content loose (`BlockContentBase`).
10
+ */
11
+ type NoBlocks = false;
12
+ /**
13
+ * Overrides a generated story's `content` with schema-typed block content.
14
+ * Base (un-narrowed) `RootBlock` means no schema was supplied, so the generated
15
+ * story passes through unchanged.
16
+ */
17
+ type MapiStoryWithSchemaContent<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlock extends RootBlock = RootBlock, TBlocks = NoBlocks, TFieldPlugins = Record<never, never>> = RootBlock extends TBlock ? TStory : Override<TStory, {
18
+ content: TStory extends StoryCreate$1 | StoryUpdate$1 ? BlockContentInput<TBlock, TBlocks, TFieldPlugins> : BlockContent<TBlock, TBlocks, TFieldPlugins>;
19
+ }>;
20
+ type MakeMapiStory<TStory extends MapiStory$1 | StoryCreate$1 | StoryUpdate$1, TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = Prettify<[TBlockOrBlocks] extends [RootBlock] ? MapiStoryWithSchemaContent<TStory, TBlockOrBlocks, TBlocks, TFieldPlugins> : TBlocks extends NoBlocks ? MapiStoryWithSchemaContent<TStory, Extract<TBlockOrBlocks, RootBlock>, TBlockOrBlocks, TFieldPlugins> : never>;
21
+ /** A Storyblok MAPI story. */
22
+ type MapiStory<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<MapiStory$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
23
+ /** Payload for creating a story via the MAPI. */
24
+ type StoryCreate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryCreate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
25
+ /** Payload for updating a story via the MAPI. */
26
+ type StoryUpdate<TBlockOrBlocks extends RootBlock | Block = RootBlock, TFieldPlugins = Record<never, never>, TBlocks = NoBlocks> = MakeMapiStory<StoryUpdate$1, TBlockOrBlocks, TFieldPlugins, TBlocks>;
27
+ //#endregion
28
+ export { MapiStory, StoryCreate, StoryUpdate };
29
+ //# sourceMappingURL=mapi-story.d.mts.map
package/dist/index.cjs CHANGED
@@ -1,186 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
- const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
- const require_utils_gen = require('./generated/shared/client/utils.gen.cjs');
4
- const require_client_gen = require('./generated/shared/client/client.gen.cjs');
5
- require('./generated/shared/client/index.cjs');
6
2
  const require_error = require('./error.cjs');
7
- const require_rate_limit = require('./utils/rate-limit.cjs');
8
- const require_asset_folders = require('./resources/asset-folders.cjs');
9
- const require_assets = require('./resources/assets.cjs');
10
- const require_component_folders = require('./resources/component-folders.cjs');
11
- const require_components = require('./resources/components.cjs');
12
- const require_datasource_entries = require('./resources/datasource-entries.cjs');
13
- const require_datasources = require('./resources/datasources.cjs');
14
- const require_experiments = require('./resources/experiments.cjs');
15
- const require_internal_tags = require('./resources/internal-tags.cjs');
16
- const require_presets = require('./resources/presets.cjs');
17
- const require_shared_asset_folders = require('./resources/shared-asset-folders.cjs');
18
- const require_shared_assets = require('./resources/shared-assets.cjs');
19
- const require_shared_internal_tags = require('./resources/shared-internal-tags.cjs');
20
- const require_spaces = require('./resources/spaces.cjs');
21
- const require_stories = require('./resources/stories.cjs');
22
- const require_users = require('./resources/users.cjs');
3
+ const require_client = require('./client.cjs');
23
4
  const require_normalize_asset_url = require('./utils/normalize-asset-url.cjs');
24
- let _storyblok_region_helper = require("@storyblok/region-helper");
25
5
 
26
- //#region src/index.ts
27
- function getAuthorizationHeader(config) {
28
- if (config.personalAccessToken) return config.personalAccessToken;
29
- if (config.oauthToken) return `Bearer ${config.oauthToken.replace(/^Bearer\s+/i, "")}`;
30
- }
31
- const createManagementApiClient = (config) => {
32
- const { spaceId, region = "eu", baseUrl, headers = {}, throwOnError = false, retry = {
33
- limit: 12,
34
- backoffLimit: 2e4,
35
- methods: [
36
- "get",
37
- "post",
38
- "put",
39
- "delete",
40
- "patch",
41
- "head",
42
- "options",
43
- "trace"
44
- ],
45
- statusCodes: [429]
46
- }, timeout = 3e4, rateLimit } = config;
47
- const throttleManager = require_rate_limit.createThrottleManager(rateLimit ?? {});
48
- const authHeader = getAuthorizationHeader(config);
49
- const client = require_client_gen.createClient(require_utils_gen.createConfig({
50
- baseUrl: baseUrl || (0, _storyblok_region_helper.getManagementBaseUrl)(region),
51
- headers: {
52
- ...authHeader ? { Authorization: authHeader } : {},
53
- ...headers
54
- },
55
- throwOnError,
56
- kyOptions: {
57
- throwHttpErrors: true,
58
- timeout,
59
- retry
60
- }
61
- }));
62
- client.interceptors.error.use((error, response) => new require_error.ClientError(response?.statusText || "API request failed", {
63
- status: response?.status ?? 0,
64
- statusText: response?.statusText ?? "",
65
- data: error
66
- }));
67
- /**
68
- * Wraps an SDK call with throttling.
69
- * When throwOnError is true, errors throw and data is guaranteed non-null.
70
- */
71
- function wrapRequest(fn, _throwOnError) {
72
- return throttleManager.execute(() => fn());
73
- }
74
- const deps = {
75
- client,
76
- spaceId,
77
- wrapRequest
78
- };
79
- /**
80
- * Escape hatch: send a GET request to any MAPI endpoint not yet wrapped
81
- * in a dedicated resource method.
82
- */
83
- const httpGet = (path, options = {}) => {
84
- const { fetchOptions, ...rest } = options;
85
- return wrapRequest(() => client.get({
86
- url: path,
87
- ...rest,
88
- ...fetchOptions ? { kyOptions: {
89
- ...client.getConfig().kyOptions,
90
- ...fetchOptions
91
- } } : {}
92
- }));
93
- };
94
- /**
95
- * Escape hatch: send a POST request to any MAPI endpoint not yet wrapped
96
- * in a dedicated resource method.
97
- */
98
- const httpPost = (path, options = {}) => {
99
- const { fetchOptions, ...rest } = options;
100
- return wrapRequest(() => client.post({
101
- url: path,
102
- ...rest,
103
- ...fetchOptions ? { kyOptions: {
104
- ...client.getConfig().kyOptions,
105
- ...fetchOptions
106
- } } : {}
107
- }));
108
- };
109
- /**
110
- * Escape hatch: send a PUT request to any MAPI endpoint not yet wrapped
111
- * in a dedicated resource method.
112
- */
113
- const httpPut = (path, options = {}) => {
114
- const { fetchOptions, ...rest } = options;
115
- return wrapRequest(() => client.put({
116
- url: path,
117
- ...rest,
118
- ...fetchOptions ? { kyOptions: {
119
- ...client.getConfig().kyOptions,
120
- ...fetchOptions
121
- } } : {}
122
- }));
123
- };
124
- /**
125
- * Escape hatch: send a PATCH request to any MAPI endpoint not yet wrapped
126
- * in a dedicated resource method.
127
- */
128
- const httpPatch = (path, options = {}) => {
129
- const { fetchOptions, ...rest } = options;
130
- return wrapRequest(() => client.patch({
131
- url: path,
132
- ...rest,
133
- ...fetchOptions ? { kyOptions: {
134
- ...client.getConfig().kyOptions,
135
- ...fetchOptions
136
- } } : {}
137
- }));
138
- };
139
- /**
140
- * Escape hatch: send a DELETE request to any MAPI endpoint not yet wrapped
141
- * in a dedicated resource method.
142
- */
143
- const httpDelete = (path, options = {}) => {
144
- const { fetchOptions, ...rest } = options;
145
- return wrapRequest(() => client.delete({
146
- url: path,
147
- ...rest,
148
- ...fetchOptions ? { kyOptions: {
149
- ...client.getConfig().kyOptions,
150
- ...fetchOptions
151
- } } : {}
152
- }));
153
- };
154
- return {
155
- assetFolders: require_asset_folders.createAssetFoldersResource(deps),
156
- assets: require_assets.createAssetsResource(deps),
157
- componentFolders: require_component_folders.createComponentFoldersResource(deps),
158
- components: require_components.createComponentsResource(deps),
159
- datasourceEntries: require_datasource_entries.createDatasourceEntriesResource(deps),
160
- datasources: require_datasources.createDatasourcesResource(deps),
161
- experiments: require_experiments.createExperimentsResource(deps),
162
- delete: httpDelete,
163
- get: httpGet,
164
- patch: httpPatch,
165
- interceptors: client.interceptors,
166
- internalTags: require_internal_tags.createInternalTagsResource(deps),
167
- post: httpPost,
168
- presets: require_presets.createPresetsResource(deps),
169
- put: httpPut,
170
- sharedAssetFolders: require_shared_asset_folders.createSharedAssetFoldersResource(deps),
171
- sharedAssets: require_shared_assets.createSharedAssetsResource(deps),
172
- sharedInternalTags: require_shared_internal_tags.createSharedInternalTagsResource(deps),
173
- spaces: require_spaces.createSpacesResource(deps),
174
- stories: require_stories.createStoriesResource(deps),
175
- users: require_users.createUsersResource({
176
- client,
177
- wrapRequest
178
- })
179
- };
180
- };
181
-
182
- //#endregion
183
6
  exports.ClientError = require_error.ClientError;
184
- exports.createManagementApiClient = createManagementApiClient;
185
- exports.normalizeAssetUrl = require_normalize_asset_url.normalizeAssetUrl;
186
- //# sourceMappingURL=index.cjs.map
7
+ exports.createManagementApiClient = require_client.createManagementApiClient;
8
+ exports.normalizeAssetUrl = require_normalize_asset_url.normalizeAssetUrl;