@rubixstudios/payload-media 1.2.3 → 1.2.5
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/README.md +1 -1
- package/dist/components/media-search/index.d.ts.map +1 -1
- package/dist/components/media-search/index.js +4 -3
- package/dist/components/search-drawer/filters/pexels.d.ts +4 -4
- package/dist/components/search-drawer/filters/pexels.d.ts.map +1 -1
- package/dist/components/search-drawer/filters/pexels.js +9 -8
- package/dist/components/search-drawer/filters/pixabay.d.ts +4 -4
- package/dist/components/search-drawer/filters/pixabay.d.ts.map +1 -1
- package/dist/components/search-drawer/filters/pixabay.js +11 -11
- package/dist/components/search-drawer/filters/unsplash.d.ts +4 -4
- package/dist/components/search-drawer/filters/unsplash.d.ts.map +1 -1
- package/dist/components/search-drawer/filters/unsplash.js +5 -5
- package/dist/components/search-drawer/index.d.ts +2 -2
- package/dist/components/search-drawer/index.d.ts.map +1 -1
- package/dist/components/search-drawer/index.js +53 -47
- package/dist/components/search-drawer/media/image.d.ts +2 -2
- package/dist/components/search-drawer/media/image.d.ts.map +1 -1
- package/dist/components/search-drawer/media/image.js +2 -2
- package/dist/components/search-drawer/media/video.d.ts +2 -2
- package/dist/components/search-drawer/media/video.d.ts.map +1 -1
- package/dist/components/search-drawer/media/video.js +5 -3
- package/dist/endpoints/handler/Pexels.d.ts.map +1 -1
- package/dist/endpoints/handler/Pexels.js +7 -21
- package/dist/endpoints/handler/Pixabay.d.ts.map +1 -1
- package/dist/endpoints/handler/Pixabay.js +9 -22
- package/dist/endpoints/handler/Provider.d.ts +3 -3
- package/dist/endpoints/handler/Provider.d.ts.map +1 -1
- package/dist/endpoints/handler/Provider.js +11 -11
- package/dist/endpoints/handler/Unsplash.d.ts.map +1 -1
- package/dist/endpoints/handler/Unsplash.js +2 -6
- package/dist/endpoints/index.d.ts.map +1 -1
- package/dist/endpoints/index.js +42 -75
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -19
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +12 -9
- package/dist/types.d.ts +101 -100
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/fetchCache.d.ts.map +1 -1
- package/dist/utils/fetchCache.js +4 -4
- package/dist/utils/getProviders.d.ts +1 -1
- package/dist/utils/getProviders.d.ts.map +1 -1
- package/dist/utils/getProviders.js +6 -6
- package/dist/utils/resolveProvider.d.ts +1 -4
- package/dist/utils/resolveProvider.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pexels.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Pexels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEvD,qBAAa,MAAO,SAAQ,QAAQ;IAClC,YAAY,MAAM,EAAE,QAAQ,EAE3B;IAEQ,eAAe,IAAI,MAAM,CAEjC;IAEQ,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAEc,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBpE;IAEc,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Pexels.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Pexels.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEvD,qBAAa,MAAO,SAAQ,QAAQ;IAClC,YAAY,MAAM,EAAE,QAAQ,EAE3B;IAEQ,eAAe,IAAI,MAAM,CAEjC;IAEQ,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAEc,WAAW,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBpE;IAEc,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAyB/F;IAED,kBAAkB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,cAAc,EAAE,CAuBxD;IAEQ,aAAa,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAiB7D;CACF"}
|
|
@@ -8,7 +8,7 @@ export class Pexels extends Provider {
|
|
|
8
8
|
}
|
|
9
9
|
getFetchHeaders() {
|
|
10
10
|
return {
|
|
11
|
-
Authorization:
|
|
11
|
+
Authorization: this.getApiKey()
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
async getFeatured(filters) {
|
|
@@ -31,41 +31,27 @@ export class Pexels extends Provider {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
async getSearch(query, page, filters) {
|
|
34
|
-
|
|
35
|
-
const params = new URLSearchParams({
|
|
36
|
-
query: query || 'featured',
|
|
37
|
-
page: String(page),
|
|
38
|
-
per_page: String(this.getFetchLimit())
|
|
39
|
-
});
|
|
40
|
-
if (filters?.size) params.set('size', filters.size);
|
|
41
|
-
if (filters?.orientation) params.set('orientation', filters.orientation);
|
|
42
|
-
const data = await this.fetch('GET', `/videos/search?${params.toString()}`);
|
|
43
|
-
const totalResults = data.total_results;
|
|
44
|
-
return {
|
|
45
|
-
images: this.formatVideoResults(data.videos),
|
|
46
|
-
totalImages: totalResults,
|
|
47
|
-
totalPages: Math.min(Math.ceil(totalResults / this.getFetchLimit()), 100)
|
|
48
|
-
};
|
|
49
|
-
}
|
|
34
|
+
const isVideo = filters?.media === 'video';
|
|
50
35
|
const params = new URLSearchParams({
|
|
51
36
|
query: query || 'featured',
|
|
52
37
|
page: String(page),
|
|
53
38
|
per_page: String(this.getFetchLimit())
|
|
54
39
|
});
|
|
55
|
-
if (filters?.color) params.set('color', filters.color);
|
|
40
|
+
if (!isVideo && filters?.color) params.set('color', filters.color);
|
|
56
41
|
if (filters?.size) params.set('size', filters.size);
|
|
57
42
|
if (filters?.orientation) params.set('orientation', filters.orientation);
|
|
58
|
-
const
|
|
43
|
+
const endpoint = isVideo ? '/videos/search' : '/v1/search';
|
|
44
|
+
const data = await this.fetch('GET', `${endpoint}?${params.toString()}`);
|
|
59
45
|
const totalResults = data.total_results;
|
|
60
46
|
return {
|
|
61
|
-
images: this.formatResults(data.photos),
|
|
47
|
+
images: isVideo ? this.formatVideoResults(data.videos) : this.formatResults(data.photos),
|
|
62
48
|
totalImages: totalResults,
|
|
63
49
|
totalPages: Math.min(Math.ceil(totalResults / this.getFetchLimit()), 100)
|
|
64
50
|
};
|
|
65
51
|
}
|
|
66
52
|
formatVideoResults(data) {
|
|
67
53
|
return data.map((video)=>{
|
|
68
|
-
const file = video.video_files.find((
|
|
54
|
+
const file = video.video_files.find((file)=>file.quality === 'hd' && file.file_type === 'video/mp4') ?? video.video_files.find((file)=>file.file_type === 'video/mp4');
|
|
69
55
|
return {
|
|
70
56
|
id: String(video.id),
|
|
71
57
|
alt: video.url || '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pixabay.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Pixabay.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEvD,qBAAa,OAAQ,SAAQ,QAAQ;IACnC,YAAY,MAAM,EAAE,QAAQ,EAE3B;IAEQ,eAAe,IAAI,MAAM,CAEjC;IAEQ,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAEc,WAAW,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAkCrE;IAEc,SAAS,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Pixabay.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Pixabay.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,EAEjB,KAAK,cAAc,EACpB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEvD,qBAAa,OAAQ,SAAQ,QAAQ;IACnC,YAAY,MAAM,EAAE,QAAQ,EAE3B;IAEQ,eAAe,IAAI,MAAM,CAEjC;IAEQ,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAEc,WAAW,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAkCrE;IAEc,SAAS,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,OAAO,CAAC,CA+BlB;IAED,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,cAAc,EAAE,CAwBzD;IAEQ,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,cAAc,EAAE,CAmB9D;CACF"}
|
|
@@ -29,23 +29,7 @@ export class Pixabay extends Provider {
|
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
31
|
async getSearch(query, page, filters) {
|
|
32
|
-
|
|
33
|
-
const params = new URLSearchParams({
|
|
34
|
-
key: this.getApiKey(),
|
|
35
|
-
q: query || '',
|
|
36
|
-
page: String(page),
|
|
37
|
-
per_page: String(this.getFetchLimit())
|
|
38
|
-
});
|
|
39
|
-
if (filters?.category) params.set('category', filters.category);
|
|
40
|
-
if (filters?.order) params.set('order', filters.order);
|
|
41
|
-
const data = await this.fetch('GET', `/api/videos?${params.toString()}`);
|
|
42
|
-
const totalHits = data.totalHits;
|
|
43
|
-
return {
|
|
44
|
-
images: this.formatVideoResults(data.hits),
|
|
45
|
-
totalImages: totalHits,
|
|
46
|
-
totalPages: Math.min(Math.ceil(totalHits / this.getFetchLimit()), 100)
|
|
47
|
-
};
|
|
48
|
-
}
|
|
32
|
+
const isVideo = filters?.media === 'video';
|
|
49
33
|
const params = new URLSearchParams({
|
|
50
34
|
key: this.getApiKey(),
|
|
51
35
|
q: query || '',
|
|
@@ -53,14 +37,17 @@ export class Pixabay extends Provider {
|
|
|
53
37
|
per_page: String(this.getFetchLimit())
|
|
54
38
|
});
|
|
55
39
|
if (filters?.category) params.set('category', filters.category);
|
|
56
|
-
if (filters?.image_type) params.set('image_type', filters.image_type);
|
|
57
|
-
if (filters?.colors) params.set('colors', filters.colors);
|
|
58
|
-
if (filters?.orientation) params.set('orientation', filters.orientation);
|
|
59
40
|
if (filters?.order) params.set('order', filters.order);
|
|
60
|
-
|
|
41
|
+
if (!isVideo) {
|
|
42
|
+
if (filters?.image_type) params.set('image_type', filters.image_type);
|
|
43
|
+
if (filters?.colors) params.set('colors', filters.colors);
|
|
44
|
+
if (filters?.orientation) params.set('orientation', filters.orientation);
|
|
45
|
+
}
|
|
46
|
+
const endpoint = isVideo ? '/api/videos' : '/api';
|
|
47
|
+
const data = await this.fetch('GET', `${endpoint}?${params.toString()}`);
|
|
61
48
|
const totalHits = data.totalHits;
|
|
62
49
|
return {
|
|
63
|
-
images: this.formatResults(data.hits),
|
|
50
|
+
images: isVideo ? this.formatVideoResults(data.hits) : this.formatResults(data.hits),
|
|
64
51
|
totalImages: totalHits,
|
|
65
52
|
totalPages: Math.min(Math.ceil(totalHits / this.getFetchLimit()), 100)
|
|
66
53
|
};
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type ProviderResult } from '../../types.js';
|
|
2
2
|
export type Resolver = () => string | undefined;
|
|
3
3
|
export declare class Provider {
|
|
4
|
-
protected apiKey?: Resolver;
|
|
4
|
+
protected apiKey?: Resolver | undefined;
|
|
5
5
|
key: string;
|
|
6
6
|
name: string;
|
|
7
7
|
url: string;
|
|
8
|
-
constructor(key: string, name: string, url: string, apiKey?: Resolver);
|
|
9
|
-
fetch(method: string, urlPath: string, data?: object): Promise<unknown>;
|
|
8
|
+
constructor(key: string, name: string, url: string, apiKey?: Resolver | undefined);
|
|
10
9
|
get isConfigured(): boolean;
|
|
11
10
|
protected getApiKey(): string;
|
|
11
|
+
fetch(method: string, urlPath: string, data?: object): Promise<unknown>;
|
|
12
12
|
getFetchBaseUrl(): string;
|
|
13
13
|
getFetchHeaders(): Record<string, string>;
|
|
14
14
|
getFetchLimit(): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,QAAQ,GAAG,MAAM,MAAM,GAAG,SAAS,CAAA;AAE/C,qBAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,QAAQ,GAAG,MAAM,MAAM,GAAG,SAAS,CAAA;AAE/C,qBAAa,QAAQ;IASjB,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;IAR7B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IAEX,YACE,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACD,MAAM,CAAC,EAAE,QAAQ,YAAA,EAK5B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,SAAS,CAAC,SAAS,IAAI,MAAM,CAQ5B;IAEK,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQ5E;IAED,eAAe,IAAI,MAAM,CAExB;IAED,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAExC;IAED,aAAa,IAAI,MAAM,CAEtB;IAED,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAEhE;IAED,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEzD;IAED,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAEhC;IAED,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,EAAE,CAE7C;CACF"}
|
|
@@ -4,20 +4,10 @@ export class Provider {
|
|
|
4
4
|
name;
|
|
5
5
|
url;
|
|
6
6
|
constructor(key, name, url, apiKey){
|
|
7
|
+
this.apiKey = apiKey;
|
|
7
8
|
this.key = key;
|
|
8
9
|
this.name = name;
|
|
9
10
|
this.url = url;
|
|
10
|
-
this.apiKey = apiKey;
|
|
11
|
-
}
|
|
12
|
-
async fetch(method, urlPath, data) {
|
|
13
|
-
const response = await fetch(new URL(urlPath, this.getFetchBaseUrl()), {
|
|
14
|
-
method,
|
|
15
|
-
headers: this.getFetchHeaders(),
|
|
16
|
-
...data && {
|
|
17
|
-
body: JSON.stringify(data)
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
return response.json();
|
|
21
11
|
}
|
|
22
12
|
get isConfigured() {
|
|
23
13
|
return Boolean(this.apiKey?.());
|
|
@@ -29,6 +19,16 @@ export class Provider {
|
|
|
29
19
|
}
|
|
30
20
|
return key;
|
|
31
21
|
}
|
|
22
|
+
async fetch(method, urlPath, data) {
|
|
23
|
+
const response = await fetch(new URL(urlPath, this.getFetchBaseUrl()), {
|
|
24
|
+
method,
|
|
25
|
+
headers: this.getFetchHeaders(),
|
|
26
|
+
...data && {
|
|
27
|
+
body: JSON.stringify(data)
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return response.json();
|
|
31
|
+
}
|
|
32
32
|
getFetchBaseUrl() {
|
|
33
33
|
return '';
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Unsplash.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Unsplash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/F,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIvD,qBAAa,QAAS,SAAQ,QAAQ;IACpC,YAAY,MAAM,EAAE,QAAQ,EAE3B;IAEQ,eAAe,IAAI,MAAM,CAEjC;IAEQ,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAEc,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Unsplash.d.ts","sourceRoot":"","sources":["../../../src/endpoints/handler/Unsplash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/F,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIvD,qBAAa,QAAS,SAAQ,QAAQ;IACpC,YAAY,MAAM,EAAE,QAAQ,EAE3B;IAEQ,eAAe,IAAI,MAAM,CAEjC;IAEQ,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEjD;IAEc,WAAW,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BtE;IAEc,SAAS,CACtB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,OAAO,CAAC,CAqBlB;IAEQ,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAMxC;IAEQ,aAAa,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAoB/D;CACF"}
|
|
@@ -18,12 +18,8 @@ export class Unsplash extends Provider {
|
|
|
18
18
|
per_page: String(this.getFetchLimit()),
|
|
19
19
|
query: 'featured'
|
|
20
20
|
});
|
|
21
|
-
if (filters.color)
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
if (filters.orientation) {
|
|
25
|
-
params.set('orientation', filters.orientation);
|
|
26
|
-
}
|
|
21
|
+
if (filters?.color) params.set('color', filters.color);
|
|
22
|
+
if (filters?.orientation) params.set('orientation', filters.orientation);
|
|
27
23
|
const data = await this.fetch('GET', `/search/photos?${params.toString()}`);
|
|
28
24
|
return {
|
|
29
25
|
images: this.formatResults(data.results),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/endpoints/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAA;AAkCvC,eAAO,MAAM,SAAS,EAAE,QAAQ,EAkE/B,CAAA"}
|
package/dist/endpoints/index.js
CHANGED
|
@@ -2,6 +2,36 @@ import { getMediaType } from '../utils/getMediaType.js';
|
|
|
2
2
|
import { getProviders } from '../utils/getProviders.js';
|
|
3
3
|
import { requireAccess } from '../utils/requireAccess.js';
|
|
4
4
|
import { resolveProvider } from '../utils/resolveProvider.js';
|
|
5
|
+
const getProvider = (req)=>{
|
|
6
|
+
const provider = resolveProvider(req);
|
|
7
|
+
if (!provider) {
|
|
8
|
+
return Response.json({
|
|
9
|
+
data: null,
|
|
10
|
+
error: 'Provider not supported.'
|
|
11
|
+
}, {
|
|
12
|
+
status: 404
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
if (!provider.isConfigured) {
|
|
16
|
+
return Response.json({
|
|
17
|
+
data: null,
|
|
18
|
+
error: 'Provider not configured.'
|
|
19
|
+
}, {
|
|
20
|
+
status: 500
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return provider;
|
|
24
|
+
};
|
|
25
|
+
const getFilters = (query)=>({
|
|
26
|
+
category: query.category,
|
|
27
|
+
color: query.color,
|
|
28
|
+
colors: query.colors,
|
|
29
|
+
image_type: query.image_type,
|
|
30
|
+
order: query.order,
|
|
31
|
+
orientation: query.orientation,
|
|
32
|
+
size: query.size,
|
|
33
|
+
media: getMediaType(query.media)
|
|
34
|
+
});
|
|
5
35
|
export const providers = [
|
|
6
36
|
{
|
|
7
37
|
path: '/providers',
|
|
@@ -10,12 +40,12 @@ export const providers = [
|
|
|
10
40
|
const denied = await requireAccess(req);
|
|
11
41
|
if (denied) return denied;
|
|
12
42
|
const providerKeys = req.payload?.config?.custom?.providerKeys;
|
|
13
|
-
const
|
|
14
|
-
name:
|
|
15
|
-
key:
|
|
43
|
+
const data = getProviders(providerKeys).map((provider)=>({
|
|
44
|
+
name: provider.name,
|
|
45
|
+
key: provider.key
|
|
16
46
|
}));
|
|
17
47
|
return Response.json({
|
|
18
|
-
data
|
|
48
|
+
data,
|
|
19
49
|
error: null
|
|
20
50
|
});
|
|
21
51
|
}
|
|
@@ -26,33 +56,9 @@ export const providers = [
|
|
|
26
56
|
handler: async (req)=>{
|
|
27
57
|
const denied = await requireAccess(req);
|
|
28
58
|
if (denied) return denied;
|
|
29
|
-
const provider =
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
data: null,
|
|
33
|
-
error: 'Provider not supported.'
|
|
34
|
-
}, {
|
|
35
|
-
status: 404
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
if (!provider.isConfigured) {
|
|
39
|
-
return Response.json({
|
|
40
|
-
data: null,
|
|
41
|
-
error: 'Provider not configured.'
|
|
42
|
-
}, {
|
|
43
|
-
status: 500
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
const data = await provider.getFeatured({
|
|
47
|
-
category: req.query.category,
|
|
48
|
-
color: req.query.color,
|
|
49
|
-
colors: req.query.colors,
|
|
50
|
-
image_type: req.query.image_type,
|
|
51
|
-
order: req.query.order,
|
|
52
|
-
orientation: req.query.orientation,
|
|
53
|
-
size: req.query.size,
|
|
54
|
-
media: getMediaType(req.query.media)
|
|
55
|
-
});
|
|
59
|
+
const provider = getProvider(req);
|
|
60
|
+
if (provider instanceof Response) return provider;
|
|
61
|
+
const data = await provider.getFeatured(getFilters(req.query));
|
|
56
62
|
return Response.json({
|
|
57
63
|
data,
|
|
58
64
|
error: null
|
|
@@ -65,33 +71,9 @@ export const providers = [
|
|
|
65
71
|
handler: async (req)=>{
|
|
66
72
|
const denied = await requireAccess(req);
|
|
67
73
|
if (denied) return denied;
|
|
68
|
-
const provider =
|
|
69
|
-
if (
|
|
70
|
-
|
|
71
|
-
data: null,
|
|
72
|
-
error: 'Provider not supported.'
|
|
73
|
-
}, {
|
|
74
|
-
status: 404
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
if (!provider.isConfigured) {
|
|
78
|
-
return Response.json({
|
|
79
|
-
data: null,
|
|
80
|
-
error: 'Provider not configured.'
|
|
81
|
-
}, {
|
|
82
|
-
status: 500
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
const data = await provider.getSearch(req.query.query, Number(req.query.page ?? 1), {
|
|
86
|
-
category: req.query.category,
|
|
87
|
-
color: req.query.color,
|
|
88
|
-
colors: req.query.colors,
|
|
89
|
-
image_type: req.query.image_type,
|
|
90
|
-
order: req.query.order,
|
|
91
|
-
orientation: req.query.orientation,
|
|
92
|
-
size: req.query.size,
|
|
93
|
-
media: getMediaType(req.query.media)
|
|
94
|
-
});
|
|
74
|
+
const provider = getProvider(req);
|
|
75
|
+
if (provider instanceof Response) return provider;
|
|
76
|
+
const data = await provider.getSearch(req.query.query, Number(req.query.page ?? 1), getFilters(req.query));
|
|
95
77
|
return Response.json({
|
|
96
78
|
data,
|
|
97
79
|
error: null
|
|
@@ -104,23 +86,8 @@ export const providers = [
|
|
|
104
86
|
handler: async (req)=>{
|
|
105
87
|
const denied = await requireAccess(req);
|
|
106
88
|
if (denied) return denied;
|
|
107
|
-
const provider =
|
|
108
|
-
if (
|
|
109
|
-
return Response.json({
|
|
110
|
-
data: null,
|
|
111
|
-
error: 'Provider not supported.'
|
|
112
|
-
}, {
|
|
113
|
-
status: 404
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
if (!provider.isConfigured) {
|
|
117
|
-
return Response.json({
|
|
118
|
-
data: null,
|
|
119
|
-
error: 'Provider not configured.'
|
|
120
|
-
}, {
|
|
121
|
-
status: 500
|
|
122
|
-
});
|
|
123
|
-
}
|
|
89
|
+
const provider = getProvider(req);
|
|
90
|
+
if (provider instanceof Response) return provider;
|
|
124
91
|
const data = provider.trackDownload(req.query.url);
|
|
125
92
|
return Response.json({
|
|
126
93
|
data,
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAIrC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,eAAO,MAAM,WAAW,kBACP,cAAc,sBACZ,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAIrC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,eAAO,MAAM,WAAW,kBACP,cAAc,sBACZ,MAAM,KAAG,MA+CzB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -2,47 +2,46 @@ import { defaultPluginOptions } from './defaults.js';
|
|
|
2
2
|
import { providers } from './endpoints/index.js';
|
|
3
3
|
export const mediaPlugin = (pluginConfig = {})=>(incomingConfig)=>{
|
|
4
4
|
if (pluginConfig.disabled) return incomingConfig;
|
|
5
|
-
const
|
|
5
|
+
const options = {
|
|
6
6
|
...defaultPluginOptions,
|
|
7
7
|
...pluginConfig
|
|
8
8
|
};
|
|
9
|
-
const
|
|
9
|
+
const config = {
|
|
10
10
|
...incomingConfig
|
|
11
11
|
};
|
|
12
|
-
|
|
13
|
-
...
|
|
14
|
-
providerAccess:
|
|
12
|
+
config.custom = {
|
|
13
|
+
...config.custom ?? {},
|
|
14
|
+
providerAccess: options.access,
|
|
15
15
|
providerKeys: {
|
|
16
|
-
pexels:
|
|
17
|
-
unsplash:
|
|
18
|
-
pixabay:
|
|
16
|
+
pexels: options.pexels,
|
|
17
|
+
unsplash: options.unsplash,
|
|
18
|
+
pixabay: options.pixabay
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
config.collections = (config.collections ?? []).map((collection)=>{
|
|
22
22
|
const upload = collection.upload;
|
|
23
23
|
if (!upload) return collection;
|
|
24
|
-
const
|
|
25
|
-
|
|
24
|
+
const uploadConfig = upload === true ? {} : typeof upload === 'object' ? upload : undefined;
|
|
25
|
+
return {
|
|
26
26
|
...collection,
|
|
27
27
|
upload: {
|
|
28
|
-
...
|
|
28
|
+
...uploadConfig ?? {},
|
|
29
29
|
admin: {
|
|
30
|
-
...
|
|
30
|
+
...uploadConfig?.admin ?? {},
|
|
31
31
|
components: {
|
|
32
|
-
...
|
|
32
|
+
...uploadConfig?.admin?.components ?? {},
|
|
33
33
|
controls: [
|
|
34
|
-
...
|
|
34
|
+
...uploadConfig?.admin?.components?.controls ?? [],
|
|
35
35
|
'@rubixstudios/payload-media/client#MediaSearch'
|
|
36
36
|
]
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
-
return modifiedCollection;
|
|
42
41
|
});
|
|
43
|
-
|
|
44
|
-
...
|
|
42
|
+
config.endpoints = [
|
|
43
|
+
...config.endpoints ?? [],
|
|
45
44
|
...providers
|
|
46
45
|
];
|
|
47
|
-
return
|
|
46
|
+
return config;
|
|
48
47
|
};
|
package/dist/lib/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,CAAC,eAAe;IAIvB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI7B;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAwB1B;IAED,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAUpD;CACF"}
|
package/dist/lib/cache.js
CHANGED
|
@@ -9,20 +9,23 @@ export class CacheManager {
|
|
|
9
9
|
}
|
|
10
10
|
get(query) {
|
|
11
11
|
const key = this.getVersionedKey(query);
|
|
12
|
-
const
|
|
13
|
-
if (!
|
|
14
|
-
let item;
|
|
12
|
+
const stored = localStorage.getItem(key);
|
|
13
|
+
if (!stored) return null;
|
|
15
14
|
try {
|
|
16
|
-
item = JSON.parse(
|
|
15
|
+
const item = JSON.parse(stored);
|
|
16
|
+
if (!item || typeof item !== 'object' || !('value' in item)) {
|
|
17
|
+
localStorage.removeItem(key);
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
if (item.expiry && Date.now() > item.expiry) {
|
|
21
|
+
localStorage.removeItem(key);
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return item.value;
|
|
17
25
|
} catch {
|
|
18
26
|
localStorage.removeItem(key);
|
|
19
27
|
return null;
|
|
20
28
|
}
|
|
21
|
-
if (item.expiry && Date.now() > item.expiry) {
|
|
22
|
-
localStorage.removeItem(key);
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
return item.value;
|
|
26
29
|
}
|
|
27
30
|
set(query, data, ttl) {
|
|
28
31
|
const key = this.getVersionedKey(query);
|