@dan-uni/dan-any 2.2.9 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/dist/_polyfill-node.buffer-DsMhZhzX.mjs +8 -0
  2. package/dist/adapters-CfUw5L_0.cjs +1 -0
  3. package/dist/adapters-DrU6h2cI.mjs +2 -0
  4. package/dist/adapters-DrU6h2cI.mjs.map +1 -0
  5. package/dist/adapters.cjs +1 -0
  6. package/dist/{adapters.d.ts → adapters.d.cts} +1 -1
  7. package/dist/adapters.d.mts +2 -0
  8. package/dist/adapters.mjs +1 -0
  9. package/dist/core/db/schema.cjs +1 -0
  10. package/dist/core/db/{schema.d.ts → schema.d.cts} +1 -1
  11. package/dist/core/db/schema.d.mts +2 -0
  12. package/dist/core/db/{schema.js → schema.mjs} +1 -1
  13. package/dist/core/db/schema.mjs.map +1 -0
  14. package/dist/core/db/utils.cjs +1 -0
  15. package/dist/core/db/{utils.d.ts → utils.d.cts} +2 -2
  16. package/dist/core/db/{utils.d.ts.map → utils.d.cts.map} +1 -1
  17. package/dist/core/db/utils.d.mts +1703 -0
  18. package/dist/core/db/utils.d.mts.map +1 -0
  19. package/dist/core/db/utils.mjs +1 -0
  20. package/dist/core/main/drizzle.cjs +1 -0
  21. package/dist/core/main/drizzle.d.cts +4264 -0
  22. package/dist/core/main/{drizzle.d.ts.map → drizzle.d.cts.map} +1 -1
  23. package/dist/core/main/{drizzle.d.ts → drizzle.d.mts} +5 -5
  24. package/dist/core/main/drizzle.d.mts.map +1 -0
  25. package/dist/core/main/drizzle.mjs +1 -0
  26. package/dist/core/main/pure.cjs +1 -0
  27. package/dist/core/main/pure.d.cts +2 -0
  28. package/dist/core/main/pure.d.mts +2 -0
  29. package/dist/core/main/pure.mjs +1 -0
  30. package/dist/core/main.cjs +1 -0
  31. package/dist/core/main.d.cts +3 -0
  32. package/dist/core/main.d.mts +3 -0
  33. package/dist/core/main.mjs +1 -0
  34. package/dist/core-4ArGRwMC.mjs +2 -0
  35. package/dist/core-4ArGRwMC.mjs.map +1 -0
  36. package/dist/core-BBHKzPvU.cjs +1 -0
  37. package/dist/core.cjs +1 -0
  38. package/dist/{core.d.ts → core.d.cts} +2 -2
  39. package/dist/core.d.mts +3 -0
  40. package/dist/core.mjs +1 -0
  41. package/dist/db-CwVpeD4O.cjs +49 -0
  42. package/dist/{db-CK9ddboZ.js → db-f5FA8dbM.mjs} +2 -2
  43. package/dist/db-f5FA8dbM.mjs.map +1 -0
  44. package/dist/{dm-extra-8pmLcNuD.d.ts → dm-extra-8pmLcNuD.d.cts} +1 -1
  45. package/dist/dm-extra-8pmLcNuD.d.cts.map +1 -0
  46. package/dist/dm-extra-8pmLcNuD.d.mts +176 -0
  47. package/dist/dm-extra-8pmLcNuD.d.mts.map +1 -0
  48. package/dist/index-0u9-uL1X.d.cts +749 -0
  49. package/dist/index-0u9-uL1X.d.cts.map +1 -0
  50. package/dist/{index-CyibNSYQ.d.ts → index-DgYC46dv.d.mts} +2 -2
  51. package/dist/index-DgYC46dv.d.mts.map +1 -0
  52. package/dist/index.cjs +1 -0
  53. package/dist/index.d.cts +4 -0
  54. package/dist/index.d.mts +4 -0
  55. package/dist/index.mjs +1 -0
  56. package/dist/isSame-5PEBvoAf.cjs +1 -0
  57. package/dist/isSame-CHWATVPP.mjs +2 -0
  58. package/dist/isSame-CHWATVPP.mjs.map +1 -0
  59. package/dist/main-drizzle-5YwoBNLa.cjs +1 -0
  60. package/dist/main-drizzle-CFn4wSf9.mjs +2 -0
  61. package/dist/main-drizzle-CFn4wSf9.mjs.map +1 -0
  62. package/dist/main-pure-BMVTtZZ6.d.cts +150 -0
  63. package/dist/main-pure-BMVTtZZ6.d.cts.map +1 -0
  64. package/dist/main-pure-CsGI_nh8.cjs +1 -0
  65. package/dist/main-pure-CwkxVA_h.mjs +2 -0
  66. package/dist/main-pure-CwkxVA_h.mjs.map +1 -0
  67. package/dist/{main-pure-DkKNyAz1.d.ts → main-pure-DYOa3J6q.d.mts} +3 -3
  68. package/dist/main-pure-DYOa3J6q.d.mts.map +1 -0
  69. package/dist/plugins.cjs +1 -0
  70. package/dist/plugins.d.cts +142 -0
  71. package/dist/plugins.d.cts.map +1 -0
  72. package/dist/{plugins.d.ts → plugins.d.mts} +3 -3
  73. package/dist/plugins.d.mts.map +1 -0
  74. package/dist/plugins.mjs +2 -0
  75. package/dist/plugins.mjs.map +1 -0
  76. package/dist/rolldown-runtime-DWNI8pZO.cjs +1 -0
  77. package/dist/{schema-D_OmIr-T.d.ts → schema-BxCHeX1R.d.mts} +3 -3
  78. package/dist/schema-BxCHeX1R.d.mts.map +1 -0
  79. package/dist/schema-CtAZjMiK.d.cts +1554 -0
  80. package/dist/schema-CtAZjMiK.d.cts.map +1 -0
  81. package/dist/{simplify-d7VEIjlJ.d.ts → simplify-d7VEIjlJ.d.cts} +1 -1
  82. package/dist/simplify-d7VEIjlJ.d.cts.map +1 -0
  83. package/dist/simplify-d7VEIjlJ.d.mts +63 -0
  84. package/dist/simplify-d7VEIjlJ.d.mts.map +1 -0
  85. package/dist/utils.cjs +1 -0
  86. package/dist/utils.d.cts +39 -0
  87. package/dist/utils.d.cts.map +1 -0
  88. package/dist/{utils.d.ts → utils.d.mts} +3 -3
  89. package/dist/utils.d.mts.map +1 -0
  90. package/dist/utils.mjs +2 -0
  91. package/dist/utils.mjs.map +1 -0
  92. package/package.json +46 -12
  93. package/dist/adapters-fk-6LLym.js +0 -2
  94. package/dist/adapters-fk-6LLym.js.map +0 -1
  95. package/dist/adapters.js +0 -1
  96. package/dist/core/db/schema.js.map +0 -1
  97. package/dist/core/db/utils.js +0 -1
  98. package/dist/core/main/drizzle.js +0 -1
  99. package/dist/core/main/pure.d.ts +0 -2
  100. package/dist/core/main/pure.js +0 -1
  101. package/dist/core/main.d.ts +0 -3
  102. package/dist/core/main.js +0 -1
  103. package/dist/core-CqCB-FDe.js +0 -2
  104. package/dist/core-CqCB-FDe.js.map +0 -1
  105. package/dist/core.js +0 -1
  106. package/dist/db-CK9ddboZ.js.map +0 -1
  107. package/dist/dm-extra-8pmLcNuD.d.ts.map +0 -1
  108. package/dist/index-CyibNSYQ.d.ts.map +0 -1
  109. package/dist/index.d.ts +0 -4
  110. package/dist/index.js +0 -1
  111. package/dist/isSame-Dxw0hZag.js +0 -2
  112. package/dist/isSame-Dxw0hZag.js.map +0 -1
  113. package/dist/main-drizzle-CYhgWVV9.js +0 -2
  114. package/dist/main-drizzle-CYhgWVV9.js.map +0 -1
  115. package/dist/main-pure-CZelRqTJ.js +0 -2
  116. package/dist/main-pure-CZelRqTJ.js.map +0 -1
  117. package/dist/main-pure-DkKNyAz1.d.ts.map +0 -1
  118. package/dist/plugins.d.ts.map +0 -1
  119. package/dist/plugins.js +0 -2
  120. package/dist/plugins.js.map +0 -1
  121. package/dist/schema-D_OmIr-T.d.ts.map +0 -1
  122. package/dist/simplify-d7VEIjlJ.d.ts.map +0 -1
  123. package/dist/utils.d.ts.map +0 -1
  124. package/dist/utils.js +0 -2
  125. package/dist/utils.js.map +0 -1
  126. /package/dist/{rolldown-runtime-DK3Fl9T5.js → rolldown-runtime-DK3Fl9T5.mjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.mjs","names":[],"sources":["../../../src/core/db/schema.ts"],"sourcesContent":["import { defineRelations, defineRelationsPart, sql } from \"drizzle-orm\";\nimport * as t from \"drizzle-orm/pg-core\";\nimport type { Extra as UniDanExtra } from \"@/core/dm-extra.ts\";\nimport { z } from \"zod\";\nimport { createInsertSchema } from \"drizzle-orm/zod\";\nimport type { Simplify } from \"type-fest\";\n\nexport const modeEnum = t.pgEnum(\"mode\", [\"Normal\", \"Bottom\", \"Top\", \"Reverse\", \"Ext\"]);\nexport const poolEnum = t.pgEnum(\"pool\", [\"Def\", \"Sub\", \"Adv\", \"Ix\"]);\nexport const dmAttrEnum = t.pgEnum(\"dm_attr\", [\n \"Protect\",\n \"FromLive\",\n \"HighLike\",\n \"Compatible\",\n \"Reported\",\n \"Unchecked\",\n \"HasEvent\",\n \"Hide\",\n]);\n\n// bsnapshot的弹幕不设置默认值,尽量遵循上传组的原始数据(保证所有重要值均有确定)\nexport const danmakus = t.pgTable(\"danmakus\", {\n SOID: t.text().notNull(),\n // .references(() => pools.SOID),\n DMID: t.text().primaryKey(), // 该值在此直接map到dan-any的DMID,为唯一值\n progress: t.integer().notNull(), // 毫秒\n mode: modeEnum().notNull(),\n fontsize: t.smallint().notNull(),\n color: t.integer().notNull(),\n senderID: t.text().notNull(),\n content: t.text().notNull(),\n ctime: t.timestamp().notNull(),\n weight: t.smallint().notNull(),\n pool: poolEnum().notNull(),\n attr: dmAttrEnum().array().notNull(),\n platform: t.text(),\n extra: t.jsonb().$type<UniDanExtra>(),\n});\nexport const danmakusInsertZod = createInsertSchema(danmakus);\nexport const danmakusSelectZod = createInsertSchema(danmakus);\nexport type DanmakusInsert = Simplify<\n Omit<z.infer<typeof danmakusInsertZod>, \"extra\"> & { extra: UniDanExtra | null }\n>;\n// export const pools = t.pgTable(\"pools\", {\n// SOID: t.text().primaryKey(),\n// });\n\nexport const chunks = t.pgTable(\"chunks\", {\n id: t.serial().primaryKey(),\n // 信息区\n fromConverted: t.boolean().notNull().default(false), // 是否包含有损转换过的弹幕,导入后不建议再次导出(应用层决定:导出按钮检测到后提示/禁用)\n tmp: t.boolean().notNull().default(false), // 是否为临时chunk,临时chunk会在完成导出行为后自动删除/shrink时自动批量删除\n});\nexport const chunksZod = createInsertSchema(chunks);\n\n// many-to-many 映射表:chunk <-> danmakus\nexport const chunk2danmakus = t.pgTable(\"chunk_danmakus\", {\n id: t.bigserial({ mode: \"bigint\" }).primaryKey(),\n chunkID: t\n .integer()\n .references(() => chunks.id)\n .notNull(),\n DMID: t\n .text()\n .references(() => danmakus.DMID)\n .notNull(),\n});\nexport const chunk2danmakusZod = createInsertSchema(chunk2danmakus);\n\nexport const baseRelations = defineRelations({ danmakus, chunks, chunk2danmakus });\nexport const relations = defineRelationsPart({ danmakus, chunks, chunk2danmakus }, (r) => ({\n // pools: {\n // danmakus: r.many.danmakus({\n // from: r.pools.SOID,\n // to: r.danmakus.SOID,\n // }),\n // },\n chunks: {\n danmakus: r.many.danmakus({\n from: r.chunks.id.through(r.chunk2danmakus.chunkID),\n to: r.danmakus.DMID.through(r.chunk2danmakus.DMID),\n }),\n },\n}));\n\nexport const onConflictDoUpdateSet = {\n danmakus: Object.fromEntries(\n Object.keys(danmakus).map((key) => [key, sql.raw(`excluded.\"${key}\"`)]),\n ),\n} as const;\nexport const onConflictDoUpdate = {\n danmakus: {\n target: [danmakus.DMID],\n set: onConflictDoUpdateSet.danmakus,\n },\n};\n\nexport const ModeSchema = z.enum(danmakus.mode.enumValues);\nexport const PoolSchema = z.enum(danmakus.pool.enumValues);\nexport const DMAttrSchema = z.enum(danmakus.attr.enumValues);\n"],"mappings":"mMAOA,MAAa,EAAW,EAAE,OAAO,OAAQ,CAAC,SAAU,SAAU,MAAO,UAAW,KAAK,CAAC,EACzE,EAAW,EAAE,OAAO,OAAQ,CAAC,MAAO,MAAO,MAAO,IAAI,CAAC,EACvD,EAAa,EAAE,OAAO,UAAW,CAC5C,UACA,WACA,WACA,aACA,WACA,YACA,WACA,MACF,CAAC,EAGY,EAAW,EAAE,QAAQ,WAAY,CAC5C,KAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,EAEvB,KAAM,EAAE,KAAK,CAAC,CAAC,WAAW,EAC1B,SAAU,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAC9B,KAAM,EAAS,CAAC,CAAC,QAAQ,EACzB,SAAU,EAAE,SAAS,CAAC,CAAC,QAAQ,EAC/B,MAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAC3B,SAAU,EAAE,KAAK,CAAC,CAAC,QAAQ,EAC3B,QAAS,EAAE,KAAK,CAAC,CAAC,QAAQ,EAC1B,MAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,EAC7B,OAAQ,EAAE,SAAS,CAAC,CAAC,QAAQ,EAC7B,KAAM,EAAS,CAAC,CAAC,QAAQ,EACzB,KAAM,EAAW,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EACnC,SAAU,EAAE,KAAK,EACjB,MAAO,EAAE,MAAM,CAAC,CAAC,MAAmB,CACtC,CAAC,EACY,EAAoB,EAAmB,CAAQ,EAC/C,EAAoB,EAAmB,CAAQ,EAQ/C,EAAS,EAAE,QAAQ,SAAU,CACxC,GAAI,EAAE,OAAO,CAAC,CAAC,WAAW,EAE1B,cAAe,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAK,EAClD,IAAK,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAK,CAC1C,CAAC,EACY,EAAY,EAAmB,CAAM,EAGrC,EAAiB,EAAE,QAAQ,iBAAkB,CACxD,GAAI,EAAE,UAAU,CAAE,KAAM,QAAS,CAAC,CAAC,CAAC,WAAW,EAC/C,QAAS,EACN,QAAQ,CAAC,CACT,eAAiB,EAAO,EAAE,CAAC,CAC3B,QAAQ,EACX,KAAM,EACH,KAAK,CAAC,CACN,eAAiB,EAAS,IAAI,CAAC,CAC/B,QAAQ,CACb,CAAC,EACY,EAAoB,EAAmB,CAAc,EAErD,EAAgB,EAAgB,CAAE,WAAU,SAAQ,gBAAe,CAAC,EACpE,EAAY,EAAoB,CAAE,WAAU,SAAQ,gBAAe,EAAI,IAAO,CAOzF,OAAQ,CACN,SAAU,EAAE,KAAK,SAAS,CACxB,KAAM,EAAE,OAAO,GAAG,QAAQ,EAAE,eAAe,OAAO,EAClD,GAAI,EAAE,SAAS,KAAK,QAAQ,EAAE,eAAe,IAAI,CACnD,CAAC,CACH,CACF,EAAE,EAEW,EAAwB,CACnC,SAAU,OAAO,YACf,OAAO,KAAK,CAAQ,CAAC,CAAC,IAAK,GAAQ,CAAC,EAAK,EAAI,IAAI,aAAa,EAAI,EAAE,CAAC,CAAC,CACxE,CACF,EACa,EAAqB,CAChC,SAAU,CACR,OAAQ,CAAC,EAAS,IAAI,EACtB,IAAK,EAAsB,QAC7B,CACF,EAEa,EAAa,EAAE,KAAK,EAAS,KAAK,UAAU,EAC5C,EAAa,EAAE,KAAK,EAAS,KAAK,UAAU,EAC5C,EAAe,EAAE,KAAK,EAAS,KAAK,UAAU"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../db-CwVpeD4O.cjs");exports.closeDb=e.t,Object.defineProperty(exports,"db",{enumerable:!0,get:function(){return e.n}}),exports.dumpDb=e.r,exports.initDb=e.i,exports.initNewDb=e.a,exports.migrateDb=e.o;
@@ -1,4 +1,4 @@
1
- import { t as Extra } from "../../dm-extra-8pmLcNuD.js";
1
+ import { t as Extra } from "../../dm-extra-8pmLcNuD.cjs";
2
2
  import { PGlite } from "@electric-sql/pglite";
3
3
  import { drizzle } from "drizzle-orm/pglite";
4
4
 
@@ -1700,4 +1700,4 @@ declare function dumpDb(drizzleInstance?: typeof db): Promise<File>;
1700
1700
  declare function closeDb(): Promise<void>;
1701
1701
  //#endregion
1702
1702
  export { closeDb, db, dumpDb, initDb, initNewDb, migrateDb };
1703
- //# sourceMappingURL=utils.d.ts.map
1703
+ //# sourceMappingURL=utils.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","names":[],"sources":["../../../src/core/db/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.cts","names":[],"sources":["../../../src/core/db/index.ts"],"mappings":";;;;;YAOW,EAAA,GACN,UAAA,QAAkB,OAAA;EAAa,KAAA,EAAO,UAAA,QAAkB,gBAAA;AAAA;AAAA,iBAGpD,gBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAIa,SAAA,CAAU,eAAA,SAAwB,EAAA,GAAE,OAAA;AAAA,iBAKpC,MAAA,CAAO,IAAA,GAAO,IAAA,GAAI,OAAA,8BAAA,cAAA,uBAAA,sBAAA;;;SAZG,UAAA,QAAkB,gBAAA;AAAA;AAAA,iBAmBvC,SAAA,IAAS,OAAA,8BAAA,cAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAMT,MAAA,CAAO,eAAA,UAAyB,EAAA,GAAE,OAAA,CAAA,IAAA;AAAA,iBAQlC,OAAA,IAAO,OAAA"}