@frkntmbs/strapi-plugin-video-optimizer 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +286 -0
  3. package/admin/custom.d.ts +8 -0
  4. package/admin/src/buildVersion.ts +3 -0
  5. package/admin/src/components/AssetOptimizationLabel.tsx +61 -0
  6. package/admin/src/components/BridgeProviders.tsx +123 -0
  7. package/admin/src/components/MediaLibraryCacheBridge.tsx +24 -0
  8. package/admin/src/components/MediaLibraryCardActionsBridge.tsx +249 -0
  9. package/admin/src/components/MediaLibraryJobWatcher.tsx +136 -0
  10. package/admin/src/components/MediaLibraryProgressBridge.tsx +97 -0
  11. package/admin/src/components/OptimizationChoicePicker.tsx +65 -0
  12. package/admin/src/components/OptimizationResizeFields.tsx +120 -0
  13. package/admin/src/components/OptimizationVideoFields.tsx +217 -0
  14. package/admin/src/components/UploadEnhancerBridge.tsx +205 -0
  15. package/admin/src/components/upload/PendingAssetStep.tsx +97 -0
  16. package/admin/src/defaultGlobalSettings.ts +32 -0
  17. package/admin/src/hooks/useDefaultOptimizationMode.ts +24 -0
  18. package/admin/src/hooks/useUploadWithOptimizer.ts +45 -0
  19. package/admin/src/index.ts +84 -0
  20. package/admin/src/pages/SettingsPage.tsx +208 -0
  21. package/admin/src/pluginId.ts +79 -0
  22. package/admin/src/translations/en.json +74 -0
  23. package/admin/src/translations/tr.json +74 -0
  24. package/admin/src/utils/adminFetch.ts +57 -0
  25. package/admin/src/utils/captureQueryClient.ts +34 -0
  26. package/admin/src/utils/debugMediaLibraryProgress.ts +70 -0
  27. package/admin/src/utils/extractAssetDimensions.ts +22 -0
  28. package/admin/src/utils/initJobPoller.ts +173 -0
  29. package/admin/src/utils/initMediaLibraryCardActions.ts +308 -0
  30. package/admin/src/utils/initMediaLibraryProgress.ts +219 -0
  31. package/admin/src/utils/initUploadEnhancer.ts +447 -0
  32. package/admin/src/utils/invalidateMediaLibrary.ts +203 -0
  33. package/admin/src/utils/jobProgressStore.ts +113 -0
  34. package/admin/src/utils/mediaLibraryCardMatch.ts +414 -0
  35. package/admin/src/utils/mediaLibraryCardStore.ts +223 -0
  36. package/admin/src/utils/mediaLibraryQueryBridge.ts +113 -0
  37. package/admin/src/utils/mediaLibraryRoute.ts +9 -0
  38. package/admin/src/utils/optimizationFields.ts +17 -0
  39. package/admin/src/utils/probeVideoDimensions.ts +94 -0
  40. package/admin/src/utils/uploadAssetStore.ts +670 -0
  41. package/admin/tsconfig.json +8 -0
  42. package/dist/admin/SettingsPage-CN2fR83m.js +150 -0
  43. package/dist/admin/SettingsPage-D6e536P0.mjs +150 -0
  44. package/dist/admin/en-CqM903j3.js +77 -0
  45. package/dist/admin/en-CsHicGzL.mjs +77 -0
  46. package/dist/admin/index-BjWoS0YU.js +2542 -0
  47. package/dist/admin/index-Cs_uiChW.mjs +2541 -0
  48. package/dist/admin/index-DOuHOS2G.js +8799 -0
  49. package/dist/admin/index-rAmxCQz6.mjs +8781 -0
  50. package/dist/admin/index.js +4 -0
  51. package/dist/admin/index.mjs +4 -0
  52. package/dist/admin/tr-Y0-ANilh.mjs +77 -0
  53. package/dist/admin/tr-muzHkdC4.js +77 -0
  54. package/dist/server/index.js +1538 -0
  55. package/dist/server/index.mjs +1533 -0
  56. package/package.json +100 -0
  57. package/server/index.js +1 -0
  58. package/server/src/bootstrap.ts +377 -0
  59. package/server/src/buildVersion.ts +1 -0
  60. package/server/src/config/defaults.ts +91 -0
  61. package/server/src/config/index.ts +51 -0
  62. package/server/src/constants.ts +83 -0
  63. package/server/src/controllers/index.ts +7 -0
  64. package/server/src/controllers/job.ts +102 -0
  65. package/server/src/controllers/preference.ts +206 -0
  66. package/server/src/index.ts +15 -0
  67. package/server/src/register.ts +19 -0
  68. package/server/src/routes/index.ts +103 -0
  69. package/server/src/services/index.ts +9 -0
  70. package/server/src/services/job-queue.ts +663 -0
  71. package/server/src/services/optimizer.ts +284 -0
  72. package/server/src/services/preference.ts +172 -0
  73. package/server/src/utils/request-context.ts +7 -0
  74. package/server/src/utils/upload-preferences-context.ts +202 -0
  75. package/server/tsconfig.json +8 -0
  76. package/strapi-admin.js +7 -0
  77. package/strapi-server.js +7 -0
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const index = require("./index-DOuHOS2G.js");
4
+ exports.default = index.index;
@@ -0,0 +1,4 @@
1
+ import { I } from "./index-rAmxCQz6.mjs";
2
+ export {
3
+ I as default
4
+ };
@@ -0,0 +1,77 @@
1
+ const tr = {
2
+ "plugin.name": "Video Optimizasyon",
3
+ "settings.section-label": "Video Optimizasyon",
4
+ "settings.page.title": "Video Optimizasyon Ayarları",
5
+ "settings.page.description": "Video yüklerken kullanılacak genel varsayılanları buradan ayarlayın. Her video için yükleme penceresinde ayrı seçim yapılabilir.",
6
+ "settings.format.mp4": "MP4 (H.264)",
7
+ "settings.format.webm": "WebM (VP9)",
8
+ "settings.audioMode.keep": "Orijinal sesi koru",
9
+ "settings.audioMode.remove": "Sesi kaldır",
10
+ "settings.audioMode.compress": "Sesi sıkıştır",
11
+ "settings.global.title": "Genel ayarlar",
12
+ "settings.global.description": "Tüm video yüklemeleri için varsayılan optimizasyon ayarları. Her video için Media Library yükleme penceresinde farklı seçim yapılabilir.",
13
+ "settings.global.defaultChoiceTitle": "Varsayılan yükleme seçimi",
14
+ "settings.global.defaultChoiceDescription": "Yeni bir video için yükleme penceresi açıldığında hangi seçeneğin önceden işaretli geleceğini belirler.",
15
+ "settings.global.defaultChoice": "Varsayılan seçim",
16
+ "settings.global.defaultChoiceHint": "Upload penceresinde video bazında değiştirilmedikçe bu seçim uygulanır.",
17
+ "settings.global.profileTitle": "Global optimizasyon profili",
18
+ "settings.global.profileDescription": "Global ayarı uygula seçildiğinde kullanılır; Özel seçeneğinin başlangıç değerlerini de belirler.",
19
+ "settings.global.defaultFormat": "Çıktı formatı",
20
+ "settings.global.videoCodec": "Video codec",
21
+ "settings.global.crf": "CRF (kalite)",
22
+ "settings.global.crfHint": "Düşük değer daha iyi kalite ve daha büyük dosya demektir (0–51).",
23
+ "settings.global.preset": "Encode preset",
24
+ "settings.global.audioMode": "Ses işleme",
25
+ "settings.global.audioBitrate": "Ses bitrate",
26
+ "settings.global.codecHint": "Codec, çıktı formatına göre otomatik seçilir.",
27
+ "settings.global.concurrencyTitle": "İşlem eşzamanlılığı",
28
+ "settings.global.concurrencyDescription": "Bu sunucuda aynı anda kaç FFmpeg işinin çalışabileceğini belirler.",
29
+ "settings.global.maxConcurrentJobs": "Maks. eşzamanlı iş",
30
+ "settings.global.maxConcurrentJobsHint": "Küçük sunucularda 1 önerilir. 1–32 arasında ayarlanabilir.",
31
+ "settings.global.maxFfmpegThreads": "İş başına maks. FFmpeg thread",
32
+ "settings.global.maxFfmpegThreadsHint": "Her encode işinin CPU kullanımını sınırlar. Zayıf VPS'lerde 1–2 önerilir. Aralık: 1–8.",
33
+ "settings.resize.title": "Çıktı boyutları",
34
+ "settings.resize.width": "Genişlik (px)",
35
+ "settings.resize.height": "Yükseklik (px)",
36
+ "settings.resize.hint": "Varsayılan olarak videonun orijinal boyutu kullanılır. Boyutlandırmak için bir değeri değiştirin; diğeri en-boy oranını korumak için güncellenir.",
37
+ "settings.resize.globalHint": "Video bu boyuttan büyükse en-boy oranı korunarak küçültülür.",
38
+ "settings.global.noPermission": "Genel Video Optimizasyon ayarlarını görüntüleme izniniz yok.",
39
+ "settings.save": "Kaydet",
40
+ "settings.saved": "Ayarlar kaydedildi",
41
+ "settings.error": "Ayarlar kaydedilemedi",
42
+ "choice.original": "Olduğu gibi bırak",
43
+ "choice.original.description": "Hiçbir optimizasyon uygulanmaz. Dosya seçildiği haliyle yüklenir.",
44
+ "choice.global": "Global ayarı uygula",
45
+ "choice.global.description": "Settings altındaki global optimizasyon profilini kullanır.",
46
+ "choice.custom": "Özel",
47
+ "choice.custom.description": "Bu video için format ve kalite ayarlarını ayrıca yapılandırın.",
48
+ "upload.optimization.label": "Optimizasyon",
49
+ "upload.button.label": "Optimizasyon ayarları",
50
+ "upload.modal.title": "Video optimizasyonu",
51
+ "upload.modal.save": "Kaydet",
52
+ "upload.modal.cancel": "İptal",
53
+ "upload.mode.footer.global": "Global: {mode}",
54
+ "upload.mode.footer.custom": "Özel: {mode}",
55
+ "jobs.status.queued": "Optimizasyon kuyruğunda",
56
+ "jobs.status.processing": "Optimize ediliyor",
57
+ "jobs.status.completed": "Optimizasyon tamamlandı",
58
+ "jobs.status.failed": "Optimizasyon başarısız",
59
+ "jobs.stage.queued": "Kuyrukta bekliyor",
60
+ "jobs.stage.preparing": "Hazırlanıyor",
61
+ "jobs.stage.encoding": "Video encode ediliyor",
62
+ "jobs.stage.finalizing": "Tamamlanıyor",
63
+ "jobs.stage.completed": "Tamamlandı",
64
+ "jobs.stage.failed": "Başarısız",
65
+ "jobs.panel.title": "Video optimizasyonu",
66
+ "jobs.card.progress": "Optimizasyon: {progress}% → {format}",
67
+ "jobs.card.queued": "Sırada",
68
+ "jobs.notification.completed": "Video #{fileId} başarıyla optimize edildi. Media Library yenilendi.",
69
+ "jobs.notification.failed": "Video optimizasyonu başarısız: {error}",
70
+ "mediaLibrary.button.optimize": "Videoyu optimize et",
71
+ "mediaLibrary.button.cancel": "Optimizasyonu iptal et",
72
+ "mediaLibrary.modal.title": "Video optimizasyonu",
73
+ "mediaLibrary.modal.start": "Optimizasyonu başlat"
74
+ };
75
+ export {
76
+ tr as default
77
+ };
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const tr = {
4
+ "plugin.name": "Video Optimizasyon",
5
+ "settings.section-label": "Video Optimizasyon",
6
+ "settings.page.title": "Video Optimizasyon Ayarları",
7
+ "settings.page.description": "Video yüklerken kullanılacak genel varsayılanları buradan ayarlayın. Her video için yükleme penceresinde ayrı seçim yapılabilir.",
8
+ "settings.format.mp4": "MP4 (H.264)",
9
+ "settings.format.webm": "WebM (VP9)",
10
+ "settings.audioMode.keep": "Orijinal sesi koru",
11
+ "settings.audioMode.remove": "Sesi kaldır",
12
+ "settings.audioMode.compress": "Sesi sıkıştır",
13
+ "settings.global.title": "Genel ayarlar",
14
+ "settings.global.description": "Tüm video yüklemeleri için varsayılan optimizasyon ayarları. Her video için Media Library yükleme penceresinde farklı seçim yapılabilir.",
15
+ "settings.global.defaultChoiceTitle": "Varsayılan yükleme seçimi",
16
+ "settings.global.defaultChoiceDescription": "Yeni bir video için yükleme penceresi açıldığında hangi seçeneğin önceden işaretli geleceğini belirler.",
17
+ "settings.global.defaultChoice": "Varsayılan seçim",
18
+ "settings.global.defaultChoiceHint": "Upload penceresinde video bazında değiştirilmedikçe bu seçim uygulanır.",
19
+ "settings.global.profileTitle": "Global optimizasyon profili",
20
+ "settings.global.profileDescription": "Global ayarı uygula seçildiğinde kullanılır; Özel seçeneğinin başlangıç değerlerini de belirler.",
21
+ "settings.global.defaultFormat": "Çıktı formatı",
22
+ "settings.global.videoCodec": "Video codec",
23
+ "settings.global.crf": "CRF (kalite)",
24
+ "settings.global.crfHint": "Düşük değer daha iyi kalite ve daha büyük dosya demektir (0–51).",
25
+ "settings.global.preset": "Encode preset",
26
+ "settings.global.audioMode": "Ses işleme",
27
+ "settings.global.audioBitrate": "Ses bitrate",
28
+ "settings.global.codecHint": "Codec, çıktı formatına göre otomatik seçilir.",
29
+ "settings.global.concurrencyTitle": "İşlem eşzamanlılığı",
30
+ "settings.global.concurrencyDescription": "Bu sunucuda aynı anda kaç FFmpeg işinin çalışabileceğini belirler.",
31
+ "settings.global.maxConcurrentJobs": "Maks. eşzamanlı iş",
32
+ "settings.global.maxConcurrentJobsHint": "Küçük sunucularda 1 önerilir. 1–32 arasında ayarlanabilir.",
33
+ "settings.global.maxFfmpegThreads": "İş başına maks. FFmpeg thread",
34
+ "settings.global.maxFfmpegThreadsHint": "Her encode işinin CPU kullanımını sınırlar. Zayıf VPS'lerde 1–2 önerilir. Aralık: 1–8.",
35
+ "settings.resize.title": "Çıktı boyutları",
36
+ "settings.resize.width": "Genişlik (px)",
37
+ "settings.resize.height": "Yükseklik (px)",
38
+ "settings.resize.hint": "Varsayılan olarak videonun orijinal boyutu kullanılır. Boyutlandırmak için bir değeri değiştirin; diğeri en-boy oranını korumak için güncellenir.",
39
+ "settings.resize.globalHint": "Video bu boyuttan büyükse en-boy oranı korunarak küçültülür.",
40
+ "settings.global.noPermission": "Genel Video Optimizasyon ayarlarını görüntüleme izniniz yok.",
41
+ "settings.save": "Kaydet",
42
+ "settings.saved": "Ayarlar kaydedildi",
43
+ "settings.error": "Ayarlar kaydedilemedi",
44
+ "choice.original": "Olduğu gibi bırak",
45
+ "choice.original.description": "Hiçbir optimizasyon uygulanmaz. Dosya seçildiği haliyle yüklenir.",
46
+ "choice.global": "Global ayarı uygula",
47
+ "choice.global.description": "Settings altındaki global optimizasyon profilini kullanır.",
48
+ "choice.custom": "Özel",
49
+ "choice.custom.description": "Bu video için format ve kalite ayarlarını ayrıca yapılandırın.",
50
+ "upload.optimization.label": "Optimizasyon",
51
+ "upload.button.label": "Optimizasyon ayarları",
52
+ "upload.modal.title": "Video optimizasyonu",
53
+ "upload.modal.save": "Kaydet",
54
+ "upload.modal.cancel": "İptal",
55
+ "upload.mode.footer.global": "Global: {mode}",
56
+ "upload.mode.footer.custom": "Özel: {mode}",
57
+ "jobs.status.queued": "Optimizasyon kuyruğunda",
58
+ "jobs.status.processing": "Optimize ediliyor",
59
+ "jobs.status.completed": "Optimizasyon tamamlandı",
60
+ "jobs.status.failed": "Optimizasyon başarısız",
61
+ "jobs.stage.queued": "Kuyrukta bekliyor",
62
+ "jobs.stage.preparing": "Hazırlanıyor",
63
+ "jobs.stage.encoding": "Video encode ediliyor",
64
+ "jobs.stage.finalizing": "Tamamlanıyor",
65
+ "jobs.stage.completed": "Tamamlandı",
66
+ "jobs.stage.failed": "Başarısız",
67
+ "jobs.panel.title": "Video optimizasyonu",
68
+ "jobs.card.progress": "Optimizasyon: {progress}% → {format}",
69
+ "jobs.card.queued": "Sırada",
70
+ "jobs.notification.completed": "Video #{fileId} başarıyla optimize edildi. Media Library yenilendi.",
71
+ "jobs.notification.failed": "Video optimizasyonu başarısız: {error}",
72
+ "mediaLibrary.button.optimize": "Videoyu optimize et",
73
+ "mediaLibrary.button.cancel": "Optimizasyonu iptal et",
74
+ "mediaLibrary.modal.title": "Video optimizasyonu",
75
+ "mediaLibrary.modal.start": "Optimizasyonu başlat"
76
+ };
77
+ exports.default = tr;