@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.
@@ -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-DrAQCrFv.d.mts.map
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-DrAQCrFv.mjs";
2
- import { b as Simplify, n as DanmakusInsert, r as DanmakusSelect, u as chunksZod } from "./schema-BuenbDx9.mjs";
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
- interface DMIDGeneratorDanmaku {
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, "from" | "where", {
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
- }>, "from" | "where">;
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
- }>[], autoSetDMID?: false): Promise<void>;
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
- }>[]) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
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: DanmakusSelect, options?: BiliCommonBuilderOptions): {
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: string, domain?: any) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
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: string, domain?: any) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
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: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
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 unknown[] = unknown[]> = (...args: Args) => Promisable<AdapterStore>;
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
- declare function defineAdapter<T extends (...args: any[]) => Promisable<AdapterStore>>(adapter: T): T;
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 { PlatformVideoSources as $, enumModeCodec as A, Modes as B, BiliGrpcAdapter as C, DanuniJsonAdapter as D, DanuniPbTransformer as E, UniDB as F, PlatformDanmakuOnlySources as G, UniDMObj as H, index_d_exports$1 as I, PlatformInfoSource as J, PlatformDanmakuSource as K, DMAttr as L, AdapterStore as M, InitedUniDB as N, DanuniJsonTransformerConfigurator as O, UniChunk as P, PlatformVideoSource as Q, DanUniConvertTip as R, BiliCommonParser as S, DanuniPbAdapter as T, defaultUniDM as U, Pools as V, PlatformDanmakuOnlySource as W, PlatformSource as X, PlatformInfoSources as Y, PlatformSources as Z, BiliXmlAdapter as _, UDanmaku as a, BiliCommonBuilder as b, defineTransformer as c, DplayerAdapter as d, DMIDGenerator as et, DplayerTransformer as f, ArtplayerTransformer as g, ArtplayerAdapter as h, TransformerInput as i, enumPoolCodec as j, enumAttrsCodec as k, index_d_exports as l, DdplayTransformer as m, Plugin as n, defineAdapter as o, DdplayAdapter as p, PlatformDanmakuSources as q, Transformer as r, definePlugin as s, Adapter as t, createDMID as tt, transformerInput2Danmakus as u, BiliXmlTransformerConfigurator as v, BiliCommandGrpcAdapter as w, BiliCommonModeRec as x, BiliUpAdapter as y, DanUniConvertTipTemplate as z };
6195
- //# sourceMappingURL=index-5rcmHUF1.d.mts.map
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 { I as index_d_exports$1, l as index_d_exports } from "./index-5rcmHUF1.mjs";
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-BsUKRX1y.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};
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-DciV3b4U.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":"uDAiBA,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"}
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"}
@@ -1,8 +1,12 @@
1
- import { t as Extra } from "./dm-extra-DrAQCrFv.mjs";
2
- import { P as UniChunk } from "./index-5rcmHUF1.mjs";
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;
@@ -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":";;;;;cAEa,gBAAA,GAAgB,SAAA,EAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;cCMhB,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"}
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{c as n,l as r,n as i}from"./core-BsUKRX1y.mjs";import"./dm-BPBsbygx.mjs";import{t as a}from"./isSame-DciV3b4U.mjs";const o=r(e=>e.then(e=>e.length)),s=({include:e,exclude:t}={})=>n(async n=>{e||=[],t||=[];let r=n=>e?.includes(n)||!t?.includes(n),a=await i.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(r(`danuni`)&&e.extra?.danuni){let n=e.extra.danuni;n.merge&&(t.content=`${t.content} x${n.merge.count}`)}else if(r(`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=>r(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 i.makeChunk(t,{tmp:!0}),r=[...await t.$danmakus].sort((e,t)=>e.progress-t.progress||e.ctime.getTime()-t.ctime.getTime());if(e<=0)return await n.upsertDanmakus(r,!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 r){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({content:e.base.content,mode:e.base.mode,pool:e.base.pool,platform:e.base.platform,extra:r&&Object.keys(r).length>0?r:null,senderID:a,ctime:e.base.ctime})}})),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};
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
@@ -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-DrAQCrFv.mjs";
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-BuenbDx9.d.mts.map
1619
+ //# sourceMappingURL=schema-CS5AwMob.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-BuenbDx9.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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"}
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 { H as UniDMObj, P as UniChunk } from "./index-5rcmHUF1.mjs";
2
- import { a as PoolSchema, i as ModeSchema, t as DMAttrSchema } from "./schema-BuenbDx9.mjs";
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
@@ -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-DciV3b4U.mjs";function n(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`)}}var r=e({fileParser:()=>n,isSame:()=>t});export{n as fileParser,t as isSame,r as t};
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
@@ -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":"8EAGA,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"}
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"}