@dan-uni/dan-any 2.2.9 → 2.3.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.
Files changed (126) hide show
  1. package/dist/_polyfill-node.buffer-DsMhZhzX.mjs +8 -0
  2. package/dist/adapters-BEs_Fcjl.cjs +1 -0
  3. package/dist/adapters-CGnQfVqg.mjs +2 -0
  4. package/dist/adapters-CGnQfVqg.mjs.map +1 -0
  5. package/dist/adapters.cjs +1 -0
  6. package/dist/{adapters.d.ts → adapters.d.cts} +1 -1
  7. package/dist/adapters.d.mts +2 -0
  8. package/dist/adapters.mjs +1 -0
  9. package/dist/core/db/schema.cjs +1 -0
  10. package/dist/core/db/{schema.d.ts → schema.d.cts} +1 -1
  11. package/dist/core/db/schema.d.mts +2 -0
  12. package/dist/core/db/{schema.js → schema.mjs} +1 -1
  13. package/dist/core/db/schema.mjs.map +1 -0
  14. package/dist/core/db/utils.cjs +1 -0
  15. package/dist/core/db/{utils.d.ts → utils.d.cts} +2 -2
  16. package/dist/core/db/{utils.d.ts.map → utils.d.cts.map} +1 -1
  17. package/dist/core/db/utils.d.mts +1703 -0
  18. package/dist/core/db/utils.d.mts.map +1 -0
  19. package/dist/core/db/utils.mjs +1 -0
  20. package/dist/core/main/drizzle.cjs +1 -0
  21. package/dist/core/main/drizzle.d.cts +4264 -0
  22. package/dist/core/main/{drizzle.d.ts.map → drizzle.d.cts.map} +1 -1
  23. package/dist/core/main/{drizzle.d.ts → drizzle.d.mts} +5 -5
  24. package/dist/core/main/drizzle.d.mts.map +1 -0
  25. package/dist/core/main/drizzle.mjs +1 -0
  26. package/dist/core/main/pure.cjs +1 -0
  27. package/dist/core/main/pure.d.cts +2 -0
  28. package/dist/core/main/pure.d.mts +2 -0
  29. package/dist/core/main/pure.mjs +1 -0
  30. package/dist/core/main.cjs +1 -0
  31. package/dist/core/main.d.cts +3 -0
  32. package/dist/core/main.d.mts +3 -0
  33. package/dist/core/main.mjs +1 -0
  34. package/dist/core-CKF1H7Si.mjs +2 -0
  35. package/dist/core-CKF1H7Si.mjs.map +1 -0
  36. package/dist/core-CxJrRDES.cjs +1 -0
  37. package/dist/core.cjs +1 -0
  38. package/dist/{core.d.ts → core.d.cts} +2 -2
  39. package/dist/core.d.mts +3 -0
  40. package/dist/core.mjs +1 -0
  41. package/dist/db-CwVpeD4O.cjs +49 -0
  42. package/dist/{db-CK9ddboZ.js → db-f5FA8dbM.mjs} +2 -2
  43. package/dist/db-f5FA8dbM.mjs.map +1 -0
  44. package/dist/{dm-extra-8pmLcNuD.d.ts → dm-extra-D2JR9olV.d.cts} +20 -20
  45. package/dist/dm-extra-D2JR9olV.d.cts.map +1 -0
  46. package/dist/dm-extra-D2JR9olV.d.mts +176 -0
  47. package/dist/dm-extra-D2JR9olV.d.mts.map +1 -0
  48. package/dist/index-BM23CK6w.d.cts +749 -0
  49. package/dist/index-BM23CK6w.d.cts.map +1 -0
  50. package/dist/{index-CyibNSYQ.d.ts → index-DqnaW_ei.d.mts} +22 -22
  51. package/dist/index-DqnaW_ei.d.mts.map +1 -0
  52. package/dist/index.cjs +1 -0
  53. package/dist/index.d.cts +4 -0
  54. package/dist/index.d.mts +4 -0
  55. package/dist/index.mjs +1 -0
  56. package/dist/isSame-CGu1CJcI.cjs +1 -0
  57. package/dist/isSame-PqXeXEr0.mjs +2 -0
  58. package/dist/isSame-PqXeXEr0.mjs.map +1 -0
  59. package/dist/main-drizzle-B8Rn_s5D.mjs +2 -0
  60. package/dist/main-drizzle-B8Rn_s5D.mjs.map +1 -0
  61. package/dist/main-drizzle-WzEKTK8J.cjs +1 -0
  62. package/dist/main-pure-2gcLxO9T.cjs +1 -0
  63. package/dist/main-pure-BpusnMEi.d.cts +150 -0
  64. package/dist/main-pure-BpusnMEi.d.cts.map +1 -0
  65. package/dist/main-pure-DOADbEvZ.mjs +2 -0
  66. package/dist/main-pure-DOADbEvZ.mjs.map +1 -0
  67. package/dist/{main-pure-DkKNyAz1.d.ts → main-pure-NLby0fmU.d.mts} +3 -3
  68. package/dist/main-pure-NLby0fmU.d.mts.map +1 -0
  69. package/dist/plugins.cjs +1 -0
  70. package/dist/plugins.d.cts +142 -0
  71. package/dist/plugins.d.cts.map +1 -0
  72. package/dist/{plugins.d.ts → plugins.d.mts} +3 -3
  73. package/dist/plugins.d.mts.map +1 -0
  74. package/dist/plugins.mjs +2 -0
  75. package/dist/plugins.mjs.map +1 -0
  76. package/dist/rolldown-runtime-DWNI8pZO.cjs +1 -0
  77. package/dist/{schema-D_OmIr-T.d.ts → schema-CwZvAYu6.d.cts} +3 -3
  78. package/dist/schema-CwZvAYu6.d.cts.map +1 -0
  79. package/dist/schema-DinusqmG.d.mts +1554 -0
  80. package/dist/schema-DinusqmG.d.mts.map +1 -0
  81. package/dist/{simplify-d7VEIjlJ.d.ts → simplify-d7VEIjlJ.d.cts} +1 -1
  82. package/dist/simplify-d7VEIjlJ.d.cts.map +1 -0
  83. package/dist/simplify-d7VEIjlJ.d.mts +63 -0
  84. package/dist/simplify-d7VEIjlJ.d.mts.map +1 -0
  85. package/dist/utils.cjs +1 -0
  86. package/dist/utils.d.cts +39 -0
  87. package/dist/utils.d.cts.map +1 -0
  88. package/dist/{utils.d.ts → utils.d.mts} +3 -3
  89. package/dist/utils.d.mts.map +1 -0
  90. package/dist/utils.mjs +2 -0
  91. package/dist/utils.mjs.map +1 -0
  92. package/package.json +47 -13
  93. package/dist/adapters-fk-6LLym.js +0 -2
  94. package/dist/adapters-fk-6LLym.js.map +0 -1
  95. package/dist/adapters.js +0 -1
  96. package/dist/core/db/schema.js.map +0 -1
  97. package/dist/core/db/utils.js +0 -1
  98. package/dist/core/main/drizzle.js +0 -1
  99. package/dist/core/main/pure.d.ts +0 -2
  100. package/dist/core/main/pure.js +0 -1
  101. package/dist/core/main.d.ts +0 -3
  102. package/dist/core/main.js +0 -1
  103. package/dist/core-CqCB-FDe.js +0 -2
  104. package/dist/core-CqCB-FDe.js.map +0 -1
  105. package/dist/core.js +0 -1
  106. package/dist/db-CK9ddboZ.js.map +0 -1
  107. package/dist/dm-extra-8pmLcNuD.d.ts.map +0 -1
  108. package/dist/index-CyibNSYQ.d.ts.map +0 -1
  109. package/dist/index.d.ts +0 -4
  110. package/dist/index.js +0 -1
  111. package/dist/isSame-Dxw0hZag.js +0 -2
  112. package/dist/isSame-Dxw0hZag.js.map +0 -1
  113. package/dist/main-drizzle-CYhgWVV9.js +0 -2
  114. package/dist/main-drizzle-CYhgWVV9.js.map +0 -1
  115. package/dist/main-pure-CZelRqTJ.js +0 -2
  116. package/dist/main-pure-CZelRqTJ.js.map +0 -1
  117. package/dist/main-pure-DkKNyAz1.d.ts.map +0 -1
  118. package/dist/plugins.d.ts.map +0 -1
  119. package/dist/plugins.js +0 -2
  120. package/dist/plugins.js.map +0 -1
  121. package/dist/schema-D_OmIr-T.d.ts.map +0 -1
  122. package/dist/simplify-d7VEIjlJ.d.ts.map +0 -1
  123. package/dist/utils.d.ts.map +0 -1
  124. package/dist/utils.js +0 -2
  125. package/dist/utils.js.map +0 -1
  126. /package/dist/{rolldown-runtime-DK3Fl9T5.js → rolldown-runtime-DK3Fl9T5.mjs} +0 -0
@@ -0,0 +1,749 @@
1
+ import { a as ExtraDanUni, c as ExtraDanUniRaw, i as ExtraBiliUp, l as ExtraDdPlay, n as ExtraArtplayer, o as ExtraDanUniColor, r as ExtraBili, s as ExtraDanUniMerge, t as Extra, u as ExtraTencent } from "./dm-extra-D2JR9olV.cjs";
2
+ import { z } from "zod";
3
+
4
+ //#region \0rolldown/runtime.js
5
+ //#endregion
6
+ //#region node_modules/type-fest/source/is-null.d.ts
7
+ /**
8
+ Returns a boolean for whether the given type is `null`.
9
+
10
+ @example
11
+ ```
12
+ import type {IsNull} from 'type-fest';
13
+
14
+ type NonNullFallback<T, Fallback> = IsNull<T> extends true ? Fallback : T;
15
+
16
+ type Example1 = NonNullFallback<null, string>;
17
+ //=> string
18
+
19
+ type Example2 = NonNullFallback<number, string>;
20
+ //=> number
21
+ ```
22
+
23
+ @category Type Guard
24
+ @category Utilities
25
+ */
26
+ type IsNull<T> = [T] extends [null] ? true : false;
27
+ //#endregion
28
+ //#region node_modules/type-fest/source/is-unknown.d.ts
29
+ /**
30
+ Returns a boolean for whether the given type is `unknown`.
31
+
32
+ @link https://github.com/dsherret/conditional-type-checks/pull/16
33
+
34
+ Useful in type utilities, such as when dealing with unknown data from API calls.
35
+
36
+ @example
37
+ ```
38
+ import type {IsUnknown} from 'type-fest';
39
+
40
+ type A = IsUnknown<unknown>;
41
+ //=> true
42
+
43
+ type B = IsUnknown<any>;
44
+ //=> false
45
+
46
+ type C = IsUnknown<never>;
47
+ //=> false
48
+
49
+ type D = IsUnknown<unknown[]>;
50
+ //=> false
51
+
52
+ type E = IsUnknown<object>;
53
+ //=> false
54
+
55
+ type F = IsUnknown<string>;
56
+ //=> false
57
+ ```
58
+
59
+ @category Utilities
60
+ */
61
+ type IsUnknown<T> = (unknown extends T // `T` can be `unknown` or `any`
62
+ ? IsNull<T> extends false // `any` can be `null`, but `unknown` can't be
63
+ ? true : false : false);
64
+ //#endregion
65
+ //#region node_modules/type-fest/source/promisable.d.ts
66
+ /**
67
+ Create a type that represents either the value or the value wrapped in `PromiseLike`.
68
+
69
+ Use-cases:
70
+ - A function accepts a callback that may either return a value synchronously or may return a promised value.
71
+ - This type could be the return type of `Promise#then()`, `Promise#catch()`, and `Promise#finally()` callbacks.
72
+
73
+ Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/31394) if you want to have this type as a built-in in TypeScript.
74
+
75
+ @example
76
+ ```
77
+ import type {Promisable} from 'type-fest';
78
+
79
+ async function logger(getLogEntry: () => Promisable<string>): Promise<void> {
80
+ const entry = await getLogEntry();
81
+ console.log(entry);
82
+ }
83
+
84
+ await logger(() => 'foo');
85
+ await logger(() => Promise.resolve('bar'));
86
+ ```
87
+
88
+ @category Async
89
+ */
90
+ type Promisable<T> = T | PromiseLike<T>;
91
+ //#endregion
92
+ //#region node_modules/type-fest/source/set-return-type.d.ts
93
+ /**
94
+ Create a function type with a return type of your choice and the same parameters as the given function type.
95
+
96
+ Use-case: You want to define a wrapped function that returns something different while receiving the same parameters. For example, you might want to wrap a function that can throw an error into one that will return `undefined` instead.
97
+
98
+ @example
99
+ ```
100
+ import type {SetReturnType} from 'type-fest';
101
+
102
+ type MyFunctionThatCanThrow = (foo: string, bar: number) => boolean;
103
+
104
+ type MyWrappedFunction = SetReturnType<MyFunctionThatCanThrow, ReturnType<MyFunctionThatCanThrow> | undefined>;
105
+ //=> (foo: string, bar: number) => boolean | undefined
106
+ ```
107
+
108
+ @category Function
109
+ */
110
+ type SetReturnType<Function_ extends (...arguments_: any[]) => any, TypeToReturn> = // Just using `Parameters<Fn>` isn't ideal because it doesn't handle the `this` fake parameter.
111
+ Function_ extends ((this: infer ThisArgument, ...arguments_: infer Arguments) => any) ? (// If a function did not specify the `this` fake parameter, it will be inferred to `unknown`.
112
+ // We want to detect this situation just to display a friendlier type upon hovering on an IntelliSense-powered IDE.
113
+ IsUnknown<ThisArgument> extends true ? (...arguments_: Arguments) => TypeToReturn : (this: ThisArgument, ...arguments_: Arguments) => TypeToReturn) : (// This part should be unreachable, but we make it meaningful just in case…
114
+ (...arguments_: Parameters<Function_>) => TypeToReturn);
115
+ //#endregion
116
+ //#region node_modules/type-fest/source/asyncify.d.ts
117
+ /**
118
+ Create an async version of the given function type, by boxing the return type in `Promise` while keeping the same parameter types.
119
+
120
+ Use-case: You have two functions, one synchronous and one asynchronous that do the same thing. Instead of having to duplicate the type definition, you can use `Asyncify` to reuse the synchronous type.
121
+
122
+ @example
123
+ ```
124
+ import type {Asyncify} from 'type-fest';
125
+
126
+ // Synchronous function
127
+ type Config = {featureFlags: Record<string, boolean>};
128
+
129
+ declare function loadConfigSync(path: string): Config;
130
+
131
+ type LoadConfigAsync = Asyncify<typeof loadConfigSync>;
132
+ //=> (path: string) => Promise<Config>
133
+ ```
134
+
135
+ @category Async
136
+ */
137
+ type Asyncify<Function_ extends (...arguments_: any[]) => any> = SetReturnType<Function_, Promise<Awaited<ReturnType<Function_>>>>;
138
+ //#endregion
139
+ //#region src/core/id.d.ts
140
+ type DMIDGeneratorDanmaku = Omit<UDanmaku, "DMID">;
141
+ type DMIDGenerator = (dan: DMIDGeneratorDanmaku, slice?: number) => string;
142
+ declare const createDMID: DMIDGenerator;
143
+ //#endregion
144
+ //#region src/core/platform.d.ts
145
+ declare enum PlatformInfoSource {
146
+ Bangumi = "bgm",
147
+ TMDB = "tmdb"
148
+ }
149
+ declare const PlatformInfoSources: PlatformInfoSource[];
150
+ declare enum PlatformVideoSource {
151
+ Acfun = "acfun",
152
+ Baha = "baha",
153
+ Bilibili = "bili",
154
+ BilibiliGlobal = "bglobal",
155
+ Iqiyi = "iqiyi",
156
+ Tencent = "tencent",
157
+ Youku = "youku"
158
+ }
159
+ declare const PlatformVideoSources: PlatformVideoSource[];
160
+ declare enum PlatformDanmakuOnlySource {
161
+ DanDanPlay = "ddplay",
162
+ TuCao = "tucao"
163
+ }
164
+ declare const PlatformDanmakuOnlySources: PlatformDanmakuOnlySource[];
165
+ type PlatformDanmakuSource = PlatformVideoSource | PlatformDanmakuOnlySource;
166
+ declare const PlatformDanmakuSources: (PlatformVideoSource | PlatformDanmakuOnlySource)[];
167
+ type PlatformSource = PlatformInfoSource | PlatformDanmakuSource;
168
+ declare const PlatformSources: (PlatformInfoSource | PlatformVideoSource | PlatformDanmakuOnlySource)[];
169
+ //#endregion
170
+ //#region src/core/dm.d.ts
171
+ declare enum Modes {
172
+ Normal = 0,
173
+ Bottom = 1,
174
+ Top = 2,
175
+ Reverse = 3,
176
+ //逆向弹幕
177
+ Ext = 4
178
+ }
179
+ declare enum Pools {
180
+ Def = 0,
181
+ //默认池
182
+ Sub = 1,
183
+ //重要池,建议强制加载,含字幕、科普、空降等
184
+ Adv = 2,
185
+ //高级弹幕专用池,均需读取extra
186
+ Ix = 3
187
+ }
188
+ declare enum DMAttr {
189
+ Protect = "Protect",
190
+ FromLive = "FromLive",
191
+ HighLike = "HighLike",
192
+ Compatible = "Compatible",
193
+ // 由dan-any进行过兼容处理的弹幕,可能丢失部分信息
194
+ Reported = "Reported",
195
+ // 在DanUni上被多人举报过的弹幕
196
+ Unchecked = "Unchecked",
197
+ // 在DanUni上未被审核过的弹幕
198
+ HasEvent = "HasEvent",
199
+ // 该弹幕当前在DanUni上存在事件(如点赞/举报等)
200
+ Hide = "Hide"
201
+ }
202
+ interface UniDMObj {
203
+ SOID: string;
204
+ progress: number;
205
+ mode: Modes;
206
+ fontsize: number;
207
+ color: number;
208
+ senderID: string;
209
+ content: string;
210
+ ctime: Date;
211
+ weight: number;
212
+ pool: Pools;
213
+ attr: DMAttr[];
214
+ platform: PlatformDanmakuSource | string | null;
215
+ extra: Extra | null;
216
+ DMID: string;
217
+ }
218
+ declare const defaultUniDM: {
219
+ readonly SOID: `${string}@${string}`;
220
+ readonly progress: 0;
221
+ readonly mode: Modes.Normal;
222
+ readonly fontsize: 25;
223
+ readonly color: 16777215;
224
+ readonly senderID: `${string}@${string}`;
225
+ readonly content: "";
226
+ readonly weight: 0;
227
+ readonly pool: Pools.Def;
228
+ readonly attr: DMAttr[];
229
+ readonly platform: null;
230
+ readonly extra: null;
231
+ };
232
+ interface DanUniConvertTip {
233
+ meassage: string;
234
+ version: string;
235
+ data?: string;
236
+ }
237
+ declare const DanUniConvertTipTemplate: DanUniConvertTip;
238
+ //#endregion
239
+ //#region src/core/uni-id.d.ts
240
+ declare const UniIDStrSchema: z.ZodTemplateLiteral<`${string}@${string}`>;
241
+ type UniIDStr = z.infer<typeof UniIDStrSchema>;
242
+ declare class UniID {
243
+ /**
244
+ * @description 每个domain下应为唯一值
245
+ * @example danuni: 推荐为UUID/ULID/NanoID
246
+ * bili: midHash hash算法为CRC32
247
+ */
248
+ id: string;
249
+ /**
250
+ * @description 弹幕首次出现的平台域名(注意可以为如localhost等根域名)
251
+ * ### 预设
252
+ * - `{any}.danuni` (若使用IP或无域名,请使用该domain,防止隐私泄露/无法解析)
253
+ * #### 注意
254
+ * - `any`值建议为UUID/ULID/NanoID以防同步错误
255
+ * ### 非DanUni弹幕服务建议使用预设,或自行填写域名
256
+ */
257
+ domain: PlatformSource | string;
258
+ constructor(
259
+ /**
260
+ * @description 每个domain下应为唯一值
261
+ * @example danuni: 推荐为UUID/ULID/NanoID
262
+ * bili: midHash hash算法为CRC32
263
+ */
264
+
265
+ id: string,
266
+ /**
267
+ * @description 弹幕首次出现的平台域名(注意可以为如localhost等根域名)
268
+ * ### 预设
269
+ * - `{any}.danuni` (若使用IP或无域名,请使用该domain,防止隐私泄露/无法解析)
270
+ * #### 注意
271
+ * - `any`值建议为UUID/ULID/NanoID以防同步错误
272
+ * ### 非DanUni弹幕服务建议使用预设,或自行填写域名
273
+ */
274
+
275
+ domain: PlatformSource | string);
276
+ static validateString(str: string): boolean;
277
+ static fromStringSafe(str: string): UniID;
278
+ static fromString(str: UniIDStr): UniID;
279
+ toString(): UniIDStr;
280
+ static fromNull(domain?: PlatformSource | string): UniID;
281
+ static fromBili({
282
+ cid,
283
+ mid,
284
+ midHash
285
+ }: {
286
+ cid?: number | bigint | string;
287
+ mid?: number | bigint;
288
+ midHash?: string;
289
+ }): UniID;
290
+ static fromUnknown(id: string,
291
+ /**
292
+ * 可使用预设
293
+ */
294
+
295
+ domain: PlatformSource | string): UniID;
296
+ }
297
+ declare namespace index_d_exports$1 {
298
+ export { AdapterStore, ChunksInsert, DMAttr, DMIDGenerator, DanUniConvertTip, DanUniConvertTipTemplate, DanmakusInsert, Extra, ExtraArtplayer, ExtraBili, ExtraBiliUp, ExtraDanUni, ExtraDanUniColor, ExtraDanUniMerge, ExtraDanUniRaw, ExtraDdPlay, ExtraTencent, InitedUniDB, Modes, PlatformDanmakuOnlySource, PlatformDanmakuOnlySources, PlatformDanmakuSource, PlatformDanmakuSources, PlatformInfoSource, PlatformInfoSources, PlatformSource, PlatformSources, PlatformVideoSource, PlatformVideoSources, Pools, UChunk, UChunk2Danmaku, UDanmaku, UniChunk, UniDB, UniDMObj, UniID, baseClassTrans, createDMID, defaultUniDM };
299
+ }
300
+ type AdapterStore = (udb: InitedUniDB, uchunk?: UniChunk) => Promisable<UniChunk>;
301
+ interface UChunk {
302
+ fromConverted: boolean;
303
+ id: number;
304
+ tmp: boolean;
305
+ }
306
+ interface UDanmaku {
307
+ DMID: string;
308
+ SOID: string;
309
+ attr: ("Compatible" | "FromLive" | "HasEvent" | "Hide" | "HighLike" | "Protect" | "Reported" | "Unchecked")[];
310
+ color: number;
311
+ content: string;
312
+ ctime: Date;
313
+ extra: Extra | null;
314
+ fontsize: number;
315
+ mode: "Bottom" | "Ext" | "Normal" | "Reverse" | "Top";
316
+ platform: string | null;
317
+ pool: "Adv" | "Def" | "Ix" | "Sub";
318
+ progress: number;
319
+ senderID: string;
320
+ weight: number;
321
+ }
322
+ interface UChunk2Danmaku {
323
+ DMID: string;
324
+ chunkID: number;
325
+ id: bigint;
326
+ }
327
+ interface ChunksInsert {
328
+ id?: number | undefined;
329
+ fromConverted?: boolean | undefined;
330
+ tmp?: boolean | undefined;
331
+ }
332
+ interface DanmakusInsert {
333
+ SOID: string;
334
+ DMID: string;
335
+ progress: number;
336
+ mode: "Bottom" | "Ext" | "Normal" | "Reverse" | "Top";
337
+ fontsize: number;
338
+ color: number;
339
+ senderID: string;
340
+ content: string;
341
+ ctime: Date;
342
+ weight: number;
343
+ pool: "Adv" | "Def" | "Ix" | "Sub";
344
+ attr: ("Compatible" | "FromLive" | "HasEvent" | "Hide" | "HighLike" | "Protect" | "Reported" | "Unchecked")[];
345
+ platform?: string | null | undefined;
346
+ extra: Extra | null;
347
+ }
348
+ type baseClassTrans<T, ImplUniDB, ImplInitedUniDB, ImplUniChunk> = baseUniChunkTransX<baseInitedUniDBTransX<baseUniDBTransX<T, ImplUniDB>, ImplInitedUniDB>, ImplUniChunk>;
349
+ type baseUniDBTrans<T, ImplClass> = T extends UniDB ? ImplClass : T;
350
+ type baseUniDBTransPromise<T, ImplClass> = T extends Promise<UniDB> ? Promise<ImplClass> : T;
351
+ type baseUniDBTransX<T, ImplClass> = baseUniDBTransPromise<baseUniDBTrans<T, ImplClass>, ImplClass>;
352
+ declare abstract class UniDB {
353
+ $db: any;
354
+ DMIDGenerator: DMIDGenerator;
355
+ __isUniDB: boolean;
356
+ static [Symbol.hasInstance](obj: any): boolean;
357
+ constructor($db: any, DMIDGenerator?: DMIDGenerator);
358
+ abstract init(dump?: unknown): Promisable<InitedUniDB>;
359
+ abstract close(): Promisable<void>;
360
+ }
361
+ type baseInitedUniDBTrans<T, ImplClass> = T extends InitedUniDB ? ImplClass : T;
362
+ type baseInitedUniDBTransPromise<T, ImplClass> = T extends Promise<InitedUniDB> ? Promise<ImplClass> : T;
363
+ type baseInitedUniDBTransX<T, ImplClass> = baseInitedUniDBTransPromise<baseInitedUniDBTrans<T, ImplClass>, ImplClass>;
364
+ declare abstract class InitedUniDB extends UniDB {
365
+ $db: NonNullable<UniDB["$db"]>;
366
+ DMIDGenerator: DMIDGenerator;
367
+ __isInitedUniDB: boolean;
368
+ static [Symbol.hasInstance](obj: any): boolean;
369
+ constructor($db: NonNullable<UniDB["$db"]>, DMIDGenerator?: DMIDGenerator);
370
+ abstract dump(): Promisable<any>;
371
+ abstract get $chunks(): Promisable<UChunk[]>;
372
+ abstract get $danmakus(): Promisable<UDanmaku[]>;
373
+ abstract listChunks(): Promisable<UniChunk[]>;
374
+ abstract makeChunk(data: Omit<ChunksInsert, "id">): Promisable<UniChunk>;
375
+ abstract upsertDanmakus(data: DanmakusInsert[] | Map<string, DanmakusInsert>, dedupeDMID: boolean): Promisable<void>;
376
+ /**
377
+ * 清理临时chunks
378
+ */
379
+ abstract shrink(): Promisable<void>;
380
+ abstract import(adapterStore: AdapterStore): Promisable<UniChunk>;
381
+ abstract export<T extends Transformer | Asyncify<Transformer>>(transformer: T): Promisable<ReturnType<T>>;
382
+ }
383
+ type baseUniChunkTrans<T, ImplClass> = T extends UniChunk ? ImplClass : T;
384
+ type baseUniChunkTransPromise<T, ImplClass> = T extends Promise<UniChunk> ? Promise<ImplClass> : T;
385
+ type baseUniChunkTransX<T, ImplClass> = baseUniChunkTransPromise<baseUniChunkTrans<T, ImplClass>, ImplClass>;
386
+ declare abstract class UniChunk {
387
+ $UniDB: InitedUniDB;
388
+ id: number;
389
+ __isUniChunk: boolean;
390
+ static [Symbol.hasInstance](obj: any): boolean;
391
+ constructor($UniDB: InitedUniDB, id: number);
392
+ abstract get $db(): UniDB["$db"];
393
+ static makeChunk(u: TransformerInput<InitedUniDB | UniChunk>, data: ChunksInsert): Promisable<UniChunk>;
394
+ static assign(_base: UniChunk, _chunks: UniChunk[]): Promisable<UniChunk>;
395
+ /**
396
+ * 比较两个chunk的弹幕是否相同
397
+ * @description 可用于跨DB比较
398
+ * @deprecated 建议调用相应环境的实现
399
+ */
400
+ static compare(u1: UniChunk, u2: UniChunk): Promise<boolean>;
401
+ /**
402
+ * 获取当前chunk的数据库记录
403
+ * @description 虽然数组仅会包含一个值,但这里保持数据库原始返回
404
+ */
405
+ abstract get $chunks(): Promisable<UChunk[]>;
406
+ abstract $chunk(): Promisable<UChunk>;
407
+ abstract get $danmakus(): Promisable<UDanmaku[]>;
408
+ abstract get $count(): Promisable<number>;
409
+ abstract get isDeleted(): Promisable<boolean>;
410
+ abstract upsertDanmakus(data: (DanmakusInsert & {
411
+ DMID?: string;
412
+ platform: string | null;
413
+ })[] | Map<string, DanmakusInsert & {
414
+ platform: string | null;
415
+ }>, autoSetDMID?: boolean, dedupeDMID?: boolean): Promisable<void>;
416
+ abstract import(adapterStore: AdapterStore): Promisable<UniChunk>;
417
+ abstract export<T extends Transformer | Asyncify<Transformer>>(transformer: T): Promise<ReturnType<T>>;
418
+ abstract plugin<T extends Plugin | Asyncify<Plugin>>(plugin: T): Promisable<ReturnType<T>>;
419
+ abstract delete(): Promisable<void>;
420
+ }
421
+ //#endregion
422
+ //#region src/adapters/danuni/json.d.ts
423
+ declare const enumModeCodec: z.ZodCodec<z.ZodDefault<z.ZodEnum<typeof Modes>>, z.ZodEnum<{
424
+ Bottom: "Bottom";
425
+ Ext: "Ext";
426
+ Normal: "Normal";
427
+ Reverse: "Reverse";
428
+ Top: "Top";
429
+ }>>;
430
+ declare const enumPoolCodec: z.ZodCodec<z.ZodDefault<z.ZodEnum<typeof Pools>>, z.ZodEnum<{
431
+ Adv: "Adv";
432
+ Def: "Def";
433
+ Ix: "Ix";
434
+ Sub: "Sub";
435
+ }>>;
436
+ declare const enumAttrsCodec: z.ZodCodec<z.ZodArray<z.ZodEnum<typeof DMAttr>>, z.ZodArray<z.ZodEnum<{
437
+ Compatible: "Compatible";
438
+ FromLive: "FromLive";
439
+ HasEvent: "HasEvent";
440
+ Hide: "Hide";
441
+ HighLike: "HighLike";
442
+ Protect: "Protect";
443
+ Reported: "Reported";
444
+ Unchecked: "Unchecked";
445
+ }>>>;
446
+ declare const DanuniJsonAdapter: (json: Partial<UniDMObj & {
447
+ extraStr?: string;
448
+ }>[], options?: {
449
+ isV1?: boolean;
450
+ }) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
451
+ interface DanuniJsonTransformerOptions {
452
+ /**
453
+ * 是否启用minify模式,启用后会将输出中与默认值相同的字段转为undefined(DMID除外),以减小输出体积
454
+ */
455
+ minify?: boolean;
456
+ }
457
+ declare function DanuniJsonTransformerConfigurator(options: DanuniJsonTransformerOptions & {
458
+ minify: true;
459
+ }): Transformer<Partial<UniDMObj>[]>;
460
+ declare function DanuniJsonTransformerConfigurator(options?: DanuniJsonTransformerOptions): Transformer<UniDMObj[]>;
461
+ declare const DanuniJsonMetadata: Metadata;
462
+ //#endregion
463
+ //#region src/adapters/danuni/pb.d.ts
464
+ declare const DanuniPbAdapter: (bin: Uint8Array | ArrayBuffer) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
465
+ declare const DanuniPbTransformer: (udanmakus: UDanmaku[]) => Uint8Array<ArrayBuffer>;
466
+ declare const DanuniPbMetadata: Metadata;
467
+ //#endregion
468
+ //#region src/adapters/bili/command-grpc.d.ts
469
+ declare const BiliCommandGrpcAdapter: (bin: Uint8Array | ArrayBuffer) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
470
+ declare const BiliCommandGrpcMetadata: Metadata;
471
+ //#endregion
472
+ //#region src/adapters/bili/grpc.d.ts
473
+ interface DMBili {
474
+ id: bigint;
475
+ progress: number;
476
+ mode: number;
477
+ fontsize: number;
478
+ color: number;
479
+ mid?: bigint;
480
+ midHash: string;
481
+ /**
482
+ * 特殊类型解析:
483
+ * - [ohh] : /oh{2,}/gi
484
+ * - [前方高能]
485
+ * - [...] (JS数组) : 高级弹幕
486
+ */
487
+ content: string;
488
+ ctime: bigint;
489
+ pool: number;
490
+ weight?: number;
491
+ action?: string;
492
+ idStr?: string;
493
+ attr?: number;
494
+ animation?: string;
495
+ extra?: string;
496
+ colorful?: number;
497
+ type?: number;
498
+ oid?: bigint;
499
+ }
500
+ declare function BiliCommonParser(chunk: UniChunk, args: DMBili, cid?: bigint, recSOID?: string): {
501
+ id: bigint;
502
+ progress: number;
503
+ fontsize: number;
504
+ color: number;
505
+ mid?: bigint;
506
+ midHash: string;
507
+ /**
508
+ * 特殊类型解析:
509
+ * - [ohh] : /oh{2,}/gi
510
+ * - [前方高能]
511
+ * - [...] (JS数组) : 高级弹幕
512
+ */
513
+ content: string;
514
+ action?: string;
515
+ idStr?: string;
516
+ animation?: string;
517
+ colorful?: number;
518
+ type?: number;
519
+ oid?: bigint;
520
+ SOID: string;
521
+ senderID: string;
522
+ ctime: Date;
523
+ weight: number;
524
+ attr: DMAttr[];
525
+ platform: PlatformVideoSource;
526
+ extra: Extra;
527
+ mode: "Bottom" | "Ext" | "Normal" | "Reverse" | "Top";
528
+ pool: "Adv" | "Def" | "Ix" | "Sub";
529
+ DMID: string;
530
+ };
531
+ interface BiliCommonBuilderOptions {
532
+ skipBiliCommand?: boolean;
533
+ /**
534
+ * 见 ../index.ts UniPool.toBiliXML() 的 options,该option不宜手动调用,判断逻辑未封装
535
+ */
536
+ avoidSenderIDWithAt?: boolean;
537
+ }
538
+ declare const BiliCommonModeRec: (mode: z.infer<typeof enumModeCodec.out>, extra?: ExtraBili) => 1 | 4 | 5 | 6 | 7 | 8 | 9;
539
+ declare function BiliCommonBuilder(DMIDGenerator: DMIDGenerator, that: UDanmaku, options?: BiliCommonBuilderOptions): {
540
+ "#text": string;
541
+ "@_p": string;
542
+ } | null;
543
+ declare const BiliGrpcAdapter: (bin: Uint8Array | ArrayBuffer) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
544
+ declare const BiliGrpcMetadata: Metadata;
545
+ //#endregion
546
+ //#region src/adapters/bili/up.d.ts
547
+ interface DM_JSON_BiliUp {
548
+ /** 接口状态码,0 表示成功 */
549
+ code: number;
550
+ /** 文本形式的状态码,约定为字符串 "0" */
551
+ message: string;
552
+ /** TTL(time to live) 标识,本接口常量为 1 */
553
+ ttl: number;
554
+ data: {
555
+ /** 分页元信息 */page: {
556
+ /** 当前页序号,从 1 开始 */num: number; /** 每页返回的弹幕条数 */
557
+ size: number; /** 总页数 */
558
+ total: number;
559
+ };
560
+ result: {
561
+ /** 弹幕 ID,int64 */id: bigint; /** 弹幕 ID 字符串形式 */
562
+ id_str: string; /** 弹幕类型:1 表示视频弹幕(当前接口恒为 1) */
563
+ type: number;
564
+ aid: bigint;
565
+ bvid: string;
566
+ oid: bigint;
567
+ mid: bigint; /** 发送者 mid 的 CRC 哈希(正常接口里用的是这个,保护隐私) */
568
+ mid_hash: string; /** 弹幕池 */
569
+ pool: number; /** 属性位字符串,逗号分隔的数字列表,对应 attr 二进制位 */
570
+ attrs: string; /** 弹幕出现时间,单位毫秒(注意,此处与protobuf接口保持一致,但xml中progress是秒) */
571
+ progress: number;
572
+ mode: number; /** 弹幕内容, content */
573
+ msg: string;
574
+ state: number;
575
+ fontsize: number; /** 弹幕颜色,需将16进制转化为普通弹幕的10进制,示例:"ffffff" */
576
+ color: string; /** 发送时间戳,单位秒 */
577
+ ctime: number; /** 发送者昵称 */
578
+ uname: string; /** 发送者头像链接 */
579
+ uface: string; /** 视频主标题 */
580
+ title: string;
581
+ self_seen: boolean; /** 弹幕点赞数 */
582
+ like_count: number;
583
+ user_like: number; /** 分 P 标题 */
584
+ p_title: string; /** 视频封面链接 */
585
+ cover: string;
586
+ is_charge: boolean;
587
+ is_charge_plus: boolean;
588
+ following: boolean;
589
+ extra_cps: null;
590
+ }[];
591
+ };
592
+ }
593
+ declare const BiliUpAdapter: (json: DM_JSON_BiliUp) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
594
+ declare const BiliUpMetadata: Metadata;
595
+ //#endregion
596
+ //#region src/adapters/bili/xml.d.ts
597
+ declare const BiliXmlAdapter: (xml: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
598
+ interface BiliXmlTransformerOptions {
599
+ /**
600
+ * 当SOID非来源bili时,若此处指定则使用该值为cid,否则使用SOID
601
+ */
602
+ cid?: bigint;
603
+ /**
604
+ * 跳过command类型的特殊弹幕
605
+ */
606
+ skipBiliCommand?: boolean;
607
+ /**
608
+ * 当仅含有来自bili的弹幕时,启用将保持发送者标识不含`@`
609
+ * @description
610
+ * bili的弹幕含midHash(crc),不启用该处使用senderID填充,启用则去除`@bili`部分,提高兼容性
611
+ */
612
+ avoidSenderIDWithAt?: boolean;
613
+ }
614
+ declare const BiliXmlTransformerConfigurator: (options?: BiliXmlTransformerOptions) => (udanmakus: UDanmaku[], ctx: {
615
+ uchunk?: UChunk;
616
+ DMIDGenerator: DMIDGenerator;
617
+ }) => string;
618
+ declare const BiliXmlMetadata: Metadata;
619
+ //#endregion
620
+ //#region src/adapters/artplayer.d.ts
621
+ interface DM_JSON_Artplayer {
622
+ danmuku: {
623
+ text: string;
624
+ time?: number;
625
+ mode?: number;
626
+ color?: string;
627
+ border?: boolean;
628
+ style?: {};
629
+ }[];
630
+ }
631
+ declare const ArtplayerAdapter: (json: DM_JSON_Artplayer & {
632
+ danuni?: DanUniConvertTip;
633
+ }, playerID?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
634
+ declare const ArtplayerTransformer: (udanmakus: UDanmaku[]) => DM_JSON_Artplayer & {
635
+ danuni?: DanUniConvertTip;
636
+ };
637
+ declare const ArtplayerMetadata: Metadata;
638
+ //#endregion
639
+ //#region src/adapters/ddplay.d.ts
640
+ interface DM_JSON_DDPlay {
641
+ count: number | string;
642
+ comments: {
643
+ cid: number;
644
+ p: string;
645
+ m: string;
646
+ }[];
647
+ }
648
+ declare const DdplayAdapter: (json: DM_JSON_DDPlay & {
649
+ danuni?: DanUniConvertTip;
650
+ }, episodeId?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
651
+ declare const DdplayTransformer: (udanmakus: UDanmaku[]) => DM_JSON_DDPlay & {
652
+ danuni?: DanUniConvertTip;
653
+ };
654
+ declare const DdplayMetadata: Metadata;
655
+ //#endregion
656
+ //#region src/adapters/dplayer.d.ts
657
+ interface DM_JSON_Dplayer {
658
+ code: number;
659
+ /**
660
+ * progress,mode,color,midHash,content
661
+ */
662
+ data: [number, number, number, string, string][];
663
+ }
664
+ declare const DplayerAdapter: (json: DM_JSON_Dplayer & {
665
+ danuni?: DanUniConvertTip;
666
+ }, playerID?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
667
+ declare const DplayerTransformer: (udanmakus: UDanmaku[]) => DM_JSON_Dplayer & {
668
+ danuni?: DanUniConvertTip;
669
+ };
670
+ declare const DplayerMetadata: Metadata;
671
+ //#endregion
672
+ //#region src/adapters/tencent.d.ts
673
+ interface TencentBarrage {
674
+ id: string;
675
+ is_op?: number;
676
+ head_url?: string;
677
+ time_offset: string;
678
+ up_count?: string;
679
+ bubble_head?: string;
680
+ bubble_level?: string;
681
+ bubble_id?: string;
682
+ rick_type?: number;
683
+ content_style: string;
684
+ user_vip_degree?: number;
685
+ create_time?: string;
686
+ content: string;
687
+ hot_type?: number;
688
+ gift_info?: null;
689
+ share_item?: null;
690
+ vuid?: string;
691
+ nick?: string;
692
+ data_key?: string;
693
+ content_score: number;
694
+ show_weight?: number;
695
+ track_type?: number;
696
+ show_like_type?: number;
697
+ report_like_score?: number;
698
+ relate_sku_info?: unknown[];
699
+ }
700
+ interface DM_JSON_Tencent {
701
+ barrage_list: TencentBarrage[];
702
+ }
703
+ declare const TencentAdapter: (json: DM_JSON_Tencent, vid?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
704
+ declare const TencentMetadata: Metadata;
705
+ //#endregion
706
+ //#region src/adapters/vod.d.ts
707
+ interface DM_JSON_Vod {
708
+ code: number;
709
+ name: string;
710
+ danum: number;
711
+ danmuku: [number, string, string, string, string, string?, string?, string?, ...any][];
712
+ }
713
+ declare const VodZod: z.ZodObject<{
714
+ code: z.ZodNumber;
715
+ name: z.ZodString;
716
+ danum: z.ZodNumber;
717
+ 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.ZodOptional<z.ZodPrefault<z.ZodString>>, z.ZodOptional<z.ZodPrefault<z.ZodString>>, z.ZodOptional<z.ZodString>], z.ZodAny>>;
718
+ }, z.core.$strip>;
719
+ declare const VodAdapter: (json: DM_JSON_Vod, videoId?: string, domain?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
720
+ declare const VodTransformer: (udanmakus: UDanmaku[]) => DM_JSON_Vod & {
721
+ danuni?: DanUniConvertTip;
722
+ };
723
+ declare const VodMetadata: Metadata;
724
+ declare namespace index_d_exports {
725
+ 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, VodAdapter, VodMetadata, VodTransformer, VodZod, defineAdapter, defineMetadata, definePlugin, defineTransformer, enumAttrsCodec, enumModeCodec, enumPoolCodec };
726
+ }
727
+ type TransformerInput<T = InitedUniDB | UniChunk> = T;
728
+ type Adapter<Args extends any[] = any[]> = (...args: Args) => Promisable<AdapterStore>;
729
+ type Transformer<T = unknown> = (udanmakus: UDanmaku[], ctx: {
730
+ uchunk?: UChunk;
731
+ DMIDGenerator: DMIDGenerator;
732
+ }) => T;
733
+ type Plugin<T = unknown> = (uchunk: UniChunk) => Promisable<T>;
734
+ type Metadata = {
735
+ type: string;
736
+ ext: string[];
737
+ check?: {
738
+ fn?: (fn: string) => boolean;
739
+ body?: (body: unknown) => Promisable<null | Adapter>;
740
+ adapter?: (uchunk: UniChunk, body: unknown) => Promisable<null | Adapter | UniChunk>;
741
+ };
742
+ };
743
+ declare function defineAdapter<T extends Adapter>(adapter: T): T;
744
+ declare function defineTransformer<T extends Transformer>(transformer: T): T;
745
+ declare function definePlugin<T extends Plugin>(plugin: T): T;
746
+ declare function defineMetadata(metadata: Metadata): Metadata;
747
+ //#endregion
748
+ export { UDanmaku as $, BiliUpMetadata as A, DanuniPbTransformer as B, ArtplayerAdapter as C, createDMID as Ct, BiliXmlMetadata as D, BiliXmlAdapter as E, __exportAll as Et, BiliGrpcMetadata as F, enumModeCodec as G, DanuniJsonMetadata as H, BiliCommandGrpcAdapter as I, ChunksInsert as J, enumPoolCodec as K, BiliCommandGrpcMetadata as L, BiliCommonModeRec as M, BiliCommonParser as N, BiliXmlTransformerConfigurator as O, BiliGrpcAdapter as P, UChunk2Danmaku as Q, DanuniPbAdapter as R, DdplayTransformer as S, DMIDGenerator as St, ArtplayerTransformer as T, Promisable as Tt, DanuniJsonTransformerConfigurator as U, DanuniJsonAdapter as V, enumAttrsCodec as W, InitedUniDB as X, DanmakusInsert as Y, UChunk as Z, DplayerAdapter as _, PlatformInfoSources as _t, TransformerInput as a, DMAttr as at, DdplayAdapter as b, PlatformVideoSource as bt, definePlugin as c, Modes as ct, VodAdapter as d, defaultUniDM as dt, UniChunk as et, VodMetadata as f, PlatformDanmakuOnlySource as ft, TencentMetadata as g, PlatformInfoSource as gt, TencentAdapter as h, PlatformDanmakuSources as ht, Transformer as i, UniID as it, BiliCommonBuilder as j, BiliUpAdapter as k, defineTransformer as l, Pools as lt, VodZod as m, PlatformDanmakuSource as mt, Metadata as n, baseClassTrans as nt, defineAdapter as o, DanUniConvertTip as ot, VodTransformer as p, PlatformDanmakuOnlySources as pt, AdapterStore as q, Plugin as r, index_d_exports$1 as rt, defineMetadata as s, DanUniConvertTipTemplate as st, Adapter as t, UniDB as tt, index_d_exports as u, UniDMObj as ut, DplayerMetadata as v, PlatformSource as vt, ArtplayerMetadata as w, Asyncify as wt, DdplayMetadata as x, PlatformVideoSources as xt, DplayerTransformer as y, PlatformSources as yt, DanuniPbMetadata as z };
749
+ //# sourceMappingURL=index-BM23CK6w.d.cts.map