@webnovel-proxy/schemas 0.3.0 → 0.5.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.d.ts +13 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +5 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -444,6 +444,11 @@ export type NovelFireNetNovelId = z.infer<typeof NovelFireNetNovelId>;
|
|
|
444
444
|
/** @example `n/example-novel/c/chapter-1` */
|
|
445
445
|
export declare const NovelFireNetNovelChapterId: z.ZodString;
|
|
446
446
|
export type NovelFireNetNovelChapterId = z.infer<typeof NovelFireNetNovelChapterId>;
|
|
447
|
+
export declare const WebNovelComAuth: z.ZodObject<{
|
|
448
|
+
uid: z.ZodString;
|
|
449
|
+
ukey: z.ZodString;
|
|
450
|
+
}, z.core.$strip>;
|
|
451
|
+
export type WebNovelComAuth = z.infer<typeof WebNovelComAuth>;
|
|
447
452
|
/** @example `n/1234` */
|
|
448
453
|
export declare const WebNovelComNovelId: z.ZodString;
|
|
449
454
|
export type WebNovelComNovelId = z.infer<typeof WebNovelComNovelId>;
|
|
@@ -2507,6 +2512,14 @@ export declare const WebNovel: z.ZodObject<{
|
|
|
2507
2512
|
}, z.core.$strip>>;
|
|
2508
2513
|
}, z.core.$strip>;
|
|
2509
2514
|
export type WebNovel = z.infer<typeof WebNovel>;
|
|
2515
|
+
/**
|
|
2516
|
+
* Return primary translation, if none is marked as primary, return the first one
|
|
2517
|
+
*/
|
|
2518
|
+
export declare function getPrimaryTranslation(t: Translation[]): Translation | undefined;
|
|
2519
|
+
/**
|
|
2520
|
+
* Return primary image, if none is marked as primary, return the first one
|
|
2521
|
+
*/
|
|
2522
|
+
export declare function getPrimaryImage(t: Image[]): Image | undefined;
|
|
2510
2523
|
export declare function webNovelExternalIdentifierToURL(ext: ExternalIdentifier): URL | undefined;
|
|
2511
2524
|
declare const ImageConfig: z.ZodDiscriminatedUnion<[
|
|
2512
2525
|
z.ZodObject<{
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import k from"zod";var u=k.string().regex(/^n\/\d+$/,"Invalid WebNovel novel ID"),y=k.string().regex(/^n\/\d+\/c\/\d+$/,"Invalid WebNovel novel chapter ID"),N=k.string().regex(/^c\/\d+$/,"Invalid WebNovel creator ID");import T from"zod";import P from"zod";var w=P.string().regex(/^n\/[a-zA-Z0-9_-]+$/,"Invalid HostedNovel novel ID"),W=P.string().regex(/^n\/[a-zA-Z0-9_-]+\/c\/[a-zA-Z0-9_-]+$/,"Invalid HostedNovel novel chapter ID"),v=P.string().regex(/^c\/[a-zA-Z0-9_-]+$/,"Invalid HostedNovel creator ID");import O from"zod";var j=O.string().regex(/^n\/[a-zA-Z0-9_-]+$/,"Invalid NovelFire novel ID"),I=O.string().regex(/^n\/[a-zA-Z0-9_-]+\/c\/[a-zA-Z0-9_-]+$/,"Invalid NovelFire novel chapter ID");var M=T.enum(["webnovel.com","novelfire.net","hostednovel.com"]),s=T.object({provider:M,id:T.union([u,y,N,j,I,w,W,v])}),D=T.enum(["qidian.com","ciweimao.com"]);import S from"language-tags";import J from"zod";var b=J.string().refine((r)=>S(r).valid(),{error:(r)=>`Invalid Language Tag: ${S(String(r?.input??"")).errors().join(";")}`}).transform((r)=>String(S(r).format()));var V=["abr","acp","act","adi","adp","aft","anc","anl","anm","ann","ant","ape","apl","app","aqt","arc","ard","arr","art","asg","asn","ato","att","auc","aud","aue","aui","aup","aus","aut","bdd","bjd","bka","bkd","bkp","blw","bnd","bpd","brd","brl","bsl","cad","cas","ccp","chr","cli","cll","clr","clt","cmm","cmp","cmt","cnd","cng","cns","coe","col","com","con","cop","cor","cos","cot","cou","cov","cpc","cpe","cph","cpl","cpt","cre","crp","crr","crt","csl","csp","cst","ctb","cte","ctg","ctr","cts","ctt","cur","cwt","dbd","dbp","dfd","dfe","dft","dgc","dgg","dgs","dis","djo","dln","dnc","dnr","dpc","dpt","drm","drt","dsr","dst","dtc","dte","dtm","dto","dub","edc","edd","edm","edt","egr","elg","elt","eng","enj","etr","evp","exp","fac","fds","fld","flm","fmd","fmk","fmo","fmp","fnd","fon","fpy","frg","gdv","gis","his","hnr","hst","ill","ilu","ink","ins","inv","isb","itr","ive","ivr","jud","jug","lbr","lbt","ldr","led","lee","lel","len","let","lgd","lie","lil","lit","lsa","lse","lso","ltg","ltr","lyr","mcp","mdc","med","mfp","mfr","mka","mod","mon","mrb","mrk","msd","mte","mtk","mup","mus","mxe","nan","nrt","onp","opn","org","orm","osp","oth","own","pad","pan","pat","pbd","pbl","pdr","pfr","pht","plt","pma","pmn","pnc","pop","ppm","ppt","pra","prc","prd","pre","prf","prg","prm","prn","pro","prp","prs","prt","prv","pta","pte","ptf","pth","ptt","pup","rap","rbr","rcd","rce","rcp","rdd","red","ren","res","rev","rpc","rps","rpt","rpy","rse","rsg","rsp","rsr","rst","rth","rtm","rxa","sad","sce","scl","scr","sde","sds","sec","sfx","sgd","sgn","sht","sll","sng","spk","spn","spy","srv","std","stg","stl","stm","stn","str","swd","tad","tau","tcd","tch","ths","tld","tlg","tlh","tlp","trc","trl","tyd","tyg","uvp","vac","vdg","vfx","voc","wac","wal","wam","wat","waw","wdc","wde","wfs","wft","wfw","win","wit","wpr","wst","wts"];import K from"zod";var $=K.enum(V);import{Mime as Q}from"mime/lite";import X from"mime/types/other.js";import Y from"mime/types/standard.js";var q=new Q().define({...Y,...X});import{Temporal as h}from"temporal-polyfill";import E from"zod";var m=E.string({error:(r)=>`Not a string: "${typeof r?.input}"`}).transform((r)=>r.trim()).refine((r)=>r!=="","String must not be empty"),vr=E.string({error:(r)=>`Not a string: "${typeof r?.input}"`}).transform((r)=>r.trim()).transform((r)=>r===""?null:r),c=E.custom((r)=>{return typeof r==="string"&&/^(\d{4})(-\d{2})?(-\d{2})?(T\d{2}:\d{2}:\d{2}Z)?$/.test(r)}).refine((r)=>{if(r.indexOf("T")>0)try{return h.Instant.from(r),!0}catch{return!1}else{let l=r.split("-");if(l.length>3)return!1;else if(l.length===3)try{return h.PlainDate.from(r),!0}catch{return!1}else if(l.length===2)try{return h.PlainDate.from(r+"-01"),!0}catch{return!1}else if(l.length===1)try{return h.PlainDate.from(r+"-01-01"),!0}catch{return!1}return!1}},{error:(r)=>`Date "${String(r?.input??"").substring(0,20)}" is invalid`}),H=E.coerce.string().refine((r)=>q.getExtension(r)!==null,{error:(r)=>`Invalid MIME type "${String(r.input)}"`}).transform((r)=>r.toLocaleLowerCase().trim());function i(r){let l=r.filter((d)=>d.primary===!0).length;if(l>1){let d=r.findIndex((n)=>n.primary===!0);return r.map((n,t)=>{return n.primary=t===d,n})}if(l===0&&typeof r[0]<"u")return r[0].primary=!0,r;return r}import o from"zod";var f=o.object({language:b.nullable().default(null),value:m,type:o.enum(["plain","markdown","html"]).nullable().default(null),primary:o.boolean().default(!1)}),Z=o.object({displayName:m,givenName:m.nullable(),middleName:m.nullable(),familyName:m.nullable(),primary:o.boolean().default(!1)}),A=o.object({externalIdentifiers:o.array(s),names:o.array(Z).min(1).transform(i),roles:o.array($)}),F=o.enum(["cover","backdrop","spine","back"]),B=o.intersection(o.object({type:F,height:o.int().min(1).nullable(),width:o.int().min(1).nullable(),language:b.nullable().default(null),primary:o.boolean().default(!1),mediaType:H.pipe(o.string().startsWith("image/")).nullable()}),o.union([o.object({provider:M,id:m}),o.object({provider:o.null(),id:o.url()})]));import a from"zod";var Hr=a.object({originalHTML:a.array(m),originalHTMLSize:a.int().min(0),generatedMarkdown:m,generatedMarkdownSize:a.int().min(0)}),g=a.object({externalIdentifiers:a.array(s).min(1),volumeNumber:a.number().min(0).nullable(),number:a.number().min(0),names:a.array(f).min(1).transform(i),creators:a.array(A),createdAt:c.nullable(),updatedAt:c.nullable()}),_=a.object({externalIdentifiers:a.array(s),number:a.number().min(0),names:a.array(f).transform(i),createdAt:c.nullable(),updatedAt:c.nullable(),chapters:a.array(g)}),Br=a.object({externalIdentifiers:a.array(s).min(1),names:a.array(f).min(1).transform(i),language:b,overviews:a.array(f).transform(i),creators:a.array(A),images:a.array(B).transform(i),originalLanguage:b.nullable(),originalSource:D.nullable(),isComplete:a.boolean().nullable(),createdAt:c.nullable(),updatedAt:c.nullable(),volumes:a.array(_)});import p from"zod";function Yr(r){if(r.provider==="webnovel.com"){let l=u.safeParse(r.id)?.data??void 0,d=y.safeParse(r.id)?.data??void 0,n=N.safeParse(r.id)?.data??void 0,t="https://www.webnovel.com";if(typeof l==="string")return new URL(`/book/${l.substring(2)}`,"https://www.webnovel.com");else if(typeof d==="string"){let e=d.split("/");return new URL(`/book/${e[1]}/${e[3]}`,"https://www.webnovel.com")}else if(typeof n==="string")return new URL(`/profile/${n.substring(2)}`,"https://www.webnovel.com")}else if(r.provider==="novelfire.net"){let l=j.safeParse(r.id)?.data??void 0,d=I.safeParse(r.id)?.data??void 0,n="https://novelfire.net";if(typeof l==="string")return new URL(`/book/${l.substring(2)}`,"https://novelfire.net");else if(typeof d==="string"){let t=d.split("/");return new URL(`/book/${t[1]}/${t[3]}`,"https://novelfire.net")}}else if(r.provider==="hostednovel.com"){let l=w.safeParse(r.id)?.data??void 0,d=W.safeParse(r.id)?.data??void 0,n=v.safeParse(r.id)?.data??void 0,t="https://hostednovel.com";if(typeof l==="string")return new URL(`/novel/${l.substring(2)}`,"https://hostednovel.com");else if(typeof d==="string"){let e=d.split("/");return new URL(`/novel/${e[1]}/${e[3]}`,"https://hostednovel.com")}else if(typeof n==="string")return new URL(`/creator/${n.substring(2)}`,"https://hostednovel.com")}return}var G=p.object({imageProxy:p.literal("wsrv.nl"),output:p.enum(["jpg","jxl","png","gif","tiff","webp","original"]).default("original").optional(),quality:p.int().min(1).max(100).default(80).optional(),default:p.url().optional(),lossless:p.boolean().optional(),compressionLevel:p.int().min(0).max(9).default(6).optional(),width:p.int().min(1).max(Number.MAX_SAFE_INTEGER).optional(),height:p.int().min(1).max(Number.MAX_SAFE_INTEGER).optional(),devicePixelRatio:p.int().min(1).max(8).optional(),fit:p.enum(["inside","outside","cover","fill","contain"]).optional(),withoutEnlargement:p.boolean().default(!0).optional(),alignmentPosition:p.enum(["top","right","bottom","left","top-left","bottom-left","bottom-right","top-right","center","entropy","attention"]).default("center").optional()}),C=p.discriminatedUnion("imageProxy",[p.object({imageProxy:p.literal(!1)}),G]);function Zr(r,l={imageProxy:!1}){let d=C.parse(l),n=void 0;if(r.provider==="webnovel.com"){if(/^n\/\d+(\/\d+)?/.test(r.id)){let t=r.id.split("/");if(n=new URL(`/bookcover/${t[1]}`,"https://book-pic.webnovel.com"),n.searchParams.set("imageMogr2/thumbnail/600x",""),typeof t?.[2]==="string")n.searchParams.set("imageId",t[2])}}if(typeof n>"u")return;if(d.imageProxy==="wsrv.nl"){let t=new URL("https://wsrv.nl");t.searchParams.set("url",n.toString());let e=G.parse(d);if(typeof e?.width==="number")t.searchParams.set("w",e.width.toString());else if(typeof r?.width==="number")t.searchParams.set("w",r.width.toString());if(typeof e?.height==="number")t.searchParams.set("h",e.height.toString());else if(typeof r?.height==="number")t.searchParams.set("h",r.height.toString());if(typeof e?.devicePixelRatio==="number")t.searchParams.set("dpr",e.devicePixelRatio.toString());if(typeof e?.fit==="string")t.searchParams.set("fit",e.fit);if(typeof e?.withoutEnlargement==="boolean"&&e.withoutEnlargement===!0)t.searchParams.set("we","true");if(typeof e?.alignmentPosition==="string")t.searchParams.set("a",e.alignmentPosition);if(typeof e?.compressionLevel==="number")t.searchParams.set("l",e.compressionLevel.toString());if(typeof e?.lossless==="boolean"&&e.lossless===!0)t.searchParams.set("ll","true");if(typeof e?.default==="string")t.searchParams.set("default",e.default);if(typeof e?.output==="string"&&e.output!=="original")t.searchParams.set("output",e.output);if(typeof e?.quality==="number")t.searchParams.set("q",e.quality.toString());return t}return n}export{Zr as webNovelImageToURL,Yr as webNovelExternalIdentifierToURL,q as mime,_ as WebNovelVolume,u as WebNovelComNovelId,y as WebNovelComNovelChapterId,N as WebNovelComCreatorId,Hr as WebNovelChapterContent,g as WebNovelChapter,Br as WebNovel,f as Translation,$ as Relator,Z as PersonalName,c as PartialDateTime,D as OriginalSource,vr as NullableNonEmptyString,j as NovelFireNetNovelId,I as NovelFireNetNovelChapterId,m as NonEmptyString,H as Mime,F as ImageType,B as Image,w as HostedNovelComNovelId,W as HostedNovelComNovelChapterId,v as HostedNovelComCreatorId,M as ExternalProvider,s as ExternalIdentifier,A as Creator,b as BCP47LanguageTag};
|
|
1
|
+
import s from"zod";var z=s.object({uid:s.string().regex(/^\d+$/).max(64),ukey:s.string().regex(/^[a-zA-Z0-9]+$/).max(64)}),N=s.string().regex(/^n\/\d+$/,"Invalid WebNovel novel ID"),y=s.string().regex(/^n\/\d+\/c\/\d+$/,"Invalid WebNovel novel chapter ID"),W=s.string().regex(/^c\/\d+$/,"Invalid WebNovel creator ID");import T from"zod";import A from"zod";var v=A.string().regex(/^n\/[a-zA-Z0-9_-]+$/,"Invalid HostedNovel novel ID"),w=A.string().regex(/^n\/[a-zA-Z0-9_-]+\/c\/[a-zA-Z0-9_-]+$/,"Invalid HostedNovel novel chapter ID"),j=A.string().regex(/^c\/[a-zA-Z0-9_-]+$/,"Invalid HostedNovel creator ID");import $ from"zod";var h=$.string().regex(/^n\/[a-zA-Z0-9_-]+$/,"Invalid NovelFire novel ID"),I=$.string().regex(/^n\/[a-zA-Z0-9_-]+\/c\/[a-zA-Z0-9_-]+$/,"Invalid NovelFire novel chapter ID");var P=T.enum(["webnovel.com","novelfire.net","hostednovel.com"]),b=T.object({provider:P,id:T.union([N,y,W,h,I,v,w,j])}),O=T.enum(["qidian.com","ciweimao.com"]);import M from"language-tags";import B from"zod";var u=B.string().refine((r)=>M(r).valid(),{error:(r)=>`Invalid Language Tag: ${M(String(r?.input??"")).errors().join(";")}`}).transform((r)=>String(M(r).format()));var D=["abr","acp","act","adi","adp","aft","anc","anl","anm","ann","ant","ape","apl","app","aqt","arc","ard","arr","art","asg","asn","ato","att","auc","aud","aue","aui","aup","aus","aut","bdd","bjd","bka","bkd","bkp","blw","bnd","bpd","brd","brl","bsl","cad","cas","ccp","chr","cli","cll","clr","clt","cmm","cmp","cmt","cnd","cng","cns","coe","col","com","con","cop","cor","cos","cot","cou","cov","cpc","cpe","cph","cpl","cpt","cre","crp","crr","crt","csl","csp","cst","ctb","cte","ctg","ctr","cts","ctt","cur","cwt","dbd","dbp","dfd","dfe","dft","dgc","dgg","dgs","dis","djo","dln","dnc","dnr","dpc","dpt","drm","drt","dsr","dst","dtc","dte","dtm","dto","dub","edc","edd","edm","edt","egr","elg","elt","eng","enj","etr","evp","exp","fac","fds","fld","flm","fmd","fmk","fmo","fmp","fnd","fon","fpy","frg","gdv","gis","his","hnr","hst","ill","ilu","ink","ins","inv","isb","itr","ive","ivr","jud","jug","lbr","lbt","ldr","led","lee","lel","len","let","lgd","lie","lil","lit","lsa","lse","lso","ltg","ltr","lyr","mcp","mdc","med","mfp","mfr","mka","mod","mon","mrb","mrk","msd","mte","mtk","mup","mus","mxe","nan","nrt","onp","opn","org","orm","osp","oth","own","pad","pan","pat","pbd","pbl","pdr","pfr","pht","plt","pma","pmn","pnc","pop","ppm","ppt","pra","prc","prd","pre","prf","prg","prm","prn","pro","prp","prs","prt","prv","pta","pte","ptf","pth","ptt","pup","rap","rbr","rcd","rce","rcp","rdd","red","ren","res","rev","rpc","rps","rpt","rpy","rse","rsg","rsp","rsr","rst","rth","rtm","rxa","sad","sce","scl","scr","sde","sds","sec","sfx","sgd","sgn","sht","sll","sng","spk","spn","spy","srv","std","stg","stl","stm","stn","str","swd","tad","tau","tcd","tch","ths","tld","tlg","tlh","tlp","trc","trl","tyd","tyg","uvp","vac","vdg","vfx","voc","wac","wal","wam","wat","waw","wdc","wde","wfs","wft","wfw","win","wit","wpr","wst","wts"];import G from"zod";var V=G.enum(D);import{Mime as J}from"mime/lite";import K from"mime/types/other.js";import Q from"mime/types/standard.js";var q=new J().define({...Q,...K});import{Temporal as E}from"temporal-polyfill";import k from"zod";var m=k.string({error:(r)=>`Not a string: "${typeof r?.input}"`}).transform((r)=>r.trim()).refine((r)=>r!=="","String must not be empty"),jr=k.string({error:(r)=>`Not a string: "${typeof r?.input}"`}).transform((r)=>r.trim()).transform((r)=>r===""?null:r),i=k.custom((r)=>{return typeof r==="string"&&/^(\d{4})(-\d{2})?(-\d{2})?(T\d{2}:\d{2}:\d{2}Z)?$/.test(r)}).refine((r)=>{if(r.indexOf("T")>0)try{return E.Instant.from(r),!0}catch{return!1}else{let o=r.split("-");if(o.length>3)return!1;else if(o.length===3)try{return E.PlainDate.from(r),!0}catch{return!1}else if(o.length===2)try{return E.PlainDate.from(r+"-01"),!0}catch{return!1}else if(o.length===1)try{return E.PlainDate.from(r+"-01-01"),!0}catch{return!1}return!1}},{error:(r)=>`Date "${String(r?.input??"").substring(0,20)}" is invalid`}),H=k.coerce.string().refine((r)=>q.getExtension(r)!==null,{error:(r)=>`Invalid MIME type "${String(r.input)}"`}).transform((r)=>r.toLocaleLowerCase().trim());function c(r){let o=r.filter((n)=>n.primary===!0).length;if(o>1){let n=r.findIndex((p)=>p.primary===!0);return r.map((p,t)=>{return p.primary=t===n,p})}if(o===0&&typeof r[0]<"u")return r[0].primary=!0,r;return r}import a from"zod";var f=a.object({language:u.nullable().default(null),value:m,type:a.enum(["plain","markdown","html"]).nullable().default(null),primary:a.boolean().default(!1)}),X=a.object({displayName:m,givenName:m.nullable(),middleName:m.nullable(),familyName:m.nullable(),primary:a.boolean().default(!1)}),S=a.object({externalIdentifiers:a.array(b),names:a.array(X).min(1).transform(c),roles:a.array(V)}),Y=a.enum(["cover","backdrop","spine","back"]),Z=a.intersection(a.object({type:Y,height:a.int().min(1).nullable(),width:a.int().min(1).nullable(),language:u.nullable().default(null),primary:a.boolean().default(!1),mediaType:H.pipe(a.string().startsWith("image/")).nullable()}),a.union([a.object({provider:P,id:m}),a.object({provider:a.null(),id:a.url()})]));import l from"zod";var Zr=l.object({originalHTML:l.array(m),originalHTMLSize:l.int().min(0),generatedMarkdown:m,generatedMarkdownSize:l.int().min(0)}),C=l.object({externalIdentifiers:l.array(b).min(1),volumeNumber:l.number().min(0).nullable(),number:l.number().min(0),names:l.array(f).min(1).transform(c),creators:l.array(S),createdAt:i.nullable(),updatedAt:i.nullable()}),F=l.object({externalIdentifiers:l.array(b),number:l.number().min(0),names:l.array(f).transform(c),createdAt:i.nullable(),updatedAt:i.nullable(),chapters:l.array(C)}),gr=l.object({externalIdentifiers:l.array(b).min(1),names:l.array(f).min(1).transform(c),language:u,overviews:l.array(f).transform(c),creators:l.array(S),images:l.array(Z).transform(c),originalLanguage:u.nullable(),originalSource:O.nullable(),isComplete:l.boolean().nullable(),createdAt:i.nullable(),updatedAt:i.nullable(),volumes:l.array(F)});function Gr(r){let o=r.find((n)=>n.primary===!0);if(typeof o<"u")return o;return r?.[0]??void 0}function Jr(r){let o=r.find((n)=>n.primary===!0);if(typeof o<"u")return o;return r?.[0]??void 0}import d from"zod";function Fr(r){if(r.provider==="webnovel.com"){let o=N.safeParse(r.id)?.data??void 0,n=y.safeParse(r.id)?.data??void 0,p=W.safeParse(r.id)?.data??void 0,t="https://www.webnovel.com";if(typeof o==="string")return new URL(`/book/${o.substring(2)}`,"https://www.webnovel.com");else if(typeof n==="string"){let e=n.split("/");return new URL(`/book/${e[1]}/${e[3]}`,"https://www.webnovel.com")}else if(typeof p==="string")return new URL(`/profile/${p.substring(2)}`,"https://www.webnovel.com")}else if(r.provider==="novelfire.net"){let o=h.safeParse(r.id)?.data??void 0,n=I.safeParse(r.id)?.data??void 0,p="https://novelfire.net";if(typeof o==="string")return new URL(`/book/${o.substring(2)}`,"https://novelfire.net");else if(typeof n==="string"){let t=n.split("/");return new URL(`/book/${t[1]}/${t[3]}`,"https://novelfire.net")}}else if(r.provider==="hostednovel.com"){let o=v.safeParse(r.id)?.data??void 0,n=w.safeParse(r.id)?.data??void 0,p=j.safeParse(r.id)?.data??void 0,t="https://hostednovel.com";if(typeof o==="string")return new URL(`/novel/${o.substring(2)}`,"https://hostednovel.com");else if(typeof n==="string"){let e=n.split("/");return new URL(`/novel/${e[1]}/${e[3]}`,"https://hostednovel.com")}else if(typeof p==="string")return new URL(`/creator/${p.substring(2)}`,"https://hostednovel.com")}return}var g=d.object({imageProxy:d.literal("wsrv.nl"),output:d.enum(["jpg","jxl","png","gif","tiff","webp","original"]).default("original").optional(),quality:d.int().min(1).max(100).default(80).optional(),default:d.url().optional(),lossless:d.boolean().optional(),compressionLevel:d.int().min(0).max(9).default(6).optional(),width:d.int().min(1).max(Number.MAX_SAFE_INTEGER).optional(),height:d.int().min(1).max(Number.MAX_SAFE_INTEGER).optional(),devicePixelRatio:d.int().min(1).max(8).optional(),fit:d.enum(["inside","outside","cover","fill","contain"]).optional(),withoutEnlargement:d.boolean().default(!0).optional(),alignmentPosition:d.enum(["top","right","bottom","left","top-left","bottom-left","bottom-right","top-right","center","entropy","attention"]).default("center").optional()}),x=d.discriminatedUnion("imageProxy",[d.object({imageProxy:d.literal(!1)}),g]);function xr(r,o={imageProxy:!1}){let n=x.parse(o),p=void 0;if(r.provider==="webnovel.com"){if(/^n\/\d+(\/\d+)?/.test(r.id)){let t=r.id.split("/");if(p=new URL(`/bookcover/${t[1]}`,"https://book-pic.webnovel.com"),p.searchParams.set("imageMogr2/thumbnail/600x",""),typeof t?.[2]==="string")p.searchParams.set("imageId",t[2])}}if(typeof p>"u")return;if(n.imageProxy==="wsrv.nl"){let t=new URL("https://wsrv.nl");t.searchParams.set("url",p.toString());let e=g.parse(n);if(typeof e?.width==="number")t.searchParams.set("w",e.width.toString());else if(typeof r?.width==="number")t.searchParams.set("w",r.width.toString());if(typeof e?.height==="number")t.searchParams.set("h",e.height.toString());else if(typeof r?.height==="number")t.searchParams.set("h",r.height.toString());if(typeof e?.devicePixelRatio==="number")t.searchParams.set("dpr",e.devicePixelRatio.toString());if(typeof e?.fit==="string")t.searchParams.set("fit",e.fit);if(typeof e?.withoutEnlargement==="boolean"&&e.withoutEnlargement===!0)t.searchParams.set("we","true");if(typeof e?.alignmentPosition==="string")t.searchParams.set("a",e.alignmentPosition);if(typeof e?.compressionLevel==="number")t.searchParams.set("l",e.compressionLevel.toString());if(typeof e?.lossless==="boolean"&&e.lossless===!0)t.searchParams.set("ll","true");if(typeof e?.default==="string")t.searchParams.set("default",e.default);if(typeof e?.output==="string"&&e.output!=="original")t.searchParams.set("output",e.output);if(typeof e?.quality==="number")t.searchParams.set("q",e.quality.toString());return t}return p}export{xr as webNovelImageToURL,Fr as webNovelExternalIdentifierToURL,q as mime,Gr as getPrimaryTranslation,Jr as getPrimaryImage,F as WebNovelVolume,N as WebNovelComNovelId,y as WebNovelComNovelChapterId,W as WebNovelComCreatorId,z as WebNovelComAuth,Zr as WebNovelChapterContent,C as WebNovelChapter,gr as WebNovel,f as Translation,V as Relator,X as PersonalName,i as PartialDateTime,O as OriginalSource,jr as NullableNonEmptyString,h as NovelFireNetNovelId,I as NovelFireNetNovelChapterId,m as NonEmptyString,H as Mime,Y as ImageType,Z as Image,v as HostedNovelComNovelId,w as HostedNovelComNovelChapterId,j as HostedNovelComCreatorId,P as ExternalProvider,b as ExternalIdentifier,S as Creator,u as BCP47LanguageTag};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=90FA05F968350B0564756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/schemas/external/webnovel_com.ts", "../src/schemas/external/common.ts", "../src/schemas/external/hostednovel_com.ts", "../src/schemas/external/novelfire_net.ts", "../src/schemas/ietf.ts", "../src/constants/loc/relators.ts", "../src/schemas/loc.ts", "../src/utils/mime.ts", "../src/schemas/string.ts", "../src/utils/array.ts", "../src/schemas/common.ts", "../src/schemas/webnovel.ts", "../src/utils/external.ts"],
|
|
3
|
+
"sources": ["../src/schemas/external/webnovel_com.ts", "../src/schemas/external/common.ts", "../src/schemas/external/hostednovel_com.ts", "../src/schemas/external/novelfire_net.ts", "../src/schemas/ietf.ts", "../src/constants/loc/relators.ts", "../src/schemas/loc.ts", "../src/utils/mime.ts", "../src/schemas/string.ts", "../src/utils/array.ts", "../src/schemas/common.ts", "../src/schemas/webnovel.ts", "../src/utils/common.ts", "../src/utils/external.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import z from \"zod\";\n\n/** @example `n/1234` */\nexport const WebNovelComNovelId = z.string().regex(/^n\\/\\d+$/, \"Invalid WebNovel novel ID\");\nexport type WebNovelComNovelId = z.infer<typeof WebNovelComNovelId>;\n\n/** @example `n/1234/c/5678` */\nexport const WebNovelComNovelChapterId = z\n\t.string()\n\t.regex(/^n\\/\\d+\\/c\\/\\d+$/, \"Invalid WebNovel novel chapter ID\");\nexport type WebNovelComNovelChapterId = z.infer<typeof WebNovelComNovelChapterId>;\n\n/** @example `c/1234` */\nexport const WebNovelComCreatorId = z.string().regex(/^c\\/\\d+$/, \"Invalid WebNovel creator ID\");\nexport type WebNovelComCreatorId = z.infer<typeof WebNovelComCreatorId>;\n",
|
|
5
|
+
"import z from \"zod\";\n\nexport const WebNovelComAuth = z.object({\n\tuid: z.string().regex(/^\\d+$/).max(64),\n\tukey: z\n\t\t.string()\n\t\t.regex(/^[a-zA-Z0-9]+$/)\n\t\t.max(64),\n});\nexport type WebNovelComAuth = z.infer<typeof WebNovelComAuth>;\n\n/** @example `n/1234` */\nexport const WebNovelComNovelId = z.string().regex(/^n\\/\\d+$/, \"Invalid WebNovel novel ID\");\nexport type WebNovelComNovelId = z.infer<typeof WebNovelComNovelId>;\n\n/** @example `n/1234/c/5678` */\nexport const WebNovelComNovelChapterId = z\n\t.string()\n\t.regex(/^n\\/\\d+\\/c\\/\\d+$/, \"Invalid WebNovel novel chapter ID\");\nexport type WebNovelComNovelChapterId = z.infer<typeof WebNovelComNovelChapterId>;\n\n/** @example `c/1234` */\nexport const WebNovelComCreatorId = z.string().regex(/^c\\/\\d+$/, \"Invalid WebNovel creator ID\");\nexport type WebNovelComCreatorId = z.infer<typeof WebNovelComCreatorId>;\n",
|
|
6
6
|
"import {\n\tWebNovelComCreatorId,\n\tWebNovelComNovelChapterId,\n\tWebNovelComNovelId,\n} from \"@/schemas/external/webnovel_com\";\nimport z from \"zod\";\nimport {\n\tHostedNovelComCreatorId,\n\tHostedNovelComNovelChapterId,\n\tHostedNovelComNovelId,\n} from \"./hostednovel_com\";\nimport { NovelFireNetNovelChapterId, NovelFireNetNovelId } from \"./novelfire_net\";\n\nexport const ExternalProvider = z.enum([\"webnovel.com\", \"novelfire.net\", \"hostednovel.com\"]);\nexport type ExternalProvider = z.infer<typeof ExternalProvider>;\n\nexport const ExternalIdentifier = z.object({\n\tprovider: ExternalProvider,\n\tid: z.union([\n\t\tWebNovelComNovelId,\n\t\tWebNovelComNovelChapterId,\n\t\tWebNovelComCreatorId,\n\t\tNovelFireNetNovelId,\n\t\tNovelFireNetNovelChapterId,\n\t\tHostedNovelComNovelId,\n\t\tHostedNovelComNovelChapterId,\n\t\tHostedNovelComCreatorId,\n\t]),\n});\nexport type ExternalIdentifier = z.infer<typeof ExternalIdentifier>;\n\nexport const OriginalSource = z.enum([\"qidian.com\", \"ciweimao.com\"]);\nexport type OriginalSource = z.infer<typeof OriginalSource>;\n",
|
|
7
7
|
"import z from \"zod\";\n\n/** @example `n/example-novel` */\nexport const HostedNovelComNovelId = z\n\t.string()\n\t.regex(/^n\\/[a-zA-Z0-9_-]+$/, \"Invalid HostedNovel novel ID\");\nexport type HostedNovelComNovelId = z.infer<typeof HostedNovelComNovelId>;\n\n/** @example `n/example-novel/c/chapter-1` */\nexport const HostedNovelComNovelChapterId = z\n\t.string()\n\t.regex(/^n\\/[a-zA-Z0-9_-]+\\/c\\/[a-zA-Z0-9_-]+$/, \"Invalid HostedNovel novel chapter ID\");\nexport type HostedNovelComNovelChapterId = z.infer<typeof HostedNovelComNovelChapterId>;\n\n/** @example `c/example-creator` */\nexport const HostedNovelComCreatorId = z\n\t.string()\n\t.regex(/^c\\/[a-zA-Z0-9_-]+$/, \"Invalid HostedNovel creator ID\");\nexport type HostedNovelComCreatorId = z.infer<typeof HostedNovelComCreatorId>;\n",
|
|
8
8
|
"import z from \"zod\";\n\n/** @example `n/example-novel` */\nexport const NovelFireNetNovelId = z\n\t.string()\n\t.regex(/^n\\/[a-zA-Z0-9_-]+$/, \"Invalid NovelFire novel ID\");\nexport type NovelFireNetNovelId = z.infer<typeof NovelFireNetNovelId>;\n\n/** @example `n/example-novel/c/chapter-1` */\nexport const NovelFireNetNovelChapterId = z\n\t.string()\n\t.regex(/^n\\/[a-zA-Z0-9_-]+\\/c\\/[a-zA-Z0-9_-]+$/, \"Invalid NovelFire novel chapter ID\");\nexport type NovelFireNetNovelChapterId = z.infer<typeof NovelFireNetNovelChapterId>;\n",
|
|
@@ -14,9 +14,10 @@
|
|
|
14
14
|
"interface MandatoryArrayInput {\n\t[x: string]: unknown;\n\tprimary: boolean;\n}\nexport function mandatoryArray<T extends MandatoryArrayInput>(inputArray: T[]): T[] {\n\tconst primaryCount = inputArray.filter((e) => e.primary === true).length;\n\n\tif (primaryCount > 1) {\n\t\tconst firstPrimaryIndex = inputArray.findIndex((e) => e.primary === true);\n\n\t\treturn inputArray.map((e, i) => {\n\t\t\te.primary = i === firstPrimaryIndex;\n\t\t\treturn e;\n\t\t});\n\t}\n\n\tif (primaryCount === 0 && typeof inputArray[0] !== \"undefined\") {\n\t\tinputArray[0].primary = true;\n\t\treturn inputArray;\n\t}\n\n\treturn inputArray;\n}\n",
|
|
15
15
|
"import { ExternalIdentifier, ExternalProvider } from \"@/schemas/external/common\";\nimport { BCP47LanguageTag } from \"@/schemas/ietf\";\nimport { Relator } from \"@/schemas/loc\";\nimport { Mime, NonEmptyString } from \"@/schemas/string\";\nimport { mandatoryArray } from \"@/utils/array\";\nimport z from \"zod\";\n\nexport const Translation = z.object({\n\tlanguage: BCP47LanguageTag.nullable().default(null),\n\tvalue: NonEmptyString,\n\ttype: z.enum([\"plain\", \"markdown\", \"html\"]).nullable().default(null),\n\tprimary: z.boolean().default(false),\n});\nexport type Translation = z.infer<typeof Translation>;\n\nexport const PersonalName = z.object({\n\tdisplayName: NonEmptyString,\n\tgivenName: NonEmptyString.nullable(),\n\tmiddleName: NonEmptyString.nullable(),\n\tfamilyName: NonEmptyString.nullable(),\n\tprimary: z.boolean().default(false),\n});\nexport type PersonalName = z.infer<typeof PersonalName>;\n\nexport const Creator = z.object({\n\texternalIdentifiers: z.array(ExternalIdentifier),\n\tnames: z.array(PersonalName).min(1).transform(mandatoryArray),\n\troles: z.array(Relator),\n});\nexport type Creator = z.infer<typeof Creator>;\n\nexport const ImageType = z.enum([\"cover\", \"backdrop\", \"spine\", \"back\"]);\nexport type ImageType = z.infer<typeof ImageType>;\n\nexport const Image = z.intersection(\n\tz.object({\n\t\ttype: ImageType,\n\t\theight: z.int().min(1).nullable(),\n\t\twidth: z.int().min(1).nullable(),\n\t\tlanguage: BCP47LanguageTag.nullable().default(null),\n\t\tprimary: z.boolean().default(false),\n\t\tmediaType: Mime.pipe(z.string().startsWith(\"image/\")).nullable(),\n\t}),\n\tz.union([\n\t\tz.object({\n\t\t\tprovider: ExternalProvider,\n\t\t\tid: NonEmptyString,\n\t\t}),\n\t\tz.object({\n\t\t\tprovider: z.null(),\n\t\t\tid: z.url(),\n\t\t}),\n\t])\n);\nexport type Image = z.infer<typeof Image>;\n",
|
|
16
16
|
"import { Creator, Image, Translation } from \"@/schemas/common\";\nimport { ExternalIdentifier, OriginalSource } from \"@/schemas/external/common\";\nimport { BCP47LanguageTag } from \"@/schemas/ietf\";\nimport { NonEmptyString, PartialDateTime } from \"@/schemas/string\";\nimport { mandatoryArray } from \"@/utils/array\";\nimport z from \"zod\";\n\nexport const WebNovelChapterContent = z.object({\n\toriginalHTML: z.array(NonEmptyString),\n\toriginalHTMLSize: z.int().min(0),\n\n\tgeneratedMarkdown: NonEmptyString,\n\tgeneratedMarkdownSize: z.int().min(0),\n});\nexport type WebNovelChapterContent = z.infer<typeof WebNovelChapterContent>;\n\nexport const WebNovelChapter = z.object({\n\texternalIdentifiers: z.array(ExternalIdentifier).min(1),\n\n\tvolumeNumber: z.number().min(0).nullable(),\n\tnumber: z.number().min(0),\n\tnames: z.array(Translation).min(1).transform(mandatoryArray),\n\tcreators: z.array(Creator),\n\n\tcreatedAt: PartialDateTime.nullable(),\n\tupdatedAt: PartialDateTime.nullable(),\n});\nexport type WebNovelChapter = z.infer<typeof WebNovelChapter>;\n\nexport const WebNovelVolume = z.object({\n\texternalIdentifiers: z.array(ExternalIdentifier),\n\n\tnumber: z.number().min(0),\n\tnames: z.array(Translation).transform(mandatoryArray),\n\n\tcreatedAt: PartialDateTime.nullable(),\n\tupdatedAt: PartialDateTime.nullable(),\n\n\tchapters: z.array(WebNovelChapter),\n});\nexport type WebNovelVolume = z.infer<typeof WebNovelVolume>;\n\nexport const WebNovel = z.object({\n\texternalIdentifiers: z.array(ExternalIdentifier).min(1),\n\n\tnames: z.array(Translation).min(1).transform(mandatoryArray),\n\tlanguage: BCP47LanguageTag,\n\toverviews: z.array(Translation).transform(mandatoryArray),\n\tcreators: z.array(Creator),\n\timages: z.array(Image).transform(mandatoryArray),\n\toriginalLanguage: BCP47LanguageTag.nullable(),\n\toriginalSource: OriginalSource.nullable(),\n\n\tisComplete: z.boolean().nullable(),\n\n\tcreatedAt: PartialDateTime.nullable(),\n\tupdatedAt: PartialDateTime.nullable(),\n\n\tvolumes: z.array(WebNovelVolume),\n});\nexport type WebNovel = z.infer<typeof WebNovel>;\n",
|
|
17
|
+
"import type { Image, Translation } from \"@/schemas/common\";\n\n/**\n * Return primary translation, if none is marked as primary, return the first one\n */\nexport function getPrimaryTranslation(t: Translation[]): Translation | undefined {\n\tconst primary = t.find((e) => e.primary === true);\n\tif (typeof primary !== \"undefined\") {\n\t\treturn primary;\n\t}\n\n\treturn t?.[0] ?? undefined;\n}\n\n/**\n * Return primary image, if none is marked as primary, return the first one\n */\nexport function getPrimaryImage(t: Image[]): Image | undefined {\n\tconst primary = t.find((e) => e.primary === true);\n\tif (typeof primary !== \"undefined\") {\n\t\treturn primary;\n\t}\n\n\treturn t?.[0] ?? undefined;\n}\n",
|
|
17
18
|
"import type { Image } from \"@/schemas/common\";\nimport type { ExternalIdentifier } from \"@/schemas/external/common\";\nimport {\n\tHostedNovelComCreatorId,\n\tHostedNovelComNovelChapterId,\n\tHostedNovelComNovelId,\n} from \"@/schemas/external/hostednovel_com\";\nimport { NovelFireNetNovelChapterId, NovelFireNetNovelId } from \"@/schemas/external/novelfire_net\";\nimport {\n\tWebNovelComCreatorId,\n\tWebNovelComNovelChapterId,\n\tWebNovelComNovelId,\n} from \"@/schemas/external/webnovel_com\";\nimport z from \"zod\";\n\nexport function webNovelExternalIdentifierToURL(ext: ExternalIdentifier): URL | undefined {\n\tif (ext.provider === \"webnovel.com\") {\n\t\tconst novelId = WebNovelComNovelId.safeParse(ext.id)?.data ?? undefined;\n\t\tconst novelChapterId = WebNovelComNovelChapterId.safeParse(ext.id)?.data ?? undefined;\n\t\tconst creatorId = WebNovelComCreatorId.safeParse(ext.id)?.data ?? undefined;\n\n\t\tconst HOST = \"https://www.webnovel.com\";\n\n\t\tif (typeof novelId === \"string\") {\n\t\t\treturn new URL(`/book/${novelId.substring(2)}`, HOST);\n\t\t} else if (typeof novelChapterId === \"string\") {\n\t\t\tconst p = novelChapterId.split(\"/\");\n\t\t\treturn new URL(`/book/${p[1]}/${p[3]}`, HOST);\n\t\t} else if (typeof creatorId === \"string\") {\n\t\t\treturn new URL(`/profile/${creatorId.substring(2)}`, HOST);\n\t\t}\n\t} else if (ext.provider === \"novelfire.net\") {\n\t\tconst novelId = NovelFireNetNovelId.safeParse(ext.id)?.data ?? undefined;\n\t\tconst novelChapterId = NovelFireNetNovelChapterId.safeParse(ext.id)?.data ?? undefined;\n\n\t\tconst HOST = \"https://novelfire.net\";\n\n\t\tif (typeof novelId === \"string\") {\n\t\t\treturn new URL(`/book/${novelId.substring(2)}`, HOST);\n\t\t} else if (typeof novelChapterId === \"string\") {\n\t\t\tconst p = novelChapterId.split(\"/\");\n\t\t\treturn new URL(`/book/${p[1]}/${p[3]}`, HOST);\n\t\t}\n\t} else if (ext.provider === \"hostednovel.com\") {\n\t\tconst novelId = HostedNovelComNovelId.safeParse(ext.id)?.data ?? undefined;\n\t\tconst novelChapterId = HostedNovelComNovelChapterId.safeParse(ext.id)?.data ?? undefined;\n\t\tconst creatorId = HostedNovelComCreatorId.safeParse(ext.id)?.data ?? undefined;\n\n\t\tconst HOST = \"https://hostednovel.com\";\n\n\t\tif (typeof novelId === \"string\") {\n\t\t\treturn new URL(`/novel/${novelId.substring(2)}`, HOST);\n\t\t} else if (typeof novelChapterId === \"string\") {\n\t\t\tconst p = novelChapterId.split(\"/\");\n\t\t\treturn new URL(`/novel/${p[1]}/${p[3]}`, HOST);\n\t\t} else if (typeof creatorId === \"string\") {\n\t\t\treturn new URL(`/creator/${creatorId.substring(2)}`, HOST);\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nconst ImageConfigWsrvNl = z.object({\n\timageProxy: z.literal(\"wsrv.nl\"),\n\n\t// ================================ Format ================\n\t/**\n\t * @see {@link https://wsrv.nl/docs/format#output}\n\t */\n\toutput: z\n\t\t.enum([\"jpg\", \"jxl\", \"png\", \"gif\", \"tiff\", \"webp\", \"original\"])\n\t\t.default(\"original\")\n\t\t.optional(),\n\t/**\n\t * Only supported by `jpg`, `jxl`, `tiff` and `webp`\n\t * @see {@link https://wsrv.nl/docs/format#quality}\n\t */\n\tquality: z.int().min(1).max(100).default(80).optional(),\n\t/**\n\t * @see {@link https://wsrv.nl/docs/format#default-image}\n\t */\n\tdefault: z.url().optional(),\n\t/**\n\t * Only supported by `png`\n\t * @see {@link https://wsrv.nl/docs/format#lossless-compression}\n\t */\n\tlossless: z.boolean().optional(),\n\t/**\n\t * Only supported by `png`\n\t * @see {@link https://wsrv.nl/docs/format#compression-level}\n\t */\n\tcompressionLevel: z.int().min(0).max(9).default(6).optional(),\n\n\t// ================================ Size ================\n\t/**\n\t * @see {@link https://wsrv.nl/docs/size#width}\n\t */\n\twidth: z.int().min(1).max(Number.MAX_SAFE_INTEGER).optional(),\n\t/**\n\t * @see {@link https://wsrv.nl/docs/size#height}\n\t */\n\theight: z.int().min(1).max(Number.MAX_SAFE_INTEGER).optional(),\n\t/**\n\t * A `width`, a `height`, or both must be specified for this parameter to work.\n\t * @see {@link https://wsrv.nl/docs/size#device-pixel-ratio}\n\t */\n\tdevicePixelRatio: z.int().min(1).max(8).optional(),\n\n\t// ================================ Fit ================\n\t/**\n\t * @see {@link https://wsrv.nl/docs/fit#fit}\n\t */\n\tfit: z.enum([\"inside\", \"outside\", \"cover\", \"fill\", \"contain\"]).optional(),\n\t/**\n\t * @see {@link https://wsrv.nl/docs/fit#without-enlargement}\n\t */\n\twithoutEnlargement: z.boolean().default(true).optional(),\n\n\t// ================================ Crop ================\n\t/**\n\t * How the image should be aligned when `fit=cover` or `fit=contain` is set. The `width` and `height` parameters should also be specified.\n\t *\n\t * `entropy`: Focus on the region with the highest [Shannon entropy](https://en.wikipedia.org/wiki/Entropy_%28information_theory%29)\n\t *\n\t * `attention`: Focus on the region with the highest luminance frequency, color saturation and presence of skin tones.\n\t *\n\t * @see {@link https://wsrv.nl/docs/crop#alignment-position}\n\t */\n\talignmentPosition: z\n\t\t.enum([\n\t\t\t\"top\",\n\t\t\t\"right\",\n\t\t\t\"bottom\",\n\t\t\t\"left\",\n\t\t\t\"top-left\",\n\t\t\t\"bottom-left\",\n\t\t\t\"bottom-right\",\n\t\t\t\"top-right\",\n\t\t\t\"center\",\n\n\t\t\t\"entropy\",\n\t\t\t\"attention\",\n\t\t])\n\t\t.default(\"center\")\n\t\t.optional(),\n});\nconst ImageConfig = z.discriminatedUnion(\"imageProxy\", [\n\tz.object({\n\t\timageProxy: z.literal(false),\n\t}),\n\tImageConfigWsrvNl,\n]);\ntype ImageConfig = z.infer<typeof ImageConfig>;\nexport function webNovelImageToURL(\n\timage: Image,\n\tinputConfig: ImageConfig = { imageProxy: false }\n): URL | undefined {\n\tconst config = ImageConfig.parse(inputConfig);\n\n\tlet imageURL: URL | undefined = undefined;\n\n\tif (image.provider === \"webnovel.com\") {\n\t\tif (/^n\\/\\d+(\\/\\d+)?/.test(image.id)) {\n\t\t\tconst sId = image.id.split(\"/\");\n\t\t\t/* cspell:disable-next-line */\n\t\t\timageURL = new URL(`/bookcover/${sId[1]}`, \"https://book-pic.webnovel.com\");\n\t\t\t/* cspell:disable-next-line */\n\t\t\timageURL.searchParams.set(\"imageMogr2/thumbnail/600x\", \"\");\n\t\t\tif (typeof sId?.[2] === \"string\") {\n\t\t\t\timageURL.searchParams.set(\"imageId\", sId[2]);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (typeof imageURL === \"undefined\") {\n\t\treturn undefined;\n\t}\n\n\t// Image Proxy\n\n\tif (config.imageProxy === \"wsrv.nl\") {\n\t\tconst proxyURL = new URL(\"https://wsrv.nl\");\n\t\tproxyURL.searchParams.set(\"url\", imageURL.toString());\n\n\t\tconst proxyConfig = ImageConfigWsrvNl.parse(config);\n\n\t\tif (typeof proxyConfig?.width === \"number\") {\n\t\t\tproxyURL.searchParams.set(\"w\", proxyConfig.width.toString());\n\t\t} else if (typeof image?.width === \"number\") {\n\t\t\tproxyURL.searchParams.set(\"w\", image.width.toString());\n\t\t}\n\t\tif (typeof proxyConfig?.height === \"number\") {\n\t\t\tproxyURL.searchParams.set(\"h\", proxyConfig.height.toString());\n\t\t} else if (typeof image?.height === \"number\") {\n\t\t\tproxyURL.searchParams.set(\"h\", image.height.toString());\n\t\t}\n\t\tif (typeof proxyConfig?.devicePixelRatio === \"number\") {\n\t\t\tproxyURL.searchParams.set(\"dpr\", proxyConfig.devicePixelRatio.toString());\n\t\t}\n\n\t\tif (typeof proxyConfig?.fit === \"string\") {\n\t\t\tproxyURL.searchParams.set(\"fit\", proxyConfig.fit);\n\t\t}\n\t\tif (\n\t\t\ttypeof proxyConfig?.withoutEnlargement === \"boolean\" &&\n\t\t\tproxyConfig.withoutEnlargement === true\n\t\t) {\n\t\t\tproxyURL.searchParams.set(\"we\", \"true\");\n\t\t}\n\n\t\tif (typeof proxyConfig?.alignmentPosition === \"string\") {\n\t\t\tproxyURL.searchParams.set(\"a\", proxyConfig.alignmentPosition);\n\t\t}\n\n\t\tif (typeof proxyConfig?.compressionLevel === \"number\") {\n\t\t\tproxyURL.searchParams.set(\"l\", proxyConfig.compressionLevel.toString());\n\t\t}\n\t\tif (typeof proxyConfig?.lossless === \"boolean\" && proxyConfig.lossless === true) {\n\t\t\tproxyURL.searchParams.set(\"ll\", \"true\");\n\t\t}\n\t\tif (typeof proxyConfig?.default === \"string\") {\n\t\t\tproxyURL.searchParams.set(\"default\", proxyConfig.default);\n\t\t}\n\t\tif (typeof proxyConfig?.output === \"string\" && proxyConfig.output !== \"original\") {\n\t\t\tproxyURL.searchParams.set(\"output\", proxyConfig.output);\n\t\t}\n\t\tif (typeof proxyConfig?.quality === \"number\") {\n\t\t\tproxyURL.searchParams.set(\"q\", proxyConfig.quality.toString());\n\t\t}\n\n\t\treturn proxyURL;\n\t}\n\n\t// Not yet implemented\n\treturn imageURL;\n}\n"
|
|
18
19
|
],
|
|
19
|
-
"mappings": "AAAA,
|
|
20
|
-
"debugId": "
|
|
20
|
+
"mappings": "AAAA,mBAEO,IAAM,EAAkB,EAAE,OAAO,CACvC,IAAK,EAAE,OAAO,EAAE,MAAM,OAAO,EAAE,IAAI,EAAE,EACrC,KAAM,EACJ,OAAO,EACP,MAAM,gBAAgB,EACtB,IAAI,EAAE,CACT,CAAC,EAIY,EAAqB,EAAE,OAAO,EAAE,MAAM,WAAY,2BAA2B,EAI7E,EAA4B,EACvC,OAAO,EACP,MAAM,mBAAoB,mCAAmC,EAIlD,EAAuB,EAAE,OAAO,EAAE,MAAM,WAAY,6BAA6B,ECjB9F,mBCLA,mBAGO,IAAM,EAAwB,EACnC,OAAO,EACP,MAAM,sBAAuB,8BAA8B,EAIhD,EAA+B,EAC1C,OAAO,EACP,MAAM,yCAA0C,sCAAsC,EAI3E,EAA0B,EACrC,OAAO,EACP,MAAM,sBAAuB,gCAAgC,ECjB/D,mBAGO,IAAM,EAAsB,EACjC,OAAO,EACP,MAAM,sBAAuB,4BAA4B,EAI9C,EAA6B,EACxC,OAAO,EACP,MAAM,yCAA0C,oCAAoC,EFE/E,IAAM,EAAmB,EAAE,KAAK,CAAC,eAAgB,gBAAiB,iBAAiB,CAAC,EAG9E,EAAqB,EAAE,OAAO,CAC1C,SAAU,EACV,GAAI,EAAE,MAAM,CACX,EACA,EACA,EACA,EACA,EACA,EACA,EACA,CACD,CAAC,CACF,CAAC,EAGY,EAAiB,EAAE,KAAK,CAAC,aAAc,cAAc,CAAC,EG/BnE,6BACA,mBAeO,IAAM,EAAmB,EAC9B,OAAO,EACP,OAAO,CAAC,IAAM,EAAK,CAAC,EAAE,MAAM,EAAG,CAC/B,MAAO,CAAC,IACP,yBAAyB,EAAK,OAAO,GAAG,OAAS,EAAE,CAAC,EAClD,OAAO,EACP,KAAK,GAAG,GACZ,CAAC,EACA,UAAU,CAAC,IAAM,OAAO,EAAK,CAAC,EAAE,OAAO,CAAC,CAAC,ECxB3C,IAAe,GACd,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,M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",
|
|
21
|
+
"debugId": "90FA05F968350B0564756E2164756E21",
|
|
21
22
|
"names": []
|
|
22
23
|
}
|