@coscine/api-client 3.25.0 → 3.26.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 (210) hide show
  1. package/README.md +130 -2
  2. package/dist/index.js +8822 -5126
  3. package/dist/types/Coscine.Api/@coscine/api/admin-api.d.ts +52 -74
  4. package/dist/types/Coscine.Api/@coscine/api/application-profile-api.d.ts +18 -34
  5. package/dist/types/Coscine.Api/@coscine/api/blob-api.d.ts +24 -19
  6. package/dist/types/Coscine.Api/@coscine/api/data-hamster-report-api.d.ts +11 -24
  7. package/dist/types/Coscine.Api/@coscine/api/discipline-api.d.ts +24 -30
  8. package/dist/types/Coscine.Api/@coscine/api/graph-api.d.ts +242 -0
  9. package/dist/types/Coscine.Api/@coscine/api/graph-metadata-api.d.ts +257 -0
  10. package/dist/types/Coscine.Api/@coscine/api/graph-metadata-content-api.d.ts +182 -0
  11. package/dist/types/Coscine.Api/@coscine/api/handle-api.d.ts +7 -19
  12. package/dist/types/Coscine.Api/@coscine/api/language-api.d.ts +16 -28
  13. package/dist/types/Coscine.Api/@coscine/api/license-api.d.ts +16 -28
  14. package/dist/types/Coscine.Api/@coscine/api/maintenance-api.d.ts +6 -17
  15. package/dist/types/Coscine.Api/@coscine/api/notification-api.d.ts +16 -28
  16. package/dist/types/Coscine.Api/@coscine/api/organization-api.d.ts +16 -29
  17. package/dist/types/Coscine.Api/@coscine/api/pid-api.d.ts +17 -30
  18. package/dist/types/Coscine.Api/@coscine/api/project-api.d.ts +19 -33
  19. package/dist/types/Coscine.Api/@coscine/api/project-invitation-api.d.ts +18 -31
  20. package/dist/types/Coscine.Api/@coscine/api/project-member-api.d.ts +60 -33
  21. package/dist/types/Coscine.Api/@coscine/api/project-publication-request-api.d.ts +7 -19
  22. package/dist/types/Coscine.Api/@coscine/api/project-quota-api.d.ts +17 -30
  23. package/dist/types/Coscine.Api/@coscine/api/project-resource-api.d.ts +19 -33
  24. package/dist/types/Coscine.Api/@coscine/api/project-resource-quota-api.d.ts +6 -17
  25. package/dist/types/Coscine.Api/@coscine/api/project-resource-type-api.d.ts +6 -17
  26. package/dist/types/Coscine.Api/@coscine/api/project-sub-projects-api.d.ts +15 -26
  27. package/dist/types/Coscine.Api/@coscine/api/provenance-api.d.ts +7 -19
  28. package/dist/types/Coscine.Api/@coscine/api/publication-advisory-service-api.d.ts +15 -27
  29. package/dist/types/Coscine.Api/@coscine/api/report-api.d.ts +11 -22
  30. package/dist/types/Coscine.Api/@coscine/api/resource-api.d.ts +6 -17
  31. package/dist/types/Coscine.Api/@coscine/api/resource-type-api.d.ts +7 -19
  32. package/dist/types/Coscine.Api/@coscine/api/resource-type-git-lab-api.d.ts +8 -21
  33. package/dist/types/Coscine.Api/@coscine/api/role-api.d.ts +16 -28
  34. package/dist/types/Coscine.Api/@coscine/api/search-api.d.ts +15 -27
  35. package/dist/types/Coscine.Api/@coscine/api/self-api-token-api.d.ts +18 -31
  36. package/dist/types/Coscine.Api/@coscine/api/self-api.d.ts +14 -31
  37. package/dist/types/Coscine.Api/@coscine/api/self-session-api.d.ts +8 -19
  38. package/dist/types/Coscine.Api/@coscine/api/storage-api.d.ts +248 -0
  39. package/dist/types/Coscine.Api/@coscine/api/storage-content-api.d.ts +232 -0
  40. package/dist/types/Coscine.Api/@coscine/api/system-status-api.d.ts +28 -41
  41. package/dist/types/Coscine.Api/@coscine/api/title-api.d.ts +16 -28
  42. package/dist/types/Coscine.Api/@coscine/api/tos-api.d.ts +6 -17
  43. package/dist/types/Coscine.Api/@coscine/api/tree-api.d.ts +63 -50
  44. package/dist/types/Coscine.Api/@coscine/api/user-api.d.ts +6 -17
  45. package/dist/types/Coscine.Api/@coscine/api/user-notification-opt-out-api.d.ts +18 -31
  46. package/dist/types/Coscine.Api/@coscine/api/visibility-api.d.ts +16 -28
  47. package/dist/types/Coscine.Api/@coscine/api/vocabulary-api.d.ts +24 -38
  48. package/dist/types/Coscine.Api/@coscine/model/activity-log-dto-paged-response.d.ts +2 -13
  49. package/dist/types/Coscine.Api/@coscine/model/api-token-dto-paged-response.d.ts +2 -13
  50. package/dist/types/Coscine.Api/@coscine/model/api-token-dto-response.d.ts +1 -12
  51. package/dist/types/Coscine.Api/@coscine/model/api-token-dto.d.ts +1 -12
  52. package/dist/types/Coscine.Api/@coscine/model/application-profile-dto-paged-response.d.ts +2 -13
  53. package/dist/types/Coscine.Api/@coscine/model/application-profile-dto-response.d.ts +1 -12
  54. package/dist/types/Coscine.Api/@coscine/model/application-profile-dto.d.ts +1 -12
  55. package/dist/types/Coscine.Api/@coscine/model/application-profile-for-creation-dto-response.d.ts +1 -12
  56. package/dist/types/Coscine.Api/@coscine/model/application-profile-for-creation-dto.d.ts +1 -12
  57. package/dist/types/Coscine.Api/@coscine/model/create-datasource-dto-response.d.ts +1 -12
  58. package/dist/types/Coscine.Api/@coscine/model/data-hamster-kpi-dto-ienumerable-response.d.ts +1 -12
  59. package/dist/types/Coscine.Api/@coscine/model/data-hamster-kpi-dto-response.d.ts +1 -12
  60. package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-options-dto.d.ts +1 -12
  61. package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-resource-type-options-for-manipulation-dto.d.ts +3 -14
  62. package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-worm-options-dto.d.ts +1 -12
  63. package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-s3-worm-resource-type-options-for-manipulation-dto.d.ts +3 -14
  64. package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-web-options-dto.d.ts +1 -12
  65. package/dist/types/Coscine.Api/@coscine/model/data-storage-nrw-web-resource-type-options-for-manipulation-dto.d.ts +3 -14
  66. package/dist/types/Coscine.Api/@coscine/model/deployed-graph-dto-paged-response.d.ts +2 -13
  67. package/dist/types/Coscine.Api/@coscine/model/discipline-dto-paged-response.d.ts +2 -13
  68. package/dist/types/Coscine.Api/@coscine/model/discipline-dto-response.d.ts +1 -12
  69. package/dist/types/Coscine.Api/@coscine/model/extracted-metadata-tree-for-creation-dto.d.ts +2 -13
  70. package/dist/types/Coscine.Api/@coscine/model/extracted-metadata-tree-for-update-dto.d.ts +2 -13
  71. package/dist/types/Coscine.Api/@coscine/model/file-action-dto.d.ts +1 -12
  72. package/dist/types/Coscine.Api/@coscine/model/file-actions-dto.d.ts +1 -12
  73. package/dist/types/Coscine.Api/@coscine/model/file-tree-dto-paged-response.d.ts +2 -13
  74. package/dist/types/Coscine.Api/@coscine/model/file-tree-dto.d.ts +3 -14
  75. package/dist/types/Coscine.Api/@coscine/model/fixed-value-for-resource-manipulation-dto.d.ts +1 -1
  76. package/dist/types/Coscine.Api/@coscine/model/gitlab-branch-dto-ienumerable-response.d.ts +1 -12
  77. package/dist/types/Coscine.Api/@coscine/model/gitlab-project-dto-ienumerable-response.d.ts +1 -12
  78. package/dist/types/Coscine.Api/@coscine/model/gitlab-project-dto-response.d.ts +1 -12
  79. package/dist/types/Coscine.Api/@coscine/model/handle-dto-response.d.ts +1 -12
  80. package/dist/types/Coscine.Api/@coscine/model/handle-dto.d.ts +2 -13
  81. package/dist/types/Coscine.Api/@coscine/model/handle-for-update-dto.d.ts +1 -12
  82. package/dist/types/Coscine.Api/@coscine/model/index.d.ts +8 -0
  83. package/dist/types/Coscine.Api/@coscine/model/language-dto-ienumerable-response.d.ts +1 -12
  84. package/dist/types/Coscine.Api/@coscine/model/language-dto-response.d.ts +1 -12
  85. package/dist/types/Coscine.Api/@coscine/model/license-dto-paged-response.d.ts +2 -13
  86. package/dist/types/Coscine.Api/@coscine/model/license-dto-response.d.ts +1 -12
  87. package/dist/types/Coscine.Api/@coscine/model/maintenance-dto-paged-response.d.ts +2 -13
  88. package/dist/types/Coscine.Api/@coscine/model/message-dto-ienumerable-response.d.ts +7 -0
  89. package/dist/types/Coscine.Api/@coscine/model/message-dto-paged-response.d.ts +2 -13
  90. package/dist/types/Coscine.Api/@coscine/model/message-dto.d.ts +1 -12
  91. package/dist/types/Coscine.Api/@coscine/model/metadata-tree-dto-paged-response.d.ts +2 -13
  92. package/dist/types/Coscine.Api/@coscine/model/metadata-tree-dto-response.d.ts +1 -12
  93. package/dist/types/Coscine.Api/@coscine/model/metadata-tree-dto.d.ts +5 -16
  94. package/dist/types/Coscine.Api/@coscine/model/metadata-tree-extracted-dto.d.ts +3 -14
  95. package/dist/types/Coscine.Api/@coscine/model/metadata-tree-for-creation-dto.d.ts +1 -12
  96. package/dist/types/Coscine.Api/@coscine/model/metadata-tree-for-update-dto.d.ts +1 -12
  97. package/dist/types/Coscine.Api/@coscine/model/metadata-update-admin-parameters.d.ts +1 -12
  98. package/dist/types/Coscine.Api/@coscine/model/metadata-version-node-dto-paged-response.d.ts +9 -0
  99. package/dist/types/Coscine.Api/@coscine/model/metadata-version-node-dto-response.d.ts +7 -0
  100. package/dist/types/Coscine.Api/@coscine/model/metadata-version-node-dto.d.ts +21 -0
  101. package/dist/types/Coscine.Api/@coscine/model/notification-dto-paged-response.d.ts +2 -13
  102. package/dist/types/Coscine.Api/@coscine/model/notification-dto-response.d.ts +1 -12
  103. package/dist/types/Coscine.Api/@coscine/model/organization-dto-paged-response.d.ts +2 -13
  104. package/dist/types/Coscine.Api/@coscine/model/organization-dto-response.d.ts +1 -12
  105. package/dist/types/Coscine.Api/@coscine/model/organization-dto.d.ts +1 -12
  106. package/dist/types/Coscine.Api/@coscine/model/pid-dto-paged-response.d.ts +2 -13
  107. package/dist/types/Coscine.Api/@coscine/model/pid-dto-response.d.ts +1 -12
  108. package/dist/types/Coscine.Api/@coscine/model/pid-dto.d.ts +1 -12
  109. package/dist/types/Coscine.Api/@coscine/model/project-admin-dto-paged-response.d.ts +2 -13
  110. package/dist/types/Coscine.Api/@coscine/model/project-admin-dto.d.ts +10 -21
  111. package/dist/types/Coscine.Api/@coscine/model/project-dto-paged-response.d.ts +2 -13
  112. package/dist/types/Coscine.Api/@coscine/model/project-dto-response.d.ts +1 -12
  113. package/dist/types/Coscine.Api/@coscine/model/project-dto.d.ts +5 -16
  114. package/dist/types/Coscine.Api/@coscine/model/project-for-creation-dto.d.ts +3 -14
  115. package/dist/types/Coscine.Api/@coscine/model/project-for-update-dto.d.ts +3 -14
  116. package/dist/types/Coscine.Api/@coscine/model/project-invitation-dto-paged-response.d.ts +2 -13
  117. package/dist/types/Coscine.Api/@coscine/model/project-invitation-dto-response.d.ts +1 -12
  118. package/dist/types/Coscine.Api/@coscine/model/project-invitation-dto.d.ts +3 -14
  119. package/dist/types/Coscine.Api/@coscine/model/project-organization-dto.d.ts +1 -12
  120. package/dist/types/Coscine.Api/@coscine/model/project-publication-request-dto-response.d.ts +1 -12
  121. package/dist/types/Coscine.Api/@coscine/model/project-publication-request-dto.d.ts +3 -14
  122. package/dist/types/Coscine.Api/@coscine/model/project-quota-dto-paged-response.d.ts +2 -13
  123. package/dist/types/Coscine.Api/@coscine/model/project-quota-dto-response.d.ts +1 -12
  124. package/dist/types/Coscine.Api/@coscine/model/project-quota-dto.d.ts +3 -14
  125. package/dist/types/Coscine.Api/@coscine/model/project-quota-for-update-dto.d.ts +1 -12
  126. package/dist/types/Coscine.Api/@coscine/model/project-role-dto-paged-response.d.ts +2 -13
  127. package/dist/types/Coscine.Api/@coscine/model/project-role-dto-response.d.ts +1 -12
  128. package/dist/types/Coscine.Api/@coscine/model/project-role-dto.d.ts +3 -14
  129. package/dist/types/Coscine.Api/@coscine/model/provenance-dto-response.d.ts +1 -12
  130. package/dist/types/Coscine.Api/@coscine/model/provenance-dto.d.ts +2 -13
  131. package/dist/types/Coscine.Api/@coscine/model/provenance-for-update-dto.d.ts +2 -13
  132. package/dist/types/Coscine.Api/@coscine/model/provenance-parameters-dto.d.ts +2 -13
  133. package/dist/types/Coscine.Api/@coscine/model/public-user-dto-ienumerable-response.d.ts +1 -12
  134. package/dist/types/Coscine.Api/@coscine/model/public-user-dto.d.ts +1 -12
  135. package/dist/types/Coscine.Api/@coscine/model/publication-advisory-service-dto-paged-response.d.ts +2 -13
  136. package/dist/types/Coscine.Api/@coscine/model/quota-dto.d.ts +1 -12
  137. package/dist/types/Coscine.Api/@coscine/model/quota-for-manipulation-dto.d.ts +1 -12
  138. package/dist/types/Coscine.Api/@coscine/model/rdf-definition-dto-response.d.ts +1 -12
  139. package/dist/types/Coscine.Api/@coscine/model/rdf-definition-for-manipulation-dto.d.ts +1 -12
  140. package/dist/types/Coscine.Api/@coscine/model/rdf-patch-document-dto.d.ts +1 -12
  141. package/dist/types/Coscine.Api/@coscine/model/rdf-patch-operation-dto.d.ts +2 -13
  142. package/dist/types/Coscine.Api/@coscine/model/rds-options-dto.d.ts +1 -12
  143. package/dist/types/Coscine.Api/@coscine/model/rds-resource-type-options-for-manipulation-dto.d.ts +1 -12
  144. package/dist/types/Coscine.Api/@coscine/model/rds-s3-options-dto.d.ts +1 -12
  145. package/dist/types/Coscine.Api/@coscine/model/rds-s3-resource-type-options-for-manipulation-dto.d.ts +1 -12
  146. package/dist/types/Coscine.Api/@coscine/model/rds-s3-worm-options-dto.d.ts +1 -12
  147. package/dist/types/Coscine.Api/@coscine/model/rds-s3-worm-resource-type-options-for-manipulation-dto.d.ts +1 -12
  148. package/dist/types/Coscine.Api/@coscine/model/resource-admin-dto-paged-response.d.ts +2 -13
  149. package/dist/types/Coscine.Api/@coscine/model/resource-admin-dto.d.ts +10 -21
  150. package/dist/types/Coscine.Api/@coscine/model/resource-content-page-dto.d.ts +2 -13
  151. package/dist/types/Coscine.Api/@coscine/model/resource-content-page-entries-view-dto.d.ts +1 -12
  152. package/dist/types/Coscine.Api/@coscine/model/resource-dto-paged-response.d.ts +2 -13
  153. package/dist/types/Coscine.Api/@coscine/model/resource-dto-response.d.ts +1 -12
  154. package/dist/types/Coscine.Api/@coscine/model/resource-dto.d.ts +8 -19
  155. package/dist/types/Coscine.Api/@coscine/model/resource-for-creation-dto.d.ts +6 -17
  156. package/dist/types/Coscine.Api/@coscine/model/resource-for-update-dto.d.ts +5 -16
  157. package/dist/types/Coscine.Api/@coscine/model/resource-quota-dto-response.d.ts +1 -12
  158. package/dist/types/Coscine.Api/@coscine/model/resource-quota-dto.d.ts +2 -13
  159. package/dist/types/Coscine.Api/@coscine/model/resource-type-dto.d.ts +1 -12
  160. package/dist/types/Coscine.Api/@coscine/model/resource-type-information-dto-ienumerable-response.d.ts +1 -12
  161. package/dist/types/Coscine.Api/@coscine/model/resource-type-information-dto-response.d.ts +1 -12
  162. package/dist/types/Coscine.Api/@coscine/model/resource-type-information-dto.d.ts +3 -14
  163. package/dist/types/Coscine.Api/@coscine/model/resource-type-options-dto.d.ts +8 -19
  164. package/dist/types/Coscine.Api/@coscine/model/resource-type-options-for-creation-dto.d.ts +7 -18
  165. package/dist/types/Coscine.Api/@coscine/model/resource-type-options-for-update-dto.d.ts +7 -18
  166. package/dist/types/Coscine.Api/@coscine/model/role-dto-paged-response.d.ts +2 -13
  167. package/dist/types/Coscine.Api/@coscine/model/role-dto-response.d.ts +1 -12
  168. package/dist/types/Coscine.Api/@coscine/model/search-result-dto-paged-search-response.d.ts +3 -14
  169. package/dist/types/Coscine.Api/@coscine/model/search-result-dto.d.ts +1 -12
  170. package/dist/types/Coscine.Api/@coscine/model/storage-data-hamster-kpi-dto-response.d.ts +1 -12
  171. package/dist/types/Coscine.Api/@coscine/model/storage-data-hamster-kpi-dto.d.ts +1 -12
  172. package/dist/types/Coscine.Api/@coscine/model/storage-node-dto-paged-response.d.ts +9 -0
  173. package/dist/types/Coscine.Api/@coscine/model/storage-node-dto-response.d.ts +7 -0
  174. package/dist/types/Coscine.Api/@coscine/model/storage-node-dto.d.ts +17 -0
  175. package/dist/types/Coscine.Api/@coscine/model/storage-node-links.d.ts +30 -0
  176. package/dist/types/Coscine.Api/@coscine/model/terms-of-service-dto-response.d.ts +1 -12
  177. package/dist/types/Coscine.Api/@coscine/model/title-dto-ienumerable-response.d.ts +1 -12
  178. package/dist/types/Coscine.Api/@coscine/model/title-dto-response.d.ts +1 -12
  179. package/dist/types/Coscine.Api/@coscine/model/user-dto-paged-response.d.ts +2 -13
  180. package/dist/types/Coscine.Api/@coscine/model/user-dto-response.d.ts +1 -12
  181. package/dist/types/Coscine.Api/@coscine/model/user-dto.d.ts +7 -18
  182. package/dist/types/Coscine.Api/@coscine/model/user-for-update-dto.d.ts +3 -14
  183. package/dist/types/Coscine.Api/@coscine/model/user-merge-dto-response.d.ts +1 -12
  184. package/dist/types/Coscine.Api/@coscine/model/user-notification-opt-out-dto-paged-response.d.ts +2 -13
  185. package/dist/types/Coscine.Api/@coscine/model/user-notification-opt-out-dto-response.d.ts +1 -12
  186. package/dist/types/Coscine.Api/@coscine/model/user-organization-dto.d.ts +1 -12
  187. package/dist/types/Coscine.Api/@coscine/model/user-project-role-count-dto-response.d.ts +1 -12
  188. package/dist/types/Coscine.Api/@coscine/model/visibility-dto-paged-response.d.ts +2 -13
  189. package/dist/types/Coscine.Api/@coscine/model/visibility-dto-response.d.ts +1 -12
  190. package/dist/types/Coscine.Api/@coscine/model/vocabulary-dto-paged-response.d.ts +2 -13
  191. package/dist/types/Coscine.Api/@coscine/model/vocabulary-instance-dto-paged-response.d.ts +2 -13
  192. package/dist/types/Coscine.Api/@coscine/model/vocabulary-instance-dto-response.d.ts +1 -12
  193. package/dist/types/Coscine.Api/api.d.ts +5 -0
  194. package/dist/types/Coscine.Api/base.d.ts +2 -13
  195. package/dist/types/Coscine.Api/common.d.ts +5 -16
  196. package/dist/types/Coscine.Api/index.d.ts +3 -3
  197. package/dist/types/Coscine.Api.STS/@coscine/api/account-api.d.ts +4 -15
  198. package/dist/types/Coscine.Api.STS/@coscine/api/home-api.d.ts +3 -14
  199. package/dist/types/Coscine.Api.STS/@coscine/api/merge-api.d.ts +4 -15
  200. package/dist/types/Coscine.Api.STS/@coscine/api/orci-dapi.d.ts +4 -15
  201. package/dist/types/Coscine.Api.STS/@coscine/api/shibboleth-api.d.ts +4 -15
  202. package/dist/types/Coscine.Api.STS/@coscine/model/login-urls.d.ts +0 -11
  203. package/dist/types/Coscine.Api.STS/base.d.ts +2 -13
  204. package/dist/types/Coscine.Api.STS/common.d.ts +4 -15
  205. package/dist/types/Coscine.Api.STS/index.d.ts +3 -3
  206. package/dist/types/apis.d.ts +211 -177
  207. package/dist/types/axios-basic.d.ts +1 -1
  208. package/dist/types/index.d.ts +426 -352
  209. package/dist/types/testing.d.ts +46 -0
  210. package/package.json +7 -7
package/README.md CHANGED
@@ -8,6 +8,127 @@ The API Client library for JavaScript clients contains generated API connection
8
8
 
9
9
  ## 📖 Usage
10
10
 
11
+ ### Customize Axios (interceptors, headers)
12
+ The library offers two ways to customize Axios behavior:
13
+ 1) Reuse the shared instance that powers the default API exports.
14
+ 2) Provide your own Axios instance when creating APIs.
15
+
16
+ Choose the shared instance if you want all default exports (e.g. `AccountApi`) to pick up your interceptors automatically. Use a custom instance if you need isolated behavior, different base config, or multiple clients in the same app.
17
+
18
+ ```ts
19
+ import { apiClientAxios, AccountApi } from '@coscine/api-client';
20
+
21
+ apiClientAxios.interceptors.request.use((config) => {
22
+ // add headers/logging/etc
23
+ return config;
24
+ });
25
+
26
+ // Default exports use the shared instance, so interceptors apply here.
27
+ AccountApi.someCall();
28
+ ```
29
+
30
+ ```ts
31
+ import axios from 'axios';
32
+ import { createApis } from '@coscine/api-client';
33
+
34
+ const customAxios = axios.create({ withCredentials: true });
35
+ customAxios.interceptors.request.use((config) => config);
36
+
37
+ // APIs created this way use only your instance.
38
+ const apis = createApis(customAxios);
39
+ apis.AccountApi.someCall();
40
+ ```
41
+
42
+ ### Playwright-friendly endpoint matching
43
+ For tests, you can resolve the exact endpoint path behind a generated API method without manual hardcoding.
44
+
45
+ ```ts
46
+ import { apiParamCreators, describeEndpoint, makeRequestMatcher } from '@coscine/api-client';
47
+
48
+ const endpoint = await describeEndpoint(
49
+ apiParamCreators.SelfApiAxiosParamCreator().getCurrentUser()
50
+ );
51
+ const isGetCurrentUser = makeRequestMatcher(endpoint);
52
+
53
+ await page.route('**/*', (route) => {
54
+ if (isGetCurrentUser(route.request())) {
55
+ return route.fulfill({ status: 200, json: userFixture });
56
+ }
57
+ return route.continue();
58
+ });
59
+ ```
60
+
61
+ #### Example: mock API + waitForResponse helpers
62
+ This pattern builds request/response matchers from `testing.ts` helpers and reuses them for routing and `waitForResponse`.
63
+
64
+ ```ts
65
+ import type { Page, Response, Route } from '@playwright/test';
66
+ import {
67
+ apiParamCreators,
68
+ describeEndpoint,
69
+ makeRequestMatcher
70
+ } from '@coscine/api-client';
71
+
72
+ type ApiMockData = {
73
+ projects?: unknown[];
74
+ };
75
+
76
+ const jsonHandler = (status: number, data: unknown) => (route: Route) =>
77
+ route.fulfill({ status, json: data });
78
+
79
+ export async function createResponseMatchers(basePath?: string) {
80
+ const endpoints = await Promise.all([
81
+ describeEndpoint(apiParamCreators.ProjectApiAxiosParamCreator().getProjects(), basePath),
82
+ ]);
83
+
84
+ const [projectsMatcher] = endpoints.map(makeRequestMatcher);
85
+
86
+ return {
87
+ isGetProjects: (res: Response) => projectsMatcher(res.request()) && res.status() === 200,
88
+ };
89
+ }
90
+
91
+ export async function createMockDefinitions(data: ApiMockData = {}, basePath?: string) {
92
+ const mocks = [
93
+ {
94
+ endpoint: apiParamCreators.ProjectApiAxiosParamCreator().getProjects(),
95
+ handler: jsonHandler(200, { data: data.projects ?? [] }),
96
+ },
97
+ ];
98
+
99
+ const endpoints = await Promise.all(
100
+ mocks.map((m) => describeEndpoint(m.endpoint, basePath))
101
+ );
102
+
103
+ return mocks.map((mock, i) => ({
104
+ matcher: makeRequestMatcher(endpoints[i]),
105
+ handler: mock.handler,
106
+ }));
107
+ }
108
+
109
+ export async function mockApi(page: Page, data: ApiMockData = {}, basePath?: string) {
110
+ const [mocks, matchers] = await Promise.all([
111
+ createMockDefinitions(data, basePath),
112
+ createResponseMatchers(basePath),
113
+ ]);
114
+
115
+ await page.route('**/api/**', (route) => {
116
+ for (const mock of mocks) {
117
+ if (mock.matcher(route.request())) {
118
+ return mock.handler(route);
119
+ }
120
+ }
121
+ return route.fulfill({ status: 404, json: { message: 'Unhandled' } });
122
+ });
123
+
124
+ return matchers;
125
+ }
126
+
127
+ // Usage:
128
+ // const { isGetProjects } = await mockApi(page, { projects: [] }, 'https://coscine.test/coscine');
129
+ // await Promise.all([page.waitForResponse(isGetProjects), page.goto('/')]);
130
+ ```
131
+
11
132
  ### How to generate a new API Client library version
12
133
  * Start the API on the branch with the changes you want to see in the API Client library
13
134
  * Open the API Client library with SSH (not in a Container) on a new branch
@@ -27,11 +148,18 @@ The API Client library for JavaScript clients contains generated API connection
27
148
  * `yarn build`
28
149
 
29
150
  ### Testing
30
- * `yarn test`
151
+ * `yarn test` (recommended with Yarn PnP)
31
152
 
32
153
  ### Linting
33
154
  * `yarn lint:fix`
34
155
 
156
+ ### VS Code + Yarn PnP
157
+ If you see missing module errors in VS Code (e.g., `Cannot find module 'axios'`), install deps and the Yarn SDKs:
158
+ * `yarn install`
159
+ * `yarn dlx @yarnpkg/sdks vscode`
160
+
161
+ Then in VS Code: restart the TypeScript server and select the workspace TypeScript version.
162
+
35
163
  ### Links
36
164
  Bundles the output of [CodeGen](https://git.rwth-aachen.de/coscine/backend/scripts/codegen).
37
165
 
@@ -62,5 +190,5 @@ By following these simple steps, you can get the support you need to use Coscine
62
190
 
63
191
  ## 📦 Release & Changelog
64
192
 
65
- External users can find the _Releases and Changelog_ inside each project's repository. The repository contains a section for Releases (`Deployments > Releases`), where users can find the latest release changelog and source. Withing the Changelog you can find a list of all the changes made in that particular release and version.
193
+ External users can find the _Releases and Changelog_ inside each project's repository. The repository contains a section for Releases (`Deployments > Releases`), where users can find the latest release changelog and source. Within the Changelog you can find a list of all the changes made in that particular release and version.
66
194
  By regularly checking for new releases and changes in the Changelog, you can stay up-to-date with the latest improvements and bug fixes by our team and community!