@delta-comic/model 1.3.2 → 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/LICENSE +660 -660
- package/README.md +41 -41
- package/dist/index.js +40 -36
- package/dist/index.js.map +1 -1
- package/dist/lib/model/comment.d.ts +1 -1
- package/dist/lib/model/content.d.ts +7 -3
- package/dist/lib/struct/meta.d.ts +10 -3
- package/dist/pack.tgz +0 -0
- package/package.json +3 -3
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
|
-
[](https://raw.githubusercontent.com/delta-comic/delta-comic-core/main/LICENSE)
|
|
15
|
-
[](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
|
-
[](https://github.com/delta-comic/delta-comic)
|
|
33
|
-
|
|
34
|
-
## 辅助的插件
|
|
35
|
-
|
|
36
|
-
### Layout
|
|
37
|
-
|
|
38
|
-
[](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
|
+
[](https://raw.githubusercontent.com/delta-comic/delta-comic-core/main/LICENSE)
|
|
15
|
+
[](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
|
+
[](https://github.com/delta-comic/delta-comic)
|
|
33
|
+
|
|
34
|
+
## 辅助的插件
|
|
35
|
+
|
|
36
|
+
### Layout
|
|
37
|
+
|
|
38
|
+
[](https://github.com/delta-comic/delta-comic-plugin-bika)
|
|
39
|
+
|
|
40
|
+
## Star History
|
|
41
|
+
|
|
42
42
|
[](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 =
|
|
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
|
-
})),
|
|
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,
|
|
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
|
-
},
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
468
|
+
function j(e) {
|
|
465
469
|
if (e == null) return !0;
|
|
466
|
-
if (
|
|
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
|
|
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
|
|
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) =>
|
|
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 =
|
|
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 =
|
|
523
|
+
let t = j(e.difference(this.omittedForks));
|
|
520
524
|
return t && this.omittedForks.clear(), t;
|
|
521
525
|
}
|
|
522
|
-
},
|
|
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
|
-
},
|
|
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:"${
|
|
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
|
|
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,
|
|
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
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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 =
|
|
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
|
-
},
|
|
614
|
-
comment: () =>
|
|
615
|
-
content: () =>
|
|
616
|
-
download: () =>
|
|
617
|
-
ep: () =>
|
|
618
|
-
image: () =>
|
|
619
|
-
item: () =>
|
|
620
|
-
resource: () =>
|
|
621
|
-
user: () =>
|
|
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,
|
|
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; union?: item.Item }>\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":"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"}
|
|
@@ -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<
|
|
46
|
+
abstract fetchChildren: StreamQuery<Comment>;
|
|
47
47
|
}
|
|
@@ -12,6 +12,10 @@ export type ViewComponent = Component<{
|
|
|
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<
|
|
28
|
-
abstract fetchComments: StreamQuery<
|
|
29
|
-
abstract fetchEps: StreamQuery<
|
|
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
|
|
8
|
-
(
|
|
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
|
-
|
|
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.
|
|
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/
|
|
43
|
-
"@delta-comic/
|
|
42
|
+
"@delta-comic/request": "1.3.4",
|
|
43
|
+
"@delta-comic/utils": "1.3.4"
|
|
44
44
|
},
|
|
45
45
|
"release": {
|
|
46
46
|
"tagFormat": "model-${version}"
|