@dan-uni/dan-any 1.4.8 → 2.0.0

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 (200) hide show
  1. package/README.md +87 -43
  2. package/dist/adapters.d.mts +2 -0
  3. package/dist/adapters.mjs +1 -0
  4. package/dist/chunk-0Lt9GpW0.mjs +1 -0
  5. package/dist/core/db/schema.d.mts +2 -0
  6. package/dist/core/db/schema.mjs +2 -0
  7. package/dist/core/db/schema.mjs.map +1 -0
  8. package/dist/core/db/utils.d.mts +1707 -0
  9. package/dist/core/db/utils.d.mts.map +1 -0
  10. package/dist/core/db/utils.mjs +1 -0
  11. package/dist/core-D7LMAB5h.mjs +2 -0
  12. package/dist/core-D7LMAB5h.mjs.map +1 -0
  13. package/dist/core.d.mts +2 -0
  14. package/dist/core.mjs +1 -0
  15. package/dist/db-DWWzkRBb.mjs +41 -0
  16. package/dist/db-DWWzkRBb.mjs.map +1 -0
  17. package/dist/dm-extra-DrAQCrFv.d.mts +135 -0
  18. package/dist/dm-extra-DrAQCrFv.d.mts.map +1 -0
  19. package/dist/dm-tkTdR_W6.mjs +2 -0
  20. package/dist/dm-tkTdR_W6.mjs.map +1 -0
  21. package/dist/index-vAs4qV9A.d.mts +6195 -0
  22. package/dist/index-vAs4qV9A.d.mts.map +1 -0
  23. package/dist/index.d.mts +4 -0
  24. package/dist/index.mjs +1 -0
  25. package/dist/isSame-D4G9eoE4.mjs +2 -0
  26. package/dist/isSame-D4G9eoE4.mjs.map +1 -0
  27. package/dist/plugins.d.mts +105 -0
  28. package/dist/plugins.d.mts.map +1 -0
  29. package/dist/plugins.mjs +2 -0
  30. package/dist/plugins.mjs.map +1 -0
  31. package/dist/schema-BuenbDx9.d.mts +1619 -0
  32. package/dist/schema-BuenbDx9.d.mts.map +1 -0
  33. package/dist/utils.d.mts +25 -0
  34. package/dist/utils.d.mts.map +1 -0
  35. package/dist/utils.mjs +2 -0
  36. package/dist/utils.mjs.map +1 -0
  37. package/package.json +65 -37
  38. package/.babelrc.json +0 -12
  39. package/buf.gen.yaml +0 -10
  40. package/buf.yaml +0 -12
  41. package/dist/browser/1~rslib-runtime.min.js +0 -49
  42. package/dist/browser/index.min.js +0 -13523
  43. package/dist/browser/index.min.js.LICENSE.txt +0 -17
  44. package/dist/browser/plugins/bili.min.js +0 -1
  45. package/dist/browser/plugins/index.min.js +0 -2
  46. package/dist/browser/plugins/stats.min.js +0 -10
  47. package/dist/browser/src/ass-gen/__tests__/canvas.test.d.ts +0 -1
  48. package/dist/browser/src/ass-gen/__tests__/generate.test.d.ts +0 -1
  49. package/dist/browser/src/ass-gen/ass/create.d.ts +0 -4
  50. package/dist/browser/src/ass-gen/ass/dialogue.d.ts +0 -16
  51. package/dist/browser/src/ass-gen/ass/event.d.ts +0 -2
  52. package/dist/browser/src/ass-gen/ass/info.d.ts +0 -8
  53. package/dist/browser/src/ass-gen/ass/raw.d.ts +0 -14
  54. package/dist/browser/src/ass-gen/ass/style.d.ts +0 -2
  55. package/dist/browser/src/ass-gen/config.d.ts +0 -2
  56. package/dist/browser/src/ass-gen/index.d.ts +0 -30
  57. package/dist/browser/src/ass-gen/types.d.ts +0 -71
  58. package/dist/browser/src/ass-gen/util/color.d.ts +0 -18
  59. package/dist/browser/src/ass-gen/util/danconvert.d.ts +0 -5
  60. package/dist/browser/src/ass-gen/util/index.d.ts +0 -4
  61. package/dist/browser/src/ass-gen/util/lang.d.ts +0 -3
  62. package/dist/browser/src/ass-gen/util/layout.d.ts +0 -4
  63. package/dist/browser/src/index.d.ts +0 -283
  64. package/dist/browser/src/index.test.d.ts +0 -1
  65. package/dist/browser/src/plugins/bili/dedupe.d.ts +0 -3
  66. package/dist/browser/src/plugins/bili/history-danmaku-fast-forward.d.ts +0 -18
  67. package/dist/browser/src/plugins/bili/index.d.ts +0 -2
  68. package/dist/browser/src/plugins/bili/index.test.d.ts +0 -1
  69. package/dist/browser/src/plugins/index.d.ts +0 -2
  70. package/dist/browser/src/plugins/stats/getLatestDan.d.ts +0 -6
  71. package/dist/browser/src/plugins/stats/index.d.ts +0 -1
  72. package/dist/browser/src/plugins/stats/index.test.d.ts +0 -1
  73. package/dist/browser/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.d.ts +0 -3426
  74. package/dist/browser/src/proto/gen/danuni/danmaku/v1/danmaku_pb.d.ts +0 -176
  75. package/dist/browser/src/utils/dm-gen.d.ts +0 -309
  76. package/dist/browser/src/utils/dm-gen.test.d.ts +0 -1
  77. package/dist/browser/src/utils/fileParser.d.ts +0 -3
  78. package/dist/browser/src/utils/id-gen.d.ts +0 -50
  79. package/dist/browser/src/utils/platform.d.ts +0 -24
  80. package/dist/node/0~rslib-runtime.js +0 -23
  81. package/dist/node/index.js +0 -2099
  82. package/dist/node/plugins/bili.js +0 -1
  83. package/dist/node/plugins/index.js +0 -2
  84. package/dist/node/plugins/stats.js +0 -10
  85. package/dist/node/src/ass-gen/__tests__/canvas.test.d.ts +0 -1
  86. package/dist/node/src/ass-gen/__tests__/generate.test.d.ts +0 -1
  87. package/dist/node/src/ass-gen/ass/create.d.ts +0 -4
  88. package/dist/node/src/ass-gen/ass/dialogue.d.ts +0 -16
  89. package/dist/node/src/ass-gen/ass/event.d.ts +0 -2
  90. package/dist/node/src/ass-gen/ass/info.d.ts +0 -8
  91. package/dist/node/src/ass-gen/ass/raw.d.ts +0 -14
  92. package/dist/node/src/ass-gen/ass/style.d.ts +0 -2
  93. package/dist/node/src/ass-gen/config.d.ts +0 -2
  94. package/dist/node/src/ass-gen/index.d.ts +0 -30
  95. package/dist/node/src/ass-gen/types.d.ts +0 -71
  96. package/dist/node/src/ass-gen/util/color.d.ts +0 -18
  97. package/dist/node/src/ass-gen/util/danconvert.d.ts +0 -5
  98. package/dist/node/src/ass-gen/util/index.d.ts +0 -4
  99. package/dist/node/src/ass-gen/util/lang.d.ts +0 -3
  100. package/dist/node/src/ass-gen/util/layout.d.ts +0 -4
  101. package/dist/node/src/index.d.ts +0 -283
  102. package/dist/node/src/index.test.d.ts +0 -1
  103. package/dist/node/src/plugins/bili/dedupe.d.ts +0 -3
  104. package/dist/node/src/plugins/bili/history-danmaku-fast-forward.d.ts +0 -18
  105. package/dist/node/src/plugins/bili/index.d.ts +0 -2
  106. package/dist/node/src/plugins/bili/index.test.d.ts +0 -1
  107. package/dist/node/src/plugins/index.d.ts +0 -2
  108. package/dist/node/src/plugins/stats/getLatestDan.d.ts +0 -6
  109. package/dist/node/src/plugins/stats/index.d.ts +0 -1
  110. package/dist/node/src/plugins/stats/index.test.d.ts +0 -1
  111. package/dist/node/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.d.ts +0 -3426
  112. package/dist/node/src/proto/gen/danuni/danmaku/v1/danmaku_pb.d.ts +0 -176
  113. package/dist/node/src/utils/dm-gen.d.ts +0 -309
  114. package/dist/node/src/utils/dm-gen.test.d.ts +0 -1
  115. package/dist/node/src/utils/fileParser.d.ts +0 -3
  116. package/dist/node/src/utils/id-gen.d.ts +0 -50
  117. package/dist/node/src/utils/platform.d.ts +0 -24
  118. package/dist/umd/index.umd.min.js +0 -32093
  119. package/dist/umd/index.umd.min.js.LICENSE.txt +0 -34
  120. package/dist/umd/plugins/bili.umd.min.js +0 -32004
  121. package/dist/umd/plugins/bili.umd.min.js.LICENSE.txt +0 -34
  122. package/dist/umd/plugins/index.umd.min.js +0 -32020
  123. package/dist/umd/plugins/index.umd.min.js.LICENSE.txt +0 -34
  124. package/dist/umd/plugins/stats.umd.min.js +0 -39
  125. package/dist/umd/src/ass-gen/__tests__/canvas.test.d.ts +0 -1
  126. package/dist/umd/src/ass-gen/__tests__/generate.test.d.ts +0 -1
  127. package/dist/umd/src/ass-gen/ass/create.d.ts +0 -4
  128. package/dist/umd/src/ass-gen/ass/dialogue.d.ts +0 -16
  129. package/dist/umd/src/ass-gen/ass/event.d.ts +0 -2
  130. package/dist/umd/src/ass-gen/ass/info.d.ts +0 -8
  131. package/dist/umd/src/ass-gen/ass/raw.d.ts +0 -14
  132. package/dist/umd/src/ass-gen/ass/style.d.ts +0 -2
  133. package/dist/umd/src/ass-gen/config.d.ts +0 -2
  134. package/dist/umd/src/ass-gen/index.d.ts +0 -30
  135. package/dist/umd/src/ass-gen/types.d.ts +0 -71
  136. package/dist/umd/src/ass-gen/util/color.d.ts +0 -18
  137. package/dist/umd/src/ass-gen/util/danconvert.d.ts +0 -5
  138. package/dist/umd/src/ass-gen/util/index.d.ts +0 -4
  139. package/dist/umd/src/ass-gen/util/lang.d.ts +0 -3
  140. package/dist/umd/src/ass-gen/util/layout.d.ts +0 -4
  141. package/dist/umd/src/index.d.ts +0 -283
  142. package/dist/umd/src/index.test.d.ts +0 -1
  143. package/dist/umd/src/plugins/bili/dedupe.d.ts +0 -3
  144. package/dist/umd/src/plugins/bili/history-danmaku-fast-forward.d.ts +0 -18
  145. package/dist/umd/src/plugins/bili/index.d.ts +0 -2
  146. package/dist/umd/src/plugins/bili/index.test.d.ts +0 -1
  147. package/dist/umd/src/plugins/index.d.ts +0 -2
  148. package/dist/umd/src/plugins/stats/getLatestDan.d.ts +0 -6
  149. package/dist/umd/src/plugins/stats/index.d.ts +0 -1
  150. package/dist/umd/src/plugins/stats/index.test.d.ts +0 -1
  151. package/dist/umd/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.d.ts +0 -3426
  152. package/dist/umd/src/proto/gen/danuni/danmaku/v1/danmaku_pb.d.ts +0 -176
  153. package/dist/umd/src/utils/dm-gen.d.ts +0 -309
  154. package/dist/umd/src/utils/dm-gen.test.d.ts +0 -1
  155. package/dist/umd/src/utils/fileParser.d.ts +0 -3
  156. package/dist/umd/src/utils/id-gen.d.ts +0 -50
  157. package/dist/umd/src/utils/platform.d.ts +0 -24
  158. package/plugins/package.json +0 -6
  159. package/rslib.config.ts +0 -101
  160. package/src/ass-gen/__tests__/898651903.xml +0 -1619
  161. package/src/ass-gen/__tests__/898651903.xml.ass +0 -1516
  162. package/src/ass-gen/__tests__/canvas.test.ts +0 -15
  163. package/src/ass-gen/__tests__/generate.test.ts +0 -26
  164. package/src/ass-gen/ass/create.ts +0 -37
  165. package/src/ass-gen/ass/dialogue.ts +0 -90
  166. package/src/ass-gen/ass/event.ts +0 -57
  167. package/src/ass-gen/ass/info.ts +0 -27
  168. package/src/ass-gen/ass/raw.ts +0 -78
  169. package/src/ass-gen/ass/style.ts +0 -66
  170. package/src/ass-gen/config.ts +0 -45
  171. package/src/ass-gen/index.ts +0 -73
  172. package/src/ass-gen/types.ts +0 -76
  173. package/src/ass-gen/util/color.ts +0 -55
  174. package/src/ass-gen/util/danconvert.ts +0 -43
  175. package/src/ass-gen/util/index.ts +0 -10
  176. package/src/ass-gen/util/lang.ts +0 -35
  177. package/src/ass-gen/util/layout.ts +0 -242
  178. package/src/index.test.ts +0 -157
  179. package/src/index.ts +0 -1144
  180. package/src/plugins/bili/README.md +0 -87
  181. package/src/plugins/bili/dedupe.ts +0 -29
  182. package/src/plugins/bili/history-danmaku-fast-forward.ts +0 -86
  183. package/src/plugins/bili/index.test.ts +0 -129
  184. package/src/plugins/bili/index.ts +0 -2
  185. package/src/plugins/index.ts +0 -2
  186. package/src/plugins/stats/README.md +0 -44
  187. package/src/plugins/stats/getLatestDan.ts +0 -13
  188. package/src/plugins/stats/index.test.ts +0 -39
  189. package/src/plugins/stats/index.ts +0 -1
  190. package/src/proto/gen/bilibili/community/service/dm/v1/dm_pb.ts +0 -4072
  191. package/src/proto/gen/danuni/danmaku/v1/danmaku_pb.ts +0 -223
  192. package/src/proto/src/bilibili/community/service/dm/v1/dm.proto +0 -1095
  193. package/src/proto/src/danuni/danmaku/v1/danmaku.proto +0 -52
  194. package/src/utils/dm-gen.test.ts +0 -129
  195. package/src/utils/dm-gen.ts +0 -1082
  196. package/src/utils/fileParser.ts +0 -37
  197. package/src/utils/id-gen.ts +0 -73
  198. package/src/utils/platform.ts +0 -38
  199. package/tsconfig.json +0 -108
  200. package/types/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,135 @@
1
+ import { Message } from "@bufbuild/protobuf";
2
+
3
+ //#region src/utils/proto/gen/bilibili/community/service/dm/v1/dm_pb.d.ts
4
+ /**
5
+ * 互动弹幕条目信息
6
+ *
7
+ * @generated from message bilibili.community.service.dm.v1.CommandDm
8
+ */
9
+ type CommandDm = Message<"bilibili.community.service.dm.v1.CommandDm"> & {
10
+ /**
11
+ * 弹幕id
12
+ *
13
+ * @generated from field: int64 id = 1;
14
+ */
15
+ id: bigint;
16
+ /**
17
+ * 对象视频cid
18
+ *
19
+ * @generated from field: int64 oid = 2;
20
+ */
21
+ oid: bigint;
22
+ /**
23
+ * 发送者mid
24
+ *
25
+ * @generated from field: int64 mid = 3;
26
+ */
27
+ mid: bigint;
28
+ /**
29
+ * 互动弹幕指令
30
+ *
31
+ * @generated from field: string command = 4;
32
+ */
33
+ command: string;
34
+ /**
35
+ * 互动弹幕正文
36
+ *
37
+ * @generated from field: string content = 5;
38
+ */
39
+ content: string;
40
+ /**
41
+ * 出现时间
42
+ *
43
+ * @generated from field: int32 progress = 6;
44
+ */
45
+ progress: number;
46
+ /**
47
+ * 创建时间
48
+ *
49
+ * @generated from field: string ctime = 7;
50
+ */
51
+ ctime: string;
52
+ /**
53
+ * 发布时间
54
+ *
55
+ * @generated from field: string mtime = 8;
56
+ */
57
+ mtime: string;
58
+ /**
59
+ * 扩展json数据
60
+ *
61
+ * @generated from field: string extra = 9;
62
+ */
63
+ extra: string;
64
+ /**
65
+ * 弹幕id str类型
66
+ *
67
+ * @generated from field: string idStr = 10;
68
+ */
69
+ idStr: string;
70
+ /**
71
+ *
72
+ *
73
+ * @generated from field: int32 type = 11;
74
+ */
75
+ type: number;
76
+ /**
77
+ *
78
+ *
79
+ * @generated from field: bool auto_create = 12;
80
+ */
81
+ autoCreate: boolean;
82
+ /**
83
+ *
84
+ *
85
+ * @generated from field: int32 count_down = 13;
86
+ */
87
+ countDown: number;
88
+ /**
89
+ *
90
+ *
91
+ * @generated from field: int32 attr = 14;
92
+ */
93
+ attr: number;
94
+ };
95
+ //#endregion
96
+ //#region src/core/dm-extra.d.ts
97
+ type DMBiliCommand = CommandDm;
98
+ interface Extra {
99
+ artplayer?: ExtraArtplayer;
100
+ bili?: ExtraBili;
101
+ danuni?: ExtraDanUni;
102
+ ddplay?: ExtraDdPlay;
103
+ }
104
+ interface ExtraArtplayer {
105
+ style?: object;
106
+ border?: boolean;
107
+ }
108
+ interface ExtraBili {
109
+ mode?: number;
110
+ pool?: number;
111
+ dmid?: string;
112
+ attr?: number;
113
+ mid?: string;
114
+ adv?: string;
115
+ code?: string;
116
+ bas?: string;
117
+ command?: DMBiliCommand;
118
+ }
119
+ interface ExtraDanUni {
120
+ merge?: ExtraDanUniMerge;
121
+ }
122
+ interface ExtraDanUniMerge {
123
+ duration: number;
124
+ count: number;
125
+ senders: string[];
126
+ taolu_count: number;
127
+ taolu_senders: string[];
128
+ }
129
+ interface ExtraDdPlay {
130
+ cid: number;
131
+ uid: string;
132
+ }
133
+ //#endregion
134
+ export { ExtraBili as n, Extra as t };
135
+ //# sourceMappingURL=dm-extra-DrAQCrFv.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dm-extra-DrAQCrFv.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;AAAA;AAAA,UAEM,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"}
@@ -0,0 +1,2 @@
1
+ import{z as e}from"zod";var t=`@dan-uni/dan-any`,n=`2.0.0`;let r=function(e){return e.Bangumi=`bgm`,e.TMDB=`tmdb`,e}({});const i=Object.values(r);let a=function(e){return e.Acfun=`acfun`,e.Baha=`baha`,e.Bilibili=`bili`,e.BilibiliGlobal=`bglobal`,e.Iqiyi=`iqiyi`,e.Tencent=`tencent`,e.Youku=`youku`,e}({});const o=Object.values(a);let s=function(e){return e.DanDanPlay=`ddplay`,e.TuCao=`tucao`,e}({});const c=Object.values(s),l=[...o,...c],u=[...i,...l],d=e.templateLiteral([e.string(),`@`,e.string()]);var f=class e{constructor(e,t){this.id=e,this.domain=t}static validateString(e){return d.safeParse(e).success}static fromStringSafe(e){return this.fromString(d.parse(e))}static fromString(t){let[n,r]=t.split(`@`);return new e(n,r)}toString(){return`${this.id}@${this.domain}`}static fromNull(t){return new e(t===`runtime`?`runtime`:`anonymous`,t||`danuni`)}static fromBili({cid:t,mid:n,midHash:r}){return t?new e(t.toString(),`bili`):n?new e(n.toString(),`bili`):r?new e(r,`bili`):this.fromNull(`bili`)}static fromUnknown(t,n){return t?new e(t,n):this.fromNull(n)}};let p=function(e){return e[e.Normal=0]=`Normal`,e[e.Bottom=1]=`Bottom`,e[e.Top=2]=`Top`,e[e.Reverse=3]=`Reverse`,e[e.Ext=4]=`Ext`,e}({}),m=function(e){return e[e.Def=0]=`Def`,e[e.Sub=1]=`Sub`,e[e.Adv=2]=`Adv`,e[e.Ix=3]=`Ix`,e}({}),h=function(e){return e.Protect=`Protect`,e.FromLive=`FromLive`,e.HighLike=`HighLike`,e.Compatible=`Compatible`,e.Reported=`Reported`,e.Unchecked=`Unchecked`,e.HasEvent=`HasEvent`,e.Hide=`Hide`,e}({});const g={SOID:f.fromNull().toString(),progress:0,mode:0,fontsize:25,color:16777215,senderID:f.fromNull().toString(),content:``,weight:0,pool:0,attr:[],platform:null,extra:null},_={meassage:`Converted by DanUni!`,version:`JS/TS ${t} (v${n})`};export{g as a,c,i as d,u as f,m as i,l,o as m,_ as n,f as o,a as p,p as r,s,h as t,r as u};
2
+ //# sourceMappingURL=dm-tkTdR_W6.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dm-tkTdR_W6.mjs","names":["pkg.name","pkg.version"],"sources":["../package.json","../src/core/platform.ts","../src/core/uni-id.ts","../src/core/dm.ts"],"sourcesContent":["","export enum PlatformInfoSource {\n Bangumi = \"bgm\",\n TMDB = \"tmdb\",\n}\nexport const PlatformInfoSources = Object.values(PlatformInfoSource);\n\nexport enum PlatformVideoSource {\n Acfun = \"acfun\",\n Baha = \"baha\",\n Bilibili = \"bili\",\n BilibiliGlobal = \"bglobal\",\n Iqiyi = \"iqiyi\",\n Tencent = \"tencent\",\n Youku = \"youku\",\n}\nexport const PlatformVideoSources = Object.values(PlatformVideoSource);\n\nexport enum PlatformDanmakuOnlySource {\n DanDanPlay = \"ddplay\",\n TuCao = \"tucao\",\n}\nexport const PlatformDanmakuOnlySources = Object.values(PlatformDanmakuOnlySource);\n\nexport type PlatformDanmakuSource = PlatformVideoSource | PlatformDanmakuOnlySource;\nexport const PlatformDanmakuSources = [...PlatformVideoSources, ...PlatformDanmakuOnlySources];\n\nexport type PlatformSource = PlatformInfoSource | PlatformDanmakuSource;\nexport const PlatformSources = [...PlatformInfoSources, ...PlatformDanmakuSources];\n","import { z } from \"zod\";\nimport { type PlatformSource, PlatformVideoSource } from \"./platform.ts\";\n\nconst UniIDStrSchema = z.templateLiteral([z.string(), \"@\", z.string()]);\ntype UniIDStr = z.infer<typeof UniIDStrSchema>;\n\nexport class UniID {\n constructor(\n /**\n * @description 每个domain下应为唯一值\n * @example danuni: 推荐为UUID/ULID/NanoID\n * bili: midHash hash算法为CRC32\n */\n public id: string,\n /**\n * @description 弹幕首次出现的平台域名(注意可以为如localhost等根域名)\n * ### 预设\n * - `{any}.danuni` (若使用IP或无域名,请使用该domain,防止隐私泄露/无法解析)\n * #### 注意\n * - `any`值建议为UUID/ULID/NanoID以防同步错误\n * ### 非DanUni弹幕服务建议使用预设,或自行填写域名\n */\n public domain: PlatformSource | string,\n ) {}\n static validateString(str: string) {\n return UniIDStrSchema.safeParse(str).success;\n }\n static fromStringSafe(str: string) {\n return this.fromString(UniIDStrSchema.parse(str));\n }\n static fromString(str: UniIDStr) {\n const [id, domain] = str.split(\"@\");\n return new UniID(id, domain);\n }\n toString(): UniIDStr {\n return `${this.id}@${this.domain}`;\n }\n static fromNull(domain?: PlatformSource | string) {\n return new UniID(domain === \"runtime\" ? \"runtime\" : \"anonymous\", domain || \"danuni\");\n }\n static fromBili({\n cid,\n mid,\n midHash,\n }: {\n cid?: number | bigint | string;\n mid?: number | bigint;\n midHash?: string;\n }) {\n if (cid) return new UniID(cid.toString(), PlatformVideoSource.Bilibili);\n else if (mid) return new UniID(mid.toString(), PlatformVideoSource.Bilibili);\n else if (midHash) return new UniID(midHash, PlatformVideoSource.Bilibili);\n else return this.fromNull(PlatformVideoSource.Bilibili);\n }\n static fromUnknown(\n id: string,\n /**\n * 可使用预设\n */\n domain: PlatformSource | string,\n ) {\n if (id) return new UniID(id, domain);\n else return this.fromNull(domain);\n }\n}\n","import type { PlatformDanmakuSource } from \"./platform.ts\";\n\nimport pkg from \"../../package.json\" with { type: \"json\" };\nimport { UniID } from \"./uni-id.ts\";\nimport type { Extra } from \"./dm-extra.ts\";\n\nexport enum Modes {\n Normal,\n Bottom,\n Top,\n Reverse, //逆向弹幕\n Ext, //需要读取extra的弹幕,用于兼容bili等复杂弹幕\n}\nexport enum Pools {\n Def, //默认池\n Sub, //重要池,建议强制加载,含字幕、科普、空降等\n Adv, //高级弹幕专用池,均需读取extra\n Ix, //互动池\n}\nexport enum DMAttr {\n Protect = \"Protect\",\n FromLive = \"FromLive\",\n HighLike = \"HighLike\",\n Compatible = \"Compatible\", // 由dan-any进行过兼容处理的弹幕,可能丢失部分信息\n Reported = \"Reported\", // 在DanUni上被多人举报过的弹幕\n Unchecked = \"Unchecked\", // 在DanUni上未被审核过的弹幕\n HasEvent = \"HasEvent\", // 该弹幕当前在DanUni上存在事件(如点赞/举报等)\n Hide = \"Hide\", // 由于其它原因需要隐藏的弹幕(建议在server端不返回该类弹幕)\n}\n\nexport interface UniDMObj {\n SOID: string;\n progress: number; // int32, ms\n mode: Modes;\n fontsize: number;\n color: number;\n senderID: string;\n content: string;\n ctime: Date;\n weight: number;\n pool: Pools;\n attr: DMAttr[];\n platform: PlatformDanmakuSource | string | null;\n extra: Extra | null;\n // extraStr: string;\n DMID: string;\n}\n\nexport const defaultUniDM = {\n SOID: UniID.fromNull().toString(),\n progress: 0,\n mode: Modes.Normal,\n fontsize: 25,\n color: 0xffffff,\n senderID: UniID.fromNull().toString(),\n content: \"\",\n // ctime: new Date(), // ctime 应根据实际构建时间创建\n weight: 0,\n pool: Pools.Def,\n attr: [] as DMAttr[],\n platform: null,\n extra: null,\n} as const;\n\nexport interface DanUniConvertTip {\n meassage: string;\n version: string;\n data?: string;\n}\n\nexport const DanUniConvertTipTemplate: DanUniConvertTip = {\n meassage: \"Converted by DanUni!\",\n version: `JS/TS ${pkg.name} (v${pkg.version})`,\n};\n"],"mappings":"2DCAA,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,MACA,EAAA,KAAA,aACD,CACD,MAAa,EAAsB,OAAO,OAAO,EAAmB,CAEpE,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,MAAA,QACA,EAAA,KAAA,OACA,EAAA,SAAA,OACA,EAAA,eAAA,UACA,EAAA,MAAA,QACA,EAAA,QAAA,UACA,EAAA,MAAA,cACD,CACD,MAAa,EAAuB,OAAO,OAAO,EAAoB,CAEtE,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,WAAA,SACA,EAAA,MAAA,cACD,CACD,MAAa,EAA6B,OAAO,OAAO,EAA0B,CAGrE,EAAyB,CAAC,GAAG,EAAsB,GAAG,EAA2B,CAGjF,EAAkB,CAAC,GAAG,EAAqB,GAAG,EAAuB,CCxB5E,EAAiB,EAAE,gBAAgB,CAAC,EAAE,QAAQ,CAAE,IAAK,EAAE,QAAQ,CAAC,CAAC,CAGvE,IAAa,EAAb,MAAa,CAAM,CACjB,YAME,EASA,EACA,CAVO,KAAA,GAAA,EASA,KAAA,OAAA,EAET,OAAO,eAAe,EAAa,CACjC,OAAO,EAAe,UAAU,EAAI,CAAC,QAEvC,OAAO,eAAe,EAAa,CACjC,OAAO,KAAK,WAAW,EAAe,MAAM,EAAI,CAAC,CAEnD,OAAO,WAAW,EAAe,CAC/B,GAAM,CAAC,EAAI,GAAU,EAAI,MAAM,IAAI,CACnC,OAAO,IAAI,EAAM,EAAI,EAAO,CAE9B,UAAqB,CACnB,MAAO,GAAG,KAAK,GAAG,GAAG,KAAK,SAE5B,OAAO,SAAS,EAAkC,CAChD,OAAO,IAAI,EAAM,IAAW,UAAY,UAAY,YAAa,GAAU,SAAS,CAEtF,OAAO,SAAS,CACd,MACA,MACA,WAKC,CAII,OAHD,EAAY,IAAI,EAAM,EAAI,UAAU,CAAA,OAA+B,CAC9D,EAAY,IAAI,EAAM,EAAI,UAAU,CAAA,OAA+B,CACnE,EAAgB,IAAI,EAAM,EAAA,OAAsC,CAC7D,KAAK,SAAA,OAAsC,CAEzD,OAAO,YACL,EAIA,EACA,CAEK,OADD,EAAW,IAAI,EAAM,EAAI,EAAO,CACxB,KAAK,SAAS,EAAO,GCxDrC,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,OAAA,GAAA,SACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,QAAA,GAAA,UACA,EAAA,EAAA,IAAA,GAAA,YACD,CACW,EAAL,SAAA,EAAA,OACL,GAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,IAAA,GAAA,MACA,EAAA,EAAA,GAAA,GAAA,WACD,CACW,EAAL,SAAA,EAAA,OACL,GAAA,QAAA,UACA,EAAA,SAAA,WACA,EAAA,SAAA,WACA,EAAA,WAAA,aACA,EAAA,SAAA,WACA,EAAA,UAAA,YACA,EAAA,SAAA,WACA,EAAA,KAAA,aACD,CAoBD,MAAa,EAAe,CAC1B,KAAM,EAAM,UAAU,CAAC,UAAU,CACjC,SAAU,EACV,KAAA,EACA,SAAU,GACV,MAAO,SACP,SAAU,EAAM,UAAU,CAAC,UAAU,CACrC,QAAS,GAET,OAAQ,EACR,KAAA,EACA,KAAM,EAAE,CACR,SAAU,KACV,MAAO,KACR,CAQY,EAA6C,CACxD,SAAU,uBACV,QAAS,SAASA,EAAS,KAAKC,EAAY,GAC7C"}