@dan-uni/dan-any 2.2.4 → 2.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{adapters-BWKFhVcX.js → adapters-n4ZeTSYX.js} +2 -2
- package/dist/{adapters-BWKFhVcX.js.map → adapters-n4ZeTSYX.js.map} +1 -1
- package/dist/adapters.d.ts +1 -1
- package/dist/adapters.js +1 -1
- package/dist/core/db/schema.d.ts +1 -1
- package/dist/core/db/utils.d.ts +1 -1
- package/dist/core/main/drizzle.d.ts +3 -3
- package/dist/core/main/drizzle.js +1 -1
- package/dist/core/main/pure.d.ts +1 -1
- package/dist/core/main/pure.js +1 -1
- package/dist/core/main.d.ts +1 -1
- package/dist/core/main.js +1 -1
- package/dist/{core-BKtvRbLS.js → core-D1XUOSXa.js} +2 -2
- package/dist/{core-BKtvRbLS.js.map → core-D1XUOSXa.js.map} +1 -1
- package/dist/core.d.ts +3 -3
- package/dist/core.js +1 -1
- package/dist/{dm-extra-6EjI8V-C.d.ts → dm-extra--BY805J3.d.ts} +6 -2
- package/dist/{dm-extra-6EjI8V-C.d.ts.map → dm-extra--BY805J3.d.ts.map} +1 -1
- package/dist/{index-B0rdTeW8.d.ts → index-DPxMOW6E.d.ts} +3 -3
- package/dist/{index-B0rdTeW8.d.ts.map → index-DPxMOW6E.d.ts.map} +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{isSame-BAhY0_yj.js → isSame-MiM4wHvK.js} +2 -2
- package/dist/{isSame-BAhY0_yj.js.map → isSame-MiM4wHvK.js.map} +1 -1
- package/dist/{main-drizzle-BBmwzpaC.js → main-drizzle-QIklYdJq.js} +2 -2
- package/dist/{main-drizzle-BBmwzpaC.js.map → main-drizzle-QIklYdJq.js.map} +1 -1
- package/dist/{main-pure-C1oipitq.js → main-pure-BTqDH2ll.js} +2 -2
- package/dist/{main-pure-C1oipitq.js.map → main-pure-BTqDH2ll.js.map} +1 -1
- package/dist/{main-pure-BnkXf_jV.d.ts → main-pure-BVFJVQIq.d.ts} +2 -2
- package/dist/{main-pure-BnkXf_jV.d.ts.map → main-pure-BVFJVQIq.d.ts.map} +1 -1
- package/dist/plugins.d.ts +2 -2
- package/dist/plugins.js +1 -1
- package/dist/{schema-D44OKqTj.d.ts → schema-B08Jk3HR.d.ts} +2 -2
- package/dist/{schema-D44OKqTj.d.ts.map → schema-B08Jk3HR.d.ts.map} +1 -1
- package/dist/utils.d.ts +2 -2
- package/dist/utils.js +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pure-C1oipitq.js","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-BTqDH2ll.js","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, 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-
|
|
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-DPxMOW6E.js";
|
|
2
2
|
import { t as Simplify } from "./simplify-d7VEIjlJ.js";
|
|
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-
|
|
150
|
+
//# sourceMappingURL=main-pure-BVFJVQIq.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main-pure-
|
|
1
|
+
{"version":3,"file":"main-pure-BVFJVQIq.d.ts","names":[],"sources":["../src/utils/serialMap.ts","../src/core/main-pure.ts"],"mappings":"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"}
|
package/dist/plugins.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as UDanmaku, et as UniChunk } from "./index-
|
|
2
|
-
import { t as Extra } from "./dm-extra
|
|
1
|
+
import { $ as UDanmaku, et as UniChunk } from "./index-DPxMOW6E.js";
|
|
2
|
+
import { t as Extra } from "./dm-extra--BY805J3.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region src/plugins/count.d.ts
|
package/dist/plugins.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./chunk-DK3Fl9T5.js";import{n as t}from"./core-
|
|
1
|
+
import{t as e}from"./chunk-DK3Fl9T5.js";import{n as t}from"./core-D1XUOSXa.js";import{danmakusSelectZod as n}from"./core/db/schema.js";import{a as r,i}from"./adapters-n4ZeTSYX.js";import{t as a}from"./isSame-MiM4wHvK.js";const o=r(e=>e.length),s=({include:e,exclude:n}={})=>i(async r=>{e||=[],n||=[];let i=t=>e?.includes(t)||!n?.includes(t),a=await t.makeChunk(r,{tmp:!0});return await a.upsertDanmakus((await r.$danmakus).map(e=>{if(!e.extra)return e;let t={...e,mode:`Top`,senderID:`compat[bot]@dan-any`};if(i(`danuni`)&&e.extra?.danuni){let n=e.extra.danuni;n.merge&&(t.content=`${t.content} x${n.merge.count}`)}else if(i(`bili`)&&e.extra?.bili){let n=e.extra.bili;n.mode===7&&n.adv?t.content=`[B站高级弹幕]${JSON.parse(n.adv)[4]||``}`:n.command&&(t.content=`[B站指令弹幕]${n.command.content}`,t.fontsize=36)}return t.attr.push(`Compatible`),{...t,DMID:a.$UniDB.DMIDGenerator(t)}})),a});n.pick({content:!0,SOID:!0,mode:!0,fontsize:!0,color:!0,senderID:!0,weight:!0,pool:!0,platform:!0});const c=e=>r(async function(t){let n={},r=e=>{let r=new Map;for(let n of t){let t=n[e];r.set(t,(r.get(t)??0)+1)}n[e]=r};for(let t of e)r(t);return n});function l(e){if(e.size===0)return{val:void 0,count:0};let t,n=0;for(let[r,i]of e.entries())i>n&&(n=i,t=r);return{val:t,count:n}}const u=(e=0)=>i(async n=>{let r=await t.makeChunk(n,{tmp:!0}),i=[...await n.$danmakus].sort((e,t)=>e.progress-t.progress||e.ctime.getTime()-t.ctime.getTime());if(e<=0)return await r.upsertDanmakus(i,!1),r;let o=e*1e3,s=e=>[e.SOID,e.content,e.mode,e.pool,e.platform??``].join(`|`),c=new Map,l=[];for(let e of i){let t=s(e),n=c.get(t)??[],r;for(let t=n.length-1;t>=0;t--){let i=n[t];if(e.progress-i.lastProgress>o)break;if(a(i.base,e)){r=i;break}}if(r){r.members.push(e),r.lastProgress=e.progress,r.senderSet.has(e.senderID)||(r.senderSet.add(e.senderID),r.senders.push(e.senderID));continue}let i={base:e,lastProgress:e.progress,senders:[e.senderID],senderSet:new Set([e.senderID]),members:[e]};n.push(i),c.set(t,n),l.push(i)}return await r.upsertDanmakus(l.map(e=>{if(e.members.length===1)return e.base;let t={duration:e.lastProgress-e.base.progress,count:e.members.length,senders:e.senders,taolu_count:e.members.length,taolu_senders:e.senders},n=e.base.extra?{...e.base.extra,danuni:{...e.base.extra.danuni?e.base.extra.danuni:{},merge:t}}:{danuni:{merge:t}};if(e.senders.length===1){let e=n.danuni;if(e?.merge){let{merge:t,...r}=e;if(Object.keys(r).length>0)n={...n,danuni:r};else{let{danuni:e,...t}=n;n=Object.keys(t).length>0?t:null}}}let i=e.base.attr.includes(`Protect`)?e.base.attr:[...e.base.attr,`Protect`],a=`merge[bot]@dan-any`;return{...e.base,senderID:a,attr:i,extra:n,DMID:r.$UniDB.DMIDGenerator({...e.base,extra:n&&Object.keys(n).length>0?n:null,senderID:a})}})),r});var d=e({CountTransformer:()=>o,DowngradeAdvancedPluginConfigurator:()=>s,GetStatsTransformerConfigurator:()=>c,GetStatsUtil4getMost:()=>l,MergePluginConfigurator:()=>u});export{o as CountTransformer,s as DowngradeAdvancedPluginConfigurator,c as GetStatsTransformerConfigurator,l as GetStatsUtil4getMost,u as MergePluginConfigurator,d as t};
|
|
2
2
|
//# sourceMappingURL=plugins.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as Simplify } from "./simplify-d7VEIjlJ.js";
|
|
2
|
-
import { t as Extra } from "./dm-extra
|
|
2
|
+
import { t as Extra } from "./dm-extra--BY805J3.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import * as t from "drizzle-orm/pg-core";
|
|
5
5
|
|
|
@@ -1551,4 +1551,4 @@ declare const DMAttrSchema: z.ZodEnum<{
|
|
|
1551
1551
|
}>;
|
|
1552
1552
|
//#endregion
|
|
1553
1553
|
export { poolEnum as _, baseRelations as a, chunks as c, danmakusInsertZod as d, danmakusSelectZod as f, onConflictDoUpdateSet as g, onConflictDoUpdate as h, PoolSchema as i, chunksZod as l, modeEnum as m, DanmakusInsert as n, chunk2danmakus as o, dmAttrEnum as p, ModeSchema as r, chunk2danmakusZod as s, DMAttrSchema as t, danmakus as u, relations as v };
|
|
1554
|
-
//# sourceMappingURL=schema-
|
|
1554
|
+
//# sourceMappingURL=schema-B08Jk3HR.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-
|
|
1
|
+
{"version":3,"file":"schema-B08Jk3HR.d.ts","names":[],"sources":["../src/core/db/schema.ts"],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Tt as Promisable, X as InitedUniDB, et as UniChunk, n as Metadata, t as Adapter, ut as UniDMObj } from "./index-
|
|
2
|
-
import { i as PoolSchema, r as ModeSchema, t as DMAttrSchema } from "./schema-
|
|
1
|
+
import { Tt as Promisable, X as InitedUniDB, et as UniChunk, n as Metadata, t as Adapter, ut as UniDMObj } from "./index-DPxMOW6E.js";
|
|
2
|
+
import { i as PoolSchema, r as ModeSchema, t as DMAttrSchema } from "./schema-B08Jk3HR.js";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
|
|
5
5
|
//#region src/utils/fileParser.d.ts
|
package/dist/utils.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./chunk-DK3Fl9T5.js";import{n as t}from"./core-
|
|
1
|
+
import{t as e}from"./chunk-DK3Fl9T5.js";import{n as t}from"./core-D1XUOSXa.js";import{H as n}from"./adapters-n4ZeTSYX.js";import{t as r}from"./isSame-MiM4wHvK.js";const i=async(e,n,r)=>{let i=e instanceof t?e:await e.makeChunk({});for(let e of n){if(e.check?.body){let t=await e.check.body(r);if(t!==null)return i.delete(),t}if(e.check?.adapter){let t=await e.check.adapter(i,r);if(t!==null)return t}}return i.delete(),null},a=(e,t)=>{let n=[];for(let[r,i]of e)if(r.check?.fn){if(r.check.fn(t)){n.push([r,i]);continue}}else{if(t.includes(r.type))return[[r,i]];r.ext.some(e=>t.endsWith(e))&&n.push([r,i])}return n};async function o(e,n,r,o){let s=e instanceof t?e:await e.makeChunk({});return r instanceof File?i(s,a(n,r.name).map(([e])=>e),r):i(s,a(n,r).map(([e])=>e),o)}var s=e({WildcardAdapterUtil:()=>o,WildcardBodyAdapterUtil:()=>i,WildcardFnAdapterUtil:()=>a,fileParser:()=>n,isSame:()=>r});export{o as WildcardAdapterUtil,i as WildcardBodyAdapterUtil,a as WildcardFnAdapterUtil,n as fileParser,r as isSame,s as t};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dan-uni/dan-any",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.5",
|
|
4
4
|
"description": "A danmaku transformer lib, supporting danmaku from different platforms.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bangumi",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"@noble/hashes": "^2.2.0",
|
|
53
53
|
"drizzle-orm": "^1.0.0-rc.4-5d5b77c",
|
|
54
54
|
"fast-xml-builder": "^1.2.0",
|
|
55
|
-
"fast-xml-parser": "^5.
|
|
55
|
+
"fast-xml-parser": "^5.9.0",
|
|
56
56
|
"json-bigint": "^1.0.0",
|
|
57
57
|
"zod": "^4.4.3"
|
|
58
58
|
},
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"@bufbuild/protoc-gen-es": "^2.12.0",
|
|
63
63
|
"@types/json-bigint": "^1.0.4",
|
|
64
64
|
"@types/node": "^25.9.3",
|
|
65
|
-
"@typescript/native-preview": "^7.0.0-dev.
|
|
66
|
-
"@vitest/ui": "^4.1.
|
|
65
|
+
"@typescript/native-preview": "^7.0.0-dev.20260616.1",
|
|
66
|
+
"@vitest/ui": "^4.1.9",
|
|
67
67
|
"bumpp": "^11.1.0",
|
|
68
68
|
"bun-types": "^1.3.14",
|
|
69
69
|
"drizzle-kit": "^1.0.0-rc.4-ca0f029",
|