@strapi/upload 5.33.4 → 5.35.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 (183) hide show
  1. package/dist/admin/components/EditAssetDialog/EditAssetContent.js +32 -3
  2. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  3. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +32 -3
  4. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  5. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  6. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  7. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js +57 -0
  8. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -0
  9. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs +55 -0
  10. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -0
  11. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +96 -20
  12. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  13. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +98 -22
  14. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  15. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js +47 -0
  16. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.js.map +1 -1
  17. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs +44 -1
  18. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewComponents.mjs.map +1 -1
  19. package/dist/admin/future/App.js +45 -0
  20. package/dist/admin/future/App.js.map +1 -0
  21. package/dist/admin/future/App.mjs +43 -0
  22. package/dist/admin/future/App.mjs.map +1 -0
  23. package/dist/admin/future/pages/AIGenerationPage.js +24 -0
  24. package/dist/admin/future/pages/AIGenerationPage.js.map +1 -0
  25. package/dist/admin/future/pages/AIGenerationPage.mjs +22 -0
  26. package/dist/admin/future/pages/AIGenerationPage.mjs.map +1 -0
  27. package/dist/admin/future/pages/MediaLibraryPage.js +119 -0
  28. package/dist/admin/future/pages/MediaLibraryPage.js.map +1 -0
  29. package/dist/admin/future/pages/MediaLibraryPage.mjs +98 -0
  30. package/dist/admin/future/pages/MediaLibraryPage.mjs.map +1 -0
  31. package/dist/admin/future/services/api.js +28 -0
  32. package/dist/admin/future/services/api.js.map +1 -0
  33. package/dist/admin/future/services/api.mjs +25 -0
  34. package/dist/admin/future/services/api.mjs.map +1 -0
  35. package/dist/admin/future/utils/translations.js +8 -0
  36. package/dist/admin/future/utils/translations.js.map +1 -0
  37. package/dist/admin/future/utils/translations.mjs +6 -0
  38. package/dist/admin/future/utils/translations.mjs.map +1 -0
  39. package/dist/admin/hooks/useAIMetadataJob.js +114 -0
  40. package/dist/admin/hooks/useAIMetadataJob.js.map +1 -0
  41. package/dist/admin/hooks/useAIMetadataJob.mjs +93 -0
  42. package/dist/admin/hooks/useAIMetadataJob.mjs.map +1 -0
  43. package/dist/admin/hooks/useEditAsset.js +1 -0
  44. package/dist/admin/hooks/useEditAsset.js.map +1 -1
  45. package/dist/admin/hooks/useEditAsset.mjs +1 -0
  46. package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
  47. package/dist/admin/index.js +23 -4
  48. package/dist/admin/index.js.map +1 -1
  49. package/dist/admin/index.mjs +24 -5
  50. package/dist/admin/index.mjs.map +1 -1
  51. package/dist/admin/package.json.js +6 -5
  52. package/dist/admin/package.json.js.map +1 -1
  53. package/dist/admin/package.json.mjs +6 -5
  54. package/dist/admin/package.json.mjs.map +1 -1
  55. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +1 -0
  56. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  57. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +1 -0
  58. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  59. package/dist/admin/pages/App/components/Header.js +3 -0
  60. package/dist/admin/pages/App/components/Header.js.map +1 -1
  61. package/dist/admin/pages/App/components/Header.mjs +3 -0
  62. package/dist/admin/pages/App/components/Header.mjs.map +1 -1
  63. package/dist/admin/pages/SettingsPage/SettingsPage.js +252 -67
  64. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  65. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +256 -71
  66. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  67. package/dist/admin/src/components/EditAssetDialog/PreviewBox/AssetPreview.d.ts +1 -2
  68. package/dist/admin/src/components/EditAssetDialog/PreviewBox/FocalPointActions.d.ts +7 -0
  69. package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewBox.d.ts +6 -2
  70. package/dist/admin/src/components/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +13 -0
  71. package/dist/admin/src/future/App.d.ts +1 -0
  72. package/dist/admin/src/future/pages/AIGenerationPage.d.ts +1 -0
  73. package/dist/admin/src/future/pages/MediaLibraryPage.d.ts +1 -0
  74. package/dist/admin/src/future/services/api.d.ts +6 -0
  75. package/dist/admin/src/future/services/settings.d.ts +2 -0
  76. package/dist/admin/src/future/utils/translations.d.ts +1 -0
  77. package/dist/admin/src/hooks/useAIMetadataJob.d.ts +9 -0
  78. package/dist/admin/translations/de.json.js +44 -1
  79. package/dist/admin/translations/de.json.js.map +1 -1
  80. package/dist/admin/translations/de.json.mjs +44 -1
  81. package/dist/admin/translations/de.json.mjs.map +1 -1
  82. package/dist/admin/translations/en.json.js +17 -0
  83. package/dist/admin/translations/en.json.js.map +1 -1
  84. package/dist/admin/translations/en.json.mjs +17 -0
  85. package/dist/admin/translations/en.json.mjs.map +1 -1
  86. package/dist/server/bootstrap.js +1 -0
  87. package/dist/server/bootstrap.js.map +1 -1
  88. package/dist/server/bootstrap.mjs +1 -0
  89. package/dist/server/bootstrap.mjs.map +1 -1
  90. package/dist/server/content-types/file.js +4 -0
  91. package/dist/server/content-types/file.js.map +1 -1
  92. package/dist/server/content-types/file.mjs +4 -0
  93. package/dist/server/content-types/file.mjs.map +1 -1
  94. package/dist/server/controllers/admin-file.js +86 -0
  95. package/dist/server/controllers/admin-file.js.map +1 -1
  96. package/dist/server/controllers/admin-file.mjs +86 -0
  97. package/dist/server/controllers/admin-file.mjs.map +1 -1
  98. package/dist/server/controllers/admin-upload.js +3 -23
  99. package/dist/server/controllers/admin-upload.js.map +1 -1
  100. package/dist/server/controllers/admin-upload.mjs +3 -23
  101. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  102. package/dist/server/controllers/validation/admin/upload.js +5 -0
  103. package/dist/server/controllers/validation/admin/upload.js.map +1 -1
  104. package/dist/server/controllers/validation/admin/upload.mjs +5 -0
  105. package/dist/server/controllers/validation/admin/upload.mjs.map +1 -1
  106. package/dist/server/controllers/validation/content-api/upload.js +6 -1
  107. package/dist/server/controllers/validation/content-api/upload.js.map +1 -1
  108. package/dist/server/controllers/validation/content-api/upload.mjs +6 -1
  109. package/dist/server/controllers/validation/content-api/upload.mjs.map +1 -1
  110. package/dist/server/models/ai-metadata-job.js +36 -0
  111. package/dist/server/models/ai-metadata-job.js.map +1 -0
  112. package/dist/server/models/ai-metadata-job.mjs +33 -0
  113. package/dist/server/models/ai-metadata-job.mjs.map +1 -0
  114. package/dist/server/register.js +3 -0
  115. package/dist/server/register.js.map +1 -1
  116. package/dist/server/register.mjs +3 -0
  117. package/dist/server/register.mjs.map +1 -1
  118. package/dist/server/routes/admin.js +46 -0
  119. package/dist/server/routes/admin.js.map +1 -1
  120. package/dist/server/routes/admin.mjs +46 -0
  121. package/dist/server/routes/admin.mjs.map +1 -1
  122. package/dist/server/services/ai-metadata-jobs.js +72 -0
  123. package/dist/server/services/ai-metadata-jobs.js.map +1 -0
  124. package/dist/server/services/ai-metadata-jobs.mjs +70 -0
  125. package/dist/server/services/ai-metadata-jobs.mjs.map +1 -0
  126. package/dist/server/services/ai-metadata.js +170 -20
  127. package/dist/server/services/ai-metadata.js.map +1 -1
  128. package/dist/server/services/ai-metadata.mjs +170 -20
  129. package/dist/server/services/ai-metadata.mjs.map +1 -1
  130. package/dist/server/services/index.js +3 -1
  131. package/dist/server/services/index.js.map +1 -1
  132. package/dist/server/services/index.mjs +3 -1
  133. package/dist/server/services/index.mjs.map +1 -1
  134. package/dist/server/services/upload.js +3 -1
  135. package/dist/server/services/upload.js.map +1 -1
  136. package/dist/server/services/upload.mjs +3 -1
  137. package/dist/server/services/upload.mjs.map +1 -1
  138. package/dist/server/src/bootstrap.d.ts.map +1 -1
  139. package/dist/server/src/content-types/file.d.ts +4 -0
  140. package/dist/server/src/content-types/file.d.ts.map +1 -1
  141. package/dist/server/src/content-types/index.d.ts +4 -0
  142. package/dist/server/src/content-types/index.d.ts.map +1 -1
  143. package/dist/server/src/controllers/admin-file.d.ts +3 -0
  144. package/dist/server/src/controllers/admin-file.d.ts.map +1 -1
  145. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  146. package/dist/server/src/controllers/index.d.ts +3 -0
  147. package/dist/server/src/controllers/index.d.ts.map +1 -1
  148. package/dist/server/src/controllers/validation/admin/upload.d.ts +240 -0
  149. package/dist/server/src/controllers/validation/admin/upload.d.ts.map +1 -1
  150. package/dist/server/src/controllers/validation/content-api/upload.d.ts +180 -0
  151. package/dist/server/src/controllers/validation/content-api/upload.d.ts.map +1 -1
  152. package/dist/server/src/index.d.ts +32 -2
  153. package/dist/server/src/index.d.ts.map +1 -1
  154. package/dist/server/src/models/ai-metadata-job.d.ts +5 -0
  155. package/dist/server/src/models/ai-metadata-job.d.ts.map +1 -0
  156. package/dist/server/src/models/index.d.ts +5 -0
  157. package/dist/server/src/models/index.d.ts.map +1 -0
  158. package/dist/server/src/register.d.ts.map +1 -1
  159. package/dist/server/src/routes/admin.d.ts.map +1 -1
  160. package/dist/server/src/services/ai-metadata-jobs.d.ts +14 -0
  161. package/dist/server/src/services/ai-metadata-jobs.d.ts.map +1 -0
  162. package/dist/server/src/services/ai-metadata.d.ts +25 -2
  163. package/dist/server/src/services/ai-metadata.d.ts.map +1 -1
  164. package/dist/server/src/services/index.d.ts +25 -2
  165. package/dist/server/src/services/index.d.ts.map +1 -1
  166. package/dist/server/src/services/upload.d.ts +1 -1
  167. package/dist/server/src/services/upload.d.ts.map +1 -1
  168. package/dist/server/src/types.d.ts +6 -0
  169. package/dist/server/src/types.d.ts.map +1 -1
  170. package/dist/server/src/utils/images.d.ts +7 -0
  171. package/dist/server/src/utils/images.d.ts.map +1 -0
  172. package/dist/server/src/utils/index.d.ts +2 -0
  173. package/dist/server/src/utils/index.d.ts.map +1 -1
  174. package/dist/server/utils/images.js +35 -0
  175. package/dist/server/utils/images.js.map +1 -0
  176. package/dist/server/utils/images.mjs +33 -0
  177. package/dist/server/utils/images.mjs.map +1 -0
  178. package/dist/server/utils/index.js.map +1 -1
  179. package/dist/server/utils/index.mjs.map +1 -1
  180. package/dist/shared/contracts/ai-metadata-jobs.d.ts +53 -0
  181. package/dist/shared/contracts/ai-metadata-jobs.d.ts.map +1 -0
  182. package/dist/shared/contracts/files.d.ts +39 -0
  183. package/package.json +6 -5
@@ -4,20 +4,60 @@ declare const uploadSchema: import("yup/lib/object").OptionalObjectSchema<{
4
4
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
5
5
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
6
6
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
7
+ focalPoint: import("yup").ObjectSchema<{
8
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
9
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
10
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
11
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
12
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
13
+ }> | null, import("yup/lib/object").AssertsShape<{
14
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
15
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
16
+ }> | null>;
7
17
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
8
18
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
9
19
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
10
20
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
21
+ focalPoint: import("yup").ObjectSchema<{
22
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
23
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
24
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
25
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
26
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
27
+ }> | null, import("yup/lib/object").AssertsShape<{
28
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
29
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
30
+ }> | null>;
11
31
  }>>;
12
32
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
13
33
  fileInfo: import("yup/lib/object").OptionalObjectSchema<{
14
34
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
15
35
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
16
36
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
37
+ focalPoint: import("yup").ObjectSchema<{
38
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
39
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
40
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
41
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
42
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
43
+ }> | null, import("yup/lib/object").AssertsShape<{
44
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
45
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
46
+ }> | null>;
17
47
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
18
48
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
19
49
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
20
50
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
51
+ focalPoint: import("yup").ObjectSchema<{
52
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
53
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
54
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
55
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
56
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
57
+ }> | null, import("yup/lib/object").AssertsShape<{
58
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
59
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
60
+ }> | null>;
21
61
  }>>;
22
62
  }>>;
23
63
  declare const multiUploadSchema: import("yup/lib/object").OptionalObjectSchema<{
@@ -25,36 +65,116 @@ declare const multiUploadSchema: import("yup/lib/object").OptionalObjectSchema<{
25
65
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
26
66
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
27
67
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
68
+ focalPoint: import("yup").ObjectSchema<{
69
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
70
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
71
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
72
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
73
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
74
+ }> | null, import("yup/lib/object").AssertsShape<{
75
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
76
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
77
+ }> | null>;
28
78
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
29
79
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
30
80
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
31
81
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
82
+ focalPoint: import("yup").ObjectSchema<{
83
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
84
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
85
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
86
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
87
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
88
+ }> | null, import("yup/lib/object").AssertsShape<{
89
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
90
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
91
+ }> | null>;
32
92
  }>>, import("yup/lib/types").AnyObject, import("yup/lib/object").TypeOfShape<{
33
93
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
34
94
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
35
95
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
96
+ focalPoint: import("yup").ObjectSchema<{
97
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
98
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
99
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
100
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
101
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
102
+ }> | null, import("yup/lib/object").AssertsShape<{
103
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
104
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
105
+ }> | null>;
36
106
  }>[] | undefined, import("yup/lib/object").AssertsShape<{
37
107
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
38
108
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
39
109
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
110
+ focalPoint: import("yup").ObjectSchema<{
111
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
112
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
113
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
114
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
115
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
116
+ }> | null, import("yup/lib/object").AssertsShape<{
117
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
118
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
119
+ }> | null>;
40
120
  }>[] | undefined>;
41
121
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
42
122
  fileInfo: yup.ArraySchema<import("yup/lib/object").OptionalObjectSchema<{
43
123
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
44
124
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
45
125
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
126
+ focalPoint: import("yup").ObjectSchema<{
127
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
128
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
129
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
130
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
131
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
132
+ }> | null, import("yup/lib/object").AssertsShape<{
133
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
134
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
135
+ }> | null>;
46
136
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
47
137
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
48
138
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
49
139
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
140
+ focalPoint: import("yup").ObjectSchema<{
141
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
142
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
143
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
144
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
145
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
146
+ }> | null, import("yup/lib/object").AssertsShape<{
147
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
148
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
149
+ }> | null>;
50
150
  }>>, import("yup/lib/types").AnyObject, import("yup/lib/object").TypeOfShape<{
51
151
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
52
152
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
53
153
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
154
+ focalPoint: import("yup").ObjectSchema<{
155
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
156
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
157
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
158
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
159
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
160
+ }> | null, import("yup/lib/object").AssertsShape<{
161
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
162
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
163
+ }> | null>;
54
164
  }>[] | undefined, import("yup/lib/object").AssertsShape<{
55
165
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
56
166
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
57
167
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
168
+ focalPoint: import("yup").ObjectSchema<{
169
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
170
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
171
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
172
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
173
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
174
+ }> | null, import("yup/lib/object").AssertsShape<{
175
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
176
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
177
+ }> | null>;
58
178
  }>[] | undefined>;
59
179
  }>>;
60
180
  declare const validateUploadBody: (data?: {}, isMulti?: boolean) => Promise<import("yup/lib/object").AssertsShape<{
@@ -62,28 +182,88 @@ declare const validateUploadBody: (data?: {}, isMulti?: boolean) => Promise<impo
62
182
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
63
183
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
64
184
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
185
+ focalPoint: import("yup").ObjectSchema<{
186
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
187
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
188
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
189
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
190
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
191
+ }> | null, import("yup/lib/object").AssertsShape<{
192
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
193
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
194
+ }> | null>;
65
195
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
66
196
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
67
197
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
68
198
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
199
+ focalPoint: import("yup").ObjectSchema<{
200
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
201
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
202
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
203
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
204
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
205
+ }> | null, import("yup/lib/object").AssertsShape<{
206
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
207
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
208
+ }> | null>;
69
209
  }>>;
70
210
  }> | import("yup/lib/object").AssertsShape<{
71
211
  fileInfo: yup.ArraySchema<import("yup/lib/object").OptionalObjectSchema<{
72
212
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
73
213
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
74
214
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
215
+ focalPoint: import("yup").ObjectSchema<{
216
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
217
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
218
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
219
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
220
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
221
+ }> | null, import("yup/lib/object").AssertsShape<{
222
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
223
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
224
+ }> | null>;
75
225
  }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
76
226
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
77
227
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
78
228
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
229
+ focalPoint: import("yup").ObjectSchema<{
230
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
231
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
232
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
233
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
234
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
235
+ }> | null, import("yup/lib/object").AssertsShape<{
236
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
237
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
238
+ }> | null>;
79
239
  }>>, import("yup/lib/types").AnyObject, import("yup/lib/object").TypeOfShape<{
80
240
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
81
241
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
82
242
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
243
+ focalPoint: import("yup").ObjectSchema<{
244
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
245
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
246
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
247
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
248
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
249
+ }> | null, import("yup/lib/object").AssertsShape<{
250
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
251
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
252
+ }> | null>;
83
253
  }>[] | undefined, import("yup/lib/object").AssertsShape<{
84
254
  name: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
85
255
  alternativeText: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
86
256
  caption: import("yup").StringSchema<string | null | undefined, Record<string, any>, string | null | undefined>;
257
+ focalPoint: import("yup").ObjectSchema<{
258
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
259
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
260
+ }, Record<string, any>, import("yup/lib/object").TypeOfShape<{
261
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
262
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
263
+ }> | null, import("yup/lib/object").AssertsShape<{
264
+ x: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
265
+ y: import("yup/lib/number").RequiredNumberSchema<number | undefined, Record<string, any>>;
266
+ }> | null>;
87
267
  }>[] | undefined>;
88
268
  }>>;
89
269
  export { validateUploadBody };
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../../../server/src/controllers/validation/content-api/upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,eAAe,CAAC;AAUvD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;GAEhB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAErB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIvB,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,MAAM,MAAM,UAAU,GAClB,GAAG,CAAC,SAAS,CAAC,OAAO,YAAY,CAAC,GAClC,GAAG,CAAC,SAAS,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../../../server/src/controllers/validation/content-api/upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,eAAe,CAAC;AAmBvD,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEhB,CAAC;AAEH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAErB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAIvB,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAE9B,MAAM,MAAM,UAAU,GAClB,GAAG,CAAC,SAAS,CAAC,OAAO,YAAY,CAAC,GAClC,GAAG,CAAC,SAAS,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -64,6 +64,9 @@ declare const _default: () => {
64
64
  }>;
65
65
  findOne(ctx: import("koa").Context): Promise<void>;
66
66
  destroy(ctx: import("koa").Context): Promise<void>;
67
+ getAIMetadataCount(ctx: import("koa").Context): Promise<import("koa").Context | undefined>;
68
+ generateAIMetadata(ctx: import("koa").Context): Promise<import("koa").Context | undefined>;
69
+ getLatestAIMetadataJob(ctx: import("koa").Context): Promise<import("koa").Context | undefined>;
67
70
  };
68
71
  'admin-folder': {
69
72
  findOne(ctx: import("koa").Context): Promise<import("koa").Context | undefined>;
@@ -136,6 +139,10 @@ declare const _default: () => {
136
139
  type: "text";
137
140
  configurable: false;
138
141
  };
142
+ focalPoint: {
143
+ type: "json";
144
+ configurable: false;
145
+ };
139
146
  width: {
140
147
  type: "integer";
141
148
  configurable: false;
@@ -301,7 +308,7 @@ declare const _default: () => {
301
308
  id: string | number;
302
309
  } | undefined;
303
310
  } | undefined) => Promise<any[]>;
304
- updateFileInfo: (id: string | number, { name, alternativeText, caption, folder }: import("./types").FileInfo, opts?: {
311
+ updateFileInfo: (id: string | number, { name, alternativeText, caption, focalPoint, folder }: import("./types").FileInfo, opts?: {
305
312
  user?: {
306
313
  id: string | number;
307
314
  } | undefined;
@@ -430,11 +437,34 @@ declare const _default: () => {
430
437
  strapi: import("@strapi/types/dist/core").Strapi;
431
438
  }) => {
432
439
  isEnabled(): Promise<boolean>;
433
- processFiles(files: import("./types").InputFile[]): Promise<({
440
+ countImagesWithoutMetadata(): Promise<{
441
+ imagesWithoutMetadataCount: number;
442
+ totalImages: number;
443
+ }>;
444
+ updateFilesWithAIMetadata(files: import("./types").File[], metadataResults: ({
445
+ altText: string;
446
+ caption: string;
447
+ } | null)[], user: {
448
+ id: string | number;
449
+ }): Promise<void>;
450
+ processExistingFiles(jobId: number, user: {
451
+ id: string | number;
452
+ }): Promise<void>;
453
+ processFiles(files: import("./types").File[]): Promise<({
434
454
  altText: string;
435
455
  caption: string;
436
456
  } | null)[]>;
437
457
  };
458
+ aiMetadataJobs: ({ strapi }: {
459
+ strapi: import("@strapi/types/dist/core").Strapi;
460
+ }) => {
461
+ createJob(): Promise<number>;
462
+ getJob(jobId: number): Promise<import("./services/ai-metadata-jobs").AIMetadataJob | null>;
463
+ updateJob(jobId: number, updates: Partial<Omit<import("./services/ai-metadata-jobs").AIMetadataJob, "id" | "createdAt">>): Promise<void>;
464
+ deleteJob(jobId: number): Promise<void>;
465
+ getLatestActiveJob(): Promise<import("./services/ai-metadata-jobs").AIMetadataJob | null>;
466
+ registerCron(): Promise<void>;
467
+ };
438
468
  };
439
469
  };
440
470
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOxC,wBAQG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../server/src/index.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOxC,wBAQG"}
@@ -0,0 +1,5 @@
1
+ import type { Model } from '@strapi/database';
2
+ declare const AI_METADATA_JOB_UID = "plugin::upload.ai-metadata-job";
3
+ declare const aiMetadataJob: Model;
4
+ export { aiMetadataJob, AI_METADATA_JOB_UID };
5
+ //# sourceMappingURL=ai-metadata-job.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-metadata-job.d.ts","sourceRoot":"","sources":["../../../../server/src/models/ai-metadata-job.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,QAAA,MAAM,mBAAmB,mCAAmC,CAAC;AAE7D,QAAA,MAAM,aAAa,EAAE,KAsBpB,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ aiMetadataJob: import("@strapi/database").Model;
3
+ };
4
+ export default _default;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/models/index.ts"],"names":[],"mappings":";;;AAEA,wBAEE"}
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAS1C;;GAEG;AACH,wBAAsB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,iBAmBjE"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAU1C;;GAEG;AACH,wBAAsB,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,iBAsBjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CA4NlB,CAAC"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAoQlB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Core } from '@strapi/types';
2
+ import { AIMetadataJob } from '../../../shared/contracts/ai-metadata-jobs';
3
+ export declare const createAIMetadataJobsService: ({ strapi }: {
4
+ strapi: Core.Strapi;
5
+ }) => {
6
+ createJob(): Promise<number>;
7
+ getJob(jobId: number): Promise<AIMetadataJob | null>;
8
+ updateJob(jobId: number, updates: Partial<Omit<AIMetadataJob, 'id' | 'createdAt'>>): Promise<void>;
9
+ deleteJob(jobId: number): Promise<void>;
10
+ getLatestActiveJob(): Promise<AIMetadataJob | null>;
11
+ registerCron(): Promise<void>;
12
+ };
13
+ export type { AIMetadataJob };
14
+ //# sourceMappingURL=ai-metadata-jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-metadata-jobs.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-metadata-jobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAG3E,eAAO,MAAM,2BAA2B,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;iBAC1D,QAAQ,MAAM,CAAC;kBAWd,MAAM,GAAG,QAAQ,aAAa,GAAG,IAAI,CAAC;qBAOjD,MAAM,WACJ,QAAQ,KAAK,aAAa,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GACxD,QAAQ,IAAI,CAAC;qBAOO,MAAM,GAAG,QAAQ,IAAI,CAAC;0BAMjB,QAAQ,aAAa,GAAG,IAAI,CAAC;;CA8BzD,CAAC;AAEH,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1,10 +1,33 @@
1
1
  import type { Core } from '@strapi/types';
2
- import { InputFile } from '../types';
2
+ import { File } from '../types';
3
3
  declare const createAIMetadataService: ({ strapi }: {
4
4
  strapi: Core.Strapi;
5
5
  }) => {
6
6
  isEnabled(): Promise<boolean>;
7
- processFiles(files: InputFile[]): Promise<Array<{
7
+ countImagesWithoutMetadata(): Promise<{
8
+ imagesWithoutMetadataCount: number;
9
+ totalImages: number;
10
+ }>;
11
+ /**
12
+ * Update files with AI-generated metadata
13
+ * Shared logic used by both upload flow and retroactive processing
14
+ */
15
+ updateFilesWithAIMetadata(files: File[], metadataResults: Array<{
16
+ altText: string;
17
+ caption: string;
18
+ } | null>, user: {
19
+ id: string | number;
20
+ }): Promise<void>;
21
+ /**
22
+ * Process existing files with job tracking for progress updates
23
+ */
24
+ processExistingFiles(jobId: number, user: {
25
+ id: string | number;
26
+ }): Promise<void>;
27
+ /**
28
+ * Processes provided files for AI metadata generation
29
+ */
30
+ processFiles(files: File[]): Promise<Array<{
8
31
  altText: string;
9
32
  caption: string;
10
33
  } | null>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ai-metadata.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,QAAA,MAAM,uBAAuB,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;;wBAyBvD,SAAS,EAAE,GACjB,QAAQ,MAAM;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CA+EjE,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
1
+ {"version":3,"file":"ai-metadata.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAa,IAAI,EAAE,MAAM,UAAU,CAAC;AAiB3C,QAAA,MAAM,uBAAuB,eAAgB;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;;;;;;IAuDhE;;;OAGG;qCAEM,IAAI,EAAE,mBACI,MAAM;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,QAC7D;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;IAoC/B;;OAEG;gCAC+B,MAAM,QAAQ;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,QAAQ,IAAI,CAAC;IAoDvF;;OAEG;wBACuB,IAAI,EAAE,GAAG,QAAQ,MAAM;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAqFjG,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
@@ -27,7 +27,7 @@ export declare const services: {
27
27
  id: string | number;
28
28
  } | undefined;
29
29
  } | undefined) => Promise<any[]>;
30
- updateFileInfo: (id: string | number, { name, alternativeText, caption, folder }: import("../types").FileInfo, opts?: {
30
+ updateFileInfo: (id: string | number, { name, alternativeText, caption, focalPoint, folder }: import("../types").FileInfo, opts?: {
31
31
  user?: {
32
32
  id: string | number;
33
33
  } | undefined;
@@ -156,10 +156,33 @@ export declare const services: {
156
156
  strapi: import("@strapi/types/dist/core").Strapi;
157
157
  }) => {
158
158
  isEnabled(): Promise<boolean>;
159
- processFiles(files: import("../types").InputFile[]): Promise<({
159
+ countImagesWithoutMetadata(): Promise<{
160
+ imagesWithoutMetadataCount: number;
161
+ totalImages: number;
162
+ }>;
163
+ updateFilesWithAIMetadata(files: import("../types").File[], metadataResults: ({
164
+ altText: string;
165
+ caption: string;
166
+ } | null)[], user: {
167
+ id: string | number;
168
+ }): Promise<void>;
169
+ processExistingFiles(jobId: number, user: {
170
+ id: string | number;
171
+ }): Promise<void>;
172
+ processFiles(files: import("../types").File[]): Promise<({
160
173
  altText: string;
161
174
  caption: string;
162
175
  } | null)[]>;
163
176
  };
177
+ aiMetadataJobs: ({ strapi }: {
178
+ strapi: import("@strapi/types/dist/core").Strapi;
179
+ }) => {
180
+ createJob(): Promise<number>;
181
+ getJob(jobId: number): Promise<import("./ai-metadata-jobs").AIMetadataJob | null>;
182
+ updateJob(jobId: number, updates: Partial<Omit<import("./ai-metadata-jobs").AIMetadataJob, "id" | "createdAt">>): Promise<void>;
183
+ deleteJob(jobId: number): Promise<void>;
184
+ getLatestActiveJob(): Promise<import("./ai-metadata-jobs").AIMetadataJob | null>;
185
+ registerCron(): Promise<void>;
186
+ };
164
187
  };
165
188
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYpB,CAAC"}
@@ -27,7 +27,7 @@ declare const _default: ({ strapi }: {
27
27
  data: Record<string, unknown>;
28
28
  files: InputFile[];
29
29
  }, opts?: CommonOptions) => Promise<any[]>;
30
- updateFileInfo: (id: ID, { name, alternativeText, caption, folder }: FileInfo, opts?: CommonOptions) => Promise<any>;
30
+ updateFileInfo: (id: ID, { name, alternativeText, caption, focalPoint, folder }: FileInfo, opts?: CommonOptions) => Promise<any>;
31
31
  replace: (id: ID, { data, file }: {
32
32
  data: {
33
33
  fileInfo: FileInfo;
@@ -1 +1 @@
1
- {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../server/src/services/upload.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,eAAe,CAAC;AAK/C,OAAO,KAAK,EAAU,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEzE,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;qCAgB0B;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;+CAsErB;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,aAChE,QAAQ,QAAQ,CAAC,UACpB;QACL,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,KACA,QAAQ,KAAK,cAAc,EAAE,WAAW,CAAC,CAAC;+BAiGxC;QACD,IAAI,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,EAAE,SAAS,EAAE,CAAC;KACpB,SACM,aAAa;yBAiHhB,EAAE,8CACsC,QAAQ,SAC7C,aAAa;kBAyBhB,EAAE,kBACU;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,QAAQ,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,SAC1D,aAAa;kBAkGK,EAAE;uBAgBE,GAAG,KAAQ,QAAQ,IAAI,EAAE,CAAC;uBAS1B,GAAG;;;;;;;;;mBAgBN,IAAI;;;;;;;yBAiCE,QAAQ;;;;;8BAoBT,iBAAiB;IAoBhD;;;OAGG;6BAjUgC,cAAc;;AAxNrD,wBA4hBE"}
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../../server/src/services/upload.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,eAAe,CAAC;AAK/C,OAAO,KAAK,EAAU,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAClF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEzE,KAAK,IAAI,GAAG;IACV,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1B,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,CAAC;qCAgB0B;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE;+CAsErB;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,aAChE,QAAQ,QAAQ,CAAC,UACpB;QACL,KAAK,CAAC,EAAE,EAAE,CAAC;QACX,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAC9B,KACA,QAAQ,KAAK,cAAc,EAAE,WAAW,CAAC,CAAC;+BAkGxC;QACD,IAAI,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,CAAC;QAC9B,KAAK,EAAE,SAAS,EAAE,CAAC;KACpB,SACM,aAAa;yBAiHhB,EAAE,0DACkD,QAAQ,SACzD,aAAa;kBA0BhB,EAAE,kBACU;QAAE,IAAI,EAAE;YAAE,QAAQ,EAAE,QAAQ,CAAA;SAAE,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,SAC1D,aAAa;kBAkGK,EAAE;uBAgBE,GAAG,KAAQ,QAAQ,IAAI,EAAE,CAAC;uBAS1B,GAAG;;;;;;;;;mBAgBN,IAAI;;;;;;;yBAiCE,QAAQ;;;;;8BAoBT,iBAAiB;IAoBhD;;;OAGG;6BAlUgC,cAAc;;AAzNrD,wBA8hBE"}
@@ -7,11 +7,16 @@ export type InputFile = FormidableFile & {
7
7
  tmpWorkingDirectory?: string;
8
8
  provider?: string;
9
9
  };
10
+ export interface FocalPoint {
11
+ x: number;
12
+ y: number;
13
+ }
10
14
  export interface File {
11
15
  id: number;
12
16
  name: string;
13
17
  alternativeText?: string | null;
14
18
  caption?: string | null;
19
+ focalPoint?: FocalPoint | null;
15
20
  width?: number;
16
21
  height?: number;
17
22
  formats?: Record<string, unknown>;
@@ -72,6 +77,7 @@ export type FileInfo = {
72
77
  name?: string | null;
73
78
  alternativeText?: string | null;
74
79
  caption?: string | null;
80
+ focalPoint?: FocalPoint | null;
75
81
  folder?: number;
76
82
  };
77
83
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../server/src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../server/src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Core } from '@strapi/types';
2
+ import { InputFile } from '../types';
3
+ /**
4
+ * Builds FormData from an array of input files by fetching each image
5
+ */
6
+ export declare function buildFormDataFromFiles(files: InputFile[], serverAbsoluteUrl: string, logger: Core.Strapi['log']): Promise<FormData>;
7
+ //# sourceMappingURL=images.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA0BrC;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,SAAS,EAAE,EAClB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,QAAQ,CAAC,CASnB"}
@@ -8,6 +8,7 @@ import type weeklyMetrics from '../services/weekly-metrics';
8
8
  import type metrics from '../services/metrics';
9
9
  import type extensions from '../services/extensions';
10
10
  import type { createAIMetadataService } from '../services/ai-metadata';
11
+ import type { createAIMetadataJobsService } from '../services/ai-metadata-jobs';
11
12
  type Services = {
12
13
  upload: ReturnType<typeof upload>;
13
14
  'image-manipulation': typeof imageManipulation;
@@ -19,6 +20,7 @@ type Services = {
19
20
  'api-upload-folder': typeof apiUploadFolder;
20
21
  extensions: typeof extensions;
21
22
  aiMetadata: ReturnType<typeof createAIMetadataService>;
23
+ aiMetadataJobs: ReturnType<typeof createAIMetadataJobsService>;
22
24
  };
23
25
  export declare const getService: <TName extends keyof Services>(name: TName) => Services[TName];
24
26
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvE,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;IAClC,oBAAoB,EAAE,OAAO,iBAAiB,CAAC;IAC/C,QAAQ,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;IACtC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,aAAa,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IAChD,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IACpC,mBAAmB,EAAE,OAAO,eAAe,CAAC;IAC5C,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;CACxD,CAAC;AAEF,eAAO,MAAM,UAAU,uCAAwC,KAAK,KAAG,QAAQ,CAAC,KAAK,CAEpF,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAEhF,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,UAAU,CAAC,OAAO,MAAM,CAAC,CAAC;IAClC,oBAAoB,EAAE,OAAO,iBAAiB,CAAC;IAC/C,QAAQ,EAAE,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;IACtC,MAAM,EAAE,OAAO,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,IAAI,CAAC;IAClB,aAAa,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IAChD,OAAO,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;IACpC,mBAAmB,EAAE,OAAO,eAAe,CAAC;IAC5C,UAAU,EAAE,OAAO,UAAU,CAAC;IAC9B,UAAU,EAAE,UAAU,CAAC,OAAO,uBAAuB,CAAC,CAAC;IACvD,cAAc,EAAE,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;CAChE,CAAC;AAEF,eAAO,MAAM,UAAU,uCAAwC,KAAK,KAAG,QAAQ,CAAC,KAAK,CAEpF,CAAC"}