pixivflow 2.12.3 → 2.14.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 (151) hide show
  1. package/README.md +30 -4
  2. package/README_EN.md +11 -3
  3. package/config/fly-two-bots.example.json +3 -1
  4. package/dist/commands/DoctorCommand.d.ts +20 -0
  5. package/dist/commands/DoctorCommand.d.ts.map +1 -0
  6. package/dist/commands/DoctorCommand.js +107 -0
  7. package/dist/commands/DoctorCommand.js.map +1 -0
  8. package/dist/commands/OutboxCommand.d.ts +17 -0
  9. package/dist/commands/OutboxCommand.d.ts.map +1 -0
  10. package/dist/commands/OutboxCommand.js +102 -0
  11. package/dist/commands/OutboxCommand.js.map +1 -0
  12. package/dist/commands/ReconcileCommand.d.ts +24 -0
  13. package/dist/commands/ReconcileCommand.d.ts.map +1 -0
  14. package/dist/commands/ReconcileCommand.js +70 -0
  15. package/dist/commands/ReconcileCommand.js.map +1 -0
  16. package/dist/commands/SchedulerCommand.d.ts.map +1 -1
  17. package/dist/commands/SchedulerCommand.js +5 -0
  18. package/dist/commands/SchedulerCommand.js.map +1 -1
  19. package/dist/commands/SchedulerRunOnceCommand.d.ts.map +1 -1
  20. package/dist/commands/SchedulerRunOnceCommand.js +6 -0
  21. package/dist/commands/SchedulerRunOnceCommand.js.map +1 -1
  22. package/dist/commands/index.d.ts +4 -1
  23. package/dist/commands/index.d.ts.map +1 -1
  24. package/dist/commands/index.js +10 -1
  25. package/dist/commands/index.js.map +1 -1
  26. package/dist/commands/scheduler-runtime.d.ts +10 -1
  27. package/dist/commands/scheduler-runtime.d.ts.map +1 -1
  28. package/dist/commands/scheduler-runtime.js +157 -47
  29. package/dist/commands/scheduler-runtime.js.map +1 -1
  30. package/dist/config/types.d.ts +14 -1
  31. package/dist/config/types.d.ts.map +1 -1
  32. package/dist/config/validation.d.ts.map +1 -1
  33. package/dist/config/validation.js +10 -0
  34. package/dist/config/validation.js.map +1 -1
  35. package/dist/delivery/DeliveryAck.d.ts +70 -0
  36. package/dist/delivery/DeliveryAck.d.ts.map +1 -0
  37. package/dist/delivery/DeliveryAck.js +72 -0
  38. package/dist/delivery/DeliveryAck.js.map +1 -0
  39. package/dist/delivery/DeliveryDispatcher.d.ts +1 -0
  40. package/dist/delivery/DeliveryDispatcher.d.ts.map +1 -1
  41. package/dist/delivery/DeliveryDispatcher.js +9 -1
  42. package/dist/delivery/DeliveryDispatcher.js.map +1 -1
  43. package/dist/delivery/DeliveryService.d.ts +74 -0
  44. package/dist/delivery/DeliveryService.d.ts.map +1 -0
  45. package/dist/delivery/DeliveryService.js +209 -0
  46. package/dist/delivery/DeliveryService.js.map +1 -0
  47. package/dist/delivery/HttpMultipartDelivery.d.ts +11 -1
  48. package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
  49. package/dist/delivery/HttpMultipartDelivery.js +70 -67
  50. package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
  51. package/dist/delivery/LegacyOutboxMigration.d.ts +21 -0
  52. package/dist/delivery/LegacyOutboxMigration.d.ts.map +1 -0
  53. package/dist/delivery/LegacyOutboxMigration.js +125 -0
  54. package/dist/delivery/LegacyOutboxMigration.js.map +1 -0
  55. package/dist/delivery/OutboxWorker.d.ts +70 -0
  56. package/dist/delivery/OutboxWorker.d.ts.map +1 -0
  57. package/dist/delivery/OutboxWorker.js +211 -0
  58. package/dist/delivery/OutboxWorker.js.map +1 -0
  59. package/dist/delivery/types.d.ts +15 -0
  60. package/dist/delivery/types.d.ts.map +1 -1
  61. package/dist/download/DownloadManager.d.ts +17 -12
  62. package/dist/download/DownloadManager.d.ts.map +1 -1
  63. package/dist/download/DownloadManager.js +31 -53
  64. package/dist/download/DownloadManager.js.map +1 -1
  65. package/dist/download/IllustrationDownloader.d.ts +1 -0
  66. package/dist/download/IllustrationDownloader.d.ts.map +1 -1
  67. package/dist/download/IllustrationDownloader.js +19 -1
  68. package/dist/download/IllustrationDownloader.js.map +1 -1
  69. package/dist/download/NovelDownloader.d.ts +3 -1
  70. package/dist/download/NovelDownloader.d.ts.map +1 -1
  71. package/dist/download/NovelDownloader.js +30 -2
  72. package/dist/download/NovelDownloader.js.map +1 -1
  73. package/dist/download/handlers/IllustrationTargetHandler.d.ts +18 -8
  74. package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
  75. package/dist/download/handlers/IllustrationTargetHandler.js +101 -74
  76. package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
  77. package/dist/download/handlers/NovelTargetHandler.d.ts +8 -8
  78. package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
  79. package/dist/download/handlers/NovelTargetHandler.js +64 -83
  80. package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
  81. package/dist/download/plan/DownloadPlanner.d.ts +6 -1
  82. package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
  83. package/dist/download/plan/DownloadPlanner.js +28 -5
  84. package/dist/download/plan/DownloadPlanner.js.map +1 -1
  85. package/dist/index.js +1 -1
  86. package/dist/index.js.map +1 -1
  87. package/dist/notification/NotificationPolicy.d.ts +38 -0
  88. package/dist/notification/NotificationPolicy.d.ts.map +1 -0
  89. package/dist/notification/NotificationPolicy.js +89 -0
  90. package/dist/notification/NotificationPolicy.js.map +1 -0
  91. package/dist/package.json +1 -1
  92. package/dist/pixiv/PixivClient.d.ts +4 -0
  93. package/dist/pixiv/PixivClient.d.ts.map +1 -1
  94. package/dist/pixiv/PixivClient.js +15 -2
  95. package/dist/pixiv/PixivClient.js.map +1 -1
  96. package/dist/pixiv/RateLimitCoordinator.d.ts +30 -0
  97. package/dist/pixiv/RateLimitCoordinator.d.ts.map +1 -0
  98. package/dist/pixiv/RateLimitCoordinator.js +66 -0
  99. package/dist/pixiv/RateLimitCoordinator.js.map +1 -0
  100. package/dist/pixiv/client/PixivApiCore.d.ts +5 -0
  101. package/dist/pixiv/client/PixivApiCore.d.ts.map +1 -1
  102. package/dist/pixiv/client/PixivApiCore.js +31 -9
  103. package/dist/pixiv/client/PixivApiCore.js.map +1 -1
  104. package/dist/scheduler/ScheduleTriggerServer.d.ts +7 -0
  105. package/dist/scheduler/ScheduleTriggerServer.d.ts.map +1 -1
  106. package/dist/scheduler/ScheduleTriggerServer.js +17 -0
  107. package/dist/scheduler/ScheduleTriggerServer.js.map +1 -1
  108. package/dist/scheduler/SlotCoordinator.d.ts +15 -0
  109. package/dist/scheduler/SlotCoordinator.d.ts.map +1 -1
  110. package/dist/scheduler/SlotCoordinator.js +74 -0
  111. package/dist/scheduler/SlotCoordinator.js.map +1 -1
  112. package/dist/scheduler/SlotStateMachine.d.ts +32 -0
  113. package/dist/scheduler/SlotStateMachine.d.ts.map +1 -0
  114. package/dist/scheduler/SlotStateMachine.js +65 -0
  115. package/dist/scheduler/SlotStateMachine.js.map +1 -0
  116. package/dist/scheduler/TargetOutcome.d.ts +63 -0
  117. package/dist/scheduler/TargetOutcome.d.ts.map +1 -0
  118. package/dist/scheduler/TargetOutcome.js +28 -0
  119. package/dist/scheduler/TargetOutcome.js.map +1 -0
  120. package/dist/storage/Database.d.ts +16 -0
  121. package/dist/storage/Database.d.ts.map +1 -1
  122. package/dist/storage/Database.js +29 -0
  123. package/dist/storage/Database.js.map +1 -1
  124. package/dist/storage/DatabaseMigration.d.ts.map +1 -1
  125. package/dist/storage/DatabaseMigration.js +66 -0
  126. package/dist/storage/DatabaseMigration.js.map +1 -1
  127. package/dist/storage/repositories/DeliveryRepository.d.ts +73 -0
  128. package/dist/storage/repositories/DeliveryRepository.d.ts.map +1 -0
  129. package/dist/storage/repositories/DeliveryRepository.js +148 -0
  130. package/dist/storage/repositories/DeliveryRepository.js.map +1 -0
  131. package/dist/storage/repositories/MetadataRepository.d.ts +27 -0
  132. package/dist/storage/repositories/MetadataRepository.d.ts.map +1 -0
  133. package/dist/storage/repositories/MetadataRepository.js +58 -0
  134. package/dist/storage/repositories/MetadataRepository.js.map +1 -0
  135. package/dist/storage/repositories/OutboxRepository.d.ts +72 -0
  136. package/dist/storage/repositories/OutboxRepository.d.ts.map +1 -0
  137. package/dist/storage/repositories/OutboxRepository.js +200 -0
  138. package/dist/storage/repositories/OutboxRepository.js.map +1 -0
  139. package/dist/storage/repositories/SlotRepository.d.ts +26 -1
  140. package/dist/storage/repositories/SlotRepository.d.ts.map +1 -1
  141. package/dist/storage/repositories/SlotRepository.js +76 -2
  142. package/dist/storage/repositories/SlotRepository.js.map +1 -1
  143. package/dist/utils/config-validator-unified.d.ts.map +1 -1
  144. package/dist/utils/config-validator-unified.js +14 -0
  145. package/dist/utils/config-validator-unified.js.map +1 -1
  146. package/dist/webui/package.json +1 -1
  147. package/package.json +1 -1
  148. package/dist/delivery/DeliveryOutbox.d.ts +0 -43
  149. package/dist/delivery/DeliveryOutbox.d.ts.map +0 -1
  150. package/dist/delivery/DeliveryOutbox.js +0 -293
  151. package/dist/delivery/DeliveryOutbox.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AA6BH,wCA8XC;AAKD,gDAkBC;AAhbD,0DAA6B;AAC7B,sCAAmC;AACnC,4CAA8C;AAC9C,0DAAmF;AAEnF,qCAAsC;AAEtC;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAG5B;IACA;IAHlB,YACE,OAAe,EACC,MAAgB,EAChB,WAAqB,EAAE;QAEvC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAU;QAChB,aAAQ,GAAR,QAAQ,CAAe;QAGvC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AATD,sDASC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,MAAiC,EAAE,QAAgB,EAAE,YAAqB;IACvG,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,6BAA6B;IAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QAED,uEAAuE;QACvE,wFAAwF;QACxF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;QAC9C,MAAM,mBAAmB,GAAG,CAAC,IAAA,kCAAkB,EAAC,WAAW,CAAC,CAAC;QAE7D,IAAI,CAAC,mBAAmB,IAAI,YAAY,EAAE,CAAC;YACzC,sDAAsD;YACtD,MAAM,YAAY,GAAG,IAAA,qCAAqB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACtE,IAAI,YAAY,EAAE,CAAC;gBACjB,wEAAwE;gBACxE,eAAM,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;YAC7G,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChC,sDAAsD;YACtD,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QACjG,CAAC;QACD,4DAA4D;QAE5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,yDAAyD;QACzD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,0EAA0E,CAAC,CAAC;gBAC1G,CAAC;qBAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,8BAA8B,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC1E,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,6BAA6B;YAC7B,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,0BAA0B,MAAM,CAAC,IAAI,qCAAqC,CAAC,CAAC;YAC1G,CAAC;YACD,6DAA6D;YAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC7E,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wFAAwF,CAAC,CAAC;YACxH,CAAC;YACD,uFAAuF;YACvF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACnL,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,0HAA0H,CAAC,CAAC;YAC1J,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC;YACjC,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,KAAK,GAAG,CAAC,KAA8C,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE;oBACzF,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;wBACjH,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,oBAAoB,KAAK,gCAAgC,GAAG,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;oBACxH,CAAC;gBACH,CAAC,CAAC;gBACF,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC9B,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1B,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC5E,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2DAA2D,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACzG,CAAC;gBACD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,uDAAuD,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC;YACtC,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,KAAK,GAAG,CAAC,KAAoC,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE;oBAC/E,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;wBACjH,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,yBAAyB,KAAK,gCAAgC,GAAG,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;oBAC7H,CAAC;gBACH,CAAC,CAAC;gBACF,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3B,KAAK,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAChC,IAAI,OAAO,EAAE,CAAC,gBAAgB,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAG,CAAC,IAAI,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;oBACpG,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wEAAwE,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC9H,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2CAA2C,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wCAAwC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBACvF,CAAC;qBAAM,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,8CAA8C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gCAAgC,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACxF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,sCAAsC,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,CACvC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,CAClE,EAAE,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,4CAA4C,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBAClG,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2CAA2C,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS,IAAI,CACjD,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC;gBAChD,MAAM,CAAC,sBAAsB,GAAG,CAAC;gBACjC,MAAM,CAAC,sBAAsB,GAAG,GAAG,CACpC,EAAE,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gEAAgE,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,YAAY,KAAK,SAAS,IAAI,CACtD,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;gBACpD,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC;gBACrC,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CACtC,EAAE,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,kEAAkE,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACnG,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2CAA2C,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACvD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;oBAC5F,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wEAAwE,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,wBAAwB,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClI,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gHAAgH,CAAC,CAAC;YAChJ,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,qDAAqD,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBAChH,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,kEAAkE,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gDAAgD,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACvD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,yDAAyD,CAAC,CAAC;gBACzF,CAAC;qBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;oBACvD,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,+CAA+C,cAAc,GAAG,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,oBAAoB,IAAI,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qCAAsC,QAA8B,CAAC,IAAI,GAAG,CAAC,CAAC;YACnG,SAAS;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,0CAA0C,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,yCAAyC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,eAAe,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/F,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAC9C,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qDAAqD,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,kCAAkC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;YAChH,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,iDAAiD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,mDAAmD,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,KAAK,SAAS;QAChD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAC/F,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC3F,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,KAAK,SAAS;QAC/C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAC7F,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC1F,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,KAAK,SAAS;QAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,KAAK,SAAS;QAC/C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EACpE,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC/F,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;YACrH,QAAQ,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;YACxG,QAAQ,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;gBACrG,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpH,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,IAAI,CACrD,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAC7F,EAAE,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,CACjD,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,CACrF,EAAE,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,mBAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,4CAA4C,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACnF,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;YAC9E,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,sBAAsB,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;YACzG,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,aAAa,KAAK,GAAG,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,sFAAsF,CAAC,CAAC;gBAC/G,CAAC;qBAAM,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,+BAA+B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtE,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,8BAA8B,CAAC,CAAC;gBAC7F,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,mBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,mCAAmC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;oBAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,kCAAkC,QAAQ,GAAG,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,EAAE,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,GAAG,GAAG,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBAChH,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChH,MAAM,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC;YACvH,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACnF,QAAQ,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;YACzF,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACzG,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;YACpH,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,4DAA4D,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED,kBAAkB;IAClB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,eAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,2CAA2C;IAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,kCAAkC;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAEnE,IAAI,YAAY,GAAG,sCAAsC,QAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAEhH,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,IAAI,sEAAsE,CAAC;YACvF,YAAY,IAAI,4CAA4C,CAAC;YAC7D,YAAY,IAAI,qDAAqD,CAAC;YACtE,YAAY,IAAI,iEAAiE,CAAC;QACpF,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,IAAI,oBAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC3C,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;AA6BH,wCAsYC;AAKD,gDAkBC;AAxbD,0DAA6B;AAC7B,sCAAmC;AACnC,4CAA8C;AAC9C,0DAAmF;AAEnF,qCAAsC;AAEtC;;GAEG;AACH,MAAa,qBAAsB,SAAQ,KAAK;IAG5B;IACA;IAHlB,YACE,OAAe,EACC,MAAgB,EAChB,WAAqB,EAAE;QAEvC,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,WAAM,GAAN,MAAM,CAAU;QAChB,aAAQ,GAAR,QAAQ,CAAe;QAGvC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AATD,sDASC;AAED;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,MAAiC,EAAE,QAAgB,EAAE,YAAqB;IACvG,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,6BAA6B;IAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC1E,MAAM,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QAED,uEAAuE;QACvE,wFAAwF;QACxF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC;QAC9C,MAAM,mBAAmB,GAAG,CAAC,IAAA,kCAAkB,EAAC,WAAW,CAAC,CAAC;QAE7D,IAAI,CAAC,mBAAmB,IAAI,YAAY,EAAE,CAAC;YACzC,sDAAsD;YACtD,MAAM,YAAY,GAAG,IAAA,qCAAqB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;YACtE,IAAI,YAAY,EAAE,CAAC;gBACjB,wEAAwE;gBACxE,eAAM,CAAC,KAAK,CAAC,4FAA4F,CAAC,CAAC;YAC7G,CAAC;iBAAM,CAAC;gBACN,uCAAuC;gBACvC,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;YACjG,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAChC,sDAAsD;YACtD,MAAM,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QACjG,CAAC;QACD,4DAA4D;QAE5D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,yDAAyD;QACzD,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACvC,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxD,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,0EAA0E,CAAC,CAAC;gBAC1G,CAAC;qBAAM,IAAI,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;oBACpC,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,8BAA8B,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC1E,CAAC;gBACD,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;YACD,6BAA6B;YAC7B,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,0BAA0B,MAAM,CAAC,IAAI,qCAAqC,CAAC,CAAC;YAC1G,CAAC;YACD,6DAA6D;YAC7D,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAC7E,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wFAAwF,CAAC,CAAC;YACxH,CAAC;YACD,uFAAuF;YACvF,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACnL,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,0HAA0H,CAAC,CAAC;YAC1J,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC;YACjC,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,KAAK,GAAG,CAAC,KAA8C,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE;oBACzF,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;wBACjH,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,oBAAoB,KAAK,gCAAgC,GAAG,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;oBACxH,CAAC;gBACH,CAAC,CAAC;gBACF,KAAK,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAC9B,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1B,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;oBAC5E,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2DAA2D,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACzG,CAAC;gBACD,IAAI,EAAE,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,uDAAuD,OAAO,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC;YACtC,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,KAAK,GAAG,CAAC,KAAoC,EAAE,GAAW,EAAE,GAAW,EAAE,EAAE;oBAC/E,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;wBACjH,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,yBAAyB,KAAK,gCAAgC,GAAG,QAAQ,GAAG,SAAS,KAAK,GAAG,CAAC,CAAC;oBAC7H,CAAC;gBACH,CAAC,CAAC;gBACF,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC3B,KAAK,CAAC,eAAe,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBAChC,IAAI,OAAO,EAAE,CAAC,gBAAgB,KAAK,QAAQ,IAAI,CAAC,EAAE,CAAC,gBAAgB,GAAG,CAAC,IAAI,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;oBACpG,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wEAAwE,EAAE,CAAC,gBAAgB,GAAG,CAAC,CAAC;gBAC9H,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2CAA2C,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wCAAwC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBACvF,CAAC;qBAAM,IAAI,MAAM,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;oBAC/B,QAAQ,CAAC,IAAI,CAAC,WAAW,KAAK,8CAA8C,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC/F,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5E,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gCAAgC,CAAC,CAAC;YAChE,CAAC;YACD,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACxF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,sCAAsC,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,CACvC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,CAClE,EAAE,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,4CAA4C,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;gBAClG,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2CAA2C,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,sBAAsB,KAAK,SAAS,IAAI,CACjD,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,sBAAsB,CAAC;gBAChD,MAAM,CAAC,sBAAsB,GAAG,CAAC;gBACjC,MAAM,CAAC,sBAAsB,GAAG,GAAG,CACpC,EAAE,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gEAAgE,CAAC,CAAC;YAChG,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,YAAY,KAAK,SAAS,IAAI,CACtD,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC;gBACpD,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC;gBACrC,MAAM,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,CACtC,EAAE,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,kEAAkE,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACnG,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,2CAA2C,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACvD,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;oBAC5F,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,wEAAwE,CAAC,CAAC;gBACxG,CAAC;YACH,CAAC;YACD,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC,wBAAwB,EAAE,sBAAsB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;gBAClI,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gHAAgH,CAAC,CAAC;YAChJ,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,qDAAqD,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;gBAChH,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,kEAAkE,CAAC,CAAC;YAClG,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAChF,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,gDAAgD,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;gBACnC,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;gBACvD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,yDAAyD,CAAC,CAAC;gBACzF,CAAC;qBAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC;oBACvD,MAAM,CAAC,IAAI,CAAC,WAAW,KAAK,+CAA+C,cAAc,GAAG,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,oBAAoB,IAAI,EAAE,CAAC;QAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qCAAsC,QAA8B,CAAC,IAAI,GAAG,CAAC,CAAC;YACnG,SAAS;QACX,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,0CAA0C,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9D,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAClC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,yCAAyC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,eAAe,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAC/F,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAC9C,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,qDAAqD,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,YAAY,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACzF,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAC3C,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YAC3F,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,kDAAkD,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,kCAAkC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC;YAChH,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,iDAAiD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,mDAAmD,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,KAAK,SAAS;QAChD,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAC/F,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;IAC3F,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,KAAK,SAAS;QAC/C,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAC7F,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IAC1F,CAAC;IACD,IACE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,KAAK,SAAS;QAChD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,KAAK,SAAS;QAC/C,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EACpE,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC/F,CAAC;IAED,0BAA0B;IAC1B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,EAAE,CAAC;YACrH,QAAQ,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;YACxG,QAAQ,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC1E,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,CAAC;gBACrG,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpH,MAAM,CAAC,IAAI,CAAC,qEAAqE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,IAAI,CACrD,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAC7F,EAAE,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,IAAI,CACjD,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,GAAG,CAAC,CACrF,EAAE,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,4BAA4B;IAC5B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,mBAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,4CAA4C,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YACvF,MAAM,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,CAAC,EAAE,CAAC;YACnF,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;YAC9E,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,CAAC,sBAAsB,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,sBAAsB,GAAG,CAAC,EAAE,CAAC;YACzG,MAAM,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,aAAa,KAAK,GAAG,CAAC;gBACrC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC1E,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,sFAAsF,CAAC,CAAC;gBAC/G,CAAC;qBAAM,IAAI,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,+BAA+B,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC;gBACtE,CAAC;gBACD,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;oBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,8BAA8B,CAAC,CAAC;gBAC7F,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,mBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnD,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,mCAAmC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBACD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;oBAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,kCAAkC,QAAQ,GAAG,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnC,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,EAAE,CAAC,iBAAiB,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,gBAAgB,KAAK,SAAS,IAAI,gBAAgB,GAAG,GAAG,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,IAAI,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC;YACtG,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;gBAChH,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChH,MAAM,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC;YACvH,QAAQ,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;YACnF,QAAQ,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;YACzF,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACzG,QAAQ,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;QACtF,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC;YACpH,QAAQ,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,4DAA4D,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED,kBAAkB;IAClB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,eAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,2CAA2C;IAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,kCAAkC;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QAEnE,IAAI,YAAY,GAAG,sCAAsC,QAAQ,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAEhH,IAAI,aAAa,EAAE,CAAC;YAClB,YAAY,IAAI,sEAAsE,CAAC;YACvF,YAAY,IAAI,4CAA4C,CAAC;YAC7D,YAAY,IAAI,qDAAqD,CAAC;YACtE,YAAY,IAAI,iEAAiE,CAAC;QACpF,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC9E,MAAM,IAAI,oBAAW,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,UAAU,CAAC,CAAC;QACtC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC3C,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;aACzB,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChE,QAAQ,EAAE,EAAE;SACb,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Normalized acknowledgement from a downstream delivery provider (TelePost).
3
+ *
4
+ * HTTP status alone is NOT a business result. The provider response is parsed
5
+ * once, at the adapter boundary, into this discriminated union; everything
6
+ * inside Core (outbox worker, delivery ledger, slot FSM) branches on ack.kind
7
+ * instead of status codes or message strings.
8
+ */
9
+ export type DeliveryAck = {
10
+ kind: 'accepted';
11
+ remoteId?: string;
12
+ remoteStatus?: string;
13
+ raw?: unknown;
14
+ }
15
+ /**
16
+ * The provider recognised OUR idempotency_key and returned the SAME record a
17
+ * previous attempt created (ACK lost to a timeout/crash). This is a success
18
+ * and converges to exactly one remote record.
19
+ */
20
+ | {
21
+ kind: 'idempotent_replay';
22
+ remoteId?: string;
23
+ remoteStatus?: string;
24
+ raw?: unknown;
25
+ }
26
+ /**
27
+ * The provider found an OLDER delivery of the same work from a DIFFERENT
28
+ * intent/slot (historical drift). NO new side effect was created. This is not
29
+ * a successful new submission.
30
+ */
31
+ | {
32
+ kind: 'duplicate_existing';
33
+ remoteId?: string;
34
+ remoteStatus?: string;
35
+ matchedKey?: string;
36
+ raw?: unknown;
37
+ }
38
+ /** Transient failure: timeouts, 5xx, 429, connection errors. Retryable. */
39
+ | {
40
+ kind: 'retryable_failure';
41
+ retryAfterMs?: number;
42
+ error: string;
43
+ }
44
+ /** Deterministic failure: 4xx (except 408/429), validation rejection. */
45
+ | {
46
+ kind: 'permanent_failure';
47
+ error: string;
48
+ };
49
+ /** Where the provider put the machine-readable result in its envelope. */
50
+ export interface AckEnvelopeHints {
51
+ /** Default config: TelePost returns { ok, data: { ... } }. */
52
+ dataPath?: string;
53
+ /** Field carrying the stable downstream record id (default review_id/message_id). */
54
+ idField?: string;
55
+ /** Field carrying the downstream status string. */
56
+ statusField?: string;
57
+ /** Field that is true when a pre-existing record was reused. */
58
+ reusedField?: string;
59
+ /** Field distinguishing replay-of-our-key vs an older historical record. */
60
+ reasonField?: string;
61
+ keyField?: string;
62
+ }
63
+ /**
64
+ * Parse a provider HTTP response into a DeliveryAck. Pure function of
65
+ * (status, body). Recognises the explicit TelePost envelope and degrades
66
+ * safely for plain 2xx endpoints (treated as 'accepted') so generic adapters
67
+ * keep working.
68
+ */
69
+ export declare function parseDeliveryAck(status: number, body: unknown, hints?: AckEnvelopeHints): DeliveryAck;
70
+ //# sourceMappingURL=DeliveryAck.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryAck.d.ts","sourceRoot":"","sources":["../../src/delivery/DeliveryAck.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE;AAC/E;;;;GAIG;GACD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE;AACxF;;;;GAIG;GACD;IACE,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AACH,2EAA2E;GACzE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACrE,yEAAyE;GACvE;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qFAAqF;IACrF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuBD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,EACb,KAAK,GAAE,gBAAqB,GAC3B,WAAW,CAqCb"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseDeliveryAck = parseDeliveryAck;
4
+ const DEFAULT_HINTS = {
5
+ dataPath: 'data',
6
+ idField: 'review_id',
7
+ statusField: 'status',
8
+ reusedField: 'reused',
9
+ reasonField: 'reuse_reason',
10
+ keyField: 'matched_idempotency_key',
11
+ };
12
+ function dig(body, path) {
13
+ if (!path)
14
+ return body;
15
+ return path.split('.').reduce((value, key) => {
16
+ if (value && typeof value === 'object')
17
+ return value[key];
18
+ return undefined;
19
+ }, body);
20
+ }
21
+ function asString(value) {
22
+ return typeof value === 'string' && value.trim() ? value : undefined;
23
+ }
24
+ /**
25
+ * Parse a provider HTTP response into a DeliveryAck. Pure function of
26
+ * (status, body). Recognises the explicit TelePost envelope and degrades
27
+ * safely for plain 2xx endpoints (treated as 'accepted') so generic adapters
28
+ * keep working.
29
+ */
30
+ function parseDeliveryAck(status, body, hints = {}) {
31
+ const h = { ...DEFAULT_HINTS, ...hints };
32
+ if (status === 429) {
33
+ return { kind: 'retryable_failure', error: 'HTTP 429 rate limited by delivery endpoint' };
34
+ }
35
+ if (status === 408 || status >= 500) {
36
+ return { kind: 'retryable_failure', error: `delivery endpoint HTTP ${status}` };
37
+ }
38
+ if (status < 200 || status >= 300) {
39
+ const preview = typeof body === 'string' ? body : safeStringify(body);
40
+ return { kind: 'permanent_failure', error: `delivery endpoint HTTP ${status}${preview ? ': ' + preview.slice(0, 200) : ''}` };
41
+ }
42
+ const data = dig(body, h.dataPath);
43
+ // Plain 2xx with no JSON envelope: accepted at-most-once signal.
44
+ if (!data || typeof data !== 'object') {
45
+ return { kind: 'accepted', raw: body };
46
+ }
47
+ const rec = data;
48
+ const idValue = rec[h.idField] ?? rec.message_id;
49
+ const remoteId = typeof idValue === 'number' ? String(idValue) : asString(idValue);
50
+ const remoteStatus = asString(rec[h.statusField]);
51
+ const reused = rec[h.reusedField] === true;
52
+ if (!reused) {
53
+ return { kind: 'accepted', remoteId, remoteStatus, raw: body };
54
+ }
55
+ const reason = asString(rec[h.reasonField]) ?? asString(rec.reuse_kind) ?? '';
56
+ const matchedKey = asString(rec[h.keyField]);
57
+ // Explicit historical-duplicate attestation wins; bare "reused" defaults to
58
+ // replay because the provider only sets reused when it matched a prior key.
59
+ if (reason === 'duplicate_existing' || reason === 'historical' || reason === 'historical_duplicate') {
60
+ return { kind: 'duplicate_existing', remoteId, remoteStatus, matchedKey, raw: body };
61
+ }
62
+ return { kind: 'idempotent_replay', remoteId, remoteStatus, raw: body };
63
+ }
64
+ function safeStringify(value) {
65
+ try {
66
+ return JSON.stringify(value);
67
+ }
68
+ catch {
69
+ return '';
70
+ }
71
+ }
72
+ //# sourceMappingURL=DeliveryAck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryAck.js","sourceRoot":"","sources":["../../src/delivery/DeliveryAck.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare class DeliveryDispatcher {
6
6
  private readonly proxyUrl?;
7
7
  constructor(config: DeliveryConfig | undefined, proxyUrl?: string | undefined);
8
8
  hasTarget(name: string): boolean;
9
+ isReady(name: string): Promise<boolean>;
9
10
  deliver(name: string, request: DeliveryRequest): Promise<DeliveryResult>;
10
11
  notify(name: string, request: DeliveryNotificationRequest): Promise<DeliveryResult>;
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeliveryDispatcher.d.ts","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvF,iFAAiF;AACjF,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADT,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,CAAC,EAAE,MAAM,YAAA;IAGpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAaxE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;CAa1F"}
1
+ {"version":3,"file":"DeliveryDispatcher.d.ts","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG3C,OAAO,EAAE,2BAA2B,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvF,iFAAiF;AACjF,qBAAa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBADT,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,QAAQ,CAAC,EAAE,MAAM,YAAA;IAGpC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQvC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAaxE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;CAa1F"}
@@ -14,6 +14,14 @@ class DeliveryDispatcher {
14
14
  hasTarget(name) {
15
15
  return Boolean(this.config?.targets?.[name]);
16
16
  }
17
+ async isReady(name) {
18
+ const target = this.config?.targets?.[name];
19
+ // Readiness is an optional preflight. Missing targets still flow through
20
+ // deliver/notify so the durable outbox records the normal retry error.
21
+ if (!target)
22
+ return true;
23
+ return new HttpMultipartDelivery_1.HttpMultipartDelivery(target, this.proxyUrl).isReady();
24
+ }
17
25
  async deliver(name, request) {
18
26
  const target = this.config?.targets?.[name];
19
27
  if (!target) {
@@ -37,7 +45,7 @@ class DeliveryDispatcher {
37
45
  if (!target.notificationUrl?.trim()) {
38
46
  throw new errors_1.ConfigError(`Delivery target does not configure notificationUrl: ${name}`);
39
47
  }
40
- return new HttpMultipartDelivery_1.HttpMultipartDelivery(target, this.proxyUrl).notify(request);
48
+ return new HttpMultipartDelivery_1.HttpMultipartDelivery(target, this.proxyUrl).notifyOnce(request);
41
49
  }
42
50
  }
43
51
  exports.DeliveryDispatcher = DeliveryDispatcher;
@@ -1 +1 @@
1
- {"version":3,"file":"DeliveryDispatcher.js","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAC9C,mEAAgE;AAGhE,iFAAiF;AACjF,MAAa,kBAAkB;IAEV;IACA;IAFnB,YACmB,MAAkC,EAClC,QAAiB;QADjB,WAAM,GAAN,MAAM,CAA4B;QAClC,aAAQ,GAAR,QAAQ,CAAS;IACjC,CAAC;IAEJ,SAAS,CAAC,IAAY;QACpB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAwB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,eAAe;gBAClB,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3E;gBACE,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAoC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;CACF;AApCD,gDAoCC"}
1
+ {"version":3,"file":"DeliveryDispatcher.js","sourceRoot":"","sources":["../../src/delivery/DeliveryDispatcher.ts"],"names":[],"mappings":";;;AACA,4CAA8C;AAC9C,mEAAgE;AAGhE,iFAAiF;AACjF,MAAa,kBAAkB;IAEV;IACA;IAFnB,YACmB,MAAkC,EAClC,QAAiB;QADjB,WAAM,GAAN,MAAM,CAA4B;QAClC,aAAQ,GAAR,QAAQ,CAAS;IACjC,CAAC;IAEJ,SAAS,CAAC,IAAY;QACpB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,yEAAyE;QACzE,uEAAuE;QACvE,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QACzB,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAAwB;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,eAAe;gBAClB,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC3E;gBACE,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAoC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,oBAAW,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,qCAAsC,MAA4B,CAAC,IAAI,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,oBAAW,CAAC,uDAAuD,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,IAAI,6CAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC9E,CAAC;CACF;AA5CD,gDA4CC"}
@@ -0,0 +1,74 @@
1
+ import { Database } from '../storage/Database';
2
+ import { TargetConfig } from '../config';
3
+ import { DownloadedArtifact } from './types';
4
+ /**
5
+ * The single place that turns a downloaded artifact into a durable delivery
6
+ * intent. It atomically:
7
+ * - inserts (or reuses) the delivery ledger row (pending),
8
+ * - enqueues the outbox side effect,
9
+ * - moves the slot cell to delivery_pending.
10
+ * Because all three land in one SQLite transaction, a crash at any point
11
+ * leaves a state with a deterministic recovery (resume), never a false
12
+ * "submitted". Downstream ACK is what later promotes the cell to submitted.
13
+ */
14
+ export interface EnqueueResult {
15
+ deliveryId: string;
16
+ idempotencyKey: string;
17
+ /** True when an already-confirmed ledger/fact short-circuited a new intent. */
18
+ duplicate: boolean;
19
+ /** True when this call created a brand new delivery row. */
20
+ created: boolean;
21
+ }
22
+ export declare class DeliveryService {
23
+ private readonly database;
24
+ constructor(database: Database);
25
+ /** Delivery target name for a target config, or null when it is not a delivery run. */
26
+ static targetName(target: TargetConfig): string | null;
27
+ /** Stable per-occurrence intent key, so ACK loss / replays converge to one row. */
28
+ static idempotencyKey(deliveryTarget: string, artifact: DownloadedArtifact, slotId?: string, targetId?: string): string;
29
+ /**
30
+ * Delivery-dedup preflight: is this work already CONFIRMED delivered to this
31
+ * target? Runs in the candidate pipeline BEFORE work lock so a historical
32
+ * duplicate is skipped and the next valid candidate is chosen. This is
33
+ * distinct from download dedupe (which only proves local caching).
34
+ */
35
+ isAlreadyDelivered(deliveryTarget: string, workType: string, pixivId: string): boolean;
36
+ /** Batch form for pre-lock candidate filtering. */
37
+ deliveredIds(deliveryTarget: string, workType: string, pixivIds: string[]): Set<string>;
38
+ /**
39
+ * Atomically create the delivery intent + outbox row and advance the cell.
40
+ * Missing local artifact files are treated as a recoverable error (the
41
+ * caller re-runs the download); a crash leaves the intent pending for the
42
+ * OutboxWorker — it never fabricates a submitted cell.
43
+ */
44
+ enqueue(artifact: DownloadedArtifact, target: TargetConfig, context?: {
45
+ slotId?: string;
46
+ idempotencyKey?: string;
47
+ fields?: Record<string, unknown>;
48
+ extraContext?: Record<string, unknown>;
49
+ }): EnqueueResult;
50
+ /**
51
+ * Record a historical downstream fact discovered via reconciliation: a work
52
+ * the remote already published from a different/older intent. Backfills the
53
+ * ledger so it never re-selects the work, and (optionally) settles the cell.
54
+ * This is the ONLY path that accepts a post-lock historical duplicate.
55
+ */
56
+ reconcileHistoricalDuplicate(input: {
57
+ deliveryTarget: string;
58
+ workType: string;
59
+ pixivId: string;
60
+ remoteId?: string;
61
+ remoteStatus?: string;
62
+ slotId?: string;
63
+ targetId?: string;
64
+ reason: string;
65
+ }): {
66
+ deliveryId: string;
67
+ created: boolean;
68
+ };
69
+ /** Enqueue a durable notification (retried independently; never affects content). */
70
+ enqueueNotification(deliveryTarget: string, text: string, idempotencyKey: string): void;
71
+ private guardCell;
72
+ private contextFrom;
73
+ }
74
+ //# sourceMappingURL=DeliveryService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryService.d.ts","sourceRoot":"","sources":["../../src/delivery/DeliveryService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,QAAQ;IAE/C,uFAAuF;IACvF,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI;IAKtD,mFAAmF;IACnF,MAAM,CAAC,cAAc,CACnB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM;IAKT;;;;;OAKG;IACH,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAItF,mDAAmD;IACnD,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;IAIvF;;;;;OAKG;IACH,OAAO,CACL,QAAQ,EAAE,kBAAkB,EAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,GACL,aAAa;IAgGhB;;;;;OAKG;IACH,4BAA4B,CAAC,KAAK,EAAE;QAClC,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,GAAG;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE;IAmC5C,qFAAqF;IACrF,mBAAmB,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IASvF,OAAO,CAAC,SAAS;IAYjB,OAAO,CAAC,WAAW;CAiBpB"}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DeliveryService = void 0;
4
+ const node_crypto_1 = require("node:crypto");
5
+ const node_fs_1 = require("node:fs");
6
+ const logger_1 = require("../logger");
7
+ class DeliveryService {
8
+ database;
9
+ constructor(database) {
10
+ this.database = database;
11
+ }
12
+ /** Delivery target name for a target config, or null when it is not a delivery run. */
13
+ static targetName(target) {
14
+ if (target.storageMode !== 'cache')
15
+ return null;
16
+ return target.delivery?.target?.trim() || null;
17
+ }
18
+ /** Stable per-occurrence intent key, so ACK loss / replays converge to one row. */
19
+ static idempotencyKey(deliveryTarget, artifact, slotId, targetId) {
20
+ const scope = slotId && targetId ? `${slotId}:${targetId}` : 'adhoc';
21
+ return `pixivflow:${deliveryTarget}:${artifact.type}:${artifact.pixivId}:${scope}`;
22
+ }
23
+ /**
24
+ * Delivery-dedup preflight: is this work already CONFIRMED delivered to this
25
+ * target? Runs in the candidate pipeline BEFORE work lock so a historical
26
+ * duplicate is skipped and the next valid candidate is chosen. This is
27
+ * distinct from download dedupe (which only proves local caching).
28
+ */
29
+ isAlreadyDelivered(deliveryTarget, workType, pixivId) {
30
+ return this.database.deliveries.isDelivered(deliveryTarget, workType, String(pixivId));
31
+ }
32
+ /** Batch form for pre-lock candidate filtering. */
33
+ deliveredIds(deliveryTarget, workType, pixivIds) {
34
+ return this.database.deliveries.deliveredIds(deliveryTarget, workType, pixivIds);
35
+ }
36
+ /**
37
+ * Atomically create the delivery intent + outbox row and advance the cell.
38
+ * Missing local artifact files are treated as a recoverable error (the
39
+ * caller re-runs the download); a crash leaves the intent pending for the
40
+ * OutboxWorker — it never fabricates a submitted cell.
41
+ */
42
+ enqueue(artifact, target, context = {}) {
43
+ const deliveryTarget = DeliveryService.targetName(target);
44
+ if (!deliveryTarget) {
45
+ throw new Error('enqueue called for a non-delivery (non-cache) target');
46
+ }
47
+ if (artifact.files.length === 0) {
48
+ throw new Error(`no files produced for ${artifact.type} ${artifact.pixivId}`);
49
+ }
50
+ const missing = artifact.files.find((file) => !(0, node_fs_1.existsSync)(file));
51
+ if (missing) {
52
+ // Crash between download and intent, or cache eviction. Recoverable: the
53
+ // cell stays selected and a resume re-downloads the SAME locked work.
54
+ throw new Error(`artifact file missing before enqueue: ${missing}`);
55
+ }
56
+ // Ledger short-circuit: a confirmed fact must never create a new intent.
57
+ if (this.database.deliveries.isDelivered(deliveryTarget, artifact.type, artifact.pixivId)) {
58
+ return { deliveryId: '', idempotencyKey: '', duplicate: true, created: false };
59
+ }
60
+ const idempotencyKey = context.idempotencyKey ??
61
+ DeliveryService.idempotencyKey(deliveryTarget, artifact, context.slotId, target.id);
62
+ const result = this.database.transaction(() => {
63
+ const { row, created } = this.database.deliveries.insertIntent({
64
+ id: (0, node_crypto_1.randomUUID)(),
65
+ deliveryTarget,
66
+ workType: artifact.type,
67
+ pixivId: artifact.pixivId,
68
+ slotId: context.slotId ?? null,
69
+ targetId: target.id ?? null,
70
+ idempotencyKey,
71
+ });
72
+ // Reuse of our own prior intent (ACK lost / duplicate trigger / restart).
73
+ if (!created) {
74
+ if (row.status === 'delivered' || row.status === 'duplicate') {
75
+ return { deliveryId: row.id, duplicate: true, created: false };
76
+ }
77
+ // pending/failed: ensure an outbox row exists (idempotent) and keep the
78
+ // cell recoverable rather than emitting a second side effect.
79
+ this.database.outbox.enqueue({
80
+ kind: 'delivery',
81
+ deliveryTarget,
82
+ idempotencyKey: `outbox:${idempotencyKey}`,
83
+ deliveryId: row.id,
84
+ payload: {
85
+ files: artifact.files,
86
+ previewFiles: artifact.previewFiles ?? [],
87
+ cleanupFiles: artifact.cleanupFiles ?? [],
88
+ fields: context.fields ?? null,
89
+ context: { ...this.contextFrom(artifact, target), idempotencyKey, ...(context.extraContext ?? {}) },
90
+ },
91
+ }, Date.now());
92
+ if (context.slotId && target.id) {
93
+ this.guardCell(context.slotId, target.id, 'delivery_pending');
94
+ }
95
+ return { deliveryId: row.id, duplicate: false, created: false };
96
+ }
97
+ this.database.outbox.enqueue({
98
+ kind: 'delivery',
99
+ deliveryTarget,
100
+ idempotencyKey: `outbox:${idempotencyKey}`,
101
+ deliveryId: row.id,
102
+ payload: {
103
+ files: artifact.files,
104
+ previewFiles: artifact.previewFiles ?? [],
105
+ cleanupFiles: artifact.cleanupFiles ?? [],
106
+ fields: context.fields ?? null,
107
+ context: { ...this.contextFrom(artifact, target), idempotencyKey, ...(context.extraContext ?? {}) },
108
+ },
109
+ });
110
+ if (context.slotId && target.id) {
111
+ this.guardCell(context.slotId, target.id, 'delivery_pending');
112
+ }
113
+ return { deliveryId: row.id, duplicate: false, created: true };
114
+ });
115
+ logger_1.logger.info('Delivery intent enqueued', {
116
+ deliveryId: result.deliveryId,
117
+ deliveryTarget,
118
+ pixivId: artifact.pixivId,
119
+ workType: artifact.type,
120
+ slotId: context.slotId,
121
+ created: result.created,
122
+ idempotencyKey,
123
+ });
124
+ return { ...result, idempotencyKey };
125
+ }
126
+ /**
127
+ * Record a historical downstream fact discovered via reconciliation: a work
128
+ * the remote already published from a different/older intent. Backfills the
129
+ * ledger so it never re-selects the work, and (optionally) settles the cell.
130
+ * This is the ONLY path that accepts a post-lock historical duplicate.
131
+ */
132
+ reconcileHistoricalDuplicate(input) {
133
+ const key = `reconcile:${input.deliveryTarget}:${input.workType}:${input.pixivId}`;
134
+ const { row, created } = this.database.deliveries.backfill({
135
+ id: (0, node_crypto_1.randomUUID)(),
136
+ deliveryTarget: input.deliveryTarget,
137
+ workType: input.workType,
138
+ pixivId: input.pixivId,
139
+ slotId: input.slotId ?? null,
140
+ targetId: input.targetId ?? null,
141
+ idempotencyKey: key,
142
+ remoteId: input.remoteId,
143
+ remoteStatus: input.remoteStatus ?? 'duplicate_existing',
144
+ });
145
+ // Mark the backfilled ledger row as an attested historical duplicate.
146
+ if (row.status !== 'duplicate') {
147
+ this.database.deliveries.recordAck(row.id, {
148
+ status: 'duplicate',
149
+ remoteId: input.remoteId,
150
+ remoteStatus: input.remoteStatus ?? 'duplicate_existing',
151
+ reuseReason: input.reason,
152
+ });
153
+ }
154
+ if (input.slotId && input.targetId) {
155
+ this.guardCell(input.slotId, input.targetId, 'duplicate');
156
+ }
157
+ logger_1.logger.warn('Reconciled historical downstream duplicate', {
158
+ pixivId: input.pixivId,
159
+ workType: input.workType,
160
+ deliveryTarget: input.deliveryTarget,
161
+ remoteId: input.remoteId,
162
+ reason: input.reason,
163
+ });
164
+ return { deliveryId: row.id, created };
165
+ }
166
+ /** Enqueue a durable notification (retried independently; never affects content). */
167
+ enqueueNotification(deliveryTarget, text, idempotencyKey) {
168
+ this.database.outbox.enqueue({
169
+ kind: 'notification',
170
+ deliveryTarget,
171
+ idempotencyKey,
172
+ payload: { text },
173
+ });
174
+ }
175
+ guardCell(slotId, targetId, next) {
176
+ const cell = this.database.slots.getCell(slotId, targetId);
177
+ if (!cell)
178
+ return;
179
+ if (cell.status === next)
180
+ return;
181
+ if (cell.status === 'submitted' || cell.status === 'duplicate')
182
+ return; // never downgrade
183
+ try {
184
+ this.database.slots.transitionCell(slotId, targetId, next);
185
+ }
186
+ catch (error) {
187
+ logger_1.logger.debug('Cell transition skipped', { slotId, targetId, from: cell.status, to: next, error: error.message });
188
+ }
189
+ }
190
+ contextFrom(artifact, target) {
191
+ return {
192
+ title: artifact.title,
193
+ pixivId: artifact.pixivId,
194
+ type: artifact.type,
195
+ targetId: target.id,
196
+ tag: target.filterTag || target.tag || '',
197
+ topic: target.topic?.trim() || undefined,
198
+ workTags: artifact.tags,
199
+ spoiler: artifact.spoiler,
200
+ xRestrict: artifact.xRestrict,
201
+ publishedAt: artifact.publishedAt,
202
+ language: artifact.language,
203
+ bookmarkCount: artifact.bookmarkCount,
204
+ viewCount: artifact.viewCount,
205
+ };
206
+ }
207
+ }
208
+ exports.DeliveryService = DeliveryService;
209
+ //# sourceMappingURL=DeliveryService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeliveryService.js","sourceRoot":"","sources":["../../src/delivery/DeliveryService.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,qCAAqC;AAKrC,sCAAmC;AAqBnC,MAAa,eAAe;IACG;IAA7B,YAA6B,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAEnD,uFAAuF;IACvF,MAAM,CAAC,UAAU,CAAC,MAAoB;QACpC,IAAI,MAAM,CAAC,WAAW,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAChD,OAAO,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;IACjD,CAAC;IAED,mFAAmF;IACnF,MAAM,CAAC,cAAc,CACnB,cAAsB,EACtB,QAA4B,EAC5B,MAAe,EACf,QAAiB;QAEjB,MAAM,KAAK,GAAG,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACrE,OAAO,aAAa,cAAc,IAAI,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,IAAI,KAAK,EAAE,CAAC;IACrF,CAAC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,cAAsB,EAAE,QAAgB,EAAE,OAAe;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACzF,CAAC;IAED,mDAAmD;IACnD,YAAY,CAAC,cAAsB,EAAE,QAAgB,EAAE,QAAkB;QACvE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnF,CAAC;IAED;;;;;OAKG;IACH,OAAO,CACL,QAA4B,EAC5B,MAAoB,EACpB,UAKI,EAAE;QAEN,MAAM,cAAc,GAAG,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;QACD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,OAAO,EAAE,CAAC;YACZ,yEAAyE;YACzE,sEAAsE;YACtE,MAAM,IAAI,KAAK,CAAC,yCAAyC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,yEAAyE;QACzE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,cAAc,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1F,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACjF,CAAC;QAED,MAAM,cAAc,GAClB,OAAO,CAAC,cAAc;YACtB,eAAe,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAEtF,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE;YAC5C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC7D,EAAE,EAAE,IAAA,wBAAU,GAAE;gBAChB,cAAc;gBACd,QAAQ,EAAE,QAAQ,CAAC,IAAI;gBACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;gBAC9B,QAAQ,EAAE,MAAM,CAAC,EAAE,IAAI,IAAI;gBAC3B,cAAc;aACf,CAAC,CAAC;YAEH,0EAA0E;YAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC7D,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACjE,CAAC;gBACD,wEAAwE;gBACxE,8DAA8D;gBAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAC1B;oBACE,IAAI,EAAE,UAAU;oBAChB,cAAc;oBACd,cAAc,EAAE,UAAU,cAAc,EAAE;oBAC1C,UAAU,EAAE,GAAG,CAAC,EAAE;oBAClB,OAAO,EAAE;wBACP,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,EAAE;wBACzC,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,EAAE;wBACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;wBAC9B,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;qBACpG;iBACF,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;gBACF,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;oBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;gBAChE,CAAC;gBACD,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAClE,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;gBAC3B,IAAI,EAAE,UAAU;gBAChB,cAAc;gBACd,cAAc,EAAE,UAAU,cAAc,EAAE;gBAC1C,UAAU,EAAE,GAAG,CAAC,EAAE;gBAClB,OAAO,EAAE;oBACP,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,EAAE;oBACzC,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,EAAE;oBACzC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;oBAC9B,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;iBACpG;aACF,CAAC,CAAC;YAEH,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,kBAAkB,CAAC,CAAC;YAChE,CAAC;YACD,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,eAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE;YACtC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc;YACd,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,cAAc;SACf,CAAC,CAAC;QACH,OAAO,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,4BAA4B,CAAC,KAS5B;QACC,MAAM,GAAG,GAAG,aAAa,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACnF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;YACzD,EAAE,EAAE,IAAA,wBAAU,GAAE;YAChB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YAChC,cAAc,EAAE,GAAG;YACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,oBAAoB;SACzD,CAAC,CAAC;QACH,sEAAsE;QACtE,IAAI,GAAG,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE;gBACzC,MAAM,EAAE,WAAW;gBACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,YAAY,EAAE,KAAK,CAAC,YAAY,IAAI,oBAAoB;gBACxD,WAAW,EAAE,KAAK,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5D,CAAC;QACD,eAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;YACxD,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,cAAc,EAAE,KAAK,CAAC,cAAc;YACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED,qFAAqF;IACrF,mBAAmB,CAAC,cAAsB,EAAE,IAAY,EAAE,cAAsB;QAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3B,IAAI,EAAE,cAAc;YACpB,cAAc;YACd,cAAc;YACd,OAAO,EAAE,EAAE,IAAI,EAAE;SAClB,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAiE;QACnH,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW;YAAE,OAAO,CAAC,kBAAkB;QAC1F,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,eAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,QAA4B,EAAE,MAAoB;QACpE,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,MAAM,CAAC,EAAE;YACnB,GAAG,EAAE,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE;YACzC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,SAAS;YACxC,QAAQ,EAAE,QAAQ,CAAC,IAAI;YACvB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,aAAa,EAAE,QAAQ,CAAC,aAAa;YACrC,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC;IACJ,CAAC;CACF;AA3OD,0CA2OC"}
@@ -5,8 +5,18 @@ export declare class HttpMultipartDelivery implements DeliveryProvider {
5
5
  private readonly config;
6
6
  private readonly dispatcher?;
7
7
  constructor(config: HttpMultipartDeliveryConfig, proxyUrl?: string);
8
+ isReady(): Promise<boolean>;
9
+ /**
10
+ * One delivery attempt. Retry/backoff/dead-letter belong to the outbox worker,
11
+ * not here, so this performs exactly ONE HTTP call and normalizes the result
12
+ * into a DeliveryAck. HTTP status/body is never silently treated as success.
13
+ */
8
14
  deliver(request: DeliveryRequest): Promise<DeliveryResult>;
9
- notify(request: DeliveryNotificationRequest): Promise<DeliveryResult>;
15
+ /** Single notification attempt; the outbox owns retries. */
16
+ notifyOnce(request: DeliveryNotificationRequest): Promise<{
17
+ status: number;
18
+ body: unknown;
19
+ }>;
10
20
  private attempt;
11
21
  private assertSuccess;
12
22
  private resolveHeaders;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpMultipartDelivery.d.ts","sourceRoot":"","sources":["../../src/delivery/HttpMultipartDelivery.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAE5E,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmCzG,0DAA0D;AAC1D,qBAAa,qBAAsB,YAAW,gBAAgB;IAI1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAU;gBAGnB,MAAM,EAAE,2BAA2B,EACpD,QAAQ,CAAC,EAAE,MAAM;IASb,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IA8B1D,MAAM,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,cAAc,CAAC;YAmD7D,OAAO;IA+CrB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;IAmFrB,OAAO,CAAC,sBAAsB;YAUhB,mBAAmB;IAkDjC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,OAAO;CAIhB"}
1
+ {"version":3,"file":"HttpMultipartDelivery.d.ts","sourceRoot":"","sources":["../../src/delivery/HttpMultipartDelivery.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAE5E,OAAO,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAoCzG,0DAA0D;AAC1D,qBAAa,qBAAsB,YAAW,gBAAgB;IAI1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAHzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAU;gBAGnB,MAAM,EAAE,2BAA2B,EACpD,QAAQ,CAAC,EAAE,MAAM;IASb,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBjC;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;IAShE,4DAA4D;IACtD,UAAU,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;YAsBpF,OAAO;IAkDrB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,aAAa;IAuFrB,OAAO,CAAC,sBAAsB;YAUhB,mBAAmB;IAoEjC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,OAAO;CAIhB"}