@delta-comic/model 1.3.1 → 1.3.4

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
@@ -112,7 +112,11 @@ var g = class {
112
112
  static toRaw(t) {
113
113
  return t instanceof e ? t.toJSON() : t;
114
114
  }
115
- }, y = /* @__PURE__ */ c(((e, t) => {
115
+ }, y = class {
116
+ constructor(e, t) {
117
+ this.query = e, this.initPage = t;
118
+ }
119
+ }, b = /* @__PURE__ */ c(((e, t) => {
116
120
  (function(n, r) {
117
121
  typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self).dayjs = r();
118
122
  })(e, (function() {
@@ -406,7 +410,7 @@ var g = class {
406
410
  return w(1e3 * e);
407
411
  }, w.en = b[y], w.Ls = b, w.p = {}, w;
408
412
  }));
409
- })), b = /* @__PURE__ */ l({ Comment: () => S }), x = /* @__PURE__ */ d(y(), 1), S = class extends v {
413
+ })), x = /* @__PURE__ */ l({ Comment: () => C }), S = /* @__PURE__ */ d(b(), 1), C = class extends v {
410
414
  static commentRow = _.createReactive();
411
415
  constructor(e) {
412
416
  super(e), this.content = e.content, this.time = e.time, this.id = e.id, this.childrenCount = e.childrenCount, this.likeCount = e.likeCount, this.isLiked = e.isLiked, this.reported = e.reported, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.isTop = e.isTop;
@@ -414,7 +418,7 @@ var g = class {
414
418
  content;
415
419
  time;
416
420
  get $time() {
417
- return (0, x.default)(this.time);
421
+ return (0, S.default)(this.time);
418
422
  }
419
423
  id;
420
424
  childrenCount;
@@ -424,7 +428,7 @@ var g = class {
424
428
  reported;
425
429
  $$plugin;
426
430
  $$meta;
427
- }, C = /* @__PURE__ */ l({ Ep: () => w }), w = class extends v {
431
+ }, w = /* @__PURE__ */ l({ Ep: () => T }), T = class extends v {
428
432
  name;
429
433
  id;
430
434
  $$plugin;
@@ -435,45 +439,45 @@ var g = class {
435
439
  };
436
440
  //#endregion
437
441
  //#region ../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArrayLike.mjs
438
- function T(e) {
442
+ function E(e) {
439
443
  return e != null && typeof e != "function" && m(e.length);
440
444
  }
441
445
  //#endregion
442
446
  //#region ../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isArguments.mjs
443
- function E(e) {
447
+ function D(e) {
444
448
  return typeof e == "object" && !!e && p(e) === "[object Arguments]";
445
449
  }
446
450
  //#endregion
447
451
  //#region ../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isString.mjs
448
- function D(e) {
452
+ function O(e) {
449
453
  return typeof e == "string" || e instanceof String;
450
454
  }
451
455
  //#endregion
452
456
  //#region ../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/_internal/isPrototype.mjs
453
- function O(e) {
457
+ function k(e) {
454
458
  let t = e?.constructor;
455
459
  return e === (typeof t == "function" ? t.prototype : Object.prototype);
456
460
  }
457
461
  //#endregion
458
462
  //#region ../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isTypedArray.mjs
459
- function k(e) {
463
+ function A(e) {
460
464
  return f(e);
461
465
  }
462
466
  //#endregion
463
467
  //#region ../../node_modules/.pnpm/es-toolkit@1.45.1/node_modules/es-toolkit/dist/compat/predicate/isEmpty.mjs
464
- function A(e) {
468
+ function j(e) {
465
469
  if (e == null) return !0;
466
- if (T(e)) return typeof e.splice != "function" && typeof e != "string" && (typeof Buffer > "u" || !Buffer.isBuffer(e)) && !k(e) && !E(e) ? !1 : e.length === 0;
470
+ if (E(e)) return typeof e.splice != "function" && typeof e != "string" && (typeof Buffer > "u" || !Buffer.isBuffer(e)) && !A(e) && !D(e) ? !1 : e.length === 0;
467
471
  if (typeof e == "object") {
468
472
  if (e instanceof Map || e instanceof Set) return e.size === 0;
469
473
  let t = Object.keys(e);
470
- return O(e) ? t.filter((e) => e !== "constructor").length === 0 : t.length === 0;
474
+ return k(e) ? t.filter((e) => e !== "constructor").length === 0 : t.length === 0;
471
475
  }
472
476
  return !0;
473
477
  }
474
478
  //#endregion
475
479
  //#region lib/model/resource.ts
476
- var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
480
+ var M = /* @__PURE__ */ l({ Resource: () => N }), N = class n extends v {
477
481
  static processInstances = t(_.createReactive(), "uni/resource/processInstances");
478
482
  static fork = t(_.createReactive(), "uni/resource/fork");
479
483
  static precedenceFork = t(_.createReactive(), "uni/resource/precedenceFork");
@@ -484,7 +488,7 @@ var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
484
488
  return new this(e);
485
489
  }
486
490
  constructor(e) {
487
- super(e), this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.pathname = e.pathname, this.type = e.type, this.processSteps = (e.processSteps ?? []).map((e) => D(e) ? {
491
+ super(e), this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.pathname = e.pathname, this.type = e.type, this.processSteps = (e.processSteps ?? []).map((e) => O(e) ? {
488
492
  referenceName: e,
489
493
  ignoreExit: !1
490
494
  } : e);
@@ -510,16 +514,16 @@ var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
510
514
  omittedForks = e(/* @__PURE__ */ new Set());
511
515
  getThisFork() {
512
516
  let e = new Set(n.fork.get([this.$$plugin, this.type])?.urls ?? []), t;
513
- if (t = A(this.omittedForks) ? n.precedenceFork.get([this.$$plugin, this.type]) : Array.from(e.difference(this.omittedForks).values())[0], !t) throw Error(`[Resource.getThisFork] fork not found, type: [${this.$$plugin}, ${this.type}]`);
517
+ if (t = j(this.omittedForks) ? n.precedenceFork.get([this.$$plugin, this.type]) : Array.from(e.difference(this.omittedForks).values())[0], !t) throw Error(`[Resource.getThisFork] fork not found, type: [${this.$$plugin}, ${this.type}]`);
514
518
  return t;
515
519
  }
516
520
  localChangeFork() {
517
521
  let e = new Set(n.fork.get([this.$$plugin, this.type])?.urls ?? []);
518
522
  this.omittedForks.add(this.getThisFork());
519
- let t = A(e.difference(this.omittedForks));
523
+ let t = j(e.difference(this.omittedForks));
520
524
  return t && this.omittedForks.clear(), t;
521
525
  }
522
- }, N = /* @__PURE__ */ l({ Image: () => P }), P = class extends M {
526
+ }, P = /* @__PURE__ */ l({ Image: () => F }), F = class extends N {
523
527
  static is(e) {
524
528
  return e instanceof this;
525
529
  }
@@ -544,11 +548,11 @@ var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
544
548
  set aspect(e) {
545
549
  e && (this.$$meta ??= {}, this.$$meta.aspect ??= {}, this.$$meta.aspect.width = e.width, this.$$meta.aspect.height = e.height);
546
550
  }
547
- }, F = /* @__PURE__ */ l({ Item: () => I }), I = class extends v {
551
+ }, I = /* @__PURE__ */ l({ Item: () => L }), L = class extends v {
548
552
  static itemTranslator = _.createReactive();
549
553
  static create(e) {
550
554
  let t = this.itemTranslator.get(e.contentType);
551
- if (!t) throw Error(`can not found itemTranslator contentType:"${R.contentPages.key.toString(e.contentType)}"`);
555
+ if (!t) throw Error(`can not found itemTranslator contentType:"${z.contentPages.key.toString(e.contentType)}"`);
552
556
  return t(e);
553
557
  }
554
558
  static authorIcon = _.createReactive();
@@ -558,7 +562,7 @@ var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
558
562
  }
559
563
  cover;
560
564
  get $cover() {
561
- return P.create(this.cover);
565
+ return F.create(this.cover);
562
566
  }
563
567
  title;
564
568
  id;
@@ -571,7 +575,7 @@ var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
571
575
  description;
572
576
  updateTime;
573
577
  get $updateTime() {
574
- return (0, x.default)(this.updateTime);
578
+ return (0, S.default)(this.updateTime);
575
579
  }
576
580
  contentType;
577
581
  length;
@@ -581,10 +585,10 @@ var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
581
585
  thisEp;
582
586
  customIsSafe;
583
587
  get $thisEp() {
584
- return new w(this.thisEp);
588
+ return new T(this.thisEp);
585
589
  }
586
590
  constructor(e) {
587
- super(e), this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.thisEp = e.thisEp, this.updateTime = e.updateTime, this.cover = e.cover, this.title = e.title, this.id = e.id, this.categories = e.categories, this.author = e.author, this.viewNumber = e.viewNumber, this.likeNumber = e.likeNumber, this.commentNumber = e.commentNumber, this.isLiked = e.isLiked, this.customIsAI = e.customIsAI, this.contentType = R.contentPages.key.toJSON(e.contentType), this.length = e.length, this.epLength = e.epLength, this.description = e.description, this.commentSendable = e.commentSendable, this.customIsSafe = e.customIsSafe;
591
+ super(e), this.$$plugin = e.$$plugin, this.$$meta = e.$$meta, this.thisEp = e.thisEp, this.updateTime = e.updateTime, this.cover = e.cover, this.title = e.title, this.id = e.id, this.categories = e.categories, this.author = e.author, this.viewNumber = e.viewNumber, this.likeNumber = e.likeNumber, this.commentNumber = e.commentNumber, this.isLiked = e.isLiked, this.customIsAI = e.customIsAI, this.contentType = z.contentPages.key.toJSON(e.contentType), this.length = e.length, this.epLength = e.epLength, this.description = e.description, this.commentSendable = e.commentSendable, this.customIsSafe = e.customIsSafe;
588
592
  }
589
593
  commentSendable;
590
594
  customIsAI;
@@ -592,35 +596,35 @@ var j = /* @__PURE__ */ l({ Resource: () => M }), M = class n extends v {
592
596
  let e = (e) => /(^|[\((\[\s【])ai[】\))\]\s]?/gi.test(e);
593
597
  return this.customIsAI || e(this.title) || this.author.some((t) => e(`${t.label}\u1145${t.description}`));
594
598
  }
595
- }, L = /* @__PURE__ */ l({ ContentPage: () => R }), R = class {
599
+ }, R = /* @__PURE__ */ l({ ContentPage: () => z }), z = class {
596
600
  static layouts = t(_.createReactive(), "uni/contentPage/layouts");
597
601
  static contentPages = t(_.createReactive(), "uni/contentPage/contentPages");
598
602
  constructor(e, t, n) {
599
603
  this.preload = e, this.id = t, this.ep = n;
600
604
  }
601
- }, z = /* @__PURE__ */ l({ Downloader: () => B }), B = class {}, V = /* @__PURE__ */ l({ User: () => H }), H = class {
605
+ }, B = /* @__PURE__ */ l({ Downloader: () => V }), V = class {}, H = /* @__PURE__ */ l({ User: () => U }), U = class {
602
606
  static userBase = e(/* @__PURE__ */ new Map());
603
607
  static userEditorBase = e(/* @__PURE__ */ new Map());
604
608
  static userCards = e(/* @__PURE__ */ new Map());
605
609
  constructor(e) {
606
- e.avatar && (this.avatar = P.create(e.avatar)), this.name = e.name, this.id = e.id, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta;
610
+ e.avatar && (this.avatar = F.create(e.avatar)), this.name = e.name, this.id = e.id, this.$$plugin = e.$$plugin, this.$$meta = e.$$meta;
607
611
  }
608
612
  avatar;
609
613
  name;
610
614
  id;
611
615
  $$plugin;
612
616
  $$meta;
613
- }, U = /* @__PURE__ */ l({
614
- comment: () => b,
615
- content: () => L,
616
- download: () => z,
617
- ep: () => C,
618
- image: () => N,
619
- item: () => F,
620
- resource: () => j,
621
- user: () => V
617
+ }, W = /* @__PURE__ */ l({
618
+ comment: () => x,
619
+ content: () => R,
620
+ download: () => B,
621
+ ep: () => w,
622
+ image: () => P,
623
+ item: () => I,
624
+ resource: () => M,
625
+ user: () => H
622
626
  });
623
627
  //#endregion
624
- export { _ as SourcedKeyMap, g as SourcedValue, v as Struct, U as uni };
628
+ export { _ as SourcedKeyMap, g as SourcedValue, y as StreamQuery, v as Struct, W as uni };
625
629
 
626
630
  //# sourceMappingURL=index.js.map
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","../../../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 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}","!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; isFullScreen: boolean }>\nexport type LayoutComponent = Component<{ page: ContentPage }>\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,6,9,10,11,12,13,14],"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'\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":";;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,EAAa,GAAG;AACrB,QAAO,YAAY,OAAO,EAAE,IAAI,EAAE,aAAa;;;;ACDnD,SAAS,EAAO,GAAO;AAInB,QAHI,KAAS,OACF,MAAU,KAAA,IAAY,uBAAuB,kBAEjD,OAAO,UAAU,SAAS,KAAK,EAAM;;;;ACJhD,SAAS,EAAS,GAAO;AACrB,QAAO,OAAO,cAAc,EAAM,IAAI,KAAS;;;;ACDnD,SAASC,EAAS,GAAO;AACrB,QAAO,OAAO,KAAU;;;;ACK5B,IAAa,IAAb,MAAsD;CACpD,OAAc,GAAmB;AAE/B,SADI,EAAS,EAAM,GAAS,KAAK,MAAM,EAAM,GACtC;;CAET,MAAa,GAAe;EAC1B,IAAM,IAAU,EAAM,MAAM,KAAK,UAAU;AAC3C,SAAU,CAAC,EAAQ,IAAI,EAAQ,MAAM,EAAE,CAAC,KAAK,KAAK,UAAU,CAAC;;CAE/D,SAAgB,GAAmB;AAEjC,SADI,EAAS,EAAM,GAAS,IACrB,KAAK,UAAU,EAAM;;CAE9B,UAAiB,GAAU;AACzB,SAAO,EAAM,KAAK,KAAK,UAAU;;CAEnC,YAAY,IAAmB,KAAK;AAAjB,OAAA,YAAA;;GAMR,IAAb,MAAiG;CAC/F,OAAc,eAAsD,IAAY,KAAK;AACnF,SAAO,EAAgB,IAAI,KAAmB,EAAU,CAAC;;CAE3D,YAAmB,IAAY,KAAK;AAClC,OAAK,MAAM,IAAI,EAAmB,EAAU;;CAE9C;CACA,QAAgB,kBAAgB,IAAI,KAAqB,CAAC;CAC1D,IAAW,OAAe;AACxB,SAAO,KAAK,MAAM;;CAEpB,CAAQ,OAAO,eAAe;CAC9B,QAAqB;AACnB,OAAK,MAAM,OAAO;;CAEpB,OAAc,GAA6B;AACzC,SAAO,KAAK,MAAM,OAAO,KAAK,IAAI,SAAS,EAAI,CAAC;;CAElD,QACE,GACA,GACM;AACN,OAAK,MAAM,SAAS,GAAG,MAAM;AAC3B,KAAW,KAAK,GAAS,GAAG,GAAG,KAAK;IACpC;;CAEJ,IAAW,GAAwC;AACjD,SAAO,KAAK,MAAM,IAAI,KAAK,IAAI,SAAS,EAAI,CAAC;;CAE/C,IAAW,GAA6B;AACtC,SAAO,KAAK,MAAM,IAAI,KAAK,IAAI,SAAS,EAAI,CAAC;;CAE/C,IAAW,GAAoB,GAAqB;AAElD,SADA,KAAK,MAAM,IAAI,KAAK,IAAI,SAAS,EAAI,EAAE,EAAM,EACtC;;CAET,UAAiB;AACf,SAAO,KAAK,MAAM,SAAS;;CAE7B,OAAc;AACZ,SAAO,KAAK,MAAM,MAAM;;CAE1B,SAAgB;AACd,SAAO,KAAK,MAAM,QAAQ;;CAE5B,CAAQ,OAAO,YAAY;AACzB,SAAO,KAAK,SAAS;;GCxEZ,IAAb,MAAa,EAA4B;CACvC,SAAgB;AACd,SAAa,KAAK,MAAM,KAAK,UAAU,KAAK,MAAM,CAAC;;CAKrD,YAAY,GAAuB;AAAb,OAAA,QAAA;;CACtB,OAAc,MAAoE,GAAe;AAE/F,SADI,aAAgB,IAAe,EAAK,QAAQ,GACzC;;GCNE,IAAb,MAA6D;CAC3D,YACE,GAKA,GACA;AADO,EALA,KAAA,QAAA,GAKA,KAAA,WAAA;;;ACdX,EAAC,SAAS,GAAE,GAAE;AAAC,EAAU,OAAO,KAAjB,YAA8C,MAApB,SAA2B,EAAO,UAAQ,GAAG,GAAa,OAAO,UAAnB,cAA2B,OAAO,MAAI,OAAO,EAAE,GAAC,CAAC,IAAe,OAAO,aAApB,MAA+B,aAAW,KAAG,MAAM,QAAM,GAAG;QAAQ,WAAU;EAAc,IAAI,IAAE,KAAI,IAAE,KAAI,IAAE,MAAK,IAAE,eAAc,IAAE,UAAS,IAAE,UAAS,IAAE,QAAO,IAAE,OAAM,IAAE,QAAO,IAAE,SAAQ,IAAE,WAAU,IAAE,QAAO,IAAE,QAAO,IAAE,gBAAe,IAAE,8FAA6F,IAAE,uFAAsF,IAAE;GAAC,MAAK;GAAK,UAAS,2DAA2D,MAAM,IAAI;GAAC,QAAO,wFAAwF,MAAM,IAAI;GAAC,SAAQ,SAAS,GAAE;IAAC,IAAI,IAAE;KAAC;KAAK;KAAK;KAAK;KAAK,EAAC,IAAE,IAAE;AAAI,WAAM,MAAI,KAAG,GAAG,IAAE,MAAI,OAAK,EAAE,MAAI,EAAE,MAAI;;GAAK,EAAC,IAAE,SAAS,GAAE,GAAE,GAAE;GAAC,IAAI,IAAE,OAAO,EAAE;AAAC,UAAM,CAAC,KAAG,EAAE,UAAQ,IAAE,IAAE,KAAG,MAAM,IAAE,IAAE,EAAE,OAAO,CAAC,KAAK,EAAE,GAAC;KAAG,IAAE;GAAC,GAAE;GAAE,GAAE,SAAS,GAAE;IAAC,IAAI,IAAE,CAAC,EAAE,WAAW,EAAC,IAAE,KAAK,IAAI,EAAE,EAAC,IAAE,KAAK,MAAM,IAAE,GAAG,EAAC,IAAE,IAAE;AAAG,YAAO,KAAG,IAAE,MAAI,OAAK,EAAE,GAAE,GAAE,IAAI,GAAC,MAAI,EAAE,GAAE,GAAE,IAAI;;GAAE,GAAE,SAAS,EAAE,GAAE,GAAE;AAAC,QAAG,EAAE,MAAM,GAAC,EAAE,MAAM,CAAC,QAAM,CAAC,EAAE,GAAE,EAAE;IAAC,IAAI,IAAE,MAAI,EAAE,MAAM,GAAC,EAAE,MAAM,KAAG,EAAE,OAAO,GAAC,EAAE,OAAO,GAAE,IAAE,EAAE,OAAO,CAAC,IAAI,GAAE,EAAE,EAAC,IAAE,IAAE,IAAE,GAAE,IAAE,EAAE,OAAO,CAAC,IAAI,KAAG,IAAE,KAAG,IAAG,EAAE;AAAC,WAAM,EAAE,EAAE,KAAG,IAAE,MAAI,IAAE,IAAE,IAAE,IAAE,OAAK;;GAAI,GAAE,SAAS,GAAE;AAAC,WAAO,IAAE,IAAE,KAAK,KAAK,EAAE,IAAE,IAAE,KAAK,MAAM,EAAE;;GAAE,GAAE,SAAS,GAAE;AAAC,WAAM;KAAC,GAAE;KAAE,GAAE;KAAE,GAAE;KAAE,GAAE;KAAE,GAAE;KAAE,GAAE;KAAE,GAAE;KAAE,GAAE;KAAE,IAAG;KAAE,GAAE;KAAE,CAAC,MAAI,OAAO,KAAG,GAAG,CAAC,aAAa,CAAC,QAAQ,MAAK,GAAG;;GAAE,GAAE,SAAS,GAAE;AAAC,WAAgB,MAAT,KAAK;;GAAO,EAAC,IAAE,MAAK,IAAE,EAAE;AAAC,IAAE,KAAG;EAAE,IAAI,IAAE,kBAAiB,IAAE,SAAS,GAAE;AAAC,UAAO,aAAa,KAAG,EAAE,CAAC,KAAG,CAAC,EAAE;KAAK,IAAE,SAAS,EAAE,GAAE,GAAE,GAAE;GAAC,IAAI;AAAE,OAAG,CAAC,EAAE,QAAO;AAAE,OAAa,OAAO,KAAjB,UAAmB;IAAC,IAAI,IAAE,EAAE,aAAa;AAAC,MAAE,OAAK,IAAE,IAAG,MAAI,EAAE,KAAG,GAAE,IAAE;IAAG,IAAI,IAAE,EAAE,MAAM,IAAI;AAAC,QAAG,CAAC,KAAG,EAAE,SAAO,EAAE,QAAO,EAAE,EAAE,GAAG;UAAK;IAAC,IAAI,IAAE,EAAE;AAAK,MAAE,KAAG,GAAE,IAAE;;AAAE,UAAM,CAAC,KAAG,MAAI,IAAE,IAAG,KAAG,CAAC,KAAG;KAAG,IAAE,SAAS,GAAE,GAAE;AAAC,OAAG,EAAE,EAAE,CAAC,QAAO,EAAE,OAAO;GAAC,IAAI,IAAY,OAAO,KAAjB,WAAmB,IAAE,EAAE;AAAC,UAAO,EAAE,OAAK,GAAE,EAAE,OAAK,WAAU,IAAI,EAAE,EAAE;KAAE,IAAE;AAAE,IAAE,IAAE,GAAE,EAAE,IAAE,GAAE,EAAE,IAAE,SAAS,GAAE,GAAE;AAAC,UAAO,EAAE,GAAE;IAAC,QAAO,EAAE;IAAG,KAAI,EAAE;IAAG,GAAE,EAAE;IAAG,SAAQ,EAAE;IAAQ,CAAC;;EAAE,IAAI,IAAE,WAAU;GAAC,SAAS,EAAE,GAAE;AAAC,SAAK,KAAG,EAAE,EAAE,QAAO,MAAK,CAAC,EAAE,EAAC,KAAK,MAAM,EAAE,EAAC,KAAK,KAAG,KAAK,MAAI,EAAE,KAAG,EAAE,EAAC,KAAK,KAAG,CAAC;;GAAE,IAAI,IAAE,EAAE;AAAU,UAAO,EAAE,QAAM,SAAS,GAAE;AAAC,SAAK,KAAG,SAAS,GAAE;KAAC,IAAI,IAAE,EAAE,MAAK,IAAE,EAAE;AAAI,SAAU,MAAP,KAAS,wBAAO,IAAI,KAAK,IAAI;AAAC,SAAG,EAAE,EAAE,EAAE,CAAC,wBAAO,IAAI,MAAI;AAAC,SAAG,aAAa,KAAK,QAAO,IAAI,KAAK,EAAE;AAAC,SAAa,OAAO,KAAjB,YAAoB,CAAC,MAAM,KAAK,EAAE,EAAC;MAAC,IAAI,IAAE,EAAE,MAAM,EAAE;AAAC,UAAG,GAAE;OAAC,IAAI,IAAE,EAAE,KAAG,KAAG,GAAE,KAAG,EAAE,MAAI,KAAK,UAAU,GAAE,EAAE;AAAC,cAAO,IAAE,IAAI,KAAK,KAAK,IAAI,EAAE,IAAG,GAAE,EAAE,MAAI,GAAE,EAAE,MAAI,GAAE,EAAE,MAAI,GAAE,EAAE,MAAI,GAAE,EAAE,CAAC,GAAC,IAAI,KAAK,EAAE,IAAG,GAAE,EAAE,MAAI,GAAE,EAAE,MAAI,GAAE,EAAE,MAAI,GAAE,EAAE,MAAI,GAAE,EAAE;;;AAAE,YAAO,IAAI,KAAK,EAAE;MAAE,EAAE,EAAC,KAAK,MAAM;MAAE,EAAE,OAAK,WAAU;IAAC,IAAI,IAAE,KAAK;AAAG,SAAK,KAAG,EAAE,aAAa,EAAC,KAAK,KAAG,EAAE,UAAU,EAAC,KAAK,KAAG,EAAE,SAAS,EAAC,KAAK,KAAG,EAAE,QAAQ,EAAC,KAAK,KAAG,EAAE,UAAU,EAAC,KAAK,KAAG,EAAE,YAAY,EAAC,KAAK,KAAG,EAAE,YAAY,EAAC,KAAK,MAAI,EAAE,iBAAiB;MAAE,EAAE,SAAO,WAAU;AAAC,WAAO;MAAG,EAAE,UAAQ,WAAU;AAAC,WAAQ,KAAK,GAAG,UAAU,KAAG;MAAI,EAAE,SAAO,SAAS,GAAE,GAAE;IAAC,IAAI,IAAE,EAAE,EAAE;AAAC,WAAO,KAAK,QAAQ,EAAE,IAAE,KAAG,KAAG,KAAK,MAAM,EAAE;MAAE,EAAE,UAAQ,SAAS,GAAE,GAAE;AAAC,WAAO,EAAE,EAAE,GAAC,KAAK,QAAQ,EAAE;MAAE,EAAE,WAAS,SAAS,GAAE,GAAE;AAAC,WAAO,KAAK,MAAM,EAAE,GAAC,EAAE,EAAE;MAAE,EAAE,KAAG,SAAS,GAAE,GAAE,GAAE;AAAC,WAAO,EAAE,EAAE,EAAE,GAAC,KAAK,KAAG,KAAK,IAAI,GAAE,EAAE;MAAE,EAAE,OAAK,WAAU;AAAC,WAAO,KAAK,MAAM,KAAK,SAAS,GAAC,IAAI;MAAE,EAAE,UAAQ,WAAU;AAAC,WAAO,KAAK,GAAG,SAAS;MAAE,EAAE,UAAQ,SAAS,GAAE,GAAE;IAAC,IAAI,IAAE,MAAK,IAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAE,GAAE,IAAE,EAAE,EAAE,EAAE,EAAC,IAAE,SAAS,GAAE,GAAE;KAAC,IAAI,IAAE,EAAE,EAAE,EAAE,KAAG,KAAK,IAAI,EAAE,IAAG,GAAE,EAAE,GAAC,IAAI,KAAK,EAAE,IAAG,GAAE,EAAE,EAAC,EAAE;AAAC,YAAO,IAAE,IAAE,EAAE,MAAM,EAAE;OAAE,IAAE,SAAS,GAAE,GAAE;AAAC,YAAO,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,MAAM,EAAE,OAAO,IAAI,GAAE,IAAE;MAAC;MAAE;MAAE;MAAE;MAAE,GAAC;MAAC;MAAG;MAAG;MAAG;MAAI,EAAE,MAAM,EAAE,CAAC,EAAC,EAAE;OAAE,IAAE,KAAK,IAAG,IAAE,KAAK,IAAG,IAAE,KAAK,IAAG,IAAE,SAAO,KAAK,KAAG,QAAM;AAAI,YAAO,GAAP;KAAU,KAAK,EAAE,QAAO,IAAE,EAAE,GAAE,EAAE,GAAC,EAAE,IAAG,GAAG;KAAC,KAAK,EAAE,QAAO,IAAE,EAAE,GAAE,EAAE,GAAC,EAAE,GAAE,IAAE,EAAE;KAAC,KAAK;MAAE,IAAI,IAAE,KAAK,SAAS,CAAC,aAAW,GAAE,KAAG,IAAE,IAAE,IAAE,IAAE,KAAG;AAAE,aAAO,EAAE,IAAE,IAAE,IAAE,KAAG,IAAE,IAAG,EAAE;KAAC,KAAK;KAAE,KAAK,EAAE,QAAO,EAAE,IAAE,SAAQ,EAAE;KAAC,KAAK,EAAE,QAAO,EAAE,IAAE,WAAU,EAAE;KAAC,KAAK,EAAE,QAAO,EAAE,IAAE,WAAU,EAAE;KAAC,KAAK,EAAE,QAAO,EAAE,IAAE,gBAAe,EAAE;KAAC,QAAQ,QAAO,KAAK,OAAO;;MAAG,EAAE,QAAM,SAAS,GAAE;AAAC,WAAO,KAAK,QAAQ,GAAE,CAAC,EAAE;MAAE,EAAE,OAAK,SAAS,GAAE,GAAE;IAAC,IAAI,GAAE,IAAE,EAAE,EAAE,EAAE,EAAC,IAAE,SAAO,KAAK,KAAG,QAAM,KAAI,KAAG,IAAE,EAAE,EAAC,EAAE,KAAG,IAAE,QAAO,EAAE,KAAG,IAAE,QAAO,EAAE,KAAG,IAAE,SAAQ,EAAE,KAAG,IAAE,YAAW,EAAE,KAAG,IAAE,SAAQ,EAAE,KAAG,IAAE,WAAU,EAAE,KAAG,IAAE,WAAU,EAAE,KAAG,IAAE,gBAAe,GAAG,IAAG,IAAE,MAAI,IAAE,KAAK,MAAI,IAAE,KAAK,MAAI;AAAE,QAAG,MAAI,KAAG,MAAI,GAAE;KAAC,IAAI,IAAE,KAAK,OAAO,CAAC,IAAI,GAAE,EAAE;AAAC,OAAE,GAAG,GAAG,EAAE,EAAC,EAAE,MAAM,EAAC,KAAK,KAAG,EAAE,IAAI,GAAE,KAAK,IAAI,KAAK,IAAG,EAAE,aAAa,CAAC,CAAC,CAAC;UAAQ,MAAG,KAAK,GAAG,GAAG,EAAE;AAAC,WAAO,KAAK,MAAM,EAAC;MAAM,EAAE,MAAI,SAAS,GAAE,GAAE;AAAC,WAAO,KAAK,OAAO,CAAC,KAAK,GAAE,EAAE;MAAE,EAAE,MAAI,SAAS,GAAE;AAAC,WAAO,KAAK,EAAE,EAAE,EAAE,GAAG;MAAE,EAAE,MAAI,SAAS,GAAE,GAAE;IAAC,IAAI,GAAE,IAAE;AAAK,QAAE,OAAO,EAAE;IAAC,IAAI,IAAE,EAAE,EAAE,EAAE,EAAC,IAAE,SAAS,GAAE;KAAC,IAAI,IAAE,EAAE,EAAE;AAAC,YAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,GAAC,KAAK,MAAM,IAAE,EAAE,CAAC,EAAC,EAAE;;AAAE,QAAG,MAAI,EAAE,QAAO,KAAK,IAAI,GAAE,KAAK,KAAG,EAAE;AAAC,QAAG,MAAI,EAAE,QAAO,KAAK,IAAI,GAAE,KAAK,KAAG,EAAE;AAAC,QAAG,MAAI,EAAE,QAAO,EAAE,EAAE;AAAC,QAAG,MAAI,EAAE,QAAO,EAAE,EAAE;IAAC,IAAI,KAAG,IAAE,EAAE,EAAC,EAAE,KAAG,GAAE,EAAE,KAAG,GAAE,EAAE,KAAG,GAAE,GAAG,MAAI,GAAE,IAAE,KAAK,GAAG,SAAS,GAAC,IAAE;AAAE,WAAO,EAAE,EAAE,GAAE,KAAK;MAAE,EAAE,WAAS,SAAS,GAAE,GAAE;AAAC,WAAO,KAAK,IAAI,KAAG,GAAE,EAAE;MAAE,EAAE,SAAO,SAAS,GAAE;IAAC,IAAI,IAAE,MAAK,IAAE,KAAK,SAAS;AAAC,QAAG,CAAC,KAAK,SAAS,CAAC,QAAO,EAAE,eAAa;IAAE,IAAI,IAAE,KAAG,wBAAuB,IAAE,EAAE,EAAE,KAAK,EAAC,IAAE,KAAK,IAAG,IAAE,KAAK,IAAG,IAAE,KAAK,IAAG,IAAE,EAAE,UAAS,IAAE,EAAE,QAAO,IAAE,EAAE,UAAS,IAAE,SAAS,GAAE,GAAE,GAAE,GAAE;AAAC,YAAO,MAAI,EAAE,MAAI,EAAE,GAAE,EAAE,KAAG,EAAE,GAAG,MAAM,GAAE,EAAE;OAAE,IAAE,SAAS,GAAE;AAAC,YAAO,EAAE,EAAE,IAAE,MAAI,IAAG,GAAE,IAAI;OAAE,IAAE,KAAG,SAAS,GAAE,GAAE,GAAE;KAAC,IAAI,IAAE,IAAE,KAAG,OAAK;AAAK,YAAO,IAAE,EAAE,aAAa,GAAC;;AAAG,WAAO,EAAE,QAAQ,IAAG,SAAS,GAAE,GAAE;AAAC,YAAO,KAAG,SAAS,GAAE;AAAC,cAAO,GAAP;OAAU,KAAI,KAAK,QAAO,OAAO,EAAE,GAAG,CAAC,MAAM,GAAG;OAAC,KAAI,OAAO,QAAO,EAAE,EAAE,EAAE,IAAG,GAAE,IAAI;OAAC,KAAI,IAAI,QAAO,IAAE;OAAE,KAAI,KAAK,QAAO,EAAE,EAAE,IAAE,GAAE,GAAE,IAAI;OAAC,KAAI,MAAM,QAAO,EAAE,EAAE,aAAY,GAAE,GAAE,EAAE;OAAC,KAAI,OAAO,QAAO,EAAE,GAAE,EAAE;OAAC,KAAI,IAAI,QAAO,EAAE;OAAG,KAAI,KAAK,QAAO,EAAE,EAAE,EAAE,IAAG,GAAE,IAAI;OAAC,KAAI,IAAI,QAAO,OAAO,EAAE,GAAG;OAAC,KAAI,KAAK,QAAO,EAAE,EAAE,aAAY,EAAE,IAAG,GAAE,EAAE;OAAC,KAAI,MAAM,QAAO,EAAE,EAAE,eAAc,EAAE,IAAG,GAAE,EAAE;OAAC,KAAI,OAAO,QAAO,EAAE,EAAE;OAAI,KAAI,IAAI,QAAO,OAAO,EAAE;OAAC,KAAI,KAAK,QAAO,EAAE,EAAE,GAAE,GAAE,IAAI;OAAC,KAAI,IAAI,QAAO,EAAE,EAAE;OAAC,KAAI,KAAK,QAAO,EAAE,EAAE;OAAC,KAAI,IAAI,QAAO,EAAE,GAAE,GAAE,CAAC,EAAE;OAAC,KAAI,IAAI,QAAO,EAAE,GAAE,GAAE,CAAC,EAAE;OAAC,KAAI,IAAI,QAAO,OAAO,EAAE;OAAC,KAAI,KAAK,QAAO,EAAE,EAAE,GAAE,GAAE,IAAI;OAAC,KAAI,IAAI,QAAO,OAAO,EAAE,GAAG;OAAC,KAAI,KAAK,QAAO,EAAE,EAAE,EAAE,IAAG,GAAE,IAAI;OAAC,KAAI,MAAM,QAAO,EAAE,EAAE,EAAE,KAAI,GAAE,IAAI;OAAC,KAAI,IAAI,QAAO;;AAAE,aAAO;OAAM,EAAE,IAAE,EAAE,QAAQ,KAAI,GAAG;OAAG;MAAE,EAAE,YAAU,WAAU;AAAC,WAAO,KAAG,CAAC,KAAK,MAAM,KAAK,GAAG,mBAAmB,GAAC,GAAG;MAAE,EAAE,OAAK,SAAS,GAAE,GAAE,GAAE;IAAC,IAAI,GAAE,IAAE,MAAK,IAAE,EAAE,EAAE,EAAE,EAAC,IAAE,EAAE,EAAE,EAAC,KAAG,EAAE,WAAW,GAAC,KAAK,WAAW,IAAE,GAAE,IAAE,OAAK,GAAE,IAAE,WAAU;AAAC,YAAO,EAAE,EAAE,GAAE,EAAE;;AAAE,YAAO,GAAP;KAAU,KAAK;AAAE,UAAE,GAAG,GAAC;AAAG;KAAM,KAAK;AAAE,UAAE,GAAG;AAAC;KAAM,KAAK;AAAE,UAAE,GAAG,GAAC;AAAE;KAAM,KAAK;AAAE,WAAG,IAAE,KAAG;AAAO;KAAM,KAAK;AAAE,WAAG,IAAE,KAAG;AAAM;KAAM,KAAK;AAAE,UAAE,IAAE;AAAE;KAAM,KAAK;AAAE,UAAE,IAAE;AAAE;KAAM,KAAK;AAAE,UAAE,IAAE;AAAE;KAAM,QAAQ,KAAE;;AAAE,WAAO,IAAE,IAAE,EAAE,EAAE,EAAE;MAAE,EAAE,cAAY,WAAU;AAAC,WAAO,KAAK,MAAM,EAAE,CAAC;MAAI,EAAE,UAAQ,WAAU;AAAC,WAAO,EAAE,KAAK;MAAK,EAAE,SAAO,SAAS,GAAE,GAAE;AAAC,QAAG,CAAC,EAAE,QAAO,KAAK;IAAG,IAAI,IAAE,KAAK,OAAO,EAAC,IAAE,EAAE,GAAE,GAAE,CAAC,EAAE;AAAC,WAAO,MAAI,EAAE,KAAG,IAAG;MAAG,EAAE,QAAM,WAAU;AAAC,WAAO,EAAE,EAAE,KAAK,IAAG,KAAK;MAAE,EAAE,SAAO,WAAU;AAAC,WAAO,IAAI,KAAK,KAAK,SAAS,CAAC;MAAE,EAAE,SAAO,WAAU;AAAC,WAAO,KAAK,SAAS,GAAC,KAAK,aAAa,GAAC;MAAM,EAAE,cAAY,WAAU;AAAC,WAAO,KAAK,GAAG,aAAa;MAAE,EAAE,WAAS,WAAU;AAAC,WAAO,KAAK,GAAG,aAAa;MAAE;KAAI,EAAC,IAAE,EAAE;AAAU,SAAO,EAAE,YAAU,GAAE;GAAC,CAAC,OAAM,EAAE;GAAC,CAAC,MAAK,EAAE;GAAC,CAAC,MAAK,EAAE;GAAC,CAAC,MAAK,EAAE;GAAC,CAAC,MAAK,EAAE;GAAC,CAAC,MAAK,EAAE;GAAC,CAAC,MAAK,EAAE;GAAC,CAAC,MAAK,EAAE;GAAC,CAAC,SAAS,SAAS,GAAE;AAAC,KAAE,EAAE,MAAI,SAAS,GAAE;AAAC,WAAO,KAAK,GAAG,GAAE,EAAE,IAAG,EAAE,GAAG;;KAAI,EAAC,EAAE,SAAO,SAAS,GAAE,GAAE;AAAC,UAAO,AAAgB,EAAE,QAAX,EAAE,GAAE,GAAE,EAAE,EAAM,CAAC,IAAG;KAAG,EAAE,SAAO,GAAE,EAAE,UAAQ,GAAE,EAAE,OAAK,SAAS,GAAE;AAAC,UAAO,EAAE,MAAI,EAAE;KAAE,EAAE,KAAG,EAAE,IAAG,EAAE,KAAG,GAAE,EAAE,IAAE,EAAE,EAAC;IAAI;iFCuBj+N,IAAtB,cAAsC,EAAyC;CAC7E,OAAc,aAAa,EAAc,gBAAyC;CAElF,YAAY,GAAe;AAWzB,EAVA,MAAM,EAAE,EACR,KAAK,UAAU,EAAE,SACjB,KAAK,OAAO,EAAE,MACd,KAAK,KAAK,EAAE,IACZ,KAAK,gBAAgB,EAAE,eACvB,KAAK,YAAY,EAAE,WACnB,KAAK,UAAU,EAAE,SACjB,KAAK,WAAW,EAAE,UAClB,KAAK,WAAW,EAAE,UAClB,KAAK,SAAS,EAAE,QAChB,KAAK,QAAQ,EAAE;;CAGjB;CACA;CACA,IAAW,QAAQ;AACjB,UAAA,GAAA,EAAA,SAAa,KAAK,KAAK;;CAEzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;2CC/CW,IAAb,cAAwB,EAA+B;CACrD;CACA;CACA;CACA;CACA,YAAY,GAAU;AAKpB,EAJA,MAAM,EAAE,EACR,KAAK,OAAO,EAAE,MACd,KAAK,KAAK,EAAE,IACZ,KAAK,WAAW,EAAE,UAClB,KAAK,SAAS,EAAE;;;;;ACbpB,SAAS,EAAY,GAAO;AACxB,QAAO,KAAS,QAAQ,OAAO,KAAU,cAAc,EAAS,EAAM,OAAO;;;;ACDjF,SAAS,EAAY,GAAO;AACxB,QAAyB,OAAO,KAAU,cAAnC,KAA+C,EAAO,EAAM,KAAK;;;;ACH5E,SAAS,EAAS,GAAO;AACrB,QAAO,OAAO,KAAU,YAAY,aAAiB;;;;ACDzD,SAAS,EAAY,GAAO;CACxB,IAAM,IAAc,GAAO;AAE3B,QAAO,OADW,OAAO,KAAgB,aAAa,EAAY,YAAY,OAAO;;;;ACAzF,SAAS,EAAa,GAAG;AACrB,QAAO,EAAe,EAAE;;;;ACE5B,SAAS,EAAQ,GAAO;AACpB,KAAI,KAAS,KACT,QAAO;AAEX,KAAI,EAAY,EAAM,CAQlB,QAPI,OAAO,EAAM,UAAW,cACxB,OAAO,KAAU,aAChB,OAAO,SAAW,OAAe,CAAC,OAAO,SAAS,EAAM,KACzD,CAAC,EAAa,EAAM,IACpB,CAAC,EAAY,EAAM,GACZ,KAEJ,EAAM,WAAW;AAE5B,KAAI,OAAO,KAAU,UAAU;AAC3B,MAAI,aAAiB,OAAO,aAAiB,IACzC,QAAO,EAAM,SAAS;EAE1B,IAAM,IAAO,OAAO,KAAK,EAAM;AAI/B,SAHI,EAAY,EAAM,GACX,EAAK,QAAO,MAAK,MAAM,cAAc,CAAC,WAAW,IAErD,EAAK,WAAW;;AAE3B,QAAO;;;;kDCHE,IAAb,MAAa,UAAiB,EAA2C;CACvE,OAAc,mBAAmB,EAC/B,EAAc,gBAA0E,EACxF,gCACD;CAED,OAAc,OAAO,EACnB,EAAc,gBAA8D,EAC5E,oBACD;CACD,OAAc,iBAAiB,EAC7B,EAAc,gBAAwD,EACtE,8BACD;CAED,OAAc,GAAG,GAAmC;AAClD,SAAO,aAAiB;;CAE1B,OAAc,OAAO,GAA0B;AAC7C,SAAO,IAAI,KAAK,EAAE;;CAEpB,YAAsB,GAAgB;AAMpC,EALA,MAAM,EAAE,EACR,KAAK,WAAW,EAAE,UAClB,KAAK,SAAS,EAAE,QAChB,KAAK,WAAW,EAAE,UAClB,KAAK,OAAO,EAAE,MACd,KAAK,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,KAAiB,MAC1D,EAAS,EAAE,GAAG;GAAE,eAAe;GAAG,YAAY;GAAO,GAAG,EACzD;;CAEH;CACA;CACA;CACA;CACA;CACA,MAAa,SAA0B;EACrC,IAAI,IAAa,KAAK;AACtB,OAAK,IAAM,KAAU,KAAK,cAAc;GAEtC,IAAM,IAAW,EAAS,iBAAiB,IAAI,CAAC,KAAK,UAAU,EAAO,cAAc,CAAC;AACrF,OAAI,CAAC,GAAU;AACb,YAAQ,KACN,mDAAmD,KAAK,SAAS,IAAI,EAAO,cAAc,GAC3F;AACD;;GAIF,IAAM,IAAS,MAAM,EAAS,GAAY,KAAK;AAC/C,WAAa,EAAO,IAChB,IAAO,cAAc,CAAC,EAAO,IACjC;;AAGF,SADK,IAAI,SAAS,EAAW,GACtB,IAD+B,GAAG,KAAK,aAAa,CAAC,GAAG;;CAGjE,eAAsB,kBAAgB,IAAI,KAAa,CAAC;CACxD,cAAqB;EACnB,IAAM,IAAM,IAAI,IAAI,EAAS,KAAK,IAAI,CAAC,KAAK,UAAU,KAAK,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC,EAC1E;AAOJ,MANA,AAIE,IAJE,EAAQ,KAAK,aAAa,GACrB,EAAS,eAAe,IAAI,CAAC,KAAK,UAAU,KAAK,KAAK,CAAC,GAEjD,MAAM,KAAK,EAAI,WAAW,KAAK,aAAa,CAAC,QAAQ,CAAC,CACvD,IAEV,CAAC,EACH,OAAU,MACR,iDAAiD,KAAK,SAAS,IAAI,KAAK,KAAK,GAC9E;AACH,SAAO;;CAET,kBAAyB;EACvB,IAAM,IAAM,IAAI,IAAI,EAAS,KAAK,IAAI,CAAC,KAAK,UAAU,KAAK,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC9E,OAAK,aAAa,IAAI,KAAK,aAAa,CAAC;EACzC,IAAM,IAAgB,EAAQ,EAAI,WAAW,KAAK,aAAa,CAAC;AAEhE,SADI,KAAe,KAAK,aAAa,OAAO,EACrC;;8CC9FE,IAAb,cAA2B,EAAS;CAClC,OAAuB,GAAG,GAAgC;AACxD,SAAO,aAAiB;;CAE1B,OAAuB,OAAO,GAA2B,GAA6B;AACpF,SAAO,IAAI,KAAK,GAAG,EAAO;;CAE5B,YAAsB,GAA2B,GAAsB;AACrE,EAAI,mBAAmB,IACrB,MAAM;GACJ,UAAU,EAAE;GACZ,QAAQ;IAAE,GAAG,EAAE;IAAQ;IAAQ;GAC/B,UAAU,EAAE;GACZ,MAAM,EAAE;GACR,cAAc,EAAE;GACjB,CAAC,GACC,MAAM,EAAE;;CAEf,IAAW,SAAS;AAClB,SAAO,KAAK,OAAQ;;CAEtB,IAAW,OAAO,GAAG;AACd,QACL,KAAK,WAAW,EAAE,EAClB,KAAK,OAAO,WAAW,EAAE,EACzB,KAAK,OAAO,OAAO,QAAQ,EAAE,OAC7B,KAAK,OAAO,OAAO,SAAS,EAAE;;6CCsCZ,IAAtB,cAAmC,EAAmC;CACpE,OAAc,iBAAiB,EAAc,gBAG1C;CACH,OAAc,OAAO,GAAc;EACjC,IAAM,IAAa,KAAK,eAAe,IAAI,EAAI,YAAY;AAC3D,MAAI,CAAC,EACH,OAAU,MACR,6CAA6C,EAAY,aAAa,IAAI,SAAS,EAAI,YAAY,CAAC,GACrG;AACH,SAAO,EAAW,EAAI;;CAExB,OAAc,aAAa,EAAc,gBAGtC;CAEH,OAAc,YAAY,EACxB,EAAc,gBAAgD,EAC9D,qBACD;CAMD,OAAc,GAAG,GAA+B;AAC9C,SAAO,aAAiB;;CAE1B;CACA,IAAW,SAAS;AAClB,SAAA,EAAmB,OAAO,KAAK,MAAM;;CAEvC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAW,cAAc;AACvB,UAAA,GAAA,EAAA,SAAa,KAAK,WAAW;;CAE/B;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAAW,UAAU;AACnB,SAAO,IAAI,EAAG,KAAK,OAAO;;CAE5B,YAAY,GAAY;AAsBtB,EArBA,MAAM,EAAE,EACR,KAAK,WAAW,EAAE,UAClB,KAAK,SAAS,EAAE,QAEhB,KAAK,SAAS,EAAE,QAChB,KAAK,aAAa,EAAE,YACpB,KAAK,QAAQ,EAAE,OACf,KAAK,QAAQ,EAAE,OACf,KAAK,KAAK,EAAE,IACZ,KAAK,aAAa,EAAE,YACpB,KAAK,SAAS,EAAE,QAChB,KAAK,aAAa,EAAE,YACpB,KAAK,aAAa,EAAE,YACpB,KAAK,gBAAgB,EAAE,eACvB,KAAK,UAAU,EAAE,SACjB,KAAK,aAAa,EAAE,YACpB,KAAK,cAAc,EAAY,aAAa,IAAI,OAAO,EAAE,YAAY,EACrE,KAAK,SAAS,EAAE,QAChB,KAAK,WAAW,EAAE,UAClB,KAAK,cAAc,EAAE,aACrB,KAAK,kBAAkB,EAAE,iBACzB,KAAK,eAAe,EAAE;;CAExB;CACA;CACA,IAAW,QAAQ;EACjB,IAAM,KAAS,MAAgB,gCAAgC,KAAK,EAAI;AACxE,SACE,KAAK,cACL,EAAM,KAAK,MAAM,IACjB,KAAK,OAAO,MAAK,MAAU,EAAM,GAAG,EAAO,MAAM,QAAQ,EAAO,cAAc,CAAC;;oDCrI/D,IAAtB,MAAkC;CAChC,OAAc,UAAU,EACtB,EAAc,gBAA8C,EAC5D,0BACD;CACD,OAAc,eAAe,EAC3B,EAAc,gBAAiE,EAC/E,+BACD;CAED,YACE,GACA,GACA,GACA;AADO,EAFA,KAAA,UAAA,GACA,KAAA,KAAA,GACA,KAAA,KAAA;;mDCxCW,IAAtB,MAAwD,8CCWlC,IAAtB,MAA2B;CACzB,OAAc,WAAW,kBAAgB,IAAI,KAAmB,CAAC;CACjE,OAAc,iBAAiB,kBAAgB,IAAI,KAAwB,CAAC;CAC5E,OAAc,YAAY,kBAAgB,IAAI,KAAgC,CAAC;CAE/E,YAAY,GAAY;AAKtB,EAJI,EAAE,WAAQ,KAAK,SAAS,EAAM,OAAO,EAAE,OAAO,GAClD,KAAK,OAAO,EAAE,MACd,KAAK,KAAK,EAAE,IACZ,KAAK,WAAW,EAAE,UAClB,KAAK,SAAS,EAAE;;CAElB;CACA;CACA;CACA;CACA"}
@@ -43,5 +43,5 @@ export declare abstract class Comment extends Struct<RawComment> implements RawC
43
43
  abstract like(signal?: AbortSignal): PromiseLike<boolean>;
44
44
  abstract report(signal?: AbortSignal): PromiseLike<any>;
45
45
  abstract sendComment(text: string, signal?: AbortSignal): PromiseLike<any>;
46
- abstract fetchChildren: StreamQuery<[], Comment>;
46
+ abstract fetchChildren: StreamQuery<Comment>;
47
47
  }
@@ -8,10 +8,14 @@ export type ContentType_ = SourcedKeyType<typeof ContentPage.contentPages>;
8
8
  export type ContentType = Exclude<ContentType_, string>;
9
9
  export type ViewComponent = Component<{
10
10
  page: ContentPage;
11
- isFullScreen: boolean;
11
+ union?: item.Item;
12
12
  }>;
13
13
  export type LayoutComponent = Component<{
14
14
  page: ContentPage;
15
+ }, any, any, any, any, any, {
16
+ view(args: {
17
+ item?: item.Item;
18
+ }): any;
15
19
  }>;
16
20
  export declare abstract class ContentPage {
17
21
  preload: item.Item | undefined;
@@ -24,8 +28,8 @@ export declare abstract class ContentPage {
24
28
  abstract contentType: ContentType;
25
29
  abstract fetchShortId: (signal?: AbortSignal) => Promise<string>;
26
30
  abstract fetchDetail: (signal?: AbortSignal) => Promise<item.Item>;
27
- abstract fetchRecommends: StreamQuery<[], item.Item>;
28
- abstract fetchComments: StreamQuery<[], comment.Comment>;
29
- abstract fetchEps: StreamQuery<[], ep.Ep>;
31
+ abstract fetchRecommends: StreamQuery<item.Item>;
32
+ abstract fetchComments: StreamQuery<comment.Comment>;
33
+ abstract fetchEps: StreamQuery<ep.Ep>;
30
34
  abstract ViewComponent: ViewComponent;
31
35
  }
@@ -4,9 +4,16 @@ export interface Metadatable {
4
4
  }
5
5
  export type Metadata = Record<string | number, any>;
6
6
  export type PageKey = string | number;
7
- export interface StreamQuery<TParameters extends any[], TItem> {
8
- (...args: [...TParameters, page: PageKey, signal?: AbortSignal]): Promise<TItem[] & {
7
+ export declare class StreamQuery<TResult, TData extends object = {}> {
8
+ query: (data: TData, page: PageKey, signal?: AbortSignal) => Promise<{
9
+ data: TResult[];
10
+ lastPage?: PageKey;
9
11
  nextPage?: PageKey;
10
12
  }>;
11
- initialPageParam: PageKey;
13
+ initPage: PageKey;
14
+ constructor(query: (data: TData, page: PageKey, signal?: AbortSignal) => Promise<{
15
+ data: TResult[];
16
+ lastPage?: PageKey;
17
+ nextPage?: PageKey;
18
+ }>, initPage: PageKey);
12
19
  }
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.1",
3
+ "version": "1.3.4",
4
4
  "description": "空阙虱楼",
5
5
  "homepage": "https://github.com/delta-comic/delta-comic",
6
6
  "license": "AGPL-3.0-only",
@@ -39,8 +39,8 @@
39
39
  },
40
40
  "peerDependencies": {
41
41
  "vue": "^3.5",
42
- "@delta-comic/request": "1.3.1",
43
- "@delta-comic/utils": "1.3.1"
42
+ "@delta-comic/request": "1.3.4",
43
+ "@delta-comic/utils": "1.3.4"
44
44
  },
45
45
  "release": {
46
46
  "tagFormat": "model-${version}"