@zhin.js/database 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +93 -0
  3. package/lib/base/database.d.ts +71 -0
  4. package/lib/base/database.d.ts.map +1 -0
  5. package/lib/base/database.js +101 -0
  6. package/lib/base/database.js.map +1 -0
  7. package/lib/base/dialect.d.ts +34 -0
  8. package/lib/base/dialect.d.ts.map +1 -0
  9. package/lib/base/dialect.js +21 -0
  10. package/lib/base/dialect.js.map +1 -0
  11. package/lib/base/index.d.ts +6 -0
  12. package/lib/base/index.d.ts.map +1 -0
  13. package/lib/base/index.js +6 -0
  14. package/lib/base/index.js.map +1 -0
  15. package/lib/base/model.d.ts +53 -0
  16. package/lib/base/model.d.ts.map +1 -0
  17. package/lib/base/model.js +65 -0
  18. package/lib/base/model.js.map +1 -0
  19. package/lib/base/query-classes.d.ts +68 -0
  20. package/lib/base/query-classes.d.ts.map +1 -0
  21. package/lib/base/query-classes.js +178 -0
  22. package/lib/base/query-classes.js.map +1 -0
  23. package/lib/base/thenable.d.ts +15 -0
  24. package/lib/base/thenable.d.ts.map +1 -0
  25. package/lib/base/thenable.js +33 -0
  26. package/lib/base/thenable.js.map +1 -0
  27. package/lib/dialects/memory.d.ts +52 -0
  28. package/lib/dialects/memory.d.ts.map +1 -0
  29. package/lib/dialects/memory.js +772 -0
  30. package/lib/dialects/memory.js.map +1 -0
  31. package/lib/dialects/mongodb.d.ts +85 -0
  32. package/lib/dialects/mongodb.d.ts.map +1 -0
  33. package/lib/dialects/mongodb.js +461 -0
  34. package/lib/dialects/mongodb.js.map +1 -0
  35. package/lib/dialects/mysql.d.ts +33 -0
  36. package/lib/dialects/mysql.d.ts.map +1 -0
  37. package/lib/dialects/mysql.js +132 -0
  38. package/lib/dialects/mysql.js.map +1 -0
  39. package/lib/dialects/pg.d.ts +33 -0
  40. package/lib/dialects/pg.d.ts.map +1 -0
  41. package/lib/dialects/pg.js +132 -0
  42. package/lib/dialects/pg.js.map +1 -0
  43. package/lib/dialects/redis.d.ts +87 -0
  44. package/lib/dialects/redis.d.ts.map +1 -0
  45. package/lib/dialects/redis.js +500 -0
  46. package/lib/dialects/redis.js.map +1 -0
  47. package/lib/dialects/sqlite.d.ts +46 -0
  48. package/lib/dialects/sqlite.d.ts.map +1 -0
  49. package/lib/dialects/sqlite.js +201 -0
  50. package/lib/dialects/sqlite.js.map +1 -0
  51. package/lib/index.d.ts +18 -0
  52. package/lib/index.d.ts.map +1 -0
  53. package/lib/index.js +18 -0
  54. package/lib/index.js.map +1 -0
  55. package/lib/registry.d.ts +37 -0
  56. package/lib/registry.d.ts.map +1 -0
  57. package/lib/registry.js +21 -0
  58. package/lib/registry.js.map +1 -0
  59. package/lib/type/document/database.d.ts +60 -0
  60. package/lib/type/document/database.d.ts.map +1 -0
  61. package/lib/type/document/database.js +242 -0
  62. package/lib/type/document/database.js.map +1 -0
  63. package/lib/type/document/model.d.ts +42 -0
  64. package/lib/type/document/model.d.ts.map +1 -0
  65. package/lib/type/document/model.js +65 -0
  66. package/lib/type/document/model.js.map +1 -0
  67. package/lib/type/keyvalue/database.d.ts +64 -0
  68. package/lib/type/keyvalue/database.d.ts.map +1 -0
  69. package/lib/type/keyvalue/database.js +214 -0
  70. package/lib/type/keyvalue/database.js.map +1 -0
  71. package/lib/type/keyvalue/model.d.ts +107 -0
  72. package/lib/type/keyvalue/model.d.ts.map +1 -0
  73. package/lib/type/keyvalue/model.js +261 -0
  74. package/lib/type/keyvalue/model.js.map +1 -0
  75. package/lib/type/related/database.d.ts +32 -0
  76. package/lib/type/related/database.d.ts.map +1 -0
  77. package/lib/type/related/database.js +334 -0
  78. package/lib/type/related/database.js.map +1 -0
  79. package/lib/type/related/model.d.ts +43 -0
  80. package/lib/type/related/model.d.ts.map +1 -0
  81. package/lib/type/related/model.js +108 -0
  82. package/lib/type/related/model.js.map +1 -0
  83. package/lib/types.d.ts +251 -0
  84. package/lib/types.d.ts.map +1 -0
  85. package/lib/types.js +28 -0
  86. package/lib/types.js.map +1 -0
  87. package/package.json +54 -0
  88. package/src/base/database.ts +128 -0
  89. package/src/base/dialect.ts +76 -0
  90. package/src/base/index.ts +5 -0
  91. package/src/base/model.ts +89 -0
  92. package/src/base/query-classes.ts +217 -0
  93. package/src/base/thenable.ts +54 -0
  94. package/src/dialects/memory.ts +880 -0
  95. package/src/dialects/mongodb.ts +533 -0
  96. package/src/dialects/mysql.ts +157 -0
  97. package/src/dialects/pg.ts +157 -0
  98. package/src/dialects/redis.ts +598 -0
  99. package/src/dialects/sqlite.ts +233 -0
  100. package/src/index.ts +20 -0
  101. package/src/registry.ts +59 -0
  102. package/src/type/document/database.ts +283 -0
  103. package/src/type/document/model.ts +86 -0
  104. package/src/type/keyvalue/database.ts +261 -0
  105. package/src/type/keyvalue/model.ts +339 -0
  106. package/src/type/related/database.ts +392 -0
  107. package/src/type/related/model.ts +117 -0
  108. package/src/types.ts +403 -0
  109. package/tsconfig.json +24 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/dialects/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,SAAS,CAAC;AAEhC,OAAO,EAAC,eAAe,EAAC,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AAerC,MAAM,OAAO,aAAc,SAAQ,OAA4B;IACrD,SAAS,GAAG,KAAK,CAAC;IAClB,MAAM,GAA6B,IAAI,GAAG,EAAE,CAAC;IAC7C,qBAAqB,GAAqC,IAAI,GAAG,EAAE,CAAC;IAE5E,YAAY,SAAuB,EAAE;QACnC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,wBAAwB;IACxB,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACpB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,MAAc;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QAED,gBAAgB;QAChB,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QACnD,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QAC9C,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QAC9C,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QAC9C,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QAC9C,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QAClD,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QACjD,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QACjD,CAAC;aAAM,IAAI,UAAU,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACjD,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAM,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,yBAAyB;IACzB,aAAa,CAAC,IAAY;QACxB,yBAAyB;QACzB,MAAM,OAAO,GAA2B;YACtC,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;SACf,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC;IAC/C,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,OAAO,IAAI,UAAU,GAAG,CAAC;IAC3B,CAAC;IAED,uBAAuB,CAAC,KAAa;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,sBAAsB;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,aAAa,CAAC,KAAc;QAC1B,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IAClC,CAAC;IAED,UAAU,CAAC,KAAW;QACpB,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,KAAU;QACnB,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;IACtC,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,kBAAkB,CAAC,KAAU;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC;QACzC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC1B,CAAC;aAAM,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,KAAK,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,WAAW,CAAC,KAAa;QACvB,OAAO,SAAS,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,MAAc;QACzB,OAAO,UAAU,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,MAAc;QAC7C,OAAO,SAAS,KAAK,WAAW,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,iBAAiB,CAAC,SAAiB,EAAE,OAAiB;QACpD,OAAO,gBAAgB,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACnF,CAAC;IAED,gBAAgB,CAAC,SAAiB,EAAE,WAAqB;QACvD,OAAO,eAAe,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACpF,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,QAAkB;QACnD,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,cAAc,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IAC1E,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,SAAiB,EAAE,QAAkB;QACtE,MAAM,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,cAAc,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;IAChH,CAAC;IAED,gBAAgB;IACR,kBAAkB,CAAC,GAAW,EAAE,MAAc;QACpD,qBAAqB;QACrB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACjF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE5B,QAAQ;QACR,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEhE,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAE5B,MAAM,CAAC,UAAU,CAAC,GAAG;gBACnB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACrD,QAAQ,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACpD,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC/C,aAAa,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;aACjH,CAAC;QACJ,CAAC;QAED,MAAM;QACN,MAAM,KAAK,GAAgB;YACzB,IAAI,EAAE,SAAS;YACf,MAAM;YACN,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,IAAI,GAAG,EAAE;SACnB,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAErD,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC;IAEO,aAAa,CAAC,GAAW,EAAE,SAAgB,EAAE;QACnD,eAAe;QACf,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAErD,QAAQ;QACR,MAAM,MAAM,GAAwB,EAAE,CAAC;QAEvC,SAAS;QACT,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,SAAS,CAAC,aAAa,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;gBAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAChC,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,SAAS;QACT,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC7B,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,QAAQ;QACR,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACzC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExB,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,GAAW,EAAE,SAAgB,EAAE;QACnD,gBAAgB;QAChB,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9B,cAAc;QACd,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACrF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QAED,cAAc;QACd,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC5E,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACzC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACpD,CAAC;QAED,WAAW;QACX,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACrE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,SAAS;QACT,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACzE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC1B,MAAM,MAAM,GAAwB,EAAE,CAAC;gBACvC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBACrB,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;wBACjB,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,GAAW,EAAE,SAAgB,EAAE;QACnD,eAAe;QACf,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAE9B,cAAc;QACd,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,YAAY;QACZ,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/B,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1C,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,OAAO;QACP,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;gBAC5B,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;IAEO,aAAa,CAAC,GAAW,EAAE,SAAgB,EAAE;QACnD,eAAe;QACf,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/B,cAAc;QACd,IAAI,WAAW,EAAE,CAAC;YAChB,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;QACP,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;QACrC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAE/D,OAAO,EAAE,YAAY,EAAE,CAAC;IAC1B,CAAC;IAEO,iBAAiB,CAAC,GAAW,EAAE,MAAc;QACnD,qBAAqB;QACrB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACtD,WAAW;YACX,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAC1E,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;gBAClC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;gBAEhE,aAAa;gBACb,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACvB,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;gBACzB,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC;IAEO,gBAAgB,CAAC,GAAW,EAAE,MAAc;QAClD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE7C,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC;IAEO,gBAAgB,CAAC,GAAW,EAAE,MAAc;QAClD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACzF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,4BAA4B,SAAS,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC;IAEO,kBAAkB,CAAC,GAAW,EAAE,MAAc;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,mGAAmG,CAAC,CAAC;QAC7H,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAEhE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iBAAiB,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;YAC7B,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,4BAA4B,SAAS,EAAE,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,OAAO;QACP,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;QAE/E,UAAU;QACV,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,4BAA4B,SAAS,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAED,OAAO;QACP,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;QAE1C,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxB,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACnE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC7B,CAAC;IAEO,WAAW,CAAC,SAAiB;QACnC,MAAM,MAAM,GAAU,EAAE,CAAC;QACzB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;YAE1B,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChD,QAAQ,GAAG,IAAI,CAAC;gBAChB,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;iBAAM,IAAI,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3C,YAAY;gBACZ,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACvC,OAAO,IAAI,IAAI,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,KAAK,CAAC;oBACjB,OAAO,IAAI,IAAI,CAAC;gBAClB,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACrC,UAAU,EAAE,CAAC;gBACb,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACrC,UAAU,EAAE,CAAC;gBACb,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,GAAG,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7C,OAAO,GAAG,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,UAAU,CAAC,KAAa;QAC9B,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAErB,QAAQ;QACR,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,SAAS,CAAC;QAEpC,SAAS;QACT,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAEhD,MAAM;QACN,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QAElD,eAAe;QACf,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,KAAK;QACL,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;YAC1C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;QAED,UAAU;QACV,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,UAAU;QACV,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,KAAK;QACL,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,cAAc,CAAC,GAAW;QAChC,OAAO,GAAG;aACP,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;aACtB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;aACrB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,aAAa;QACb,MAAM,SAAS,GAAG,sDAAsD,CAAC;QACzE,OAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,CAAC;IAEO,mBAAmB,CAAC,IAAW,EAAE,WAAmB,EAAE,MAAa;QACzE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACnD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,WAAmB,EAAE,MAAa;QACzD,UAAU;QACV,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAEO,mBAAmB,CAAC,WAAmB;QAC7C,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAChD,QAAQ,GAAG,IAAI,CAAC;gBAChB,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;iBAAM,IAAI,QAAQ,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBACzC,OAAO,IAAI,IAAI,CAAC;gBAClB,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,KAAK,CAAC;oBACjB,OAAO,IAAI,IAAI,CAAC;gBAClB,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5B,OAAO,GAAG,EAAE,CAAC;gBACf,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,UAAU,EAAE,CAAC;YACf,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBACrC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5B,OAAO,GAAG,EAAE,CAAC;gBACf,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACjB,UAAU,EAAE,CAAC;YACf,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5B,OAAO,GAAG,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC5B,OAAO,GAAG,EAAE,CAAC;gBACf,CAAC;gBACD,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,IAAI,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,sBAAsB,CAAC,MAAgB,EAAE,MAAa;QAC5D,kBAAkB;QAClB,IAAI,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE5D,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACzC,IAAI,QAAQ,KAAK,KAAK,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ;gBACxB,MAAM,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC7D,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACtF,CAAC;iBAAM,CAAC;gBACN,MAAM;YACR,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,yBAAyB,CAAC,MAAgB,EAAE,MAAa;QAC/D,OAAO;QACP,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC3C,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAK,MAAM,CAAC,CAAC,CAAY,KAAK,GAAG,EAAE,CAAC;gBACvD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,SAAS;YAC3B,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,UAAU;QACV,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAEtB,gBAAgB;YAChB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpB,UAAU;YACV,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;gBAClB,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAEO,iBAAiB,CAAC,GAAQ,EAAE,SAAc;QAChD,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;YACvB,KAAK,SAAS;gBACZ,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;gBAE3D,IAAI,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;oBACjC,OAAO,IAAI,IAAI,KAAK,CAAC;gBACvB,CAAC;qBAAM,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACvC,OAAO,IAAI,IAAI,KAAK,CAAC;gBACvB,CAAC;gBACD,OAAO,KAAK,CAAC;YAEf,KAAK,YAAY;gBACf,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YAE5F;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,UAAe,EAAE,QAAgB,EAAE,KAAU;QACtE,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,GAAG;gBACN,OAAO,UAAU,IAAI,KAAK,CAAC;YAC7B,KAAK,IAAI,CAAC;YACV,KAAK,IAAI;gBACP,OAAO,UAAU,IAAI,KAAK,CAAC;YAC7B,KAAK,GAAG;gBACN,OAAO,UAAU,GAAG,KAAK,CAAC;YAC5B,KAAK,IAAI;gBACP,OAAO,UAAU,IAAI,KAAK,CAAC;YAC7B,KAAK,GAAG;gBACN,OAAO,UAAU,GAAG,KAAK,CAAC;YAC5B,KAAK,IAAI;gBACP,OAAO,UAAU,IAAI,KAAK,CAAC;YAC7B,KAAK,MAAM;gBACT,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAChE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC7D,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,KAAK,UAAU;gBACb,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAChE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,KAAK,IAAI;gBACP,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACpC,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,KAAK,QAAQ;gBACX,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACrC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,CAAC;YACzD,KAAK,aAAa;gBAChB,OAAO,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,CAAC;YACzD,KAAK,SAAS;gBACZ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/C,OAAO,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAC1D,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,KAAK,aAAa;gBAChB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/C,OAAO,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO,IAAI,CAAC;YACd;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,IAAW,EAAE,WAAmB;QACnD,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEnE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACxB,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK;oBAAE,SAAS;gBAErB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAEpD,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBACtB,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAEtB,IAAI,UAAU,GAAG,CAAC,CAAC;gBACnB,IAAI,IAAI,GAAG,IAAI;oBAAE,UAAU,GAAG,CAAC,CAAC,CAAC;qBAC5B,IAAI,IAAI,GAAG,IAAI;oBAAE,UAAU,GAAG,CAAC,CAAC;gBAErC,IAAI,SAAS,KAAK,MAAM;oBAAE,UAAU,IAAI,CAAC,CAAC,CAAC;gBAE3C,IAAI,UAAU,KAAK,CAAC;oBAAE,OAAO,UAAU,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AACD,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAa,EAAE,EAAE;IACpD,OAAO,IAAI,eAAe,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { Dialect } from '../base';
2
+ import { BuildQueryResult, DatabaseDialect, DocumentQueryResult, QueryParams } from "../types";
3
+ import type { MongoClientOptions } from 'mongodb';
4
+ export interface MongoDBDialectConfig extends MongoClientOptions {
5
+ url: string;
6
+ dbName: string;
7
+ }
8
+ export declare class MongoDBDialect extends Dialect<MongoDBDialectConfig, DocumentQueryResult> {
9
+ private client;
10
+ private db;
11
+ constructor(config: MongoDBDialectConfig);
12
+ /**
13
+ * 检查是否已连接
14
+ */
15
+ isConnected(): boolean;
16
+ /**
17
+ * 连接数据库
18
+ */
19
+ connect(): Promise<void>;
20
+ /**
21
+ * 断开连接
22
+ */
23
+ disconnect(): Promise<void>;
24
+ /**
25
+ * 健康检查
26
+ */
27
+ healthCheck(): Promise<boolean>;
28
+ /**
29
+ * 启动连接
30
+ */
31
+ start(): Promise<void>;
32
+ /**
33
+ * 停止连接
34
+ */
35
+ stop(): Promise<void>;
36
+ /**
37
+ * 释放资源
38
+ */
39
+ dispose(): Promise<void>;
40
+ /**
41
+ * 执行查询
42
+ */
43
+ query<T = any>(query: DocumentQueryResult, params?: any[]): Promise<T>;
44
+ /**
45
+ * 构建查询
46
+ */
47
+ buildQuery<U extends object = any>(params: QueryParams<U>): BuildQueryResult<DocumentQueryResult>;
48
+ mapColumnType(type: string): string;
49
+ formatBoolean(value: boolean): string;
50
+ formatDate(value: Date): string;
51
+ formatJson(value: any): string;
52
+ escapeString(value: string): string;
53
+ formatDefaultValue(value: any): string;
54
+ formatLimit(limit: number): string;
55
+ formatOffset(offset: number): string;
56
+ formatLimitOffset(limit: number, offset: number): string;
57
+ formatCreateTable(tableName: string, columns: string[]): string;
58
+ formatAlterTable(tableName: string, alterations: string[]): string;
59
+ formatDropTable(tableName: string, ifExists?: boolean): string;
60
+ formatDropIndex(indexName: string, tableName: string, ifExists?: boolean): string;
61
+ quoteIdentifier(identifier: string): string;
62
+ getParameterPlaceholder(index: number): string;
63
+ getStatementTerminator(): string;
64
+ private buildCreateQuery;
65
+ private buildSelectQuery;
66
+ private buildInsertQuery;
67
+ private buildUpdateQuery;
68
+ private buildDeleteQuery;
69
+ private buildAlterQuery;
70
+ private buildDropTableQuery;
71
+ private buildDropIndexQuery;
72
+ private convertConditionToMongoFilter;
73
+ private executeFind;
74
+ private executeInsertOne;
75
+ private executeInsertMany;
76
+ private executeUpdateOne;
77
+ private executeUpdateMany;
78
+ private executeDeleteOne;
79
+ private executeDeleteMany;
80
+ private executeCreateIndex;
81
+ private executeDropIndex;
82
+ private executeDropCollection;
83
+ get dialectInfo(): DatabaseDialect;
84
+ }
85
+ //# sourceMappingURL=mongodb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb.d.ts","sourceRoot":"","sources":["../../src/dialects/mongodb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,461 @@
1
+ import { Dialect } from '../base';
2
+ import { DocumentDatabase } from "../type/document/database";
3
+ import { Registry } from "../registry";
4
+ export class MongoDBDialect extends Dialect {
5
+ client = null;
6
+ db = null;
7
+ constructor(config) {
8
+ super('mongodb', config);
9
+ }
10
+ /**
11
+ * 检查是否已连接
12
+ */
13
+ isConnected() {
14
+ return this.client !== null && this.db !== null;
15
+ }
16
+ /**
17
+ * 连接数据库
18
+ */
19
+ async connect() {
20
+ return this.start();
21
+ }
22
+ /**
23
+ * 断开连接
24
+ */
25
+ async disconnect() {
26
+ return this.stop();
27
+ }
28
+ /**
29
+ * 健康检查
30
+ */
31
+ async healthCheck() {
32
+ if (!this.isConnected()) {
33
+ return false;
34
+ }
35
+ try {
36
+ await this.db.admin().ping();
37
+ return true;
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ /**
44
+ * 启动连接
45
+ */
46
+ async start() {
47
+ try {
48
+ // 动态导入 mongodb 客户端
49
+ const { MongoClient } = await import('mongodb');
50
+ this.client = new MongoClient(this.config.url, this.config);
51
+ await this.client.connect();
52
+ this.db = this.client.db(this.config.dbName);
53
+ }
54
+ catch (error) {
55
+ console.error('forgot install mongodb ?');
56
+ throw new Error(`MongoDB 连接失败: ${error}`);
57
+ }
58
+ }
59
+ /**
60
+ * 停止连接
61
+ */
62
+ async stop() {
63
+ if (this.client) {
64
+ await this.client.close();
65
+ this.client = null;
66
+ this.db = null;
67
+ console.log('MongoDB 连接已关闭');
68
+ }
69
+ }
70
+ /**
71
+ * 释放资源
72
+ */
73
+ async dispose() {
74
+ return this.stop();
75
+ }
76
+ /**
77
+ * 执行查询
78
+ */
79
+ async query(query, params = []) {
80
+ if (!this.db) {
81
+ throw new Error('MongoDB 未连接');
82
+ }
83
+ try {
84
+ const collection = this.db.collection(query.collection);
85
+ switch (query.operation || 'find') {
86
+ case 'find':
87
+ return await this.executeFind(collection, query);
88
+ case 'insertOne':
89
+ return await this.executeInsertOne(collection, query, params);
90
+ case 'insertMany':
91
+ return await this.executeInsertMany(collection, query, params);
92
+ case 'updateOne':
93
+ return await this.executeUpdateOne(collection, query, params);
94
+ case 'updateMany':
95
+ return await this.executeUpdateMany(collection, query, params);
96
+ case 'deleteOne':
97
+ return await this.executeDeleteOne(collection, query);
98
+ case 'deleteMany':
99
+ return await this.executeDeleteMany(collection, query);
100
+ case 'createIndex':
101
+ return await this.executeCreateIndex(collection, query, params);
102
+ case 'dropIndex':
103
+ return await this.executeDropIndex(collection, query, params);
104
+ case 'dropCollection':
105
+ return await this.executeDropCollection(collection);
106
+ default:
107
+ throw new Error(`不支持的 MongoDB 操作: ${query.operation}`);
108
+ }
109
+ }
110
+ catch (error) {
111
+ throw new Error(`MongoDB 查询执行失败: ${error}`);
112
+ }
113
+ }
114
+ /**
115
+ * 构建查询
116
+ */
117
+ buildQuery(params) {
118
+ switch (params.type) {
119
+ case 'create':
120
+ return this.buildCreateQuery(params);
121
+ case 'select':
122
+ return this.buildSelectQuery(params);
123
+ case 'insert':
124
+ return this.buildInsertQuery(params);
125
+ case 'update':
126
+ return this.buildUpdateQuery(params);
127
+ case 'delete':
128
+ return this.buildDeleteQuery(params);
129
+ case 'alter':
130
+ return this.buildAlterQuery(params);
131
+ case 'drop_table':
132
+ return this.buildDropTableQuery(params);
133
+ case 'drop_index':
134
+ return this.buildDropIndexQuery(params);
135
+ default:
136
+ throw new Error(`不支持的查询类型: ${params.type}`);
137
+ }
138
+ }
139
+ // 实现 Dialect 接口的所有必需方法
140
+ mapColumnType(type) {
141
+ switch (type) {
142
+ case 'string':
143
+ return 'String';
144
+ case 'integer':
145
+ return 'Int32';
146
+ case 'float':
147
+ return 'Double';
148
+ case 'boolean':
149
+ return 'Boolean';
150
+ case 'date':
151
+ return 'Date';
152
+ case 'json':
153
+ return 'Object';
154
+ default:
155
+ return type;
156
+ }
157
+ }
158
+ formatBoolean(value) {
159
+ return value ? 'true' : 'false';
160
+ }
161
+ formatDate(value) {
162
+ return value.toISOString();
163
+ }
164
+ formatJson(value) {
165
+ return JSON.stringify(value);
166
+ }
167
+ escapeString(value) {
168
+ return value;
169
+ }
170
+ formatDefaultValue(value) {
171
+ return value;
172
+ }
173
+ formatLimit(limit) {
174
+ return `${limit}`;
175
+ }
176
+ formatOffset(offset) {
177
+ return `${offset}`;
178
+ }
179
+ formatLimitOffset(limit, offset) {
180
+ return `${limit},${offset}`;
181
+ }
182
+ formatCreateTable(tableName, columns) {
183
+ return `CREATE TABLE ${tableName} (${columns.join(',')})`;
184
+ }
185
+ formatAlterTable(tableName, alterations) {
186
+ return `ALTER TABLE ${tableName} ${alterations.join(',')}`;
187
+ }
188
+ formatDropTable(tableName, ifExists) {
189
+ return `DROP TABLE ${tableName} ${ifExists ? 'IF EXISTS' : ''}`;
190
+ }
191
+ formatDropIndex(indexName, tableName, ifExists) {
192
+ return `DROP INDEX ${indexName} ON ${tableName} ${ifExists ? 'IF EXISTS' : ''}`;
193
+ }
194
+ quoteIdentifier(identifier) {
195
+ return identifier;
196
+ }
197
+ getParameterPlaceholder(index) {
198
+ return `$${index}`;
199
+ }
200
+ getStatementTerminator() {
201
+ return ';';
202
+ }
203
+ // MongoDB 特定的查询构建方法
204
+ buildCreateQuery(params) {
205
+ return {
206
+ query: {
207
+ collection: params.tableName,
208
+ operation: 'createCollection',
209
+ filter: {},
210
+ projection: {}
211
+ },
212
+ params: []
213
+ };
214
+ }
215
+ buildSelectQuery(params) {
216
+ const filter = {};
217
+ // 转换条件为 MongoDB 查询格式
218
+ if (params.conditions) {
219
+ this.convertConditionToMongoFilter(params.conditions, filter);
220
+ }
221
+ const query = {
222
+ collection: params.tableName,
223
+ operation: 'find',
224
+ filter
225
+ };
226
+ if (params.orderings) {
227
+ query.sort = {};
228
+ for (const order of params.orderings) {
229
+ query.sort[order.field] = order.direction === 'ASC' ? 1 : -1;
230
+ }
231
+ }
232
+ if (params.limitCount) {
233
+ query.limit = params.limitCount;
234
+ }
235
+ if (params.offsetCount) {
236
+ query.skip = params.offsetCount;
237
+ }
238
+ if (params.fields && params.fields.length > 0) {
239
+ query.projection = {};
240
+ for (const field of params.fields) {
241
+ query.projection[field] = 1;
242
+ }
243
+ }
244
+ return {
245
+ query,
246
+ params: []
247
+ };
248
+ }
249
+ buildInsertQuery(params) {
250
+ return {
251
+ query: {
252
+ collection: params.tableName,
253
+ operation: 'insertOne',
254
+ filter: {},
255
+ projection: {}
256
+ },
257
+ params: [params.data]
258
+ };
259
+ }
260
+ buildUpdateQuery(params) {
261
+ const filter = {};
262
+ if (params.conditions) {
263
+ this.convertConditionToMongoFilter(params.conditions, filter);
264
+ }
265
+ return {
266
+ query: {
267
+ collection: params.tableName,
268
+ operation: 'updateMany',
269
+ filter,
270
+ projection: {}
271
+ },
272
+ params: [params.update]
273
+ };
274
+ }
275
+ buildDeleteQuery(params) {
276
+ const filter = {};
277
+ if (params.conditions) {
278
+ this.convertConditionToMongoFilter(params.conditions, filter);
279
+ }
280
+ return {
281
+ query: {
282
+ collection: params.tableName,
283
+ operation: 'deleteMany',
284
+ filter,
285
+ projection: {}
286
+ },
287
+ params: []
288
+ };
289
+ }
290
+ buildAlterQuery(params) {
291
+ return {
292
+ query: {
293
+ collection: params.tableName,
294
+ operation: 'createIndex',
295
+ filter: {},
296
+ projection: {}
297
+ },
298
+ params: [params.alterations]
299
+ };
300
+ }
301
+ buildDropTableQuery(params) {
302
+ return {
303
+ query: {
304
+ collection: params.tableName,
305
+ operation: 'dropCollection',
306
+ filter: {},
307
+ projection: {}
308
+ },
309
+ params: []
310
+ };
311
+ }
312
+ buildDropIndexQuery(params) {
313
+ return {
314
+ query: {
315
+ collection: params.tableName,
316
+ operation: 'dropIndex',
317
+ filter: {},
318
+ projection: {}
319
+ },
320
+ params: [params.indexName]
321
+ };
322
+ }
323
+ convertConditionToMongoFilter(condition, filter) {
324
+ if (typeof condition !== 'object' || condition === null) {
325
+ return;
326
+ }
327
+ for (const [key, value] of Object.entries(condition)) {
328
+ if (key.startsWith('$')) {
329
+ // 逻辑操作符
330
+ if (key === '$and' && Array.isArray(value)) {
331
+ filter.$and = value.map(cond => {
332
+ const subFilter = {};
333
+ this.convertConditionToMongoFilter(cond, subFilter);
334
+ return subFilter;
335
+ });
336
+ }
337
+ else if (key === '$or' && Array.isArray(value)) {
338
+ filter.$or = value.map(cond => {
339
+ const subFilter = {};
340
+ this.convertConditionToMongoFilter(cond, subFilter);
341
+ return subFilter;
342
+ });
343
+ }
344
+ else if (key === '$not') {
345
+ const subFilter = {};
346
+ this.convertConditionToMongoFilter(value, subFilter);
347
+ filter.$not = subFilter;
348
+ }
349
+ else {
350
+ filter[key] = value;
351
+ }
352
+ }
353
+ else if (typeof value === 'object' && value !== null) {
354
+ // 比较操作符
355
+ const fieldFilter = {};
356
+ for (const [op, opValue] of Object.entries(value)) {
357
+ if (op.startsWith('$')) {
358
+ fieldFilter[op] = opValue;
359
+ }
360
+ else {
361
+ fieldFilter.$eq = value;
362
+ }
363
+ }
364
+ filter[key] = Object.keys(fieldFilter).length > 0 ? fieldFilter : value;
365
+ }
366
+ else {
367
+ // 简单相等
368
+ filter[key] = value;
369
+ }
370
+ }
371
+ }
372
+ // MongoDB 执行方法
373
+ async executeFind(collection, query) {
374
+ let cursor = collection.find(query.filter);
375
+ if (query.sort) {
376
+ cursor = cursor.sort(query.sort);
377
+ }
378
+ if (query.skip) {
379
+ cursor = cursor.skip(query.skip);
380
+ }
381
+ if (query.limit) {
382
+ cursor = cursor.limit(query.limit);
383
+ }
384
+ if (query.projection) {
385
+ cursor = cursor.projection(query.projection);
386
+ }
387
+ return await cursor.toArray();
388
+ }
389
+ async executeInsertOne(collection, query, params) {
390
+ const result = await collection.insertOne(params[0]);
391
+ return [{ insertedId: result.insertedId, ...params[0] }];
392
+ }
393
+ async executeInsertMany(collection, query, params) {
394
+ const result = await collection.insertMany(params);
395
+ return Object.values(result.insertedIds).map((id, index) => ({
396
+ insertedId: id,
397
+ ...params[index]
398
+ }));
399
+ }
400
+ async executeUpdateOne(collection, query, params) {
401
+ const result = await collection.updateOne(query.filter, { $set: params[0] });
402
+ return [{ modifiedCount: result.modifiedCount, matchedCount: result.matchedCount }];
403
+ }
404
+ async executeUpdateMany(collection, query, params) {
405
+ const result = await collection.updateMany(query.filter, { $set: params[0] });
406
+ return [{ modifiedCount: result.modifiedCount, matchedCount: result.matchedCount }];
407
+ }
408
+ async executeDeleteOne(collection, query) {
409
+ const result = await collection.deleteOne(query.filter);
410
+ return [{ deletedCount: result.deletedCount }];
411
+ }
412
+ async executeDeleteMany(collection, query) {
413
+ const result = await collection.deleteMany(query.filter);
414
+ return [{ deletedCount: result.deletedCount }];
415
+ }
416
+ async executeCreateIndex(collection, query, params) {
417
+ const result = await collection.createIndex(params[0]);
418
+ return [{ indexName: result }];
419
+ }
420
+ async executeDropIndex(collection, query, params) {
421
+ const result = await collection.dropIndex(params[0]);
422
+ return [{ result }];
423
+ }
424
+ async executeDropCollection(collection) {
425
+ const result = await collection.drop();
426
+ return [{ result }];
427
+ }
428
+ get dialectInfo() {
429
+ return {
430
+ name: this.name,
431
+ version: '1.0.0',
432
+ features: [
433
+ 'document_storage',
434
+ 'indexing',
435
+ 'aggregation',
436
+ 'transactions',
437
+ 'replica_sets',
438
+ 'sharding'
439
+ ],
440
+ dataTypes: {
441
+ 'string': 'String',
442
+ 'integer': 'Int32',
443
+ 'float': 'Double',
444
+ 'boolean': 'Boolean',
445
+ 'date': 'Date',
446
+ 'json': 'Object'
447
+ },
448
+ identifierQuote: '',
449
+ parameterPlaceholder: '?',
450
+ supportsTransactions: true,
451
+ supportsIndexes: true,
452
+ supportsForeignKeys: false,
453
+ supportsViews: false,
454
+ supportsStoredProcedures: false
455
+ };
456
+ }
457
+ }
458
+ Registry.register('mongodb', (config, schemas) => {
459
+ return new DocumentDatabase(new MongoDBDialect(config), schemas);
460
+ });
461
+ //# sourceMappingURL=mongodb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mongodb.js","sourceRoot":"","sources":["../../src/dialects/mongodb.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { Dialect } from '../base';
2
+ import type { ConnectionOptions } from 'mysql2/promise';
3
+ import { Column } from "../types";
4
+ export interface MySQLDialectConfig extends ConnectionOptions {
5
+ }
6
+ export declare class MySQLDialect extends Dialect<MySQLDialectConfig, string> {
7
+ private connection;
8
+ constructor(config: MySQLDialectConfig);
9
+ isConnected(): boolean;
10
+ connect(): Promise<void>;
11
+ disconnect(): Promise<void>;
12
+ healthCheck(): Promise<boolean>;
13
+ query<U = any>(sql: string, params?: any[]): Promise<U>;
14
+ dispose(): Promise<void>;
15
+ mapColumnType(type: string): string;
16
+ quoteIdentifier(identifier: string): string;
17
+ getParameterPlaceholder(index: number): string;
18
+ getStatementTerminator(): string;
19
+ formatBoolean(value: boolean): string;
20
+ formatDate(value: Date): string;
21
+ formatJson(value: any): string;
22
+ escapeString(value: string): string;
23
+ formatDefaultValue(value: any): string;
24
+ formatLimit(limit: number): string;
25
+ formatOffset(offset: number): string;
26
+ formatLimitOffset(limit: number, offset: number): string;
27
+ formatCreateTable(tableName: string, columns: string[]): string;
28
+ formatColumnDefinition(field: string, column: Column<any>): string;
29
+ formatAlterTable(tableName: string, alterations: string[]): string;
30
+ formatDropTable(tableName: string, ifExists?: boolean): string;
31
+ formatDropIndex(indexName: string, tableName: string, ifExists?: boolean): string;
32
+ }
33
+ //# sourceMappingURL=mysql.d.ts.map