@storyblok/management-api-client 0.5.0 → 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 -647
  84. package/dist/index.d.mts +12 -646
  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 +29 -34
  107. package/dist/resources/datasource-entries.cjs.map +1 -1
  108. package/dist/resources/datasource-entries.mjs +30 -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 +16 -14
  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
@@ -1 +1 @@
1
- {"version":3,"file":"users.mjs","names":["usersApi.me","usersApi.updateMe"],"sources":["../../src/resources/users.ts"],"sourcesContent":["import * as usersApi from '../generated/users/sdk.gen';\nimport type {\n MeResponses,\n UpdateMeData,\n UpdateMeResponses,\n} from '../generated/users/types.gen';\nimport type { ApiResponse, FetchOptions, MapiResourceDeps } from '../index';\n\nexport function createUsersResource(deps: Omit<MapiResourceDeps, 'spaceId'>) {\n const { client, wrapRequest } = deps;\n\n return {\n me<ThrowOnError extends boolean = false>(options: { signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {}): Promise<ApiResponse<MeResponses[200], ThrowOnError>> {\n const { signal, throwOnError, fetchOptions } = options;\n return wrapRequest<MeResponses[200], ThrowOnError>(() =>\n usersApi.me({ client, signal, ...(throwOnError === undefined ? {} : { throwOnError }), ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }), throwOnError);\n },\n updateMe<ThrowOnError extends boolean = false>(options: { body: UpdateMeData['body']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions }): Promise<ApiResponse<UpdateMeResponses[200], ThrowOnError>> {\n const { body, signal, throwOnError, fetchOptions } = options;\n return wrapRequest<UpdateMeResponses[200], ThrowOnError>(() =>\n usersApi.updateMe({ client, body, signal, ...(throwOnError === undefined ? {} : { throwOnError }), ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }), throwOnError);\n },\n };\n}\n"],"mappings":";;;AAQA,SAAgB,oBAAoB,MAAyC;CAC3E,MAAM,EAAE,QAAQ,gBAAgB;AAEhC,QAAO;EACL,GAAyC,UAA8F,EAAE,EAAwD;GAC/L,MAAM,EAAE,QAAQ,cAAc,iBAAiB;AAC/C,UAAO,kBACLA,GAAY;IAAE;IAAQ;IAAQ,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IAAG,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAAG,CAAC,EAAE,aAAa;;EAEzM,SAA+C,SAAqL;GAClO,MAAM,EAAE,MAAM,QAAQ,cAAc,iBAAiB;AACrD,UAAO,kBACLC,SAAkB;IAAE;IAAQ;IAAM;IAAQ,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IAAG,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAAG,CAAC,EAAE,aAAa;;EAEtN"}
1
+ {"version":3,"file":"users.mjs","names":["mapi.getCurrentUser","mapi.updateCurrentUser"],"sources":["../../src/resources/users.ts"],"sourcesContent":["import * as mapi from '../generated/mapi/sdk.gen';\nimport type {\n GetCurrentUserResponses,\n UpdateCurrentUserData,\n UpdateCurrentUserResponses,\n} from '../generated/mapi/types.gen';\nimport type { ApiResponse, FetchOptions, MapiResourceDeps } from '../client';\n\nexport function createUsersResource<DefaultThrowOnError extends boolean = false>(deps: Omit<MapiResourceDeps<DefaultThrowOnError>, 'spaceId'>) {\n const { client, wrapRequest } = deps;\n\n return {\n me<ThrowOnError extends boolean = DefaultThrowOnError>(options: { signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions } = {}): Promise<ApiResponse<GetCurrentUserResponses[200], ThrowOnError>> {\n const { signal, throwOnError, fetchOptions } = options;\n return wrapRequest<GetCurrentUserResponses[200], ThrowOnError>(() =>\n mapi.getCurrentUser({ client, signal, ...(throwOnError === undefined ? {} : { throwOnError }), ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }), throwOnError);\n },\n updateMe<ThrowOnError extends boolean = DefaultThrowOnError>(options: { body: UpdateCurrentUserData['body']; signal?: AbortSignal; throwOnError?: ThrowOnError; fetchOptions?: FetchOptions }): Promise<ApiResponse<UpdateCurrentUserResponses[200], ThrowOnError>> {\n const { body, signal, throwOnError, fetchOptions } = options;\n return wrapRequest<UpdateCurrentUserResponses[200], ThrowOnError>(() =>\n mapi.updateCurrentUser({ client, body, signal, ...(throwOnError === undefined ? {} : { throwOnError }), ...(fetchOptions ? { kyOptions: { ...client.getConfig().kyOptions, ...fetchOptions } } : {}) }), throwOnError);\n },\n };\n}\n"],"mappings":";;;AAQA,SAAgB,oBAAiE,MAA8D;CAC7I,MAAM,EAAE,QAAQ,gBAAgB;AAEhC,QAAO;EACL,GAAuD,UAA8F,EAAE,EAAoE;GACzN,MAAM,EAAE,QAAQ,cAAc,iBAAiB;AAC/C,UAAO,kBACLA,eAAoB;IAAE;IAAQ;IAAQ,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IAAG,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAAG,CAAC,EAAE,aAAa;;EAEjN,SAA6D,SAAuM;GAClQ,MAAM,EAAE,MAAM,QAAQ,cAAc,iBAAiB;AACrD,UAAO,kBACLC,kBAAuB;IAAE;IAAQ;IAAM;IAAQ,GAAI,iBAAiB,SAAY,EAAE,GAAG,EAAE,cAAc;IAAG,GAAI,eAAe,EAAE,WAAW;KAAE,GAAG,OAAO,WAAW,CAAC;KAAW,GAAG;KAAc,EAAE,GAAG,EAAE;IAAG,CAAC,EAAE,aAAa;;EAE3N"}
@@ -0,0 +1,54 @@
1
+ const require_pathSerializer_gen = require('../generated/mapi/core/pathSerializer.gen.cjs');
2
+
3
+ //#region src/utils/query-serializer.ts
4
+ /**
5
+ * Query serializer for the Management API client.
6
+ *
7
+ * Behaves identically to the generated default for primitives, primitive
8
+ * arrays, and dates, but additionally serializes **nested objects** (and arrays
9
+ * of objects) into bracket notation — e.g. `filter_query[component][in]=hero`.
10
+ *
11
+ * The generated default serializer throws on this nesting ("Deeply-nested
12
+ * arrays/objects aren't supported. Provide your own `querySerializer()`"), yet
13
+ * MAPI requires `filter_query` as a nested hash and rejects flat strings. This
14
+ * mirrors the bracket serialization used by `storyblok-js-client`.
15
+ */
16
+ function serialize(name, value, parts) {
17
+ if (value === void 0 || value === null) return;
18
+ if (value instanceof Date) {
19
+ parts.push(`${name}=${value.toISOString()}`);
20
+ return;
21
+ }
22
+ if (Array.isArray(value)) {
23
+ if (value.some((item) => item !== null && typeof item === "object")) {
24
+ for (const item of value) serialize(`${name}[]`, item, parts);
25
+ return;
26
+ }
27
+ const serialized = require_pathSerializer_gen.serializeArrayParam({
28
+ explode: true,
29
+ name,
30
+ style: "form",
31
+ value
32
+ });
33
+ if (serialized) parts.push(serialized);
34
+ return;
35
+ }
36
+ if (typeof value === "object") {
37
+ for (const [key, child] of Object.entries(value)) serialize(`${name}[${key}]`, child, parts);
38
+ return;
39
+ }
40
+ const serialized = require_pathSerializer_gen.serializePrimitiveParam({
41
+ name,
42
+ value
43
+ });
44
+ if (serialized) parts.push(serialized);
45
+ }
46
+ const querySerializer = (query) => {
47
+ const parts = [];
48
+ for (const [name, value] of Object.entries(query)) serialize(name, value, parts);
49
+ return parts.join("&");
50
+ };
51
+
52
+ //#endregion
53
+ exports.querySerializer = querySerializer;
54
+ //# sourceMappingURL=query-serializer.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-serializer.cjs","names":["serializeArrayParam","serializePrimitiveParam"],"sources":["../../src/utils/query-serializer.ts"],"sourcesContent":["import type { QuerySerializer } from '../generated/mapi/core/bodySerializer.gen';\nimport { serializeArrayParam, serializePrimitiveParam } from '../generated/mapi/core/pathSerializer.gen';\n\n/**\n * Query serializer for the Management API client.\n *\n * Behaves identically to the generated default for primitives, primitive\n * arrays, and dates, but additionally serializes **nested objects** (and arrays\n * of objects) into bracket notation — e.g. `filter_query[component][in]=hero`.\n *\n * The generated default serializer throws on this nesting (\"Deeply-nested\n * arrays/objects aren't supported. Provide your own `querySerializer()`\"), yet\n * MAPI requires `filter_query` as a nested hash and rejects flat strings. This\n * mirrors the bracket serialization used by `storyblok-js-client`.\n */\nfunction serialize(name: string, value: unknown, parts: string[]): void {\n if (value === undefined || value === null) {\n return;\n }\n\n if (value instanceof Date) {\n parts.push(`${name}=${value.toISOString()}`);\n return;\n }\n\n if (Array.isArray(value)) {\n // Arrays containing objects (e.g. `filter_query.__or`) need per-item\n // bracket recursion; the default serializer cannot express them.\n if (value.some(item => item !== null && typeof item === 'object')) {\n for (const item of value) {\n serialize(`${name}[]`, item, parts);\n }\n return;\n }\n // Primitive arrays keep the generated default form (`name=a&name=b`).\n const serialized = serializeArrayParam({ explode: true, name, style: 'form', value });\n if (serialized) {\n parts.push(serialized);\n }\n return;\n }\n\n if (typeof value === 'object') {\n for (const [key, child] of Object.entries(value)) {\n serialize(`${name}[${key}]`, child, parts);\n }\n return;\n }\n\n const serialized = serializePrimitiveParam({ name, value: value as string });\n if (serialized) {\n parts.push(serialized);\n }\n}\n\nexport const querySerializer: QuerySerializer = (query) => {\n const parts: string[] = [];\n for (const [name, value] of Object.entries(query)) {\n serialize(name, value, parts);\n }\n return parts.join('&');\n};\n"],"mappings":";;;;;;;;;;;;;;;AAeA,SAAS,UAAU,MAAc,OAAgB,OAAuB;AACtE,KAAI,UAAU,UAAa,UAAU,KACnC;AAGF,KAAI,iBAAiB,MAAM;AACzB,QAAM,KAAK,GAAG,KAAK,GAAG,MAAM,aAAa,GAAG;AAC5C;;AAGF,KAAI,MAAM,QAAQ,MAAM,EAAE;AAGxB,MAAI,MAAM,MAAK,SAAQ,SAAS,QAAQ,OAAO,SAAS,SAAS,EAAE;AACjE,QAAK,MAAM,QAAQ,MACjB,WAAU,GAAG,KAAK,KAAK,MAAM,MAAM;AAErC;;EAGF,MAAM,aAAaA,+CAAoB;GAAE,SAAS;GAAM;GAAM,OAAO;GAAQ;GAAO,CAAC;AACrF,MAAI,WACF,OAAM,KAAK,WAAW;AAExB;;AAGF,KAAI,OAAO,UAAU,UAAU;AAC7B,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,CAC9C,WAAU,GAAG,KAAK,GAAG,IAAI,IAAI,OAAO,MAAM;AAE5C;;CAGF,MAAM,aAAaC,mDAAwB;EAAE;EAAa;EAAiB,CAAC;AAC5E,KAAI,WACF,OAAM,KAAK,WAAW;;AAI1B,MAAa,mBAAoC,UAAU;CACzD,MAAM,QAAkB,EAAE;AAC1B,MAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,MAAM,CAC/C,WAAU,MAAM,OAAO,MAAM;AAE/B,QAAO,MAAM,KAAK,IAAI"}
@@ -0,0 +1,54 @@
1
+ import { serializeArrayParam, serializePrimitiveParam } from "../generated/mapi/core/pathSerializer.gen.mjs";
2
+
3
+ //#region src/utils/query-serializer.ts
4
+ /**
5
+ * Query serializer for the Management API client.
6
+ *
7
+ * Behaves identically to the generated default for primitives, primitive
8
+ * arrays, and dates, but additionally serializes **nested objects** (and arrays
9
+ * of objects) into bracket notation — e.g. `filter_query[component][in]=hero`.
10
+ *
11
+ * The generated default serializer throws on this nesting ("Deeply-nested
12
+ * arrays/objects aren't supported. Provide your own `querySerializer()`"), yet
13
+ * MAPI requires `filter_query` as a nested hash and rejects flat strings. This
14
+ * mirrors the bracket serialization used by `storyblok-js-client`.
15
+ */
16
+ function serialize(name, value, parts) {
17
+ if (value === void 0 || value === null) return;
18
+ if (value instanceof Date) {
19
+ parts.push(`${name}=${value.toISOString()}`);
20
+ return;
21
+ }
22
+ if (Array.isArray(value)) {
23
+ if (value.some((item) => item !== null && typeof item === "object")) {
24
+ for (const item of value) serialize(`${name}[]`, item, parts);
25
+ return;
26
+ }
27
+ const serialized = serializeArrayParam({
28
+ explode: true,
29
+ name,
30
+ style: "form",
31
+ value
32
+ });
33
+ if (serialized) parts.push(serialized);
34
+ return;
35
+ }
36
+ if (typeof value === "object") {
37
+ for (const [key, child] of Object.entries(value)) serialize(`${name}[${key}]`, child, parts);
38
+ return;
39
+ }
40
+ const serialized = serializePrimitiveParam({
41
+ name,
42
+ value
43
+ });
44
+ if (serialized) parts.push(serialized);
45
+ }
46
+ const querySerializer = (query) => {
47
+ const parts = [];
48
+ for (const [name, value] of Object.entries(query)) serialize(name, value, parts);
49
+ return parts.join("&");
50
+ };
51
+
52
+ //#endregion
53
+ export { querySerializer };
54
+ //# sourceMappingURL=query-serializer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-serializer.mjs","names":[],"sources":["../../src/utils/query-serializer.ts"],"sourcesContent":["import type { QuerySerializer } from '../generated/mapi/core/bodySerializer.gen';\nimport { serializeArrayParam, serializePrimitiveParam } from '../generated/mapi/core/pathSerializer.gen';\n\n/**\n * Query serializer for the Management API client.\n *\n * Behaves identically to the generated default for primitives, primitive\n * arrays, and dates, but additionally serializes **nested objects** (and arrays\n * of objects) into bracket notation — e.g. `filter_query[component][in]=hero`.\n *\n * The generated default serializer throws on this nesting (\"Deeply-nested\n * arrays/objects aren't supported. Provide your own `querySerializer()`\"), yet\n * MAPI requires `filter_query` as a nested hash and rejects flat strings. This\n * mirrors the bracket serialization used by `storyblok-js-client`.\n */\nfunction serialize(name: string, value: unknown, parts: string[]): void {\n if (value === undefined || value === null) {\n return;\n }\n\n if (value instanceof Date) {\n parts.push(`${name}=${value.toISOString()}`);\n return;\n }\n\n if (Array.isArray(value)) {\n // Arrays containing objects (e.g. `filter_query.__or`) need per-item\n // bracket recursion; the default serializer cannot express them.\n if (value.some(item => item !== null && typeof item === 'object')) {\n for (const item of value) {\n serialize(`${name}[]`, item, parts);\n }\n return;\n }\n // Primitive arrays keep the generated default form (`name=a&name=b`).\n const serialized = serializeArrayParam({ explode: true, name, style: 'form', value });\n if (serialized) {\n parts.push(serialized);\n }\n return;\n }\n\n if (typeof value === 'object') {\n for (const [key, child] of Object.entries(value)) {\n serialize(`${name}[${key}]`, child, parts);\n }\n return;\n }\n\n const serialized = serializePrimitiveParam({ name, value: value as string });\n if (serialized) {\n parts.push(serialized);\n }\n}\n\nexport const querySerializer: QuerySerializer = (query) => {\n const parts: string[] = [];\n for (const [name, value] of Object.entries(query)) {\n serialize(name, value, parts);\n }\n return parts.join('&');\n};\n"],"mappings":";;;;;;;;;;;;;;;AAeA,SAAS,UAAU,MAAc,OAAgB,OAAuB;AACtE,KAAI,UAAU,UAAa,UAAU,KACnC;AAGF,KAAI,iBAAiB,MAAM;AACzB,QAAM,KAAK,GAAG,KAAK,GAAG,MAAM,aAAa,GAAG;AAC5C;;AAGF,KAAI,MAAM,QAAQ,MAAM,EAAE;AAGxB,MAAI,MAAM,MAAK,SAAQ,SAAS,QAAQ,OAAO,SAAS,SAAS,EAAE;AACjE,QAAK,MAAM,QAAQ,MACjB,WAAU,GAAG,KAAK,KAAK,MAAM,MAAM;AAErC;;EAGF,MAAM,aAAa,oBAAoB;GAAE,SAAS;GAAM;GAAM,OAAO;GAAQ;GAAO,CAAC;AACrF,MAAI,WACF,OAAM,KAAK,WAAW;AAExB;;AAGF,KAAI,OAAO,UAAU,UAAU;AAC7B,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,MAAM,CAC9C,WAAU,GAAG,KAAK,GAAG,IAAI,IAAI,OAAO,MAAM;AAE5C;;CAGF,MAAM,aAAa,wBAAwB;EAAE;EAAa;EAAiB,CAAC;AAC5E,KAAI,WACF,OAAM,KAAK,WAAW;;AAI1B,MAAa,mBAAoC,UAAU;CACzD,MAAM,QAAkB,EAAE;AAC1B,MAAK,MAAM,CAAC,MAAM,UAAU,OAAO,QAAQ,MAAM,CAC/C,WAAU,MAAM,OAAO,MAAM;AAE/B,QAAO,MAAM,KAAK,IAAI"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@storyblok/management-api-client",
3
3
  "type": "module",
4
- "version": "0.5.0",
4
+ "version": "0.6.0",
5
5
  "private": false,
6
6
  "description": "Storyblok Management API Client",
7
7
  "author": "",
@@ -9,7 +9,7 @@
9
9
  "homepage": "https://github.com/storyblok/monoblok/tree/main/packages/mapi-client#readme",
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "https://github.com/storyblok/monoblok.git",
12
+ "url": "git+https://github.com/storyblok/monoblok.git",
13
13
  "directory": "packages/mapi-client"
14
14
  },
15
15
  "bugs": {
@@ -35,32 +35,34 @@
35
35
  "@storyblok/region-helper": "1.5.0"
36
36
  },
37
37
  "devDependencies": {
38
- "@hey-api/openapi-ts": "^0.92.3",
39
- "@msw/source": "^0.6.1",
40
38
  "@types/node": "^24.1.0",
41
39
  "eslint": "^9.39.2",
42
- "glob": "^13.0.6",
43
40
  "msw": "^2.12.9",
44
41
  "pathe": "^2.0.3",
45
42
  "tsdown": "^0.20.3",
46
43
  "tsx": "^4.20.3",
47
- "vitest": "^3.1.3",
44
+ "vitest": "^4.1.3",
48
45
  "@storyblok/eslint-config": "0.6.0",
49
- "@storyblok/openapi": "2.2.0"
46
+ "@storyblok/openapi-codegen": "0.0.1"
50
47
  },
51
48
  "nx": {
52
49
  "targets": {
53
50
  "generate": {
54
- "dependsOn": [
55
- "^build"
51
+ "inputs": [
52
+ "{projectRoot}/scripts/generate.ts",
53
+ "{projectRoot}/package.json",
54
+ "openapiCodegen"
56
55
  ],
57
56
  "outputs": [
58
57
  "{projectRoot}/src/generated/**"
58
+ ],
59
+ "cache": true,
60
+ "dependsOn": [
61
+ "@storyblok/openapi-codegen:build"
59
62
  ]
60
63
  },
61
64
  "build": {
62
65
  "dependsOn": [
63
- "generate",
64
66
  "^build"
65
67
  ],
66
68
  "outputs": [
@@ -72,10 +74,10 @@
72
74
  "scripts": {
73
75
  "generate": "tsx scripts/generate.ts",
74
76
  "build": "tsdown",
75
- "test": "vitest",
76
- "test:ci": "vitest run",
77
+ "test": "vitest run",
78
+ "test:types": "tsc --noEmit --skipLibCheck",
79
+ "coverage": "vitest run --coverage",
77
80
  "lint": "eslint .",
78
- "lint:fix": "eslint . --fix",
79
- "typecheck": "tsc --noEmit"
81
+ "lint:fix": "eslint . --fix"
80
82
  }
81
83
  }
@@ -0,0 +1,24 @@
1
+ # @storyblok/mapi-integration-tests
2
+
3
+ Integration tests for [`@storyblok/management-api-client`](../../) paired with [`@storyblok/schema`](../../../schema).
4
+
5
+ This playground exists so the management-api-client package itself stays free of a runtime dependency on `@storyblok/schema`, while still letting us verify that the two packages line up.
6
+
7
+ ## Type tests
8
+
9
+ `test/types/*.test-d.ts` assert that `defineBlock` / `defineX*` payloads from `@storyblok/schema` are assignable to the corresponding MAPI request bodies, and that `.withTypes()` narrows responses correctly. They run in CI:
10
+
11
+ ```bash
12
+ pnpm --filter @storyblok/mapi-integration-tests test
13
+ pnpm --filter @storyblok/mapi-integration-tests test:types
14
+ ```
15
+
16
+ ## End-to-end tests
17
+
18
+ `test/specs/*.spec.e2e.ts` exercise a real round-trip against the Storyblok MAPI using a personal access token. Run manually only:
19
+
20
+ ```bash
21
+ pnpm --filter @storyblok/mapi-integration-tests test:e2e
22
+ ```
23
+
24
+ Requires `.env.qa-engineer-manual` at the repo root with `STORYBLOK_TOKEN` and `STORYBLOK_SPACE_ID`.
@@ -0,0 +1,5 @@
1
+ import { storyblokLintConfig } from '@storyblok/eslint-config';
2
+
3
+ export default storyblokLintConfig({}, {
4
+ ignores: ['**/*.md'],
5
+ });
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -x "$basedir/node" ]; then
13
+ exec "$basedir/node" "$basedir/../eslint/bin/eslint.js" "$@"
14
+ else
15
+ exec node "$basedir/../eslint/bin/eslint.js" "$@"
16
+ fi
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -x "$basedir/node" ]; then
13
+ exec "$basedir/node" "$basedir/../typescript/bin/tsc" "$@"
14
+ else
15
+ exec node "$basedir/../typescript/bin/tsc" "$@"
16
+ fi
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -x "$basedir/node" ]; then
13
+ exec "$basedir/node" "$basedir/../typescript/bin/tsserver" "$@"
14
+ else
15
+ exec node "$basedir/../typescript/bin/tsserver" "$@"
16
+ fi
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+ basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
3
+
4
+ case `uname` in
5
+ *CYGWIN*|*MINGW*|*MSYS*)
6
+ if command -v cygpath > /dev/null 2>&1; then
7
+ basedir=`cygpath -w "$basedir"`
8
+ fi
9
+ ;;
10
+ esac
11
+
12
+ if [ -x "$basedir/node" ]; then
13
+ exec "$basedir/node" "$basedir/../vitest/vitest.mjs" "$@"
14
+ else
15
+ exec node "$basedir/../vitest/vitest.mjs" "$@"
16
+ fi
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "@storyblok/mapi-integration-tests",
3
+ "type": "module",
4
+ "version": "0.0.0",
5
+ "private": true,
6
+ "description": "Integration tests for @storyblok/management-api-client paired with @storyblok/schema",
7
+ "scripts": {
8
+ "test": "vitest run",
9
+ "test:types": "tsc --noEmit --skipLibCheck",
10
+ "test:e2e": "vitest run -c vitest.config.e2e.ts",
11
+ "lint": "eslint .",
12
+ "lint:fix": "eslint . --fix"
13
+ },
14
+ "devDependencies": {
15
+ "@storyblok/eslint-config": "workspace:*",
16
+ "@storyblok/management-api-client": "workspace:*",
17
+ "@storyblok/schema": "workspace:*",
18
+ "@types/node": "^24.1.0",
19
+ "dotenv": "^17.3.1",
20
+ "eslint": "^9.39.2",
21
+ "typescript": "5.8.3",
22
+ "vitest": "^4.1.3"
23
+ }
24
+ }
@@ -0,0 +1,11 @@
1
+ import { resolve } from 'node:path';
2
+ import { config } from 'dotenv';
3
+
4
+ config({ path: resolve(import.meta.dirname, '../../../../../.env.qa-engineer-manual') });
5
+
6
+ if (!process.env.STORYBLOK_TOKEN || !process.env.STORYBLOK_SPACE_ID) {
7
+ throw new Error(
8
+ 'E2E tests require STORYBLOK_TOKEN and STORYBLOK_SPACE_ID.\n'
9
+ + 'Create a .env.qa-engineer-manual file at the repo root with these variables.',
10
+ );
11
+ }