@crowdin/app-project-module 0.107.0 → 1.0.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 (208) hide show
  1. package/out/app-test/integration/get-integration-files.js +16 -4
  2. package/out/app-test/integration/types.d.ts +1 -1
  3. package/out/app-test/integration/update-crowdin.js +2 -2
  4. package/out/app-test/integration/update-integration.js +2 -2
  5. package/out/index.d.ts +2 -1
  6. package/out/index.js +73 -30
  7. package/out/middlewares/auto-credentials-masker.d.ts +4 -0
  8. package/out/middlewares/auto-credentials-masker.js +45 -0
  9. package/out/middlewares/crowdin-client.d.ts +1 -1
  10. package/out/middlewares/integration-credentials.d.ts +2 -2
  11. package/out/middlewares/integration-credentials.js +7 -4
  12. package/out/middlewares/render-ui-module.d.ts +3 -3
  13. package/out/middlewares/render-ui-module.js +10 -13
  14. package/out/middlewares/ui-module.d.ts +1 -1
  15. package/out/middlewares/ui-module.js +11 -1
  16. package/out/modules/about.d.ts +2 -1
  17. package/out/modules/about.js +10 -3
  18. package/out/modules/ai-prompt-provider/handlers/compile.d.ts +1 -1
  19. package/out/modules/ai-prompt-provider/handlers/compile.js +7 -1
  20. package/out/modules/ai-prompt-provider/index.js +2 -2
  21. package/out/modules/ai-prompt-provider/types.d.ts +7 -1
  22. package/out/modules/ai-provider/handlers/chat-completions.d.ts +1 -1
  23. package/out/modules/ai-provider/handlers/chat-completions.js +1 -1
  24. package/out/modules/ai-provider/handlers/get-model-list.d.ts +1 -1
  25. package/out/modules/ai-provider/index.js +2 -2
  26. package/out/modules/ai-provider/types.d.ts +4 -4
  27. package/out/modules/ai-request-processors/handler.d.ts +1 -1
  28. package/out/modules/ai-request-processors/handler.js +12 -2
  29. package/out/modules/ai-request-processors/types.d.ts +12 -2
  30. package/out/modules/ai-tools/handlers/tool-calls.d.ts +1 -1
  31. package/out/modules/ai-tools/handlers/tool-calls.js +1 -1
  32. package/out/modules/ai-tools/index.js +1 -1
  33. package/out/modules/ai-tools/types.d.ts +1 -1
  34. package/out/modules/api/api.js +58 -7
  35. package/out/modules/api/base.d.ts +1 -0
  36. package/out/modules/api/base.js +1 -0
  37. package/out/modules/api/components.d.ts +251 -27
  38. package/out/modules/api/components.js +251 -27
  39. package/out/modules/auth-guard/handlers/verify.d.ts +1 -1
  40. package/out/modules/auth-guard/index.js +1 -1
  41. package/out/modules/automation-action/handlers/execute.d.ts +1 -1
  42. package/out/modules/automation-action/handlers/execute.js +1 -1
  43. package/out/modules/automation-action/handlers/input-schema.d.ts +1 -1
  44. package/out/modules/automation-action/handlers/output-schema.d.ts +1 -1
  45. package/out/modules/automation-action/handlers/validate-settings.d.ts +1 -1
  46. package/out/modules/automation-action/handlers/validate-settings.js +1 -1
  47. package/out/modules/automation-action/index.js +1 -1
  48. package/out/modules/automation-action/types.d.ts +4 -4
  49. package/out/modules/automation-action/util/index.js +2 -5
  50. package/out/modules/context-menu/index.js +2 -2
  51. package/out/modules/custom-mt/handlers/translate.d.ts +1 -1
  52. package/out/modules/custom-mt/handlers/translate.js +25 -9
  53. package/out/modules/custom-mt/index.js +3 -3
  54. package/out/modules/custom-mt/types.d.ts +10 -2
  55. package/out/modules/custom-spell-check/handlers/get-languages-list.d.ts +1 -1
  56. package/out/modules/custom-spell-check/handlers/spell-check.d.ts +1 -1
  57. package/out/modules/custom-spell-check/index.js +4 -4
  58. package/out/modules/editor-right-panel/index.js +1 -1
  59. package/out/modules/external-qa-check/handlers/validate.d.ts +1 -1
  60. package/out/modules/external-qa-check/index.js +2 -2
  61. package/out/modules/file-processing/handlers/custom-file-format.d.ts +7 -2
  62. package/out/modules/file-processing/handlers/custom-file-format.js +62 -22
  63. package/out/modules/file-processing/handlers/file-download.d.ts +1 -1
  64. package/out/modules/file-processing/handlers/file-download.js +5 -0
  65. package/out/modules/file-processing/handlers/pre-post-process.d.ts +1 -1
  66. package/out/modules/file-processing/handlers/pre-post-process.js +41 -15
  67. package/out/modules/file-processing/handlers/translations-alignment.d.ts +1 -1
  68. package/out/modules/file-processing/handlers/translations-alignment.js +10 -4
  69. package/out/modules/file-processing/index.js +12 -2
  70. package/out/modules/file-processing/types.d.ts +36 -5
  71. package/out/modules/file-processing/util/defaults.js +50 -6
  72. package/out/modules/file-processing/util/files.js +2 -1
  73. package/out/modules/form-data-display.d.ts +1 -1
  74. package/out/modules/form-data-save.d.ts +1 -1
  75. package/out/modules/install.d.ts +1 -1
  76. package/out/modules/integration/handlers/crowdin-file-progress.d.ts +1 -1
  77. package/out/modules/integration/handlers/crowdin-file-progress.js +5 -1
  78. package/out/modules/integration/handlers/crowdin-files-target-languages.d.ts +5 -0
  79. package/out/modules/integration/handlers/crowdin-files-target-languages.js +103 -0
  80. package/out/modules/integration/handlers/crowdin-files.d.ts +1 -1
  81. package/out/modules/integration/handlers/crowdin-files.js +7 -1
  82. package/out/modules/integration/handlers/crowdin-project.d.ts +1 -1
  83. package/out/modules/integration/handlers/crowdin-update.d.ts +1 -1
  84. package/out/modules/integration/handlers/crowdin-update.js +59 -18
  85. package/out/modules/integration/handlers/crowdin-webhook.d.ts +1 -1
  86. package/out/modules/integration/handlers/crowdin-webhook.js +15 -8
  87. package/out/modules/integration/handlers/integration-data.d.ts +1 -1
  88. package/out/modules/integration/handlers/integration-data.js +13 -6
  89. package/out/modules/integration/handlers/integration-login.d.ts +1 -1
  90. package/out/modules/integration/handlers/integration-logout.d.ts +1 -1
  91. package/out/modules/integration/handlers/integration-logout.js +8 -3
  92. package/out/modules/integration/handlers/integration-update.d.ts +1 -1
  93. package/out/modules/integration/handlers/integration-update.js +44 -6
  94. package/out/modules/integration/handlers/integration-webhook.d.ts +1 -1
  95. package/out/modules/integration/handlers/invite-users.d.ts +1 -1
  96. package/out/modules/integration/handlers/job-cancel.d.ts +1 -1
  97. package/out/modules/integration/handlers/job-info-deprecated.d.ts +1 -1
  98. package/out/modules/integration/handlers/job-info-deprecated.js +3 -2
  99. package/out/modules/integration/handlers/job-info.d.ts +1 -1
  100. package/out/modules/integration/handlers/job-list.d.ts +1 -1
  101. package/out/modules/integration/handlers/main.d.ts +1 -1
  102. package/out/modules/integration/handlers/main.js +32 -2
  103. package/out/modules/integration/handlers/oauth-login.d.ts +1 -1
  104. package/out/modules/integration/handlers/oauth-login.js +28 -6
  105. package/out/modules/integration/handlers/oauth-polling.d.ts +1 -1
  106. package/out/modules/integration/handlers/oauth-url.d.ts +1 -1
  107. package/out/modules/integration/handlers/settings-save.d.ts +1 -1
  108. package/out/modules/integration/handlers/settings-save.js +9 -9
  109. package/out/modules/integration/handlers/settings.d.ts +1 -1
  110. package/out/modules/integration/handlers/sync-settings-save.d.ts +1 -1
  111. package/out/modules/integration/handlers/sync-settings-save.js +5 -9
  112. package/out/modules/integration/handlers/sync-settings.d.ts +1 -1
  113. package/out/modules/integration/handlers/user-errors.d.ts +1 -1
  114. package/out/modules/integration/handlers/users.d.ts +1 -1
  115. package/out/modules/integration/index.js +19 -33
  116. package/out/modules/integration/types.d.ts +133 -29
  117. package/out/modules/integration/types.js +1 -0
  118. package/out/modules/integration/util/cron.d.ts +2 -2
  119. package/out/modules/integration/util/cron.js +40 -24
  120. package/out/modules/integration/util/defaults.d.ts +4 -0
  121. package/out/modules/integration/util/defaults.js +175 -15
  122. package/out/modules/integration/util/files.d.ts +2 -1
  123. package/out/modules/integration/util/files.js +19 -8
  124. package/out/modules/integration/util/job.js +4 -3
  125. package/out/modules/integration/util/snapshot.js +19 -3
  126. package/out/modules/integration/util/types.d.ts +1 -0
  127. package/out/modules/integration/util/types.js +1 -0
  128. package/out/modules/integration/util/webhooks.d.ts +8 -8
  129. package/out/modules/integration/util/webhooks.js +34 -17
  130. package/out/modules/manifest.js +12 -12
  131. package/out/modules/modal/index.js +2 -2
  132. package/out/modules/organization-menu/index.js +5 -4
  133. package/out/modules/organization-settings-menu/index.js +5 -4
  134. package/out/modules/profile-resources-menu/index.js +5 -4
  135. package/out/modules/profile-settings-menu/index.js +5 -4
  136. package/out/modules/project-menu/index.js +1 -1
  137. package/out/modules/project-menu-crowdsource/index.js +1 -1
  138. package/out/modules/project-reports/index.js +3 -2
  139. package/out/modules/project-tools/index.js +3 -2
  140. package/out/modules/status.d.ts +1 -1
  141. package/out/modules/status.js +12 -3
  142. package/out/modules/subscription-paid.d.ts +1 -1
  143. package/out/modules/uninstall.d.ts +1 -1
  144. package/out/modules/uninstall.js +1 -1
  145. package/out/modules/webhooks/handlers/webhook-handler.d.ts +2 -2
  146. package/out/modules/webhooks/handlers/webhook-handler.js +33 -22
  147. package/out/modules/webhooks/types.d.ts +7 -0
  148. package/out/modules/workflow-step-type/handlers/delete-step.d.ts +1 -1
  149. package/out/modules/workflow-step-type/handlers/step-settings-save.d.ts +1 -1
  150. package/out/modules/workflow-step-type/index.js +2 -2
  151. package/out/modules/workflow-step-type/types.d.ts +1 -1
  152. package/out/modules/workflow-step-type/util/index.js +3 -6
  153. package/out/static/js/dependent.js +16 -7
  154. package/out/static/ui/error.bundle.js +474 -0
  155. package/out/static/ui/error.bundle.js.map +1 -0
  156. package/out/static/ui/install.bundle.js +459 -0
  157. package/out/static/ui/install.bundle.js.map +1 -0
  158. package/out/static/ui/login.bundle.js +630 -0
  159. package/out/static/ui/login.bundle.js.map +1 -0
  160. package/out/static/ui/main.bundle.js +2109 -0
  161. package/out/static/ui/main.bundle.js.map +1 -0
  162. package/out/static/ui/oauth.bundle.js +467 -0
  163. package/out/static/ui/oauth.bundle.js.map +1 -0
  164. package/out/storage/d1.d.ts +107 -0
  165. package/out/storage/d1.js +831 -0
  166. package/out/storage/index.js +8 -1
  167. package/out/storage/mysql.js +22 -19
  168. package/out/storage/postgre.d.ts +0 -1
  169. package/out/storage/postgre.js +20 -30
  170. package/out/storage/sqlite.d.ts +2 -5
  171. package/out/storage/sqlite.js +29 -69
  172. package/out/types.d.ts +80 -18
  173. package/out/util/connection.js +16 -5
  174. package/out/util/credentials-masker.d.ts +3 -3
  175. package/out/util/credentials-masker.js +14 -20
  176. package/out/util/cron.d.ts +29 -0
  177. package/out/util/cron.js +87 -0
  178. package/out/util/index.d.ts +14 -1
  179. package/out/util/index.js +121 -10
  180. package/out/util/jsx-renderer.d.ts +14 -0
  181. package/out/util/jsx-renderer.js +35 -0
  182. package/out/util/logger.d.ts +1 -0
  183. package/out/util/logger.js +2 -2
  184. package/out/util/static-files.d.ts +19 -0
  185. package/out/util/static-files.js +87 -0
  186. package/out/util/subscription.js +1 -1
  187. package/out/views/AboutPage.d.ts +10 -0
  188. package/out/views/AboutPage.js +76 -0
  189. package/out/views/FormPage.d.ts +14 -0
  190. package/out/views/FormPage.js +28 -0
  191. package/out/views/SubscriptionPage.d.ts +7 -0
  192. package/out/views/SubscriptionPage.js +26 -0
  193. package/out/views/index.d.ts +8 -0
  194. package/out/views/index.js +15 -0
  195. package/out/views/layout/Head.d.ts +9 -0
  196. package/out/views/layout/Head.js +54 -0
  197. package/package.json +43 -41
  198. package/out/util/handlebars.d.ts +0 -1
  199. package/out/util/handlebars.js +0 -46
  200. package/out/views/about.handlebars +0 -102
  201. package/out/views/error.handlebars +0 -54
  202. package/out/views/form.handlebars +0 -31
  203. package/out/views/install.handlebars +0 -16
  204. package/out/views/login.handlebars +0 -332
  205. package/out/views/main.handlebars +0 -2042
  206. package/out/views/oauth.handlebars +0 -11
  207. package/out/views/partials/head.handlebars +0 -53
  208. package/out/views/subscription.handlebars +0 -26
@@ -4,50 +4,100 @@
4
4
  * schemas:
5
5
  * CrowdinFiles:
6
6
  * type: array
7
- * example: [{id: 1, name: Landing pages}, {id: 2, parentId: 1, name: Home Page, type: json}]
7
+ * description: 'List of Crowdin files and folders'
8
+ * example: [{id: '1', name: 'Landing pages'}, {id: '2', parentId: '1', name: 'Home Page', type: 'json'}]
8
9
  * items:
9
10
  * anyOf:
10
- * - properties:
11
+ * - type: object
12
+ * description: 'Folder'
13
+ * properties:
11
14
  * id:
12
15
  * type: string
16
+ * description: 'Unique identifier'
13
17
  * name:
14
18
  * type: string
15
- * - properties:
19
+ * description: 'Folder name'
20
+ * parentId:
21
+ * type: string
22
+ * description: 'Parent folder identifier'
23
+ * - type: object
24
+ * description: 'File'
25
+ * properties:
16
26
  * id:
17
27
  * type: string
28
+ * description: 'Unique identifier'
18
29
  * parentId:
19
30
  * type: string
31
+ * description: 'Parent folder identifier'
20
32
  * name:
21
33
  * type: string
34
+ * description: 'File name'
22
35
  * type:
23
36
  * type: string
37
+ * description: 'File type (e.g., json, xml, html)'
38
+ * excludedTargetLanguages:
39
+ * type: array
40
+ * description: 'Languages excluded from translation'
41
+ * items:
42
+ * type: string
43
+ * NodeType:
44
+ * type: string
45
+ * description: 'Type of tree element'
46
+ * enum:
47
+ * - '0'
48
+ * - '1'
49
+ * - '2'
50
+ * x-enum-descriptions:
51
+ * - 'Folder'
52
+ * - 'File'
53
+ * - 'Branch'
24
54
  * IntegrationFiles:
25
55
  * type: array
26
- * example: [{id: 1, name: Landing pages, parent_id: 0, node_type: 0}, {name: Intro, id: 73291251883, parentId: Landing pages, type: json, node_type: 1}]
56
+ * description: 'List of integration files and folders'
57
+ * example: [{id: '1', name: 'Landing pages'}, {id: '73291251883', name: 'Intro', parentId: '1', type: 'json'}]
27
58
  * items:
28
59
  * anyOf:
29
- * - properties:
60
+ * - type: object
61
+ * description: 'Folder'
62
+ * properties:
30
63
  * id:
31
64
  * type: string
65
+ * description: 'Unique identifier'
32
66
  * name:
33
67
  * type: string
34
- * parent_id:
68
+ * description: 'Folder name'
69
+ * parentId:
35
70
  * type: string
36
- * node_type:
71
+ * description: 'Parent folder identifier'
72
+ * - type: object
73
+ * description: 'File'
74
+ * properties:
75
+ * id:
37
76
  * type: string
38
- * - properties:
77
+ * description: 'Unique identifier'
39
78
  * name:
40
79
  * type: string
41
- * id:
42
- * type: string
80
+ * description: 'File name'
43
81
  * parentId:
44
82
  * type: string
83
+ * description: 'Parent folder identifier'
45
84
  * type:
46
85
  * type: string
47
- * node_type:
48
- * type: string
86
+ * description: 'File type (e.g., json, xml, html)'
87
+ * isNew:
88
+ * type: boolean
89
+ * description: 'Whether file is new (not synced before)'
90
+ * isUpdated:
91
+ * type: boolean
92
+ * description: 'Whether file was updated since last sync'
93
+ * notSynced:
94
+ * type: boolean
95
+ * description: 'Whether file was never synced'
96
+ * synced:
97
+ * type: boolean
98
+ * description: 'Whether file is synced'
49
99
  * UpdateCrowdinFiles:
50
- * title: 'Update files'
100
+ * title: 'Sync Files to Crowdin'
51
101
  * required:
52
102
  * - projectId
53
103
  * - files
@@ -64,7 +114,7 @@
64
114
  * default: false
65
115
  * example: true
66
116
  * FileLanguagePair:
67
- * title: 'Update files'
117
+ * title: 'Sync Translations to Integration'
68
118
  * required:
69
119
  * - projectId
70
120
  * - files
@@ -134,7 +184,7 @@
134
184
  * type:
135
185
  * type: string
136
186
  * node_type:
137
- * type: string
187
+ * $ref: '#/components/schemas/NodeType'
138
188
  * schedule:
139
189
  * type: boolean
140
190
  * UpdateSyncSettingsData:
@@ -199,17 +249,45 @@
199
249
  * type: integer
200
250
  * example: 86
201
251
  * LoginFieldsResponse:
202
- * type: array
203
- * items:
204
- * type: object
205
- * properties:
206
- * key:
207
- * type: string
208
- * example: 'apiKey'
209
- * name:
210
- * type: string
211
- * example: 'Service API key'
212
- * example: [{ key: 'email', name: 'User email' }, { key: 'password', name: 'User password' }]
252
+ * type: object
253
+ * properties:
254
+ * fields:
255
+ * type: array
256
+ * items:
257
+ * type: object
258
+ * properties:
259
+ * key:
260
+ * type: string
261
+ * description: 'Unique field identifier'
262
+ * example: 'apiKey'
263
+ * name:
264
+ * type: string
265
+ * description: 'Human-readable field label'
266
+ * example: 'Service API key'
267
+ * type:
268
+ * type: string
269
+ * description: 'Field input type'
270
+ * enum:
271
+ * - text
272
+ * - password
273
+ * - checkbox
274
+ * - select
275
+ * - textarea
276
+ * - file
277
+ * - notice
278
+ * example: 'password'
279
+ * options:
280
+ * type: array
281
+ * description: 'Available options (only for select type)'
282
+ * items:
283
+ * type: object
284
+ * properties:
285
+ * label:
286
+ * type: string
287
+ * value:
288
+ * type: string
289
+ * example:
290
+ * fields: [{ key: 'email', name: 'User email', type: 'text' }, { key: 'password', name: 'User password', type: 'password' }]
213
291
  * Login:
214
292
  * title: 'Login'
215
293
  * required:
@@ -226,8 +304,146 @@
226
304
  * type: object
227
305
  * description: 'Login Form Fields. Get via [Integration Login Form Fields](#operation/integration.fields)'
228
306
  * example: { email: 'user@crowdin.com', password: 'password' }
307
+ * JobStatus:
308
+ * type: string
309
+ * description: 'Possible job statuses'
310
+ * enum:
311
+ * - created
312
+ * - inProgress
313
+ * - finished
314
+ * - failed
315
+ * - canceled
316
+ * JobType:
317
+ * type: string
318
+ * description: 'Possible job types'
319
+ * enum:
320
+ * - updateCrowdin
321
+ * - updateIntegration
322
+ * - crowdinSyncSettingsSave
323
+ * - integrationSyncSettingsSave
324
+ * JobListItem:
325
+ * type: object
326
+ * description: 'Job item returned in list response'
327
+ * properties:
328
+ * id:
329
+ * type: string
330
+ * description: 'Unique identifier of the job'
331
+ * example: '067da473-fc0b-43e3-b0a2-09d26af130c1'
332
+ * progress:
333
+ * type: integer
334
+ * description: 'Current progress percentage (0-100)'
335
+ * minimum: 0
336
+ * maximum: 100
337
+ * example: 94
338
+ * status:
339
+ * $ref: '#/components/schemas/JobStatus'
340
+ * title:
341
+ * type: string
342
+ * description: 'Human-readable title of the job'
343
+ * example: 'Sync files to Crowdin'
344
+ * type:
345
+ * $ref: '#/components/schemas/JobType'
346
+ * createdAt:
347
+ * type: string
348
+ * format: date-time
349
+ * description: 'ISO 8601 timestamp when the job was created'
350
+ * example: '2024-01-15T10:30:00.000Z'
351
+ * finishedAt:
352
+ * type: string
353
+ * format: date-time
354
+ * nullable: true
355
+ * description: 'ISO 8601 timestamp when the job finished (null if not finished)'
356
+ * example: '2024-01-15T10:35:00.000Z'
229
357
  * Job:
230
358
  * type: object
359
+ * description: 'Detailed job information'
360
+ * properties:
361
+ * id:
362
+ * type: string
363
+ * description: 'Unique identifier of the job'
364
+ * example: '067da473-fc0b-43e3-b0a2-09d26af130c1'
365
+ * progress:
366
+ * type: integer
367
+ * description: 'Current progress percentage (0-100)'
368
+ * minimum: 0
369
+ * maximum: 100
370
+ * example: 94
371
+ * status:
372
+ * $ref: '#/components/schemas/JobStatus'
373
+ * title:
374
+ * type: string
375
+ * description: 'Human-readable title of the job'
376
+ * example: 'Sync files to Crowdin'
377
+ * type:
378
+ * $ref: '#/components/schemas/JobType'
379
+ * info:
380
+ * type: string
381
+ * nullable: true
382
+ * description: 'Additional information about the job progress (e.g., ETA)'
383
+ * example: 'About 2 minutes remaining'
384
+ * data:
385
+ * type: object
386
+ * nullable: true
387
+ * description: 'Additional data associated with the job'
388
+ * payload:
389
+ * type: object
390
+ * nullable: true
391
+ * description: 'Original payload used to create the job'
392
+ * attempt:
393
+ * type: integer
394
+ * nullable: true
395
+ * description: 'Current attempt number for retried jobs'
396
+ * example: 1
397
+ * eta:
398
+ * type: number
399
+ * nullable: true
400
+ * description: 'Estimated time remaining in milliseconds'
401
+ * example: 120000
402
+ * createdAt:
403
+ * type: string
404
+ * format: date-time
405
+ * description: 'ISO 8601 timestamp when the job was created'
406
+ * example: '2024-01-15T10:30:00.000Z'
407
+ * updatedAt:
408
+ * type: string
409
+ * format: date-time
410
+ * nullable: true
411
+ * description: 'ISO 8601 timestamp when the job was last updated'
412
+ * example: '2024-01-15T10:32:00.000Z'
413
+ * finishedAt:
414
+ * type: string
415
+ * format: date-time
416
+ * nullable: true
417
+ * description: 'ISO 8601 timestamp when the job finished'
418
+ * example: '2024-01-15T10:35:00.000Z'
419
+ * JobListResponse:
420
+ * type: object
421
+ * description: 'List of jobs response'
422
+ * properties:
423
+ * data:
424
+ * type: array
425
+ * items:
426
+ * $ref: '#/components/schemas/JobListItem'
427
+ * JobInfoResponse:
428
+ * type: object
429
+ * description: 'Single job info response'
430
+ * properties:
431
+ * data:
432
+ * $ref: '#/components/schemas/Job'
433
+ * ErrorResponse:
434
+ * type: object
435
+ * properties:
436
+ * error:
437
+ * type: object
438
+ * properties:
439
+ * message:
440
+ * type: string
441
+ * description: 'Error message describing what went wrong'
442
+ * example: 'jobId is required'
443
+ * JobBasic:
444
+ * type: object
445
+ * deprecated: true
446
+ * description: 'Basic job info (deprecated format)'
231
447
  * properties:
232
448
  * id:
233
449
  * type: string
@@ -247,11 +463,13 @@
247
463
  * example: 'Sync files to Crowdin'
248
464
  * JobResponse:
249
465
  * type: object
466
+ * deprecated: true
467
+ * description: 'Deprecated. Use Job or JobListResponse instead'
250
468
  * properties:
251
469
  * data:
252
470
  * type: array
253
471
  * items:
254
- * $ref: '#/components/schemas/Job'
472
+ * $ref: '#/components/schemas/JobBasic'
255
473
  *
256
474
  * parameters:
257
475
  * ProjectId:
@@ -262,4 +480,10 @@
262
480
  * schema:
263
481
  * type: integer
264
482
  * example: 12
483
+ *
484
+ * securitySchemes:
485
+ * bearerAuth:
486
+ * type: http
487
+ * scheme: bearer
488
+ * description: 'Crowdin API Personal Access Token. Get via [Account Settings](https://crowdin.com/settings#api-key)'
265
489
  */