@strapi/upload 5.55.1 → 5.56.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.
- package/dist/admin/hooks/useAIMetadataAvailability.js +14 -0
- package/dist/admin/hooks/useAIMetadataAvailability.js.map +1 -0
- package/dist/admin/hooks/useAIMetadataAvailability.mjs +12 -0
- package/dist/admin/hooks/useAIMetadataAvailability.mjs.map +1 -0
- package/dist/admin/hooks/useAIMetadataEnabled.js +7 -5
- package/dist/admin/hooks/useAIMetadataEnabled.js.map +1 -1
- package/dist/admin/hooks/useAIMetadataEnabled.mjs +7 -5
- package/dist/admin/hooks/useAIMetadataEnabled.mjs.map +1 -1
- package/dist/admin/hooks/useTracking.js +2 -2
- package/dist/admin/hooks/useTracking.js.map +1 -1
- package/dist/admin/hooks/useTracking.mjs +2 -2
- package/dist/admin/hooks/useTracking.mjs.map +1 -1
- package/dist/admin/legacy/hooks/useAIMetadataAvailability.js +14 -0
- package/dist/admin/legacy/hooks/useAIMetadataAvailability.js.map +1 -0
- package/dist/admin/legacy/hooks/useAIMetadataAvailability.mjs +12 -0
- package/dist/admin/legacy/hooks/useAIMetadataAvailability.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useAIMetadataEnabled.js +23 -0
- package/dist/admin/legacy/hooks/useAIMetadataEnabled.js.map +1 -0
- package/dist/admin/legacy/hooks/useAIMetadataEnabled.mjs +21 -0
- package/dist/admin/legacy/hooks/useAIMetadataEnabled.mjs.map +1 -0
- package/dist/admin/legacy/hooks/useTracking.js +2 -2
- package/dist/admin/legacy/hooks/useTracking.js.map +1 -1
- package/dist/admin/legacy/hooks/useTracking.mjs +2 -2
- package/dist/admin/legacy/hooks/useTracking.mjs.map +1 -1
- package/dist/admin/legacy/pages/App/MediaLibrary.js +4 -4
- package/dist/admin/legacy/pages/App/MediaLibrary.js.map +1 -1
- package/dist/admin/legacy/pages/App/MediaLibrary.mjs +4 -4
- package/dist/admin/legacy/pages/App/MediaLibrary.mjs.map +1 -1
- package/dist/admin/pages/Assets/components/DeleteItemsDialog.js +4 -2
- package/dist/admin/pages/Assets/components/DeleteItemsDialog.js.map +1 -1
- package/dist/admin/pages/Assets/components/DeleteItemsDialog.mjs +4 -2
- package/dist/admin/pages/Assets/components/DeleteItemsDialog.mjs.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.js +2 -2
- package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs +2 -2
- package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
- package/dist/admin/services/api.js.map +1 -1
- package/dist/admin/services/api.mjs.map +1 -1
- package/dist/admin/src/hooks/useAIMetadataAvailability.d.ts +5 -0
- package/dist/admin/src/hooks/useAIMetadataEnabled.d.ts +5 -3
- package/dist/admin/src/legacy/components/EditAssetDialog/PreviewBox/PreviewComponents.d.ts +2 -2
- package/dist/admin/src/legacy/hooks/useAIMetadataAvailability.d.ts +5 -0
- package/dist/admin/src/legacy/hooks/useAIMetadataEnabled.d.ts +12 -0
- package/dist/admin/src/legacy/hooks/useSettings.d.ts +1 -0
- package/dist/admin/src/pages/Assets/components/ActionsMenuContent.d.ts +2 -2
- package/dist/admin/translations/en.json.js +1 -0
- package/dist/admin/translations/en.json.js.map +1 -1
- package/dist/admin/translations/en.json.mjs +1 -0
- package/dist/admin/translations/en.json.mjs.map +1 -1
- package/dist/server/bootstrap.js +7 -0
- package/dist/server/bootstrap.js.map +1 -1
- package/dist/server/bootstrap.mjs +7 -0
- package/dist/server/bootstrap.mjs.map +1 -1
- package/dist/server/controllers/admin-folder-file.js +51 -4
- package/dist/server/controllers/admin-folder-file.js.map +1 -1
- package/dist/server/controllers/admin-folder-file.mjs +52 -5
- package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
- package/dist/server/controllers/admin-settings.js +2 -1
- package/dist/server/controllers/admin-settings.js.map +1 -1
- package/dist/server/controllers/admin-settings.mjs +2 -1
- package/dist/server/controllers/admin-settings.mjs.map +1 -1
- package/dist/server/errors.js +12 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/errors.mjs +10 -0
- package/dist/server/errors.mjs.map +1 -0
- package/dist/server/services/ai-metadata-provider.js +83 -0
- package/dist/server/services/ai-metadata-provider.js.map +1 -0
- package/dist/server/services/ai-metadata-provider.mjs +61 -0
- package/dist/server/services/ai-metadata-provider.mjs.map +1 -0
- package/dist/server/services/ai-metadata-strapi-managed.js +48 -0
- package/dist/server/services/ai-metadata-strapi-managed.js.map +1 -0
- package/dist/server/services/ai-metadata-strapi-managed.mjs +46 -0
- package/dist/server/services/ai-metadata-strapi-managed.mjs.map +1 -0
- package/dist/server/services/ai-metadata.js +5 -58
- package/dist/server/services/ai-metadata.js.map +1 -1
- package/dist/server/services/ai-metadata.mjs +6 -39
- package/dist/server/services/ai-metadata.mjs.map +1 -1
- package/dist/server/services/folder.js +4 -1
- package/dist/server/services/folder.js.map +1 -1
- package/dist/server/services/folder.mjs +4 -1
- package/dist/server/services/folder.mjs.map +1 -1
- package/dist/server/services/index.js +3 -1
- package/dist/server/services/index.js.map +1 -1
- package/dist/server/services/index.mjs +3 -1
- package/dist/server/services/index.mjs.map +1 -1
- package/dist/server/services/metrics.js +1 -1
- package/dist/server/services/metrics.js.map +1 -1
- package/dist/server/services/metrics.mjs +1 -1
- package/dist/server/services/metrics.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-folder-file.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-settings.d.ts.map +1 -1
- package/dist/server/src/errors.d.ts +6 -0
- package/dist/server/src/errors.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +6 -1
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/mcp/ambient-instance.d.ts +3 -1
- package/dist/server/src/mcp/ambient-instance.d.ts.map +1 -1
- package/dist/server/src/services/ai-metadata-provider.d.ts +26 -0
- package/dist/server/src/services/ai-metadata-provider.d.ts.map +1 -0
- package/dist/server/src/services/ai-metadata-strapi-managed.d.ts +7 -0
- package/dist/server/src/services/ai-metadata-strapi-managed.d.ts.map +1 -0
- package/dist/server/src/services/ai-metadata.d.ts.map +1 -1
- package/dist/server/src/services/folder.d.ts +5 -2
- package/dist/server/src/services/folder.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +6 -1
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/utils/images.d.ts +2 -2
- package/dist/server/src/utils/images.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/utils/images.js +6 -7
- package/dist/server/utils/images.js.map +1 -1
- package/dist/server/utils/images.mjs +6 -7
- package/dist/server/utils/images.mjs.map +1 -1
- package/dist/server/utils/index.js.map +1 -1
- package/dist/server/utils/index.mjs.map +1 -1
- package/dist/shared/contracts/settings.d.ts +6 -0
- package/package.json +11 -11
- package/dist/admin/legacy/hooks/useAiAvailability.js +0 -22
- package/dist/admin/legacy/hooks/useAiAvailability.js.map +0 -1
- package/dist/admin/legacy/hooks/useAiAvailability.mjs +0 -20
- package/dist/admin/legacy/hooks/useAiAvailability.mjs.map +0 -1
- package/dist/admin/src/legacy/hooks/useAiAvailability.d.ts +0 -4
|
@@ -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;;;;;;;;;;;;;;;;;;gCAKxC,CAAC;oCAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAW00G,CAAC;mBAAe,CAAC;qBAAqB,CAAC;oBAAoB,CAAC;mCAAmC,CAAC
|
|
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;;;;;;;;;;;;;;;;;;gCAKxC,CAAC;oCAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAW00G,CAAC;mBAAe,CAAC;qBAAqB,CAAC;oBAAoB,CAAC;mCAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAA9f,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AATl9F,wBAQG"}
|
|
@@ -41,7 +41,9 @@ export declare const getFolderService: (strapi: Core.Strapi) => {
|
|
|
41
41
|
};
|
|
42
42
|
}) => Promise<any>;
|
|
43
43
|
exists: (params?: {}) => Promise<boolean>;
|
|
44
|
-
deleteByIds: (ids?: number[]
|
|
44
|
+
deleteByIds: (ids?: number[], { validateFiles }?: {
|
|
45
|
+
validateFiles?: (files: import("../types").File[]) => Promise<void>;
|
|
46
|
+
}) => Promise<{
|
|
45
47
|
folders: any[];
|
|
46
48
|
totalFolderNumber: number;
|
|
47
49
|
totalFileNumber: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambient-instance.d.ts","sourceRoot":"","sources":["../../../../server/src/mcp/ambient-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,IAAI,CAAC,MAAM,SASxD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,IAAI,CAAC,MAAM
|
|
1
|
+
{"version":3,"file":"ambient-instance.d.ts","sourceRoot":"","sources":["../../../../server/src/mcp/ambient-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,qBAAqB,GAAI,QAAQ,IAAI,CAAC,MAAM,SASxD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,IAAI,CAAC,MAAM;;;;;;;;;;;;;;;;cACitB,CAAC;;;;;;;;;;;;;CADjrB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Core, Modules } from '@strapi/types';
|
|
2
|
+
export type GenerateMetadataParams = {
|
|
3
|
+
images: Blob[];
|
|
4
|
+
};
|
|
5
|
+
export type GenerateMetadataResult = {
|
|
6
|
+
results: Array<{
|
|
7
|
+
altText: string;
|
|
8
|
+
caption: string;
|
|
9
|
+
}>;
|
|
10
|
+
};
|
|
11
|
+
export type AiMetadataProvider = Modules.AI.AiProvider & {
|
|
12
|
+
generateMetadata: (params: GenerateMetadataParams) => Promise<GenerateMetadataResult>;
|
|
13
|
+
};
|
|
14
|
+
export interface AiMetadataProviderService {
|
|
15
|
+
hasProvider(): boolean;
|
|
16
|
+
registerProvider(params: {
|
|
17
|
+
provider: AiMetadataProvider;
|
|
18
|
+
}): void;
|
|
19
|
+
registerStrapiManagedProvider(): void;
|
|
20
|
+
generateMetadata(params: GenerateMetadataParams): Promise<GenerateMetadataResult>;
|
|
21
|
+
}
|
|
22
|
+
declare const createAIMetadataProviderService: ({ strapi, }: {
|
|
23
|
+
strapi: Core.Strapi;
|
|
24
|
+
}) => AiMetadataProviderService;
|
|
25
|
+
export { createAIMetadataProviderService };
|
|
26
|
+
//# sourceMappingURL=ai-metadata-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-metadata-provider.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-metadata-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAKnD,MAAM,MAAM,sBAAsB,GAAG;IAAE,MAAM,EAAE,IAAI,EAAE,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,EAAE,CAAC,UAAU,GAAG;IACvD,gBAAgB,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACvF,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,WAAW,IAAI,OAAO,CAAC;IACvB,gBAAgB,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,kBAAkB,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,6BAA6B,IAAI,IAAI,CAAC;IACtC,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;CACnF;AAaD,QAAA,MAAM,+BAA+B,GAAI,aAEtC;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB,KAAG,yBAoEH,CAAC;AAEF,OAAO,EAAE,+BAA+B,EAAE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Core } from '@strapi/types';
|
|
2
|
+
import type { AiMetadataProvider } from './ai-metadata-provider';
|
|
3
|
+
declare const createStrapiManagedAiMetadataProvider: ({ strapi, }: {
|
|
4
|
+
strapi: Core.Strapi;
|
|
5
|
+
}) => AiMetadataProvider;
|
|
6
|
+
export { createStrapiManagedAiMetadataProvider };
|
|
7
|
+
//# sourceMappingURL=ai-metadata-strapi-managed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-metadata-strapi-managed.d.ts","sourceRoot":"","sources":["../../../../server/src/services/ai-metadata-strapi-managed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,QAAA,MAAM,qCAAqC,GAAI,aAE5C;IACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;CACrB,KAAG,kBAkDH,CAAC;AAEF,OAAO,EAAE,qCAAqC,EAAE,CAAC"}
|
|
@@ -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;
|
|
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;AAC1C,OAAO,EAAa,IAAI,EAAE,MAAM,UAAU,CAAC;AAQ3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,UAAU,CAAC;AAoBjE,QAAA,MAAM,uBAAuB,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;;;;;;IAyChE;;;OAGG;qCAEM,IAAI,EAAE,mBACI,KAAK,CAAC;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,OAAO,CAAC,IAAI,CAAC;IAoDvF;;;;;;;;;;;;;OAaG;8BAEQ,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,QACzB;QAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAC5B,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAqElC;;OAEG;wBACuB,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CAiDjG,CAAC;AAEF,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type { Folder } from '../types';
|
|
1
|
+
import type { File, Folder } from '../types';
|
|
2
2
|
type FolderNode = Partial<Folder> & {
|
|
3
3
|
children: FolderNode[];
|
|
4
4
|
};
|
|
5
|
+
type DeleteByIdsOptions = {
|
|
6
|
+
validateFiles?: (files: File[]) => Promise<void>;
|
|
7
|
+
};
|
|
5
8
|
declare const _default: {
|
|
6
9
|
create: (folderData: Pick<Folder, "name" | "parent">, opts?: {
|
|
7
10
|
user: {
|
|
@@ -9,7 +12,7 @@ declare const _default: {
|
|
|
9
12
|
};
|
|
10
13
|
}) => Promise<any>;
|
|
11
14
|
exists: (params?: {}) => Promise<boolean>;
|
|
12
|
-
deleteByIds: (ids?: number[]) => Promise<{
|
|
15
|
+
deleteByIds: (ids?: number[], { validateFiles }?: DeleteByIdsOptions) => Promise<{
|
|
13
16
|
folders: any[];
|
|
14
17
|
totalFolderNumber: number;
|
|
15
18
|
totalFileNumber: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder.d.ts","sourceRoot":"","sources":["../../../../server/src/services/folder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"folder.d.ts","sourceRoot":"","sources":["../../../../server/src/services/folder.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQ7C,KAAK,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG;IAClC,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IACxB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD,CAAC;;yBA0BY,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,SACpC;QAAE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE;;wBAuBV,MAAM,EAAE,sBAA0B,kBAAkB;;;;;iBAmD9E,MAAM,qBAIP;QACD,IAAI,EAAE,MAAM,CAAC;QACb;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,YACS;QAAE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE;+BA/GL,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;;;;;;AA6R9D,wBAOE"}
|
|
@@ -88,7 +88,9 @@ export declare const services: {
|
|
|
88
88
|
};
|
|
89
89
|
}) => Promise<any>;
|
|
90
90
|
exists: (params?: {}) => Promise<boolean>;
|
|
91
|
-
deleteByIds: (ids?: number[]
|
|
91
|
+
deleteByIds: (ids?: number[], { validateFiles }?: {
|
|
92
|
+
validateFiles?: (files: import("../types").File[]) => Promise<void>;
|
|
93
|
+
}) => Promise<{
|
|
92
94
|
folders: any[];
|
|
93
95
|
totalFolderNumber: number;
|
|
94
96
|
totalFileNumber: number;
|
|
@@ -192,5 +194,8 @@ export declare const services: {
|
|
|
192
194
|
deleteJob(jobId: number): Promise<void>;
|
|
193
195
|
getLatestActiveJob(): Promise<import("./ai-metadata-jobs").AIMetadataJob | null>;
|
|
194
196
|
};
|
|
197
|
+
aiMetadataProvider: ({ strapi, }: {
|
|
198
|
+
strapi: import("@strapi/types/dist/core/strapi.js").Strapi;
|
|
199
|
+
}) => import("./ai-metadata-provider").AiMetadataProviderService;
|
|
195
200
|
};
|
|
196
201
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;iBAc+7F,CAAC;eAAe,CAAC;iBAAqB,CAAC;gBAAoB,CAAC;+BAAmC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAA9f,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CADtjF,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Core } from '@strapi/types';
|
|
2
2
|
import { InputFile } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Fetches every input file as a Blob, in order. Sequential on purpose (same as before).
|
|
5
5
|
*/
|
|
6
|
-
export declare function
|
|
6
|
+
export declare function fetchImagesAsBlobs(files: InputFile[], serverAbsoluteUrl: string, logger: Core.Strapi['log']): Promise<Blob[]>;
|
|
7
7
|
//# sourceMappingURL=images.d.ts.map
|
|
@@ -1 +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,
|
|
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,kBAAkB,CACtC,KAAK,EAAE,SAAS,EAAE,EAClB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GACzB,OAAO,CAAC,IAAI,EAAE,CAAC,CAQjB"}
|
|
@@ -10,6 +10,7 @@ import type metrics from '../services/metrics';
|
|
|
10
10
|
import type extensions from '../services/extensions';
|
|
11
11
|
import type { createAIMetadataService } from '../services/ai-metadata';
|
|
12
12
|
import type { createAIMetadataJobsService } from '../services/ai-metadata-jobs';
|
|
13
|
+
import type { createAIMetadataProviderService } from '../services/ai-metadata-provider';
|
|
13
14
|
type Services = {
|
|
14
15
|
upload: ReturnType<typeof upload>;
|
|
15
16
|
'image-manipulation': typeof imageManipulation;
|
|
@@ -22,6 +23,7 @@ type Services = {
|
|
|
22
23
|
extensions: typeof extensions;
|
|
23
24
|
aiMetadata: ReturnType<typeof createAIMetadataService>;
|
|
24
25
|
aiMetadataJobs: ReturnType<typeof createAIMetadataJobsService>;
|
|
26
|
+
aiMetadataProvider: ReturnType<typeof createAIMetadataProviderService>;
|
|
25
27
|
};
|
|
26
28
|
export declare const getService: <TName extends keyof Services>(name: TName, strapiInstance?: Core.Strapi) => Services[TName];
|
|
27
29
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,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;AAChF,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAExF,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;IAC/D,kBAAkB,EAAE,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,MAAM,QAAQ,EACrD,MAAM,KAAK,EACX,iBAAgB,IAAI,CAAC,MAAe,KACnC,QAAQ,CAAC,KAAK,CAEhB,CAAC"}
|
|
@@ -21,15 +21,14 @@
|
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
25
|
-
*/ async function
|
|
26
|
-
const
|
|
24
|
+
* Fetches every input file as a Blob, in order. Sequential on purpose (same as before).
|
|
25
|
+
*/ async function fetchImagesAsBlobs(files, serverAbsoluteUrl, logger) {
|
|
26
|
+
const blobs = [];
|
|
27
27
|
for (const file of files){
|
|
28
|
-
|
|
29
|
-
formData.append('files', blob);
|
|
28
|
+
blobs.push(await fetchImageAsBlob(file, serverAbsoluteUrl, logger));
|
|
30
29
|
}
|
|
31
|
-
return
|
|
30
|
+
return blobs;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
|
-
exports.
|
|
33
|
+
exports.fetchImagesAsBlobs = fetchImagesAsBlobs;
|
|
35
34
|
//# sourceMappingURL=images.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.js","sources":["../../../server/src/utils/images.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { InputFile } from '../types';\n\n/**\n * Fetches an image from a URL and returns it as a Blob\n */\nasync function fetchImageAsBlob(\n file: InputFile,\n serverAbsoluteUrl: string,\n logger: Core.Strapi['log']\n): Promise<Blob> {\n const fullUrl = file.provider === 'local' ? serverAbsoluteUrl + file.filepath : file.filepath;\n\n const resp = await fetch(fullUrl);\n if (!resp.ok) {\n logger.error('Failed to fetch image', {\n fullUrl,\n status: resp.status,\n statusText: resp.statusText,\n });\n throw new Error(`Failed to fetch image from URL: ${fullUrl} (${resp.status})`);\n }\n\n const arrayBuffer = await resp.arrayBuffer();\n return new Blob([arrayBuffer], { type: file.mimetype || undefined });\n}\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"images.js","sources":["../../../server/src/utils/images.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { InputFile } from '../types';\n\n/**\n * Fetches an image from a URL and returns it as a Blob\n */\nasync function fetchImageAsBlob(\n file: InputFile,\n serverAbsoluteUrl: string,\n logger: Core.Strapi['log']\n): Promise<Blob> {\n const fullUrl = file.provider === 'local' ? serverAbsoluteUrl + file.filepath : file.filepath;\n\n const resp = await fetch(fullUrl);\n if (!resp.ok) {\n logger.error('Failed to fetch image', {\n fullUrl,\n status: resp.status,\n statusText: resp.statusText,\n });\n throw new Error(`Failed to fetch image from URL: ${fullUrl} (${resp.status})`);\n }\n\n const arrayBuffer = await resp.arrayBuffer();\n return new Blob([arrayBuffer], { type: file.mimetype || undefined });\n}\n\n/**\n * Fetches every input file as a Blob, in order. Sequential on purpose (same as before).\n */\nexport async function fetchImagesAsBlobs(\n files: InputFile[],\n serverAbsoluteUrl: string,\n logger: Core.Strapi['log']\n): Promise<Blob[]> {\n const blobs: Blob[] = [];\n\n for (const file of files) {\n blobs.push(await fetchImageAsBlob(file, serverAbsoluteUrl, logger));\n }\n\n return blobs;\n}\n"],"names":["fetchImageAsBlob","file","serverAbsoluteUrl","logger","fullUrl","provider","filepath","resp","fetch","ok","error","status","statusText","Error","arrayBuffer","Blob","type","mimetype","undefined","fetchImagesAsBlobs","files","blobs","push"],"mappings":";;AAGA;;AAEC,IACD,eAAeA,gBAAAA,CACbC,IAAe,EACfC,iBAAyB,EACzBC,MAA0B,EAAA;IAE1B,MAAMC,OAAAA,GAAUH,IAAAA,CAAKI,QAAQ,KAAK,OAAA,GAAUH,oBAAoBD,IAAAA,CAAKK,QAAQ,GAAGL,IAAAA,CAAKK,QAAQ;IAE7F,MAAMC,IAAAA,GAAO,MAAMC,KAAAA,CAAMJ,OAAAA,CAAAA;IACzB,IAAI,CAACG,IAAAA,CAAKE,EAAE,EAAE;QACZN,MAAAA,CAAOO,KAAK,CAAC,uBAAA,EAAyB;AACpCN,YAAAA,OAAAA;AACAO,YAAAA,MAAAA,EAAQJ,KAAKI,MAAM;AACnBC,YAAAA,UAAAA,EAAYL,KAAKK;AACnB,SAAA,CAAA;AACA,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,gCAAgC,EAAET,OAAAA,CAAQ,EAAE,EAAEG,IAAAA,CAAKI,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/E,IAAA;IAEA,MAAMG,WAAAA,GAAc,MAAMP,IAAAA,CAAKO,WAAW,EAAA;AAC1C,IAAA,OAAO,IAAIC,IAAAA,CAAK;AAACD,QAAAA;KAAY,EAAE;QAAEE,IAAAA,EAAMf,IAAAA,CAAKgB,QAAQ,IAAIC;AAAU,KAAA,CAAA;AACpE;AAEA;;AAEC,IACM,eAAeC,kBAAAA,CACpBC,KAAkB,EAClBlB,iBAAyB,EACzBC,MAA0B,EAAA;AAE1B,IAAA,MAAMkB,QAAgB,EAAE;IAExB,KAAK,MAAMpB,QAAQmB,KAAAA,CAAO;AACxBC,QAAAA,KAAAA,CAAMC,IAAI,CAAC,MAAMtB,gBAAAA,CAAiBC,MAAMC,iBAAAA,EAAmBC,MAAAA,CAAAA,CAAAA;AAC7D,IAAA;IAEA,OAAOkB,KAAAA;AACT;;;;"}
|
|
@@ -19,15 +19,14 @@
|
|
|
19
19
|
});
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
*
|
|
23
|
-
*/ async function
|
|
24
|
-
const
|
|
22
|
+
* Fetches every input file as a Blob, in order. Sequential on purpose (same as before).
|
|
23
|
+
*/ async function fetchImagesAsBlobs(files, serverAbsoluteUrl, logger) {
|
|
24
|
+
const blobs = [];
|
|
25
25
|
for (const file of files){
|
|
26
|
-
|
|
27
|
-
formData.append('files', blob);
|
|
26
|
+
blobs.push(await fetchImageAsBlob(file, serverAbsoluteUrl, logger));
|
|
28
27
|
}
|
|
29
|
-
return
|
|
28
|
+
return blobs;
|
|
30
29
|
}
|
|
31
30
|
|
|
32
|
-
export {
|
|
31
|
+
export { fetchImagesAsBlobs };
|
|
33
32
|
//# sourceMappingURL=images.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"images.mjs","sources":["../../../server/src/utils/images.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { InputFile } from '../types';\n\n/**\n * Fetches an image from a URL and returns it as a Blob\n */\nasync function fetchImageAsBlob(\n file: InputFile,\n serverAbsoluteUrl: string,\n logger: Core.Strapi['log']\n): Promise<Blob> {\n const fullUrl = file.provider === 'local' ? serverAbsoluteUrl + file.filepath : file.filepath;\n\n const resp = await fetch(fullUrl);\n if (!resp.ok) {\n logger.error('Failed to fetch image', {\n fullUrl,\n status: resp.status,\n statusText: resp.statusText,\n });\n throw new Error(`Failed to fetch image from URL: ${fullUrl} (${resp.status})`);\n }\n\n const arrayBuffer = await resp.arrayBuffer();\n return new Blob([arrayBuffer], { type: file.mimetype || undefined });\n}\n\n/**\n *
|
|
1
|
+
{"version":3,"file":"images.mjs","sources":["../../../server/src/utils/images.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { InputFile } from '../types';\n\n/**\n * Fetches an image from a URL and returns it as a Blob\n */\nasync function fetchImageAsBlob(\n file: InputFile,\n serverAbsoluteUrl: string,\n logger: Core.Strapi['log']\n): Promise<Blob> {\n const fullUrl = file.provider === 'local' ? serverAbsoluteUrl + file.filepath : file.filepath;\n\n const resp = await fetch(fullUrl);\n if (!resp.ok) {\n logger.error('Failed to fetch image', {\n fullUrl,\n status: resp.status,\n statusText: resp.statusText,\n });\n throw new Error(`Failed to fetch image from URL: ${fullUrl} (${resp.status})`);\n }\n\n const arrayBuffer = await resp.arrayBuffer();\n return new Blob([arrayBuffer], { type: file.mimetype || undefined });\n}\n\n/**\n * Fetches every input file as a Blob, in order. Sequential on purpose (same as before).\n */\nexport async function fetchImagesAsBlobs(\n files: InputFile[],\n serverAbsoluteUrl: string,\n logger: Core.Strapi['log']\n): Promise<Blob[]> {\n const blobs: Blob[] = [];\n\n for (const file of files) {\n blobs.push(await fetchImageAsBlob(file, serverAbsoluteUrl, logger));\n }\n\n return blobs;\n}\n"],"names":["fetchImageAsBlob","file","serverAbsoluteUrl","logger","fullUrl","provider","filepath","resp","fetch","ok","error","status","statusText","Error","arrayBuffer","Blob","type","mimetype","undefined","fetchImagesAsBlobs","files","blobs","push"],"mappings":"AAGA;;AAEC,IACD,eAAeA,gBAAAA,CACbC,IAAe,EACfC,iBAAyB,EACzBC,MAA0B,EAAA;IAE1B,MAAMC,OAAAA,GAAUH,IAAAA,CAAKI,QAAQ,KAAK,OAAA,GAAUH,oBAAoBD,IAAAA,CAAKK,QAAQ,GAAGL,IAAAA,CAAKK,QAAQ;IAE7F,MAAMC,IAAAA,GAAO,MAAMC,KAAAA,CAAMJ,OAAAA,CAAAA;IACzB,IAAI,CAACG,IAAAA,CAAKE,EAAE,EAAE;QACZN,MAAAA,CAAOO,KAAK,CAAC,uBAAA,EAAyB;AACpCN,YAAAA,OAAAA;AACAO,YAAAA,MAAAA,EAAQJ,KAAKI,MAAM;AACnBC,YAAAA,UAAAA,EAAYL,KAAKK;AACnB,SAAA,CAAA;AACA,QAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,gCAAgC,EAAET,OAAAA,CAAQ,EAAE,EAAEG,IAAAA,CAAKI,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/E,IAAA;IAEA,MAAMG,WAAAA,GAAc,MAAMP,IAAAA,CAAKO,WAAW,EAAA;AAC1C,IAAA,OAAO,IAAIC,IAAAA,CAAK;AAACD,QAAAA;KAAY,EAAE;QAAEE,IAAAA,EAAMf,IAAAA,CAAKgB,QAAQ,IAAIC;AAAU,KAAA,CAAA;AACpE;AAEA;;AAEC,IACM,eAAeC,kBAAAA,CACpBC,KAAkB,EAClBlB,iBAAyB,EACzBC,MAA0B,EAAA;AAE1B,IAAA,MAAMkB,QAAgB,EAAE;IAExB,KAAK,MAAMpB,QAAQmB,KAAAA,CAAO;AACxBC,QAAAA,KAAAA,CAAMC,IAAI,CAAC,MAAMtB,gBAAAA,CAAiBC,MAAMC,iBAAAA,EAAmBC,MAAAA,CAAAA,CAAAA;AAC7D,IAAA;IAEA,OAAOkB,KAAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type upload from '../services/upload';\nimport type imageManipulation from '../services/image-manipulation';\nimport type apiUploadFolder from '../services/api-upload-folder';\nimport type provider from '../services/provider';\nimport type folder from '../services/folder';\nimport type file from '../services/file';\nimport type weeklyMetrics from '../services/weekly-metrics';\nimport type metrics from '../services/metrics';\nimport type extensions from '../services/extensions';\nimport type { createAIMetadataService } from '../services/ai-metadata';\nimport type { createAIMetadataJobsService } from '../services/ai-metadata-jobs';\n\ntype Services = {\n upload: ReturnType<typeof upload>;\n 'image-manipulation': typeof imageManipulation;\n provider: ReturnType<typeof provider>;\n folder: typeof folder;\n file: typeof file;\n weeklyMetrics: ReturnType<typeof weeklyMetrics>;\n metrics: ReturnType<typeof metrics>;\n 'api-upload-folder': typeof apiUploadFolder;\n extensions: typeof extensions;\n aiMetadata: ReturnType<typeof createAIMetadataService>;\n aiMetadataJobs: ReturnType<typeof createAIMetadataJobsService>;\n};\n\nexport const getService = <TName extends keyof Services>(\n name: TName,\n strapiInstance: Core.Strapi = strapi\n): Services[TName] => {\n return strapiInstance.plugin('upload').service<Services[TName]>(name);\n};\n"],"names":["getService","name","strapiInstance","strapi","plugin","service"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type upload from '../services/upload';\nimport type imageManipulation from '../services/image-manipulation';\nimport type apiUploadFolder from '../services/api-upload-folder';\nimport type provider from '../services/provider';\nimport type folder from '../services/folder';\nimport type file from '../services/file';\nimport type weeklyMetrics from '../services/weekly-metrics';\nimport type metrics from '../services/metrics';\nimport type extensions from '../services/extensions';\nimport type { createAIMetadataService } from '../services/ai-metadata';\nimport type { createAIMetadataJobsService } from '../services/ai-metadata-jobs';\nimport type { createAIMetadataProviderService } from '../services/ai-metadata-provider';\n\ntype Services = {\n upload: ReturnType<typeof upload>;\n 'image-manipulation': typeof imageManipulation;\n provider: ReturnType<typeof provider>;\n folder: typeof folder;\n file: typeof file;\n weeklyMetrics: ReturnType<typeof weeklyMetrics>;\n metrics: ReturnType<typeof metrics>;\n 'api-upload-folder': typeof apiUploadFolder;\n extensions: typeof extensions;\n aiMetadata: ReturnType<typeof createAIMetadataService>;\n aiMetadataJobs: ReturnType<typeof createAIMetadataJobsService>;\n aiMetadataProvider: ReturnType<typeof createAIMetadataProviderService>;\n};\n\nexport const getService = <TName extends keyof Services>(\n name: TName,\n strapiInstance: Core.Strapi = strapi\n): Services[TName] => {\n return strapiInstance.plugin('upload').service<Services[TName]>(name);\n};\n"],"names":["getService","name","strapiInstance","strapi","plugin","service"],"mappings":";;AA8BO,MAAMA,UAAAA,GAAa,CACxBC,IAAAA,EACAC,iBAA8BC,MAAM,GAAA;AAEpC,IAAA,OAAOD,cAAAA,CAAeE,MAAM,CAAC,QAAA,CAAA,CAAUC,OAAO,CAAkBJ,IAAAA,CAAAA;AAClE;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type upload from '../services/upload';\nimport type imageManipulation from '../services/image-manipulation';\nimport type apiUploadFolder from '../services/api-upload-folder';\nimport type provider from '../services/provider';\nimport type folder from '../services/folder';\nimport type file from '../services/file';\nimport type weeklyMetrics from '../services/weekly-metrics';\nimport type metrics from '../services/metrics';\nimport type extensions from '../services/extensions';\nimport type { createAIMetadataService } from '../services/ai-metadata';\nimport type { createAIMetadataJobsService } from '../services/ai-metadata-jobs';\n\ntype Services = {\n upload: ReturnType<typeof upload>;\n 'image-manipulation': typeof imageManipulation;\n provider: ReturnType<typeof provider>;\n folder: typeof folder;\n file: typeof file;\n weeklyMetrics: ReturnType<typeof weeklyMetrics>;\n metrics: ReturnType<typeof metrics>;\n 'api-upload-folder': typeof apiUploadFolder;\n extensions: typeof extensions;\n aiMetadata: ReturnType<typeof createAIMetadataService>;\n aiMetadataJobs: ReturnType<typeof createAIMetadataJobsService>;\n};\n\nexport const getService = <TName extends keyof Services>(\n name: TName,\n strapiInstance: Core.Strapi = strapi\n): Services[TName] => {\n return strapiInstance.plugin('upload').service<Services[TName]>(name);\n};\n"],"names":["getService","name","strapiInstance","strapi","plugin","service"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../server/src/utils/index.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type upload from '../services/upload';\nimport type imageManipulation from '../services/image-manipulation';\nimport type apiUploadFolder from '../services/api-upload-folder';\nimport type provider from '../services/provider';\nimport type folder from '../services/folder';\nimport type file from '../services/file';\nimport type weeklyMetrics from '../services/weekly-metrics';\nimport type metrics from '../services/metrics';\nimport type extensions from '../services/extensions';\nimport type { createAIMetadataService } from '../services/ai-metadata';\nimport type { createAIMetadataJobsService } from '../services/ai-metadata-jobs';\nimport type { createAIMetadataProviderService } from '../services/ai-metadata-provider';\n\ntype Services = {\n upload: ReturnType<typeof upload>;\n 'image-manipulation': typeof imageManipulation;\n provider: ReturnType<typeof provider>;\n folder: typeof folder;\n file: typeof file;\n weeklyMetrics: ReturnType<typeof weeklyMetrics>;\n metrics: ReturnType<typeof metrics>;\n 'api-upload-folder': typeof apiUploadFolder;\n extensions: typeof extensions;\n aiMetadata: ReturnType<typeof createAIMetadataService>;\n aiMetadataJobs: ReturnType<typeof createAIMetadataJobsService>;\n aiMetadataProvider: ReturnType<typeof createAIMetadataProviderService>;\n};\n\nexport const getService = <TName extends keyof Services>(\n name: TName,\n strapiInstance: Core.Strapi = strapi\n): Services[TName] => {\n return strapiInstance.plugin('upload').service<Services[TName]>(name);\n};\n"],"names":["getService","name","strapiInstance","strapi","plugin","service"],"mappings":"AA8BO,MAAMA,UAAAA,GAAa,CACxBC,IAAAA,EACAC,iBAA8BC,MAAM,GAAA;AAEpC,IAAA,OAAOD,cAAAA,CAAeE,MAAM,CAAC,QAAA,CAAA,CAAUC,OAAO,CAAkBJ,IAAAA,CAAAA;AAClE;;;;"}
|
|
@@ -18,6 +18,12 @@ export interface Settings {
|
|
|
18
18
|
* ignores it on updates.
|
|
19
19
|
*/
|
|
20
20
|
concurrentUploadRequests?: number;
|
|
21
|
+
/**
|
|
22
|
+
* Read-only echo: whether an AI metadata provider is registered (Strapi-managed or custom).
|
|
23
|
+
* Not part of the stored settings; the server appends it to GET responses and ignores it
|
|
24
|
+
* on updates.
|
|
25
|
+
*/
|
|
26
|
+
aiMetadataAvailable?: boolean;
|
|
21
27
|
};
|
|
22
28
|
}
|
|
23
29
|
export type SettingsData = Settings['data'];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/upload",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.56.0",
|
|
4
4
|
"description": "Makes it easy to upload images and files to your Strapi Application.",
|
|
5
5
|
"homepage": "https://strapi.io",
|
|
6
6
|
"bugs": {
|
|
@@ -75,11 +75,11 @@
|
|
|
75
75
|
"@radix-ui/react-dialog": "1.0.5",
|
|
76
76
|
"@radix-ui/react-toggle-group": "1.1.11",
|
|
77
77
|
"@reduxjs/toolkit": "1.9.7",
|
|
78
|
-
"@strapi/database": "5.
|
|
78
|
+
"@strapi/database": "5.56.0",
|
|
79
79
|
"@strapi/design-system": "2.2.4",
|
|
80
80
|
"@strapi/icons": "2.2.4",
|
|
81
|
-
"@strapi/provider-upload-local": "5.
|
|
82
|
-
"@strapi/utils": "5.
|
|
81
|
+
"@strapi/provider-upload-local": "5.56.0",
|
|
82
|
+
"@strapi/utils": "5.56.0",
|
|
83
83
|
"byte-size": "8.1.1",
|
|
84
84
|
"cropperjs": "1.6.2",
|
|
85
85
|
"date-fns": "2.30.0",
|
|
@@ -92,19 +92,19 @@
|
|
|
92
92
|
"lodash": "4.18.1",
|
|
93
93
|
"mime-types": "2.1.35",
|
|
94
94
|
"prop-types": "^15.8.1",
|
|
95
|
-
"qs": "6.
|
|
95
|
+
"qs": "6.16.0",
|
|
96
96
|
"react-dnd": "16.0.1",
|
|
97
97
|
"react-intl": "6.6.2",
|
|
98
98
|
"react-query": "3.39.3",
|
|
99
99
|
"react-redux": "8.1.3",
|
|
100
100
|
"react-select": "5.8.0",
|
|
101
|
-
"sharp": "0.35.
|
|
101
|
+
"sharp": "0.35.4",
|
|
102
102
|
"yup": "0.32.9",
|
|
103
103
|
"zod": "4.4.3"
|
|
104
104
|
},
|
|
105
105
|
"devDependencies": {
|
|
106
|
-
"@strapi/admin": "5.
|
|
107
|
-
"@strapi/types": "5.
|
|
106
|
+
"@strapi/admin": "5.56.0",
|
|
107
|
+
"@strapi/types": "5.56.0",
|
|
108
108
|
"@testing-library/dom": "10.4.1",
|
|
109
109
|
"@testing-library/jest-dom": "6.9.1",
|
|
110
110
|
"@testing-library/react": "16.3.2",
|
|
@@ -123,13 +123,13 @@
|
|
|
123
123
|
"msw": "2.13.4",
|
|
124
124
|
"react": "18.3.1",
|
|
125
125
|
"react-dom": "18.3.1",
|
|
126
|
-
"react-router-dom": "6.30.
|
|
126
|
+
"react-router-dom": "6.30.6",
|
|
127
127
|
"styled-components": "6.4.1"
|
|
128
128
|
},
|
|
129
129
|
"peerDependencies": {
|
|
130
130
|
"@strapi/admin": "^5.0.0",
|
|
131
|
-
"react": "^
|
|
132
|
-
"react-dom": "^
|
|
131
|
+
"react": "^18.0.0",
|
|
132
|
+
"react-dom": "^18.0.0",
|
|
133
133
|
"react-router-dom": "^6.30.3",
|
|
134
134
|
"styled-components": "^6.0.0"
|
|
135
135
|
},
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var ee = require('@strapi/admin/strapi-admin/ee');
|
|
4
|
-
var useSettings = require('./useSettings.js');
|
|
5
|
-
|
|
6
|
-
const useAIAvailability = ()=>{
|
|
7
|
-
const isAiAvailable = ee.useAIAvailability();
|
|
8
|
-
const { status, data } = useSettings.useSettings(isAiAvailable);
|
|
9
|
-
if (!isAiAvailable) {
|
|
10
|
-
return {
|
|
11
|
-
status: 'success',
|
|
12
|
-
isEnabled: false
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
return {
|
|
16
|
-
status,
|
|
17
|
-
isEnabled: data?.aiMetadata
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
exports.useAIAvailability = useAIAvailability;
|
|
22
|
-
//# sourceMappingURL=useAiAvailability.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAiAvailability.js","sources":["../../../../admin/src/legacy/hooks/useAiAvailability.ts"],"sourcesContent":["import { useAIAvailability as useGlobalAIAvailability } from '@strapi/admin/strapi-admin/ee';\n\nimport { useSettings } from './useSettings';\n\nexport const useAIAvailability = () => {\n const isAiAvailable = useGlobalAIAvailability();\n const { status, data } = useSettings(isAiAvailable);\n\n if (!isAiAvailable) {\n return { status: 'success' as const, isEnabled: false };\n }\n\n return { status, isEnabled: data?.aiMetadata };\n};\n"],"names":["useAIAvailability","isAiAvailable","useGlobalAIAvailability","status","data","useSettings","isEnabled","aiMetadata"],"mappings":";;;;;MAIaA,iBAAAA,GAAoB,IAAA;AAC/B,IAAA,MAAMC,aAAAA,GAAgBC,oBAAAA,EAAAA;AACtB,IAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGC,uBAAAA,CAAYJ,aAAAA,CAAAA;AAErC,IAAA,IAAI,CAACA,aAAAA,EAAe;QAClB,OAAO;YAAEE,MAAAA,EAAQ,SAAA;YAAoBG,SAAAA,EAAW;AAAM,SAAA;AACxD,IAAA;IAEA,OAAO;AAAEH,QAAAA,MAAAA;AAAQG,QAAAA,SAAAA,EAAWF,IAAAA,EAAMG;AAAW,KAAA;AAC/C;;;;"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { useAIAvailability as useAIAvailability$1 } from '@strapi/admin/strapi-admin/ee';
|
|
2
|
-
import { useSettings } from './useSettings.mjs';
|
|
3
|
-
|
|
4
|
-
const useAIAvailability = ()=>{
|
|
5
|
-
const isAiAvailable = useAIAvailability$1();
|
|
6
|
-
const { status, data } = useSettings(isAiAvailable);
|
|
7
|
-
if (!isAiAvailable) {
|
|
8
|
-
return {
|
|
9
|
-
status: 'success',
|
|
10
|
-
isEnabled: false
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
return {
|
|
14
|
-
status,
|
|
15
|
-
isEnabled: data?.aiMetadata
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
export { useAIAvailability };
|
|
20
|
-
//# sourceMappingURL=useAiAvailability.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAiAvailability.mjs","sources":["../../../../admin/src/legacy/hooks/useAiAvailability.ts"],"sourcesContent":["import { useAIAvailability as useGlobalAIAvailability } from '@strapi/admin/strapi-admin/ee';\n\nimport { useSettings } from './useSettings';\n\nexport const useAIAvailability = () => {\n const isAiAvailable = useGlobalAIAvailability();\n const { status, data } = useSettings(isAiAvailable);\n\n if (!isAiAvailable) {\n return { status: 'success' as const, isEnabled: false };\n }\n\n return { status, isEnabled: data?.aiMetadata };\n};\n"],"names":["useAIAvailability","isAiAvailable","useGlobalAIAvailability","status","data","useSettings","isEnabled","aiMetadata"],"mappings":";;;MAIaA,iBAAAA,GAAoB,IAAA;AAC/B,IAAA,MAAMC,aAAAA,GAAgBC,mBAAAA,EAAAA;AACtB,IAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGC,WAAAA,CAAYJ,aAAAA,CAAAA;AAErC,IAAA,IAAI,CAACA,aAAAA,EAAe;QAClB,OAAO;YAAEE,MAAAA,EAAQ,SAAA;YAAoBG,SAAAA,EAAW;AAAM,SAAA;AACxD,IAAA;IAEA,OAAO;AAAEH,QAAAA,MAAAA;AAAQG,QAAAA,SAAAA,EAAWF,IAAAA,EAAMG;AAAW,KAAA;AAC/C;;;;"}
|