@delta-comic/model 1.3.4 → 1.3.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 CHANGED
@@ -1,42 +1,42 @@
1
- ```python
2
- r"""
3
- ___________________________
4
- / ______\ | __ | | ____|
5
- | | _____ | |__| | | |__
6
- | | / _ \| __ \ | __|
7
- | |___| |_| || | \ \| |____
8
- \__________/|_| \________|
9
- ==============================
10
- 空阙虱楼 Copyright © Wenxig
11
- """
12
- ```
13
-
14
- [![GitHub](https://img.shields.io/github/license/delta-comic/delta-comic-core)](https://raw.githubusercontent.com/delta-comic/delta-comic-core/main/LICENSE)
15
- [![NPM Downloads](https://img.shields.io/npm/dm/delta-comic-core)](https://www.npmjs.com/package/delta-comic-core)
16
-
17
- - 工具库
18
-
19
- ## 功能
20
-
21
- - 辅助编写插件
22
- - 提供通用数据结构与默认样式
23
-
24
- ## 如何使用
25
-
26
- ```sh
27
- pnpm add delta-comic-core
28
- ```
29
-
30
- ## 为谁编写插件?
31
-
32
- [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic&user&theme=transparent)](https://github.com/delta-comic/delta-comic)
33
-
34
- ## 辅助的插件
35
-
36
- ### Layout
37
-
38
- [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic-plugin-layout&user&theme=transparent)](https://github.com/delta-comic/delta-comic-plugin-bika)
39
-
40
- ## Star History
41
-
1
+ ```python
2
+ r"""
3
+ ___________________________
4
+ / ______\ | __ | | ____|
5
+ | | _____ | |__| | | |__
6
+ | | / _ \| __ \ | __|
7
+ | |___| |_| || | \ \| |____
8
+ \__________/|_| \________|
9
+ ==============================
10
+ 空阙虱楼 Copyright © Wenxig
11
+ """
12
+ ```
13
+
14
+ [![GitHub](https://img.shields.io/github/license/delta-comic/delta-comic-core)](https://raw.githubusercontent.com/delta-comic/delta-comic-core/main/LICENSE)
15
+ [![NPM Downloads](https://img.shields.io/npm/dm/delta-comic-core)](https://www.npmjs.com/package/delta-comic-core)
16
+
17
+ - 工具库
18
+
19
+ ## 功能
20
+
21
+ - 辅助编写插件
22
+ - 提供通用数据结构与默认样式
23
+
24
+ ## 如何使用
25
+
26
+ ```sh
27
+ pnpm add delta-comic-core
28
+ ```
29
+
30
+ ## 为谁编写插件?
31
+
32
+ [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic&user&theme=transparent)](https://github.com/delta-comic/delta-comic)
33
+
34
+ ## 辅助的插件
35
+
36
+ ### Layout
37
+
38
+ [![Readme Card](https://wenxig-grs.vercel.app/api/pin/?username=delta-comic&repo=delta-comic-plugin-layout&user&theme=transparent)](https://github.com/delta-comic/delta-comic-plugin-bika)
39
+
40
+ ## Star History
41
+
42
42
  [![Star History Chart](https://api.star-history.com/svg?repos=delta-comic/delta-comic-core&type=Date)](https://www.star-history.com/#delta-comic/delta-comic-core&Date)
package/dist/index.js CHANGED
@@ -58,6 +58,16 @@ var g = class {
58
58
  this.separator = e;
59
59
  }
60
60
  }, _ = class {
61
+ getOrInsert(e, t) {
62
+ let n = this.key.toString(e);
63
+ return this.store.has(n) ? this.store.get(n) : (this.store.set(n, t), t);
64
+ }
65
+ getOrInsertComputed(e, t) {
66
+ let n = this.key.toString(e);
67
+ if (this.store.has(n)) return this.store.get(n);
68
+ let r = t(n);
69
+ return this.store.set(n, r), r;
70
+ }
61
71
  static createReactive(t = ":") {
62
72
  return e(new this(t));
63
73
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isTypedArray","isString"],"sources":["../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isLength.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isString.mjs","../lib/struct/store.ts","../lib/struct/struct.ts","../lib/struct/meta.ts","../../../node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/dayjs.min.js","../lib/model/comment.ts","../lib/model/ep.ts","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isString.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs","../lib/model/resource.ts","../lib/model/image.ts","../lib/model/item.ts","../lib/model/content.ts","../lib/model/download.ts","../lib/model/user.ts","../lib/model/index.ts"],"sourcesContent":["function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","function getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexport { getTag };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n","function isString(value) {\n return typeof value === 'string';\n}\n\nexport { isString };\n","import { isString } from 'es-toolkit'\r\nimport { shallowReactive } from 'vue'\r\n\r\n/**\r\n * 比如有很多需要注明来自哪个插件的值都可以用\r\n */\r\nexport class SourcedValue<T extends [string, string]> {\r\n public toJSON(value: T | string) {\r\n if (isString(value)) return this.parse(value)\r\n return value\r\n }\r\n public parse(value: string) {\r\n const splited = value.split(this.separator)\r\n return <T>[splited[0], splited.slice(1).join(this.separator)]\r\n }\r\n public toString(value: T | string) {\r\n if (isString(value)) return value\r\n return this.stringify(value)\r\n }\r\n public stringify(value: T) {\r\n return value.join(this.separator)\r\n }\r\n constructor(public separator = ':') {}\r\n}\r\n/**\r\n * 相比较于普通的Map,这个元素的key操作可以是`TKey | string`\r\n * _但内部保存仍使用`SourcedValue.key.toString`作为key_\r\n */\r\nexport class SourcedKeyMap<TKey extends [string, string], TValue> implements Map<string, TValue> {\r\n public static createReactive<TKey extends [string, string], TValue>(separator = ':') {\r\n return shallowReactive(new this<TKey, TValue>(separator))\r\n }\r\n public constructor(separator = ':') {\r\n this.key = new SourcedValue<TKey>(separator)\r\n }\r\n public key: SourcedValue<TKey>\r\n private store = shallowReactive(new Map<string, TValue>())\r\n public get size(): number {\r\n return this.store.size\r\n }\r\n public [Symbol.toStringTag] = 'SourcedKeyMap'\r\n public clear(): void {\r\n this.store.clear()\r\n }\r\n public delete(key: string | TKey): boolean {\r\n return this.store.delete(this.key.toString(key))\r\n }\r\n public forEach(\r\n callbackfn: (value: TValue, key: string, map: Map<string, TValue>) => void,\r\n thisArg?: any\r\n ): void {\r\n this.store.forEach((v, k) => {\r\n callbackfn.call(thisArg, v, k, this)\r\n })\r\n }\r\n public get(key: string | TKey): TValue | undefined {\r\n return this.store.get(this.key.toString(key))\r\n }\r\n public has(key: string | TKey): boolean {\r\n return this.store.has(this.key.toString(key))\r\n }\r\n public set(key: string | TKey, value: TValue): this {\r\n this.store.set(this.key.toString(key), value)\r\n return this\r\n }\r\n public entries() {\r\n return this.store.entries()\r\n }\r\n public keys() {\r\n return this.store.keys()\r\n }\r\n public values() {\r\n return this.store.values()\r\n }\r\n public [Symbol.iterator]() {\r\n return this.entries()\r\n }\r\n}\r\n\r\nexport type SourcedKeyType<\r\n T extends SourcedKeyMap<[string, string], any> | SourcedValue<[string, string]>\r\n> =\r\n T extends SourcedKeyMap<infer K, any>\r\n ? K | string\r\n : T extends SourcedValue<infer K>\r\n ? K | string\r\n : never","/**\n * 可以结构化的数据,调用`toJSON`获取纯粹的json(没有get/set或method)\n */\nexport class Struct<TRaw extends object> {\n public toJSON() {\n return <TRaw>JSON.parse(JSON.stringify(this.$$raw))\n }\n /**\n * @param $$raw 一个纯粹json对象,不可以是高级对象\n */\n constructor(protected $$raw: TRaw) {}\n public static toRaw<T extends object, TRaw = T extends Struct<infer TR> ? TR : T>(item: T): TRaw {\n if (item instanceof Struct) return item.toJSON()\n return item as any\n }\n}","export interface Metadatable {\r\n $$meta?: Metadata\r\n $$plugin: string\r\n}\r\nexport type Metadata = Record<string | number, any>\r\n\r\nexport type PageKey = string | number\r\nexport class StreamQuery<TResult, TData extends object = {}> {\r\n constructor(\r\n public query: (\r\n data: TData,\r\n page: PageKey,\r\n signal?: AbortSignal\r\n ) => Promise<{ data: TResult[]; lastPage?: PageKey; nextPage?: PageKey }>,\r\n public initPage: PageKey\r\n ) {}\r\n}","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import dayjs from 'dayjs'\r\nimport { type Component } from 'vue'\r\n\r\nimport { SourcedKeyMap, Struct, type Metadata, type Metadatable, type StreamQuery } from '../struct'\r\n\r\nimport type { ContentType } from './content'\r\nimport type { Item } from './item'\r\nimport type { User } from './user'\r\n\r\nexport interface RawComment extends Metadatable {\r\n sender: User\r\n content: { type: 'string' | 'html'; text: string }\r\n time: number\r\n id: string\r\n childrenCount: number\r\n likeCount: number\r\n isLiked: boolean\r\n reported: boolean\r\n isTop: boolean\r\n}\r\n\r\nexport type CommentRow = Component<{ comment: Comment; item: Item; parentComment?: Comment }>\r\n\r\nexport abstract class Comment extends Struct<RawComment> implements RawComment {\r\n public static commentRow = SourcedKeyMap.createReactive<ContentType, CommentRow>()\r\n\r\n constructor(v: RawComment) {\r\n super(v)\r\n this.content = v.content\r\n this.time = v.time\r\n this.id = v.id\r\n this.childrenCount = v.childrenCount\r\n this.likeCount = v.likeCount\r\n this.isLiked = v.isLiked\r\n this.reported = v.reported\r\n this.$$plugin = v.$$plugin\r\n this.$$meta = v.$$meta\r\n this.isTop = v.isTop\r\n }\r\n public abstract sender: User\r\n public content: { type: 'string' | 'html'; text: string }\r\n public time: number\r\n public get $time() {\r\n return dayjs(this.time)\r\n }\r\n public id: string\r\n public childrenCount: number\r\n public likeCount: number\r\n public isTop: boolean\r\n public isLiked: boolean\r\n public reported: boolean\r\n public $$plugin: string\r\n public $$meta?: Metadata\r\n public abstract like(signal?: AbortSignal): PromiseLike<boolean>\r\n public abstract report(signal?: AbortSignal): PromiseLike<any>\r\n public abstract sendComment(text: string, signal?: AbortSignal): PromiseLike<any>\r\n public abstract fetchChildren: StreamQuery<Comment>\r\n}","import { Struct, type Metadata, type Metadatable } from '../struct'\r\nexport interface RawEp extends Metadatable {\r\n name: string\r\n id: string\r\n}\r\nexport class Ep extends Struct<RawEp> implements RawEp {\r\n public name: string\r\n public id: string\r\n public $$plugin: string\r\n public $$meta?: Metadata\r\n constructor(v: RawEp) {\r\n super(v)\r\n this.name = v.name\r\n this.id = v.id\r\n this.$$plugin = v.$$plugin\r\n this.$$meta = v.$$meta\r\n }\r\n}","import { isLength } from '../../predicate/isLength.mjs';\n\nfunction isArrayLike(value) {\n return value != null && typeof value !== 'function' && isLength(value.length);\n}\n\nexport { isArrayLike };\n","import { getTag } from '../_internal/getTag.mjs';\n\nfunction isArguments(value) {\n return value !== null && typeof value === 'object' && getTag(value) === '[object Arguments]';\n}\n\nexport { isArguments };\n","function isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\n\nexport { isString };\n","function isPrototype(value) {\n const constructor = value?.constructor;\n const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;\n return value === prototype;\n}\n\nexport { isPrototype };\n","import { isTypedArray as isTypedArray$1 } from '../../predicate/isTypedArray.mjs';\n\nfunction isTypedArray(x) {\n return isTypedArray$1(x);\n}\n\nexport { isTypedArray };\n","import { isArguments } from './isArguments.mjs';\nimport { isArrayLike } from './isArrayLike.mjs';\nimport { isTypedArray } from './isTypedArray.mjs';\nimport { isPrototype } from '../_internal/isPrototype.mjs';\n\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value)) {\n if (typeof value.splice !== 'function' &&\n typeof value !== 'string' &&\n (typeof Buffer === 'undefined' || !Buffer.isBuffer(value)) &&\n !isTypedArray(value) &&\n !isArguments(value)) {\n return false;\n }\n return value.length === 0;\n }\n if (typeof value === 'object') {\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0;\n }\n const keys = Object.keys(value);\n if (isPrototype(value)) {\n return keys.filter(x => x !== 'constructor').length === 0;\n }\n return keys.length === 0;\n }\n return true;\n}\n\nexport { isEmpty };\n","import { useGlobalVar } from '@delta-comic/utils'\r\nimport { isEmpty, isString } from 'es-toolkit/compat'\r\nimport { shallowReactive } from 'vue'\r\n\r\nimport { SourcedKeyMap, Struct, type Metadata, type Metadatable } from '../struct'\r\n\r\nexport type ProcessInstance = (\r\n nowPath: string,\r\n resource: Resource\r\n) => Promise<[path: string, exit: boolean]>\r\nexport interface ProcessStep {\r\n referenceName: string\r\n ignoreExit?: boolean\r\n}\r\nexport type ProcessStep_ = ProcessStep | string\r\n\r\nexport interface ResourceType {\r\n type: string\r\n urls: string[]\r\n test: (url: string, signal: AbortSignal) => PromiseLike<void>\r\n}\r\nexport interface RawResource extends Metadatable {\r\n pathname: string\r\n type: string\r\n processSteps?: ProcessStep_[]\r\n}\r\nexport class Resource extends Struct<RawResource> implements RawResource {\r\n public static processInstances = useGlobalVar(\r\n SourcedKeyMap.createReactive<[plugin: string, referenceName: string], ProcessInstance>(),\r\n 'uni/resource/processInstances'\r\n )\r\n\r\n public static fork = useGlobalVar(\r\n SourcedKeyMap.createReactive<[plugin: string, type: string], ResourceType>(),\r\n 'uni/resource/fork'\r\n )\r\n public static precedenceFork = useGlobalVar(\r\n SourcedKeyMap.createReactive<[plugin: string, type: string], string>(),\r\n 'uni/resource/precedenceFork'\r\n )\r\n\r\n public static is(value: unknown): value is Resource {\r\n return value instanceof this\r\n }\r\n public static create(v: RawResource): Resource {\r\n return new this(v)\r\n }\r\n protected constructor(v: RawResource) {\r\n super(v)\r\n this.$$plugin = v.$$plugin\r\n this.$$meta = v.$$meta\r\n this.pathname = v.pathname\r\n this.type = v.type\r\n this.processSteps = (v.processSteps ?? []).map<ProcessStep>(v =>\r\n isString(v) ? { referenceName: v, ignoreExit: false } : v\r\n )\r\n }\r\n public type: string\r\n public pathname: string\r\n public processSteps: ProcessStep[]\r\n public $$meta?: Metadata\r\n public $$plugin: string\r\n public async getUrl(): Promise<string> {\r\n let resultPath = this.pathname\r\n for (const option of this.processSteps) {\r\n // preflight\r\n const instance = Resource.processInstances.get([this.$$plugin, option.referenceName])\r\n if (!instance) {\r\n console.warn(\r\n `[Resource.getUrl] process not found, fullname: [${this.$$plugin}, ${option.referenceName}]`\r\n )\r\n continue\r\n }\r\n\r\n // call\r\n const result = await instance(resultPath, this)\r\n resultPath = result[0]\r\n if (option.ignoreExit || !result[1]) continue\r\n break\r\n }\r\n if (!URL.canParse(resultPath)) return `${this.getThisFork()}/${resultPath}`\r\n return resultPath\r\n }\r\n public omittedForks = shallowReactive(new Set<string>())\r\n public getThisFork() {\r\n const all = new Set(Resource.fork.get([this.$$plugin, this.type])?.urls ?? [])\r\n let fork: string | undefined\r\n if (isEmpty(this.omittedForks)) {\r\n fork = Resource.precedenceFork.get([this.$$plugin, this.type])\r\n } else {\r\n const diff = Array.from(all.difference(this.omittedForks).values())\r\n fork = diff[0]\r\n }\r\n if (!fork)\r\n throw new Error(\r\n `[Resource.getThisFork] fork not found, type: [${this.$$plugin}, ${this.type}]`\r\n )\r\n return fork\r\n }\r\n public localChangeFork() {\r\n const all = new Set(Resource.fork.get([this.$$plugin, this.type])?.urls ?? [])\r\n this.omittedForks.add(this.getThisFork())\r\n const isChangedFail = isEmpty(all.difference(this.omittedForks))\r\n if (isChangedFail) this.omittedForks.clear()\r\n return isChangedFail\r\n }\r\n}","import type { Metadatable } from '../struct'\r\n\r\nimport { Resource, type RawResource, type ProcessStep_ } from './resource'\r\n\r\nexport interface RawImage extends Metadatable {\r\n path: string\r\n forkNamespace: string\r\n processSteps?: ProcessStep_[]\r\n}\r\n\r\nexport class Image extends Resource {\r\n public static override is(value: unknown): value is Image {\r\n return value instanceof this\r\n }\r\n public static override create(v: RawResource | RawImage, aspect?: ImageAspect): Image {\r\n return new this(v, aspect)\r\n }\r\n protected constructor(v: RawResource | RawImage, aspect?: ImageAspect) {\r\n if ('forkNamespace' in v)\r\n super({\r\n $$plugin: v.$$plugin,\r\n $$meta: { ...v.$$meta, aspect },\r\n pathname: v.path,\r\n type: v.forkNamespace,\r\n processSteps: v.processSteps\r\n })\r\n else super(v)\r\n }\r\n public get aspect() {\r\n return this.$$meta!.aspect as Partial<ImageAspect> | undefined\r\n }\r\n public set aspect(v) {\r\n if (!v) return\r\n this.$$meta ??= {}\r\n this.$$meta.aspect ??= {}\r\n this.$$meta.aspect.width = v.width\r\n this.$$meta.aspect.height = v.height\r\n }\r\n}\r\nexport interface ImageAspect {\r\n width: number\r\n height: number\r\n}\r\nexport type Image_ = string | Image","import { useGlobalVar } from '@delta-comic/utils'\r\nimport dayjs from 'dayjs'\r\nimport { type Component } from 'vue'\r\n\r\nimport { SourcedKeyMap, Struct, type Metadatable } from '../struct'\r\n\r\nimport { ContentPage, type ContentType, type ContentType_ } from './content'\r\nimport { Ep, type RawEp } from './ep'\r\nimport * as image from './image'\r\nimport type { RawResource } from './resource'\r\n\r\nexport interface Category extends Metadatable {\r\n name: string\r\n group: string\r\n search: { keyword: string; source: string; sort: string }\r\n}\r\n\r\nexport interface Author extends Metadatable {\r\n label: string\r\n icon: RawResource | image.RawImage | string\r\n description: string\r\n /**\r\n * 为空则不可订阅\r\n * 否则传入的为`defineConfig`中定义的`subscribe.type`\r\n */ subscribe?: string\r\n actions?: string[]\r\n}\r\n\r\nexport interface RawItem extends Metadatable {\r\n cover: RawResource | image.RawImage\r\n title: string\r\n id: string\r\n /** @alias tags */\r\n categories: Category[]\r\n author: Author[]\r\n viewNumber?: number\r\n likeNumber?: number\r\n commentNumber?: number\r\n isLiked?: boolean\r\n updateTime?: number\r\n customIsAI?: boolean\r\n contentType: ContentType_\r\n length: string\r\n epLength: string\r\n description?: Description\r\n thisEp: RawEp\r\n commentSendable: boolean\r\n customIsSafe?: boolean\r\n}\r\n\r\nexport type ItemCardComponent = Component<\r\n {\r\n item: Item\r\n freeHeight?: boolean\r\n disabled?: boolean\r\n type?: 'default' | 'big' | 'small'\r\n class?: any\r\n style?: any\r\n },\r\n any,\r\n any,\r\n any,\r\n any,\r\n { click: [] },\r\n { default(): void; smallTopInfo(): void; cover(): void }\r\n>\r\n\r\nexport type ItemTranslator = (raw: RawItem) => Item\r\n\r\nexport type Description =\r\n | string\r\n | { type: 'html'; content: string }\r\n | { type: 'text'; content: string }\r\n\r\nexport abstract class Item extends Struct<RawItem> implements RawItem {\r\n public static itemTranslator = SourcedKeyMap.createReactive<\r\n [plugin: string, name: string],\r\n ItemTranslator\r\n >()\r\n public static create(raw: RawItem) {\r\n const translator = this.itemTranslator.get(raw.contentType)\r\n if (!translator)\r\n throw new Error(\r\n `can not found itemTranslator contentType:\"${ContentPage.contentPages.key.toString(raw.contentType)}\"`\r\n )\r\n return translator(raw)\r\n }\r\n public static authorIcon = SourcedKeyMap.createReactive<\r\n [plugin: string, name: string],\r\n Component\r\n >()\r\n\r\n public static itemCards = useGlobalVar(\r\n SourcedKeyMap.createReactive<ContentType, ItemCardComponent>(),\r\n 'uni/item/itemCards'\r\n )\r\n\r\n public abstract like(): Promise<any>\r\n public abstract report(): Promise<any>\r\n public abstract sendComment(text: string): Promise<any>\r\n\r\n public static is(value: unknown): value is Item {\r\n return value instanceof this\r\n }\r\n public cover: RawResource | image.RawImage\r\n public get $cover() {\r\n return image.Image.create(this.cover)\r\n }\r\n public title: string\r\n public id: string\r\n public categories: Category[]\r\n public author: Author[]\r\n public viewNumber?: number\r\n public likeNumber?: number\r\n public commentNumber?: number\r\n public isLiked?: boolean\r\n public description?: Description\r\n public updateTime?: number\r\n public get $updateTime() {\r\n return dayjs(this.updateTime)\r\n }\r\n public contentType: ContentType\r\n public length: string\r\n public epLength: string\r\n public $$plugin: string\r\n public $$meta\r\n public thisEp: RawEp\r\n public customIsSafe?: boolean\r\n public get $thisEp() {\r\n return new Ep(this.thisEp)\r\n }\r\n constructor(v: RawItem) {\r\n super(v)\r\n this.$$plugin = v.$$plugin\r\n this.$$meta = v.$$meta\r\n\r\n this.thisEp = v.thisEp\r\n this.updateTime = v.updateTime\r\n this.cover = v.cover\r\n this.title = v.title\r\n this.id = v.id\r\n this.categories = v.categories\r\n this.author = v.author\r\n this.viewNumber = v.viewNumber\r\n this.likeNumber = v.likeNumber\r\n this.commentNumber = v.commentNumber\r\n this.isLiked = v.isLiked\r\n this.customIsAI = v.customIsAI\r\n this.contentType = ContentPage.contentPages.key.toJSON(v.contentType)\r\n this.length = v.length\r\n this.epLength = v.epLength\r\n this.description = v.description\r\n this.commentSendable = v.commentSendable\r\n this.customIsSafe = v.customIsSafe\r\n }\r\n public commentSendable: boolean\r\n public customIsAI?: boolean\r\n public get $isAi() {\r\n const check = (str: string) => /(^|[\\((\\[\\s【])ai[】\\))\\]\\s]?/gi.test(str)\r\n return (\r\n this.customIsAI ||\r\n check(this.title) ||\r\n this.author.some(author => check(`${author.label}\\u1145${author.description}`))\r\n )\r\n }\r\n}","import { useGlobalVar } from '@delta-comic/utils'\r\nimport { type Component } from 'vue'\r\n\r\nimport { SourcedKeyMap, type StreamQuery, type SourcedKeyType } from '../struct'\r\n\r\nimport * as comment from './comment'\r\nimport * as ep from './ep'\r\nimport * as item from './item'\r\n\r\nexport type ContentPageLike = new (\r\n preload: item.Item | undefined,\r\n id: string,\r\n ep: string\r\n) => ContentPage\r\n\r\nexport type ContentType_ = SourcedKeyType<typeof ContentPage.contentPages>\r\nexport type ContentType = Exclude<ContentType_, string>\r\n\r\nexport type ViewComponent = Component<{ page: ContentPage; union?: item.Item }>\r\nexport type LayoutComponent = Component<\r\n { page: ContentPage },\r\n any,\r\n any,\r\n any,\r\n any,\r\n any,\r\n { view(args: { item?: item.Item }): any }\r\n>\r\n\r\nexport abstract class ContentPage {\r\n public static layouts = useGlobalVar(\r\n SourcedKeyMap.createReactive<ContentType, LayoutComponent>(),\r\n 'uni/contentPage/layouts'\r\n )\r\n public static contentPages = useGlobalVar(\r\n SourcedKeyMap.createReactive<[plugin: string, name: string], ContentPageLike>(),\r\n 'uni/contentPage/contentPages'\r\n )\r\n\r\n constructor(\r\n public preload: item.Item | undefined,\r\n public id: string,\r\n public ep: string\r\n ) {}\r\n public abstract plugin: string\r\n public abstract contentType: ContentType\r\n\r\n public abstract fetchShortId: (signal?: AbortSignal) => Promise<string>\r\n\r\n public abstract fetchDetail: (signal?: AbortSignal) => Promise<item.Item>\r\n\r\n public abstract fetchRecommends: StreamQuery<item.Item>\r\n\r\n public abstract fetchComments: StreamQuery<comment.Comment>\r\n\r\n public abstract fetchEps: StreamQuery<ep.Ep>\r\n\r\n public abstract ViewComponent: ViewComponent\r\n}","import type { Metadata, Metadatable } from '@/struct'\r\n\r\nexport abstract class Downloader implements Metadatable {\r\n public abstract id: string\r\n public abstract name: string\r\n public abstract $$plugin: string\r\n public abstract $$meta?: Metadata\r\n\r\n public abstract begin: () => void\r\n public abstract resume: () => void\r\n public abstract pause: () => void\r\n}","import { shallowReactive, type Component } from 'vue'\r\n\r\nimport type { Metadata, Metadatable } from '@/struct'\r\n\r\nimport { Image } from './image'\r\nimport type { RawResource } from './resource'\r\n\r\nexport interface RawUser extends Metadatable {\r\n avatar?: RawResource\r\n name: string\r\n id: string\r\n}\r\n\r\nexport abstract class User {\r\n public static userBase = shallowReactive(new Map<string, User>())\r\n public static userEditorBase = shallowReactive(new Map<string, Component>())\r\n public static userCards = shallowReactive(new Map<string, UserCardComponent>())\r\n\r\n constructor(v: RawUser) {\r\n if (v.avatar) this.avatar = Image.create(v.avatar)\r\n this.name = v.name\r\n this.id = v.id\r\n this.$$plugin = v.$$plugin\r\n this.$$meta = v.$$meta\r\n }\r\n public avatar?: Image\r\n public name: string\r\n public id: string\r\n public $$plugin: string\r\n public $$meta?: Metadata\r\n public abstract customUser: object\r\n}\r\n\r\nexport type UserCardComponent = Component<{ user: User; isSmall?: boolean }>","export * as comment from './comment'\nexport * as content from './content'\nexport * as download from './download'\nexport * as ep from './ep'\nexport * as image from './image'\nexport * as item from './item'\nexport * as resource from './resource'\nexport * as user from './user'"],"x_google_ignoreList":[0,1,2,3,7,10,11,12,13,14,15],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["isTypedArray","isString"],"sources":["../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isTypedArray.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/getTag.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isLength.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/predicate/isString.mjs","../lib/struct/store.ts","../lib/struct/struct.ts","../lib/struct/meta.ts","../../../node_modules/.pnpm/dayjs@1.11.20/node_modules/dayjs/dayjs.min.js","../lib/model/comment.ts","../lib/model/ep.ts","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isString.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs","../../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs","../lib/model/resource.ts","../lib/model/image.ts","../lib/model/item.ts","../lib/model/content.ts","../lib/model/download.ts","../lib/model/user.ts","../lib/model/index.ts"],"sourcesContent":["function isTypedArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n\nexport { isTypedArray };\n","function getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\n\nexport { getTag };\n","function isLength(value) {\n return Number.isSafeInteger(value) && value >= 0;\n}\n\nexport { isLength };\n","function isString(value) {\n return typeof value === 'string';\n}\n\nexport { isString };\n","import { isString } from 'es-toolkit'\nimport { shallowReactive } from 'vue'\n\n/**\n * 比如有很多需要注明来自哪个插件的值都可以用\n */\nexport class SourcedValue<T extends [string, string]> {\n public toJSON(value: T | string) {\n if (isString(value)) return this.parse(value)\n return value\n }\n public parse(value: string) {\n const splited = value.split(this.separator)\n return <T>[splited[0], splited.slice(1).join(this.separator)]\n }\n public toString(value: T | string) {\n if (isString(value)) return value\n return this.stringify(value)\n }\n public stringify(value: T) {\n return value.join(this.separator)\n }\n constructor(public separator = ':') {}\n}\n/**\n * 相比较于普通的Map,这个元素的key操作可以是`TKey | string`\n * _但内部保存仍使用`SourcedValue.key.toString`作为key_\n */\nexport class SourcedKeyMap<TKey extends [string, string], TValue> implements Map<string, TValue> {\n public getOrInsert(key: string | TKey, value: TValue): TValue {\n const storeKey = this.key.toString(key)\n if (this.store.has(storeKey)) {\n return this.store.get(storeKey) as TValue\n }\n this.store.set(storeKey, value)\n return value\n }\n\n public getOrInsertComputed(key: string | TKey, compute: (key: string) => TValue): TValue {\n const storeKey = this.key.toString(key)\n if (this.store.has(storeKey)) {\n return this.store.get(storeKey) as TValue\n }\n const value = compute(storeKey)\n this.store.set(storeKey, value)\n return value\n }\n public static createReactive<TKey extends [string, string], TValue>(separator = ':') {\n return shallowReactive(new this<TKey, TValue>(separator))\n }\n public constructor(separator = ':') {\n this.key = new SourcedValue<TKey>(separator)\n }\n public key: SourcedValue<TKey>\n private store = shallowReactive(new Map<string, TValue>())\n public get size(): number {\n return this.store.size\n }\n public [Symbol.toStringTag] = 'SourcedKeyMap'\n public clear(): void {\n this.store.clear()\n }\n public delete(key: string | TKey): boolean {\n return this.store.delete(this.key.toString(key))\n }\n public forEach(\n callbackfn: (value: TValue, key: string, map: Map<string, TValue>) => void,\n thisArg?: any\n ): void {\n this.store.forEach((v, k) => {\n callbackfn.call(thisArg, v, k, this)\n })\n }\n public get(key: string | TKey): TValue | undefined {\n return this.store.get(this.key.toString(key))\n }\n public has(key: string | TKey): boolean {\n return this.store.has(this.key.toString(key))\n }\n public set(key: string | TKey, value: TValue): this {\n this.store.set(this.key.toString(key), value)\n return this\n }\n public entries() {\n return this.store.entries()\n }\n public keys() {\n return this.store.keys()\n }\n public values() {\n return this.store.values()\n }\n public [Symbol.iterator]() {\n return this.entries()\n }\n}\n\nexport type SourcedKeyType<\n T extends SourcedKeyMap<[string, string], any> | SourcedValue<[string, string]>\n> =\n T extends SourcedKeyMap<infer K, any>\n ? K | string\n : T extends SourcedValue<infer K>\n ? K | string\n : never","/**\n * 可以结构化的数据,调用`toJSON`获取纯粹的json(没有get/set或method)\n */\nexport class Struct<TRaw extends object> {\n public toJSON() {\n return <TRaw>JSON.parse(JSON.stringify(this.$$raw))\n }\n /**\n * @param $$raw 一个纯粹json对象,不可以是高级对象\n */\n constructor(protected $$raw: TRaw) {}\n public static toRaw<T extends object, TRaw = T extends Struct<infer TR> ? TR : T>(item: T): TRaw {\n if (item instanceof Struct) return item.toJSON()\n return item as any\n }\n}","export interface Metadatable {\n $$meta?: Metadata\n $$plugin: string\n}\nexport type Metadata = Record<string | number, any>\n\nexport type PageKey = string | number\nexport class StreamQuery<TResult, TData extends object = {}> {\n constructor(\n public query: (\n data: TData,\n page: PageKey,\n signal?: AbortSignal\n ) => Promise<{ data: TResult[]; lastPage?: PageKey; nextPage?: PageKey }>,\n public initPage: PageKey\n ) {}\n}","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","import dayjs from 'dayjs'\nimport { type Component } from 'vue'\n\nimport { SourcedKeyMap, Struct, type Metadata, type Metadatable, type StreamQuery } from '../struct'\n\nimport type { ContentType } from './content'\nimport type { Item } from './item'\nimport type { User } from './user'\n\nexport interface RawComment extends Metadatable {\n sender: User\n content: { type: 'string' | 'html'; text: string }\n time: number\n id: string\n childrenCount: number\n likeCount: number\n isLiked: boolean\n reported: boolean\n isTop: boolean\n}\n\nexport type CommentRow = Component<{ comment: Comment; item: Item; parentComment?: Comment }>\n\nexport abstract class Comment extends Struct<RawComment> implements RawComment {\n public static commentRow = SourcedKeyMap.createReactive<ContentType, CommentRow>()\n\n constructor(v: RawComment) {\n super(v)\n this.content = v.content\n this.time = v.time\n this.id = v.id\n this.childrenCount = v.childrenCount\n this.likeCount = v.likeCount\n this.isLiked = v.isLiked\n this.reported = v.reported\n this.$$plugin = v.$$plugin\n this.$$meta = v.$$meta\n this.isTop = v.isTop\n }\n public abstract sender: User\n public content: { type: 'string' | 'html'; text: string }\n public time: number\n public get $time() {\n return dayjs(this.time)\n }\n public id: string\n public childrenCount: number\n public likeCount: number\n public isTop: boolean\n public isLiked: boolean\n public reported: boolean\n public $$plugin: string\n public $$meta?: Metadata\n public abstract like(signal?: AbortSignal): PromiseLike<boolean>\n public abstract report(signal?: AbortSignal): PromiseLike<any>\n public abstract sendComment(text: string, signal?: AbortSignal): PromiseLike<any>\n public abstract fetchChildren: StreamQuery<Comment>\n}","import { Struct, type Metadata, type Metadatable } from '../struct'\nexport interface RawEp extends Metadatable {\n name: string\n id: string\n}\nexport class Ep extends Struct<RawEp> implements RawEp {\n public name: string\n public id: string\n public $$plugin: string\n public $$meta?: Metadata\n constructor(v: RawEp) {\n super(v)\n this.name = v.name\n this.id = v.id\n this.$$plugin = v.$$plugin\n this.$$meta = v.$$meta\n }\n}","import { isLength } from '../../predicate/isLength.mjs';\n\nfunction isArrayLike(value) {\n return value != null && typeof value !== 'function' && isLength(value.length);\n}\n\nexport { isArrayLike };\n","import { getTag } from '../_internal/getTag.mjs';\n\nfunction isArguments(value) {\n return value !== null && typeof value === 'object' && getTag(value) === '[object Arguments]';\n}\n\nexport { isArguments };\n","function isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\n\nexport { isString };\n","function isPrototype(value) {\n const constructor = value?.constructor;\n const prototype = typeof constructor === 'function' ? constructor.prototype : Object.prototype;\n return value === prototype;\n}\n\nexport { isPrototype };\n","import { isTypedArray as isTypedArray$1 } from '../../predicate/isTypedArray.mjs';\n\nfunction isTypedArray(x) {\n return isTypedArray$1(x);\n}\n\nexport { isTypedArray };\n","import { isArguments } from './isArguments.mjs';\nimport { isArrayLike } from './isArrayLike.mjs';\nimport { isTypedArray } from './isTypedArray.mjs';\nimport { isPrototype } from '../_internal/isPrototype.mjs';\n\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value)) {\n if (typeof value.splice !== 'function' &&\n typeof value !== 'string' &&\n (typeof Buffer === 'undefined' || !Buffer.isBuffer(value)) &&\n !isTypedArray(value) &&\n !isArguments(value)) {\n return false;\n }\n return value.length === 0;\n }\n if (typeof value === 'object') {\n if (value instanceof Map || value instanceof Set) {\n return value.size === 0;\n }\n const keys = Object.keys(value);\n if (isPrototype(value)) {\n return keys.filter(x => x !== 'constructor').length === 0;\n }\n return keys.length === 0;\n }\n return true;\n}\n\nexport { isEmpty };\n","import { useGlobalVar } from '@delta-comic/utils'\nimport { isEmpty, isString } from 'es-toolkit/compat'\nimport { shallowReactive } from 'vue'\n\nimport { SourcedKeyMap, Struct, type Metadata, type Metadatable } from '../struct'\n\nexport type ProcessInstance = (\n nowPath: string,\n resource: Resource\n) => Promise<[path: string, exit: boolean]>\nexport interface ProcessStep {\n referenceName: string\n ignoreExit?: boolean\n}\nexport type ProcessStep_ = ProcessStep | string\n\nexport interface ResourceType {\n type: string\n urls: string[]\n test: (url: string, signal: AbortSignal) => PromiseLike<void>\n}\nexport interface RawResource extends Metadatable {\n pathname: string\n type: string\n processSteps?: ProcessStep_[]\n}\nexport class Resource extends Struct<RawResource> implements RawResource {\n public static processInstances = useGlobalVar(\n SourcedKeyMap.createReactive<[plugin: string, referenceName: string], ProcessInstance>(),\n 'uni/resource/processInstances'\n )\n\n public static fork = useGlobalVar(\n SourcedKeyMap.createReactive<[plugin: string, type: string], ResourceType>(),\n 'uni/resource/fork'\n )\n public static precedenceFork = useGlobalVar(\n SourcedKeyMap.createReactive<[plugin: string, type: string], string>(),\n 'uni/resource/precedenceFork'\n )\n\n public static is(value: unknown): value is Resource {\n return value instanceof this\n }\n public static create(v: RawResource): Resource {\n return new this(v)\n }\n protected constructor(v: RawResource) {\n super(v)\n this.$$plugin = v.$$plugin\n this.$$meta = v.$$meta\n this.pathname = v.pathname\n this.type = v.type\n this.processSteps = (v.processSteps ?? []).map<ProcessStep>(v =>\n isString(v) ? { referenceName: v, ignoreExit: false } : v\n )\n }\n public type: string\n public pathname: string\n public processSteps: ProcessStep[]\n public $$meta?: Metadata\n public $$plugin: string\n public async getUrl(): Promise<string> {\n let resultPath = this.pathname\n for (const option of this.processSteps) {\n // preflight\n const instance = Resource.processInstances.get([this.$$plugin, option.referenceName])\n if (!instance) {\n console.warn(\n `[Resource.getUrl] process not found, fullname: [${this.$$plugin}, ${option.referenceName}]`\n )\n continue\n }\n\n // call\n const result = await instance(resultPath, this)\n resultPath = result[0]\n if (option.ignoreExit || !result[1]) continue\n break\n }\n if (!URL.canParse(resultPath)) return `${this.getThisFork()}/${resultPath}`\n return resultPath\n }\n public omittedForks = shallowReactive(new Set<string>())\n public getThisFork() {\n const all = new Set(Resource.fork.get([this.$$plugin, this.type])?.urls ?? [])\n let fork: string | undefined\n if (isEmpty(this.omittedForks)) {\n fork = Resource.precedenceFork.get([this.$$plugin, this.type])\n } else {\n const diff = Array.from(all.difference(this.omittedForks).values())\n fork = diff[0]\n }\n if (!fork)\n throw new Error(\n `[Resource.getThisFork] fork not found, type: [${this.$$plugin}, ${this.type}]`\n )\n return fork\n }\n public localChangeFork() {\n const all = new Set(Resource.fork.get([this.$$plugin, this.type])?.urls ?? [])\n this.omittedForks.add(this.getThisFork())\n const isChangedFail = isEmpty(all.difference(this.omittedForks))\n if (isChangedFail) this.omittedForks.clear()\n return isChangedFail\n }\n}","import type { Metadatable } from '../struct'\n\nimport { Resource, type RawResource, type ProcessStep_ } from './resource'\n\nexport interface RawImage extends Metadatable {\n path: string\n forkNamespace: string\n processSteps?: ProcessStep_[]\n}\n\nexport class Image extends Resource {\n public static override is(value: unknown): value is Image {\n return value instanceof this\n }\n public static override create(v: RawResource | RawImage, aspect?: ImageAspect): Image {\n return new this(v, aspect)\n }\n protected constructor(v: RawResource | RawImage, aspect?: ImageAspect) {\n if ('forkNamespace' in v)\n super({\n $$plugin: v.$$plugin,\n $$meta: { ...v.$$meta, aspect },\n pathname: v.path,\n type: v.forkNamespace,\n processSteps: v.processSteps\n })\n else super(v)\n }\n public get aspect() {\n return this.$$meta!.aspect as Partial<ImageAspect> | undefined\n }\n public set aspect(v) {\n if (!v) return\n this.$$meta ??= {}\n this.$$meta.aspect ??= {}\n this.$$meta.aspect.width = v.width\n this.$$meta.aspect.height = v.height\n }\n}\nexport interface ImageAspect {\n width: number\n height: number\n}\nexport type Image_ = string | Image","import { useGlobalVar } from '@delta-comic/utils'\nimport dayjs from 'dayjs'\nimport { type Component } from 'vue'\n\nimport { SourcedKeyMap, Struct, type Metadatable } from '../struct'\n\nimport { ContentPage, type ContentType, type ContentType_ } from './content'\nimport { Ep, type RawEp } from './ep'\nimport * as image from './image'\nimport type { RawResource } from './resource'\n\nexport interface Category extends Metadatable {\n name: string\n group: string\n search: { keyword: string; source: string; sort: string }\n}\n\nexport interface Author extends Metadatable {\n label: string\n icon: RawResource | image.RawImage | string\n description: string\n /**\n * 为空则不可订阅\n * 否则传入的为`defineConfig`中定义的`subscribe.type`\n */ subscribe?: string\n actions?: string[]\n}\n\nexport interface RawItem extends Metadatable {\n cover: RawResource | image.RawImage\n title: string\n id: string\n /** @alias tags */\n categories: Category[]\n author: Author[]\n viewNumber?: number\n likeNumber?: number\n commentNumber?: number\n isLiked?: boolean\n updateTime?: number\n customIsAI?: boolean\n contentType: ContentType_\n length: string\n epLength: string\n description?: Description\n thisEp: RawEp\n commentSendable: boolean\n customIsSafe?: boolean\n}\n\nexport type ItemCardComponent = Component<\n {\n item: Item\n freeHeight?: boolean\n disabled?: boolean\n type?: 'default' | 'big' | 'small'\n class?: any\n style?: any\n },\n any,\n any,\n any,\n any,\n { click: [] },\n { default(): void; smallTopInfo(): void; cover(): void }\n>\n\nexport type ItemTranslator = (raw: RawItem) => Item\n\nexport type Description =\n | string\n | { type: 'html'; content: string }\n | { type: 'text'; content: string }\n\nexport abstract class Item extends Struct<RawItem> implements RawItem {\n public static itemTranslator = SourcedKeyMap.createReactive<\n [plugin: string, name: string],\n ItemTranslator\n >()\n public static create(raw: RawItem) {\n const translator = this.itemTranslator.get(raw.contentType)\n if (!translator)\n throw new Error(\n `can not found itemTranslator contentType:\"${ContentPage.contentPages.key.toString(raw.contentType)}\"`\n )\n return translator(raw)\n }\n public static authorIcon = SourcedKeyMap.createReactive<\n [plugin: string, name: string],\n Component\n >()\n\n public static itemCards = useGlobalVar(\n SourcedKeyMap.createReactive<ContentType, ItemCardComponent>(),\n 'uni/item/itemCards'\n )\n\n public abstract like(): Promise<any>\n public abstract report(): Promise<any>\n public abstract sendComment(text: string): Promise<any>\n\n public static is(value: unknown): value is Item {\n return value instanceof this\n }\n public cover: RawResource | image.RawImage\n public get $cover() {\n return image.Image.create(this.cover)\n }\n public title: string\n public id: string\n public categories: Category[]\n public author: Author[]\n public viewNumber?: number\n public likeNumber?: number\n public commentNumber?: number\n public isLiked?: boolean\n public description?: Description\n public updateTime?: number\n public get $updateTime() {\n return dayjs(this.updateTime)\n }\n public contentType: ContentType\n public length: string\n public epLength: string\n public $$plugin: string\n public $$meta\n public thisEp: RawEp\n public customIsSafe?: boolean\n public get $thisEp() {\n return new Ep(this.thisEp)\n }\n constructor(v: RawItem) {\n super(v)\n this.$$plugin = v.$$plugin\n this.$$meta = v.$$meta\n\n this.thisEp = v.thisEp\n this.updateTime = v.updateTime\n this.cover = v.cover\n this.title = v.title\n this.id = v.id\n this.categories = v.categories\n this.author = v.author\n this.viewNumber = v.viewNumber\n this.likeNumber = v.likeNumber\n this.commentNumber = v.commentNumber\n this.isLiked = v.isLiked\n this.customIsAI = v.customIsAI\n this.contentType = ContentPage.contentPages.key.toJSON(v.contentType)\n this.length = v.length\n this.epLength = v.epLength\n this.description = v.description\n this.commentSendable = v.commentSendable\n this.customIsSafe = v.customIsSafe\n }\n public commentSendable: boolean\n public customIsAI?: boolean\n public get $isAi() {\n const check = (str: string) => /(^|[\\((\\[\\s【])ai[】\\))\\]\\s]?/gi.test(str)\n return (\n this.customIsAI ||\n check(this.title) ||\n this.author.some(author => check(`${author.label}\\u1145${author.description}`))\n )\n }\n}","import { useGlobalVar } from '@delta-comic/utils'\nimport { type Component } from 'vue'\n\nimport { SourcedKeyMap, type StreamQuery, type SourcedKeyType } from '../struct'\n\nimport * as comment from './comment'\nimport * as ep from './ep'\nimport * as item from './item'\n\nexport type ContentPageLike = new (\n preload: item.Item | undefined,\n id: string,\n ep: string\n) => ContentPage\n\nexport type ContentType_ = SourcedKeyType<typeof ContentPage.contentPages>\nexport type ContentType = Exclude<ContentType_, string>\n\nexport type ViewComponent = Component<{ page: ContentPage; union?: item.Item }>\nexport type LayoutComponent = Component<\n { page: ContentPage },\n any,\n any,\n any,\n any,\n any,\n { view(args: { item?: item.Item }): any }\n>\n\nexport abstract class ContentPage {\n public static layouts = useGlobalVar(\n SourcedKeyMap.createReactive<ContentType, LayoutComponent>(),\n 'uni/contentPage/layouts'\n )\n public static contentPages = useGlobalVar(\n SourcedKeyMap.createReactive<[plugin: string, name: string], ContentPageLike>(),\n 'uni/contentPage/contentPages'\n )\n\n constructor(\n public preload: item.Item | undefined,\n public id: string,\n public ep: string\n ) {}\n public abstract plugin: string\n public abstract contentType: ContentType\n\n public abstract fetchShortId: (signal?: AbortSignal) => Promise<string>\n\n public abstract fetchDetail: (signal?: AbortSignal) => Promise<item.Item>\n\n public abstract fetchRecommends: StreamQuery<item.Item>\n\n public abstract fetchComments: StreamQuery<comment.Comment>\n\n public abstract fetchEps: StreamQuery<ep.Ep>\n\n public abstract ViewComponent: ViewComponent\n}","import type { Metadata, Metadatable } from '@/struct'\n\nexport abstract class Downloader implements Metadatable {\n public abstract id: string\n public abstract name: string\n public abstract $$plugin: string\n public abstract $$meta?: Metadata\n\n public abstract begin: () => void\n public abstract resume: () => void\n public abstract pause: () => void\n}","import { shallowReactive, type Component } from 'vue'\n\nimport type { Metadata, Metadatable } from '@/struct'\n\nimport { Image } from './image'\nimport type { RawResource } from './resource'\n\nexport interface RawUser extends Metadatable {\n avatar?: RawResource\n name: string\n id: string\n}\n\nexport abstract class User {\n public static userBase = shallowReactive(new Map<string, User>())\n public static userEditorBase = shallowReactive(new Map<string, Component>())\n public static userCards = shallowReactive(new Map<string, UserCardComponent>())\n\n constructor(v: RawUser) {\n if (v.avatar) this.avatar = Image.create(v.avatar)\n this.name = v.name\n this.id = v.id\n this.$$plugin = v.$$plugin\n this.$$meta = v.$$meta\n }\n public avatar?: Image\n public name: string\n public id: string\n public $$plugin: string\n public $$meta?: Metadata\n public abstract customUser: object\n}\n\nexport type UserCardComponent = Component<{ user: User; isSmall?: boolean }>","export * as comment from './comment'\nexport * as content from './content'\nexport * as download from './download'\nexport * as ep from './ep'\nexport * as image from './image'\nexport * as item from './item'\nexport * as resource from './resource'\nexport * as user from './user'"],"x_google_ignoreList":[0,1,2,3,7,10,11,12,13,14,15],"mappings":"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"}
@@ -14,6 +14,8 @@ export declare class SourcedValue<T extends [string, string]> {
14
14
  * _但内部保存仍使用`SourcedValue.key.toString`作为key_
15
15
  */
16
16
  export declare class SourcedKeyMap<TKey extends [string, string], TValue> implements Map<string, TValue> {
17
+ getOrInsert(key: string | TKey, value: TValue): TValue;
18
+ getOrInsertComputed(key: string | TKey, compute: (key: string) => TValue): TValue;
17
19
  static createReactive<TKey extends [string, string], TValue>(separator?: string): import('vue').ShallowReactive<SourcedKeyMap<TKey, TValue>>;
18
20
  constructor(separator?: string);
19
21
  key: SourcedValue<TKey>;
package/dist/pack.tgz CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delta-comic/model",
3
- "version": "1.3.4",
3
+ "version": "1.3.5",
4
4
  "description": "空阙虱楼",
5
5
  "homepage": "https://github.com/delta-comic/delta-comic",
6
6
  "license": "AGPL-3.0-only",
@@ -34,13 +34,13 @@
34
34
  "mitt": "^3.0.1"
35
35
  },
36
36
  "devDependencies": {
37
- "vite": "npm:@voidzero-dev/vite-plus-core@latest",
38
- "vite-plus": "latest"
37
+ "vite": "npm:@voidzero-dev/vite-plus-core@^0.1.16",
38
+ "vite-plus": "^0.1.16"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "vue": "^3.5",
42
- "@delta-comic/request": "1.3.4",
43
- "@delta-comic/utils": "1.3.4"
42
+ "@delta-comic/request": "1.3.5",
43
+ "@delta-comic/utils": "1.3.5"
44
44
  },
45
45
  "release": {
46
46
  "tagFormat": "model-${version}"