@dan-uni/dan-any 2.3.2 → 2.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/README.md +2 -0
  2. package/dist/adapters-CMxQuMNI.cjs +1 -0
  3. package/dist/adapters-ClvHDUto.mjs +2 -0
  4. package/dist/adapters-ClvHDUto.mjs.map +1 -0
  5. package/dist/adapters.cjs +1 -1
  6. package/dist/adapters.d.cts +2 -2
  7. package/dist/adapters.d.mts +2 -2
  8. package/dist/adapters.mjs +1 -1
  9. package/dist/core/db/schema.d.cts +1 -1
  10. package/dist/core/db/schema.d.mts +1 -1
  11. package/dist/core/db/utils.d.cts +1 -1
  12. package/dist/core/db/utils.d.mts +1 -1
  13. package/dist/core/main/drizzle.cjs +1 -1
  14. package/dist/core/main/drizzle.d.cts +3 -3
  15. package/dist/core/main/drizzle.d.mts +3 -3
  16. package/dist/core/main/drizzle.mjs +1 -1
  17. package/dist/core/main/pure.cjs +1 -1
  18. package/dist/core/main/pure.d.cts +1 -1
  19. package/dist/core/main/pure.d.mts +1 -1
  20. package/dist/core/main/pure.mjs +1 -1
  21. package/dist/core/main.cjs +1 -1
  22. package/dist/core/main.d.cts +1 -1
  23. package/dist/core/main.d.mts +1 -1
  24. package/dist/core/main.mjs +1 -1
  25. package/dist/{core-CMk2Mwxi.mjs → core-CUJ70zNS.mjs} +2 -2
  26. package/dist/{core-CMk2Mwxi.mjs.map → core-CUJ70zNS.mjs.map} +1 -1
  27. package/dist/{core-BIxWu_32.cjs → core-DlEY_W5o.cjs} +1 -1
  28. package/dist/core.cjs +1 -1
  29. package/dist/core.d.cts +3 -3
  30. package/dist/core.d.mts +3 -3
  31. package/dist/core.mjs +1 -1
  32. package/dist/{dm-extra-DW2aFkQh.d.cts → dm-extra-DXZFotGs.d.cts} +23 -2
  33. package/dist/dm-extra-DXZFotGs.d.cts.map +1 -0
  34. package/dist/{dm-extra-DW2aFkQh.d.mts → dm-extra-DXZFotGs.d.mts} +23 -2
  35. package/dist/dm-extra-DXZFotGs.d.mts.map +1 -0
  36. package/dist/{index-VhG0LiL2.d.cts → index-CZxg5lKa.d.mts} +56 -7
  37. package/dist/index-CZxg5lKa.d.mts.map +1 -0
  38. package/dist/{index-DGPhFGo_.d.mts → index-CuEYrIpx.d.cts} +58 -5
  39. package/dist/index-CuEYrIpx.d.cts.map +1 -0
  40. package/dist/index.cjs +1 -1
  41. package/dist/index.d.cts +1 -1
  42. package/dist/index.d.mts +1 -1
  43. package/dist/index.mjs +1 -1
  44. package/dist/{isSame-9QsgWk0h.cjs → isSame-BxBR0ES9.cjs} +1 -1
  45. package/dist/{isSame-sqTltSOx.mjs → isSame-NQipOUqM.mjs} +2 -2
  46. package/dist/{isSame-sqTltSOx.mjs.map → isSame-NQipOUqM.mjs.map} +1 -1
  47. package/dist/{main-drizzle-DYtV1ClN.cjs → main-drizzle-BKl5Qo3f.cjs} +1 -1
  48. package/dist/{main-drizzle-t2QIMdOt.mjs → main-drizzle-e6t8ip_R.mjs} +2 -2
  49. package/dist/{main-drizzle-t2QIMdOt.mjs.map → main-drizzle-e6t8ip_R.mjs.map} +1 -1
  50. package/dist/{main-pure-B56SDMo6.cjs → main-pure-C8ZNSYJc.cjs} +1 -1
  51. package/dist/{main-pure-CAPzq-ue.d.mts → main-pure-CdJHQ8it.d.mts} +2 -2
  52. package/dist/{main-pure-CAPzq-ue.d.mts.map → main-pure-CdJHQ8it.d.mts.map} +1 -1
  53. package/dist/{main-pure-CLnUZB7g.mjs → main-pure-CfrCjx7t.mjs} +2 -2
  54. package/dist/{main-pure-CLnUZB7g.mjs.map → main-pure-CfrCjx7t.mjs.map} +1 -1
  55. package/dist/{main-pure-BXT58v5N.d.cts → main-pure-Dqq-6q4T.d.cts} +2 -2
  56. package/dist/{main-pure-BXT58v5N.d.cts.map → main-pure-Dqq-6q4T.d.cts.map} +1 -1
  57. package/dist/plugins.cjs +1 -1
  58. package/dist/plugins.d.cts +2 -2
  59. package/dist/plugins.d.mts +2 -2
  60. package/dist/plugins.mjs +1 -1
  61. package/dist/{schema-DKQ-9LmS.d.cts → schema-2CwbVaGj.d.cts} +2 -2
  62. package/dist/{schema-DBUuGpWR.d.mts.map → schema-2CwbVaGj.d.cts.map} +1 -1
  63. package/dist/{schema-DBUuGpWR.d.mts → schema-CybQGjhe.d.mts} +2 -2
  64. package/dist/{schema-DKQ-9LmS.d.cts.map → schema-CybQGjhe.d.mts.map} +1 -1
  65. package/dist/utils.cjs +1 -1
  66. package/dist/utils.d.cts +2 -2
  67. package/dist/utils.d.mts +2 -2
  68. package/dist/utils.mjs +1 -1
  69. package/package.json +3 -3
  70. package/dist/adapters-BGeCLF-P.mjs +0 -2
  71. package/dist/adapters-BGeCLF-P.mjs.map +0 -1
  72. package/dist/adapters-DT0YPaW0.cjs +0 -1
  73. package/dist/dm-extra-DW2aFkQh.d.cts.map +0 -1
  74. package/dist/dm-extra-DW2aFkQh.d.mts.map +0 -1
  75. package/dist/index-DGPhFGo_.d.mts.map +0 -1
  76. package/dist/index-VhG0LiL2.d.cts.map +0 -1
@@ -1,6 +1,8 @@
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-DW2aFkQh.mjs";
1
+ import { a as ExtraBiliUp, c as ExtraDanUniMerge, d as ExtraIqiyi, f as ExtraTencent, i as ExtraBili, l as ExtraDanUniRaw, n as ExtraArtplayer, o as ExtraDanUni, r as ExtraBaha, s as ExtraDanUniColor, t as Extra, u as ExtraDdPlay } from "./dm-extra-DXZFotGs.cjs";
2
2
  import { z } from "zod";
3
3
 
4
+ //#region \0rolldown/runtime.js
5
+ //#endregion
4
6
  //#region node_modules/type-fest/source/is-null.d.ts
5
7
  /**
6
8
  Returns a boolean for whether the given type is `null`.
@@ -293,7 +295,7 @@ declare class UniID {
293
295
  domain: PlatformSource | string): UniID;
294
296
  }
295
297
  declare namespace index_d_exports$1 {
296
- 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 };
298
+ export { AdapterStore, ChunksInsert, DMAttr, DMIDGenerator, DanUniConvertTip, DanUniConvertTipTemplate, DanmakusInsert, Extra, ExtraArtplayer, ExtraBaha, ExtraBili, ExtraBiliUp, ExtraDanUni, ExtraDanUniColor, ExtraDanUniMerge, ExtraDanUniRaw, ExtraDdPlay, ExtraIqiyi, ExtraTencent, InitedUniDB, Modes, PlatformDanmakuOnlySource, PlatformDanmakuOnlySources, PlatformDanmakuSource, PlatformDanmakuSources, PlatformInfoSource, PlatformInfoSources, PlatformSource, PlatformSources, PlatformVideoSource, PlatformVideoSources, Pools, UChunk, UChunk2Danmaku, UDanmaku, UniChunk, UniDB, UniDMObj, UniID, baseClassTrans, createDMID, defaultUniDM };
297
299
  }
298
300
  type AdapterStore = (udb: InitedUniDB, uchunk?: UniChunk) => Promisable<UniChunk>;
299
301
  interface UChunk {
@@ -634,6 +636,53 @@ declare const ArtplayerTransformer: (udanmakus: UDanmaku[]) => DM_JSON_Artplayer
634
636
  };
635
637
  declare const ArtplayerMetadata: Metadata;
636
638
  //#endregion
639
+ //#region src/adapters/baha.d.ts
640
+ declare enum DM_JSON_Baha_size {
641
+ Small = 0,
642
+ Medium = 1,
643
+ Large = 2
644
+ }
645
+ declare enum DM_JSON_Baha_position {
646
+ RTL = 0,
647
+ TOP = 1,
648
+ BOTTOM = 2
649
+ }
650
+ interface DM_JSON_Baha {
651
+ data: {
652
+ danmu: {
653
+ /** 弹幕 ID */sn: number; /** 弹幕文本 */
654
+ text: string; /** 出现时间, time/10 = 秒 */
655
+ time: number; /** 颜色,#RRGGBB 格式 */
656
+ color: string; /** 字体大小(0=小, 1=中, 2=大) */
657
+ size: DM_JSON_Baha_size; /** 位置:0-滚动 1-顶部 2-底部 */
658
+ position: DM_JSON_Baha_position; /** 用户名 */
659
+ userid: string;
660
+ }[];
661
+ totalCount?: number;
662
+ };
663
+ }
664
+ declare const BahaZod: z.ZodObject<{
665
+ data: z.ZodObject<{
666
+ danmu: z.ZodArray<z.ZodObject<{
667
+ sn: z.ZodInt;
668
+ text: z.ZodString;
669
+ time: z.ZodInt;
670
+ color: z.ZodString;
671
+ size: z.ZodDefault<z.ZodEnum<typeof DM_JSON_Baha_size>>;
672
+ position: z.ZodDefault<z.ZodEnum<typeof DM_JSON_Baha_position>>;
673
+ userid: z.ZodString;
674
+ }, z.core.$strip>>;
675
+ totalCount: z.ZodOptional<z.ZodInt>;
676
+ }, z.core.$strip>;
677
+ }, z.core.$strip>;
678
+ declare const BahaAdapter: (json: DM_JSON_Baha & {
679
+ danuni?: DanUniConvertTip;
680
+ }, sn?: number) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
681
+ declare const BahaTransformer: (udanmakus: UDanmaku[]) => DM_JSON_Baha & {
682
+ danuni?: DanUniConvertTip;
683
+ };
684
+ declare const BahaMetadata: Metadata;
685
+ //#endregion
637
686
  //#region src/adapters/ddplay.d.ts
638
687
  interface DM_JSON_DDPlay {
639
688
  count: number | string;
@@ -667,6 +716,10 @@ declare const DplayerTransformer: (udanmakus: UDanmaku[]) => DM_JSON_Dplayer & {
667
716
  };
668
717
  declare const DplayerMetadata: Metadata;
669
718
  //#endregion
719
+ //#region src/adapters/iqiyi.d.ts
720
+ declare const IqiyiAdapter: (xml: string, tvid?: string) => (udb: InitedUniDB, uchunk: UniChunk | undefined) => Promise<UniChunk>;
721
+ declare const IqiyiMetadata: Metadata;
722
+ //#endregion
670
723
  //#region src/adapters/tencent.d.ts
671
724
  interface TencentBarrage {
672
725
  id: string;
@@ -720,7 +773,7 @@ declare const VodTransformer: (udanmakus: UDanmaku[]) => DM_JSON_Vod & {
720
773
  };
721
774
  declare const VodMetadata: Metadata;
722
775
  declare namespace index_d_exports {
723
- 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 };
776
+ export { Adapter, ArtplayerAdapter, ArtplayerMetadata, ArtplayerTransformer, BahaAdapter, BahaMetadata, BahaTransformer, BahaZod, BiliCommandGrpcAdapter, BiliCommandGrpcMetadata, BiliCommonBuilder, BiliCommonModeRec, BiliCommonParser, BiliGrpcAdapter, BiliGrpcMetadata, BiliUpAdapter, BiliUpMetadata, BiliXmlAdapter, BiliXmlMetadata, BiliXmlTransformerConfigurator, DanuniJsonAdapter, DanuniJsonMetadata, DanuniJsonTransformerConfigurator, DanuniPbAdapter, DanuniPbMetadata, DanuniPbTransformer, DdplayAdapter, DdplayMetadata, DdplayTransformer, DplayerAdapter, DplayerMetadata, DplayerTransformer, IqiyiAdapter, IqiyiMetadata, Metadata, Plugin, TencentAdapter, TencentMetadata, Transformer, TransformerInput, VodAdapter, VodMetadata, VodTransformer, VodZod, defineAdapter, defineMetadata, definePlugin, defineTransformer, enumAttrsCodec, enumModeCodec, enumPoolCodec };
724
777
  }
725
778
  type TransformerInput<T = InitedUniDB | UniChunk> = T;
726
779
  type Adapter<Args extends any[] = any[]> = (...args: Args) => Promisable<AdapterStore>;
@@ -743,5 +796,5 @@ declare function defineTransformer<T extends Transformer>(transformer: T): T;
743
796
  declare function definePlugin<T extends Plugin>(plugin: T): T;
744
797
  declare function defineMetadata(metadata: Metadata): Metadata;
745
798
  //#endregion
746
- export { UDanmaku as $, BiliUpMetadata as A, DanuniPbTransformer as B, ArtplayerAdapter as C, createDMID as Ct, BiliXmlMetadata as D, BiliXmlAdapter as E, 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 };
747
- //# sourceMappingURL=index-DGPhFGo_.d.mts.map
799
+ export { AdapterStore as $, ArtplayerMetadata as A, Asyncify as At, BiliGrpcAdapter as B, DdplayMetadata as C, PlatformInfoSources as Ct, BahaTransformer as D, PlatformVideoSources as Dt, BahaMetadata as E, PlatformVideoSource as Et, BiliUpAdapter as F, DanuniPbMetadata as G, BiliCommandGrpcAdapter as H, BiliUpMetadata as I, DanuniJsonMetadata as J, DanuniPbTransformer as K, BiliCommonBuilder as L, BiliXmlAdapter as M, __exportAll as Mt, BiliXmlMetadata as N, BahaZod as O, DMIDGenerator as Ot, BiliXmlTransformerConfigurator as P, enumPoolCodec as Q, BiliCommonModeRec as R, DdplayAdapter as S, PlatformInfoSource as St, BahaAdapter as T, PlatformSources as Tt, BiliCommandGrpcMetadata as U, BiliGrpcMetadata as V, DanuniPbAdapter as W, enumAttrsCodec as X, DanuniJsonTransformerConfigurator as Y, enumModeCodec as Z, IqiyiAdapter as _, defaultUniDM as _t, TransformerInput as a, UDanmaku as at, DplayerMetadata as b, PlatformDanmakuSource as bt, definePlugin as c, baseClassTrans as ct, VodAdapter as d, DMAttr as dt, ChunksInsert as et, VodMetadata as f, DanUniConvertTip as ft, TencentMetadata as g, UniDMObj as gt, TencentAdapter as h, Pools as ht, Transformer as i, UChunk2Danmaku as it, ArtplayerTransformer as j, Promisable as jt, ArtplayerAdapter as k, createDMID as kt, defineTransformer as l, index_d_exports$1 as lt, VodZod as m, Modes as mt, Metadata as n, InitedUniDB as nt, defineAdapter as o, UniChunk as ot, VodTransformer as p, DanUniConvertTipTemplate as pt, DanuniJsonAdapter as q, Plugin as r, UChunk as rt, defineMetadata as s, UniDB as st, Adapter as t, DanmakusInsert as tt, index_d_exports as u, UniID as ut, IqiyiMetadata as v, PlatformDanmakuOnlySource as vt, DdplayTransformer as w, PlatformSource as wt, DplayerTransformer as x, PlatformDanmakuSources as xt, DplayerAdapter as y, PlatformDanmakuOnlySources as yt, BiliCommonParser as z };
800
+ //# sourceMappingURL=index-CuEYrIpx.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CuEYrIpx.d.cts","names":["T","T","IsNull","T","PromiseLike","Function_","arguments_","TypeToReturn","ThisArgument","this","Arguments","IsUnknown","Parameters","Function_","arguments_","SetReturnType","Promise","Awaited","ReturnType"],"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/uni-id.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/baha.ts","../src/adapters/ddplay.ts","../src/adapters/dplayer.ts","../src/adapters/iqiyi.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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"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./core-BIxWu_32.cjs"),t=require("./adapters-DT0YPaW0.cjs"),n=require("./plugins.cjs"),r=require("./utils.cjs");Object.defineProperty(exports,"adapters",{enumerable:!0,get:function(){return t.t}}),Object.defineProperty(exports,"core",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(exports,"plugins",{enumerable:!0,get:function(){return n.t}}),Object.defineProperty(exports,"utils",{enumerable:!0,get:function(){return r.t}});
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./core-DlEY_W5o.cjs"),t=require("./adapters-CMxQuMNI.cjs"),n=require("./plugins.cjs"),r=require("./utils.cjs");Object.defineProperty(exports,"adapters",{enumerable:!0,get:function(){return t.t}}),Object.defineProperty(exports,"core",{enumerable:!0,get:function(){return e.i}}),Object.defineProperty(exports,"plugins",{enumerable:!0,get:function(){return n.t}}),Object.defineProperty(exports,"utils",{enumerable:!0,get:function(){return r.t}});
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { rt as index_d_exports$1, u as index_d_exports } from "./index-VhG0LiL2.cjs";
1
+ import { lt as index_d_exports$1, u as index_d_exports } from "./index-CuEYrIpx.cjs";
2
2
  import { t as index_d_exports$2 } from "./plugins.cjs";
3
3
  import { t as index_d_exports$3 } from "./utils.cjs";
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.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { rt as index_d_exports$1, u as index_d_exports } from "./index-DGPhFGo_.mjs";
1
+ import { lt as index_d_exports$1, u as index_d_exports } from "./index-CZxg5lKa.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}from"./core-CMk2Mwxi.mjs";import{t}from"./adapters-BGeCLF-P.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}from"./core-CUJ70zNS.mjs";import{t}from"./adapters-ClvHDUto.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 +1 @@
1
- require("./core-BIxWu_32.cjs"),require("./core/db/schema.cjs");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))}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return t}});
1
+ require("./core-DlEY_W5o.cjs"),require("./core/db/schema.cjs");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))}Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return t}});
@@ -1,2 +1,2 @@
1
- import"./core-CMk2Mwxi.mjs";import"./core/db/schema.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-sqTltSOx.mjs.map
1
+ import"./core-CUJ70zNS.mjs";import"./core/db/schema.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-NQipOUqM.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"isSame-sqTltSOx.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,OACnD,CAEA,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,IAAI,GAAK,EAAO,EAAI,MAAM,IAAI,GAKjD,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,KAAK,IAAM,KAAK,UAAU,EAAI,OAAO,UAAU,KAAK,GAE3F,MAAO,GACT,IAAM,EAAU,GAAkB,EAAK,KAAO,EAAI,GAKlD,MAJgB,CAAC,OAAQ,UAAW,OAAQ,OAAQ,UAAU,CAAC,CAA2B,MACvF,GAAM,EAAO,CAAC,CAGL,CACd"}
1
+ {"version":3,"file":"isSame-NQipOUqM.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,OACnD,CAEA,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,IAAI,GAAK,EAAO,EAAI,MAAM,IAAI,GAKjD,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,KAAK,IAAM,KAAK,UAAU,EAAI,OAAO,UAAU,KAAK,GAE3F,MAAO,GACT,IAAM,EAAU,GAAkB,EAAK,KAAO,EAAI,GAKlD,MAJgB,CAAC,OAAQ,UAAW,OAAQ,OAAQ,UAAU,CAAC,CAA2B,MACvF,GAAM,EAAO,CAAC,CAGL,CACd"}
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-DWNI8pZO.cjs"),t=require("./core-BIxWu_32.cjs"),n=require("./core/db/schema.cjs"),r=require("./db-CwVpeD4O.cjs");let i=require("drizzle-orm");function*a(e,t){let n=2**16-2,r=e[0]?Object.keys(e[0]).length:1,i=Math.floor(n/r);(!t||t>i)&&(t=i);for(let n=0;n<e.length;n+=t)yield e.slice(n,n+t)}var o=e.t({InitedUniDB:()=>l,UniChunk:()=>u,UniDB:()=>s}),s=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=r.n,n=t.y){this.$db=e,this.DMIDGenerator=n}async init(e){return new l(await r.i(e),this.DMIDGenerator)}async close(){this.$db=null,await r.t()}};async function c(e,t){t=t.map(e=>{let t=e.content;return e.content=t.replace(/[\x00-\x1F\x7F]/g,``),e.content!==t&&(e.extra={...e.extra,danuni:{...e.extra?.danuni,raw:{...e.extra?.danuni?.raw,content:Buffer.from(t,`utf8`).toString(`base64`)}}}),e});for(let r of a(t,2340))await e.$db.insert(n.danmakus).values(r).onConflictDoUpdate(n.onConflictDoUpdate.danmakus)}var l=class extends s{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t.y){super(e,n),this.$db=e,this.DMIDGenerator=n}async dump(){return await r.r(this.$db)}get $chunks(){return Promise.resolve(this.$db.query.chunks.findMany())}get $danmakus(){return Promise.resolve(this.$db.query.chunks.findFirst({with:{danmakus:!0}}).then(e=>e?.danmakus??[]))}async listChunks(){return(await this.$chunks).map(e=>new u(this,e.id))}async makeChunk(e){let t=await this.$db.insert(n.chunks).values(e).returning();return new u(this,t[0].id)}async upsertDanmakus(e,t=!0){if(e instanceof Map)await this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),await c(this,[...t.values()])}else await c(this,e)}async shrink(){let e=await this.$db.query.chunks.findMany({where:{tmp:!0}});for(let t of e)await new u(this,t.id).delete()}import(e){return e(this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},u=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static async makeChunk(e,t){return e instanceof l?e.makeChunk(t):e.$UniDB.makeChunk(t)}static async assign(t,r){if(r.length<1)return t;let a=t.$UniDB,o=t.id,s=(await t.$chunk()).fromConverted;for(let e of r){let n=await e.$chunk();s&&=!!n.fromConverted;let r=await e.$danmakus;await t.upsertDanmakus(r,!1),await e.delete()}return await a.$db.update(n.chunks).set({fromConverted:s}).where((0,i.eq)(n.chunks.id,o)),new e(a,o)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){return this.$db.select().from(n.chunks).where((0,i.eq)(n.chunks.id,this.id))}async $chunk(){return(await this.$chunks)[0]}get $danmakus(){return this.$db.query.chunks.findFirst({where:{id:this.id},with:{danmakus:!0}}).then(e=>e?.danmakus??[])}get $count(){return this.$db.$count(n.chunk2danmakus,(0,i.eq)(n.chunk2danmakus.chunkID,this.id))}get isDeleted(){return this.$chunks.then(e=>e.length===0)}async upsertDanmakus(e,t=!1,r=!0){let i=new Set;e instanceof Map?(await this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>i.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return i.add(t),{...e,DMID:t}}):e.forEach(e=>{i.add(e.DMID)}),await this.$UniDB.upsertDanmakus(e,r));for(let e of a([...i].map(e=>({chunkID:this.id,DMID:e})),2340))await this.$db.insert(n.chunk2danmakus).values(e).onConflictDoNothing()}import(e){return e(this.$UniDB,this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:await this.$chunk()})}plugin(e){return e(this)}async delete(){await this.$db.transaction(async e=>{let t=(await e.select().from(n.chunk2danmakus).where((0,i.eq)(n.chunk2danmakus.chunkID,this.id))).map(e=>e.DMID);await e.delete(n.chunk2danmakus).where((0,i.eq)(n.chunk2danmakus.chunkID,this.id));for(let r of t)(await e.select().from(n.chunk2danmakus).where((0,i.eq)(n.chunk2danmakus.DMID,r))).length===0&&await e.delete(n.danmakus).where((0,i.eq)(n.danmakus.DMID,r));await e.delete(n.chunks).where((0,i.eq)(n.chunks.id,this.id))})}};Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
1
+ const e=require("./rolldown-runtime-DWNI8pZO.cjs"),t=require("./core-DlEY_W5o.cjs"),n=require("./core/db/schema.cjs"),r=require("./db-CwVpeD4O.cjs");let i=require("drizzle-orm");function*a(e,t){let n=2**16-2,r=e[0]?Object.keys(e[0]).length:1,i=Math.floor(n/r);(!t||t>i)&&(t=i);for(let n=0;n<e.length;n+=t)yield e.slice(n,n+t)}var o=e.t({InitedUniDB:()=>l,UniChunk:()=>u,UniDB:()=>s}),s=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=r.n,n=t.y){this.$db=e,this.DMIDGenerator=n}async init(e){return new l(await r.i(e),this.DMIDGenerator)}async close(){this.$db=null,await r.t()}};async function c(e,t){t=t.map(e=>{let t=e.content;return e.content=t.replace(/[\x00-\x1F\x7F]/g,``),e.content!==t&&(e.extra={...e.extra,danuni:{...e.extra?.danuni,raw:{...e.extra?.danuni?.raw,content:Buffer.from(t,`utf8`).toString(`base64`)}}}),e});for(let r of a(t,2340))await e.$db.insert(n.danmakus).values(r).onConflictDoUpdate(n.onConflictDoUpdate.danmakus)}var l=class extends s{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t.y){super(e,n),this.$db=e,this.DMIDGenerator=n}async dump(){return await r.r(this.$db)}get $chunks(){return Promise.resolve(this.$db.query.chunks.findMany())}get $danmakus(){return Promise.resolve(this.$db.query.chunks.findFirst({with:{danmakus:!0}}).then(e=>e?.danmakus??[]))}async listChunks(){return(await this.$chunks).map(e=>new u(this,e.id))}async makeChunk(e){let t=await this.$db.insert(n.chunks).values(e).returning();return new u(this,t[0].id)}async upsertDanmakus(e,t=!0){if(e instanceof Map)await this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),await c(this,[...t.values()])}else await c(this,e)}async shrink(){let e=await this.$db.query.chunks.findMany({where:{tmp:!0}});for(let t of e)await new u(this,t.id).delete()}import(e){return e(this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},u=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static async makeChunk(e,t){return e instanceof l?e.makeChunk(t):e.$UniDB.makeChunk(t)}static async assign(t,r){if(r.length<1)return t;let a=t.$UniDB,o=t.id,s=(await t.$chunk()).fromConverted;for(let e of r){let n=await e.$chunk();s&&=!!n.fromConverted;let r=await e.$danmakus;await t.upsertDanmakus(r,!1),await e.delete()}return await a.$db.update(n.chunks).set({fromConverted:s}).where((0,i.eq)(n.chunks.id,o)),new e(a,o)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){return this.$db.select().from(n.chunks).where((0,i.eq)(n.chunks.id,this.id))}async $chunk(){return(await this.$chunks)[0]}get $danmakus(){return this.$db.query.chunks.findFirst({where:{id:this.id},with:{danmakus:!0}}).then(e=>e?.danmakus??[])}get $count(){return this.$db.$count(n.chunk2danmakus,(0,i.eq)(n.chunk2danmakus.chunkID,this.id))}get isDeleted(){return this.$chunks.then(e=>e.length===0)}async upsertDanmakus(e,t=!1,r=!0){let i=new Set;e instanceof Map?(await this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>i.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return i.add(t),{...e,DMID:t}}):e.forEach(e=>{i.add(e.DMID)}),await this.$UniDB.upsertDanmakus(e,r));for(let e of a([...i].map(e=>({chunkID:this.id,DMID:e})),2340))await this.$db.insert(n.chunk2danmakus).values(e).onConflictDoNothing()}import(e){return e(this.$UniDB,this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:await this.$chunk()})}plugin(e){return e(this)}async delete(){await this.$db.transaction(async e=>{let t=(await e.select().from(n.chunk2danmakus).where((0,i.eq)(n.chunk2danmakus.chunkID,this.id))).map(e=>e.DMID);await e.delete(n.chunk2danmakus).where((0,i.eq)(n.chunk2danmakus.chunkID,this.id));for(let r of t)(await e.select().from(n.chunk2danmakus).where((0,i.eq)(n.chunk2danmakus.DMID,r))).length===0&&await e.delete(n.danmakus).where((0,i.eq)(n.danmakus.DMID,r));await e.delete(n.chunks).where((0,i.eq)(n.chunks.id,this.id))})}};Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
@@ -1,2 +1,2 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{y as t}from"./core-CMk2Mwxi.mjs";import{chunk2danmakus as n,chunks as r,danmakus as i,onConflictDoUpdate as a}from"./core/db/schema.mjs";import{t as o}from"./_polyfill-node.buffer-DsMhZhzX.mjs";import{i as s,n as c,r as l,t as u}from"./db-f5FA8dbM.mjs";import{eq as d}from"drizzle-orm";function*f(e,t){let n=2**16-2,r=e[0]?Object.keys(e[0]).length:1,i=Math.floor(n/r);(!t||t>i)&&(t=i);for(let n=0;n<e.length;n+=t)yield e.slice(n,n+t)}var p=e({InitedUniDB:()=>g,UniChunk:()=>_,UniDB:()=>m}),m=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=c,n=t){this.$db=e,this.DMIDGenerator=n}async init(e){return new g(await s(e),this.DMIDGenerator)}async close(){this.$db=null,await u()}};async function h(e,t){t=t.map(e=>{let t=e.content;return e.content=t.replace(/[\x00-\x1F\x7F]/g,``),e.content!==t&&(e.extra={...e.extra,danuni:{...e.extra?.danuni,raw:{...e.extra?.danuni?.raw,content:o.from(t,`utf8`).toString(`base64`)}}}),e});for(let n of f(t,2340))await e.$db.insert(i).values(n).onConflictDoUpdate(a.danmakus)}var g=class extends m{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t){super(e,n),this.$db=e,this.DMIDGenerator=n}async dump(){return await l(this.$db)}get $chunks(){return Promise.resolve(this.$db.query.chunks.findMany())}get $danmakus(){return Promise.resolve(this.$db.query.chunks.findFirst({with:{danmakus:!0}}).then(e=>e?.danmakus??[]))}async listChunks(){return(await this.$chunks).map(e=>new _(this,e.id))}async makeChunk(e){let t=await this.$db.insert(r).values(e).returning();return new _(this,t[0].id)}async upsertDanmakus(e,t=!0){if(e instanceof Map)await this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),await h(this,[...t.values()])}else await h(this,e)}async shrink(){let e=await this.$db.query.chunks.findMany({where:{tmp:!0}});for(let t of e)await new _(this,t.id).delete()}import(e){return e(this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},_=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static async makeChunk(e,t){return e instanceof g?e.makeChunk(t):e.$UniDB.makeChunk(t)}static async assign(t,n){if(n.length<1)return t;let i=t.$UniDB,a=t.id,o=(await t.$chunk()).fromConverted;for(let e of n){let n=await e.$chunk();o&&=!!n.fromConverted;let r=await e.$danmakus;await t.upsertDanmakus(r,!1),await e.delete()}return await i.$db.update(r).set({fromConverted:o}).where(d(r.id,a)),new e(i,a)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){return this.$db.select().from(r).where(d(r.id,this.id))}async $chunk(){return(await this.$chunks)[0]}get $danmakus(){return this.$db.query.chunks.findFirst({where:{id:this.id},with:{danmakus:!0}}).then(e=>e?.danmakus??[])}get $count(){return this.$db.$count(n,d(n.chunkID,this.id))}get isDeleted(){return this.$chunks.then(e=>e.length===0)}async upsertDanmakus(e,t=!1,r=!0){let i=new Set;e instanceof Map?(await this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>i.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return i.add(t),{...e,DMID:t}}):e.forEach(e=>{i.add(e.DMID)}),await this.$UniDB.upsertDanmakus(e,r));for(let e of f([...i].map(e=>({chunkID:this.id,DMID:e})),2340))await this.$db.insert(n).values(e).onConflictDoNothing()}import(e){return e(this.$UniDB,this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:await this.$chunk()})}plugin(e){return e(this)}async delete(){await this.$db.transaction(async e=>{let t=(await e.select().from(n).where(d(n.chunkID,this.id))).map(e=>e.DMID);await e.delete(n).where(d(n.chunkID,this.id));for(let r of t)(await e.select().from(n).where(d(n.DMID,r))).length===0&&await e.delete(i).where(d(i.DMID,r));await e.delete(r).where(d(r.id,this.id))})}};export{p as i,_ as n,m as r,g as t};
2
- //# sourceMappingURL=main-drizzle-t2QIMdOt.mjs.map
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{y as t}from"./core-CUJ70zNS.mjs";import{chunk2danmakus as n,chunks as r,danmakus as i,onConflictDoUpdate as a}from"./core/db/schema.mjs";import{t as o}from"./_polyfill-node.buffer-DsMhZhzX.mjs";import{i as s,n as c,r as l,t as u}from"./db-f5FA8dbM.mjs";import{eq as d}from"drizzle-orm";function*f(e,t){let n=2**16-2,r=e[0]?Object.keys(e[0]).length:1,i=Math.floor(n/r);(!t||t>i)&&(t=i);for(let n=0;n<e.length;n+=t)yield e.slice(n,n+t)}var p=e({InitedUniDB:()=>g,UniChunk:()=>_,UniDB:()=>m}),m=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=c,n=t){this.$db=e,this.DMIDGenerator=n}async init(e){return new g(await s(e),this.DMIDGenerator)}async close(){this.$db=null,await u()}};async function h(e,t){t=t.map(e=>{let t=e.content;return e.content=t.replace(/[\x00-\x1F\x7F]/g,``),e.content!==t&&(e.extra={...e.extra,danuni:{...e.extra?.danuni,raw:{...e.extra?.danuni?.raw,content:o.from(t,`utf8`).toString(`base64`)}}}),e});for(let n of f(t,2340))await e.$db.insert(i).values(n).onConflictDoUpdate(a.danmakus)}var g=class extends m{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t){super(e,n),this.$db=e,this.DMIDGenerator=n}async dump(){return await l(this.$db)}get $chunks(){return Promise.resolve(this.$db.query.chunks.findMany())}get $danmakus(){return Promise.resolve(this.$db.query.chunks.findFirst({with:{danmakus:!0}}).then(e=>e?.danmakus??[]))}async listChunks(){return(await this.$chunks).map(e=>new _(this,e.id))}async makeChunk(e){let t=await this.$db.insert(r).values(e).returning();return new _(this,t[0].id)}async upsertDanmakus(e,t=!0){if(e instanceof Map)await this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),await h(this,[...t.values()])}else await h(this,e)}async shrink(){let e=await this.$db.query.chunks.findMany({where:{tmp:!0}});for(let t of e)await new _(this,t.id).delete()}import(e){return e(this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},_=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static async makeChunk(e,t){return e instanceof g?e.makeChunk(t):e.$UniDB.makeChunk(t)}static async assign(t,n){if(n.length<1)return t;let i=t.$UniDB,a=t.id,o=(await t.$chunk()).fromConverted;for(let e of n){let n=await e.$chunk();o&&=!!n.fromConverted;let r=await e.$danmakus;await t.upsertDanmakus(r,!1),await e.delete()}return await i.$db.update(r).set({fromConverted:o}).where(d(r.id,a)),new e(i,a)}static async compare(e,t){let n=await e.$danmakus,r=await t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){return this.$db.select().from(r).where(d(r.id,this.id))}async $chunk(){return(await this.$chunks)[0]}get $danmakus(){return this.$db.query.chunks.findFirst({where:{id:this.id},with:{danmakus:!0}}).then(e=>e?.danmakus??[])}get $count(){return this.$db.$count(n,d(n.chunkID,this.id))}get isDeleted(){return this.$chunks.then(e=>e.length===0)}async upsertDanmakus(e,t=!1,r=!0){let i=new Set;e instanceof Map?(await this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>i.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return i.add(t),{...e,DMID:t}}):e.forEach(e=>{i.add(e.DMID)}),await this.$UniDB.upsertDanmakus(e,r));for(let e of f([...i].map(e=>({chunkID:this.id,DMID:e})),2340))await this.$db.insert(n).values(e).onConflictDoNothing()}import(e){return e(this.$UniDB,this)}async export(e){return e(await this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:await this.$chunk()})}plugin(e){return e(this)}async delete(){await this.$db.transaction(async e=>{let t=(await e.select().from(n).where(d(n.chunkID,this.id))).map(e=>e.DMID);await e.delete(n).where(d(n.chunkID,this.id));for(let r of t)(await e.select().from(n).where(d(n.DMID,r))).length===0&&await e.delete(i).where(d(i.DMID,r));await e.delete(r).where(d(r.id,this.id))})}};export{p as i,_ as n,m as r,g as t};
2
+ //# sourceMappingURL=main-drizzle-e6t8ip_R.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-drizzle-t2QIMdOt.mjs","names":["chunksTable","chunks"],"sources":["../src/utils/array2chunk.ts","../src/core/main-drizzle.ts"],"sourcesContent":["export function* array2chunk<T>(data: readonly T[], size?: number) {\n const MAX_PARAMETERS = Math.pow(2, 16) - 2;\n const parametersPerRecord = data[0] ? Object.keys(data[0]).length : 1;\n const maxSize = Math.floor(MAX_PARAMETERS / parametersPerRecord);\n\n if (!size || size > maxSize) size = maxSize;\n\n for (let i = 0; i < data.length; i += size) {\n yield data.slice(i, i + size);\n }\n}\n","import type { Plugin, Transformer, TransformerInput } from \"@/adapters/index.ts\";\nimport { closeDb, db, dumpDb, initDb } from \"./db/index.ts\";\nimport {\n chunks as chunksTable,\n chunksZod,\n danmakus,\n chunk2danmakus,\n onConflictDoUpdate,\n type DanmakusInsert,\n} from \"./db/schema.ts\";\nimport { eq } from \"drizzle-orm\";\nimport type { Asyncify, Promisable, Simplify } from \"type-fest\";\nimport { createDMID, type DMIDGenerator } from \"./id.ts\";\nimport type { z } from \"zod\";\nimport { array2chunk } from \"@/utils/array2chunk.ts\";\nimport * as base from \"./index.ts\";\n\ntype baseClassTrans<T> = base.baseClassTrans<T, UniDB, InitedUniDB, UniChunk>;\n\nexport class UniDB implements base.UniDB {\n __isUniDB = true;\n constructor(\n public $db = db,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {}\n async init(dump?: File) {\n return new InitedUniDB(await initDb(dump), this.DMIDGenerator);\n }\n async close() {\n this.$db = null;\n await closeDb();\n }\n}\n\nasync function $Private4InitedUniDB_upsertDanmakus(that: InitedUniDB, data: DanmakusInsert[]) {\n data = data.map((d) => {\n const rawContent = d.content;\n // oxlint-disable-next-line no-control-regex\n d.content = rawContent.replace(/[\\x00-\\x1F\\x7F]/g, \"\");\n if (d.content !== rawContent)\n d.extra = {\n ...d.extra,\n danuni: {\n ...d.extra?.danuni,\n raw: {\n ...d.extra?.danuni?.raw,\n content: Buffer.from(rawContent, \"utf8\").toString(\"base64\"),\n },\n },\n };\n return d;\n });\n for (const c of array2chunk(data, 2340))\n await that.$db.insert(danmakus).values(c).onConflictDoUpdate(onConflictDoUpdate.danmakus);\n}\n\nexport class InitedUniDB extends UniDB implements base.InitedUniDB {\n __isInitedUniDB = true;\n constructor(\n public $db: NonNullable<UniDB[\"$db\"]>,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {\n super($db, DMIDGenerator);\n }\n async dump() {\n const dump = await dumpDb(this.$db);\n return dump;\n }\n get $chunks() {\n return Promise.resolve(this.$db.query.chunks.findMany());\n }\n get $danmakus() {\n return Promise.resolve(\n this.$db.query.chunks\n .findFirst({\n with: {\n danmakus: true,\n },\n })\n .then((data) => data?.danmakus ?? []),\n );\n }\n async listChunks() {\n const cs = await this.$chunks;\n return cs.map((c) => new UniChunk(this, c.id));\n }\n async makeChunk(data: Omit<z.infer<typeof chunksZod>, \"id\">) {\n const chunk = await this.$db.insert(chunksTable).values(data).returning();\n return new UniChunk(this, chunk[0].id);\n }\n async upsertDanmakus(data: DanmakusInsert[] | Map<string, DanmakusInsert>, dedupeDMID = true) {\n if (data instanceof Map) await this.upsertDanmakus([...data.values()], false);\n else if (dedupeDMID) {\n const map = new Map<string, DanmakusInsert>();\n data.forEach((d) => {\n map.set(d.DMID, d);\n });\n await $Private4InitedUniDB_upsertDanmakus(this, [...map.values()]);\n } else await $Private4InitedUniDB_upsertDanmakus(this, data);\n }\n /**\n * 清理临时chunks\n */\n async shrink() {\n const uchunks = await this.$db.query.chunks.findMany({\n where: {\n tmp: true,\n },\n });\n for (const c of uchunks) await new UniChunk(this, c.id).delete();\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this);\n }\n async export<T extends Transformer>(transformer: T) {\n return <ReturnType<T>>transformer(await this.$danmakus, { DMIDGenerator: this.DMIDGenerator });\n }\n}\n\nexport class UniChunk implements base.UniChunk {\n __isUniChunk = true;\n constructor(\n public $UniDB: InitedUniDB,\n public id: number,\n ) {}\n get $db() {\n return this.$UniDB.$db;\n }\n static async makeChunk(\n u: TransformerInput<InitedUniDB | UniChunk>,\n data: z.infer<typeof chunksZod>,\n ) {\n return u instanceof InitedUniDB ? u.makeChunk(data) : u.$UniDB.makeChunk(data);\n }\n /**\n * 合并弹幕库\n * @description 将多个chunk的弹幕合并到base chunk中,合并后原chunk会被删除\n * @param base 目标chunk,合并后其他chunk的弹幕会被移到这个chunk中\n * @param chunks 待合并的chunk列表,这些chunk中的弹幕会被移到base chunk中,合并后这些chunk会被删除\n * @returns 合并后的目标chunk实例\n * @throws 如果chunks列表为空,函数会直接返回base chunk;如果目标chunk在数据库中未找到,会抛出错误;如果chunks中有来自不同数据库的chunk且options.allowDifferentDB为false,也会抛出错误\n */\n static async assign(base: UniChunk, chunks: UniChunk[]) {\n if (chunks.length < 1) return base;\n const baseDB = base.$UniDB;\n const targetId = base.id;\n const targetRow = await base.$chunk();\n let newFromConverted = targetRow.fromConverted;\n for (const c of chunks) {\n const srcChunkRow = await c.$chunk();\n newFromConverted = newFromConverted && !!srcChunkRow.fromConverted;\n const srcDanmakus = await c.$danmakus;\n await base.upsertDanmakus(srcDanmakus, false);\n await c.delete();\n }\n await baseDB.$db\n .update(chunksTable)\n .set({ fromConverted: newFromConverted })\n .where(eq(chunksTable.id, targetId));\n return new UniChunk(baseDB, targetId);\n }\n /**\n * 比较两个chunk的弹幕是否相同\n * @description 可用于跨DB比较\n */\n static async compare(u1: UniChunk, u2: UniChunk) {\n const dms1 = await u1.$danmakus;\n const dms2 = await u2.$danmakus;\n if (dms1.length !== dms2.length) return false;\n const dmidSet = new Set<string>();\n for (const dm of dms1) {\n dmidSet.add(dm.DMID);\n }\n for (const dm of dms2) {\n const target = dmidSet.has(dm.DMID);\n if (!target) return false;\n if (JSON.stringify(target) !== JSON.stringify(dm)) return false;\n }\n return true;\n }\n /**\n * 获取当前chunk的数据库记录\n * @description 虽然数组仅会包含一个值,但这里保持数据库原始返回\n */\n get $chunks() {\n return this.$db.select().from(chunksTable).where(eq(chunksTable.id, this.id));\n }\n async $chunk() {\n const c = await this.$chunks;\n return c[0];\n }\n get $danmakus() {\n return this.$db.query.chunks\n .findFirst({\n where: {\n id: this.id,\n },\n with: {\n danmakus: true,\n },\n })\n .then((data) => data?.danmakus ?? []);\n }\n get $count() {\n return this.$db.$count(chunk2danmakus, eq(chunk2danmakus.chunkID, this.id));\n }\n get isDeleted() {\n return this.$chunks.then((cs) => cs.length === 0);\n }\n async upsertDanmakus(\n data: Map<string, DanmakusInsert & { platform: string | null }>,\n autoSetDMID?: false,\n dedupeDMID?: false,\n ): Promise<void>;\n async upsertDanmakus(\n data: Simplify<DanmakusInsert & { DMID: string; platform: string | null }>[],\n autoSetDMID?: false,\n dedupeDMID?: boolean,\n ): Promise<void>;\n async upsertDanmakus(\n data: Simplify<DanmakusInsert & { DMID?: undefined }>[],\n autoSetDMID: true,\n dedupeDMID?: true,\n ): Promise<void>;\n async upsertDanmakus(\n data:\n | (DanmakusInsert & { DMID?: string; platform: string | null })[]\n | Map<string, DanmakusInsert & { platform: string | null }>,\n autoSetDMID = false,\n dedupeDMID = true,\n ) {\n const dmids = new Set<string>();\n if (data instanceof Map) {\n await this.$UniDB.upsertDanmakus([...data.values()], false);\n data.forEach((d) => dmids.add(d.DMID));\n } else {\n if (autoSetDMID)\n data = data.map((d) => {\n const DMID = this.$UniDB.DMIDGenerator(d);\n dmids.add(DMID);\n return { ...d, DMID };\n });\n else\n data.forEach((d) => {\n dmids.add(d.DMID!);\n });\n await this.$UniDB.upsertDanmakus(data, dedupeDMID);\n }\n for (const c of array2chunk(\n [...dmids].map((DMID) => ({ chunkID: this.id, DMID })),\n 2340,\n ))\n await this.$db.insert(chunk2danmakus).values(c).onConflictDoNothing();\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this.$UniDB, this);\n }\n async export<T extends Transformer>(transformer: T) {\n // transformer 格式转换器 不应对数据库执行任何写操作\n return <ReturnType<T>>transformer(await this.$danmakus, {\n DMIDGenerator: this.$UniDB.DMIDGenerator,\n uchunk: await this.$chunk(),\n });\n }\n plugin<T extends Plugin>(plugin: T): baseClassTrans<ReturnType<T>>;\n async plugin<T extends Asyncify<Plugin>>(plugin: T): Promise<baseClassTrans<ReturnType<T>>>;\n plugin<T extends Plugin | Asyncify<Plugin>>(\n plugin: T,\n ): Promisable<baseClassTrans<ReturnType<T>>> {\n const output = <baseClassTrans<ReturnType<T>>>plugin(this);\n return output;\n }\n async delete() {\n await this.$db.transaction(async (tx) => {\n // 1) 查询当前 chunk 对应的 DMID 列表\n const maps = await tx\n .select()\n .from(chunk2danmakus)\n .where(eq(chunk2danmakus.chunkID, this.id));\n const DMIDs = maps.map((m) => m.DMID);\n // 2) 删除映射关系\n await tx.delete(chunk2danmakus).where(eq(chunk2danmakus.chunkID, this.id));\n // 3) 对于不再被任何 chunk 引用的弹幕,删除它们\n for (const id of DMIDs) {\n const still = await tx.select().from(chunk2danmakus).where(eq(chunk2danmakus.DMID, id));\n if (still.length === 0) {\n await tx.delete(danmakus).where(eq(danmakus.DMID, id));\n }\n }\n // 4) 删除 chunk 本身\n await tx.delete(chunksTable).where(eq(chunksTable.id, this.id));\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"main-drizzle-e6t8ip_R.mjs","names":["chunksTable","chunks"],"sources":["../src/utils/array2chunk.ts","../src/core/main-drizzle.ts"],"sourcesContent":["export function* array2chunk<T>(data: readonly T[], size?: number) {\n const MAX_PARAMETERS = Math.pow(2, 16) - 2;\n const parametersPerRecord = data[0] ? Object.keys(data[0]).length : 1;\n const maxSize = Math.floor(MAX_PARAMETERS / parametersPerRecord);\n\n if (!size || size > maxSize) size = maxSize;\n\n for (let i = 0; i < data.length; i += size) {\n yield data.slice(i, i + size);\n }\n}\n","import type { Plugin, Transformer, TransformerInput } from \"@/adapters/index.ts\";\nimport { closeDb, db, dumpDb, initDb } from \"./db/index.ts\";\nimport {\n chunks as chunksTable,\n chunksZod,\n danmakus,\n chunk2danmakus,\n onConflictDoUpdate,\n type DanmakusInsert,\n} from \"./db/schema.ts\";\nimport { eq } from \"drizzle-orm\";\nimport type { Asyncify, Promisable, Simplify } from \"type-fest\";\nimport { createDMID, type DMIDGenerator } from \"./id.ts\";\nimport type { z } from \"zod\";\nimport { array2chunk } from \"@/utils/array2chunk.ts\";\nimport * as base from \"./index.ts\";\n\ntype baseClassTrans<T> = base.baseClassTrans<T, UniDB, InitedUniDB, UniChunk>;\n\nexport class UniDB implements base.UniDB {\n __isUniDB = true;\n constructor(\n public $db = db,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {}\n async init(dump?: File) {\n return new InitedUniDB(await initDb(dump), this.DMIDGenerator);\n }\n async close() {\n this.$db = null;\n await closeDb();\n }\n}\n\nasync function $Private4InitedUniDB_upsertDanmakus(that: InitedUniDB, data: DanmakusInsert[]) {\n data = data.map((d) => {\n const rawContent = d.content;\n // oxlint-disable-next-line no-control-regex\n d.content = rawContent.replace(/[\\x00-\\x1F\\x7F]/g, \"\");\n if (d.content !== rawContent)\n d.extra = {\n ...d.extra,\n danuni: {\n ...d.extra?.danuni,\n raw: {\n ...d.extra?.danuni?.raw,\n content: Buffer.from(rawContent, \"utf8\").toString(\"base64\"),\n },\n },\n };\n return d;\n });\n for (const c of array2chunk(data, 2340))\n await that.$db.insert(danmakus).values(c).onConflictDoUpdate(onConflictDoUpdate.danmakus);\n}\n\nexport class InitedUniDB extends UniDB implements base.InitedUniDB {\n __isInitedUniDB = true;\n constructor(\n public $db: NonNullable<UniDB[\"$db\"]>,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {\n super($db, DMIDGenerator);\n }\n async dump() {\n const dump = await dumpDb(this.$db);\n return dump;\n }\n get $chunks() {\n return Promise.resolve(this.$db.query.chunks.findMany());\n }\n get $danmakus() {\n return Promise.resolve(\n this.$db.query.chunks\n .findFirst({\n with: {\n danmakus: true,\n },\n })\n .then((data) => data?.danmakus ?? []),\n );\n }\n async listChunks() {\n const cs = await this.$chunks;\n return cs.map((c) => new UniChunk(this, c.id));\n }\n async makeChunk(data: Omit<z.infer<typeof chunksZod>, \"id\">) {\n const chunk = await this.$db.insert(chunksTable).values(data).returning();\n return new UniChunk(this, chunk[0].id);\n }\n async upsertDanmakus(data: DanmakusInsert[] | Map<string, DanmakusInsert>, dedupeDMID = true) {\n if (data instanceof Map) await this.upsertDanmakus([...data.values()], false);\n else if (dedupeDMID) {\n const map = new Map<string, DanmakusInsert>();\n data.forEach((d) => {\n map.set(d.DMID, d);\n });\n await $Private4InitedUniDB_upsertDanmakus(this, [...map.values()]);\n } else await $Private4InitedUniDB_upsertDanmakus(this, data);\n }\n /**\n * 清理临时chunks\n */\n async shrink() {\n const uchunks = await this.$db.query.chunks.findMany({\n where: {\n tmp: true,\n },\n });\n for (const c of uchunks) await new UniChunk(this, c.id).delete();\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this);\n }\n async export<T extends Transformer>(transformer: T) {\n return <ReturnType<T>>transformer(await this.$danmakus, { DMIDGenerator: this.DMIDGenerator });\n }\n}\n\nexport class UniChunk implements base.UniChunk {\n __isUniChunk = true;\n constructor(\n public $UniDB: InitedUniDB,\n public id: number,\n ) {}\n get $db() {\n return this.$UniDB.$db;\n }\n static async makeChunk(\n u: TransformerInput<InitedUniDB | UniChunk>,\n data: z.infer<typeof chunksZod>,\n ) {\n return u instanceof InitedUniDB ? u.makeChunk(data) : u.$UniDB.makeChunk(data);\n }\n /**\n * 合并弹幕库\n * @description 将多个chunk的弹幕合并到base chunk中,合并后原chunk会被删除\n * @param base 目标chunk,合并后其他chunk的弹幕会被移到这个chunk中\n * @param chunks 待合并的chunk列表,这些chunk中的弹幕会被移到base chunk中,合并后这些chunk会被删除\n * @returns 合并后的目标chunk实例\n * @throws 如果chunks列表为空,函数会直接返回base chunk;如果目标chunk在数据库中未找到,会抛出错误;如果chunks中有来自不同数据库的chunk且options.allowDifferentDB为false,也会抛出错误\n */\n static async assign(base: UniChunk, chunks: UniChunk[]) {\n if (chunks.length < 1) return base;\n const baseDB = base.$UniDB;\n const targetId = base.id;\n const targetRow = await base.$chunk();\n let newFromConverted = targetRow.fromConverted;\n for (const c of chunks) {\n const srcChunkRow = await c.$chunk();\n newFromConverted = newFromConverted && !!srcChunkRow.fromConverted;\n const srcDanmakus = await c.$danmakus;\n await base.upsertDanmakus(srcDanmakus, false);\n await c.delete();\n }\n await baseDB.$db\n .update(chunksTable)\n .set({ fromConverted: newFromConverted })\n .where(eq(chunksTable.id, targetId));\n return new UniChunk(baseDB, targetId);\n }\n /**\n * 比较两个chunk的弹幕是否相同\n * @description 可用于跨DB比较\n */\n static async compare(u1: UniChunk, u2: UniChunk) {\n const dms1 = await u1.$danmakus;\n const dms2 = await u2.$danmakus;\n if (dms1.length !== dms2.length) return false;\n const dmidSet = new Set<string>();\n for (const dm of dms1) {\n dmidSet.add(dm.DMID);\n }\n for (const dm of dms2) {\n const target = dmidSet.has(dm.DMID);\n if (!target) return false;\n if (JSON.stringify(target) !== JSON.stringify(dm)) return false;\n }\n return true;\n }\n /**\n * 获取当前chunk的数据库记录\n * @description 虽然数组仅会包含一个值,但这里保持数据库原始返回\n */\n get $chunks() {\n return this.$db.select().from(chunksTable).where(eq(chunksTable.id, this.id));\n }\n async $chunk() {\n const c = await this.$chunks;\n return c[0];\n }\n get $danmakus() {\n return this.$db.query.chunks\n .findFirst({\n where: {\n id: this.id,\n },\n with: {\n danmakus: true,\n },\n })\n .then((data) => data?.danmakus ?? []);\n }\n get $count() {\n return this.$db.$count(chunk2danmakus, eq(chunk2danmakus.chunkID, this.id));\n }\n get isDeleted() {\n return this.$chunks.then((cs) => cs.length === 0);\n }\n async upsertDanmakus(\n data: Map<string, DanmakusInsert & { platform: string | null }>,\n autoSetDMID?: false,\n dedupeDMID?: false,\n ): Promise<void>;\n async upsertDanmakus(\n data: Simplify<DanmakusInsert & { DMID: string; platform: string | null }>[],\n autoSetDMID?: false,\n dedupeDMID?: boolean,\n ): Promise<void>;\n async upsertDanmakus(\n data: Simplify<DanmakusInsert & { DMID?: undefined }>[],\n autoSetDMID: true,\n dedupeDMID?: true,\n ): Promise<void>;\n async upsertDanmakus(\n data:\n | (DanmakusInsert & { DMID?: string; platform: string | null })[]\n | Map<string, DanmakusInsert & { platform: string | null }>,\n autoSetDMID = false,\n dedupeDMID = true,\n ) {\n const dmids = new Set<string>();\n if (data instanceof Map) {\n await this.$UniDB.upsertDanmakus([...data.values()], false);\n data.forEach((d) => dmids.add(d.DMID));\n } else {\n if (autoSetDMID)\n data = data.map((d) => {\n const DMID = this.$UniDB.DMIDGenerator(d);\n dmids.add(DMID);\n return { ...d, DMID };\n });\n else\n data.forEach((d) => {\n dmids.add(d.DMID!);\n });\n await this.$UniDB.upsertDanmakus(data, dedupeDMID);\n }\n for (const c of array2chunk(\n [...dmids].map((DMID) => ({ chunkID: this.id, DMID })),\n 2340,\n ))\n await this.$db.insert(chunk2danmakus).values(c).onConflictDoNothing();\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this.$UniDB, this);\n }\n async export<T extends Transformer>(transformer: T) {\n // transformer 格式转换器 不应对数据库执行任何写操作\n return <ReturnType<T>>transformer(await this.$danmakus, {\n DMIDGenerator: this.$UniDB.DMIDGenerator,\n uchunk: await this.$chunk(),\n });\n }\n plugin<T extends Plugin>(plugin: T): baseClassTrans<ReturnType<T>>;\n async plugin<T extends Asyncify<Plugin>>(plugin: T): Promise<baseClassTrans<ReturnType<T>>>;\n plugin<T extends Plugin | Asyncify<Plugin>>(\n plugin: T,\n ): Promisable<baseClassTrans<ReturnType<T>>> {\n const output = <baseClassTrans<ReturnType<T>>>plugin(this);\n return output;\n }\n async delete() {\n await this.$db.transaction(async (tx) => {\n // 1) 查询当前 chunk 对应的 DMID 列表\n const maps = await tx\n .select()\n .from(chunk2danmakus)\n .where(eq(chunk2danmakus.chunkID, this.id));\n const DMIDs = maps.map((m) => m.DMID);\n // 2) 删除映射关系\n await tx.delete(chunk2danmakus).where(eq(chunk2danmakus.chunkID, this.id));\n // 3) 对于不再被任何 chunk 引用的弹幕,删除它们\n for (const id of DMIDs) {\n const still = await tx.select().from(chunk2danmakus).where(eq(chunk2danmakus.DMID, id));\n if (still.length === 0) {\n await tx.delete(danmakus).where(eq(danmakus.DMID, id));\n }\n }\n // 4) 删除 chunk 本身\n await tx.delete(chunksTable).where(eq(chunksTable.id, this.id));\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- const e=require("./rolldown-runtime-DWNI8pZO.cjs"),t=require("./core-BIxWu_32.cjs");var n=class e{#e=new Map;#t=[];#n=0;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0}toJSON(){return{$typeName:`SerialMap`,"#map":this.#e.entries().toArray(),"#freeSerials":this.#t,"#nextSerial":this.#n}}static fromJSON(t){if(t.$typeName!==`SerialMap`)throw Error(`Invalid data for SerialMap`);let n=new e;return n.#e=new Map(t[`#map`]),n.#t=t[`#freeSerials`],n.#n=t[`#nextSerial`],n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`SerialMap`}},r=class e{#e=new Map;#t=[];#n=0n;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0n}toJSON(){return{$typeName:`BigSerialMap`,"#map":this.#e.entries().map(([e,t])=>[e.toString(),t]).toArray(),"#freeSerials":this.#t.map(e=>e.toString()),"#nextSerial":this.#n.toString()}}static fromJSON(t){if(t.$typeName!==`BigSerialMap`)throw Error(`Invalid data for BigSerialMap`);let n=new e;return n.#e=new Map(t[`#map`].map(([e,t])=>[BigInt(e),t])),n.#t=t[`#freeSerials`].map(BigInt),n.#n=BigInt(t[`#nextSerial`]),n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`BigSerialMap`}},i=e.t({InitedUniDB:()=>l,UniChunk:()=>u,UniDB:()=>s,initNewDb:()=>o});const a={danmakus:new Map,chunks:new n,chunk2danmakus:new r};function o(){return{...a}}var s=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=a,n=t.y){this.$db=e,this.DMIDGenerator=n}init(e){return e?this.$db={danmakus:new Map(e.danmakus.map(e=>[e.DMID,e])),chunks:n.fromJSON(e.chunks),chunk2danmakus:r.fromJSON(e.chunk2danmakus)}:this.$db=a,new l(this.$db,this.DMIDGenerator)}close(){this.$db={danmakus:new Map,chunks:new n,chunk2danmakus:new r}}};function c(e,t){t.forEach(t=>{let n=t.content;t.content=n.replace(/[\x00-\x1F\x7F]/g,``),t.content!==n&&(t.extra={...t.extra,danuni:{...t.extra?.danuni,raw:{...t.extra?.danuni?.raw,content:Buffer.from(n,`utf8`).toString(`base64`)}}}),e.$db.danmakus.set(t.DMID,{...t,platform:t.platform??null})})}var l=class extends s{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t.y){super(e,n),this.$db=e,this.DMIDGenerator=n}dump(){return{danmakus:[...this.$db.danmakus.values()],chunks:this.$db.chunks.toJSON(),chunk2danmakus:this.$db.chunk2danmakus.toJSON()}}get $chunks(){return[...this.$db.chunks.values()]}get $danmakus(){return[...this.$db.danmakus.values()]}listChunks(){return this.$chunks.map(e=>new u(this,e.id))}makeChunk(e){let t=this.$db.chunks.nextSerial;return this.$db.chunks.set(t,{id:t,fromConverted:e.fromConverted??!1,tmp:e.tmp??!1}),new u(this,t)}upsertDanmakus(e,t=!0){if(e instanceof Map)this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),c(this,[...t.values()])}else c(this,e)}shrink(){let e=this.$db.chunks.values().filter(e=>e.tmp);for(let t of e)new u(this,t.id).delete()}import(e){return e(this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},u=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static makeChunk(e,t){return e instanceof l?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(t,n){if(n.length<1)return t;let r=t.id,i=t.$chunk(),a=i.fromConverted;for(let e of n){let n=e.$chunk();a&&=!!n.fromConverted,t.upsertDanmakus(e.$danmakus,!1),e.delete()}return t.$db.chunks.set(r,{...i,fromConverted:a}),new e(t.$UniDB,r)}static compare(e,t){let n=e.$danmakus,r=t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){let e=this.$db.chunks.get(this.id);return e?[e]:[]}$chunk(){return this.$chunks[0]}get $danmakus(){return[...this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).map(e=>this.$db.danmakus.get(e.DMID)).filter(e=>!!e)]}get $count(){return this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).reduce(e=>e+1,0)}get isDeleted(){return!this.$db.chunks.has(this.id)}upsertDanmakus(e,t=!1,n=!0){let r=new Set;e instanceof Map?(this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>r.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return r.add(t),{...e,DMID:t}}):e.forEach(e=>{r.add(e.DMID)}),this.$UniDB.upsertDanmakus(e,n)),r.forEach(e=>{let t=this.$db.chunk2danmakus.nextSerial;this.$db.chunk2danmakus.set(t,{id:t,chunkID:this.id,DMID:e})})}import(e){return e(this.$UniDB,this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:this.$chunk()})}plugin(e){return e(this)}delete(){let e=new Set;this.$db.chunk2danmakus.forEach(t=>{t.chunkID===this.id&&(e.add(t.DMID),this.$db.chunk2danmakus.delete(t.id))}),e.forEach(e=>{this.$db.chunk2danmakus.values().some(t=>t.DMID===e)||this.$db.danmakus.delete(e)}),this.$db.chunks.delete(this.id)}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
1
+ const e=require("./rolldown-runtime-DWNI8pZO.cjs"),t=require("./core-DlEY_W5o.cjs");var n=class e{#e=new Map;#t=[];#n=0;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0}toJSON(){return{$typeName:`SerialMap`,"#map":this.#e.entries().toArray(),"#freeSerials":this.#t,"#nextSerial":this.#n}}static fromJSON(t){if(t.$typeName!==`SerialMap`)throw Error(`Invalid data for SerialMap`);let n=new e;return n.#e=new Map(t[`#map`]),n.#t=t[`#freeSerials`],n.#n=t[`#nextSerial`],n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`SerialMap`}},r=class e{#e=new Map;#t=[];#n=0n;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0n}toJSON(){return{$typeName:`BigSerialMap`,"#map":this.#e.entries().map(([e,t])=>[e.toString(),t]).toArray(),"#freeSerials":this.#t.map(e=>e.toString()),"#nextSerial":this.#n.toString()}}static fromJSON(t){if(t.$typeName!==`BigSerialMap`)throw Error(`Invalid data for BigSerialMap`);let n=new e;return n.#e=new Map(t[`#map`].map(([e,t])=>[BigInt(e),t])),n.#t=t[`#freeSerials`].map(BigInt),n.#n=BigInt(t[`#nextSerial`]),n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`BigSerialMap`}},i=e.t({InitedUniDB:()=>l,UniChunk:()=>u,UniDB:()=>s,initNewDb:()=>o});const a={danmakus:new Map,chunks:new n,chunk2danmakus:new r};function o(){return{...a}}var s=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=a,n=t.y){this.$db=e,this.DMIDGenerator=n}init(e){return e?this.$db={danmakus:new Map(e.danmakus.map(e=>[e.DMID,e])),chunks:n.fromJSON(e.chunks),chunk2danmakus:r.fromJSON(e.chunk2danmakus)}:this.$db=a,new l(this.$db,this.DMIDGenerator)}close(){this.$db={danmakus:new Map,chunks:new n,chunk2danmakus:new r}}};function c(e,t){t.forEach(t=>{let n=t.content;t.content=n.replace(/[\x00-\x1F\x7F]/g,``),t.content!==n&&(t.extra={...t.extra,danuni:{...t.extra?.danuni,raw:{...t.extra?.danuni?.raw,content:Buffer.from(n,`utf8`).toString(`base64`)}}}),e.$db.danmakus.set(t.DMID,{...t,platform:t.platform??null})})}var l=class extends s{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t.y){super(e,n),this.$db=e,this.DMIDGenerator=n}dump(){return{danmakus:[...this.$db.danmakus.values()],chunks:this.$db.chunks.toJSON(),chunk2danmakus:this.$db.chunk2danmakus.toJSON()}}get $chunks(){return[...this.$db.chunks.values()]}get $danmakus(){return[...this.$db.danmakus.values()]}listChunks(){return this.$chunks.map(e=>new u(this,e.id))}makeChunk(e){let t=this.$db.chunks.nextSerial;return this.$db.chunks.set(t,{id:t,fromConverted:e.fromConverted??!1,tmp:e.tmp??!1}),new u(this,t)}upsertDanmakus(e,t=!0){if(e instanceof Map)this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),c(this,[...t.values()])}else c(this,e)}shrink(){let e=this.$db.chunks.values().filter(e=>e.tmp);for(let t of e)new u(this,t.id).delete()}import(e){return e(this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},u=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static makeChunk(e,t){return e instanceof l?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(t,n){if(n.length<1)return t;let r=t.id,i=t.$chunk(),a=i.fromConverted;for(let e of n){let n=e.$chunk();a&&=!!n.fromConverted,t.upsertDanmakus(e.$danmakus,!1),e.delete()}return t.$db.chunks.set(r,{...i,fromConverted:a}),new e(t.$UniDB,r)}static compare(e,t){let n=e.$danmakus,r=t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){let e=this.$db.chunks.get(this.id);return e?[e]:[]}$chunk(){return this.$chunks[0]}get $danmakus(){return[...this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).map(e=>this.$db.danmakus.get(e.DMID)).filter(e=>!!e)]}get $count(){return this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).reduce(e=>e+1,0)}get isDeleted(){return!this.$db.chunks.has(this.id)}upsertDanmakus(e,t=!1,n=!0){let r=new Set;e instanceof Map?(this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>r.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return r.add(t),{...e,DMID:t}}):e.forEach(e=>{r.add(e.DMID)}),this.$UniDB.upsertDanmakus(e,n)),r.forEach(e=>{let t=this.$db.chunk2danmakus.nextSerial;this.$db.chunk2danmakus.set(t,{id:t,chunkID:this.id,DMID:e})})}import(e){return e(this.$UniDB,this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:this.$chunk()})}plugin(e){return e(this)}delete(){let e=new Set;this.$db.chunk2danmakus.forEach(t=>{t.chunkID===this.id&&(e.add(t.DMID),this.$db.chunk2danmakus.delete(t.id))}),e.forEach(e=>{this.$db.chunk2danmakus.values().some(t=>t.DMID===e)||this.$db.danmakus.delete(e)}),this.$db.chunks.delete(this.id)}};Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return l}});
@@ -1,4 +1,4 @@
1
- import { $ as UDanmaku, J as ChunksInsert, Q as UChunk2Danmaku, St as DMIDGenerator, Tt as Promisable, X as InitedUniDB$1, Y as DanmakusInsert, Z as UChunk, a as TransformerInput, et as UniChunk$1, i as Transformer, nt as baseClassTrans$1, q as AdapterStore, r as Plugin, tt as UniDB$1, wt as Asyncify } from "./index-DGPhFGo_.mjs";
1
+ import { $ as AdapterStore, At as Asyncify, Ot as DMIDGenerator, a as TransformerInput, at as UDanmaku, ct as baseClassTrans$1, et as ChunksInsert, i as Transformer, it as UChunk2Danmaku, jt as Promisable, nt as InitedUniDB$1, ot as UniChunk$1, r as Plugin, rt as UChunk, st as UniDB$1, tt as DanmakusInsert } from "./index-CZxg5lKa.mjs";
2
2
  import { t as Simplify } from "./simplify-d7VEIjlJ.mjs";
3
3
 
4
4
  //#region src/utils/serialMap.d.ts
@@ -147,4 +147,4 @@ declare class UniChunk implements UniChunk$1 {
147
147
  }
148
148
  //#endregion
149
149
  export { main_pure_d_exports as a, initNewDb as i, UniChunk as n, UniDB as r, InitedUniDB as t };
150
- //# sourceMappingURL=main-pure-CAPzq-ue.d.mts.map
150
+ //# sourceMappingURL=main-pure-CdJHQ8it.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-pure-CAPzq-ue.d.mts","names":[],"sources":["../src/utils/serialMap.ts","../src/core/main-pure.ts"],"mappings":";;;;KAAK,cAAA,MAAoB,GAAG,SAAS,CAAA;AAAA,cACxB,SAAA,eAAwB,GAAA,SAAY,CAAA;EAAA;MAI3C,UAAA;EAIJ,GAAA,CAAI,KAAA,EAAO,CAAA;EAIX,MAAA,CAAO,MAAA;EAKP,KAAA;EAKA,MAAA;IAEI,SAAA;IACA,MAAA,WAAM,CAAA;IACN,cAAA;IACA,aAAA;EAAA;EAAA,OAGG,QAAA,IAAY,IAAA,EAAM,UAAA,CAAW,SAAA,CAAU,CAAA,eAAgB,SAAA,CAAU,CAAA;EAAA,IAQpE,IAAA;EAGJ,GAAA,IAAO,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA;EAGvC,GAAA,IAAO,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA,YAAU,CAAA;EAGjD,GAAA,IAAO,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA;EAIvC,WAAA,IAAe,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA,oBAAkB,CAAA;EAGjE,mBAAA,IAAuB,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA,4BAA0B,CAAA;EAGjF,OAAA,IAAW,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA;EAG3C,IAAA,IAAQ,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA,aAAW,WAAA;EAGnD,MAAA,IAAU,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA,eAAa,WAAA,CAAA,CAAA;EAGvD,OAAA,IAAW,IAAA,EAAM,UAAA,CAAW,cAAA,CAAe,CAAA,gBAAc,WAAA,UAAA,CAAA;EAAA,CAGxD,MAAA,CAAO,QAAA,KAAS,WAAA,UAAA,CAAA;EAAA,KAGZ,MAAA,CAAO,WAAA;AAAA;AAAA,KAKT,iBAAA,MAAuB,GAAG,SAAS,CAAA;AAAA,cAC3B,YAAA,eAA2B,GAAA,SAAY,CAAA;EAAA;MAI9C,UAAA;EAIJ,GAAA,CAAI,KAAA,EAAO,CAAA;EAIX,MAAA,CAAO,MAAA;EAKP,KAAA;EAKA,MAAA;IAEI,SAAA;IACA,MAAA,WAAM,CAAA;IAIN,cAAA;IACA,aAAA;EAAA;EAAA,OAGG,QAAA,IAAY,IAAA,EAAM,UAAA,CAAW,YAAA,CAAa,CAAA,eAAgB,YAAA,CAAa,CAAA;EAAA,IAQ1E,IAAA;EAGJ,GAAA,IAAO,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA;EAG1C,GAAA,IAAO,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA,YAAU,CAAA;EAGpD,GAAA,IAAO,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA;EAI1C,WAAA,IAAe,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA,oBAAkB,CAAA;EAGpE,mBAAA,IAAuB,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA,4BAA0B,CAAA;EAGpF,OAAA,IAAW,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA;EAG9C,IAAA,IAAQ,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA,aAAW,WAAA;EAGtD,MAAA,IAAU,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA,eAAa,WAAA,CAAA,CAAA;EAG1D,OAAA,IAAW,IAAA,EAAM,UAAA,CAAW,iBAAA,CAAkB,CAAA,gBAAc,WAAA,UAAA,CAAA;EAAA,CAG3D,MAAA,CAAO,QAAA,KAAS,WAAA,UAAA,CAAA;EAAA,KAGZ,MAAA,CAAO,WAAA;AAAA;AAAA;;;KCpJT,cAAA,MAAoB,gBAAA,CAAoB,CAAA,EAAG,KAAA,EAAO,WAAA,EAAa,QAAA;AAAA,UAE1D,KAAA;EACR,QAAA,EAAU,QAAA;EACV,MAAA,EAAQ,UAAA,CAAW,SAAA,CAAU,MAAA;EAC7B,cAAA,EAAgB,UAAA,CAAW,YAAA,CAAa,cAAA;AAAA;AAAA,UAGhC,KAAA;EACR,QAAA,EAAU,GAAA,SAAY,QAAA;EACtB,MAAA,EAAQ,SAAA,CAAU,MAAA;EAClB,cAAA,EAAgB,YAAA,CAAa,cAAA;AAAA;AAAA,iBAQf,SAAA;YAVJ,GAAA,SAAY,QAAA;UACd,SAAA,CAAU,MAAA;kBACF,YAAA,CAAa,cAAA;AAAA;AAAA,cAYlB,KAAA,YAAiB,OAAA;EAGnB,GAAA,EAAK,KAAA;EACL,aAAA,EAAe,aAAA;EAHxB,SAAA;EACA,WAAA,CACS,GAAA,GAAK,KAAA,EACL,aAAA,GAAe,aAAA;EAExB,IAAA,CAAK,KAAA,GAAQ,KAAA,GAAK,WAAA;EAUlB,KAAA;AAAA;AAAA,cAyBW,WAAA,SAAoB,KAAA,YAAiB,aAAA;EAGvC,GAAA,EAAK,KAAA;EACL,aAAA,EAAe,aAAA;EAHxB,eAAA;EACA,WAAA,CACS,GAAA,EAAK,KAAA,EACL,aAAA,GAAe,aAAA;EAIxB,IAAA,IAAQ,KAAA;EAAA,IAOJ,OAAA,IAAO,MAAA;EAAA,IAGP,SAAA,IAAS,QAAA;EAGb,UAAA,IAAU,QAAA;EAIV,SAAA,CAAU,IAAA,EAAM,IAAA,CAAK,YAAA,UAAwB,QAAA;EAS7C,cAAA,CACE,IAAA,EAAM,cAAA,KAAwB,GAAA,SAAY,cAAA,GAC1C,UAAA;EDnDsC;;;ECiExC,MAAA;EAIA,MAAA,CAAO,YAAA,EAAc,YAAA,GAAoB,UAAA,CAAW,QAAA;EAGpD,MAAA,WAAiB,WAAA,EAAa,WAAA,EAAa,CAAA,GAAI,UAAA,CAAW,CAAA;EACpD,MAAA,WAAiB,QAAA,CAAS,WAAA,GAAc,WAAA,EAAa,CAAA,GAAI,OAAA,CAAQ,UAAA,CAAW,CAAA;AAAA;AAAA,cAMvE,QAAA,YAAoB,UAAA;EAGtB,MAAA,EAAQ,WAAA;EACR,EAAA;EAHT,YAAA;EACA,WAAA,CACS,MAAA,EAAQ,WAAA,EACR,EAAA;EAAA,IAEL,GAAA,IAAG,KAAA;EAAA,OAGA,SAAA,CAAU,CAAA,EAAG,gBAAA,CAAiB,WAAA,GAAc,QAAA,GAAW,IAAA,EAAM,YAAA,GAAoB,QAAA;ED5E7C;;;;;;;;EAAA,OCuFpC,MAAA,CAAO,IAAA,EAAM,QAAA,EAAU,MAAA,EAAQ,QAAA,KAAU,QAAA;EDzJb;;;;EAAA,OC2K5B,OAAA,CAAQ,EAAA,EAAI,QAAA,EAAU,EAAA,EAAI,QAAA;EAAA,IAe7B,OAAA,IAAO,MAAA;EAIX,MAAA,IAAM,MAAA;EAAA,IAIF,SAAA,IAAS,QAAA;EAAA,IAOT,MAAA;EAAA,IAIA,SAAA;EAGJ,cAAA,CACE,IAAA,EAAM,GAAA,SAAY,cAAA;IAAwB,QAAA;EAAA,IAC1C,WAAA,UACA,UAAA;EAEF,cAAA,CACE,IAAA,EAAM,QAAA,CAAS,cAAA;IAAwB,IAAA;IAAc,QAAA;EAAA,MACrD,WAAA,UACA,UAAA;EAEF,cAAA,CACE,IAAA,EAAM,QAAA,CAAS,cAAA;IAAwB,IAAA;EAAA,MACvC,WAAA,QACA,UAAA;EAmCF,MAAA,CAAO,YAAA,EAAc,YAAA,GAAoB,UAAA,CAAW,QAAA;EAGpD,MAAA,WAAiB,WAAA,EAAa,WAAA,EAAa,CAAA,GAAI,UAAA,CAAW,CAAA;EACpD,MAAA,WAAiB,QAAA,CAAS,WAAA,GAAc,WAAA,EAAa,CAAA,GAAI,OAAA,CAAQ,UAAA,CAAW,CAAA;EAQlF,MAAA,WAAiB,MAAA,EAAQ,MAAA,EAAQ,CAAA,GAAI,cAAA,CAAe,UAAA,CAAW,CAAA;EAC/D,MAAA,WAAiB,QAAA,CAAS,MAAA,GAAS,MAAA,EAAQ,CAAA,GAAI,OAAA,CAAQ,cAAA,CAAe,UAAA,CAAW,CAAA;EAOjF,MAAA;AAAA"}
1
+ {"version":3,"file":"main-pure-CdJHQ8it.d.mts","names":[],"sources":["../src/utils/serialMap.ts","../src/core/main-pure.ts"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{y as t}from"./core-CMk2Mwxi.mjs";import{t as n}from"./_polyfill-node.buffer-DsMhZhzX.mjs";var r=class e{#e=new Map;#t=[];#n=0;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0}toJSON(){return{$typeName:`SerialMap`,"#map":this.#e.entries().toArray(),"#freeSerials":this.#t,"#nextSerial":this.#n}}static fromJSON(t){if(t.$typeName!==`SerialMap`)throw Error(`Invalid data for SerialMap`);let n=new e;return n.#e=new Map(t[`#map`]),n.#t=t[`#freeSerials`],n.#n=t[`#nextSerial`],n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`SerialMap`}},i=class e{#e=new Map;#t=[];#n=0n;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0n}toJSON(){return{$typeName:`BigSerialMap`,"#map":this.#e.entries().map(([e,t])=>[e.toString(),t]).toArray(),"#freeSerials":this.#t.map(e=>e.toString()),"#nextSerial":this.#n.toString()}}static fromJSON(t){if(t.$typeName!==`BigSerialMap`)throw Error(`Invalid data for BigSerialMap`);let n=new e;return n.#e=new Map(t[`#map`].map(([e,t])=>[BigInt(e),t])),n.#t=t[`#freeSerials`].map(BigInt),n.#n=BigInt(t[`#nextSerial`]),n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`BigSerialMap`}},a=e({InitedUniDB:()=>u,UniChunk:()=>d,UniDB:()=>c,initNewDb:()=>s});const o={danmakus:new Map,chunks:new r,chunk2danmakus:new i};function s(){return{...o}}var c=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=o,n=t){this.$db=e,this.DMIDGenerator=n}init(e){return e?this.$db={danmakus:new Map(e.danmakus.map(e=>[e.DMID,e])),chunks:r.fromJSON(e.chunks),chunk2danmakus:i.fromJSON(e.chunk2danmakus)}:this.$db=o,new u(this.$db,this.DMIDGenerator)}close(){this.$db={danmakus:new Map,chunks:new r,chunk2danmakus:new i}}};function l(e,t){t.forEach(t=>{let r=t.content;t.content=r.replace(/[\x00-\x1F\x7F]/g,``),t.content!==r&&(t.extra={...t.extra,danuni:{...t.extra?.danuni,raw:{...t.extra?.danuni?.raw,content:n.from(r,`utf8`).toString(`base64`)}}}),e.$db.danmakus.set(t.DMID,{...t,platform:t.platform??null})})}var u=class extends c{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t){super(e,n),this.$db=e,this.DMIDGenerator=n}dump(){return{danmakus:[...this.$db.danmakus.values()],chunks:this.$db.chunks.toJSON(),chunk2danmakus:this.$db.chunk2danmakus.toJSON()}}get $chunks(){return[...this.$db.chunks.values()]}get $danmakus(){return[...this.$db.danmakus.values()]}listChunks(){return this.$chunks.map(e=>new d(this,e.id))}makeChunk(e){let t=this.$db.chunks.nextSerial;return this.$db.chunks.set(t,{id:t,fromConverted:e.fromConverted??!1,tmp:e.tmp??!1}),new d(this,t)}upsertDanmakus(e,t=!0){if(e instanceof Map)this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),l(this,[...t.values()])}else l(this,e)}shrink(){let e=this.$db.chunks.values().filter(e=>e.tmp);for(let t of e)new d(this,t.id).delete()}import(e){return e(this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},d=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static makeChunk(e,t){return e instanceof u?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(t,n){if(n.length<1)return t;let r=t.id,i=t.$chunk(),a=i.fromConverted;for(let e of n){let n=e.$chunk();a&&=!!n.fromConverted,t.upsertDanmakus(e.$danmakus,!1),e.delete()}return t.$db.chunks.set(r,{...i,fromConverted:a}),new e(t.$UniDB,r)}static compare(e,t){let n=e.$danmakus,r=t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){let e=this.$db.chunks.get(this.id);return e?[e]:[]}$chunk(){return this.$chunks[0]}get $danmakus(){return[...this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).map(e=>this.$db.danmakus.get(e.DMID)).filter(e=>!!e)]}get $count(){return this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).reduce(e=>e+1,0)}get isDeleted(){return!this.$db.chunks.has(this.id)}upsertDanmakus(e,t=!1,n=!0){let r=new Set;e instanceof Map?(this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>r.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return r.add(t),{...e,DMID:t}}):e.forEach(e=>{r.add(e.DMID)}),this.$UniDB.upsertDanmakus(e,n)),r.forEach(e=>{let t=this.$db.chunk2danmakus.nextSerial;this.$db.chunk2danmakus.set(t,{id:t,chunkID:this.id,DMID:e})})}import(e){return e(this.$UniDB,this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:this.$chunk()})}plugin(e){return e(this)}delete(){let e=new Set;this.$db.chunk2danmakus.forEach(t=>{t.chunkID===this.id&&(e.add(t.DMID),this.$db.chunk2danmakus.delete(t.id))}),e.forEach(e=>{this.$db.chunk2danmakus.values().some(t=>t.DMID===e)||this.$db.danmakus.delete(e)}),this.$db.chunks.delete(this.id)}};export{a,s as i,d as n,c as r,u as t};
2
- //# sourceMappingURL=main-pure-CLnUZB7g.mjs.map
1
+ import{t as e}from"./rolldown-runtime-DK3Fl9T5.mjs";import{y as t}from"./core-CUJ70zNS.mjs";import{t as n}from"./_polyfill-node.buffer-DsMhZhzX.mjs";var r=class e{#e=new Map;#t=[];#n=0;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0}toJSON(){return{$typeName:`SerialMap`,"#map":this.#e.entries().toArray(),"#freeSerials":this.#t,"#nextSerial":this.#n}}static fromJSON(t){if(t.$typeName!==`SerialMap`)throw Error(`Invalid data for SerialMap`);let n=new e;return n.#e=new Map(t[`#map`]),n.#t=t[`#freeSerials`],n.#n=t[`#nextSerial`],n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`SerialMap`}},i=class e{#e=new Map;#t=[];#n=0n;get nextSerial(){return this.#t.length>0?this.#t.shift():this.#n++}add(e){return this.#e.set(this.nextSerial,e),this}delete(e){let t=this.#e.delete(e);return t&&this.#t.push(e),t}clear(){this.#e.clear(),this.#t=[],this.#n=0n}toJSON(){return{$typeName:`BigSerialMap`,"#map":this.#e.entries().map(([e,t])=>[e.toString(),t]).toArray(),"#freeSerials":this.#t.map(e=>e.toString()),"#nextSerial":this.#n.toString()}}static fromJSON(t){if(t.$typeName!==`BigSerialMap`)throw Error(`Invalid data for BigSerialMap`);let n=new e;return n.#e=new Map(t[`#map`].map(([e,t])=>[BigInt(e),t])),n.#t=t[`#freeSerials`].map(BigInt),n.#n=BigInt(t[`#nextSerial`]),n}get size(){return this.#e.size}has(...e){return this.#e.has(...e)}get(...e){return this.#e.get(...e)}set(...e){return this.#e.set(...e),this}getOrInsert(...e){return this.#e.getOrInsert(...e)}getOrInsertComputed(...e){return this.#e.getOrInsertComputed(...e)}forEach(...e){return this.#e.forEach(...e)}keys(...e){return this.#e.keys(...e)}values(...e){return this.#e.values(...e)}entries(...e){return this.#e.entries(...e)}[Symbol.iterator](){return this.#e[Symbol.iterator]()}get[Symbol.toStringTag](){return`BigSerialMap`}},a=e({InitedUniDB:()=>u,UniChunk:()=>d,UniDB:()=>c,initNewDb:()=>s});const o={danmakus:new Map,chunks:new r,chunk2danmakus:new i};function s(){return{...o}}var c=class{$db;DMIDGenerator;__isUniDB=!0;constructor(e=o,n=t){this.$db=e,this.DMIDGenerator=n}init(e){return e?this.$db={danmakus:new Map(e.danmakus.map(e=>[e.DMID,e])),chunks:r.fromJSON(e.chunks),chunk2danmakus:i.fromJSON(e.chunk2danmakus)}:this.$db=o,new u(this.$db,this.DMIDGenerator)}close(){this.$db={danmakus:new Map,chunks:new r,chunk2danmakus:new i}}};function l(e,t){t.forEach(t=>{let r=t.content;t.content=r.replace(/[\x00-\x1F\x7F]/g,``),t.content!==r&&(t.extra={...t.extra,danuni:{...t.extra?.danuni,raw:{...t.extra?.danuni?.raw,content:n.from(r,`utf8`).toString(`base64`)}}}),e.$db.danmakus.set(t.DMID,{...t,platform:t.platform??null})})}var u=class extends c{$db;DMIDGenerator;__isInitedUniDB=!0;constructor(e,n=t){super(e,n),this.$db=e,this.DMIDGenerator=n}dump(){return{danmakus:[...this.$db.danmakus.values()],chunks:this.$db.chunks.toJSON(),chunk2danmakus:this.$db.chunk2danmakus.toJSON()}}get $chunks(){return[...this.$db.chunks.values()]}get $danmakus(){return[...this.$db.danmakus.values()]}listChunks(){return this.$chunks.map(e=>new d(this,e.id))}makeChunk(e){let t=this.$db.chunks.nextSerial;return this.$db.chunks.set(t,{id:t,fromConverted:e.fromConverted??!1,tmp:e.tmp??!1}),new d(this,t)}upsertDanmakus(e,t=!0){if(e instanceof Map)this.upsertDanmakus([...e.values()],!1);else if(t){let t=new Map;e.forEach(e=>{t.set(e.DMID,e)}),l(this,[...t.values()])}else l(this,e)}shrink(){let e=this.$db.chunks.values().filter(e=>e.tmp);for(let t of e)new d(this,t.id).delete()}import(e){return e(this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.DMIDGenerator})}},d=class e{$UniDB;id;__isUniChunk=!0;constructor(e,t){this.$UniDB=e,this.id=t}get $db(){return this.$UniDB.$db}static makeChunk(e,t){return e instanceof u?e.makeChunk(t):e.$UniDB.makeChunk(t)}static assign(t,n){if(n.length<1)return t;let r=t.id,i=t.$chunk(),a=i.fromConverted;for(let e of n){let n=e.$chunk();a&&=!!n.fromConverted,t.upsertDanmakus(e.$danmakus,!1),e.delete()}return t.$db.chunks.set(r,{...i,fromConverted:a}),new e(t.$UniDB,r)}static compare(e,t){let n=e.$danmakus,r=t.$danmakus;if(n.length!==r.length)return!1;let i=new Set;for(let e of n)i.add(e.DMID);for(let e of r){let t=i.has(e.DMID);if(!t||JSON.stringify(t)!==JSON.stringify(e))return!1}return!0}get $chunks(){let e=this.$db.chunks.get(this.id);return e?[e]:[]}$chunk(){return this.$chunks[0]}get $danmakus(){return[...this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).map(e=>this.$db.danmakus.get(e.DMID)).filter(e=>!!e)]}get $count(){return this.$db.chunk2danmakus.values().filter(e=>e.chunkID===this.id).reduce(e=>e+1,0)}get isDeleted(){return!this.$db.chunks.has(this.id)}upsertDanmakus(e,t=!1,n=!0){let r=new Set;e instanceof Map?(this.$UniDB.upsertDanmakus([...e.values()],!1),e.forEach(e=>r.add(e.DMID))):(t?e=e.map(e=>{let t=this.$UniDB.DMIDGenerator(e);return r.add(t),{...e,DMID:t}}):e.forEach(e=>{r.add(e.DMID)}),this.$UniDB.upsertDanmakus(e,n)),r.forEach(e=>{let t=this.$db.chunk2danmakus.nextSerial;this.$db.chunk2danmakus.set(t,{id:t,chunkID:this.id,DMID:e})})}import(e){return e(this.$UniDB,this)}export(e){return e(this.$danmakus,{DMIDGenerator:this.$UniDB.DMIDGenerator,uchunk:this.$chunk()})}plugin(e){return e(this)}delete(){let e=new Set;this.$db.chunk2danmakus.forEach(t=>{t.chunkID===this.id&&(e.add(t.DMID),this.$db.chunk2danmakus.delete(t.id))}),e.forEach(e=>{this.$db.chunk2danmakus.values().some(t=>t.DMID===e)||this.$db.danmakus.delete(e)}),this.$db.chunks.delete(this.id)}};export{a,s as i,d as n,c as r,u as t};
2
+ //# sourceMappingURL=main-pure-CfrCjx7t.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"main-pure-CLnUZB7g.mjs","names":["#freeSerials","#nextSerial","#map"],"sources":["../src/utils/serialMap.ts","../src/core/main-pure.ts"],"sourcesContent":["type innerSerialMap<V> = Map<number, V>;\nexport class SerialMap<V> implements Map<number, V> {\n #map = new Map<number, V>();\n #freeSerials: number[] = [];\n #nextSerial: number = 0;\n get nextSerial(): number {\n if (this.#freeSerials.length > 0) return this.#freeSerials.shift()!;\n else return this.#nextSerial++;\n }\n add(value: V) {\n this.#map.set(this.nextSerial, value);\n return this;\n }\n delete(serial: number) {\n const existed = this.#map.delete(serial);\n if (existed) this.#freeSerials.push(serial);\n return existed;\n }\n clear() {\n this.#map.clear();\n this.#freeSerials = [];\n this.#nextSerial = 0;\n }\n toJSON() {\n return {\n $typeName: \"SerialMap\",\n \"#map\": this.#map.entries().toArray(),\n \"#freeSerials\": this.#freeSerials,\n \"#nextSerial\": this.#nextSerial,\n };\n }\n static fromJSON<V>(data: ReturnType<SerialMap<V>[\"toJSON\"]>): SerialMap<V> {\n if (data.$typeName !== \"SerialMap\") throw new Error(\"Invalid data for SerialMap\");\n const map = new SerialMap<V>();\n map.#map = new Map<number, V>(data[\"#map\"]);\n map.#freeSerials = data[\"#freeSerials\"];\n map.#nextSerial = data[\"#nextSerial\"];\n return map;\n }\n get size() {\n return this.#map.size;\n }\n has(...args: Parameters<innerSerialMap<V>[\"has\"]>) {\n return this.#map.has(...args);\n }\n get(...args: Parameters<innerSerialMap<V>[\"get\"]>) {\n return this.#map.get(...args);\n }\n set(...args: Parameters<innerSerialMap<V>[\"set\"]>) {\n this.#map.set(...args);\n return this;\n }\n getOrInsert(...args: Parameters<innerSerialMap<V>[\"getOrInsert\"]>) {\n return this.#map.getOrInsert(...args);\n }\n getOrInsertComputed(...args: Parameters<innerSerialMap<V>[\"getOrInsertComputed\"]>) {\n return this.#map.getOrInsertComputed(...args);\n }\n forEach(...args: Parameters<innerSerialMap<V>[\"forEach\"]>) {\n return this.#map.forEach(...args);\n }\n keys(...args: Parameters<innerSerialMap<V>[\"keys\"]>) {\n return this.#map.keys(...args);\n }\n values(...args: Parameters<innerSerialMap<V>[\"values\"]>) {\n return this.#map.values(...args);\n }\n entries(...args: Parameters<innerSerialMap<V>[\"entries\"]>) {\n return this.#map.entries(...args);\n }\n [Symbol.iterator]() {\n return this.#map[Symbol.iterator]();\n }\n get [Symbol.toStringTag]() {\n return \"SerialMap\";\n }\n}\n\ntype innerBigSerialMap<V> = Map<bigint, V>;\nexport class BigSerialMap<V> implements Map<bigint, V> {\n #map = new Map<bigint, V>();\n #freeSerials: bigint[] = [];\n #nextSerial: bigint = 0n;\n get nextSerial(): bigint {\n if (this.#freeSerials.length > 0) return this.#freeSerials.shift()!;\n else return this.#nextSerial++;\n }\n add(value: V) {\n this.#map.set(this.nextSerial, value);\n return this;\n }\n delete(serial: bigint) {\n const existed = this.#map.delete(serial);\n if (existed) this.#freeSerials.push(serial);\n return existed;\n }\n clear() {\n this.#map.clear();\n this.#freeSerials = [];\n this.#nextSerial = 0n;\n }\n toJSON() {\n return {\n $typeName: \"BigSerialMap\",\n \"#map\": this.#map\n .entries()\n .map(([k, v]) => [k.toString(), v] as [string, V])\n .toArray(),\n \"#freeSerials\": this.#freeSerials.map((s) => s.toString()),\n \"#nextSerial\": this.#nextSerial.toString(),\n };\n }\n static fromJSON<V>(data: ReturnType<BigSerialMap<V>[\"toJSON\"]>): BigSerialMap<V> {\n if (data.$typeName !== \"BigSerialMap\") throw new Error(\"Invalid data for BigSerialMap\");\n const map = new BigSerialMap<V>();\n map.#map = new Map<bigint, V>(data[\"#map\"].map(([k, v]) => [BigInt(k), v]));\n map.#freeSerials = data[\"#freeSerials\"].map(BigInt);\n map.#nextSerial = BigInt(data[\"#nextSerial\"]);\n return map;\n }\n get size() {\n return this.#map.size;\n }\n has(...args: Parameters<innerBigSerialMap<V>[\"has\"]>) {\n return this.#map.has(...args);\n }\n get(...args: Parameters<innerBigSerialMap<V>[\"get\"]>) {\n return this.#map.get(...args);\n }\n set(...args: Parameters<innerBigSerialMap<V>[\"set\"]>) {\n this.#map.set(...args);\n return this;\n }\n getOrInsert(...args: Parameters<innerBigSerialMap<V>[\"getOrInsert\"]>) {\n return this.#map.getOrInsert(...args);\n }\n getOrInsertComputed(...args: Parameters<innerBigSerialMap<V>[\"getOrInsertComputed\"]>) {\n return this.#map.getOrInsertComputed(...args);\n }\n forEach(...args: Parameters<innerBigSerialMap<V>[\"forEach\"]>) {\n return this.#map.forEach(...args);\n }\n keys(...args: Parameters<innerBigSerialMap<V>[\"keys\"]>) {\n return this.#map.keys(...args);\n }\n values(...args: Parameters<innerBigSerialMap<V>[\"values\"]>) {\n return this.#map.values(...args);\n }\n entries(...args: Parameters<innerBigSerialMap<V>[\"entries\"]>) {\n return this.#map.entries(...args);\n }\n [Symbol.iterator]() {\n return this.#map[Symbol.iterator]();\n }\n get [Symbol.toStringTag]() {\n return \"BigSerialMap\";\n }\n}\n","import { createDMID, type DMIDGenerator } from \"./id.ts\";\nimport * as base from \"./index.ts\";\nimport type { Plugin, Transformer, TransformerInput } from \"@/adapters/index.ts\";\nimport type { Asyncify, Promisable, Simplify } from \"type-fest\";\nimport { BigSerialMap, SerialMap } from \"@/utils/serialMap.ts\";\n\ntype baseClassTrans<T> = base.baseClassTrans<T, UniDB, InitedUniDB, UniChunk>;\n\ninterface UJson {\n danmakus: base.UDanmaku[];\n chunks: ReturnType<SerialMap<base.UChunk>[\"toJSON\"]>;\n chunk2danmakus: ReturnType<BigSerialMap<base.UChunk2Danmaku>[\"toJSON\"]>;\n}\n\ninterface UMaps {\n danmakus: Map<string, base.UDanmaku>;\n chunks: SerialMap<base.UChunk>;\n chunk2danmakus: BigSerialMap<base.UChunk2Danmaku>;\n}\n\nconst emptyDB: UMaps = {\n danmakus: new Map(),\n chunks: new SerialMap(),\n chunk2danmakus: new BigSerialMap(),\n};\nexport function initNewDb() {\n return { ...emptyDB };\n}\n\nexport class UniDB implements base.UniDB {\n __isUniDB = true;\n constructor(\n public $db: UMaps = emptyDB,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {}\n init($json?: UJson) {\n if ($json)\n this.$db = {\n danmakus: new Map($json.danmakus.map((d) => [d.DMID, d])),\n chunks: SerialMap.fromJSON($json.chunks),\n chunk2danmakus: BigSerialMap.fromJSON($json.chunk2danmakus),\n };\n else this.$db = emptyDB;\n return new InitedUniDB(this.$db, this.DMIDGenerator);\n }\n close() {\n this.$db = { danmakus: new Map(), chunks: new SerialMap(), chunk2danmakus: new BigSerialMap() };\n }\n}\n\nfunction $Private4InitedUniDB_upsertDanmakus(that: InitedUniDB, data: base.DanmakusInsert[]) {\n data.forEach((d) => {\n const rawContent = d.content;\n // oxlint-disable-next-line no-control-regex\n d.content = rawContent.replace(/[\\x00-\\x1F\\x7F]/g, \"\");\n if (d.content !== rawContent)\n d.extra = {\n ...d.extra,\n danuni: {\n ...d.extra?.danuni,\n raw: {\n ...d.extra?.danuni?.raw,\n content: Buffer.from(rawContent, \"utf8\").toString(\"base64\"),\n },\n },\n };\n that.$db.danmakus.set(d.DMID, { ...d, platform: d.platform ?? null });\n });\n}\n\nexport class InitedUniDB extends UniDB implements base.InitedUniDB {\n __isInitedUniDB = true;\n constructor(\n public $db: UMaps,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {\n super($db, DMIDGenerator);\n }\n dump(): UJson {\n return {\n danmakus: [...this.$db.danmakus.values()],\n chunks: this.$db.chunks.toJSON(),\n chunk2danmakus: this.$db.chunk2danmakus.toJSON(),\n };\n }\n get $chunks() {\n return [...this.$db.chunks.values()];\n }\n get $danmakus() {\n return [...this.$db.danmakus.values()];\n }\n listChunks() {\n const cs = this.$chunks;\n return cs.map((c) => new UniChunk(this, c.id));\n }\n makeChunk(data: Omit<base.ChunksInsert, \"id\">) {\n const newID = this.$db.chunks.nextSerial;\n this.$db.chunks.set(newID, {\n id: newID,\n fromConverted: data.fromConverted ?? false,\n tmp: data.tmp ?? false,\n });\n return new UniChunk(this, newID);\n }\n upsertDanmakus(\n data: base.DanmakusInsert[] | Map<string, base.DanmakusInsert>,\n dedupeDMID = true,\n ) {\n if (data instanceof Map) this.upsertDanmakus([...data.values()], false);\n else if (dedupeDMID) {\n const map = new Map<string, base.DanmakusInsert>();\n data.forEach((d) => {\n map.set(d.DMID, d);\n });\n $Private4InitedUniDB_upsertDanmakus(this, [...map.values()]);\n } else $Private4InitedUniDB_upsertDanmakus(this, data);\n }\n /**\n * 清理临时chunks\n */\n shrink() {\n const uchunks = this.$db.chunks.values().filter((c) => c.tmp);\n for (const c of uchunks) new UniChunk(this, c.id).delete();\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this);\n }\n export<T extends Transformer>(transformer: T): ReturnType<T>;\n async export<T extends Asyncify<Transformer>>(transformer: T): Promise<ReturnType<T>>;\n export<T extends Transformer | Asyncify<Transformer>>(transformer: T): Promisable<ReturnType<T>> {\n return <ReturnType<T>>transformer(this.$danmakus, { DMIDGenerator: this.DMIDGenerator });\n }\n}\n\nexport class UniChunk implements base.UniChunk {\n __isUniChunk = true;\n constructor(\n public $UniDB: InitedUniDB,\n public id: number,\n ) {}\n get $db() {\n return this.$UniDB.$db;\n }\n static makeChunk(u: TransformerInput<InitedUniDB | UniChunk>, data: base.ChunksInsert): UniChunk {\n return u instanceof InitedUniDB ? u.makeChunk(data) : u.$UniDB.makeChunk(data);\n }\n /**\n * 合并弹幕库\n * @description 将多个chunk的弹幕合并到base chunk中,合并后原chunk会被删除\n * @param base 目标chunk,合并后其他chunk的弹幕会被移到这个chunk中\n * @param chunks 待合并的chunk列表,这些chunk中的弹幕会被移到base chunk中,合并后这些chunk会被删除\n * @returns 合并后的目标chunk实例\n * @throws 如果chunks列表为空,函数会直接返回base chunk;如果目标chunk在数据库中未找到,会抛出错误;如果chunks中有来自不同数据库的chunk且options.allowDifferentDB为false,也会抛出错误\n */\n static assign(base: UniChunk, chunks: UniChunk[]) {\n if (chunks.length < 1) return base;\n const targetId = base.id;\n const targetRow = base.$chunk();\n let newFromConverted = targetRow.fromConverted;\n for (const c of chunks) {\n const srcChunkRow = c.$chunk();\n newFromConverted = newFromConverted && !!srcChunkRow.fromConverted;\n base.upsertDanmakus(c.$danmakus, false);\n c.delete();\n }\n base.$db.chunks.set(targetId, { ...targetRow, fromConverted: newFromConverted });\n return new UniChunk(base.$UniDB, targetId);\n }\n /**\n * 比较两个chunk的弹幕是否相同\n * @description 可用于跨DB比较\n */\n static compare(u1: UniChunk, u2: UniChunk) {\n const dms1 = u1.$danmakus;\n const dms2 = u2.$danmakus;\n if (dms1.length !== dms2.length) return false;\n const dmidSet = new Set<string>();\n for (const dm of dms1) {\n dmidSet.add(dm.DMID);\n }\n for (const dm of dms2) {\n const target = dmidSet.has(dm.DMID);\n if (!target) return false;\n if (JSON.stringify(target) !== JSON.stringify(dm)) return false;\n }\n return true;\n }\n get $chunks() {\n const chunk = this.$db.chunks.get(this.id);\n return chunk ? [chunk] : [];\n }\n $chunk() {\n const c = this.$chunks;\n return c[0];\n }\n get $danmakus() {\n const c2d = this.$db.chunk2danmakus.values().filter((cd) => cd.chunkID === this.id);\n const ds = c2d\n .map((cd) => this.$db.danmakus.get(cd.DMID))\n .filter((d): d is base.UDanmaku => !!d);\n return [...ds];\n }\n get $count() {\n const c2d = this.$db.chunk2danmakus.values().filter((cd) => cd.chunkID === this.id);\n return c2d.reduce((acc) => acc + 1, 0);\n }\n get isDeleted() {\n return !this.$db.chunks.has(this.id);\n }\n upsertDanmakus(\n data: Map<string, base.DanmakusInsert & { platform: string | null }>,\n autoSetDMID?: false,\n dedupeDMID?: false,\n ): void;\n upsertDanmakus(\n data: Simplify<base.DanmakusInsert & { DMID: string; platform: string | null }>[],\n autoSetDMID?: false,\n dedupeDMID?: boolean,\n ): void;\n upsertDanmakus(\n data: Simplify<base.DanmakusInsert & { DMID?: undefined }>[],\n autoSetDMID: true,\n dedupeDMID?: true,\n ): void;\n upsertDanmakus(\n data:\n | (base.DanmakusInsert & { DMID?: string; platform: string | null })[]\n | Map<string, base.DanmakusInsert & { platform: string | null }>,\n autoSetDMID = false,\n dedupeDMID = true,\n ) {\n const dmids = new Set<string>();\n if (data instanceof Map) {\n this.$UniDB.upsertDanmakus([...data.values()], false);\n data.forEach((d) => dmids.add(d.DMID));\n } else {\n if (autoSetDMID)\n data = data.map((d) => {\n const DMID = this.$UniDB.DMIDGenerator(d);\n dmids.add(DMID);\n return { ...d, DMID };\n });\n else\n data.forEach((d) => {\n dmids.add(d.DMID!);\n });\n this.$UniDB.upsertDanmakus(data, dedupeDMID);\n }\n dmids.forEach((dmid) => {\n const chunk2danmakuID = this.$db.chunk2danmakus.nextSerial;\n this.$db.chunk2danmakus.set(chunk2danmakuID, {\n id: chunk2danmakuID,\n chunkID: this.id,\n DMID: dmid,\n });\n });\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this.$UniDB, this);\n }\n export<T extends Transformer>(transformer: T): ReturnType<T>;\n async export<T extends Asyncify<Transformer>>(transformer: T): Promise<ReturnType<T>>;\n export<T extends Transformer | Asyncify<Transformer>>(transformer: T): Promisable<ReturnType<T>> {\n // transformer 格式转换器 不应对数据库执行任何写操作\n return <ReturnType<T>>transformer(this.$danmakus, {\n DMIDGenerator: this.$UniDB.DMIDGenerator,\n uchunk: this.$chunk(),\n });\n }\n plugin<T extends Plugin>(plugin: T): baseClassTrans<ReturnType<T>>;\n plugin<T extends Asyncify<Plugin>>(plugin: T): Promise<baseClassTrans<ReturnType<T>>>;\n plugin<T extends Plugin | Asyncify<Plugin>>(\n plugin: T,\n ): Promisable<baseClassTrans<ReturnType<T>>> {\n const output = <baseClassTrans<ReturnType<T>>>plugin(this);\n return output;\n }\n delete() {\n const DMIDs = new Set<string>();\n this.$db.chunk2danmakus.forEach((cd) => {\n if (cd.chunkID === this.id) {\n DMIDs.add(cd.DMID);\n this.$db.chunk2danmakus.delete(cd.id);\n }\n });\n // 对于不再被任何 chunk 引用的弹幕,删除它们\n DMIDs.forEach((dmid) => {\n const still = this.$db.chunk2danmakus.values().some((cd) => cd.DMID === dmid);\n if (!still) this.$db.danmakus.delete(dmid);\n });\n this.$db.chunks.delete(this.id);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"main-pure-CfrCjx7t.mjs","names":["#freeSerials","#nextSerial","#map"],"sources":["../src/utils/serialMap.ts","../src/core/main-pure.ts"],"sourcesContent":["type innerSerialMap<V> = Map<number, V>;\nexport class SerialMap<V> implements Map<number, V> {\n #map = new Map<number, V>();\n #freeSerials: number[] = [];\n #nextSerial: number = 0;\n get nextSerial(): number {\n if (this.#freeSerials.length > 0) return this.#freeSerials.shift()!;\n else return this.#nextSerial++;\n }\n add(value: V) {\n this.#map.set(this.nextSerial, value);\n return this;\n }\n delete(serial: number) {\n const existed = this.#map.delete(serial);\n if (existed) this.#freeSerials.push(serial);\n return existed;\n }\n clear() {\n this.#map.clear();\n this.#freeSerials = [];\n this.#nextSerial = 0;\n }\n toJSON() {\n return {\n $typeName: \"SerialMap\",\n \"#map\": this.#map.entries().toArray(),\n \"#freeSerials\": this.#freeSerials,\n \"#nextSerial\": this.#nextSerial,\n };\n }\n static fromJSON<V>(data: ReturnType<SerialMap<V>[\"toJSON\"]>): SerialMap<V> {\n if (data.$typeName !== \"SerialMap\") throw new Error(\"Invalid data for SerialMap\");\n const map = new SerialMap<V>();\n map.#map = new Map<number, V>(data[\"#map\"]);\n map.#freeSerials = data[\"#freeSerials\"];\n map.#nextSerial = data[\"#nextSerial\"];\n return map;\n }\n get size() {\n return this.#map.size;\n }\n has(...args: Parameters<innerSerialMap<V>[\"has\"]>) {\n return this.#map.has(...args);\n }\n get(...args: Parameters<innerSerialMap<V>[\"get\"]>) {\n return this.#map.get(...args);\n }\n set(...args: Parameters<innerSerialMap<V>[\"set\"]>) {\n this.#map.set(...args);\n return this;\n }\n getOrInsert(...args: Parameters<innerSerialMap<V>[\"getOrInsert\"]>) {\n return this.#map.getOrInsert(...args);\n }\n getOrInsertComputed(...args: Parameters<innerSerialMap<V>[\"getOrInsertComputed\"]>) {\n return this.#map.getOrInsertComputed(...args);\n }\n forEach(...args: Parameters<innerSerialMap<V>[\"forEach\"]>) {\n return this.#map.forEach(...args);\n }\n keys(...args: Parameters<innerSerialMap<V>[\"keys\"]>) {\n return this.#map.keys(...args);\n }\n values(...args: Parameters<innerSerialMap<V>[\"values\"]>) {\n return this.#map.values(...args);\n }\n entries(...args: Parameters<innerSerialMap<V>[\"entries\"]>) {\n return this.#map.entries(...args);\n }\n [Symbol.iterator]() {\n return this.#map[Symbol.iterator]();\n }\n get [Symbol.toStringTag]() {\n return \"SerialMap\";\n }\n}\n\ntype innerBigSerialMap<V> = Map<bigint, V>;\nexport class BigSerialMap<V> implements Map<bigint, V> {\n #map = new Map<bigint, V>();\n #freeSerials: bigint[] = [];\n #nextSerial: bigint = 0n;\n get nextSerial(): bigint {\n if (this.#freeSerials.length > 0) return this.#freeSerials.shift()!;\n else return this.#nextSerial++;\n }\n add(value: V) {\n this.#map.set(this.nextSerial, value);\n return this;\n }\n delete(serial: bigint) {\n const existed = this.#map.delete(serial);\n if (existed) this.#freeSerials.push(serial);\n return existed;\n }\n clear() {\n this.#map.clear();\n this.#freeSerials = [];\n this.#nextSerial = 0n;\n }\n toJSON() {\n return {\n $typeName: \"BigSerialMap\",\n \"#map\": this.#map\n .entries()\n .map(([k, v]) => [k.toString(), v] as [string, V])\n .toArray(),\n \"#freeSerials\": this.#freeSerials.map((s) => s.toString()),\n \"#nextSerial\": this.#nextSerial.toString(),\n };\n }\n static fromJSON<V>(data: ReturnType<BigSerialMap<V>[\"toJSON\"]>): BigSerialMap<V> {\n if (data.$typeName !== \"BigSerialMap\") throw new Error(\"Invalid data for BigSerialMap\");\n const map = new BigSerialMap<V>();\n map.#map = new Map<bigint, V>(data[\"#map\"].map(([k, v]) => [BigInt(k), v]));\n map.#freeSerials = data[\"#freeSerials\"].map(BigInt);\n map.#nextSerial = BigInt(data[\"#nextSerial\"]);\n return map;\n }\n get size() {\n return this.#map.size;\n }\n has(...args: Parameters<innerBigSerialMap<V>[\"has\"]>) {\n return this.#map.has(...args);\n }\n get(...args: Parameters<innerBigSerialMap<V>[\"get\"]>) {\n return this.#map.get(...args);\n }\n set(...args: Parameters<innerBigSerialMap<V>[\"set\"]>) {\n this.#map.set(...args);\n return this;\n }\n getOrInsert(...args: Parameters<innerBigSerialMap<V>[\"getOrInsert\"]>) {\n return this.#map.getOrInsert(...args);\n }\n getOrInsertComputed(...args: Parameters<innerBigSerialMap<V>[\"getOrInsertComputed\"]>) {\n return this.#map.getOrInsertComputed(...args);\n }\n forEach(...args: Parameters<innerBigSerialMap<V>[\"forEach\"]>) {\n return this.#map.forEach(...args);\n }\n keys(...args: Parameters<innerBigSerialMap<V>[\"keys\"]>) {\n return this.#map.keys(...args);\n }\n values(...args: Parameters<innerBigSerialMap<V>[\"values\"]>) {\n return this.#map.values(...args);\n }\n entries(...args: Parameters<innerBigSerialMap<V>[\"entries\"]>) {\n return this.#map.entries(...args);\n }\n [Symbol.iterator]() {\n return this.#map[Symbol.iterator]();\n }\n get [Symbol.toStringTag]() {\n return \"BigSerialMap\";\n }\n}\n","import { createDMID, type DMIDGenerator } from \"./id.ts\";\nimport * as base from \"./index.ts\";\nimport type { Plugin, Transformer, TransformerInput } from \"@/adapters/index.ts\";\nimport type { Asyncify, Promisable, Simplify } from \"type-fest\";\nimport { BigSerialMap, SerialMap } from \"@/utils/serialMap.ts\";\n\ntype baseClassTrans<T> = base.baseClassTrans<T, UniDB, InitedUniDB, UniChunk>;\n\ninterface UJson {\n danmakus: base.UDanmaku[];\n chunks: ReturnType<SerialMap<base.UChunk>[\"toJSON\"]>;\n chunk2danmakus: ReturnType<BigSerialMap<base.UChunk2Danmaku>[\"toJSON\"]>;\n}\n\ninterface UMaps {\n danmakus: Map<string, base.UDanmaku>;\n chunks: SerialMap<base.UChunk>;\n chunk2danmakus: BigSerialMap<base.UChunk2Danmaku>;\n}\n\nconst emptyDB: UMaps = {\n danmakus: new Map(),\n chunks: new SerialMap(),\n chunk2danmakus: new BigSerialMap(),\n};\nexport function initNewDb() {\n return { ...emptyDB };\n}\n\nexport class UniDB implements base.UniDB {\n __isUniDB = true;\n constructor(\n public $db: UMaps = emptyDB,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {}\n init($json?: UJson) {\n if ($json)\n this.$db = {\n danmakus: new Map($json.danmakus.map((d) => [d.DMID, d])),\n chunks: SerialMap.fromJSON($json.chunks),\n chunk2danmakus: BigSerialMap.fromJSON($json.chunk2danmakus),\n };\n else this.$db = emptyDB;\n return new InitedUniDB(this.$db, this.DMIDGenerator);\n }\n close() {\n this.$db = { danmakus: new Map(), chunks: new SerialMap(), chunk2danmakus: new BigSerialMap() };\n }\n}\n\nfunction $Private4InitedUniDB_upsertDanmakus(that: InitedUniDB, data: base.DanmakusInsert[]) {\n data.forEach((d) => {\n const rawContent = d.content;\n // oxlint-disable-next-line no-control-regex\n d.content = rawContent.replace(/[\\x00-\\x1F\\x7F]/g, \"\");\n if (d.content !== rawContent)\n d.extra = {\n ...d.extra,\n danuni: {\n ...d.extra?.danuni,\n raw: {\n ...d.extra?.danuni?.raw,\n content: Buffer.from(rawContent, \"utf8\").toString(\"base64\"),\n },\n },\n };\n that.$db.danmakus.set(d.DMID, { ...d, platform: d.platform ?? null });\n });\n}\n\nexport class InitedUniDB extends UniDB implements base.InitedUniDB {\n __isInitedUniDB = true;\n constructor(\n public $db: UMaps,\n public DMIDGenerator: DMIDGenerator = createDMID,\n ) {\n super($db, DMIDGenerator);\n }\n dump(): UJson {\n return {\n danmakus: [...this.$db.danmakus.values()],\n chunks: this.$db.chunks.toJSON(),\n chunk2danmakus: this.$db.chunk2danmakus.toJSON(),\n };\n }\n get $chunks() {\n return [...this.$db.chunks.values()];\n }\n get $danmakus() {\n return [...this.$db.danmakus.values()];\n }\n listChunks() {\n const cs = this.$chunks;\n return cs.map((c) => new UniChunk(this, c.id));\n }\n makeChunk(data: Omit<base.ChunksInsert, \"id\">) {\n const newID = this.$db.chunks.nextSerial;\n this.$db.chunks.set(newID, {\n id: newID,\n fromConverted: data.fromConverted ?? false,\n tmp: data.tmp ?? false,\n });\n return new UniChunk(this, newID);\n }\n upsertDanmakus(\n data: base.DanmakusInsert[] | Map<string, base.DanmakusInsert>,\n dedupeDMID = true,\n ) {\n if (data instanceof Map) this.upsertDanmakus([...data.values()], false);\n else if (dedupeDMID) {\n const map = new Map<string, base.DanmakusInsert>();\n data.forEach((d) => {\n map.set(d.DMID, d);\n });\n $Private4InitedUniDB_upsertDanmakus(this, [...map.values()]);\n } else $Private4InitedUniDB_upsertDanmakus(this, data);\n }\n /**\n * 清理临时chunks\n */\n shrink() {\n const uchunks = this.$db.chunks.values().filter((c) => c.tmp);\n for (const c of uchunks) new UniChunk(this, c.id).delete();\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this);\n }\n export<T extends Transformer>(transformer: T): ReturnType<T>;\n async export<T extends Asyncify<Transformer>>(transformer: T): Promise<ReturnType<T>>;\n export<T extends Transformer | Asyncify<Transformer>>(transformer: T): Promisable<ReturnType<T>> {\n return <ReturnType<T>>transformer(this.$danmakus, { DMIDGenerator: this.DMIDGenerator });\n }\n}\n\nexport class UniChunk implements base.UniChunk {\n __isUniChunk = true;\n constructor(\n public $UniDB: InitedUniDB,\n public id: number,\n ) {}\n get $db() {\n return this.$UniDB.$db;\n }\n static makeChunk(u: TransformerInput<InitedUniDB | UniChunk>, data: base.ChunksInsert): UniChunk {\n return u instanceof InitedUniDB ? u.makeChunk(data) : u.$UniDB.makeChunk(data);\n }\n /**\n * 合并弹幕库\n * @description 将多个chunk的弹幕合并到base chunk中,合并后原chunk会被删除\n * @param base 目标chunk,合并后其他chunk的弹幕会被移到这个chunk中\n * @param chunks 待合并的chunk列表,这些chunk中的弹幕会被移到base chunk中,合并后这些chunk会被删除\n * @returns 合并后的目标chunk实例\n * @throws 如果chunks列表为空,函数会直接返回base chunk;如果目标chunk在数据库中未找到,会抛出错误;如果chunks中有来自不同数据库的chunk且options.allowDifferentDB为false,也会抛出错误\n */\n static assign(base: UniChunk, chunks: UniChunk[]) {\n if (chunks.length < 1) return base;\n const targetId = base.id;\n const targetRow = base.$chunk();\n let newFromConverted = targetRow.fromConverted;\n for (const c of chunks) {\n const srcChunkRow = c.$chunk();\n newFromConverted = newFromConverted && !!srcChunkRow.fromConverted;\n base.upsertDanmakus(c.$danmakus, false);\n c.delete();\n }\n base.$db.chunks.set(targetId, { ...targetRow, fromConverted: newFromConverted });\n return new UniChunk(base.$UniDB, targetId);\n }\n /**\n * 比较两个chunk的弹幕是否相同\n * @description 可用于跨DB比较\n */\n static compare(u1: UniChunk, u2: UniChunk) {\n const dms1 = u1.$danmakus;\n const dms2 = u2.$danmakus;\n if (dms1.length !== dms2.length) return false;\n const dmidSet = new Set<string>();\n for (const dm of dms1) {\n dmidSet.add(dm.DMID);\n }\n for (const dm of dms2) {\n const target = dmidSet.has(dm.DMID);\n if (!target) return false;\n if (JSON.stringify(target) !== JSON.stringify(dm)) return false;\n }\n return true;\n }\n get $chunks() {\n const chunk = this.$db.chunks.get(this.id);\n return chunk ? [chunk] : [];\n }\n $chunk() {\n const c = this.$chunks;\n return c[0];\n }\n get $danmakus() {\n const c2d = this.$db.chunk2danmakus.values().filter((cd) => cd.chunkID === this.id);\n const ds = c2d\n .map((cd) => this.$db.danmakus.get(cd.DMID))\n .filter((d): d is base.UDanmaku => !!d);\n return [...ds];\n }\n get $count() {\n const c2d = this.$db.chunk2danmakus.values().filter((cd) => cd.chunkID === this.id);\n return c2d.reduce((acc) => acc + 1, 0);\n }\n get isDeleted() {\n return !this.$db.chunks.has(this.id);\n }\n upsertDanmakus(\n data: Map<string, base.DanmakusInsert & { platform: string | null }>,\n autoSetDMID?: false,\n dedupeDMID?: false,\n ): void;\n upsertDanmakus(\n data: Simplify<base.DanmakusInsert & { DMID: string; platform: string | null }>[],\n autoSetDMID?: false,\n dedupeDMID?: boolean,\n ): void;\n upsertDanmakus(\n data: Simplify<base.DanmakusInsert & { DMID?: undefined }>[],\n autoSetDMID: true,\n dedupeDMID?: true,\n ): void;\n upsertDanmakus(\n data:\n | (base.DanmakusInsert & { DMID?: string; platform: string | null })[]\n | Map<string, base.DanmakusInsert & { platform: string | null }>,\n autoSetDMID = false,\n dedupeDMID = true,\n ) {\n const dmids = new Set<string>();\n if (data instanceof Map) {\n this.$UniDB.upsertDanmakus([...data.values()], false);\n data.forEach((d) => dmids.add(d.DMID));\n } else {\n if (autoSetDMID)\n data = data.map((d) => {\n const DMID = this.$UniDB.DMIDGenerator(d);\n dmids.add(DMID);\n return { ...d, DMID };\n });\n else\n data.forEach((d) => {\n dmids.add(d.DMID!);\n });\n this.$UniDB.upsertDanmakus(data, dedupeDMID);\n }\n dmids.forEach((dmid) => {\n const chunk2danmakuID = this.$db.chunk2danmakus.nextSerial;\n this.$db.chunk2danmakus.set(chunk2danmakuID, {\n id: chunk2danmakuID,\n chunkID: this.id,\n DMID: dmid,\n });\n });\n }\n import(adapterStore: base.AdapterStore): Promisable<UniChunk> {\n return <Promisable<UniChunk>>adapterStore(this.$UniDB, this);\n }\n export<T extends Transformer>(transformer: T): ReturnType<T>;\n async export<T extends Asyncify<Transformer>>(transformer: T): Promise<ReturnType<T>>;\n export<T extends Transformer | Asyncify<Transformer>>(transformer: T): Promisable<ReturnType<T>> {\n // transformer 格式转换器 不应对数据库执行任何写操作\n return <ReturnType<T>>transformer(this.$danmakus, {\n DMIDGenerator: this.$UniDB.DMIDGenerator,\n uchunk: this.$chunk(),\n });\n }\n plugin<T extends Plugin>(plugin: T): baseClassTrans<ReturnType<T>>;\n plugin<T extends Asyncify<Plugin>>(plugin: T): Promise<baseClassTrans<ReturnType<T>>>;\n plugin<T extends Plugin | Asyncify<Plugin>>(\n plugin: T,\n ): Promisable<baseClassTrans<ReturnType<T>>> {\n const output = <baseClassTrans<ReturnType<T>>>plugin(this);\n return output;\n }\n delete() {\n const DMIDs = new Set<string>();\n this.$db.chunk2danmakus.forEach((cd) => {\n if (cd.chunkID === this.id) {\n DMIDs.add(cd.DMID);\n this.$db.chunk2danmakus.delete(cd.id);\n }\n });\n // 对于不再被任何 chunk 引用的弹幕,删除它们\n DMIDs.forEach((dmid) => {\n const still = this.$db.chunk2danmakus.values().some((cd) => cd.DMID === dmid);\n if (!still) this.$db.danmakus.delete(dmid);\n });\n this.$db.chunks.delete(this.id);\n }\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { $ as UDanmaku, Et as __exportAll, J as ChunksInsert, Q as UChunk2Danmaku, St as DMIDGenerator, Tt as Promisable, X as InitedUniDB$1, Y as DanmakusInsert, Z as UChunk, a as TransformerInput, et as UniChunk$1, i as Transformer, nt as baseClassTrans$1, q as AdapterStore, r as Plugin, tt as UniDB$1, wt as Asyncify } from "./index-VhG0LiL2.cjs";
1
+ import { $ as AdapterStore, At as Asyncify, Mt as __exportAll, Ot as DMIDGenerator, a as TransformerInput, at as UDanmaku, ct as baseClassTrans$1, et as ChunksInsert, i as Transformer, it as UChunk2Danmaku, jt as Promisable, nt as InitedUniDB$1, ot as UniChunk$1, r as Plugin, rt as UChunk, st as UniDB$1, tt as DanmakusInsert } from "./index-CuEYrIpx.cjs";
2
2
  import { t as Simplify } from "./simplify-d7VEIjlJ.cjs";
3
3
 
4
4
  //#region src/utils/serialMap.d.ts
@@ -147,4 +147,4 @@ declare class UniChunk implements UniChunk$1 {
147
147
  }
148
148
  //#endregion
149
149
  export { main_pure_d_exports as a, initNewDb as i, UniChunk as n, UniDB as r, InitedUniDB as t };
150
- //# sourceMappingURL=main-pure-BXT58v5N.d.cts.map
150
+ //# sourceMappingURL=main-pure-Dqq-6q4T.d.cts.map