@opensea/seadn 2.0.3 → 2.0.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/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/sdk.spec.ts +12 -1
- package/src/sdk.ts +1 -9
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var a=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})},m=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of p(t))!c.call(e,n)&&n!==r&&a(e,n,{get:()=>t[n],enumerable:!(i=u(t,n))||i.enumerable});return e};var b=e=>m(a({},"__esModule",{value:!0}),e);var w={};d(w,{canBeOptimized:()=>s,optimize:()=>f});module.exports=b(w);function f(e,{width:t,height:r,format:i,quality:n}){try{typeof e=="string"&&(e=new URL(e))}catch(S){return e.toString()}if(!(e instanceof URL))return e;if(!s(e))return e.toString();let o=new URLSearchParams;if(r!==void 0&&o.set("h",String(r)),t!==void 0&&o.set("w",String(t)),i!==void 0&&o.set("format",i),n){if(Number(n)<=0||Number(n)>100)throw new Error("Quality has to be a positive number between 1 and 100");o.set("q",String(n))}return e.search=o.toString(),e.toString()}function s(e){if(!h(e))return!1;let t=e.pathname.split(".");if(t.length<=1)return!0;switch(t[t.length-1]){case"png":case"jpeg":case"webp":case"avif":case"ico":case void 0:return!0;default:return!1}}function h(e){return e.hostname.endsWith("seadn.io")}0&&(module.exports={canBeOptimized,optimize});
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/sdk.ts"],"sourcesContent":["export { optimize, MediaParams, MediaFormat, canBeOptimized } from \"./sdk\";\n","export type MediaFormat = \"webp\" | \"avif\" | \"jpeg\" | \"png\";\n\nexport type MediaParams = {\n width?: number | `${number}`;\n height?: number | `${number}`;\n format?: MediaFormat;\n quality?: number | `${number}`;\n};\n\nexport function optimize(\n image: string | URL,\n { width, height, format, quality }: MediaParams,\n): string {\n try {\n if (typeof image === \"string\") {\n image = new URL(image);\n }\n } catch {\n return image.toString();\n }\n\n if (!(image instanceof URL)) {\n return image;\n }\n\n if (!canBeOptimized(image)) {\n return image.toString();\n }\n\n const params = new URLSearchParams();\n if (height !== undefined) {\n params.set(\"h\", String(height));\n }\n if (width !== undefined) {\n params.set(\"w\", String(width));\n }\n if (format !== undefined) {\n params.set(\"format\", format);\n }\n if (quality) {\n if (Number(quality) <= 0 || Number(quality) > 100) {\n throw new Error(\"Quality has to be a positive number between 1 and 100\");\n }\n params.set(\"q\", String(quality));\n }\n\n image.search = params.toString();\n return image.toString();\n}\n\nexport function canBeOptimized(url: URL): boolean {\n if (!isSeadnURL(url)) {\n return false;\n }\n\n const split = url.pathname.split(\".\");\n if (split.length <= 1) {\n return true;\n }\n\n const extension = split[split.length - 1];\n switch (extension) {\n case \"png\":\n case \"jpeg\":\n case \"webp\":\n case \"avif\":\n case \"ico\":\n case undefined:\n return true;\n default:\n return false;\n }\n}\n\nexport function isSeadnURL(url: URL): boolean {\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/sdk.ts"],"sourcesContent":["export { optimize, MediaParams, MediaFormat, canBeOptimized } from \"./sdk\";\n","export type MediaFormat = \"webp\" | \"avif\" | \"jpeg\" | \"png\";\n\nexport type MediaParams = {\n width?: number | `${number}`;\n height?: number | `${number}`;\n format?: MediaFormat;\n quality?: number | `${number}`;\n};\n\nexport function optimize(\n image: string | URL,\n { width, height, format, quality }: MediaParams,\n): string {\n try {\n if (typeof image === \"string\") {\n image = new URL(image);\n }\n } catch {\n return image.toString();\n }\n\n if (!(image instanceof URL)) {\n return image;\n }\n\n if (!canBeOptimized(image)) {\n return image.toString();\n }\n\n const params = new URLSearchParams();\n if (height !== undefined) {\n params.set(\"h\", String(height));\n }\n if (width !== undefined) {\n params.set(\"w\", String(width));\n }\n if (format !== undefined) {\n params.set(\"format\", format);\n }\n if (quality) {\n if (Number(quality) <= 0 || Number(quality) > 100) {\n throw new Error(\"Quality has to be a positive number between 1 and 100\");\n }\n params.set(\"q\", String(quality));\n }\n\n image.search = params.toString();\n return image.toString();\n}\n\nexport function canBeOptimized(url: URL): boolean {\n if (!isSeadnURL(url)) {\n return false;\n }\n\n const split = url.pathname.split(\".\");\n if (split.length <= 1) {\n return true;\n }\n\n const extension = split[split.length - 1];\n switch (extension) {\n case \"png\":\n case \"jpeg\":\n case \"webp\":\n case \"avif\":\n case \"ico\":\n case undefined:\n return true;\n default:\n return false;\n }\n}\n\nexport function isSeadnURL(url: URL): boolean {\n return url.hostname.endsWith(\"seadn.io\");\n}\n"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,EAAA,aAAAC,IAAA,eAAAC,EAAAJ,GCSO,SAASK,EACdC,EACA,CAAE,MAAAC,EAAO,OAAAC,EAAQ,OAAAC,EAAQ,QAAAC,CAAQ,EACzB,CACR,GAAI,CACE,OAAOJ,GAAU,WACnBA,EAAQ,IAAI,IAAIA,CAAK,EAEzB,OAAQK,EAAA,CACN,OAAOL,EAAM,SAAS,CACxB,CAEA,GAAI,EAAEA,aAAiB,KACrB,OAAOA,EAGT,GAAI,CAACM,EAAeN,CAAK,EACvB,OAAOA,EAAM,SAAS,EAGxB,IAAMO,EAAS,IAAI,gBAUnB,GATIL,IAAW,QACbK,EAAO,IAAI,IAAK,OAAOL,CAAM,CAAC,EAE5BD,IAAU,QACZM,EAAO,IAAI,IAAK,OAAON,CAAK,CAAC,EAE3BE,IAAW,QACbI,EAAO,IAAI,SAAUJ,CAAM,EAEzBC,EAAS,CACX,GAAI,OAAOA,CAAO,GAAK,GAAK,OAAOA,CAAO,EAAI,IAC5C,MAAM,IAAI,MAAM,uDAAuD,EAEzEG,EAAO,IAAI,IAAK,OAAOH,CAAO,CAAC,CACjC,CAEA,OAAAJ,EAAM,OAASO,EAAO,SAAS,EACxBP,EAAM,SAAS,CACxB,CAEO,SAASM,EAAeE,EAAmB,CAChD,GAAI,CAACC,EAAWD,CAAG,EACjB,MAAO,GAGT,IAAME,EAAQF,EAAI,SAAS,MAAM,GAAG,EACpC,GAAIE,EAAM,QAAU,EAClB,MAAO,GAIT,OADkBA,EAAMA,EAAM,OAAS,CAAC,EACrB,CACjB,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,MACL,KAAK,OACH,MAAO,GACT,QACE,MAAO,EACX,CACF,CAEO,SAASD,EAAWD,EAAmB,CAC5C,OAAOA,EAAI,SAAS,SAAS,UAAU,CACzC","names":["src_exports","__export","canBeOptimized","optimize","__toCommonJS","optimize","image","width","height","format","quality","e","canBeOptimized","params","url","isSeadnURL","split"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function
|
|
1
|
+
function s(e,{width:t,height:i,format:o,quality:r}){try{typeof e=="string"&&(e=new URL(e))}catch(u){return e.toString()}if(!(e instanceof URL))return e;if(!a(e))return e.toString();let n=new URLSearchParams;if(i!==void 0&&n.set("h",String(i)),t!==void 0&&n.set("w",String(t)),o!==void 0&&n.set("format",o),r){if(Number(r)<=0||Number(r)>100)throw new Error("Quality has to be a positive number between 1 and 100");n.set("q",String(r))}return e.search=n.toString(),e.toString()}function a(e){if(!f(e))return!1;let t=e.pathname.split(".");if(t.length<=1)return!0;switch(t[t.length-1]){case"png":case"jpeg":case"webp":case"avif":case"ico":case void 0:return!0;default:return!1}}function f(e){return e.hostname.endsWith("seadn.io")}export{a as canBeOptimized,s as optimize};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sdk.ts"],"sourcesContent":["export type MediaFormat = \"webp\" | \"avif\" | \"jpeg\" | \"png\";\n\nexport type MediaParams = {\n width?: number | `${number}`;\n height?: number | `${number}`;\n format?: MediaFormat;\n quality?: number | `${number}`;\n};\n\nexport function optimize(\n image: string | URL,\n { width, height, format, quality }: MediaParams,\n): string {\n try {\n if (typeof image === \"string\") {\n image = new URL(image);\n }\n } catch {\n return image.toString();\n }\n\n if (!(image instanceof URL)) {\n return image;\n }\n\n if (!canBeOptimized(image)) {\n return image.toString();\n }\n\n const params = new URLSearchParams();\n if (height !== undefined) {\n params.set(\"h\", String(height));\n }\n if (width !== undefined) {\n params.set(\"w\", String(width));\n }\n if (format !== undefined) {\n params.set(\"format\", format);\n }\n if (quality) {\n if (Number(quality) <= 0 || Number(quality) > 100) {\n throw new Error(\"Quality has to be a positive number between 1 and 100\");\n }\n params.set(\"q\", String(quality));\n }\n\n image.search = params.toString();\n return image.toString();\n}\n\nexport function canBeOptimized(url: URL): boolean {\n if (!isSeadnURL(url)) {\n return false;\n }\n\n const split = url.pathname.split(\".\");\n if (split.length <= 1) {\n return true;\n }\n\n const extension = split[split.length - 1];\n switch (extension) {\n case \"png\":\n case \"jpeg\":\n case \"webp\":\n case \"avif\":\n case \"ico\":\n case undefined:\n return true;\n default:\n return false;\n }\n}\n\nexport function isSeadnURL(url: URL): boolean {\n
|
|
1
|
+
{"version":3,"sources":["../src/sdk.ts"],"sourcesContent":["export type MediaFormat = \"webp\" | \"avif\" | \"jpeg\" | \"png\";\n\nexport type MediaParams = {\n width?: number | `${number}`;\n height?: number | `${number}`;\n format?: MediaFormat;\n quality?: number | `${number}`;\n};\n\nexport function optimize(\n image: string | URL,\n { width, height, format, quality }: MediaParams,\n): string {\n try {\n if (typeof image === \"string\") {\n image = new URL(image);\n }\n } catch {\n return image.toString();\n }\n\n if (!(image instanceof URL)) {\n return image;\n }\n\n if (!canBeOptimized(image)) {\n return image.toString();\n }\n\n const params = new URLSearchParams();\n if (height !== undefined) {\n params.set(\"h\", String(height));\n }\n if (width !== undefined) {\n params.set(\"w\", String(width));\n }\n if (format !== undefined) {\n params.set(\"format\", format);\n }\n if (quality) {\n if (Number(quality) <= 0 || Number(quality) > 100) {\n throw new Error(\"Quality has to be a positive number between 1 and 100\");\n }\n params.set(\"q\", String(quality));\n }\n\n image.search = params.toString();\n return image.toString();\n}\n\nexport function canBeOptimized(url: URL): boolean {\n if (!isSeadnURL(url)) {\n return false;\n }\n\n const split = url.pathname.split(\".\");\n if (split.length <= 1) {\n return true;\n }\n\n const extension = split[split.length - 1];\n switch (extension) {\n case \"png\":\n case \"jpeg\":\n case \"webp\":\n case \"avif\":\n case \"ico\":\n case undefined:\n return true;\n default:\n return false;\n }\n}\n\nexport function isSeadnURL(url: URL): boolean {\n return url.hostname.endsWith(\"seadn.io\");\n}\n"],"mappings":"AASO,SAASA,EACdC,EACA,CAAE,MAAAC,EAAO,OAAAC,EAAQ,OAAAC,EAAQ,QAAAC,CAAQ,EACzB,CACR,GAAI,CACE,OAAOJ,GAAU,WACnBA,EAAQ,IAAI,IAAIA,CAAK,EAEzB,OAAQK,EAAA,CACN,OAAOL,EAAM,SAAS,CACxB,CAEA,GAAI,EAAEA,aAAiB,KACrB,OAAOA,EAGT,GAAI,CAACM,EAAeN,CAAK,EACvB,OAAOA,EAAM,SAAS,EAGxB,IAAMO,EAAS,IAAI,gBAUnB,GATIL,IAAW,QACbK,EAAO,IAAI,IAAK,OAAOL,CAAM,CAAC,EAE5BD,IAAU,QACZM,EAAO,IAAI,IAAK,OAAON,CAAK,CAAC,EAE3BE,IAAW,QACbI,EAAO,IAAI,SAAUJ,CAAM,EAEzBC,EAAS,CACX,GAAI,OAAOA,CAAO,GAAK,GAAK,OAAOA,CAAO,EAAI,IAC5C,MAAM,IAAI,MAAM,uDAAuD,EAEzEG,EAAO,IAAI,IAAK,OAAOH,CAAO,CAAC,CACjC,CAEA,OAAAJ,EAAM,OAASO,EAAO,SAAS,EACxBP,EAAM,SAAS,CACxB,CAEO,SAASM,EAAeE,EAAmB,CAChD,GAAI,CAACC,EAAWD,CAAG,EACjB,MAAO,GAGT,IAAME,EAAQF,EAAI,SAAS,MAAM,GAAG,EACpC,GAAIE,EAAM,QAAU,EAClB,MAAO,GAIT,OADkBA,EAAMA,EAAM,OAAS,CAAC,EACrB,CACjB,IAAK,MACL,IAAK,OACL,IAAK,OACL,IAAK,OACL,IAAK,MACL,KAAK,OACH,MAAO,GACT,QACE,MAAO,EACX,CACF,CAEO,SAASD,EAAWD,EAAmB,CAC5C,OAAOA,EAAI,SAAS,SAAS,UAAU,CACzC","names":["optimize","image","width","height","format","quality","e","canBeOptimized","params","url","isSeadnURL","split"]}
|
package/package.json
CHANGED
package/src/sdk.spec.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { test, expect } from "vitest";
|
|
2
|
-
import { MediaParams, optimize } from "./sdk";
|
|
2
|
+
import { MediaParams, isSeadnURL, optimize } from "./sdk";
|
|
3
3
|
|
|
4
4
|
test.each([
|
|
5
5
|
[undefined, {} satisfies MediaParams, undefined],
|
|
@@ -75,3 +75,14 @@ test.each([
|
|
|
75
75
|
])("resizeImage(%o, %o) -> %o", (url, resizeParams, expected) => {
|
|
76
76
|
expect(optimize(url as string, resizeParams)).toEqual(expected);
|
|
77
77
|
});
|
|
78
|
+
|
|
79
|
+
test.each([
|
|
80
|
+
[
|
|
81
|
+
new URL(
|
|
82
|
+
"https://i.seadn.io/gae/4BPr2Ueh5cwpdgnGeY83ygypQP0TM1RH7tjNS54fLIcb7btmCQS7osWsaVWpaA6DBvJcSZQgnWQLf3kLRA0ss-IaN8Gg7pkZlEQ3",
|
|
83
|
+
),
|
|
84
|
+
true,
|
|
85
|
+
],
|
|
86
|
+
])("isSeadnURL(%o, %o) -> %o", (url, expected) => {
|
|
87
|
+
expect(isSeadnURL(url)).toEqual(expected);
|
|
88
|
+
});
|
package/src/sdk.ts
CHANGED
|
@@ -73,13 +73,5 @@ export function canBeOptimized(url: URL): boolean {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export function isSeadnURL(url: URL): boolean {
|
|
76
|
-
|
|
77
|
-
case "i2.dev.seadn.io":
|
|
78
|
-
case "i2c.dev.seadn.io":
|
|
79
|
-
case "i2.seadn.io":
|
|
80
|
-
case "i2c.seadn.io":
|
|
81
|
-
return true;
|
|
82
|
-
default:
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
76
|
+
return url.hostname.endsWith("seadn.io");
|
|
85
77
|
}
|