@refkit/provider-flickr 0.3.2 → 0.4.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/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -112,6 +112,7 @@ function toReference(p) {
|
|
|
112
112
|
return {
|
|
113
113
|
id: referenceId("flickr", canonicalUrl),
|
|
114
114
|
modality: "image",
|
|
115
|
+
kind: "photo",
|
|
115
116
|
title: p.title || void 0,
|
|
116
117
|
source: { providerId: "flickr", sourceUrl: canonicalUrl },
|
|
117
118
|
canonicalUrl,
|
|
@@ -128,6 +129,8 @@ function flickr(config) {
|
|
|
128
129
|
return defineProvider({
|
|
129
130
|
id: "flickr",
|
|
130
131
|
modalities: ["image"],
|
|
132
|
+
kinds: ["photo"],
|
|
133
|
+
description: "Community photography with per-item CC licensing (Flickr)",
|
|
131
134
|
capabilities: { controls: ["sort", "safety", "license.commercial", "license.modification", "license.allowUnknown", "creator.id", "page"] },
|
|
132
135
|
async search(q, ctx) {
|
|
133
136
|
const opts = q.providerOptions;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n defineProvider, referenceId, ccVersionFor,\n setIfString, setIfInt, setIfStringList,\n type Reference, type RightsRecord, type LicenseId, type SearchLicenseControls,\n type NormalizedQuery, type ProviderContext,\n setIfPositiveInt,\n} from '@refkit/core'\n\nexport interface FlickrConfig {\n apiKey: string\n /** Server-side license filter (comma-separated Flickr license ids). Defaults to the\n * CC/PD/CC0 set — a relevance hint only; mapFlickrLicense below is authoritative. */\n licenseFilter?: string\n}\n\nexport interface FlickrSearchOptions {\n licenseFilter?: string\n sort?: 'date-posted-asc' | 'date-posted-desc' | 'date-taken-asc' | 'date-taken-desc' | 'interestingness-desc' | 'interestingness-asc' | 'relevance'\n safeSearch?: 1 | 2 | 3\n tags?: string | readonly string[]\n tagMode?: 'any' | 'all'\n userId?: string\n minUploadDate?: string | number\n maxUploadDate?: string | number\n minTakenDate?: string | number\n maxTakenDate?: string | number\n bbox?: string\n accuracy?: number\n machineTags?: string | readonly string[]\n machineTagMode?: 'any' | 'all'\n groupId?: string\n woeId?: string\n placeId?: string\n hasGeo?: boolean\n geoContext?: 0 | 1 | 2\n lat?: string\n lon?: string\n radius?: number\n radiusUnits?: 'mi' | 'km'\n isCommons?: boolean\n inGallery?: boolean\n isGetty?: boolean\n extras?: string | readonly string[]\n page?: number\n perPage?: number\n}\n\n// Flickr numeric license id → our LicenseId (+ CC version). See\n// flickr.photos.licenses.getInfo. All Rights Reserved (0) → proprietary; NC/ND\n// variants map to their CC families and gate through core's LICENSE_FACTS —\n// NC stays denied for commercial/AI use; ND permits verbatim commercial reuse\n// (allowed-with-attribution) but stays denied for AI/derivative use.\nconst FLICKR_LICENSE: Record<number, { license: LicenseId; version?: string }> = {\n 0: { license: 'proprietary' }, // All Rights Reserved\n 1: { license: 'CC-BY-NC-SA', version: '2.0' }, // CC BY-NC-SA 2.0\n 2: { license: 'CC-BY-NC', version: '2.0' }, // CC BY-NC 2.0\n 3: { license: 'CC-BY-NC-ND', version: '2.0' }, // CC BY-NC-ND 2.0\n 4: { license: 'CC-BY', version: '2.0' }, // CC BY 2.0\n 5: { license: 'CC-BY-SA', version: '2.0' }, // CC BY-SA 2.0\n 6: { license: 'CC-BY-ND', version: '2.0' }, // CC BY-ND 2.0\n 7: { license: 'unknown' }, // \"No known copyright restrictions\" — NOT a guaranteed-free grant → needs-review\n 8: { license: 'PD' }, // United States Government Work\n 9: { license: 'CC0-1.0' }, // Public Domain Dedication (CC0)\n 10: { license: 'PD' }, // Public Domain Mark\n 11: { license: 'CC-BY', version: '4.0' }, // CC BY 4.0\n 12: { license: 'CC-BY-SA', version: '4.0' }, // CC BY-SA 4.0\n 13: { license: 'CC-BY-ND', version: '4.0' }, // CC BY-ND 4.0\n 14: { license: 'CC-BY-NC', version: '4.0' }, // CC BY-NC 4.0\n 15: { license: 'CC-BY-NC-SA', version: '4.0' }, // CC BY-NC-SA 4.0\n 16: { license: 'CC-BY-NC-ND', version: '4.0' }, // CC BY-NC-ND 4.0\n}\n\n/** Map a Flickr numeric license id (string or number) to our license + CC version. */\nexport function mapFlickrLicense(id: string | number): { license: LicenseId; version?: string } {\n const n = typeof id === 'string' ? Number(id) : id\n return FLICKR_LICENSE[n] ?? { license: 'unknown' }\n}\n\n// Usable-license relevance hint (CC-BY/BY-SA 2.0+4.0, PD ×3, CC0). Flickr is mostly\n// All-Rights-Reserved, so without this most results would gate straight to denied.\nconst DEFAULT_LICENSE_FILTER = '4,5,7,8,9,10,11,12'\n\ninterface FlickrPhoto {\n id: string\n owner: string\n title: string\n license: string\n ownername?: string\n url_t?: string; width_t?: number; height_t?: number\n url_m?: string; width_m?: number; height_m?: number\n url_l?: string; width_l?: number; height_l?: number\n}\ninterface FlickrResponse { photos?: { photo: FlickrPhoto[] }; stat: string }\n\nfunction setIfSafeSearch(url: URL, value: unknown) {\n if (value !== 1 && value !== 2 && value !== 3) return\n url.searchParams.set('safe_search', String(value))\n}\n\nfunction setTags(url: URL, value: unknown) {\n if (typeof value === 'string' && value) url.searchParams.set('tags', value)\n if (Array.isArray(value) && value.every(v => typeof v === 'string')) url.searchParams.set('tags', value.join(','))\n}\n\nfunction setStringOrNumber(url: URL, key: string, value: unknown) {\n if (typeof value === 'string' && value) url.searchParams.set(key, value)\n if (typeof value === 'number' && Number.isFinite(value)) url.searchParams.set(key, String(value))\n}\n\nfunction setBooleanFlag(url: URL, key: string, value: unknown) {\n if (typeof value !== 'boolean') return\n url.searchParams.set(key, value ? '1' : '0')\n}\n\nfunction flickrExtras(value: unknown): string {\n const required = ['license', 'owner_name', 'url_t', 'url_m', 'url_l']\n const extras = new Set(required)\n if (typeof value === 'string') {\n for (const item of value.split(',')) if (item.trim()) extras.add(item.trim())\n }\n if (Array.isArray(value) && value.every(v => typeof v === 'string')) {\n for (const item of value) if (item) extras.add(item)\n }\n return Array.from(extras).join(',')\n}\n\nfunction flickrLicenseForControls(license: SearchLicenseControls | undefined): string | undefined {\n if (!license) return undefined\n if (license.allowUnknown) return DEFAULT_LICENSE_FILTER\n if (license.commercial && license.modification) return '4,5,9,10,11,12'\n if (license.commercial) return '4,5,6,8,9,10,11,12,13'\n return undefined\n}\n\nfunction flickrSort(sort: string | undefined): string | undefined {\n if (sort === 'interesting') return 'interestingness-desc'\n if (sort === 'latest') return 'date-posted-desc'\n if (sort === 'relevance') return 'relevance'\n return undefined\n}\n\nfunction flickrSafeSearch(safety: string | undefined): 1 | 2 | 3 | undefined {\n if (safety === 'strict') return 1\n if (safety === 'moderate') return 2\n if (safety === 'off') return 3\n return undefined\n}\n\nfunction toReference(p: FlickrPhoto): Reference {\n const { license, version } = mapFlickrLicense(p.license)\n const canonicalUrl = `https://www.flickr.com/photos/${p.owner}/${p.id}`\n const rights: RightsRecord = {\n license,\n licenseVersion: ccVersionFor(license, version),\n author: p.ownername || undefined,\n rehostPolicy: 'cache-allowed',\n raw: { sourceTerms: 'https://www.flickr.com/help/terms', sourceUrl: canonicalUrl },\n }\n const previewUrl = p.url_l ?? p.url_m\n const previewW = p.url_l ? p.width_l : p.width_m\n const previewH = p.url_l ? p.height_l : p.height_m\n const thumbUrl = p.url_t ?? p.url_m\n return {\n id: referenceId('flickr', canonicalUrl),\n modality: 'image',\n title: p.title || undefined,\n source: { providerId: 'flickr', sourceUrl: canonicalUrl },\n canonicalUrl,\n rights,\n verifiedAt: new Date().toISOString(),\n ...(thumbUrl ? { thumbnail: { url: thumbUrl } } : {}),\n ...(previewUrl ? { preview: { url: previewUrl, mediaType: 'image/jpeg', width: previewW, height: previewH } } : {}),\n ...(previewW && previewH ? { visual: { width: previewW, height: previewH } } : {}),\n relevance: 0,\n raw: p,\n }\n}\n\nexport function flickr(config: FlickrConfig) {\n return defineProvider({\n id: 'flickr',\n modalities: ['image'],\n capabilities: { controls: ['sort', 'safety', 'license.commercial', 'license.modification', 'license.allowUnknown', 'creator.id', 'page'] },\n async search(q: NormalizedQuery, ctx: ProviderContext): Promise<Reference[]> {\n const opts = q.providerOptions as FlickrSearchOptions | undefined\n const url = new URL('https://api.flickr.com/services/rest/')\n url.searchParams.set('method', 'flickr.photos.search')\n url.searchParams.set('api_key', config.apiKey)\n url.searchParams.set('text', q.text)\n url.searchParams.set('license', opts?.licenseFilter ?? flickrLicenseForControls(q.controls?.license) ?? config.licenseFilter ?? DEFAULT_LICENSE_FILTER)\n url.searchParams.set('content_type', '1') // photos only (no screenshots/other)\n url.searchParams.set('media', 'photos')\n url.searchParams.set('sort', 'relevance')\n setIfString(url, 'sort', opts?.sort ?? flickrSort(q.controls?.sort), ['date-posted-asc', 'date-posted-desc', 'date-taken-asc', 'date-taken-desc', 'interestingness-desc', 'interestingness-asc', 'relevance'])\n setIfSafeSearch(url, opts?.safeSearch ?? flickrSafeSearch(q.controls?.safety))\n setTags(url, opts?.tags)\n setIfString(url, 'tag_mode', opts?.tagMode, ['any', 'all'])\n setIfString(url, 'user_id', opts?.userId ?? q.controls?.creator?.id)\n setStringOrNumber(url, 'min_upload_date', opts?.minUploadDate)\n setStringOrNumber(url, 'max_upload_date', opts?.maxUploadDate)\n setStringOrNumber(url, 'min_taken_date', opts?.minTakenDate)\n setStringOrNumber(url, 'max_taken_date', opts?.maxTakenDate)\n setIfString(url, 'bbox', opts?.bbox)\n setIfInt(url, 'accuracy', opts?.accuracy, { min: 1, max: 16 })\n setIfStringList(url, 'machine_tags', opts?.machineTags)\n setIfString(url, 'machine_tag_mode', opts?.machineTagMode, ['any', 'all'])\n setIfString(url, 'group_id', opts?.groupId)\n setIfString(url, 'woe_id', opts?.woeId)\n setIfString(url, 'place_id', opts?.placeId)\n setBooleanFlag(url, 'has_geo', opts?.hasGeo)\n setIfInt(url, 'geo_context', opts?.geoContext, { min: 0, max: 2 })\n setIfString(url, 'lat', opts?.lat)\n setIfString(url, 'lon', opts?.lon)\n setStringOrNumber(url, 'radius', opts?.radius)\n setIfString(url, 'radius_units', opts?.radiusUnits, ['mi', 'km'])\n setBooleanFlag(url, 'is_commons', opts?.isCommons)\n setBooleanFlag(url, 'in_gallery', opts?.inGallery)\n setBooleanFlag(url, 'is_getty', opts?.isGetty)\n url.searchParams.set('extras', flickrExtras(opts?.extras))\n setIfPositiveInt(url, 'page', q.controls?.page)\n setIfInt(url, 'page', opts?.page, { min: 1 })\n url.searchParams.set('per_page', String(q.limit ?? 20))\n setIfInt(url, 'per_page', opts?.perPage, { min: 1, max: 500 })\n url.searchParams.set('format', 'json')\n url.searchParams.set('nojsoncallback', '1')\n const res = await ctx.fetch(url.toString(), { signal: ctx.signal })\n if (!res.ok) throw new Error(`flickr search failed: ${res.status}`)\n const json = (await res.json()) as FlickrResponse\n if (json.stat !== 'ok' || !json.photos) throw new Error(`flickr search error: stat=${json.stat}`)\n return json.photos.photo.map(toReference)\n },\n })\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {\n defineProvider, referenceId, ccVersionFor,\n setIfString, setIfInt, setIfStringList,\n type Reference, type RightsRecord, type LicenseId, type SearchLicenseControls,\n type NormalizedQuery, type ProviderContext,\n setIfPositiveInt,\n} from '@refkit/core'\n\nexport interface FlickrConfig {\n apiKey: string\n /** Server-side license filter (comma-separated Flickr license ids). Defaults to the\n * CC/PD/CC0 set — a relevance hint only; mapFlickrLicense below is authoritative. */\n licenseFilter?: string\n}\n\nexport interface FlickrSearchOptions {\n licenseFilter?: string\n sort?: 'date-posted-asc' | 'date-posted-desc' | 'date-taken-asc' | 'date-taken-desc' | 'interestingness-desc' | 'interestingness-asc' | 'relevance'\n safeSearch?: 1 | 2 | 3\n tags?: string | readonly string[]\n tagMode?: 'any' | 'all'\n userId?: string\n minUploadDate?: string | number\n maxUploadDate?: string | number\n minTakenDate?: string | number\n maxTakenDate?: string | number\n bbox?: string\n accuracy?: number\n machineTags?: string | readonly string[]\n machineTagMode?: 'any' | 'all'\n groupId?: string\n woeId?: string\n placeId?: string\n hasGeo?: boolean\n geoContext?: 0 | 1 | 2\n lat?: string\n lon?: string\n radius?: number\n radiusUnits?: 'mi' | 'km'\n isCommons?: boolean\n inGallery?: boolean\n isGetty?: boolean\n extras?: string | readonly string[]\n page?: number\n perPage?: number\n}\n\n// Flickr numeric license id → our LicenseId (+ CC version). See\n// flickr.photos.licenses.getInfo. All Rights Reserved (0) → proprietary; NC/ND\n// variants map to their CC families and gate through core's LICENSE_FACTS —\n// NC stays denied for commercial/AI use; ND permits verbatim commercial reuse\n// (allowed-with-attribution) but stays denied for AI/derivative use.\nconst FLICKR_LICENSE: Record<number, { license: LicenseId; version?: string }> = {\n 0: { license: 'proprietary' }, // All Rights Reserved\n 1: { license: 'CC-BY-NC-SA', version: '2.0' }, // CC BY-NC-SA 2.0\n 2: { license: 'CC-BY-NC', version: '2.0' }, // CC BY-NC 2.0\n 3: { license: 'CC-BY-NC-ND', version: '2.0' }, // CC BY-NC-ND 2.0\n 4: { license: 'CC-BY', version: '2.0' }, // CC BY 2.0\n 5: { license: 'CC-BY-SA', version: '2.0' }, // CC BY-SA 2.0\n 6: { license: 'CC-BY-ND', version: '2.0' }, // CC BY-ND 2.0\n 7: { license: 'unknown' }, // \"No known copyright restrictions\" — NOT a guaranteed-free grant → needs-review\n 8: { license: 'PD' }, // United States Government Work\n 9: { license: 'CC0-1.0' }, // Public Domain Dedication (CC0)\n 10: { license: 'PD' }, // Public Domain Mark\n 11: { license: 'CC-BY', version: '4.0' }, // CC BY 4.0\n 12: { license: 'CC-BY-SA', version: '4.0' }, // CC BY-SA 4.0\n 13: { license: 'CC-BY-ND', version: '4.0' }, // CC BY-ND 4.0\n 14: { license: 'CC-BY-NC', version: '4.0' }, // CC BY-NC 4.0\n 15: { license: 'CC-BY-NC-SA', version: '4.0' }, // CC BY-NC-SA 4.0\n 16: { license: 'CC-BY-NC-ND', version: '4.0' }, // CC BY-NC-ND 4.0\n}\n\n/** Map a Flickr numeric license id (string or number) to our license + CC version. */\nexport function mapFlickrLicense(id: string | number): { license: LicenseId; version?: string } {\n const n = typeof id === 'string' ? Number(id) : id\n return FLICKR_LICENSE[n] ?? { license: 'unknown' }\n}\n\n// Usable-license relevance hint (CC-BY/BY-SA 2.0+4.0, PD ×3, CC0). Flickr is mostly\n// All-Rights-Reserved, so without this most results would gate straight to denied.\nconst DEFAULT_LICENSE_FILTER = '4,5,7,8,9,10,11,12'\n\ninterface FlickrPhoto {\n id: string\n owner: string\n title: string\n license: string\n ownername?: string\n url_t?: string; width_t?: number; height_t?: number\n url_m?: string; width_m?: number; height_m?: number\n url_l?: string; width_l?: number; height_l?: number\n}\ninterface FlickrResponse { photos?: { photo: FlickrPhoto[] }; stat: string }\n\nfunction setIfSafeSearch(url: URL, value: unknown) {\n if (value !== 1 && value !== 2 && value !== 3) return\n url.searchParams.set('safe_search', String(value))\n}\n\nfunction setTags(url: URL, value: unknown) {\n if (typeof value === 'string' && value) url.searchParams.set('tags', value)\n if (Array.isArray(value) && value.every(v => typeof v === 'string')) url.searchParams.set('tags', value.join(','))\n}\n\nfunction setStringOrNumber(url: URL, key: string, value: unknown) {\n if (typeof value === 'string' && value) url.searchParams.set(key, value)\n if (typeof value === 'number' && Number.isFinite(value)) url.searchParams.set(key, String(value))\n}\n\nfunction setBooleanFlag(url: URL, key: string, value: unknown) {\n if (typeof value !== 'boolean') return\n url.searchParams.set(key, value ? '1' : '0')\n}\n\nfunction flickrExtras(value: unknown): string {\n const required = ['license', 'owner_name', 'url_t', 'url_m', 'url_l']\n const extras = new Set(required)\n if (typeof value === 'string') {\n for (const item of value.split(',')) if (item.trim()) extras.add(item.trim())\n }\n if (Array.isArray(value) && value.every(v => typeof v === 'string')) {\n for (const item of value) if (item) extras.add(item)\n }\n return Array.from(extras).join(',')\n}\n\nfunction flickrLicenseForControls(license: SearchLicenseControls | undefined): string | undefined {\n if (!license) return undefined\n if (license.allowUnknown) return DEFAULT_LICENSE_FILTER\n if (license.commercial && license.modification) return '4,5,9,10,11,12'\n if (license.commercial) return '4,5,6,8,9,10,11,12,13'\n return undefined\n}\n\nfunction flickrSort(sort: string | undefined): string | undefined {\n if (sort === 'interesting') return 'interestingness-desc'\n if (sort === 'latest') return 'date-posted-desc'\n if (sort === 'relevance') return 'relevance'\n return undefined\n}\n\nfunction flickrSafeSearch(safety: string | undefined): 1 | 2 | 3 | undefined {\n if (safety === 'strict') return 1\n if (safety === 'moderate') return 2\n if (safety === 'off') return 3\n return undefined\n}\n\nfunction toReference(p: FlickrPhoto): Reference {\n const { license, version } = mapFlickrLicense(p.license)\n const canonicalUrl = `https://www.flickr.com/photos/${p.owner}/${p.id}`\n const rights: RightsRecord = {\n license,\n licenseVersion: ccVersionFor(license, version),\n author: p.ownername || undefined,\n rehostPolicy: 'cache-allowed',\n raw: { sourceTerms: 'https://www.flickr.com/help/terms', sourceUrl: canonicalUrl },\n }\n const previewUrl = p.url_l ?? p.url_m\n const previewW = p.url_l ? p.width_l : p.width_m\n const previewH = p.url_l ? p.height_l : p.height_m\n const thumbUrl = p.url_t ?? p.url_m\n return {\n id: referenceId('flickr', canonicalUrl),\n modality: 'image',\n kind: 'photo',\n title: p.title || undefined,\n source: { providerId: 'flickr', sourceUrl: canonicalUrl },\n canonicalUrl,\n rights,\n verifiedAt: new Date().toISOString(),\n ...(thumbUrl ? { thumbnail: { url: thumbUrl } } : {}),\n ...(previewUrl ? { preview: { url: previewUrl, mediaType: 'image/jpeg', width: previewW, height: previewH } } : {}),\n ...(previewW && previewH ? { visual: { width: previewW, height: previewH } } : {}),\n relevance: 0,\n raw: p,\n }\n}\n\nexport function flickr(config: FlickrConfig) {\n return defineProvider({\n id: 'flickr',\n modalities: ['image'],\n kinds: ['photo'],\n description: 'Community photography with per-item CC licensing (Flickr)',\n capabilities: { controls: ['sort', 'safety', 'license.commercial', 'license.modification', 'license.allowUnknown', 'creator.id', 'page'] },\n async search(q: NormalizedQuery, ctx: ProviderContext): Promise<Reference[]> {\n const opts = q.providerOptions as FlickrSearchOptions | undefined\n const url = new URL('https://api.flickr.com/services/rest/')\n url.searchParams.set('method', 'flickr.photos.search')\n url.searchParams.set('api_key', config.apiKey)\n url.searchParams.set('text', q.text)\n url.searchParams.set('license', opts?.licenseFilter ?? flickrLicenseForControls(q.controls?.license) ?? config.licenseFilter ?? DEFAULT_LICENSE_FILTER)\n url.searchParams.set('content_type', '1') // photos only (no screenshots/other)\n url.searchParams.set('media', 'photos')\n url.searchParams.set('sort', 'relevance')\n setIfString(url, 'sort', opts?.sort ?? flickrSort(q.controls?.sort), ['date-posted-asc', 'date-posted-desc', 'date-taken-asc', 'date-taken-desc', 'interestingness-desc', 'interestingness-asc', 'relevance'])\n setIfSafeSearch(url, opts?.safeSearch ?? flickrSafeSearch(q.controls?.safety))\n setTags(url, opts?.tags)\n setIfString(url, 'tag_mode', opts?.tagMode, ['any', 'all'])\n setIfString(url, 'user_id', opts?.userId ?? q.controls?.creator?.id)\n setStringOrNumber(url, 'min_upload_date', opts?.minUploadDate)\n setStringOrNumber(url, 'max_upload_date', opts?.maxUploadDate)\n setStringOrNumber(url, 'min_taken_date', opts?.minTakenDate)\n setStringOrNumber(url, 'max_taken_date', opts?.maxTakenDate)\n setIfString(url, 'bbox', opts?.bbox)\n setIfInt(url, 'accuracy', opts?.accuracy, { min: 1, max: 16 })\n setIfStringList(url, 'machine_tags', opts?.machineTags)\n setIfString(url, 'machine_tag_mode', opts?.machineTagMode, ['any', 'all'])\n setIfString(url, 'group_id', opts?.groupId)\n setIfString(url, 'woe_id', opts?.woeId)\n setIfString(url, 'place_id', opts?.placeId)\n setBooleanFlag(url, 'has_geo', opts?.hasGeo)\n setIfInt(url, 'geo_context', opts?.geoContext, { min: 0, max: 2 })\n setIfString(url, 'lat', opts?.lat)\n setIfString(url, 'lon', opts?.lon)\n setStringOrNumber(url, 'radius', opts?.radius)\n setIfString(url, 'radius_units', opts?.radiusUnits, ['mi', 'km'])\n setBooleanFlag(url, 'is_commons', opts?.isCommons)\n setBooleanFlag(url, 'in_gallery', opts?.inGallery)\n setBooleanFlag(url, 'is_getty', opts?.isGetty)\n url.searchParams.set('extras', flickrExtras(opts?.extras))\n setIfPositiveInt(url, 'page', q.controls?.page)\n setIfInt(url, 'page', opts?.page, { min: 1 })\n url.searchParams.set('per_page', String(q.limit ?? 20))\n setIfInt(url, 'per_page', opts?.perPage, { min: 1, max: 500 })\n url.searchParams.set('format', 'json')\n url.searchParams.set('nojsoncallback', '1')\n const res = await ctx.fetch(url.toString(), { signal: ctx.signal })\n if (!res.ok) throw new Error(`flickr search failed: ${res.status}`)\n const json = (await res.json()) as FlickrResponse\n if (json.stat !== 'ok' || !json.photos) throw new Error(`flickr search error: stat=${json.stat}`)\n return json.photos.photo.map(toReference)\n },\n })\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refkit/provider-flickr",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Flickr provider satellite for refkit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,14 +31,14 @@
|
|
|
31
31
|
}
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@refkit/core": "0.
|
|
34
|
+
"@refkit/core": "0.8.0"
|
|
35
35
|
},
|
|
36
36
|
"files": [
|
|
37
37
|
"dist",
|
|
38
38
|
"LICENSE"
|
|
39
39
|
],
|
|
40
40
|
"devDependencies": {
|
|
41
|
-
"@refkit/provider-testkit": "0.0
|
|
41
|
+
"@refkit/provider-testkit": "0.1.0"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"typecheck": "tsc --noEmit",
|