@dan-uni/dan-any 2.0.2 → 2.1.1
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 +18 -3
- package/dist/adapters.d.mts +2 -2
- package/dist/adapters.mjs +1 -1
- package/dist/core/db/schema.d.mts +1 -1
- package/dist/core/db/utils.d.mts +1 -1
- package/dist/core-DNBceJYV.mjs +2 -0
- package/dist/core-DNBceJYV.mjs.map +1 -0
- package/dist/core.d.mts +1 -1
- package/dist/core.mjs +1 -1
- package/dist/{dm-extra-DrAQCrFv.d.mts → dm-extra-LzSQ7NZv.d.mts} +26 -1
- package/dist/dm-extra-LzSQ7NZv.d.mts.map +1 -0
- package/dist/{index-5rcmHUF1.d.mts → index-D7OoFOLg.d.mts} +113 -26
- package/dist/index-D7OoFOLg.d.mts.map +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/isSame-CUOSL7-d.mjs +2 -0
- package/dist/{isSame-DciV3b4U.mjs.map → isSame-CUOSL7-d.mjs.map} +1 -1
- package/dist/plugins.d.mts +6 -2
- package/dist/plugins.d.mts.map +1 -1
- package/dist/plugins.mjs +1 -1
- package/dist/plugins.mjs.map +1 -1
- package/dist/{schema-BuenbDx9.d.mts → schema-CS5AwMob.d.mts} +2 -2
- package/dist/{schema-BuenbDx9.d.mts.map → schema-CS5AwMob.d.mts.map} +1 -1
- package/dist/utils.d.mts +17 -4
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +1 -1
- package/dist/utils.mjs.map +1 -1
- package/package.json +9 -9
- package/dist/core-BsUKRX1y.mjs +0 -2
- package/dist/core-BsUKRX1y.mjs.map +0 -1
- package/dist/dm-BPBsbygx.mjs +0 -2
- package/dist/dm-BPBsbygx.mjs.map +0 -1
- package/dist/dm-extra-DrAQCrFv.d.mts.map +0 -1
- package/dist/index-5rcmHUF1.d.mts.map +0 -1
- package/dist/isSame-DciV3b4U.mjs +0 -2
|
@@ -100,6 +100,7 @@ interface Extra {
|
|
|
100
100
|
bili?: ExtraBili;
|
|
101
101
|
danuni?: ExtraDanUni;
|
|
102
102
|
ddplay?: ExtraDdPlay;
|
|
103
|
+
tencent?: ExtraTencent;
|
|
103
104
|
}
|
|
104
105
|
interface ExtraArtplayer {
|
|
105
106
|
style?: object;
|
|
@@ -130,6 +131,30 @@ interface ExtraDdPlay {
|
|
|
130
131
|
cid: number;
|
|
131
132
|
uid: string;
|
|
132
133
|
}
|
|
134
|
+
interface ExtraTencent {
|
|
135
|
+
id: string;
|
|
136
|
+
is_op: number;
|
|
137
|
+
head_url: string;
|
|
138
|
+
up_count: string;
|
|
139
|
+
bubble_head: string;
|
|
140
|
+
bubble_level: string;
|
|
141
|
+
bubble_id: string;
|
|
142
|
+
rick_type: number;
|
|
143
|
+
content_style: string;
|
|
144
|
+
user_vip_degree: number;
|
|
145
|
+
hot_type: number;
|
|
146
|
+
gift_info: null;
|
|
147
|
+
share_item: null;
|
|
148
|
+
vuid: string;
|
|
149
|
+
nick: string;
|
|
150
|
+
data_key: string;
|
|
151
|
+
content_score: number;
|
|
152
|
+
show_weight: number;
|
|
153
|
+
track_type: number;
|
|
154
|
+
show_like_type: number;
|
|
155
|
+
report_like_score: number;
|
|
156
|
+
relate_sku_info: unknown[];
|
|
157
|
+
}
|
|
133
158
|
//#endregion
|
|
134
159
|
export { ExtraBili as n, Extra as t };
|
|
135
|
-
//# sourceMappingURL=dm-extra-
|
|
160
|
+
//# sourceMappingURL=dm-extra-LzSQ7NZv.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dm-extra-LzSQ7NZv.d.mts","names":[],"sources":["../src/utils/proto/gen/bilibili/community/service/dm/v1/dm_pb.ts","../src/core/dm-extra.ts"],"mappings":";;;;;;;;KAiXY,SAAA,GAAY,OAAA;;;;;;EAMtB,EAAA;;;;;;EAOA,GAAA;;;;;;EAOA,GAAA;;;;;;EAOA,OAAA;;;;;;EAOA,OAAA;;;;;;EAOA,QAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,KAAA;;;;;;EAOA,IAAA;;;;;;EAOA,UAAA;;;;;;EAOA,SAAA;;;;;;EAOA,IAAA;AAAA;;;KChdG,aAAA,GAAgB,SAAA;AAAA,UAEJ,KAAA;EACf,SAAA,GAAY,cAAA;EACZ,IAAA,GAAO,SAAA;EACP,MAAA,GAAS,WAAA;EACT,MAAA,GAAS,WAAA;EACT,OAAA,GAAU,YAAA;AAAA;AAAA,UAEK,cAAA;EACf,KAAA;EACA,MAAA;AAAA;AAAA,UAEe,SAAA;EACf,IAAA;EACA,IAAA;EACA,IAAA;EACA,IAAA;EACA,GAAA;EACA,GAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA,GAAU,aAAA;AAAA;AAAA,UAEK,WAAA;EACf,KAAA,GAAQ,gBAAA;AAAA;AAAA,UAEO,gBAAA;EACf,QAAA;EACA,KAAA;EACA,OAAA;EACA,WAAA;EACA,aAAA;AAAA;AAAA,UAEe,WAAA;EACf,GAAA;EACA,GAAA;AAAA;AAAA,UAGe,YAAA;EACf,EAAA;EACA,KAAA;EACA,QAAA;EACA,QAAA;EACA,WAAA;EACA,YAAA;EACA,SAAA;EACA,SAAA;EACA,aAAA;EACA,eAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,IAAA;EACA,IAAA;EACA,QAAA;EACA,aAAA;EACA,WAAA;EACA,UAAA;EACA,cAAA;EACA,iBAAA;EACA,eAAA;AAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { n as ExtraBili, t as Extra } from "./dm-extra-
|
|
2
|
-
import { b as Simplify, n as DanmakusInsert,
|
|
1
|
+
import { n as ExtraBili, t as Extra } from "./dm-extra-LzSQ7NZv.mjs";
|
|
2
|
+
import { b as Simplify, n as DanmakusInsert, u as chunksZod } from "./schema-CS5AwMob.mjs";
|
|
3
3
|
import * as _$_electric_sql_pglite0 from "@electric-sql/pglite";
|
|
4
4
|
import * as _$drizzle_orm_pglite0 from "drizzle-orm/pglite";
|
|
5
5
|
import * as _$drizzle_orm0 from "drizzle-orm";
|
|
@@ -141,15 +141,7 @@ type LoadConfigAsync = Asyncify<typeof loadConfigSync>;
|
|
|
141
141
|
type Asyncify<Function_ extends (...arguments_: any[]) => any> = SetReturnType<Function_, Promise<Awaited<ReturnType<Function_>>>>;
|
|
142
142
|
//#endregion
|
|
143
143
|
//#region src/core/id.d.ts
|
|
144
|
-
|
|
145
|
-
content: string;
|
|
146
|
-
mode: z.infer<typeof enumModeCodec.out>;
|
|
147
|
-
pool: z.infer<typeof enumPoolCodec.out>;
|
|
148
|
-
platform?: string | null;
|
|
149
|
-
extra: Extra | null;
|
|
150
|
-
senderID: string;
|
|
151
|
-
ctime: Date;
|
|
152
|
-
}
|
|
144
|
+
type DMIDGeneratorDanmaku = Omit<UDanmaku, "DMID">;
|
|
153
145
|
type DMIDGenerator = (dan: DMIDGeneratorDanmaku, slice?: number) => string;
|
|
154
146
|
declare const createDMID: DMIDGenerator;
|
|
155
147
|
//#endregion
|
|
@@ -4331,7 +4323,7 @@ declare class InitedUniDB extends UniDB {
|
|
|
4331
4323
|
}[]>;
|
|
4332
4324
|
listChunks(): Promise<UniChunk[]>;
|
|
4333
4325
|
makeChunk(data: z.infer<typeof chunksZod>): Promise<UniChunk>;
|
|
4334
|
-
upsertDanmakus(data: DanmakusInsert[]): Promise<void>;
|
|
4326
|
+
upsertDanmakus(data: DanmakusInsert[] | Map<string, DanmakusInsert>, dedupeDMID?: boolean): Promise<void>;
|
|
4335
4327
|
/**
|
|
4336
4328
|
* 清理临时chunks
|
|
4337
4329
|
*/
|
|
@@ -5758,7 +5750,7 @@ declare class UniChunk {
|
|
|
5758
5750
|
identity: undefined;
|
|
5759
5751
|
generated: undefined;
|
|
5760
5752
|
}>;
|
|
5761
|
-
}, "single", Record<"chunks", "not-null">, false, "
|
|
5753
|
+
}, "single", Record<"chunks", "not-null">, false, "where", {
|
|
5762
5754
|
id: number;
|
|
5763
5755
|
fromConverted: boolean;
|
|
5764
5756
|
tmp: boolean;
|
|
@@ -5808,7 +5800,7 @@ declare class UniChunk {
|
|
|
5808
5800
|
identity: undefined;
|
|
5809
5801
|
generated: undefined;
|
|
5810
5802
|
}>;
|
|
5811
|
-
}>, "
|
|
5803
|
+
}>, "where">;
|
|
5812
5804
|
$chunk(): Promise<{
|
|
5813
5805
|
id: number;
|
|
5814
5806
|
fromConverted: boolean;
|
|
@@ -5830,12 +5822,18 @@ declare class UniChunk {
|
|
|
5830
5822
|
senderID: string;
|
|
5831
5823
|
weight: number;
|
|
5832
5824
|
}[]>;
|
|
5825
|
+
get $count(): _$drizzle_orm_pg_core0.PgAsyncCountBuilder;
|
|
5826
|
+
get isDeleted(): Promise<boolean>;
|
|
5827
|
+
upsertDanmakus(data: Map<string, DanmakusInsert & {
|
|
5828
|
+
platform: string | null;
|
|
5829
|
+
}>, autoSetDMID?: false, dedupeDMID?: false): Promise<void>;
|
|
5833
5830
|
upsertDanmakus(data: Simplify<DanmakusInsert & {
|
|
5834
5831
|
DMID: string;
|
|
5835
|
-
|
|
5832
|
+
platform: string | null;
|
|
5833
|
+
}>[], autoSetDMID?: false, dedupeDMID?: boolean): Promise<void>;
|
|
5836
5834
|
upsertDanmakus(data: Simplify<DanmakusInsert & {
|
|
5837
5835
|
DMID?: undefined;
|
|
5838
|
-
}>[], autoSetDMID: true): Promise<void>;
|
|
5836
|
+
}>[], autoSetDMID: true, dedupeDMID?: true): Promise<void>;
|
|
5839
5837
|
import(adapterStore: AdapterStore): Promise<UniChunk>;
|
|
5840
5838
|
export<T extends Transformer | Asyncify<Transformer>>(transformer: T): Promise<ReturnType<T>>;
|
|
5841
5839
|
plugin<T extends Plugin>(plugin: T): ReturnType<T>;
|
|
@@ -5869,7 +5867,9 @@ declare const enumAttrsCodec: z.ZodCodec<z.ZodArray<z.ZodEnum<typeof DMAttr>>, z
|
|
|
5869
5867
|
}>>>;
|
|
5870
5868
|
declare const DanuniJsonAdapter: (json: Partial<UniDMObj & {
|
|
5871
5869
|
extraStr?: string;
|
|
5872
|
-
}>[]
|
|
5870
|
+
}>[], options?: {
|
|
5871
|
+
isV1?: boolean;
|
|
5872
|
+
}) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
5873
5873
|
interface DanuniJsonTransformerOptions {
|
|
5874
5874
|
/**
|
|
5875
5875
|
* 是否启用minify模式,启用后会将输出中与默认值相同的字段转为undefined(DMID除外),以减小输出体积
|
|
@@ -5880,6 +5880,7 @@ declare function DanuniJsonTransformerConfigurator(options: DanuniJsonTransforme
|
|
|
5880
5880
|
minify: true;
|
|
5881
5881
|
}): Transformer<Promise<Partial<UniDMObj>[]>>;
|
|
5882
5882
|
declare function DanuniJsonTransformerConfigurator(options?: DanuniJsonTransformerOptions): Transformer<Promise<UniDMObj[]>>;
|
|
5883
|
+
declare const DanuniJsonMetadata: Metadata;
|
|
5883
5884
|
//#endregion
|
|
5884
5885
|
//#region src/adapters/danuni/pb.d.ts
|
|
5885
5886
|
declare const DanuniPbAdapter: (bin: Uint8Array | ArrayBuffer) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
@@ -5899,9 +5900,11 @@ declare const DanuniPbTransformer: (udanmakus: Promise<{
|
|
|
5899
5900
|
senderID: string;
|
|
5900
5901
|
weight: number;
|
|
5901
5902
|
}[]>) => Promise<Uint8Array>;
|
|
5903
|
+
declare const DanuniPbMetadata: Metadata;
|
|
5902
5904
|
//#endregion
|
|
5903
5905
|
//#region src/adapters/bili/command-grpc.d.ts
|
|
5904
5906
|
declare const BiliCommandGrpcAdapter: (bin: Uint8Array | ArrayBuffer) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
5907
|
+
declare const BiliCommandGrpcMetadata: Metadata;
|
|
5905
5908
|
//#endregion
|
|
5906
5909
|
//#region src/adapters/bili/grpc.d.ts
|
|
5907
5910
|
interface DMBili {
|
|
@@ -5970,11 +5973,12 @@ interface BiliCommonBuilderOptions {
|
|
|
5970
5973
|
avoidSenderIDWithAt?: boolean;
|
|
5971
5974
|
}
|
|
5972
5975
|
declare const BiliCommonModeRec: (mode: z.infer<typeof enumModeCodec.out>, extra?: ExtraBili) => 1 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
5973
|
-
declare function BiliCommonBuilder(DMIDGenerator: DMIDGenerator, that:
|
|
5976
|
+
declare function BiliCommonBuilder(DMIDGenerator: DMIDGenerator, that: UDanmaku, options?: BiliCommonBuilderOptions): {
|
|
5974
5977
|
"#text": string;
|
|
5975
5978
|
"@_p": string;
|
|
5976
5979
|
} | null;
|
|
5977
5980
|
declare const BiliGrpcAdapter: (bin: Uint8Array | ArrayBuffer) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
5981
|
+
declare const BiliGrpcMetadata: Metadata;
|
|
5978
5982
|
//#endregion
|
|
5979
5983
|
//#region src/adapters/bili/up.d.ts
|
|
5980
5984
|
interface DM_JSON_BiliUp {
|
|
@@ -6024,6 +6028,7 @@ interface DM_JSON_BiliUp {
|
|
|
6024
6028
|
};
|
|
6025
6029
|
}
|
|
6026
6030
|
declare const BiliUpAdapter: (json: DM_JSON_BiliUp) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
6031
|
+
declare const BiliUpMetadata: Metadata;
|
|
6027
6032
|
//#endregion
|
|
6028
6033
|
//#region src/adapters/bili/xml.d.ts
|
|
6029
6034
|
declare const BiliXmlAdapter: (xml: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
@@ -6066,6 +6071,7 @@ declare const BiliXmlTransformerConfigurator: (options?: BiliXmlTransformerOptio
|
|
|
6066
6071
|
}>>>;
|
|
6067
6072
|
DMIDGenerator: DMIDGenerator;
|
|
6068
6073
|
}) => Promise<string>;
|
|
6074
|
+
declare const BiliXmlMetadata: Metadata;
|
|
6069
6075
|
//#endregion
|
|
6070
6076
|
//#region src/adapters/artplayer.d.ts
|
|
6071
6077
|
interface DM_JSON_Artplayer {
|
|
@@ -6080,7 +6086,7 @@ interface DM_JSON_Artplayer {
|
|
|
6080
6086
|
}
|
|
6081
6087
|
declare const ArtplayerAdapter: (json: DM_JSON_Artplayer & {
|
|
6082
6088
|
danuni?: DanUniConvertTip;
|
|
6083
|
-
}, playerID
|
|
6089
|
+
}, playerID?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
6084
6090
|
declare const ArtplayerTransformer: (udanmakus: Promise<{
|
|
6085
6091
|
DMID: string;
|
|
6086
6092
|
SOID: string;
|
|
@@ -6099,6 +6105,7 @@ declare const ArtplayerTransformer: (udanmakus: Promise<{
|
|
|
6099
6105
|
}[]>) => Promise<DM_JSON_Artplayer & {
|
|
6100
6106
|
danuni?: DanUniConvertTip;
|
|
6101
6107
|
}>;
|
|
6108
|
+
declare const ArtplayerMetadata: Metadata;
|
|
6102
6109
|
//#endregion
|
|
6103
6110
|
//#region src/adapters/ddplay.d.ts
|
|
6104
6111
|
interface DM_JSON_DDPlay {
|
|
@@ -6111,7 +6118,7 @@ interface DM_JSON_DDPlay {
|
|
|
6111
6118
|
}
|
|
6112
6119
|
declare const DdplayAdapter: (json: DM_JSON_DDPlay & {
|
|
6113
6120
|
danuni?: DanUniConvertTip;
|
|
6114
|
-
}, episodeId
|
|
6121
|
+
}, episodeId?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
6115
6122
|
declare const DdplayTransformer: (udanmakus: Promise<{
|
|
6116
6123
|
DMID: string;
|
|
6117
6124
|
SOID: string;
|
|
@@ -6130,6 +6137,7 @@ declare const DdplayTransformer: (udanmakus: Promise<{
|
|
|
6130
6137
|
}[]>) => Promise<DM_JSON_DDPlay & {
|
|
6131
6138
|
danuni?: DanUniConvertTip;
|
|
6132
6139
|
}>;
|
|
6140
|
+
declare const DdplayMetadata: Metadata;
|
|
6133
6141
|
//#endregion
|
|
6134
6142
|
//#region src/adapters/dplayer.d.ts
|
|
6135
6143
|
interface DM_JSON_Dplayer {
|
|
@@ -6141,7 +6149,7 @@ interface DM_JSON_Dplayer {
|
|
|
6141
6149
|
}
|
|
6142
6150
|
declare const DplayerAdapter: (json: DM_JSON_Dplayer & {
|
|
6143
6151
|
danuni?: DanUniConvertTip;
|
|
6144
|
-
}, playerID
|
|
6152
|
+
}, playerID?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
6145
6153
|
declare const DplayerTransformer: (udanmakus: Promise<{
|
|
6146
6154
|
DMID: string;
|
|
6147
6155
|
SOID: string;
|
|
@@ -6160,8 +6168,77 @@ declare const DplayerTransformer: (udanmakus: Promise<{
|
|
|
6160
6168
|
}[]>) => Promise<DM_JSON_Dplayer & {
|
|
6161
6169
|
danuni?: DanUniConvertTip;
|
|
6162
6170
|
}>;
|
|
6171
|
+
declare const DplayerMetadata: Metadata;
|
|
6172
|
+
//#endregion
|
|
6173
|
+
//#region src/adapters/tencent.d.ts
|
|
6174
|
+
interface TencentBarrage {
|
|
6175
|
+
id: string;
|
|
6176
|
+
is_op: number;
|
|
6177
|
+
head_url: string;
|
|
6178
|
+
time_offset: string;
|
|
6179
|
+
up_count: string;
|
|
6180
|
+
bubble_head: string;
|
|
6181
|
+
bubble_level: string;
|
|
6182
|
+
bubble_id: string;
|
|
6183
|
+
rick_type: number;
|
|
6184
|
+
content_style: string;
|
|
6185
|
+
user_vip_degree: number;
|
|
6186
|
+
create_time: string;
|
|
6187
|
+
content: string;
|
|
6188
|
+
hot_type: number;
|
|
6189
|
+
gift_info: null;
|
|
6190
|
+
share_item: null;
|
|
6191
|
+
vuid: string;
|
|
6192
|
+
nick: string;
|
|
6193
|
+
data_key: string;
|
|
6194
|
+
content_score: number;
|
|
6195
|
+
show_weight: number;
|
|
6196
|
+
track_type: number;
|
|
6197
|
+
show_like_type: number;
|
|
6198
|
+
report_like_score: number;
|
|
6199
|
+
relate_sku_info: unknown[];
|
|
6200
|
+
}
|
|
6201
|
+
interface DM_JSON_Tencent {
|
|
6202
|
+
barrage_list: TencentBarrage[];
|
|
6203
|
+
}
|
|
6204
|
+
declare const TencentAdapter: (json: DM_JSON_Tencent, vid?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
6205
|
+
declare const TencentMetadata: Metadata;
|
|
6206
|
+
//#endregion
|
|
6207
|
+
//#region src/adapters/vod.d.ts
|
|
6208
|
+
interface DM_JSON_Vod {
|
|
6209
|
+
code: number;
|
|
6210
|
+
name: string;
|
|
6211
|
+
danum: number;
|
|
6212
|
+
danmuku: [number, string, string, string, string, string, string, string][];
|
|
6213
|
+
}
|
|
6214
|
+
declare const VodZod: z.ZodObject<{
|
|
6215
|
+
code: z.ZodNumber;
|
|
6216
|
+
name: z.ZodString;
|
|
6217
|
+
danum: z.ZodNumber;
|
|
6218
|
+
danmuku: z.ZodArray<z.ZodTuple<[z.ZodCoercedNumber<string>, z.ZodUnion<readonly [z.ZodLiteral<"right">, z.ZodLiteral<"top">, z.ZodLiteral<"bottom">]>, z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>, z.ZodPrefault<z.ZodString>, z.ZodString, z.ZodPrefault<z.ZodString>, z.ZodPrefault<z.ZodString>, z.ZodString], z.ZodAny>>;
|
|
6219
|
+
}, z.core.$strip>;
|
|
6220
|
+
declare const VodAdapter: (json: DM_JSON_Vod, videoId?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
|
|
6221
|
+
declare const VodTransformer: (udanmakus: Promise<{
|
|
6222
|
+
DMID: string;
|
|
6223
|
+
SOID: string;
|
|
6224
|
+
attr: ("Compatible" | "FromLive" | "HasEvent" | "Hide" | "HighLike" | "Protect" | "Reported" | "Unchecked")[];
|
|
6225
|
+
color: number;
|
|
6226
|
+
content: string;
|
|
6227
|
+
ctime: Date;
|
|
6228
|
+
extra: Extra | null;
|
|
6229
|
+
fontsize: number;
|
|
6230
|
+
mode: "Bottom" | "Ext" | "Normal" | "Reverse" | "Top";
|
|
6231
|
+
platform: string | null;
|
|
6232
|
+
pool: "Adv" | "Def" | "Ix" | "Sub";
|
|
6233
|
+
progress: number;
|
|
6234
|
+
senderID: string;
|
|
6235
|
+
weight: number;
|
|
6236
|
+
}[]>) => Promise<DM_JSON_Vod & {
|
|
6237
|
+
danuni?: DanUniConvertTip;
|
|
6238
|
+
}>;
|
|
6239
|
+
declare const VodMetadata: Metadata;
|
|
6163
6240
|
declare namespace index_d_exports {
|
|
6164
|
-
export { Adapter, ArtplayerAdapter, ArtplayerTransformer, BiliCommandGrpcAdapter, BiliCommonBuilder, BiliCommonModeRec, BiliCommonParser, BiliGrpcAdapter, BiliUpAdapter, BiliXmlAdapter, BiliXmlTransformerConfigurator, DanuniJsonAdapter, DanuniJsonTransformerConfigurator, DanuniPbAdapter, DanuniPbTransformer, DdplayAdapter, DdplayTransformer, DplayerAdapter, DplayerTransformer, Plugin, Transformer, TransformerInput, UDanmaku, defineAdapter, definePlugin, defineTransformer, enumAttrsCodec, enumModeCodec, enumPoolCodec, transformerInput2Danmakus };
|
|
6241
|
+
export { Adapter, ArtplayerAdapter, ArtplayerMetadata, ArtplayerTransformer, BiliCommandGrpcAdapter, BiliCommandGrpcMetadata, BiliCommonBuilder, BiliCommonModeRec, BiliCommonParser, BiliGrpcAdapter, BiliGrpcMetadata, BiliUpAdapter, BiliUpMetadata, BiliXmlAdapter, BiliXmlMetadata, BiliXmlTransformerConfigurator, DanuniJsonAdapter, DanuniJsonMetadata, DanuniJsonTransformerConfigurator, DanuniPbAdapter, DanuniPbMetadata, DanuniPbTransformer, DdplayAdapter, DdplayMetadata, DdplayTransformer, DplayerAdapter, DplayerMetadata, DplayerTransformer, Metadata, Plugin, TencentAdapter, TencentMetadata, Transformer, TransformerInput, UDanmaku, VodAdapter, VodMetadata, VodTransformer, VodZod, defineAdapter, defineMetadata, definePlugin, defineTransformer, enumAttrsCodec, enumModeCodec, enumPoolCodec, transformerInput2Danmakus };
|
|
6165
6242
|
}
|
|
6166
6243
|
type TransformerInput = InitedUniDB | UniChunk;
|
|
6167
6244
|
declare function transformerInput2Danmakus(input: TransformerInput): Promise<{
|
|
@@ -6181,15 +6258,25 @@ declare function transformerInput2Danmakus(input: TransformerInput): Promise<{
|
|
|
6181
6258
|
weight: number;
|
|
6182
6259
|
}[]>;
|
|
6183
6260
|
type UDanmaku = Awaited<ReturnType<typeof transformerInput2Danmakus>>[number];
|
|
6184
|
-
type Adapter<Args extends
|
|
6261
|
+
type Adapter<Args extends any[] = any[]> = (...args: Args) => Promisable<AdapterStore>;
|
|
6185
6262
|
type Transformer<T = unknown> = (udanmakus: ReturnType<typeof transformerInput2Danmakus>, ctx: {
|
|
6186
6263
|
uchunk?: Awaited<ReturnType<typeof UniChunk.prototype.$chunk>>;
|
|
6187
6264
|
DMIDGenerator: DMIDGenerator;
|
|
6188
6265
|
}) => Promisable<T>;
|
|
6189
6266
|
type Plugin<T = unknown> = (uchunk: UniChunk) => Promisable<T>;
|
|
6190
|
-
|
|
6267
|
+
type Metadata = {
|
|
6268
|
+
type: string;
|
|
6269
|
+
ext: string[];
|
|
6270
|
+
check?: {
|
|
6271
|
+
fn?: (fn: string) => boolean;
|
|
6272
|
+
body?: (body: unknown) => Promisable<null | Adapter>;
|
|
6273
|
+
adapter?: (uchunk: UniChunk, body: unknown) => Promisable<null | Adapter | UniChunk>;
|
|
6274
|
+
};
|
|
6275
|
+
};
|
|
6276
|
+
declare function defineAdapter<T extends Adapter>(adapter: T): T;
|
|
6191
6277
|
declare function defineTransformer<T extends Transformer>(transformer: T): T;
|
|
6192
6278
|
declare function definePlugin<T extends Plugin>(plugin: T): T;
|
|
6279
|
+
declare function defineMetadata(metadata: Metadata): Metadata;
|
|
6193
6280
|
//#endregion
|
|
6194
|
-
export {
|
|
6195
|
-
//# sourceMappingURL=index-
|
|
6281
|
+
export { index_d_exports$1 as $, BiliXmlTransformerConfigurator as A, DanuniPbAdapter as B, DdplayMetadata as C, ArtplayerTransformer as D, ArtplayerMetadata as E, BiliCommonParser as F, DanuniJsonTransformerConfigurator as G, DanuniPbTransformer as H, BiliGrpcAdapter as I, enumPoolCodec as J, enumAttrsCodec as K, BiliGrpcMetadata as L, BiliUpMetadata as M, BiliCommonBuilder as N, BiliXmlAdapter as O, BiliCommonModeRec as P, UniDB as Q, BiliCommandGrpcAdapter as R, DdplayAdapter as S, ArtplayerAdapter as T, DanuniJsonAdapter as U, DanuniPbMetadata as V, DanuniJsonMetadata as W, InitedUniDB as X, AdapterStore as Y, UniChunk as Z, TencentAdapter as _, DMIDGenerator as _t, TransformerInput as a, UniDMObj as at, DplayerMetadata as b, defineMetadata as c, PlatformDanmakuOnlySources as ct, index_d_exports as d, PlatformInfoSource as dt, DMAttr as et, transformerInput2Danmakus as f, PlatformInfoSources as ft, VodZod as g, PlatformVideoSources as gt, VodTransformer as h, PlatformVideoSource as ht, Transformer as i, Pools as it, BiliUpAdapter as j, BiliXmlMetadata as k, definePlugin as l, PlatformDanmakuSource as lt, VodMetadata as m, PlatformSources as mt, Metadata as n, DanUniConvertTipTemplate as nt, UDanmaku as o, defaultUniDM as ot, VodAdapter as p, PlatformSource as pt, enumModeCodec as q, Plugin as r, Modes as rt, defineAdapter as s, PlatformDanmakuOnlySource as st, Adapter as t, DanUniConvertTip as tt, defineTransformer as u, PlatformDanmakuSources as ut, TencentMetadata as v, createDMID as vt, DdplayTransformer as w, DplayerTransformer as x, DplayerAdapter as y, BiliCommandGrpcMetadata as z };
|
|
6282
|
+
//# sourceMappingURL=index-D7OoFOLg.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-D7OoFOLg.d.mts","names":["IsNull","T","IsNull","IsUnknown","T","Promisable","T","PromiseLike","IsUnknown","SetReturnType","Function_","TypeToReturn","ThisArgument","Arguments","Parameters","arguments_","this","SetReturnType","Asyncify","Function_","ReturnType","Awaited","Promise","arguments_"],"sources":["../node_modules/type-fest/source/is-null.d.ts","../node_modules/type-fest/source/is-unknown.d.ts","../node_modules/type-fest/source/promisable.d.ts","../node_modules/type-fest/source/set-return-type.d.ts","../node_modules/type-fest/source/asyncify.d.ts","../src/core/id.ts","../src/core/platform.ts","../src/core/dm.ts","../src/core/index.ts","../src/adapters/danuni/json.ts","../src/adapters/danuni/pb.ts","../src/adapters/bili/command-grpc.ts","../src/adapters/bili/grpc.ts","../src/adapters/bili/up.ts","../src/adapters/bili/xml.ts","../src/adapters/artplayer.ts","../src/adapters/ddplay.ts","../src/adapters/dplayer.ts","../src/adapters/tencent.ts","../src/adapters/vod.ts","../src/adapters/index.ts"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"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A,CADpB,sBAAA;aAAA,uBAAA,CAAA,MAAA;EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { $ as index_d_exports$1, d as index_d_exports } from "./index-D7OoFOLg.mjs";
|
|
2
2
|
import { t as index_d_exports$2 } from "./plugins.mjs";
|
|
3
3
|
import { t as index_d_exports$3 } from "./utils.mjs";
|
|
4
4
|
export { index_d_exports as adapters, index_d_exports$1 as core, index_d_exports$2 as plugins, index_d_exports$3 as utils };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,o as t}from"./core-
|
|
1
|
+
import{i as e,o as t}from"./core-DNBceJYV.mjs";import{t as n}from"./plugins.mjs";import{t as r}from"./utils.mjs";export{t as adapters,e as core,n as plugins,r as utils};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./core/db/schema.mjs";import"./core-DNBceJYV.mjs";function e(e){return e.adv||e.code||e.bas||e.command}function t(t,n,r){if(t===n)return!0;if(t.mode===`Ext`||n.mode===`Ext`||!r?.skipDanuniMerge&&(t.extra?.danuni?.merge||n.extra?.danuni?.merge)||t.extra?.bili?.dmid&&n.extra?.bili?.dmid&&(e(t.extra.bili)||e(n.extra.bili)||t.extra?.bili.mid&&!n.extra?.bili.mid||!t.extra?.bili.mid&&n.extra?.bili.mid)||t.extra?.artplayer&&!n.extra?.artplayer||!t.extra?.artplayer&&n.extra?.artplayer||t.extra?.artplayer&&n.extra?.artplayer&&(t.extra?.artplayer.border!==n.extra?.artplayer.border||JSON.stringify(t.extra?.artplayer.style)!==JSON.stringify(n.extra?.artplayer.style)))return!1;let i=e=>t[e]===n[e];return[`SOID`,`content`,`mode`,`pool`,`platform`].every(e=>i(e))}export{t};
|
|
2
|
+
//# sourceMappingURL=isSame-CUOSL7-d.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isSame-
|
|
1
|
+
{"version":3,"file":"isSame-CUOSL7-d.mjs","names":[],"sources":["../src/utils/isSame.ts"],"sourcesContent":["import { DMAttrSchema, ModeSchema, PoolSchema } from \"@/core/db/schema.ts\";\nimport type { ExtraBili } from \"@/core/dm-extra.ts\";\nimport { type UniDMObj } from \"@/core/dm.ts\";\nimport type { UniChunk } from \"@/core/index.ts\";\nimport type { z } from \"zod\";\n\ninterface UniDMComparable extends Omit<UniDMObj, \"mode\" | \"pool\" | \"attr\"> {\n mode: z.infer<typeof ModeSchema>;\n pool: z.infer<typeof PoolSchema>;\n attr: z.infer<typeof DMAttrSchema>[];\n}\n\ntype Comp = Pick<\n UniDMComparable | Awaited<UniChunk[\"$danmakus\"]>[number],\n \"SOID\" | \"content\" | \"mode\" | \"pool\" | \"platform\" | \"extra\"\n>;\n\nfunction biliSp(that: ExtraBili) {\n return that.adv || that.code || that.bas || that.command;\n}\n\nexport function isSame(that: Comp, dan: Comp, options?: { skipDanuniMerge?: boolean }): boolean {\n // 引用相同直接返回\n if (that === dan) return true;\n // 不支持比较高级弹幕\n if (that.mode === \"Ext\" || dan.mode === \"Ext\") return false;\n // 合并过视为不同,防止存在合并完成弹幕后再次合并造成计数错误\n if (!options?.skipDanuniMerge && (that.extra?.danuni?.merge || dan.extra?.danuni?.merge))\n return false;\n // 如果是bili弹幕,则以dmid判断是否相同\n if (that.extra?.bili?.dmid && dan.extra?.bili?.dmid) {\n // bili所有非一般类型的弹幕均直接判断为不同\n if (biliSp(that.extra.bili) || biliSp(dan.extra.bili)) return false;\n // 下面只会有来自 std/up 源的普通弹幕\n // 此时可以用mid原始值是否存在判断是否为up源弹幕\n // 当来源不同(标准源/创作中心源)时,视为不同弹幕\n if (\n (that.extra?.bili.mid && !dan.extra?.bili.mid) ||\n (!that.extra?.bili.mid && dan.extra?.bili.mid)\n )\n return false;\n // 不对dmid等原始值备份进行比较(若比较dmid,则必定不同,不符合比较函数使用场景)\n // 直接跳出bili特定判断,进入后续通用比较\n }\n // 如果是artplayer弹幕,需额外比较extra项目\n if (\n (that.extra?.artplayer && !dan.extra?.artplayer) ||\n (!that.extra?.artplayer && dan.extra?.artplayer)\n )\n return false;\n else if (\n that.extra?.artplayer &&\n dan.extra?.artplayer &&\n (that.extra?.artplayer.border !== dan.extra?.artplayer.border ||\n JSON.stringify(that.extra?.artplayer.style) !== JSON.stringify(dan.extra?.artplayer.style))\n )\n return false;\n const isSame = (k: keyof Comp) => that[k] === dan[k];\n const checks = ([\"SOID\", \"content\", \"mode\", \"pool\", \"platform\"] satisfies (keyof Comp)[]).every(\n (k) => isSame(k),\n );\n // 忽略使用了extra字段却不在mode里标记的弹幕\n return checks;\n}\n"],"mappings":"yDAiBA,SAAS,EAAO,EAAiB,CAC/B,OAAO,EAAK,KAAO,EAAK,MAAQ,EAAK,KAAO,EAAK,QAGnD,SAAgB,EAAO,EAAY,EAAW,EAAkD,CAE9F,GAAI,IAAS,EAAK,MAAO,GA2BpB,GAzBD,EAAK,OAAS,OAAS,EAAI,OAAS,OAEpC,CAAC,GAAS,kBAAoB,EAAK,OAAO,QAAQ,OAAS,EAAI,OAAO,QAAQ,QAG9E,EAAK,OAAO,MAAM,MAAQ,EAAI,OAAO,MAAM,OAEzC,EAAO,EAAK,MAAM,KAAK,EAAI,EAAO,EAAI,MAAM,KAAK,EAKlD,EAAK,OAAO,KAAK,KAAO,CAAC,EAAI,OAAO,KAAK,KACzC,CAAC,EAAK,OAAO,KAAK,KAAO,EAAI,OAAO,KAAK,MAQ3C,EAAK,OAAO,WAAa,CAAC,EAAI,OAAO,WACrC,CAAC,EAAK,OAAO,WAAa,EAAI,OAAO,WAItC,EAAK,OAAO,WACZ,EAAI,OAAO,YACV,EAAK,OAAO,UAAU,SAAW,EAAI,OAAO,UAAU,QACrD,KAAK,UAAU,EAAK,OAAO,UAAU,MAAM,GAAK,KAAK,UAAU,EAAI,OAAO,UAAU,MAAM,EAE5F,MAAO,GACT,IAAM,EAAU,GAAkB,EAAK,KAAO,EAAI,GAKlD,MAJgB,CAAC,OAAQ,UAAW,OAAQ,OAAQ,WAAW,CAA2B,MACvF,GAAM,EAAO,EAAE,CAGL"}
|
package/dist/plugins.d.mts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { t as Extra } from "./dm-extra-
|
|
2
|
-
import {
|
|
1
|
+
import { t as Extra } from "./dm-extra-LzSQ7NZv.mjs";
|
|
2
|
+
import { Z as UniChunk } from "./index-D7OoFOLg.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region src/plugins/count.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* 计数转换器:统计弹幕数量,适用于需要获取弹幕总数的场景
|
|
8
|
+
* @deprecated 建议直接使用UniChunk的$count属性获取弹幕数量
|
|
9
|
+
*/
|
|
6
10
|
declare const CountTransformer: (udanmakus: Promise<{
|
|
7
11
|
DMID: string;
|
|
8
12
|
SOID: string;
|
package/dist/plugins.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.d.mts","names":[],"sources":["../src/plugins/count.ts","../src/plugins/downgradeAdvcanced.ts","../src/plugins/getStats.ts","../src/plugins/merge.ts","../src/plugins/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugins.d.mts","names":[],"sources":["../src/plugins/count.ts","../src/plugins/downgradeAdvcanced.ts","../src/plugins/getStats.ts","../src/plugins/merge.ts","../src/plugins/index.ts"],"mappings":";;;;;;;;;cAMa,gBAAA,GAAgB,SAAA,EAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;cCEhB,mCAAA;EAAmC,OAAA;EAAA;AAAA;EAI9C,OAAA,UAAiB,KAAA;EACjB,OAAA,UAAiB,KAAA;AAAA,OAClB,MAAA,EAAA,QAAA,KAAA,OAAA,CAAA,QAAA;;;cCVK,YAAA,EAAY,CAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAWb,SAAA,GAAY,CAAA,CAAE,KAAA,QAAa,YAAA;AAAA,cAEnB,+BAAA,mCAAmE,SAAA,KAAY,KAAA,EACnF,CAAA,MAAC,SAAA,EAAA,OAAA;;;;;;;;;;;;;;;yBAGc,CAAA,WAAA,GAAA;;;;;;;;;;;iBAiBR,oBAAA,mBAAA,CAAwC,OAAA,EAAS,GAAA,CAAI,CAAA;;;;;;;;;;cC5BxD,uBAAA,GAAuB,QAAA,eAAA,MAAA,EAAA,QAAA,KAAA,OAAA,CAAA,QAAA;AAAA"}
|
package/dist/plugins.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./chunk-0Lt9GpW0.mjs";import{danmakusSelectZod as t}from"./core/db/schema.mjs";import{
|
|
1
|
+
import{t as e}from"./chunk-0Lt9GpW0.mjs";import{danmakusSelectZod as t}from"./core/db/schema.mjs";import{l as n,n as r,u as i}from"./core-DNBceJYV.mjs";import{t as a}from"./isSame-CUOSL7-d.mjs";const o=i(e=>e.then(e=>e.length)),s=({include:e,exclude:t}={})=>n(async n=>{e||=[],t||=[];let i=n=>e?.includes(n)||!t?.includes(n),a=await r.makeChunk(n,{tmp:!0});return await a.upsertDanmakus((await n.$danmakus).map(e=>{if(!e.extra)return e;let t={...e,mode:`Top`,senderID:`compat[bot]@dan-any`};if(i(`danuni`)&&e.extra?.danuni){let n=e.extra.danuni;n.merge&&(t.content=`${t.content} x${n.merge.count}`)}else if(i(`bili`)&&e.extra?.bili){let n=e.extra.bili;n.mode===7&&n.adv?t.content=`[B站高级弹幕]${JSON.parse(n.adv)[4]||``}`:n.command&&(t.content=`[B站指令弹幕]${n.command.content}`,t.fontsize=36)}return t.attr.push(`Compatible`),{...t,DMID:a.$UniDB.DMIDGenerator(t)}})),a});t.pick({content:!0,SOID:!0,mode:!0,fontsize:!0,color:!0,senderID:!0,weight:!0,pool:!0,platform:!0});const c=e=>i(async function(t){let n={},r=await t,i=e=>{let t=new Map;for(let n of r){let r=n[e];t.set(r,(t.get(r)??0)+1)}n[e]=t};for(let t of e)i(t);return n});function l(e){if(e.size===0)return{val:void 0,count:0};let t,n=0;for(let[r,i]of e.entries())i>n&&(n=i,t=r);return{val:t,count:n}}const u=(e=0)=>n(async t=>{let n=await r.makeChunk(t,{tmp:!0}),i=[...await t.$danmakus].sort((e,t)=>e.progress-t.progress||e.ctime.getTime()-t.ctime.getTime());if(e<=0)return await n.upsertDanmakus(i,!1),n;let o=e*1e3,s=e=>[e.SOID,e.content,e.mode,e.pool,e.platform??``].join(`|`),c=new Map,l=[];for(let e of i){let t=s(e),n=c.get(t)??[],r;for(let t=n.length-1;t>=0;t--){let i=n[t];if(e.progress-i.lastProgress>o)break;if(a(i.base,e)){r=i;break}}if(r){r.members.push(e),r.lastProgress=e.progress,r.senderSet.has(e.senderID)||(r.senderSet.add(e.senderID),r.senders.push(e.senderID));continue}let i={base:e,lastProgress:e.progress,senders:[e.senderID],senderSet:new Set([e.senderID]),members:[e]};n.push(i),c.set(t,n),l.push(i)}return await n.upsertDanmakus(l.map(e=>{if(e.members.length===1)return e.base;let t={duration:e.lastProgress-e.base.progress,count:e.members.length,senders:e.senders,taolu_count:e.members.length,taolu_senders:e.senders},r=e.base.extra?{...e.base.extra,danuni:{...e.base.extra.danuni?e.base.extra.danuni:{},merge:t}}:{danuni:{merge:t}};if(e.senders.length===1){let e=r.danuni;if(e?.merge){let{merge:t,...n}=e;if(Object.keys(n).length>0)r={...r,danuni:n};else{let{danuni:e,...t}=r;r=Object.keys(t).length>0?t:null}}}let i=e.base.attr.includes(`Protect`)?e.base.attr:[...e.base.attr,`Protect`],a=`merge[bot]@dan-any`;return{...e.base,senderID:a,attr:i,extra:r,DMID:n.$UniDB.DMIDGenerator({...e.base,extra:r&&Object.keys(r).length>0?r:null,senderID:a})}})),n});var d=e({CountTransformer:()=>o,DowngradeAdvancedPluginConfigurator:()=>s,GetStatsTransformerConfigurator:()=>c,GetStatsUtil4getMost:()=>l,MergePluginConfigurator:()=>u});export{o as CountTransformer,s as DowngradeAdvancedPluginConfigurator,c as GetStatsTransformerConfigurator,l as GetStatsUtil4getMost,u as MergePluginConfigurator,d as t};
|
|
2
2
|
//# sourceMappingURL=plugins.mjs.map
|
package/dist/plugins.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugins.mjs","names":[],"sources":["../src/plugins/count.ts","../src/plugins/downgradeAdvcanced.ts","../src/plugins/getStats.ts","../src/plugins/merge.ts","../src/plugins/index.ts"],"sourcesContent":["import { defineTransformer } from \"@/adapters/index.ts\";\n\nexport const CountTransformer = defineTransformer((udanmakus) => udanmakus.then((d) => d.length));\n","import { definePlugin } from \"@/adapters/index.ts\";\nimport type { Extra } from \"@/core/dm-extra.ts\";\nimport { UniChunk } from \"@/core/index.ts\";\n\n/**\n * 降级转换插件:将高级弹幕转换为普通弹幕,适用于无法正确显示高级弹幕的播放器\n * @returns 转换后的弹幕Chunk,临时,导出后可自行调用delete方法删除\n */\nexport const DowngradeAdvancedPluginConfigurator = ({\n include,\n exclude,\n}: {\n include?: (keyof Extra)[];\n exclude?: (keyof Extra)[];\n} = {}) =>\n definePlugin(async (uchunk) => {\n if (!include) include = [];\n if (!exclude) exclude = [];\n const check = (k: keyof Extra) => include?.includes(k) || !exclude?.includes(k);\n const chunk = await UniChunk.makeChunk(uchunk, { tmp: true });\n await chunk.upsertDanmakus(\n (await uchunk.$danmakus).map((d) => {\n if (!d.extra) return d;\n let newDan = {\n ...d,\n mode: \"Top\" as const,\n\n senderID: \"compat[bot]@dan-any\",\n };\n // TODO 分别对 mode7/8/9 command artplayer等正常播放器无法绘制的弹幕做降级处理\n if (check(\"danuni\") && d.extra?.danuni) {\n const danuni = d.extra.danuni;\n if (danuni.merge) {\n newDan.content = `${newDan.content} x${danuni.merge.count}`;\n }\n } else if (check(\"bili\") && d.extra?.bili) {\n const bili = d.extra.bili;\n if (bili.mode === 7 && bili.adv) {\n newDan.content = `[B站高级弹幕]${JSON.parse(bili.adv)[4] || \"\"}`;\n } else if (bili.command) {\n const command = bili.command;\n newDan.content = `[B站指令弹幕]${command.content}`;\n newDan.fontsize = 36;\n }\n }\n newDan.attr.push(\"Compatible\");\n return { ...newDan, DMID: chunk.$UniDB.DMIDGenerator(newDan) };\n }),\n );\n return chunk;\n });\n","import { defineTransformer } from \"@/adapters/index.ts\";\nimport { danmakusSelectZod } from \"@/core/db/schema.ts\";\nimport type { z } from \"zod\";\n\nconst statsItemZod = danmakusSelectZod.pick({\n content: true,\n SOID: true,\n mode: true,\n fontsize: true,\n color: true,\n senderID: true,\n weight: true,\n pool: true,\n platform: true,\n});\ntype StatsItem = z.infer<typeof statsItemZod>;\n\nexport const GetStatsTransformerConfigurator = <const T extends readonly (keyof StatsItem)[]>(\n items: T,\n) =>\n defineTransformer(async function (udanmakus) {\n type StatsMap = { [K in T[number]]: Map<StatsItem[K], number> };\n const statsMap = {} as StatsMap;\n const dans = await udanmakus;\n const buildStatMap = <K extends T[number]>(key: K) => {\n const statMap = new Map<StatsItem[K], number>();\n for (const dan of dans) {\n const val = dan[key];\n statMap.set(val, (statMap.get(val) ?? 0) + 1);\n }\n statsMap[key] = statMap;\n };\n for (const key of items) {\n buildStatMap(key);\n }\n return statsMap;\n });\n\nexport function GetStatsUtil4getMost<T extends unknown>(statMap: Map<T, number>) {\n if (statMap.size === 0) return { val: undefined, count: 0 };\n let mostVal: T | undefined = undefined;\n let maxCount = 0;\n for (const [val, count] of statMap.entries()) {\n if (count > maxCount) {\n maxCount = count;\n mostVal = val;\n }\n }\n return { val: mostVal, count: maxCount };\n}\n","import { definePlugin } from \"@/adapters/index.ts\";\nimport type { Extra } from \"@/core/dm-extra.ts\";\nimport { DMAttr } from \"@/core/dm.ts\";\nimport { UniChunk } from \"@/core/index.ts\";\nimport { isSame } from \"@/utils/isSame.ts\";\n\n/**\n * 合并一定时间段内的重复弹幕,防止同屏出现过多\n * @param lifetime 查重时间区段,单位秒 (默认为 0,表示不查重)\n */\nexport const MergePluginConfigurator = (lifetime = 0) =>\n definePlugin(async (uchunk) => {\n const chunk = await UniChunk.makeChunk(uchunk, { tmp: true });\n const sourceDanmakus = [...(await uchunk.$danmakus)].sort(\n (a, b) => a.progress - b.progress || a.ctime.getTime() - b.ctime.getTime(),\n );\n\n if (lifetime <= 0) {\n await chunk.upsertDanmakus(sourceDanmakus, false);\n return chunk;\n }\n\n const lifetimeMs = lifetime * 1000;\n const makeKey = (d: (typeof sourceDanmakus)[number]) =>\n [d.SOID, d.content, d.mode, d.pool, d.platform ?? \"\"].join(\"|\");\n\n type MergeGroup = {\n base: (typeof sourceDanmakus)[number];\n lastProgress: number;\n senders: string[];\n senderSet: Set<string>;\n members: (typeof sourceDanmakus)[number][];\n };\n\n const groups = new Map<string, MergeGroup[]>();\n const orderedGroups: MergeGroup[] = [];\n\n for (const dan of sourceDanmakus) {\n const key = makeKey(dan);\n const bucket = groups.get(key) ?? [];\n let current: MergeGroup | undefined;\n\n for (let index = bucket.length - 1; index >= 0; index--) {\n const candidate = bucket[index];\n if (dan.progress - candidate.lastProgress > lifetimeMs) break;\n if (isSame(candidate.base, dan)) {\n current = candidate;\n break;\n }\n }\n\n if (current) {\n current.members.push(dan);\n current.lastProgress = dan.progress;\n if (!current.senderSet.has(dan.senderID)) {\n current.senderSet.add(dan.senderID);\n current.senders.push(dan.senderID);\n }\n continue;\n }\n\n const nextGroup: MergeGroup = {\n base: dan,\n lastProgress: dan.progress,\n senders: [dan.senderID],\n senderSet: new Set([dan.senderID]),\n members: [dan],\n };\n bucket.push(nextGroup);\n groups.set(key, bucket);\n orderedGroups.push(nextGroup);\n }\n\n await chunk.upsertDanmakus(\n orderedGroups.map((group) => {\n if (group.members.length === 1) {\n return group.base;\n }\n\n const merge = {\n duration: group.lastProgress - group.base.progress,\n count: group.members.length,\n senders: group.senders,\n taolu_count: group.members.length,\n taolu_senders: group.senders,\n };\n let extra: Extra | null = group.base.extra\n ? {\n ...group.base.extra,\n danuni: {\n ...(group.base.extra.danuni ? group.base.extra.danuni : {}),\n merge,\n },\n }\n : {\n danuni: {\n merge,\n },\n };\n if (group.senders.length === 1) {\n const danuni = extra.danuni;\n if (danuni?.merge) {\n const { merge: _merge, ...danuniRest } = danuni;\n if (Object.keys(danuniRest).length > 0) {\n extra = {\n ...extra,\n danuni: danuniRest,\n };\n } else {\n const { danuni: _danuni, ...extraRest } = extra;\n extra = Object.keys(extraRest).length > 0 ? extraRest : null;\n }\n }\n }\n const attr = group.base.attr.includes(DMAttr.Protect)\n ? group.base.attr\n : [...group.base.attr, DMAttr.Protect];\n const senderID = \"merge[bot]@dan-any\";\n\n return {\n ...group.base,\n senderID,\n attr,\n extra,\n DMID: chunk.$UniDB.DMIDGenerator({\n content: group.base.content,\n mode: group.base.mode,\n pool: group.base.pool,\n platform: group.base.platform,\n extra: extra && Object.keys(extra).length > 0 ? extra : null,\n senderID,\n ctime: group.base.ctime,\n }),\n };\n }),\n );\n return chunk;\n });\n","export * from \"./count.ts\";\nexport * from \"./downgradeAdvcanced.ts\";\nexport * from \"./getStats.ts\";\nexport * from \"./merge.ts\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugins.mjs","names":[],"sources":["../src/plugins/count.ts","../src/plugins/downgradeAdvcanced.ts","../src/plugins/getStats.ts","../src/plugins/merge.ts","../src/plugins/index.ts"],"sourcesContent":["import { defineTransformer } from \"@/adapters/index.ts\";\n\n/**\n * 计数转换器:统计弹幕数量,适用于需要获取弹幕总数的场景\n * @deprecated 建议直接使用UniChunk的$count属性获取弹幕数量\n */\nexport const CountTransformer = defineTransformer((udanmakus) => udanmakus.then((d) => d.length));\n","import { definePlugin } from \"@/adapters/index.ts\";\nimport type { Extra } from \"@/core/dm-extra.ts\";\nimport { UniChunk } from \"@/core/index.ts\";\n\n/**\n * 降级转换插件:将高级弹幕转换为普通弹幕,适用于无法正确显示高级弹幕的播放器\n * @returns 转换后的弹幕Chunk,临时,导出后可自行调用delete方法删除\n */\nexport const DowngradeAdvancedPluginConfigurator = ({\n include,\n exclude,\n}: {\n include?: (keyof Extra)[];\n exclude?: (keyof Extra)[];\n} = {}) =>\n definePlugin(async (uchunk) => {\n if (!include) include = [];\n if (!exclude) exclude = [];\n const check = (k: keyof Extra) => include?.includes(k) || !exclude?.includes(k);\n const chunk = await UniChunk.makeChunk(uchunk, { tmp: true });\n await chunk.upsertDanmakus(\n (await uchunk.$danmakus).map((d) => {\n if (!d.extra) return d;\n let newDan = {\n ...d,\n mode: \"Top\" as const,\n\n senderID: \"compat[bot]@dan-any\",\n };\n // TODO 分别对 mode7/8/9 command artplayer等正常播放器无法绘制的弹幕做降级处理\n if (check(\"danuni\") && d.extra?.danuni) {\n const danuni = d.extra.danuni;\n if (danuni.merge) {\n newDan.content = `${newDan.content} x${danuni.merge.count}`;\n }\n } else if (check(\"bili\") && d.extra?.bili) {\n const bili = d.extra.bili;\n if (bili.mode === 7 && bili.adv) {\n newDan.content = `[B站高级弹幕]${JSON.parse(bili.adv)[4] || \"\"}`;\n } else if (bili.command) {\n const command = bili.command;\n newDan.content = `[B站指令弹幕]${command.content}`;\n newDan.fontsize = 36;\n }\n }\n newDan.attr.push(\"Compatible\");\n return { ...newDan, DMID: chunk.$UniDB.DMIDGenerator(newDan) };\n }),\n );\n return chunk;\n });\n","import { defineTransformer } from \"@/adapters/index.ts\";\nimport { danmakusSelectZod } from \"@/core/db/schema.ts\";\nimport type { z } from \"zod\";\n\nconst statsItemZod = danmakusSelectZod.pick({\n content: true,\n SOID: true,\n mode: true,\n fontsize: true,\n color: true,\n senderID: true,\n weight: true,\n pool: true,\n platform: true,\n});\ntype StatsItem = z.infer<typeof statsItemZod>;\n\nexport const GetStatsTransformerConfigurator = <const T extends readonly (keyof StatsItem)[]>(\n items: T,\n) =>\n defineTransformer(async function (udanmakus) {\n type StatsMap = { [K in T[number]]: Map<StatsItem[K], number> };\n const statsMap = {} as StatsMap;\n const dans = await udanmakus;\n const buildStatMap = <K extends T[number]>(key: K) => {\n const statMap = new Map<StatsItem[K], number>();\n for (const dan of dans) {\n const val = dan[key];\n statMap.set(val, (statMap.get(val) ?? 0) + 1);\n }\n statsMap[key] = statMap;\n };\n for (const key of items) {\n buildStatMap(key);\n }\n return statsMap;\n });\n\nexport function GetStatsUtil4getMost<T extends unknown>(statMap: Map<T, number>) {\n if (statMap.size === 0) return { val: undefined, count: 0 };\n let mostVal: T | undefined = undefined;\n let maxCount = 0;\n for (const [val, count] of statMap.entries()) {\n if (count > maxCount) {\n maxCount = count;\n mostVal = val;\n }\n }\n return { val: mostVal, count: maxCount };\n}\n","import { definePlugin } from \"@/adapters/index.ts\";\nimport type { Extra } from \"@/core/dm-extra.ts\";\nimport { DMAttr } from \"@/core/dm.ts\";\nimport { UniChunk } from \"@/core/index.ts\";\nimport { isSame } from \"@/utils/isSame.ts\";\n\n/**\n * 合并一定时间段内的重复弹幕,防止同屏出现过多\n * @param lifetime 查重时间区段,单位秒 (默认为 0,表示不查重)\n */\nexport const MergePluginConfigurator = (lifetime = 0) =>\n definePlugin(async (uchunk) => {\n const chunk = await UniChunk.makeChunk(uchunk, { tmp: true });\n const sourceDanmakus = [...(await uchunk.$danmakus)].sort(\n (a, b) => a.progress - b.progress || a.ctime.getTime() - b.ctime.getTime(),\n );\n\n if (lifetime <= 0) {\n await chunk.upsertDanmakus(sourceDanmakus, false);\n return chunk;\n }\n\n const lifetimeMs = lifetime * 1000;\n const makeKey = (d: (typeof sourceDanmakus)[number]) =>\n [d.SOID, d.content, d.mode, d.pool, d.platform ?? \"\"].join(\"|\");\n\n type MergeGroup = {\n base: (typeof sourceDanmakus)[number];\n lastProgress: number;\n senders: string[];\n senderSet: Set<string>;\n members: (typeof sourceDanmakus)[number][];\n };\n\n const groups = new Map<string, MergeGroup[]>();\n const orderedGroups: MergeGroup[] = [];\n\n for (const dan of sourceDanmakus) {\n const key = makeKey(dan);\n const bucket = groups.get(key) ?? [];\n let current: MergeGroup | undefined;\n\n for (let index = bucket.length - 1; index >= 0; index--) {\n const candidate = bucket[index];\n if (dan.progress - candidate.lastProgress > lifetimeMs) break;\n if (isSame(candidate.base, dan)) {\n current = candidate;\n break;\n }\n }\n\n if (current) {\n current.members.push(dan);\n current.lastProgress = dan.progress;\n if (!current.senderSet.has(dan.senderID)) {\n current.senderSet.add(dan.senderID);\n current.senders.push(dan.senderID);\n }\n continue;\n }\n\n const nextGroup: MergeGroup = {\n base: dan,\n lastProgress: dan.progress,\n senders: [dan.senderID],\n senderSet: new Set([dan.senderID]),\n members: [dan],\n };\n bucket.push(nextGroup);\n groups.set(key, bucket);\n orderedGroups.push(nextGroup);\n }\n\n await chunk.upsertDanmakus(\n orderedGroups.map((group) => {\n if (group.members.length === 1) {\n return group.base;\n }\n\n const merge = {\n duration: group.lastProgress - group.base.progress,\n count: group.members.length,\n senders: group.senders,\n taolu_count: group.members.length,\n taolu_senders: group.senders,\n };\n let extra: Extra | null = group.base.extra\n ? {\n ...group.base.extra,\n danuni: {\n ...(group.base.extra.danuni ? group.base.extra.danuni : {}),\n merge,\n },\n }\n : {\n danuni: {\n merge,\n },\n };\n if (group.senders.length === 1) {\n const danuni = extra.danuni;\n if (danuni?.merge) {\n const { merge: _merge, ...danuniRest } = danuni;\n if (Object.keys(danuniRest).length > 0) {\n extra = {\n ...extra,\n danuni: danuniRest,\n };\n } else {\n const { danuni: _danuni, ...extraRest } = extra;\n extra = Object.keys(extraRest).length > 0 ? extraRest : null;\n }\n }\n }\n const attr = group.base.attr.includes(DMAttr.Protect)\n ? group.base.attr\n : [...group.base.attr, DMAttr.Protect];\n const senderID = \"merge[bot]@dan-any\";\n\n return {\n ...group.base,\n senderID,\n attr,\n extra,\n DMID: chunk.$UniDB.DMIDGenerator({\n ...group.base,\n extra: extra && Object.keys(extra).length > 0 ? extra : null,\n senderID,\n }),\n };\n }),\n );\n return chunk;\n });\n","export * from \"./count.ts\";\nexport * from \"./downgradeAdvcanced.ts\";\nexport * from \"./getStats.ts\";\nexport * from \"./merge.ts\";\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as Extra } from "./dm-extra-
|
|
1
|
+
import { t as Extra } from "./dm-extra-LzSQ7NZv.mjs";
|
|
2
2
|
import * as _$drizzle_orm0 from "drizzle-orm";
|
|
3
3
|
import * as t from "drizzle-orm/pg-core";
|
|
4
4
|
import { z } from "zod";
|
|
@@ -1616,4 +1616,4 @@ declare const DMAttrSchema: z.ZodEnum<{
|
|
|
1616
1616
|
}>;
|
|
1617
1617
|
//#endregion
|
|
1618
1618
|
export { onConflictDoUpdateSet as _, PoolSchema as a, Simplify as b, chunk2danmakusZod as c, danmakus as d, danmakusInsertZod as f, onConflictDoUpdate as g, modeEnum as h, ModeSchema as i, chunks as l, dmAttrEnum as m, DanmakusInsert as n, baseRelations as o, danmakusSelectZod as p, DanmakusSelect as r, chunk2danmakus as s, DMAttrSchema as t, chunksZod as u, poolEnum as v, relations as y };
|
|
1619
|
-
//# sourceMappingURL=schema-
|
|
1619
|
+
//# sourceMappingURL=schema-CS5AwMob.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-
|
|
1
|
+
{"version":3,"file":"schema-CS5AwMob.d.mts","names":["Simplify","T","KeyType"],"sources":["../node_modules/type-fest/source/simplify.d.ts","../src/core/db/schema.ts"],"x_google_ignoreList":[0],"mappings":"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"}
|
package/dist/utils.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as PoolSchema, i as ModeSchema, t as DMAttrSchema } from "./schema-
|
|
1
|
+
import { X as InitedUniDB, Z as UniChunk, at as UniDMObj, n as Metadata, t as Adapter } from "./index-D7OoFOLg.mjs";
|
|
2
|
+
import { a as PoolSchema, i as ModeSchema, t as DMAttrSchema } from "./schema-CS5AwMob.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region src/utils/fileParser.d.ts
|
|
@@ -17,9 +17,22 @@ type Comp = Pick<UniDMComparable | Awaited<UniChunk["$danmakus"]>[number], "SOID
|
|
|
17
17
|
declare function isSame(that: Comp, dan: Comp, options?: {
|
|
18
18
|
skipDanuniMerge?: boolean;
|
|
19
19
|
}): boolean;
|
|
20
|
+
//#endregion
|
|
21
|
+
//#region src/utils/wildcardAdapter.d.ts
|
|
22
|
+
/**
|
|
23
|
+
* 通配插件: 在给定范围内尝试导入弹幕
|
|
24
|
+
* @description
|
|
25
|
+
* 可能会有3种返回:
|
|
26
|
+
* 1. 导入成功(无额外参数要求): 直接返回UniChunk
|
|
27
|
+
* 2. 导入成功(需要额外参数): 返回匹配到的Adapter
|
|
28
|
+
* 3. 导入失败: 返回null
|
|
29
|
+
*/
|
|
30
|
+
declare const WildcardBodyAdapterUtil: (u: InitedUniDB | UniChunk, metadataList: Metadata[], body: unknown) => Promise<Adapter<any[]> | UniChunk | null>;
|
|
31
|
+
declare const WildcardFnAdapterUtil: (handlerList: [Metadata, Adapter][], fn: string) => [Metadata, Adapter][];
|
|
32
|
+
declare const WildcardAdapterUtil: (u: InitedUniDB | UniChunk, handlerList: [Metadata, Adapter][], fn: string, body: unknown) => Promise<Adapter<any[]> | UniChunk | null>;
|
|
20
33
|
declare namespace index_d_exports {
|
|
21
|
-
export { fileParser, isSame };
|
|
34
|
+
export { WildcardAdapterUtil, WildcardBodyAdapterUtil, WildcardFnAdapterUtil, fileParser, isSame };
|
|
22
35
|
}
|
|
23
36
|
//#endregion
|
|
24
|
-
export { fileParser, isSame, index_d_exports as t };
|
|
37
|
+
export { WildcardAdapterUtil, WildcardBodyAdapterUtil, WildcardFnAdapterUtil, fileParser, isSame, index_d_exports as t };
|
|
25
38
|
//# sourceMappingURL=utils.d.mts.map
|
package/dist/utils.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.mts","names":[],"sources":["../src/utils/fileParser.ts","../src/utils/isSame.ts","../src/utils/index.ts"],"mappings":";;;;;iBAAgB,UAAA,CAAW,IAAA,WAAe,GAAA,UAAa,WAAA,GAAc,UAAA;AAAA,iBACrD,UAAA,CAAW,IAAA,WAAe,GAAA;AAAA,iBAC1B,UAAA,kBAAA,CAA6B,IAAA,WAAe,GAAA,WAAc,CAAA;;;UCIhE,eAAA,SAAwB,IAAA,CAAK,QAAA;EACrC,IAAA,EAAM,CAAA,CAAE,KAAA,QAAa,UAAA;EACrB,IAAA,EAAM,CAAA,CAAE,KAAA,QAAa,UAAA;EACrB,IAAA,EAAM,CAAA,CAAE,KAAA,QAAa,YAAA;AAAA;AAAA,KAGlB,IAAA,GAAO,IAAA,CACV,eAAA,GAAkB,OAAA,CAAQ,QAAA;AAAA,iBAQZ,MAAA,CAAO,IAAA,EAAM,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,OAAA;EAAY,eAAA;AAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"utils.d.mts","names":[],"sources":["../src/utils/fileParser.ts","../src/utils/isSame.ts","../src/utils/wildcardAdapter.ts","../src/utils/index.ts"],"mappings":";;;;;iBAAgB,UAAA,CAAW,IAAA,WAAe,GAAA,UAAa,WAAA,GAAc,UAAA;AAAA,iBACrD,UAAA,CAAW,IAAA,WAAe,GAAA;AAAA,iBAC1B,UAAA,kBAAA,CAA6B,IAAA,WAAe,GAAA,WAAc,CAAA;;;UCIhE,eAAA,SAAwB,IAAA,CAAK,QAAA;EACrC,IAAA,EAAM,CAAA,CAAE,KAAA,QAAa,UAAA;EACrB,IAAA,EAAM,CAAA,CAAE,KAAA,QAAa,UAAA;EACrB,IAAA,EAAM,CAAA,CAAE,KAAA,QAAa,YAAA;AAAA;AAAA,KAGlB,IAAA,GAAO,IAAA,CACV,eAAA,GAAkB,OAAA,CAAQ,QAAA;AAAA,iBAQZ,MAAA,CAAO,IAAA,EAAM,IAAA,EAAM,GAAA,EAAK,IAAA,EAAM,OAAA;EAAY,eAAA;AAAA;;;;;;;ADrB1D;;;;cEWa,uBAAA,GAAuB,CAAA,EAC/B,WAAA,GAAc,QAAA,EAAQ,YAAA,EACX,QAAA,IAAU,IAAA,cACX,OAAA,CAAA,OAAA,UAAA,QAAA;AAAA,cAoBF,qBAAA,GAAqB,WAAA,GAClB,QAAA,EAAU,OAAA,KAAU,EAAA,cAEhC,QAAA,EAAU,OAAA;AAAA,cAmBD,mBAAA,GAAmB,CAAA,EAC3B,WAAA,GAAc,QAAA,EAAQ,WAAA,GACX,QAAA,EAAU,OAAA,KAAU,EAAA,UACxB,IAAA,cACG,OAAA,CAAA,OAAA,UAAA,QAAA;AAAA"}
|
package/dist/utils.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./chunk-0Lt9GpW0.mjs";import{t}from"./isSame-
|
|
1
|
+
import{t as e}from"./chunk-0Lt9GpW0.mjs";import{n as t}from"./core-DNBceJYV.mjs";import{t as n}from"./isSame-CUOSL7-d.mjs";function r(e,t){let n=e instanceof ArrayBuffer||e instanceof Uint8Array;switch(t){case`bin`:if(n)return e;throw TypeError(`Expected binary data for mod "bin"`);case`string`:if(typeof e==`string`)return e;if(n)return new TextDecoder().decode(e);throw TypeError(`Expected binary data or string for mod "string"`);case`json`:{if(typeof e==`object`&&e&&!n)return e;if(typeof e!=`string`&&!n)throw TypeError(`Expected object, JSON string, or binary data for mod "json"`);let t=typeof e==`string`?e:new TextDecoder().decode(e);try{return JSON.parse(t)}catch{throw Error(`Invalid JSON string`)}}default:throw Error(`Unsupported mod`)}}const i=async(e,n,r)=>{let i=e instanceof t?e:await e.makeChunk({});for(let e of n){if(e.check?.body){let t=await e.check.body(r);if(t!==null)return i.delete(),t}if(e.check?.adapter){let t=await e.check.adapter(i,r);if(t!==null)return t}}return i.delete(),null},a=(e,t)=>{let n=[];for(let[r,i]of e)if(r.check?.fn){if(r.check.fn(t)){n.push([r,i]);continue}}else{if(t.includes(r.type))return[[r,i]];r.ext.some(e=>t.endsWith(e))&&n.push([r,i])}return n},o=async(e,n,r,o)=>i(e instanceof t?e:await e.makeChunk({}),a(n,r).map(([e])=>e),o);var s=e({WildcardAdapterUtil:()=>o,WildcardBodyAdapterUtil:()=>i,WildcardFnAdapterUtil:()=>a,fileParser:()=>r,isSame:()=>n});export{o as WildcardAdapterUtil,i as WildcardBodyAdapterUtil,a as WildcardFnAdapterUtil,r as fileParser,n as isSame,s as t};
|
|
2
2
|
//# sourceMappingURL=utils.mjs.map
|
package/dist/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils/fileParser.ts","../src/utils/index.ts"],"sourcesContent":["export function fileParser(file: unknown, mod: \"bin\"): ArrayBuffer | Uint8Array;\nexport function fileParser(file: unknown, mod: \"string\"): string;\nexport function fileParser<T extends object>(file: unknown, mod: \"json\"): T;\nexport function fileParser(\n file: unknown,\n mod: \"bin\" | \"string\" | \"json\",\n): ArrayBuffer | Uint8Array | string | object {\n const isBinary = file instanceof ArrayBuffer || file instanceof Uint8Array;\n switch (mod) {\n case \"bin\": {\n if (isBinary) return file;\n throw new TypeError('Expected binary data for mod \"bin\"');\n }\n case \"string\": {\n if (typeof file === \"string\") return file;\n if (isBinary) return new TextDecoder().decode(file);\n throw new TypeError('Expected binary data or string for mod \"string\"');\n }\n case \"json\": {\n if (typeof file === \"object\" && file !== null && !isBinary) return file;\n if (typeof file !== \"string\" && !isBinary) {\n throw new TypeError('Expected object, JSON string, or binary data for mod \"json\"');\n }\n const str = typeof file === \"string\" ? file : new TextDecoder().decode(file);\n try {\n return JSON.parse(str);\n } catch {\n throw new Error(\"Invalid JSON string\");\n }\n }\n default:\n throw new Error(\"Unsupported mod\");\n }\n}\n","export * from \"./fileParser.ts\";\nexport * from \"./isSame.ts\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils/fileParser.ts","../src/utils/wildcardAdapter.ts","../src/utils/index.ts"],"sourcesContent":["export function fileParser(file: unknown, mod: \"bin\"): ArrayBuffer | Uint8Array;\nexport function fileParser(file: unknown, mod: \"string\"): string;\nexport function fileParser<T extends object>(file: unknown, mod: \"json\"): T;\nexport function fileParser(\n file: unknown,\n mod: \"bin\" | \"string\" | \"json\",\n): ArrayBuffer | Uint8Array | string | object {\n const isBinary = file instanceof ArrayBuffer || file instanceof Uint8Array;\n switch (mod) {\n case \"bin\": {\n if (isBinary) return file;\n throw new TypeError('Expected binary data for mod \"bin\"');\n }\n case \"string\": {\n if (typeof file === \"string\") return file;\n if (isBinary) return new TextDecoder().decode(file);\n throw new TypeError('Expected binary data or string for mod \"string\"');\n }\n case \"json\": {\n if (typeof file === \"object\" && file !== null && !isBinary) return file;\n if (typeof file !== \"string\" && !isBinary) {\n throw new TypeError('Expected object, JSON string, or binary data for mod \"json\"');\n }\n const str = typeof file === \"string\" ? file : new TextDecoder().decode(file);\n try {\n return JSON.parse(str);\n } catch {\n throw new Error(\"Invalid JSON string\");\n }\n }\n default:\n throw new Error(\"Unsupported mod\");\n }\n}\n","import { type Adapter, type Metadata } from \"@/adapters/index.ts\";\nimport { UniChunk, type InitedUniDB } from \"@/core/index.ts\";\n\n/**\n * 通配插件: 在给定范围内尝试导入弹幕\n * @description\n * 可能会有3种返回:\n * 1. 导入成功(无额外参数要求): 直接返回UniChunk\n * 2. 导入成功(需要额外参数): 返回匹配到的Adapter\n * 3. 导入失败: 返回null\n */\nexport const WildcardBodyAdapterUtil = async (\n u: InitedUniDB | UniChunk,\n metadataList: Metadata[],\n body: unknown,\n) => {\n const uchunk = u instanceof UniChunk ? u : await u.makeChunk({});\n for (const metadata of metadataList) {\n if (metadata.check?.body) {\n const r = await metadata.check.body(body);\n if (r !== null) {\n uchunk.delete(); // 需额外参数,返回适配器,当前测试用的chunk视为临时chunk\n return r;\n }\n }\n if (metadata.check?.adapter) {\n const r = await metadata.check.adapter(uchunk, body);\n if (r !== null) return r;\n }\n }\n uchunk.delete(); // 若为无额外参数要求的,其已经被返回,不会执行到这里\n return null;\n};\n\nexport const WildcardFnAdapterUtil = (\n handlerList: [Metadata, Adapter][],\n fn: string,\n): [Metadata, Adapter][] => {\n const possibleHandlers: [Metadata, Adapter][] = [];\n for (const [metadata, adapter] of handlerList) {\n if (metadata.check?.fn) {\n const r = metadata.check.fn(fn);\n if (r) {\n possibleHandlers.push([metadata, adapter]);\n continue;\n }\n } else {\n const r1 = fn.includes(metadata.type);\n if (r1) return [[metadata, adapter]];\n const r2 = metadata.ext.some((e) => fn.endsWith(e));\n if (r2) possibleHandlers.push([metadata, adapter]);\n }\n }\n return possibleHandlers;\n};\n\nexport const WildcardAdapterUtil = async (\n u: InitedUniDB | UniChunk,\n handlerList: [Metadata, Adapter][],\n fn: string,\n body: unknown,\n) => {\n const uchunk = u instanceof UniChunk ? u : await u.makeChunk({});\n const possileHandlers = WildcardFnAdapterUtil(handlerList, fn);\n return WildcardBodyAdapterUtil(\n uchunk,\n possileHandlers.map(([m]) => m),\n body,\n );\n};\n","export * from \"./fileParser.ts\";\nexport * from \"./isSame.ts\";\nexport * from \"./wildcardAdapter.ts\";\n"],"mappings":"2HAGA,SAAgB,EACd,EACA,EAC4C,CAC5C,IAAM,EAAW,aAAgB,aAAe,aAAgB,WAChE,OAAQ,EAAR,CACE,IAAK,MACH,GAAI,EAAU,OAAO,EACrB,MAAU,UAAU,qCAAqC,CAE3D,IAAK,SACH,GAAI,OAAO,GAAS,SAAU,OAAO,EACrC,GAAI,EAAU,OAAO,IAAI,aAAa,CAAC,OAAO,EAAK,CACnD,MAAU,UAAU,kDAAkD,CAExE,IAAK,OAAQ,CACX,GAAI,OAAO,GAAS,UAAY,GAAiB,CAAC,EAAU,OAAO,EACnE,GAAI,OAAO,GAAS,UAAY,CAAC,EAC/B,MAAU,UAAU,8DAA8D,CAEpF,IAAM,EAAM,OAAO,GAAS,SAAW,EAAO,IAAI,aAAa,CAAC,OAAO,EAAK,CAC5E,GAAI,CACF,OAAO,KAAK,MAAM,EAAI,MAChB,CACN,MAAU,MAAM,sBAAsB,EAG1C,QACE,MAAU,MAAM,kBAAkB,ECpBxC,MAAa,EAA0B,MACrC,EACA,EACA,IACG,CACH,IAAM,EAAS,aAAa,EAAW,EAAI,MAAM,EAAE,UAAU,EAAE,CAAC,CAChE,IAAK,IAAM,KAAY,EAAc,CACnC,GAAI,EAAS,OAAO,KAAM,CACxB,IAAM,EAAI,MAAM,EAAS,MAAM,KAAK,EAAK,CACzC,GAAI,IAAM,KAER,OADA,EAAO,QAAQ,CACR,EAGX,GAAI,EAAS,OAAO,QAAS,CAC3B,IAAM,EAAI,MAAM,EAAS,MAAM,QAAQ,EAAQ,EAAK,CACpD,GAAI,IAAM,KAAM,OAAO,GAI3B,OADA,EAAO,QAAQ,CACR,MAGI,GACX,EACA,IAC0B,CAC1B,IAAM,EAA0C,EAAE,CAClD,IAAK,GAAM,CAAC,EAAU,KAAY,EAChC,GAAI,EAAS,OAAO,OACR,EAAS,MAAM,GAAG,EACvB,CAAE,CACL,EAAiB,KAAK,CAAC,EAAU,EAAQ,CAAC,CAC1C,cAEG,CAEL,GADW,EAAG,SAAS,EAAS,KAC1B,CAAE,MAAO,CAAC,CAAC,EAAU,EAAQ,CAAC,CACzB,EAAS,IAAI,KAAM,GAAM,EAAG,SAAS,EAAE,CAC5C,EAAE,EAAiB,KAAK,CAAC,EAAU,EAAQ,CAAC,CAGtD,OAAO,GAGI,EAAsB,MACjC,EACA,EACA,EACA,IAIO,EAFQ,aAAa,EAAW,EAAI,MAAM,EAAE,UAAU,EAAE,CAAC,CACxC,EAAsB,EAAa,EAG1C,CAAC,KAAK,CAAC,KAAO,EAAE,CAC/B,EACD"}
|