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.
- package/README.md +30 -4
- package/README_EN.md +11 -3
- package/config/fly-two-bots.example.json +3 -1
- package/dist/commands/DoctorCommand.d.ts +20 -0
- package/dist/commands/DoctorCommand.d.ts.map +1 -0
- package/dist/commands/DoctorCommand.js +107 -0
- package/dist/commands/DoctorCommand.js.map +1 -0
- package/dist/commands/OutboxCommand.d.ts +17 -0
- package/dist/commands/OutboxCommand.d.ts.map +1 -0
- package/dist/commands/OutboxCommand.js +102 -0
- package/dist/commands/OutboxCommand.js.map +1 -0
- package/dist/commands/ReconcileCommand.d.ts +24 -0
- package/dist/commands/ReconcileCommand.d.ts.map +1 -0
- package/dist/commands/ReconcileCommand.js +70 -0
- package/dist/commands/ReconcileCommand.js.map +1 -0
- package/dist/commands/SchedulerCommand.d.ts.map +1 -1
- package/dist/commands/SchedulerCommand.js +5 -0
- package/dist/commands/SchedulerCommand.js.map +1 -1
- package/dist/commands/SchedulerRunOnceCommand.d.ts.map +1 -1
- package/dist/commands/SchedulerRunOnceCommand.js +6 -0
- package/dist/commands/SchedulerRunOnceCommand.js.map +1 -1
- package/dist/commands/index.d.ts +4 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +10 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/scheduler-runtime.d.ts +10 -1
- package/dist/commands/scheduler-runtime.d.ts.map +1 -1
- package/dist/commands/scheduler-runtime.js +157 -47
- package/dist/commands/scheduler-runtime.js.map +1 -1
- package/dist/config/types.d.ts +14 -1
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/validation.d.ts.map +1 -1
- package/dist/config/validation.js +10 -0
- package/dist/config/validation.js.map +1 -1
- package/dist/delivery/DeliveryAck.d.ts +70 -0
- package/dist/delivery/DeliveryAck.d.ts.map +1 -0
- package/dist/delivery/DeliveryAck.js +72 -0
- package/dist/delivery/DeliveryAck.js.map +1 -0
- package/dist/delivery/DeliveryDispatcher.d.ts +1 -0
- package/dist/delivery/DeliveryDispatcher.d.ts.map +1 -1
- package/dist/delivery/DeliveryDispatcher.js +9 -1
- package/dist/delivery/DeliveryDispatcher.js.map +1 -1
- package/dist/delivery/DeliveryService.d.ts +74 -0
- package/dist/delivery/DeliveryService.d.ts.map +1 -0
- package/dist/delivery/DeliveryService.js +209 -0
- package/dist/delivery/DeliveryService.js.map +1 -0
- package/dist/delivery/HttpMultipartDelivery.d.ts +11 -1
- package/dist/delivery/HttpMultipartDelivery.d.ts.map +1 -1
- package/dist/delivery/HttpMultipartDelivery.js +70 -67
- package/dist/delivery/HttpMultipartDelivery.js.map +1 -1
- package/dist/delivery/LegacyOutboxMigration.d.ts +21 -0
- package/dist/delivery/LegacyOutboxMigration.d.ts.map +1 -0
- package/dist/delivery/LegacyOutboxMigration.js +125 -0
- package/dist/delivery/LegacyOutboxMigration.js.map +1 -0
- package/dist/delivery/OutboxWorker.d.ts +70 -0
- package/dist/delivery/OutboxWorker.d.ts.map +1 -0
- package/dist/delivery/OutboxWorker.js +211 -0
- package/dist/delivery/OutboxWorker.js.map +1 -0
- package/dist/delivery/types.d.ts +15 -0
- package/dist/delivery/types.d.ts.map +1 -1
- package/dist/download/DownloadManager.d.ts +17 -12
- package/dist/download/DownloadManager.d.ts.map +1 -1
- package/dist/download/DownloadManager.js +31 -53
- package/dist/download/DownloadManager.js.map +1 -1
- package/dist/download/IllustrationDownloader.d.ts +1 -0
- package/dist/download/IllustrationDownloader.d.ts.map +1 -1
- package/dist/download/IllustrationDownloader.js +19 -1
- package/dist/download/IllustrationDownloader.js.map +1 -1
- package/dist/download/NovelDownloader.d.ts +3 -1
- package/dist/download/NovelDownloader.d.ts.map +1 -1
- package/dist/download/NovelDownloader.js +30 -2
- package/dist/download/NovelDownloader.js.map +1 -1
- package/dist/download/handlers/IllustrationTargetHandler.d.ts +18 -8
- package/dist/download/handlers/IllustrationTargetHandler.d.ts.map +1 -1
- package/dist/download/handlers/IllustrationTargetHandler.js +101 -74
- package/dist/download/handlers/IllustrationTargetHandler.js.map +1 -1
- package/dist/download/handlers/NovelTargetHandler.d.ts +8 -8
- package/dist/download/handlers/NovelTargetHandler.d.ts.map +1 -1
- package/dist/download/handlers/NovelTargetHandler.js +64 -83
- package/dist/download/handlers/NovelTargetHandler.js.map +1 -1
- package/dist/download/plan/DownloadPlanner.d.ts +6 -1
- package/dist/download/plan/DownloadPlanner.d.ts.map +1 -1
- package/dist/download/plan/DownloadPlanner.js +28 -5
- package/dist/download/plan/DownloadPlanner.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/notification/NotificationPolicy.d.ts +38 -0
- package/dist/notification/NotificationPolicy.d.ts.map +1 -0
- package/dist/notification/NotificationPolicy.js +89 -0
- package/dist/notification/NotificationPolicy.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/pixiv/PixivClient.d.ts +4 -0
- package/dist/pixiv/PixivClient.d.ts.map +1 -1
- package/dist/pixiv/PixivClient.js +15 -2
- package/dist/pixiv/PixivClient.js.map +1 -1
- package/dist/pixiv/RateLimitCoordinator.d.ts +30 -0
- package/dist/pixiv/RateLimitCoordinator.d.ts.map +1 -0
- package/dist/pixiv/RateLimitCoordinator.js +66 -0
- package/dist/pixiv/RateLimitCoordinator.js.map +1 -0
- package/dist/pixiv/client/PixivApiCore.d.ts +5 -0
- package/dist/pixiv/client/PixivApiCore.d.ts.map +1 -1
- package/dist/pixiv/client/PixivApiCore.js +31 -9
- package/dist/pixiv/client/PixivApiCore.js.map +1 -1
- package/dist/scheduler/ScheduleTriggerServer.d.ts +7 -0
- package/dist/scheduler/ScheduleTriggerServer.d.ts.map +1 -1
- package/dist/scheduler/ScheduleTriggerServer.js +17 -0
- package/dist/scheduler/ScheduleTriggerServer.js.map +1 -1
- package/dist/scheduler/SlotCoordinator.d.ts +15 -0
- package/dist/scheduler/SlotCoordinator.d.ts.map +1 -1
- package/dist/scheduler/SlotCoordinator.js +74 -0
- package/dist/scheduler/SlotCoordinator.js.map +1 -1
- package/dist/scheduler/SlotStateMachine.d.ts +32 -0
- package/dist/scheduler/SlotStateMachine.d.ts.map +1 -0
- package/dist/scheduler/SlotStateMachine.js +65 -0
- package/dist/scheduler/SlotStateMachine.js.map +1 -0
- package/dist/scheduler/TargetOutcome.d.ts +63 -0
- package/dist/scheduler/TargetOutcome.d.ts.map +1 -0
- package/dist/scheduler/TargetOutcome.js +28 -0
- package/dist/scheduler/TargetOutcome.js.map +1 -0
- package/dist/storage/Database.d.ts +16 -0
- package/dist/storage/Database.d.ts.map +1 -1
- package/dist/storage/Database.js +29 -0
- package/dist/storage/Database.js.map +1 -1
- package/dist/storage/DatabaseMigration.d.ts.map +1 -1
- package/dist/storage/DatabaseMigration.js +66 -0
- package/dist/storage/DatabaseMigration.js.map +1 -1
- package/dist/storage/repositories/DeliveryRepository.d.ts +73 -0
- package/dist/storage/repositories/DeliveryRepository.d.ts.map +1 -0
- package/dist/storage/repositories/DeliveryRepository.js +148 -0
- package/dist/storage/repositories/DeliveryRepository.js.map +1 -0
- package/dist/storage/repositories/MetadataRepository.d.ts +27 -0
- package/dist/storage/repositories/MetadataRepository.d.ts.map +1 -0
- package/dist/storage/repositories/MetadataRepository.js +58 -0
- package/dist/storage/repositories/MetadataRepository.js.map +1 -0
- package/dist/storage/repositories/OutboxRepository.d.ts +72 -0
- package/dist/storage/repositories/OutboxRepository.d.ts.map +1 -0
- package/dist/storage/repositories/OutboxRepository.js +200 -0
- package/dist/storage/repositories/OutboxRepository.js.map +1 -0
- package/dist/storage/repositories/SlotRepository.d.ts +26 -1
- package/dist/storage/repositories/SlotRepository.d.ts.map +1 -1
- package/dist/storage/repositories/SlotRepository.js +76 -2
- package/dist/storage/repositories/SlotRepository.js.map +1 -1
- package/dist/utils/config-validator-unified.d.ts.map +1 -1
- package/dist/utils/config-validator-unified.js +14 -0
- package/dist/utils/config-validator-unified.js.map +1 -1
- package/dist/webui/package.json +1 -1
- package/package.json +1 -1
- package/dist/delivery/DeliveryOutbox.d.ts +0 -43
- package/dist/delivery/DeliveryOutbox.d.ts.map +0 -1
- package/dist/delivery/DeliveryOutbox.js +0 -293
- package/dist/delivery/DeliveryOutbox.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/config/validation.ts"],"names":[],"mappings":"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"}
|
|
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":";;AA2EA,4CAyCC;AApED,MAAM,aAAa,GAA+B;IAChD,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,QAAQ;IACrB,WAAW,EAAE,cAAc;IAC3B,QAAQ,EAAE,yBAAyB;CACpC,CAAC;AAEF,SAAS,GAAG,CAAC,IAAa,EAAE,IAAa;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAU,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAQ,KAAiC,CAAC,GAAG,CAAC,CAAC;QACvF,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAC9B,MAAc,EACd,IAAa,EACb,QAA0B,EAAE;IAE5B,MAAM,CAAC,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,EAAE,CAAC;IAEzC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;QACnB,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;IAC5F,CAAC;IACD,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,0BAA0B,MAAM,EAAE,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,0BAA0B,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;IAChI,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnC,iEAAiE;IACjE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACzC,CAAC;IACD,MAAM,GAAG,GAAG,IAA+B,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC;IACjD,MAAM,QAAQ,GACZ,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACpE,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAC9E,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7C,4EAA4E;IAC5E,4EAA4E;IAC5E,IAAI,MAAM,KAAK,oBAAoB,IAAI,MAAM,KAAK,YAAY,IAAI,MAAM,KAAK,sBAAsB,EAAE,CAAC;QACpG,OAAO,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvF,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -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).
|
|
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,
|
|
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":"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"}
|
|
@@ -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
|
-
|
|
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;
|
|
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"}
|