cross-seed 6.13.6-2 → 7.0.0-1

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 (147) hide show
  1. package/README.md +12 -13
  2. package/dist/webui/assets/FieldInfo-Bxj_j8SJ.js +1 -0
  3. package/dist/webui/assets/Page-C3rteCZt.js +1 -0
  4. package/dist/webui/assets/array-field-DVSC6nHP.js +1 -0
  5. package/dist/webui/assets/badge-DTZMtS0e.js +1 -0
  6. package/dist/webui/assets/check-Bu3ldi63.js +1 -0
  7. package/dist/webui/assets/chevron-down-CRy8M0kJ.js +1 -0
  8. package/dist/webui/assets/clients-CW8oEZoQ.js +1 -0
  9. package/dist/webui/assets/connect-YBNsnjWT.js +1 -0
  10. package/dist/webui/assets/debug-mz8-WYZj.js +1 -0
  11. package/dist/webui/assets/directories-BSK28RgR.js +1 -0
  12. package/dist/webui/assets/duration-field-C6xoSlJg.js +1 -0
  13. package/dist/webui/assets/general-lJJxZhH7.js +1 -0
  14. package/dist/webui/assets/health-CXbsVrie.js +1 -0
  15. package/dist/webui/assets/index-Bi48hI2z.js +54 -0
  16. package/dist/webui/assets/index-C-Ul7GNg.css +1 -0
  17. package/dist/webui/assets/index-C2cH1Gst.js +1 -0
  18. package/dist/webui/assets/index-Cc5bDmJr.js +1 -0
  19. package/dist/webui/assets/jobs-CxmNab9w.js +1 -0
  20. package/dist/webui/assets/library-vaj2W8sE.js +1 -0
  21. package/dist/webui/assets/loader-circle-M0gu1gZ-.js +1 -0
  22. package/dist/webui/assets/logs-Cu9RyKS0.js +1 -0
  23. package/dist/webui/assets/search-2R5sIdT8.js +1 -0
  24. package/dist/webui/assets/select-field-BCqNLDrJ.js +1 -0
  25. package/dist/webui/assets/select-zHgqMzLj.js +1 -0
  26. package/dist/webui/assets/settings-CMYjpTbZ.js +1 -0
  27. package/dist/webui/assets/submit-button-BtcnyggQ.js +1 -0
  28. package/dist/webui/assets/switch-G0W3uJVN.js +1 -0
  29. package/dist/webui/assets/switch-field-IBd9ORNq.js +1 -0
  30. package/dist/webui/assets/table-DvgJU7Gh.js +1 -0
  31. package/dist/webui/assets/test-tube-BIwmoM45.js +1 -0
  32. package/dist/webui/assets/text-field-DruSbGhy.js +1 -0
  33. package/dist/webui/assets/time-BSMZjmyW.js +1 -0
  34. package/dist/webui/assets/trackers-D-OpAe63.js +7 -0
  35. package/dist/webui/assets/use-form-validation-context-BkAfWAh0.js +1 -0
  36. package/dist/webui/assets/use-settings-form-submit-CDRh-E9U.js +2 -0
  37. package/dist/webui/assets/useQuery-A4Hv_4uX.js +1 -0
  38. package/dist/webui/index.html +13 -0
  39. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts +261 -0
  40. package/node_modules/@cross-seed/shared/dist/configSchema.d.ts.map +1 -0
  41. package/node_modules/@cross-seed/shared/dist/configSchema.js +53 -0
  42. package/node_modules/@cross-seed/shared/dist/configSchema.js.map +1 -0
  43. package/node_modules/@cross-seed/shared/dist/constants.d.ts +122 -0
  44. package/node_modules/@cross-seed/shared/dist/constants.d.ts.map +1 -0
  45. package/node_modules/@cross-seed/shared/dist/constants.js +127 -0
  46. package/node_modules/@cross-seed/shared/dist/constants.js.map +1 -0
  47. package/node_modules/@cross-seed/shared/dist/tsconfig.tsbuildinfo +1 -0
  48. package/node_modules/@cross-seed/shared/dist/utils.d.ts +6 -0
  49. package/node_modules/@cross-seed/shared/dist/utils.d.ts.map +1 -0
  50. package/node_modules/@cross-seed/shared/dist/utils.js +9 -0
  51. package/node_modules/@cross-seed/shared/dist/utils.js.map +1 -0
  52. package/node_modules/@cross-seed/shared/package.json +22 -0
  53. package/package.json +35 -11
  54. package/dist/Result.js +0 -64
  55. package/dist/Result.js.map +0 -1
  56. package/dist/action.js +0 -693
  57. package/dist/action.js.map +0 -1
  58. package/dist/arr.js +0 -199
  59. package/dist/arr.js.map +0 -1
  60. package/dist/auth.js +0 -25
  61. package/dist/auth.js.map +0 -1
  62. package/dist/clients/Deluge.js +0 -698
  63. package/dist/clients/Deluge.js.map +0 -1
  64. package/dist/clients/QBittorrent.js +0 -785
  65. package/dist/clients/QBittorrent.js.map +0 -1
  66. package/dist/clients/RTorrent.js +0 -654
  67. package/dist/clients/RTorrent.js.map +0 -1
  68. package/dist/clients/TorrentClient.js +0 -272
  69. package/dist/clients/TorrentClient.js.map +0 -1
  70. package/dist/clients/Transmission.js +0 -404
  71. package/dist/clients/Transmission.js.map +0 -1
  72. package/dist/cmd.js +0 -196
  73. package/dist/cmd.js.map +0 -1
  74. package/dist/config.template.cjs +0 -353
  75. package/dist/config.template.cjs.map +0 -1
  76. package/dist/configSchema.js +0 -667
  77. package/dist/configSchema.js.map +0 -1
  78. package/dist/configuration.js +0 -82
  79. package/dist/configuration.js.map +0 -1
  80. package/dist/constants.js +0 -281
  81. package/dist/constants.js.map +0 -1
  82. package/dist/dataFiles.js +0 -208
  83. package/dist/dataFiles.js.map +0 -1
  84. package/dist/db.js +0 -216
  85. package/dist/db.js.map +0 -1
  86. package/dist/decide.js +0 -553
  87. package/dist/decide.js.map +0 -1
  88. package/dist/diff.js +0 -24
  89. package/dist/diff.js.map +0 -1
  90. package/dist/errors.js +0 -16
  91. package/dist/errors.js.map +0 -1
  92. package/dist/indexers.js +0 -180
  93. package/dist/indexers.js.map +0 -1
  94. package/dist/inject.js +0 -594
  95. package/dist/inject.js.map +0 -1
  96. package/dist/jobs.js +0 -146
  97. package/dist/jobs.js.map +0 -1
  98. package/dist/logger.js +0 -143
  99. package/dist/logger.js.map +0 -1
  100. package/dist/migrations/00-initialSchema.js +0 -30
  101. package/dist/migrations/00-initialSchema.js.map +0 -1
  102. package/dist/migrations/01-jobs.js +0 -12
  103. package/dist/migrations/01-jobs.js.map +0 -1
  104. package/dist/migrations/02-timestamps.js +0 -21
  105. package/dist/migrations/02-timestamps.js.map +0 -1
  106. package/dist/migrations/03-rateLimits.js +0 -14
  107. package/dist/migrations/03-rateLimits.js.map +0 -1
  108. package/dist/migrations/04-auth.js +0 -13
  109. package/dist/migrations/04-auth.js.map +0 -1
  110. package/dist/migrations/05-caps.js +0 -16
  111. package/dist/migrations/05-caps.js.map +0 -1
  112. package/dist/migrations/06-uniqueDecisions.js +0 -29
  113. package/dist/migrations/06-uniqueDecisions.js.map +0 -1
  114. package/dist/migrations/07-limits.js +0 -12
  115. package/dist/migrations/07-limits.js.map +0 -1
  116. package/dist/migrations/08-rss.js +0 -15
  117. package/dist/migrations/08-rss.js.map +0 -1
  118. package/dist/migrations/09-clientAndDataSearchees.js +0 -34
  119. package/dist/migrations/09-clientAndDataSearchees.js.map +0 -1
  120. package/dist/migrations/10-indexerNameAudioBookCaps.js +0 -18
  121. package/dist/migrations/10-indexerNameAudioBookCaps.js.map +0 -1
  122. package/dist/migrations/11-trackers.js +0 -38
  123. package/dist/migrations/11-trackers.js.map +0 -1
  124. package/dist/migrations/migrations.js +0 -31
  125. package/dist/migrations/migrations.js.map +0 -1
  126. package/dist/parseTorrent.js +0 -128
  127. package/dist/parseTorrent.js.map +0 -1
  128. package/dist/pipeline.js +0 -527
  129. package/dist/pipeline.js.map +0 -1
  130. package/dist/preFilter.js +0 -250
  131. package/dist/preFilter.js.map +0 -1
  132. package/dist/pushNotifier.js +0 -137
  133. package/dist/pushNotifier.js.map +0 -1
  134. package/dist/runtimeConfig.js +0 -11
  135. package/dist/runtimeConfig.js.map +0 -1
  136. package/dist/searchee.js +0 -658
  137. package/dist/searchee.js.map +0 -1
  138. package/dist/server.js +0 -456
  139. package/dist/server.js.map +0 -1
  140. package/dist/startup.js +0 -203
  141. package/dist/startup.js.map +0 -1
  142. package/dist/torrent.js +0 -637
  143. package/dist/torrent.js.map +0 -1
  144. package/dist/torznab.js +0 -777
  145. package/dist/torznab.js.map +0 -1
  146. package/dist/utils.js +0 -637
  147. package/dist/utils.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../src/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC3D,OAAO,EAA8B,CAAC,EAA2B,MAAM,KAAK,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACN,MAAM,EACN,aAAa,EACb,eAAe,EACf,QAAQ,EACR,SAAS,EACT,cAAc,EACd,mBAAmB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,gBAAgB,GAAG;IACxB,aAAa,EAAE,iEAAiE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE;IAC5K,mBAAmB,EAAE,mDAAmD;IACxE,cAAc,EAAE,uCAAuC;IACvD,eAAe,EAAE,mDAAmD;IACpE,gBAAgB,EAAE,+JAA+J;IACjL,aAAa,EAAE,uDAAuD;IACtE,aAAa,EAAE,wIAAwI;IACvJ,oBAAoB,EAAE,aAAa,aAAa,CAAC,QAAQ,MAAM,aAAa,CAAC,GAAG,UAAU,aAAa,CAAC,OAAO,6CAA6C;IAC5J,sBAAsB,EAAE,aAAa,aAAa,CAAC,MAAM,SAAS,aAAa,CAAC,YAAY,4CAA4C;IACxI,MAAM,EAAE,sFAAsF;IAC9F,WAAW,EACV,8EAA8E;IAC/E,aAAa,EAAE,qDAAqD;IACpE,gBAAgB,EAAE,sCAAsC,cAAc,mEAAmE,cAAc,wDAAwD;IAC/M,qBAAqB,EAAE,mCAAmC;IAC1D,wBAAwB,EAAE,uCAAuC;IACjE,0BAA0B,EACzB,wDAAwD;IACzD,kBAAkB,EACjB,oHAAoH;IACrH,qBAAqB,EAAE,mDAAmD;IAC1E,gCAAgC,EAC/B,4FAA4F;IAC7F,iBAAiB,EAChB,oEAAoE;IACrE,qBAAqB,EACpB,uFAAuF;IACxF,qBAAqB,EACpB,mFAAmF;IACpF,UAAU,EAAE,6CAA6C,YAAY,CACpE;QACC,KAAK,CAAC,WAAW;QACjB,KAAK,CAAC,QAAQ;QACd,KAAK,CAAC,YAAY;QAClB,KAAK,CAAC,MAAM;KACZ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EACrB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAC9C,uLAAuL;IACxL,kBAAkB,EAAE,oFAAoF;IACxG,0BAA0B,EACzB,iGAAiG;IAClG,wBAAwB,EACvB,sJAAsJ;IACvJ,gBAAgB,EAAE,gDAAgD;IAClE,kBAAkB,EACjB,wDAAwD;IACzD,WAAW,EACV,gJAAgJ;IACjJ,qBAAqB,EACpB,gKAAgK;IACjK,gBAAgB,EACf,8IAA8I;IAC/I,8BAA8B,EAC7B,wDAAwD;IACzD,WAAW,EAAE,6DAA6D;IAC1E,aAAa,EACZ,sGAAsG;IACvG,gBAAgB,EAAE,6BAA6B,YAAY,CAC1D,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAC7C,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAC9C,EAAE;IACH,sBAAsB,EAAE,kMAAkM;IAC1N,mBAAmB,EAClB,wGAAwG;IACzG,qBAAqB,EACpB,mNAAmN;IACpN,oBAAoB,EACnB,gFAAgF;IACjF,mBAAmB,EAClB,uHAAuH;IACxH,mBAAmB,EAClB,uHAAuH;IACxH,qBAAqB,EACpB,uHAAuH;IACxH,oBAAoB,EACnB,uHAAuH;IACxH,aAAa,EACZ,mFAAmF;CACpF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACpC,KAA8B,EAC9B,GAAgB;IAEhB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,CAAC,YAAY,CAAC,aAAa;YAChC,OAAO;gBACN,OAAO,EAAE,KAAK,CAAC,WAAW;qBACxB,MAAM,CAAW,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;oBAChC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjD,OAAO,GAAG,CAAC;gBACZ,CAAC,EAAE,EAAE,CAAC;qBACL,IAAI,CAAC,IAAI,CAAC;aACZ,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,YAAY,EAAE,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAS,WAAW,CACnB,OAAe,EACf,YAAoB,EACpB,GAAkB;IAElB,GAAG,CAAC,QAAQ,CAAC;QACZ,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,aAAa,OAAO,QAAQ,YAAY,EAAE;KACnD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,WAAmB,EAAE,GAAkB;IACvE,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;IACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,mCAAmC;QACnC,WAAW,CAAC,WAAW,EAAE,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAAC,cAAwB,EAAE,GAAkB;IAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IAC9C,KAAK,MAAM,cAAc,IAAI,cAAc,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,CAAC,WAAW,EAAE,CAAC;YAClB,WAAW,CAAC,cAAc,EAAE,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAC9D,SAAS;QACV,CAAC;QACD,QAAQ,WAAW,CAAC,UAAU,EAAE,CAAC;YAChC,KAAK,KAAK,CAAC,WAAW,CAAC;YACvB,KAAK,KAAK,CAAC,QAAQ,CAAC;YACpB,KAAK,KAAK,CAAC,YAAY,CAAC;YACxB,KAAK,KAAK,CAAC,MAAM;gBAChB,MAAM;YACP;gBACC,WAAW,CAAC,cAAc,EAAE,gBAAgB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC;IACF,CAAC;IACD,OAAO,cAAc,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,SAAmB,EAAE,GAAkB;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAE,EAAE;QACpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,KAAK;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,WAAW,CAAC,KAAK,EAAE,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC;IACjB,CAAC,CAAC;IACF,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YAC7B,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;YAC3D,SAAS;QACV,CAAC;QACD,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACxE,QAAQ,aAAa,EAAE,CAAC;YACvB,KAAK,aAAa,CAAC,IAAI;gBACtB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,WAAW,CACV,QAAQ,EACR,gBAAgB,CAAC,mBAAmB,EACpC,GAAG,CACH,CAAC;gBACH,CAAC;gBACD,MAAM;YACP,KAAK,aAAa,CAAC,MAAM;gBACxB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,WAAW,CACV,QAAQ,EACR,gBAAgB,CAAC,mBAAmB,EACpC,GAAG,CACH,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClC,WAAW,CACV,QAAQ,EACR,gBAAgB,CAAC,eAAe,EAChC,GAAG,CACH,CAAC;gBACH,CAAC;gBACD,MAAM;YACP,KAAK,aAAa,CAAC,UAAU,CAAC;YAC9B,KAAK,aAAa,CAAC,YAAY;gBAC9B,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,WAAW,CACV,QAAQ,EACR,gBAAgB,CAAC,mBAAmB,EACpC,GAAG,CACH,CAAC;gBACH,CAAC;gBACD,IAAI,CAAC;oBACJ,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC5B,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACZ,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YACP,KAAK,aAAa,CAAC,QAAQ;gBAC1B,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CACV,6DAA6D,QAAQ,EAAE,CACvE,CAAC;gBACH,CAAC;gBACD,MAAM;YACP,KAAK,aAAa,CAAC,GAAG;gBACrB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,MAAM,CAAC,IAAI,CACV,wDAAwD,QAAQ,EAAE,CAClE,CAAC;gBACH,CAAC;gBACD,MAAM;YACP,KAAK,aAAa,CAAC,OAAO;gBACzB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,WAAW,CACV,QAAQ,EACR,gBAAgB,CAAC,mBAAmB,EACpC,GAAG,CACH,CAAC;gBACH,CAAC;gBACD,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBACzC,WAAW,CACV,QAAQ,EACR,gBAAgB,CAAC,gBAAgB,EACjC,GAAG,CACH,CAAC;gBACH,CAAC;gBACD,MAAM;YACP,KAAK,aAAa,CAAC,QAAQ;gBAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC3C,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;gBAC5D,CAAC;gBACD,SAAS,CAAC,KAAK,CAAC;oBACf,GAAG,aAAa,IAAI,cAAc,CAAC,WAAW,EAAE,EAAE,CAAC;gBACpD,MAAM;YACP,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC/B,SAAS,GAAG,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM;YACP,CAAC;YACD,KAAK,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC/B,SAAS,GAAG,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM;YACP,CAAC;YACD,KAAK,aAAa,CAAC,MAAM;gBACxB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACjC,WAAW,CACV,QAAQ,EACR,gBAAgB,CAAC,mBAAmB,EACpC,GAAG,CACH,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,KAAK,CACX,yGAAyG,QAAQ,EAAE,CACnH,CAAC;gBACF,MAAM;YACP;gBACC,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC;IACD,IAAI,SAAS,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;QACrD,WAAW,CACV,uBAAuB,EACvB,gBAAgB,CAAC,aAAa,EAC9B,GAAG,CACH,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB,EAAE,UAAoB;IAClE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QACpC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC7D,2DAA2D;QAC3D,OAAO,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAChC,MAAM,CAAC;IACP,KAAK,EAAE,CAAC;SACN,MAAM,EAAE;SACR,WAAW,CAAC,gBAAgB,CAAC,aAAa,CAAC;SAC3C,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;SAChE,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;IAC9C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAClC,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;IACxD,QAAQ,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CACpC,CAAC;SACC,MAAM,EAAE;SACR,MAAM,CACN,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,OAAO,EACpC,gBAAgB,CAAC,gBAAgB,CACjC;SACA,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAChB,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CACpD,CACF;IACD,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACjD,qBAAqB,EAAE,CAAC;SACtB,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,gCAAgC,CAAC;SACzD,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC,gCAAgC,CAAC;IAClE,8BAA8B,EAAE,CAAC;SAC/B,OAAO,EAAE;SACT,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC7B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;IAChC,WAAW,EAAE,CAAC;SACZ,OAAO,EAAE;SACT,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxD,YAAY,EAAE,CAAC;SACb,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;QACxB,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CACV,uJAAuJ,CACvJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IACH,UAAU,EAAE,CAAC;SACX,MAAM,EAAE;SACR,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;IAC7B,SAAS,EAAE,CAAC;SACV,MAAM,EAAE;SACR,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;QAClB,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CACV,uHAAuH,CACvH,CAAC;QACF,OAAO,GAAG,CAAC;IACZ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC/B,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE;IAClC,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;IAC7B,kBAAkB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;IAC5C,kBAAkB,EAAE,CAAC;SACnB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,iBAAiB,CAAC;SAC1C,OAAO,EAAE;SACT,EAAE,CACF,CAAC;SACC,OAAO,EAAE;SACT,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;QAClC,OAAO,EAAE,0CAA0C;KACnD,CAAC;SACD,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACvB;IACF,YAAY,EAAE,CAAC;SACb,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC;SACpC,SAAS,CAAC,uBAAuB,CAAC;SAClC,OAAO,EAAE;SACT,EAAE,CACF,CAAC;SACC,OAAO,EAAE;SACT,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;QAClC,OAAO,EAAE,0CAA0C;KACnD,CAAC;SACD,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACvB;IAEF,mBAAmB,EAAE,CAAC;SACpB,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC;SACpC,SAAS,CAAC,uBAAuB,CAAC;SAClC,OAAO,EAAE;SACT,EAAE,CACF,CAAC;SACC,OAAO,EAAE;SACT,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,EAAE;QAClC,OAAO,EAAE,0CAA0C;KACnD,CAAC;SACD,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CACvB;IAEF,MAAM,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IAC5B,cAAc,EAAE,CAAC;SACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,SAAS,CAAC,uBAAuB,CAAC;IACpC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IAC1C,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IAC1C,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IACxC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;IAChC,uBAAuB,EAAE,CAAC;SACxB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;SACvB,QAAQ,EAAE;SACV,OAAO,CAAC,EAAE,CAAC;IACb,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;IAClD,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,GAAG,CAAC,KAAK,CAAC;SACV,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;SAC1C,OAAO,EAAE;IACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE;IAC/B,UAAU,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC;SACpC,SAAS,CAAC,uBAAuB,CAAC;SAClC,OAAO,EAAE;SACT,MAAM,CACN,CAAC,OAAO,EAAE,EAAE,CACX,OAAO,CAAC,GAAG,CAAC,GAAG;QACf,CAAC,OAAO;QACR,CAAC,OAAO,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,OAAO,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAC1D,gBAAgB,CAAC,qBAAqB,CACtC;IACF,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC;SACpC,SAAS,CAAC,uBAAuB,CAAC;SAClC,OAAO,EAAE;SACT,MAAM,CACN,CAAC,OAAO,EAAE,EAAE,CACX,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,EACtD,gBAAgB,CAAC,wBAAwB,CACzC;IACF,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC;SACpC,SAAS,CAAC,uBAAuB,CAAC;SAClC,OAAO,EAAE;IACX,aAAa,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC;SACpC,SAAS,CAAC,uBAAuB,CAAC;SAClC,OAAO,EAAE;IACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;IAC/C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC;IACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;IACpC,MAAM,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;SACvB,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,EAAE,CAAC;SACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;SACvB,OAAO,EAAE;SACT,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;CAC3B,CAAC;KACD,MAAM,EAAE;KACR,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,cAAc;QACrB,MAAM,CAAC,kBAAkB;QACzB,MAAM,CAAC,YAAY,EAClB,CAAC;QACF,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC/C,MAAM,CAAC,IAAI,CACV,kHAAkH,CAClH,CAAC;QACF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,CAAC,cAAc,GAAG;gBACvB,GAAG,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,cAAc,EAAE;aAC/C,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAClC,MAAM,CAAC,cAAc,GAAG;gBACvB,GAAG,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,cAAc,EAAE;aAC5C,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;YACtC,MAAM,CAAC,cAAc,GAAG;gBACvB,GAAG,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,kBAAkB,EAAE;aACpD,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAChC,MAAM,CAAC,cAAc,GAAG;gBACvB,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE;aACxC,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,8HAA8H,CAAC;KACjI,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACzC,MAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC5D,MAAM,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,+DAA+D,CAAC;KAClE,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,sBAAsB;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,MAAM,CAAC,uBAAuB,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxD,MAAM,CAAC,IAAI,CACV,4EAA4E,CAC5E,CAAC;IACF,MAAM,CAAC,uBAAuB,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,4GAA4G,CAAC;KAC/G,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAC3D,gBAAgB,CAAC,8BAA8B,CAC/C;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EACrE,gBAAgB,CAAC,WAAW,CAC5B;KACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,MAAM,CAAC,iBAAiB;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAC5D,CAAC;QACF,MAAM,CAAC,IAAI,CACV,2LAA2L,CAC3L,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;KACD,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;IAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,EAC7D,gBAAgB,CAAC,kBAAkB,CACnC;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC;IACjC,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EACjD,gBAAgB,CAAC,0BAA0B,CAC3C;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC;IACjC,MAAM,CAAC,QAAQ,CAAC,MAAM;IACtB,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EACxB,gBAAgB,CAAC,wBAAwB,CACzC;KACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,CAC3D,MAAM,CAAC,cAAc,CACrB,CAAC;IACF,OAAO,WAAW,IAAI,kBAAkB,CAAC;AAC1C,CAAC,EAAE,gBAAgB,CAAC,gBAAgB,CAAC;KACpC,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,CAAC,MAAM,CAAC,aAAa;IACrB,CAAC,MAAM,CAAC,mBAAmB;IAC3B,CAAC,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,mBAAmB,EACvD,gBAAgB,CAAC,0BAA0B,CAC3C;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,OAAO,CAAC,GAAG,CAAC,GAAG;IACf,CAAC,MAAM,CAAC,aAAa;IACrB,CAAC,MAAM,CAAC,YAAY;QACnB,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,YAAY,IAAI,CAAC,GAAG,MAAM,CAAC,mBAAmB;QACrD,MAAM,CAAC,YAAY,IAAI,CAAC,GAAG,MAAM,CAAC,mBAAmB,CAAC,EACxD,gBAAgB,CAAC,kBAAkB,CACnC;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,kBAAkB,IAAI,GAAG;IAChC,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAC9C,gBAAgB,CAAC,qBAAqB,CACtC;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,CAAC,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAC7C,CAAC,MAAM,CAAC,kBAAkB;IAC1B,MAAM,CAAC,kBAAkB,IAAI,GAAG,EACjC,gBAAgB,CAAC,qBAAqB,CACtC;KACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,CAAC,KAAK,CACX,6FAA6F,CAC7F,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;KACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAC/B;QACD,CAAC,MAAM,CAAC,WAAW;QACnB,MAAM,CAAC,QAAQ,CAAC,MAAM,EACrB,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;KACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,MAAM,CAAC,qBAAqB,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;KACD,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAClE,gBAAgB,CAAC,qBAAqB,CACtC;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,cAAc,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAChE,gBAAgB,CAAC,kBAAkB,CACnC;KACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,EAClE,CAAC;QACF,MAAM,CAAC,KAAK,CACX,GAAG,aAAa,CAAC,GAAG,uDAAuD,aAAa,CAAC,QAAQ,kBAAkB,aAAa,CAAC,GAAG,0DAA0D,aAAa,CAAC,QAAQ,KAAK,CACzN,CAAC;QACF,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7C,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC3C,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7D,CAAC;YACD,OAAO,CAAC,CAAC;QACV,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,IACC,MAAM,CAAC,cAAc,CAAC,KAAK,CAC1B,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC5B,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CACjC;QACD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3B,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC,CAC1C,EACA,CAAC;QACF,MAAM,CAAC,KAAK,CACX,gCAAgC,aAAa,CAAC,QAAQ,uBAAuB,aAAa,CAAC,GAAG,uBAAuB,CACrH,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;KACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,QAAQ,GAAG,CAAC;QAC1C,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;QACrC,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,OAAO,GAAG,CAAC,CAC1C,EACA,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IACC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM;QAC7B,CAAC,CAAC,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,UAAU,CAAC,EAC/C,CAAC;QACF,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;KACxC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,EAAE,CACL,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QACxC,CAAC,CAAC,UAAU,CAAC,GAAG,aAAa,CAAC,YAAY,GAAG,CAAC,CAC/C,EACA,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,gBAAgB,CAAC,sBAAsB,CAAC;KAC1C,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,iBAAiB;IACxB,MAAM,CAAC,UAAU;IACjB,MAAM,CAAC,QAAQ,CAAC,MAAM;IACtB,CAAC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAC9C,gBAAgB,CAAC,aAAa,CAC9B;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,MAAM,CAAC,QAAQ,CAAC,MAAM;IACtB,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM;IACrC,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAC9B,gBAAgB,CAAC,sBAAsB,CACvC;KACA,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,CACV,CAAC,MAAM,CAAC,kBAAkB;IAC1B,CAAC,MAAM,CAAC,UAAU;IAClB,MAAM,CAAC,cAAc,CAAC,MAAM,EAC7B,gBAAgB,CAAC,mBAAmB,CACpC;KACA,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,kBAAkB;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CACV,uKAAuK,CACvK,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC/B,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC;KACzC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;QAChE,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,OAAO,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;KACxC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,CAAC,IAAI,CACV,qGAAqG,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC,EAAE,6GAA6G,CACxR,CAAC;IACF,OAAO,IAAI,CAAC;AACb,CAAC,CAAC;KACD,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IACC,MAAM,CAAC,UAAU;YACjB,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACxC,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;KACvC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3D,IACC,MAAM,CAAC,UAAU;YACjB,WAAW,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACxC,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,gBAAgB,CAAC,mBAAmB,CAAC;KACvC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACrE,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC;KACzC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,MAAM,CAAC,UAAU;QACjB,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EACjD,CAAC;QACF,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC;KACxC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IAClB,IACC,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7B,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;QAClC,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,EACjC,CAAC;QACF,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC,CAAC,CAAC"}
@@ -1,82 +0,0 @@
1
- import chalk from "chalk";
2
- import { accessSync, constants, copyFileSync, existsSync, mkdirSync } from "fs";
3
- import { createRequire } from "module";
4
- import path from "path";
5
- import { pathToFileURL } from "url";
6
- import { LOGS_FOLDER, TORRENT_CACHE_FOLDER, } from "./constants.js";
7
- import { CrossSeedError } from "./errors.js";
8
- const require = createRequire(import.meta.url);
9
- const packageDotJson = require("../package.json");
10
- export const UNPARSABLE_CONFIG_MESSAGE = `
11
- Your config file is improperly formatted. The location of the error is above, \
12
- but you may have to look backwards to see the root cause.
13
- Make sure that
14
- - strings (words, URLs, etc) are wrapped in "quotation marks"
15
- - any arrays (lists of things, even one thing) are wrapped in [square brackets]
16
- - every entry has a comma after it, including inside arrays
17
- `.trim();
18
- /**
19
- * Returns the appDir relevant to the OS/Environment. Due to initialization of
20
- * the SQLiteDB during read of db.ts - will need to create appDir in this function if
21
- * it does not exist (ENOENT)
22
- *
23
- * @return a string representing the absolute path to cross-seed config directory
24
- */
25
- export function appDir() {
26
- const appDir = process.env.CONFIG_DIR ||
27
- (process.platform === "win32"
28
- ? path.resolve(process.env.LOCALAPPDATA, packageDotJson.name)
29
- : path.resolve(process.env.HOME, `.${packageDotJson.name}`));
30
- try {
31
- accessSync(appDir, constants.R_OK | constants.W_OK);
32
- }
33
- catch (e) {
34
- if (e.code === "ENOENT") {
35
- mkdirSync(appDir, { recursive: true });
36
- return appDir;
37
- }
38
- const dockerMessage = process.env.DOCKER_ENV === "true"
39
- ? ` Use chown to set the owner to ${process.getuid()}:${process.getgid()}`
40
- : "";
41
- throw new CrossSeedError(`cross-seed does not have R/W permissions on your config directory.${dockerMessage}`);
42
- }
43
- return appDir;
44
- }
45
- export function createAppDirHierarchy() {
46
- const appDirPath = appDir();
47
- mkdirSync(path.join(appDirPath, TORRENT_CACHE_FOLDER), { recursive: true });
48
- mkdirSync(path.join(appDirPath, LOGS_FOLDER), { recursive: true });
49
- }
50
- export function generateConfig() {
51
- createAppDirHierarchy();
52
- const dest = path.join(appDir(), "config.js");
53
- const templatePath = path.join("./config.template.cjs");
54
- if (existsSync(dest)) {
55
- console.log("Configuration file already exists.");
56
- return;
57
- }
58
- copyFileSync(new URL(templatePath, import.meta.url), dest);
59
- console.log("Configuration file created at", chalk.yellow.bold(dest));
60
- }
61
- export async function getFileConfig() {
62
- if (process.env.DOCKER_ENV === "true") {
63
- generateConfig();
64
- }
65
- const configPath = path.join(appDir(), "config.js");
66
- try {
67
- return (await import(pathToFileURL(configPath).toString())).default;
68
- }
69
- catch (e) {
70
- if (e.code === "ERR_MODULE_NOT_FOUND") {
71
- return {};
72
- }
73
- else if (e instanceof SyntaxError) {
74
- const location = e.stack.split("\n").slice(0, 3).join("\n");
75
- throw new CrossSeedError(`\n${chalk.red(location)}\n\n${UNPARSABLE_CONFIG_MESSAGE}`);
76
- }
77
- else {
78
- throw e;
79
- }
80
- }
81
- }
82
- //# sourceMappingURL=configuration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"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"}
package/dist/constants.js DELETED
@@ -1,281 +0,0 @@
1
- import { createRequire } from "module";
2
- const require = createRequire(import.meta.url);
3
- const packageDotJson = require("../package.json");
4
- export const PROGRAM_NAME = packageDotJson.name;
5
- export const PROGRAM_VERSION = packageDotJson.version;
6
- export const USER_AGENT = `CrossSeed/${PROGRAM_VERSION}`;
7
- export const TORRENT_TAG = "cross-seed";
8
- export const TORRENT_CATEGORY_SUFFIX = `.cross-seed`;
9
- export const NEWLINE_INDENT = "\n\t\t\t\t";
10
- export const EP_REGEX = /^(?<title>.+?)[_.\s-]+(?:(?<season>S\d+)?[_.\s-]{0,3}(?!(?:19|20)\d{2})(?<episode>(?:E|(?<=S\d+[_\s-]{1,3}))\d+(?:[\s-]?(?!(?:19|20)\d{2})E?\d+)?(?![pix]))(?!\d+[pix])|(?<date>(?<year>(?:19|20)\d{2})[_.\s-](?<month>\d{2})[_.\s-](?<day>\d{2})))/i;
11
- export const BAD_EP_REGEX = /^[_.\s-]*[^_.\s-]*?(?:(?<season>S\d+)?[_.\s-]{0,3}(?!(?:19|20)\d{2})(?<episode>(?:E|(?<=S\d+[_\s-]{1,3}))\d+(?:[\s-]?(?!(?:19|20)\d{2})E?\d+)?(?![pix]))(?!\d+[pix])|(?<date>(?<year>(?:19|20)\d{2})[_.\s-](?<month>\d{2})[_.\s-](?<day>\d{2})))/i;
12
- export const IS_MULTI_EP_REGEX = /E\d+(?:[-.]?S\d+E\d|[-.]?E\d|[-.]\d)/i;
13
- export const SEASON_REGEX = /^(?<title>.+?)[[(_.\s-]+(?<season>S(?:eason)?\s*\d+)(?=\b(?![_.\s~-]*E\d+))/i;
14
- export const BAD_SEASON_REGEX = /^[[_.\s-]*[^[_.\s-]*?(?<season>S(?:eason)?\s*\d+)(?=\b(?![_.\s~-]*E\d+))/i;
15
- export const MOVIE_REGEX = /^(?<title>.+?)-?[_.\s][[(]?(?<year>(?:18|19|20)\d{2})[)\]]?(?![pix])/i;
16
- export const ANIME_REGEX = /^(?:\[(?<group>.*?)\][_\s-]?)?(?:\[?(?<title>.+?)[_\s-]?(?:\(?(?:\d{1,2}(?:st|nd|rd|th))?\s?Season)?[_\s-]?\]?)(?:[([~/|-]\s?(?!\d{1,4})(?<altTitle>.+?)[)\]~-]?\s?)?[_\s-]?(?:[[(]?(?<year>(?:19|20)\d{2})[)\]]?)?[[_\s-](?:S\d{1,2})?[_\s-]{0,3}(?:#|EP?|(?:SP))?[_\s-]{0,3}(?!\d+[a-uw-z])(?<release>\d{1,4})(?!\.[0-46-9])/i;
17
- export const RELEASE_GROUP_REGEX = /(?<=-)(?:\W|\b)(?!(?:\d{3,4}[ip]))(?!\d+\b)(?:\W|\b)(?<group>[\w .]+?)(?:\[.+\])?(?:\))?(?:\s\[.+\])?$/i;
18
- export const ANIME_GROUP_REGEX = /^\s*\[(?<group>.+?)\]/i;
19
- export const RESOLUTION_REGEX = /\b(?<res>\d{3,4}[pix](?:\d{3,4}[pi]?)?)\b/i;
20
- export const RES_STRICT_REGEX = /(?<res>(?:2160|1080|720)[pi])/;
21
- export const YEARS_REGEX = /(?<year>(?:19|20)\d{2})(?![pix])/gi;
22
- export const REPACK_PROPER_REGEX = /(?:\b(?<type>(?:REPACK|PROPER|\dv\d)\d?))\b/i;
23
- export const ARR_PROPER_REGEX = /(?:\b(?<arrtype>(?:Proper|\dv\d)))\b/;
24
- export const SCENE_TITLE_REGEX = /^(?:[a-z0-9]{3,5}-)?(?<title>.*)/;
25
- export const ARR_DIR_REGEX = /^(?<title>(?!.*(?:(\d{3,4}[ipx])|([xh.]+26[4-6])|(dvd)|(mpeg)|(xvid)|(?:(he)|a)vc))[\p{L}\s:\w'’!();.,&–+-]+(?:\(\d{4}\))?)(?<id>\s[{[](?:tm|tv|im)db(?:id)?-\w+?[}\]])?$/iu;
26
- export const SONARR_SUBFOLDERS_REGEX = /^(?:S(?:eason )?(?<seasonNum>\d{1,4}))$/i;
27
- export const NON_UNICODE_ALPHANUM_REGEX = /[^\p{L}\p{N}]+/giu;
28
- export const CALIBRE_INDEXNUM_REGEX = /\s?\(\d+\)$/;
29
- export const INFO_HASH_REGEX = /^[a-z0-9]{40}$/i;
30
- export const SAVED_TORRENTS_INFO_REGEX = /^\[(?<mediaType>.+?)\]\[(?<tracker>.+?)\](?<name>.+?)(?:\[(?<infoHash>[a-z0-9]{40})\])?(?<cached>.cached)?\.torrent$/i;
31
- export const BAD_GROUP_PARSE_REGEX = /^(?<badmatch>(?:dl|DDP?|aac|eac3|atmos|dts|ma|hd|[heav.c]{3.5}|[xh.]{1,2}[2456]|[0-9]+[ip]?|dxva|full|blu|ray|s(?:eason)?\W\d+|\W){3,})$/i;
32
- export const JSON_VALUES_REGEX = /".+?"\s*:\s*"(?<value>.+?)"\s*(?:,|})/g;
33
- export const ABS_WIN_PATH_REGEX = /^[a-z]:|^\\/i;
34
- export const AKA_REGEX = /(?:[_.\s-]+|\b)a[_.\s-]?k[_.\s-]?a(?:[_.\s-]+|\b)/i;
35
- export const ALL_SPACES_REGEX = /\s+/g;
36
- export const ALL_SQUARE_BRACKETS_REGEX = /\[.*?\]|「.*?」|「.*?」|【.*?】/g;
37
- export const ALL_PARENTHESES_REGEX = /\(.*?\)/g;
38
- // Needs to be handled through helper functions since there are variations
39
- const SOURCE_REGEXES = {
40
- AMZN: /\b(amzn|amazon(hd)?)\b[ ._-]web[ ._-]?(dl|rip)?\b/i,
41
- DSNP: /\b(dsnp|dsny|disney)\b/i,
42
- NF: /\b(nf|netflix(u?hd)?)\b/i,
43
- HULU: /\b(hulu)\b/i,
44
- ATVP: /\b(atvp|aptv)\b/i,
45
- HBO: /\b(hbo)(?![ ._-]max)\b|\b(hmax|hbom|hbo[ ._-]max)\b/i,
46
- PCOK: /\b(pcok)\b/i,
47
- PMTP: /\b(pmtp|Paramount Plus)\b/i,
48
- };
49
- export function parseSource(title) {
50
- for (const [source, regex] of Object.entries(SOURCE_REGEXES)) {
51
- if (regex.test(title))
52
- return source;
53
- }
54
- return null;
55
- }
56
- export function sourceRegexRemove(title) {
57
- const originalLength = title.length;
58
- for (const regex of Object.values(SOURCE_REGEXES)) {
59
- const newTitle = title.replace(regex, "");
60
- if (newTitle.length !== originalLength)
61
- return newTitle;
62
- }
63
- return title;
64
- }
65
- export const VIDEO_EXTENSIONS = [
66
- // OG extensions
67
- ".mkv",
68
- ".mp4",
69
- ".avi",
70
- ".ts",
71
- // extensions from sonarr
72
- ".m4v",
73
- ".3gp",
74
- ".nsv",
75
- ".ty",
76
- ".strm",
77
- ".rm",
78
- ".rmvb",
79
- ".mov",
80
- ".qt",
81
- ".divx",
82
- ".xvid",
83
- ".bivx",
84
- ".pva",
85
- ".wmv",
86
- ".asf",
87
- ".asx",
88
- ".ogm",
89
- ".ogv",
90
- ".m2v",
91
- ".dvr-ms",
92
- ".mpg",
93
- ".mpeg",
94
- ".avc",
95
- ".vp3",
96
- ".svq3",
97
- ".nuv",
98
- ".viv",
99
- ".dv",
100
- ".fli",
101
- ".flv",
102
- ".wpl",
103
- ".wtv",
104
- ];
105
- export const VIDEO_DISC_EXTENSIONS = [".m2ts", ".ifo", ".vob", ".bup"];
106
- export const AUDIO_EXTENSIONS = [
107
- ".wav",
108
- ".aiff",
109
- ".alac",
110
- ".flac",
111
- ".ape",
112
- ".mp3",
113
- ".aac",
114
- ".m4a",
115
- ".m4b",
116
- ".m4p",
117
- ".ogg",
118
- ".wma",
119
- ".aa",
120
- ".aax",
121
- ];
122
- export const BOOK_EXTENSIONS = [
123
- ".epub",
124
- ".mobi",
125
- ".azw",
126
- ".azw3",
127
- ".azw4",
128
- ".pdf",
129
- ".djvu",
130
- ".html",
131
- ".chm",
132
- ".cbr",
133
- ".cbz",
134
- ".cb7",
135
- ".cbt",
136
- ".cba",
137
- ];
138
- export const ALL_EXTENSIONS = [
139
- ...VIDEO_EXTENSIONS,
140
- ...AUDIO_EXTENSIONS,
141
- ...BOOK_EXTENSIONS,
142
- ...VIDEO_DISC_EXTENSIONS,
143
- ];
144
- export const TORRENT_CACHE_FOLDER = "torrent_cache";
145
- export const LOGS_FOLDER = "logs";
146
- export const UNKNOWN_TRACKER = "UnknownTracker";
147
- export const MAX_PATH_BYTES = 255;
148
- export const LEVENSHTEIN_DIVISOR = 3;
149
- export const MIN_VIDEO_QUERY_LENGTH = 3;
150
- export var MediaType;
151
- (function (MediaType) {
152
- MediaType["EPISODE"] = "episode";
153
- MediaType["SEASON"] = "pack";
154
- MediaType["MOVIE"] = "movie";
155
- MediaType["ANIME"] = "anime";
156
- MediaType["VIDEO"] = "video";
157
- MediaType["AUDIO"] = "audio";
158
- MediaType["BOOK"] = "book";
159
- MediaType["OTHER"] = "unknown";
160
- })(MediaType || (MediaType = {}));
161
- export var Action;
162
- (function (Action) {
163
- Action["SAVE"] = "save";
164
- Action["INJECT"] = "inject";
165
- })(Action || (Action = {}));
166
- export var InjectionResult;
167
- (function (InjectionResult) {
168
- InjectionResult["SUCCESS"] = "INJECTED";
169
- InjectionResult["FAILURE"] = "FAILURE";
170
- InjectionResult["ALREADY_EXISTS"] = "ALREADY_EXISTS";
171
- InjectionResult["TORRENT_NOT_COMPLETE"] = "TORRENT_NOT_COMPLETE";
172
- })(InjectionResult || (InjectionResult = {}));
173
- export var SaveResult;
174
- (function (SaveResult) {
175
- SaveResult["SAVED"] = "SAVED";
176
- })(SaveResult || (SaveResult = {}));
177
- export var Decision;
178
- (function (Decision) {
179
- Decision["MATCH"] = "MATCH";
180
- Decision["MATCH_SIZE_ONLY"] = "MATCH_SIZE_ONLY";
181
- Decision["MATCH_PARTIAL"] = "MATCH_PARTIAL";
182
- Decision["FUZZY_SIZE_MISMATCH"] = "FUZZY_SIZE_MISMATCH";
183
- Decision["SIZE_MISMATCH"] = "SIZE_MISMATCH";
184
- Decision["PARTIAL_SIZE_MISMATCH"] = "PARTIAL_SIZE_MISMATCH";
185
- Decision["NO_DOWNLOAD_LINK"] = "NO_DOWNLOAD_LINK";
186
- Decision["DOWNLOAD_FAILED"] = "DOWNLOAD_FAILED";
187
- Decision["MAGNET_LINK"] = "MAGNET_LINK";
188
- Decision["RATE_LIMITED"] = "RATE_LIMITED";
189
- /**
190
- * Searchee and Candidate infoHash matches. Usually happens with public
191
- * torrents and torrents added by radarr/sonarr before cross-seed on announces.
192
- * Useful for the inject job as we ignore INFO_HASH_ALREADY_EXISTS and
193
- * for reporting a 204 announce status code instead of 200 from exists.
194
- */
195
- Decision["SAME_INFO_HASH"] = "SAME_INFO_HASH";
196
- /**
197
- * Checked after SAME_INFO_HASH.
198
- */
199
- Decision["INFO_HASH_ALREADY_EXISTS"] = "INFO_HASH_ALREADY_EXISTS";
200
- Decision["FILE_TREE_MISMATCH"] = "FILE_TREE_MISMATCH";
201
- Decision["RELEASE_GROUP_MISMATCH"] = "RELEASE_GROUP_MISMATCH";
202
- Decision["BLOCKED_RELEASE"] = "BLOCKED_RELEASE";
203
- Decision["PROPER_REPACK_MISMATCH"] = "PROPER_REPACK_MISMATCH";
204
- Decision["RESOLUTION_MISMATCH"] = "RESOLUTION_MISMATCH";
205
- Decision["SOURCE_MISMATCH"] = "SOURCE_MISMATCH";
206
- })(Decision || (Decision = {}));
207
- export function isAnyMatchedDecision(decision) {
208
- return (decision === Decision.MATCH ||
209
- decision === Decision.MATCH_SIZE_ONLY ||
210
- decision === Decision.MATCH_PARTIAL);
211
- }
212
- export function isStaticDecision(decision) {
213
- return (decision === Decision.RELEASE_GROUP_MISMATCH ||
214
- decision === Decision.RESOLUTION_MISMATCH ||
215
- decision === Decision.SOURCE_MISMATCH ||
216
- decision === Decision.PROPER_REPACK_MISMATCH ||
217
- decision === Decision.MAGNET_LINK);
218
- }
219
- export var MatchMode;
220
- (function (MatchMode) {
221
- MatchMode["STRICT"] = "strict";
222
- MatchMode["FLEXIBLE"] = "flexible";
223
- MatchMode["PARTIAL"] = "partial";
224
- })(MatchMode || (MatchMode = {}));
225
- export var LinkType;
226
- (function (LinkType) {
227
- LinkType["SYMLINK"] = "symlink";
228
- LinkType["HARDLINK"] = "hardlink";
229
- LinkType["REFLINK"] = "reflink";
230
- LinkType["REFLINK_OR_COPY"] = "reflinkOrCopy";
231
- })(LinkType || (LinkType = {}));
232
- export var BlocklistType;
233
- (function (BlocklistType) {
234
- BlocklistType["NAME"] = "name";
235
- BlocklistType["NAME_REGEX"] = "nameRegex";
236
- BlocklistType["FOLDER"] = "folder";
237
- BlocklistType["FOLDER_REGEX"] = "folderRegex";
238
- BlocklistType["CATEGORY"] = "category";
239
- BlocklistType["TAG"] = "tag";
240
- BlocklistType["TRACKER"] = "tracker";
241
- BlocklistType["INFOHASH"] = "infoHash";
242
- BlocklistType["SIZE_BELOW"] = "sizeBelow";
243
- BlocklistType["SIZE_ABOVE"] = "sizeAbove";
244
- BlocklistType["LEGACY"] = "legacy";
245
- })(BlocklistType || (BlocklistType = {}));
246
- const PARSE_BLOCKLIST_REGEX = /^(?<blocklistType>.+?):(?<blocklistValue>.*)$/;
247
- export function parseBlocklistEntry(blocklistEntry) {
248
- const match = blocklistEntry.match(PARSE_BLOCKLIST_REGEX);
249
- if (match?.groups) {
250
- return {
251
- blocklistType: match.groups.blocklistType,
252
- blocklistValue: match.groups.blocklistValue,
253
- };
254
- }
255
- return {
256
- blocklistType: BlocklistType.LEGACY,
257
- blocklistValue: blocklistEntry,
258
- };
259
- }
260
- export const IGNORED_FOLDERS_SUBSTRINGS = [
261
- "sample",
262
- "proof",
263
- "bdmv",
264
- "bdrom",
265
- "certificate",
266
- "video_ts",
267
- ];
268
- export const RESUME_EXCLUDED_KEYWORDS = [
269
- "sample",
270
- "trailer",
271
- "extras",
272
- "bonus",
273
- ];
274
- export const RESUME_EXCLUDED_EXTS = [
275
- ".nfo",
276
- ".srr",
277
- ".srt",
278
- ".txt",
279
- ".ass",
280
- ];
281
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/dataFiles.js DELETED
@@ -1,208 +0,0 @@
1
- import { watch } from "fs";
2
- import { readdir, readFile, stat } from "fs/promises";
3
- import { basename, dirname, extname, join, resolve, sep } from "path";
4
- import { IGNORED_FOLDERS_SUBSTRINGS, LEVENSHTEIN_DIVISOR, VIDEO_EXTENSIONS, } from "./constants.js";
5
- import { db } from "./db.js";
6
- import { logger } from "./logger.js";
7
- import { getRuntimeConfig } from "./runtimeConfig.js";
8
- import { createSearcheeFromPath, getFilesFromDataRoot, parseTitle, } from "./searchee.js";
9
- import { createEnsemblePieces } from "./torrent.js";
10
- import { createKeyTitle, exists, filterAsync, filterAsyncYield, flatMapAsync, inBatches, isTruthy, mapAsync, stripExtension, } from "./utils.js";
11
- import { isOk } from "./Result.js";
12
- import { distance } from "fastest-levenshtein";
13
- const watchers = new Map();
14
- const modifiedPaths = new Map();
15
- function createWatcher(dataDir) {
16
- return watch(dataDir, { recursive: true, persistent: false }, (_, f) => {
17
- if (!f)
18
- return;
19
- const fullPath = resolve(join(dataDir, f));
20
- if (fullPath === resolve(dataDir))
21
- return;
22
- modifiedPaths.get(dataDir).add(fullPath);
23
- }).on("error", (e) => {
24
- logger.error(`Restarting watcher for dataDir ${dataDir}: ${e.message}`);
25
- logger.debug(e);
26
- watchers.get(dataDir).close();
27
- watchers.set(dataDir, createWatcher(dataDir));
28
- });
29
- }
30
- export async function indexDataDirs(options) {
31
- const { dataDirs, maxDataDepth } = getRuntimeConfig();
32
- if (!dataDirs.length)
33
- return;
34
- if (options.startup) {
35
- logger.info("Indexing dataDirs for reverse lookup...");
36
- for (const dataDir of dataDirs) {
37
- modifiedPaths.set(dataDir, new Set());
38
- watchers.set(dataDir, createWatcher(dataDir));
39
- }
40
- const searcheePaths = await findSearcheesFromAllDataDirs();
41
- const maxUserWatchesPath = "/proc/sys/fs/inotify/max_user_watches";
42
- if (await exists(maxUserWatchesPath)) {
43
- const limit = parseInt(await readFile(maxUserWatchesPath, "utf8"));
44
- if (limit < searcheePaths.length * 2) {
45
- logger.error(`max_user_watches too low for proper indexing of dataDirs. It is recommended to set fs.inotify.max_user_watches=1048576 in /etc/sysctl.conf (only on the host system if using docker) - current: ${limit}`);
46
- }
47
- }
48
- const numEntries = await indexDataPaths(searcheePaths);
49
- logger.info(`Validated ${numEntries} entries from dataDirs...`);
50
- }
51
- await mapAsync(dataDirs, async (dataDir) => {
52
- const modified = modifiedPaths.get(dataDir);
53
- const eventPaths = [];
54
- while (modified.size) {
55
- const path = modified.values().next().value;
56
- if (!path)
57
- continue;
58
- if (!modified.delete(path))
59
- continue;
60
- eventPaths.push(path);
61
- }
62
- if (!eventPaths.length)
63
- return;
64
- logger.verbose(`Indexing dataDir ${dataDir} due to recent changes...`);
65
- eventPaths.sort((a, b) => b.split(sep).filter(isTruthy).length -
66
- a.split(sep).filter(isTruthy).length);
67
- const deletedPaths = [];
68
- const paths = await filterAsync(Array.from(eventPaths.reduce((acc, path) => {
69
- const affectedPaths = [path];
70
- let parentPath = dirname(path);
71
- while (resolve(parentPath) !== resolve(dataDir)) {
72
- affectedPaths.push(parentPath);
73
- parentPath = dirname(parentPath);
74
- }
75
- for (const affectedPath of affectedPaths.slice(-maxDataDepth)) {
76
- acc.add(affectedPath);
77
- }
78
- return acc;
79
- }, new Set())), async (path) => {
80
- if (await exists(path))
81
- return true;
82
- deletedPaths.push(path);
83
- return false;
84
- });
85
- await inBatches(deletedPaths, async (batch) => {
86
- await db("data").whereIn("path", batch).del();
87
- await db("ensemble").whereIn("path", batch).del();
88
- });
89
- await indexDataPaths(paths);
90
- });
91
- }
92
- /**
93
- * Adds the data and ensemble entries to the database.
94
- * @param paths The paths to index.
95
- */
96
- async function indexDataPaths(paths) {
97
- const { seasonFromEpisodes } = getRuntimeConfig();
98
- const memoizedPaths = new Map();
99
- const memoizedLengths = new Map();
100
- const dataRows = [];
101
- const ensembleRows = [];
102
- for (const path of paths) {
103
- const files = await getFilesFromDataRoot(path, memoizedPaths, memoizedLengths);
104
- if (!files.length)
105
- continue;
106
- const title = parseTitle(basename(path), files, path);
107
- if (!title)
108
- continue;
109
- dataRows.push({ title, path });
110
- if (seasonFromEpisodes) {
111
- const ensembleEntries = indexEnsembleDataEntry(title, path, files);
112
- if (ensembleEntries)
113
- ensembleRows.push(...ensembleEntries);
114
- }
115
- }
116
- await inBatches(dataRows, async (batch) => {
117
- await db("data").insert(batch).onConflict("path").merge();
118
- });
119
- await inBatches(ensembleRows, async (batch) => {
120
- await db("ensemble")
121
- .insert(batch)
122
- .onConflict(["client_host", "path"])
123
- .merge();
124
- });
125
- return dataRows.length;
126
- }
127
- function indexEnsembleDataEntry(title, path, files) {
128
- const ensemblePieces = createEnsemblePieces(title, files);
129
- if (!ensemblePieces || !ensemblePieces.length)
130
- return null;
131
- return ensemblePieces.map((ensemblePiece) => ({
132
- client_host: null,
133
- path: join(dirname(path), ensemblePiece.largestFile.path),
134
- info_hash: null,
135
- ensemble: ensemblePiece.key,
136
- element: ensemblePiece.element,
137
- }));
138
- }
139
- export async function getDataByFuzzyName(stem) {
140
- const allDataEntries = await db("data");
141
- const fullMatch = createKeyTitle(stem);
142
- // Attempt to filter torrents in DB to match incoming data before fuzzy check
143
- let filteredNames = [];
144
- if (fullMatch) {
145
- filteredNames = await filterAsyncYield(allDataEntries, async (dbData) => {
146
- const dbMatch = createKeyTitle(stripExtension(dbData.title));
147
- return fullMatch === dbMatch;
148
- });
149
- }
150
- // If none match, proceed with fuzzy name check on all names.
151
- filteredNames = filteredNames.length > 0 ? filteredNames : allDataEntries;
152
- const entriesToDelete = [];
153
- const candidateMaxDistance = Math.floor(stem.length / LEVENSHTEIN_DIVISOR);
154
- const potentialMatches = await filterAsyncYield(filteredNames, async (dbEntry) => {
155
- const dbTitle = stripExtension(dbEntry.title);
156
- const maxDistance = Math.min(candidateMaxDistance, Math.floor(dbTitle.length / LEVENSHTEIN_DIVISOR));
157
- if (distance(stem, dbTitle) > maxDistance)
158
- return false;
159
- if (await exists(dbEntry.path))
160
- return true;
161
- entriesToDelete.push(dbEntry.path);
162
- return false;
163
- });
164
- await inBatches(entriesToDelete, async (batch) => {
165
- await db("data").whereIn("path", batch).del();
166
- await db("ensemble").whereIn("path", batch).del();
167
- });
168
- return (await mapAsync(potentialMatches, (dbData) => createSearcheeFromPath(dbData.path)))
169
- .filter(isOk)
170
- .map((r) => r.unwrap());
171
- }
172
- export function shouldIgnorePathHeuristically(root, isDir) {
173
- const searchBasename = basename(root);
174
- if (isDir) {
175
- return IGNORED_FOLDERS_SUBSTRINGS.includes(searchBasename.toLowerCase());
176
- }
177
- else {
178
- return !VIDEO_EXTENSIONS.includes(extname(searchBasename));
179
- }
180
- }
181
- export async function findPotentialNestedRoots(root, depth, isDirHint) {
182
- try {
183
- const isDir = isDirHint !== undefined
184
- ? isDirHint
185
- : (await stat(root)).isDirectory();
186
- if (depth <= 0 || shouldIgnorePathHeuristically(root, isDir)) {
187
- return [];
188
- }
189
- else if (depth > 0 && isDir) {
190
- const directChildren = await readdir(root, { withFileTypes: true });
191
- const allDescendants = await flatMapAsync(directChildren, (dirent) => findPotentialNestedRoots(join(root, dirent.name), depth - 1, dirent.isDirectory()));
192
- return [...allDescendants, root]; // deepest paths first for memoization
193
- }
194
- else {
195
- return [root];
196
- }
197
- }
198
- catch (e) {
199
- logger.verbose(`Failed to process path ${root}: ${e.message}`);
200
- logger.debug(e);
201
- return [];
202
- }
203
- }
204
- export async function findSearcheesFromAllDataDirs() {
205
- const { dataDirs, maxDataDepth } = getRuntimeConfig();
206
- return flatMapAsync(dataDirs, async (dataDir) => flatMapAsync((await readdir(dataDir)).map((dirent) => join(dataDir, dirent)), (path) => findPotentialNestedRoots(path, maxDataDepth)));
207
- }
208
- //# sourceMappingURL=dataFiles.js.map