@siteping/widget 0.10.10 → 0.11.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 (122) hide show
  1. package/README.md +5 -4
  2. package/dist/chunk-CVWZCWBQ.js +9 -0
  3. package/dist/chunk-CVWZCWBQ.js.map +1 -0
  4. package/dist/chunk-CX5YE4V3.js +9 -0
  5. package/dist/chunk-CX5YE4V3.js.map +1 -0
  6. package/dist/chunk-KCOX2NRI.cjs +9 -0
  7. package/dist/chunk-KCOX2NRI.cjs.map +1 -0
  8. package/dist/chunk-QW2L5ARZ.cjs +9 -0
  9. package/dist/chunk-QW2L5ARZ.cjs.map +1 -0
  10. package/dist/concurrency.d.cts +14 -0
  11. package/dist/concurrency.d.ts +14 -0
  12. package/dist/de-73CTH2E4.cjs +2 -0
  13. package/dist/de-73CTH2E4.cjs.map +1 -0
  14. package/dist/de-GUUJUHYP.js +2 -0
  15. package/dist/de-GUUJUHYP.js.map +1 -0
  16. package/dist/deep-link.d.cts +14 -0
  17. package/dist/deep-link.d.ts +14 -0
  18. package/dist/email.d.cts +6 -3
  19. package/dist/email.d.ts +6 -3
  20. package/dist/errors.d.cts +18 -4
  21. package/dist/errors.d.ts +18 -4
  22. package/dist/{es-HEVFJPRI.js → es-3MXMSDUC.js} +2 -2
  23. package/dist/es-3MXMSDUC.js.map +1 -0
  24. package/dist/{es-5XQA3TPT.cjs → es-WJZ3XARH.cjs} +2 -2
  25. package/dist/es-WJZ3XARH.cjs.map +1 -0
  26. package/dist/filters.d.cts +31 -7
  27. package/dist/filters.d.ts +31 -7
  28. package/dist/fr-52F3ZCLQ.js +2 -0
  29. package/dist/fr-52F3ZCLQ.js.map +1 -0
  30. package/dist/fr-ZCRIJWI3.cjs +2 -0
  31. package/dist/fr-ZCRIJWI3.cjs.map +1 -0
  32. package/dist/i18n.d.cts +18 -0
  33. package/dist/i18n.d.ts +18 -0
  34. package/dist/index.cjs +3 -1588
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.cts +12 -1
  37. package/dist/index.d.ts +12 -1
  38. package/dist/index.global.js +4 -3389
  39. package/dist/index.global.js.map +1 -1
  40. package/dist/index.js +3 -1588
  41. package/dist/index.js.map +1 -1
  42. package/dist/it-MEUT3RCC.js +2 -0
  43. package/dist/it-MEUT3RCC.js.map +1 -0
  44. package/dist/it-TGUTW6MO.cjs +2 -0
  45. package/dist/it-TGUTW6MO.cjs.map +1 -0
  46. package/dist/ja-DOS7AWLW.cjs +2 -0
  47. package/dist/ja-DOS7AWLW.cjs.map +1 -0
  48. package/dist/ja-U7NRNGPQ.js +2 -0
  49. package/dist/ja-U7NRNGPQ.js.map +1 -0
  50. package/dist/panel-HGYK7HVK.cjs +2 -0
  51. package/dist/panel-HGYK7HVK.cjs.map +1 -0
  52. package/dist/panel-RE2IHZ4S.js +2 -0
  53. package/dist/panel-RE2IHZ4S.js.map +1 -0
  54. package/dist/panel-RHSIY6KS.cjs +2 -0
  55. package/dist/panel-RHSIY6KS.cjs.map +1 -0
  56. package/dist/panel-XVIF2WMU.js +2 -0
  57. package/dist/panel-XVIF2WMU.js.map +1 -0
  58. package/dist/pt-BZRBHCYN.cjs +2 -0
  59. package/dist/pt-BZRBHCYN.cjs.map +1 -0
  60. package/dist/pt-MOS5DVOG.js +2 -0
  61. package/dist/pt-MOS5DVOG.js.map +1 -0
  62. package/dist/react.cjs +3 -1588
  63. package/dist/react.cjs.map +1 -1
  64. package/dist/react.js +3 -1588
  65. package/dist/react.js.map +1 -1
  66. package/dist/ru-KDNRHHNZ.cjs +2 -0
  67. package/dist/ru-KDNRHHNZ.cjs.map +1 -0
  68. package/dist/ru-VSWB5NKK.js +2 -0
  69. package/dist/ru-VSWB5NKK.js.map +1 -0
  70. package/dist/schema.d.cts +54 -0
  71. package/dist/schema.d.ts +54 -0
  72. package/dist/screenshot-storage.d.cts +61 -19
  73. package/dist/screenshot-storage.d.ts +61 -19
  74. package/dist/siteping-core.d.cts +9 -6
  75. package/dist/siteping-core.d.ts +9 -6
  76. package/dist/store-helpers.d.cts +59 -15
  77. package/dist/store-helpers.d.ts +59 -15
  78. package/dist/type-utils.d.cts +8 -0
  79. package/dist/type-utils.d.ts +8 -0
  80. package/dist/types.d.cts +399 -33
  81. package/dist/types.d.ts +399 -33
  82. package/dist/wire.d.cts +35 -2
  83. package/dist/wire.d.ts +35 -2
  84. package/package.json +3 -1
  85. package/dist/chunk-AFLWWD6M.cjs +0 -1796
  86. package/dist/chunk-AFLWWD6M.cjs.map +0 -1
  87. package/dist/chunk-ATTI2TS4.js +0 -1796
  88. package/dist/chunk-ATTI2TS4.js.map +0 -1
  89. package/dist/chunk-BP5TH2CD.js +0 -1796
  90. package/dist/chunk-BP5TH2CD.js.map +0 -1
  91. package/dist/chunk-OSADAHGS.cjs +0 -1796
  92. package/dist/chunk-OSADAHGS.cjs.map +0 -1
  93. package/dist/de-AZUOIGF2.cjs +0 -2
  94. package/dist/de-AZUOIGF2.cjs.map +0 -1
  95. package/dist/de-MAGIJBFC.js +0 -2
  96. package/dist/de-MAGIJBFC.js.map +0 -1
  97. package/dist/es-5XQA3TPT.cjs.map +0 -1
  98. package/dist/es-HEVFJPRI.js.map +0 -1
  99. package/dist/fr-ERYSAH32.cjs +0 -2
  100. package/dist/fr-ERYSAH32.cjs.map +0 -1
  101. package/dist/fr-OM2PHLDH.js +0 -2
  102. package/dist/fr-OM2PHLDH.js.map +0 -1
  103. package/dist/it-NXAZR4K6.cjs +0 -2
  104. package/dist/it-NXAZR4K6.cjs.map +0 -1
  105. package/dist/it-OQVYHKKV.js +0 -2
  106. package/dist/it-OQVYHKKV.js.map +0 -1
  107. package/dist/panel-2FEECS2N.cjs +0 -2
  108. package/dist/panel-2FEECS2N.cjs.map +0 -1
  109. package/dist/panel-CSFFA5FF.cjs +0 -2
  110. package/dist/panel-CSFFA5FF.cjs.map +0 -1
  111. package/dist/panel-S2UR5BSD.js +0 -2
  112. package/dist/panel-S2UR5BSD.js.map +0 -1
  113. package/dist/panel-SGSUHR7V.js +0 -2
  114. package/dist/panel-SGSUHR7V.js.map +0 -1
  115. package/dist/pt-CODDT6VY.cjs +0 -2
  116. package/dist/pt-CODDT6VY.cjs.map +0 -1
  117. package/dist/pt-VUUNL42H.js +0 -2
  118. package/dist/pt-VUUNL42H.js.map +0 -1
  119. package/dist/ru-72WUEADV.cjs +0 -2
  120. package/dist/ru-72WUEADV.cjs.map +0 -1
  121. package/dist/ru-NDWY7Y36.js +0 -2
  122. package/dist/ru-NDWY7Y36.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ 'use strict';var e={"panel.title":"\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C","panel.ariaLabel":"\u041F\u0430\u043D\u0435\u043B\u044C \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0439 \u0441\u0432\u044F\u0437\u0438 Siteping","panel.feedbackList":"\u0421\u043F\u0438\u0441\u043E\u043A \u043E\u0442\u0437\u044B\u0432\u043E\u0432","panel.loading":"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043E\u0442\u0437\u044B\u0432\u043E\u0432","panel.close":"\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C","panel.deleteAll":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0451","panel.deleteAllConfirmTitle":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0451","panel.deleteAllConfirmMessage":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u043E\u0442\u0437\u044B\u0432\u044B \u044D\u0442\u043E\u0433\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0430? \u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435\u043E\u0431\u0440\u0430\u0442\u0438\u043C\u043E.","panel.search":"\u041F\u043E\u0438\u0441\u043A...","panel.searchAria":"\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u043E\u0442\u0437\u044B\u0432\u0430\u043C","panel.filterAll":"\u0412\u0441\u0435","panel.loadError":"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438","panel.retry":"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C","panel.empty":"\u041F\u043E\u043A\u0430 \u043D\u0435\u0442 \u043E\u0442\u0437\u044B\u0432\u043E\u0432","panel.showMore":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435","panel.showLess":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043C\u0435\u043D\u044C\u0448\u0435","panel.resolve":"\u0420\u0435\u0448\u0435\u043D\u043E","panel.reopen":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043D\u043E\u0432\u043E","panel.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","panel.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","panel.confirmDelete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","panel.loadMore":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0435\u0449\u0451 ({remaining} \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C)","panel.statusAll":"\u0412\u0441\u0435","panel.statusOpen":"\u041E\u0442\u043A\u0440\u044B\u0442","panel.statusResolved":"\u0420\u0435\u0448\u0451\u043D","panel.statusInProgress":"\u0412 \u0440\u0430\u0431\u043E\u0442\u0435","panel.statusWontFix":"\u041D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E","type.label":"\u0422\u0438\u043F","type.question":"\u0412\u043E\u043F\u0440\u043E\u0441","type.change":"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435","type.bug":"\u0411\u0430\u0433","type.other":"\u0414\u0440\u0443\u0433\u043E\u0435","status.label":"\u0421\u0442\u0430\u0442\u0443\u0441","scope.label":"\u041E\u0431\u043B\u0430\u0441\u0442\u044C","scope.thisPage":"\u042D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430","scope.thisType":"\u042D\u0442\u043E\u0442 \u0442\u0438\u043F","scope.all":"\u0412\u0441\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B","panel.filterMine":"\u041C\u043E\u0438","panel.filterMineHint":"\u0422\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u0437\u044B\u0432\u044B, \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0438\u0437 \u044D\u0442\u043E\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430","fab.aria":"Siteping \u2014 \u041C\u0435\u043D\u044E \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0439 \u0441\u0432\u044F\u0437\u0438","fab.messages":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C","fab.annotate":"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0430\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u044E","fab.annotations":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043B\u0438 \u0441\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u0442\u043A\u0438","annotator.instruction":"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0434\u043B\u044F \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F \u2014 \u0438\u043B\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 Enter, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442","annotator.instantInstruction":"\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043A \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435","annotator.touchInstruction":"\u041A\u043E\u0441\u043D\u0438\u0442\u0435\u0441\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0438\u043B\u0438 \u043F\u0440\u043E\u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u0430\u043B\u044C\u0446\u0435\u043C, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u043E\u0431\u043B\u0430\u0441\u0442\u044C","annotator.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","popup.ariaLabel":"\u0424\u043E\u0440\u043C\u0430 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0439 \u0441\u0432\u044F\u0437\u0438","popup.placeholder":"\u041E\u043F\u0438\u0448\u0438\u0442\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0443 \u0438\u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435...","popup.textareaAria":"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","popup.submitHintMac":"\u2318+Enter \u2014 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C","popup.submitHintOther":"Ctrl+Enter \u2014 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C","popup.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","popup.submit":"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C","identity.title":"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044C\u0442\u0435\u0441\u044C","identity.nameLabel":"\u0418\u043C\u044F","identity.namePlaceholder":"\u0412\u0430\u0448\u0435 \u0438\u043C\u044F","identity.emailLabel":"Email","identity.emailPlaceholder":"\u0432\u0430\u0448@email.com","identity.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","identity.submit":"\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C","marker.approximate":"\u041F\u0440\u0438\u0431\u043B\u0438\u0437\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0437\u0438\u0446\u0438\u044F (\u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C: {confidence}%)","marker.aria":"\u041E\u0442\u0437\u044B\u0432 #{number}: {type} \u2014 {message}","marker.count":"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043E \u043C\u0430\u0440\u043A\u0435\u0440\u043E\u0432 \u043E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","fab.badge":"\u041D\u0435\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0445 \u043E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","feedback.sent.confirmation":"\u041E\u0442\u0437\u044B\u0432 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D","feedback.error.message":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u0437\u044B\u0432","feedback.deleted.confirmation":"\u041E\u0442\u0437\u044B\u0432 \u0443\u0434\u0430\u043B\u0451\u043D","badge.count":"\u041D\u0435\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0445 \u043E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","bulk.selectAll":"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435","bulk.selected":"\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {count}","bulk.resolve":"\u0420\u0435\u0448\u0438\u0442\u044C","bulk.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","bulk.deselect":"\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0431\u043E\u0440","sort.newest":"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043D\u043E\u0432\u044B\u0435","sort.oldest":"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u0442\u0430\u0440\u044B\u0435","sort.byType":"\u041F\u043E \u0442\u0438\u043F\u0443","sort.openFirst":"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435","sort.label":"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430","group.byPage":"\u041F\u043E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435","group.feedbacks":"\u041E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","stats.open":"\u041E\u0442\u043A\u0440\u044B\u0442\u044B\u0435","stats.resolved":"\u0420\u0435\u0448\u0451\u043D\u043D\u044B\u0435","stats.bugs":"\u0411\u0430\u0433\u0438","stats.progress":"\u0420\u0435\u0448\u0435\u043D\u043E: {percent}%","detail.back":"\u041D\u0430\u0437\u0430\u0434","detail.title":"\u041E\u0442\u0437\u044B\u0432 #{number}","detail.status":"\u0421\u0442\u0430\u0442\u0443\u0441","detail.message":"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","detail.screenshot":"\u0421\u043A\u0440\u0438\u043D\u0448\u043E\u0442","detail.screenshotAlt":"\u0421\u043A\u0440\u0438\u043D\u0448\u043E\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438","detail.metadata":"\u0414\u0435\u0442\u0430\u043B\u0438","detail.annotation":"\u0410\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u044F","detail.page":"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430","detail.author":"\u0410\u0432\u0442\u043E\u0440","detail.date":"\u0421\u043E\u0437\u0434\u0430\u043D","detail.viewport":"Viewport","detail.browser":"\u0411\u0440\u0430\u0443\u0437\u0435\u0440","detail.resolvedAt":"\u0420\u0435\u0448\u0451\u043D","detail.closedAt":"\u0417\u0430\u043A\u0440\u044B\u0442","detail.goToAnnotation":"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0430\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u0438","detail.element":"\u042D\u043B\u0435\u043C\u0435\u043D\u0442","detail.selector":"\u0421\u0435\u043B\u0435\u043A\u0442\u043E\u0440","detail.position":"\u041F\u043E\u0437\u0438\u0446\u0438\u044F","detail.resolve":"\u0420\u0435\u0448\u0438\u0442\u044C","detail.reopen":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043D\u043E\u0432\u043E","detail.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","detail.diagnostics":"\u0414\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430","detail.diagnostics.console":"\u041A\u043E\u043D\u0441\u043E\u043B\u044C","detail.diagnostics.network":"\u0421\u0435\u0442\u0435\u0432\u044B\u0435 \u043E\u0448\u0438\u0431\u043A\u0438","detail.diagnostics.expand":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0443","detail.diagnostics.collapse":"\u0421\u043A\u0440\u044B\u0442\u044C \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0443","detail.diagnostics.noEntries":"\u041D\u0435\u0442 \u0437\u0430\u043F\u0438\u0441\u0435\u0439","comments.title":"\u041E\u0442\u0432\u0435\u0442\u044B","comments.placeholder":"\u041E\u0442\u0432\u0435\u0442\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0435...","comments.error":"\u041D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.","comments.full":"\u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E.","comments.team":"\u041A\u043E\u043C\u0430\u043D\u0434\u0430","shortcuts.title":"\u0413\u043E\u0440\u044F\u0447\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438","shortcuts.navigate":"\u041D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F \u043F\u043E \u043E\u0442\u0437\u044B\u0432\u0430\u043C","shortcuts.resolve":"\u0420\u0435\u0448\u0438\u0442\u044C / \u041F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C","shortcuts.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","shortcuts.search":"\u041F\u043E\u0438\u0441\u043A","shortcuts.select":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0431\u043E\u0440","shortcuts.help":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043A\u043B\u0430\u0432\u0438\u0448\u0438","shortcuts.close":"\u0417\u0430\u043A\u0440\u044B\u0442\u044C","shortcuts.hint":"\u0413\u043E\u0440\u044F\u0447\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438","export.label":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442","export.csv":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 CSV","export.json":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 JSON"};exports.ru=e;//# sourceMappingURL=ru-KDNRHHNZ.cjs.map
2
+ //# sourceMappingURL=ru-KDNRHHNZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/ru.ts"],"names":["ru"],"mappings":"aAEO,IAAMA,CAAAA,CAAmB,CAE9B,aAAA,CAAe,iFAAA,CACf,iBAAA,CAAmB,+HAAA,CACnB,oBAAA,CAAsB,iFAAA,CACtB,eAAA,CAAiB,6FAAA,CACjB,aAAA,CAAe,iFAAA,CACf,iBAAA,CAAmB,+DAAA,CACnB,6BAAA,CAA+B,+DAAA,CAC/B,+BAAA,CAAiC,iTAAA,CACjC,cAAA,CAAgB,mCAAA,CAChB,kBAAA,CAAoB,wFAAA,CACpB,iBAAA,CAAmB,oBAAA,CACnB,iBAAA,CAAmB,uFAAA,CACnB,aAAA,CAAe,wDAAA,CACf,cAAe,wFAAA,CACf,gBAAA,CAAkB,uFAAA,CAClB,gBAAA,CAAkB,uFAAA,CAClB,eAAA,CAAiB,sCAAA,CACjB,cAAA,CAAgB,iFAAA,CAChB,cAAA,CAAgB,4CAAA,CAChB,cAAA,CAAgB,sCAAA,CAChB,qBAAA,CAAuB,4CAAA,CACvB,gBAAA,CAAkB,oIAAA,CAGlB,iBAAA,CAAmB,oBAAA,CACnB,kBAAA,CAAoB,sCAAA,CACpB,sBAAA,CAAwB,gCAAA,CACxB,wBAAA,CAA0B,6CAAA,CAC1B,qBAAA,CAAuB,0GAAA,CAGvB,YAAA,CAAc,oBAAA,CACd,eAAA,CAAiB,sCAAA,CACjB,aAAA,CAAe,yDACf,UAAA,CAAY,oBAAA,CACZ,YAAA,CAAc,sCAAA,CAGd,cAAA,CAAgB,sCAAA,CAGhB,aAAA,CAAe,4CAAA,CACf,gBAAA,CAAkB,qEAAA,CAClB,gBAAA,CAAkB,6CAAA,CAClB,WAAA,CAAa,qEAAA,CAGb,kBAAA,CAAoB,oBAAA,CACpB,sBAAA,CAAwB,kPAAA,CAGxB,UAAA,CAAY,0HAAA,CACZ,cAAA,CAAgB,uFAAA,CAChB,cAAA,CAAgB,mGAAA,CAChB,iBAAA,CAAmB,yIAAA,CAGnB,uBAAA,CACE,whBAAA,CACF,8BAAA,CAAgC,iKAAA,CAChC,4BAAA,CAA8B,0VAAA,CAC9B,mBAAoB,sCAAA,CAGpB,iBAAA,CAAmB,gHAAA,CACnB,mBAAA,CAAqB,sLAAA,CACrB,oBAAA,CAAsB,wDAAA,CACtB,qBAAA,CAAuB,4EAAA,CACvB,uBAAA,CAAyB,0EAAA,CACzB,cAAA,CAAgB,sCAAA,CAChB,cAAA,CAAgB,wDAAA,CAGhB,gBAAA,CAAkB,gFAAA,CAClB,oBAAA,CAAsB,oBAAA,CACtB,0BAAA,CAA4B,6CAAA,CAC5B,qBAAA,CAAuB,OAAA,CACvB,2BAAA,CAA6B,8BAAA,CAC7B,iBAAA,CAAmB,sCAAA,CACnB,iBAAA,CAAmB,8DAAA,CAGnB,oBAAA,CAAsB,yMAAA,CACtB,aAAA,CAAe,oEACf,cAAA,CAAgB,mKAAA,CAGhB,WAAA,CAAa,kHAAA,CAGb,4BAAA,CAA8B,kIAAA,CAC9B,wBAAA,CAA0B,+IAAA,CAC1B,+BAAA,CAAiC,qEAAA,CAGjC,aAAA,CAAe,kHAAA,CAGf,gBAAA,CAAkB,+DAAA,CAClB,eAAA,CAAiB,qDAAA,CACjB,cAAA,CAAgB,sCAAA,CAChB,aAAA,CAAe,4CAAA,CACf,eAAA,CAAiB,+DAAA,CAGjB,aAAA,CAAe,2EAAA,CACf,aAAA,CAAe,iFAAA,CACf,aAAA,CAAe,uCAAA,CACf,gBAAA,CAAkB,6FAAA,CAClB,YAAA,CAAc,8DAAA,CACd,eAAgB,+DAAA,CAChB,iBAAA,CAAmB,qDAAA,CAGnB,YAAA,CAAc,kDAAA,CACd,gBAAA,CAAkB,kDAAA,CAClB,YAAA,CAAc,0BAAA,CACd,gBAAA,CAAkB,kDAAA,CAGlB,aAAA,CAAe,gCAAA,CACf,cAAA,CAAgB,0CAAA,CAChB,eAAA,CAAiB,sCAAA,CACjB,gBAAA,CAAkB,wDAAA,CAClB,mBAAA,CAAqB,kDAAA,CACrB,sBAAA,CAAwB,0JAAA,CACxB,iBAAA,CAAmB,sCAAA,CACnB,mBAAA,CAAqB,wDAAA,CACrB,aAAA,CAAe,kDAAA,CACf,eAAA,CAAiB,gCAAA,CACjB,aAAA,CAAe,uCACf,iBAAA,CAAmB,UAAA,CACnB,gBAAA,CAAkB,4CAAA,CAClB,mBAAA,CAAqB,gCAAA,CACrB,iBAAA,CAAmB,sCAAA,CACnB,uBAAA,CAAyB,0GAAA,CACzB,gBAAA,CAAkB,4CAAA,CAClB,iBAAA,CAAmB,kDAAA,CACnB,iBAAA,CAAmB,4CAAA,CACnB,gBAAA,CAAkB,sCAAA,CAClB,eAAA,CAAiB,iFAAA,CACjB,eAAA,CAAiB,4CAAA,CACjB,oBAAA,CAAsB,oEAAA,CACtB,4BAAA,CAA8B,4CAAA,CAC9B,4BAAA,CAA8B,iFAAA,CAC9B,2BAAA,CAA6B,qHAAA,CAC7B,6BAAA,CAA+B,yGAAA,CAC/B,+BAAgC,+DAAA,CAGhC,gBAAA,CAAkB,sCAAA,CAClB,sBAAA,CAAwB,gGAAA,CACxB,gBAAA,CAAkB,gLAAA,CAClB,eAAA,CAAiB,sHAAA,CACjB,eAAA,CAAiB,4CAAA,CAGjB,iBAAA,CAAmB,uFAAA,CACnB,oBAAA,CAAsB,gHAAA,CACtB,mBAAA,CAAqB,4GACrB,kBAAA,CAAoB,4CAAA,CACpB,kBAAA,CAAoB,gCAAA,CACpB,kBAAA,CAAoB,mGAAA,CACpB,gBAAA,CAAkB,6FAAA,CAClB,iBAAA,CAAmB,4CAAA,CACnB,gBAAA,CAAkB,uFAAA,CAGlB,cAAA,CAAgB,4CAAA,CAChB,YAAA,CAAc,uDAAA,CACd,cAAe,wDACjB","file":"ru-KDNRHHNZ.cjs","sourcesContent":["import type { Translations } from \"./types.js\";\n\nexport const ru: Translations = {\n // Panel\n \"panel.title\": \"Обратная связь\",\n \"panel.ariaLabel\": \"Панель обратной связи Siteping\",\n \"panel.feedbackList\": \"Список отзывов\",\n \"panel.loading\": \"Загрузка отзывов\",\n \"panel.close\": \"Закрыть панель\",\n \"panel.deleteAll\": \"Удалить всё\",\n \"panel.deleteAllConfirmTitle\": \"Удалить всё\",\n \"panel.deleteAllConfirmMessage\": \"Удалить все отзывы этого проекта? Это действие необратимо.\",\n \"panel.search\": \"Поиск...\",\n \"panel.searchAria\": \"Поиск по отзывам\",\n \"panel.filterAll\": \"Все\",\n \"panel.loadError\": \"Ошибка загрузки\",\n \"panel.retry\": \"Повторить\",\n \"panel.empty\": \"Пока нет отзывов\",\n \"panel.showMore\": \"Показать больше\",\n \"panel.showLess\": \"Показать меньше\",\n \"panel.resolve\": \"Решено\",\n \"panel.reopen\": \"Открыть заново\",\n \"panel.delete\": \"Удалить\",\n \"panel.cancel\": \"Отмена\",\n \"panel.confirmDelete\": \"Удалить\",\n \"panel.loadMore\": \"Показать ещё ({remaining} осталось)\",\n\n // Status filter labels\n \"panel.statusAll\": \"Все\",\n \"panel.statusOpen\": \"Открыт\",\n \"panel.statusResolved\": \"Решён\",\n \"panel.statusInProgress\": \"В работе\",\n \"panel.statusWontFix\": \"Не будет исправлено\",\n\n // Feedback type labels\n \"type.label\": \"Тип\",\n \"type.question\": \"Вопрос\",\n \"type.change\": \"Улучшение\",\n \"type.bug\": \"Баг\",\n \"type.other\": \"Другое\",\n\n // Status segmented control label\n \"status.label\": \"Статус\",\n\n // Page scope segmented control\n \"scope.label\": \"Область\",\n \"scope.thisPage\": \"Эта страница\",\n \"scope.thisType\": \"Этот тип\",\n \"scope.all\": \"Все страницы\",\n\n // \"Mine\" toggle\n \"panel.filterMine\": \"Мои\",\n \"panel.filterMineHint\": \"Только отзывы, отправленные из этого браузера\",\n\n // FAB menu\n \"fab.aria\": \"Siteping — Меню обратной связи\",\n \"fab.messages\": \"Показать панель\",\n \"fab.annotate\": \"Создать аннотацию\",\n \"fab.annotations\": \"Показать или скрыть метки\",\n\n // Annotator\n \"annotator.instruction\":\n \"Выделите область для комментария — или нажмите Enter, чтобы прокомментировать последний активный элемент\",\n \"annotator.instantInstruction\": \"Комментарий к выбранной точке\",\n \"annotator.touchInstruction\": \"Коснитесь элемента или проведите пальцем, чтобы выделить область\",\n \"annotator.cancel\": \"Отмена\",\n\n // Popup\n \"popup.ariaLabel\": \"Форма обратной связи\",\n \"popup.placeholder\": \"Опишите проблему или предложение...\",\n \"popup.textareaAria\": \"Сообщение\",\n \"popup.submitHintMac\": \"⌘+Enter — отправить\",\n \"popup.submitHintOther\": \"Ctrl+Enter — отправить\",\n \"popup.cancel\": \"Отмена\",\n \"popup.submit\": \"Отправить\",\n\n // Identity modal\n \"identity.title\": \"Представьтесь\",\n \"identity.nameLabel\": \"Имя\",\n \"identity.namePlaceholder\": \"Ваше имя\",\n \"identity.emailLabel\": \"Email\",\n \"identity.emailPlaceholder\": \"ваш@email.com\",\n \"identity.cancel\": \"Отмена\",\n \"identity.submit\": \"Продолжить\",\n\n // Markers\n \"marker.approximate\": \"Приблизительная позиция (точность: {confidence}%)\",\n \"marker.aria\": \"Отзыв #{number}: {type} — {message}\",\n \"marker.count\": \"Отображено маркеров отзывов: {count}\",\n\n // FAB badge\n \"fab.badge\": \"Нерешённых отзывов: {count}\",\n\n // Accessibility — screen reader announcements\n \"feedback.sent.confirmation\": \"Отзыв успешно отправлен\",\n \"feedback.error.message\": \"Не удалось отправить отзыв\",\n \"feedback.deleted.confirmation\": \"Отзыв удалён\",\n\n // Badge\n \"badge.count\": \"Нерешённых отзывов: {count}\",\n\n // Bulk actions toolbar\n \"bulk.selectAll\": \"Выбрать все\",\n \"bulk.selected\": \"Выбрано: {count}\",\n \"bulk.resolve\": \"Решить\",\n \"bulk.delete\": \"Удалить\",\n \"bulk.deselect\": \"Снять выбор\",\n\n // Sort and group controls\n \"sort.newest\": \"Сначала новые\",\n \"sort.oldest\": \"Сначала старые\",\n \"sort.byType\": \"По типу\",\n \"sort.openFirst\": \"Сначала открытые\",\n \"sort.label\": \"Сортировка\",\n \"group.byPage\": \"По странице\",\n \"group.feedbacks\": \"Отзывов: {count}\",\n\n // Stats bar\n \"stats.open\": \"Открытые\",\n \"stats.resolved\": \"Решённые\",\n \"stats.bugs\": \"Баги\",\n \"stats.progress\": \"Решено: {percent}%\",\n\n // Detail view\n \"detail.back\": \"Назад\",\n \"detail.title\": \"Отзыв #{number}\",\n \"detail.status\": \"Статус\",\n \"detail.message\": \"Сообщение\",\n \"detail.screenshot\": \"Скриншот\",\n \"detail.screenshotAlt\": \"Скриншот выделенной области\",\n \"detail.metadata\": \"Детали\",\n \"detail.annotation\": \"Аннотация\",\n \"detail.page\": \"Страница\",\n \"detail.author\": \"Автор\",\n \"detail.date\": \"Создан\",\n \"detail.viewport\": \"Viewport\",\n \"detail.browser\": \"Браузер\",\n \"detail.resolvedAt\": \"Решён\",\n \"detail.closedAt\": \"Закрыт\",\n \"detail.goToAnnotation\": \"Перейти к аннотации\",\n \"detail.element\": \"Элемент\",\n \"detail.selector\": \"Селектор\",\n \"detail.position\": \"Позиция\",\n \"detail.resolve\": \"Решить\",\n \"detail.reopen\": \"Открыть заново\",\n \"detail.delete\": \"Удалить\",\n \"detail.diagnostics\": \"Диагностика\",\n \"detail.diagnostics.console\": \"Консоль\",\n \"detail.diagnostics.network\": \"Сетевые ошибки\",\n \"detail.diagnostics.expand\": \"Показать диагностику\",\n \"detail.diagnostics.collapse\": \"Скрыть диагностику\",\n \"detail.diagnostics.noEntries\": \"Нет записей\",\n\n // Discussion thread (detail view)\n \"comments.title\": \"Ответы\",\n \"comments.placeholder\": \"Ответить команде...\",\n \"comments.error\": \"Не отправлено. Попробуйте ещё раз.\",\n \"comments.full\": \"Обсуждение заполнено.\",\n \"comments.team\": \"Команда\",\n\n // Keyboard shortcuts overlay\n \"shortcuts.title\": \"Горячие клавиши\",\n \"shortcuts.navigate\": \"Навигация по отзывам\",\n \"shortcuts.resolve\": \"Решить / Переоткрыть\",\n \"shortcuts.delete\": \"Удалить\",\n \"shortcuts.search\": \"Поиск\",\n \"shortcuts.select\": \"Переключить выбор\",\n \"shortcuts.help\": \"Показать клавиши\",\n \"shortcuts.close\": \"Закрыть\",\n \"shortcuts.hint\": \"Горячие клавиши\",\n\n // Export controls\n \"export.label\": \"Экспорт\",\n \"export.csv\": \"Экспорт в CSV\",\n \"export.json\": \"Экспорт в JSON\",\n};\n"]}
@@ -0,0 +1,2 @@
1
+ var e={"panel.title":"\u041E\u0431\u0440\u0430\u0442\u043D\u0430\u044F \u0441\u0432\u044F\u0437\u044C","panel.ariaLabel":"\u041F\u0430\u043D\u0435\u043B\u044C \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0439 \u0441\u0432\u044F\u0437\u0438 Siteping","panel.feedbackList":"\u0421\u043F\u0438\u0441\u043E\u043A \u043E\u0442\u0437\u044B\u0432\u043E\u0432","panel.loading":"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430 \u043E\u0442\u0437\u044B\u0432\u043E\u0432","panel.close":"\u0417\u0430\u043A\u0440\u044B\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C","panel.deleteAll":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0451","panel.deleteAllConfirmTitle":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0451","panel.deleteAllConfirmMessage":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0432\u0441\u0435 \u043E\u0442\u0437\u044B\u0432\u044B \u044D\u0442\u043E\u0433\u043E \u043F\u0440\u043E\u0435\u043A\u0442\u0430? \u042D\u0442\u043E \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u043D\u0435\u043E\u0431\u0440\u0430\u0442\u0438\u043C\u043E.","panel.search":"\u041F\u043E\u0438\u0441\u043A...","panel.searchAria":"\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u043E\u0442\u0437\u044B\u0432\u0430\u043C","panel.filterAll":"\u0412\u0441\u0435","panel.loadError":"\u041E\u0448\u0438\u0431\u043A\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043A\u0438","panel.retry":"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C","panel.empty":"\u041F\u043E\u043A\u0430 \u043D\u0435\u0442 \u043E\u0442\u0437\u044B\u0432\u043E\u0432","panel.showMore":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0431\u043E\u043B\u044C\u0448\u0435","panel.showLess":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043C\u0435\u043D\u044C\u0448\u0435","panel.resolve":"\u0420\u0435\u0448\u0435\u043D\u043E","panel.reopen":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043D\u043E\u0432\u043E","panel.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","panel.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","panel.confirmDelete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","panel.loadMore":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0435\u0449\u0451 ({remaining} \u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C)","panel.statusAll":"\u0412\u0441\u0435","panel.statusOpen":"\u041E\u0442\u043A\u0440\u044B\u0442","panel.statusResolved":"\u0420\u0435\u0448\u0451\u043D","panel.statusInProgress":"\u0412 \u0440\u0430\u0431\u043E\u0442\u0435","panel.statusWontFix":"\u041D\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E","type.label":"\u0422\u0438\u043F","type.question":"\u0412\u043E\u043F\u0440\u043E\u0441","type.change":"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435","type.bug":"\u0411\u0430\u0433","type.other":"\u0414\u0440\u0443\u0433\u043E\u0435","status.label":"\u0421\u0442\u0430\u0442\u0443\u0441","scope.label":"\u041E\u0431\u043B\u0430\u0441\u0442\u044C","scope.thisPage":"\u042D\u0442\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430","scope.thisType":"\u042D\u0442\u043E\u0442 \u0442\u0438\u043F","scope.all":"\u0412\u0441\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B","panel.filterMine":"\u041C\u043E\u0438","panel.filterMineHint":"\u0422\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u0437\u044B\u0432\u044B, \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0438\u0437 \u044D\u0442\u043E\u0433\u043E \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430","fab.aria":"Siteping \u2014 \u041C\u0435\u043D\u044E \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0439 \u0441\u0432\u044F\u0437\u0438","fab.messages":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0430\u043D\u0435\u043B\u044C","fab.annotate":"\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0430\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u044E","fab.annotations":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0438\u043B\u0438 \u0441\u043A\u0440\u044B\u0442\u044C \u043C\u0435\u0442\u043A\u0438","annotator.instruction":"\u0412\u044B\u0434\u0435\u043B\u0438\u0442\u0435 \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0434\u043B\u044F \u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u044F \u2014 \u0438\u043B\u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 Enter, \u0447\u0442\u043E\u0431\u044B \u043F\u0440\u043E\u043A\u043E\u043C\u043C\u0435\u043D\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0438\u0439 \u0430\u043A\u0442\u0438\u0432\u043D\u044B\u0439 \u044D\u043B\u0435\u043C\u0435\u043D\u0442","annotator.instantInstruction":"\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439 \u043A \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u0439 \u0442\u043E\u0447\u043A\u0435","annotator.touchInstruction":"\u041A\u043E\u0441\u043D\u0438\u0442\u0435\u0441\u044C \u044D\u043B\u0435\u043C\u0435\u043D\u0442\u0430 \u0438\u043B\u0438 \u043F\u0440\u043E\u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u0430\u043B\u044C\u0446\u0435\u043C, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u0434\u0435\u043B\u0438\u0442\u044C \u043E\u0431\u043B\u0430\u0441\u0442\u044C","annotator.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","popup.ariaLabel":"\u0424\u043E\u0440\u043C\u0430 \u043E\u0431\u0440\u0430\u0442\u043D\u043E\u0439 \u0441\u0432\u044F\u0437\u0438","popup.placeholder":"\u041E\u043F\u0438\u0448\u0438\u0442\u0435 \u043F\u0440\u043E\u0431\u043B\u0435\u043C\u0443 \u0438\u043B\u0438 \u043F\u0440\u0435\u0434\u043B\u043E\u0436\u0435\u043D\u0438\u0435...","popup.textareaAria":"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","popup.submitHintMac":"\u2318+Enter \u2014 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C","popup.submitHintOther":"Ctrl+Enter \u2014 \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C","popup.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","popup.submit":"\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C","identity.title":"\u041F\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044C\u0442\u0435\u0441\u044C","identity.nameLabel":"\u0418\u043C\u044F","identity.namePlaceholder":"\u0412\u0430\u0448\u0435 \u0438\u043C\u044F","identity.emailLabel":"Email","identity.emailPlaceholder":"\u0432\u0430\u0448@email.com","identity.cancel":"\u041E\u0442\u043C\u0435\u043D\u0430","identity.submit":"\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C","marker.approximate":"\u041F\u0440\u0438\u0431\u043B\u0438\u0437\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u043F\u043E\u0437\u0438\u0446\u0438\u044F (\u0442\u043E\u0447\u043D\u043E\u0441\u0442\u044C: {confidence}%)","marker.aria":"\u041E\u0442\u0437\u044B\u0432 #{number}: {type} \u2014 {message}","marker.count":"\u041E\u0442\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043E \u043C\u0430\u0440\u043A\u0435\u0440\u043E\u0432 \u043E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","fab.badge":"\u041D\u0435\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0445 \u043E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","feedback.sent.confirmation":"\u041E\u0442\u0437\u044B\u0432 \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D","feedback.error.message":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u043F\u0440\u0430\u0432\u0438\u0442\u044C \u043E\u0442\u0437\u044B\u0432","feedback.deleted.confirmation":"\u041E\u0442\u0437\u044B\u0432 \u0443\u0434\u0430\u043B\u0451\u043D","badge.count":"\u041D\u0435\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0445 \u043E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","bulk.selectAll":"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435","bulk.selected":"\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {count}","bulk.resolve":"\u0420\u0435\u0448\u0438\u0442\u044C","bulk.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","bulk.deselect":"\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0431\u043E\u0440","sort.newest":"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043D\u043E\u0432\u044B\u0435","sort.oldest":"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u0441\u0442\u0430\u0440\u044B\u0435","sort.byType":"\u041F\u043E \u0442\u0438\u043F\u0443","sort.openFirst":"\u0421\u043D\u0430\u0447\u0430\u043B\u0430 \u043E\u0442\u043A\u0440\u044B\u0442\u044B\u0435","sort.label":"\u0421\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u043A\u0430","group.byPage":"\u041F\u043E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435","group.feedbacks":"\u041E\u0442\u0437\u044B\u0432\u043E\u0432: {count}","stats.open":"\u041E\u0442\u043A\u0440\u044B\u0442\u044B\u0435","stats.resolved":"\u0420\u0435\u0448\u0451\u043D\u043D\u044B\u0435","stats.bugs":"\u0411\u0430\u0433\u0438","stats.progress":"\u0420\u0435\u0448\u0435\u043D\u043E: {percent}%","detail.back":"\u041D\u0430\u0437\u0430\u0434","detail.title":"\u041E\u0442\u0437\u044B\u0432 #{number}","detail.status":"\u0421\u0442\u0430\u0442\u0443\u0441","detail.message":"\u0421\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435","detail.screenshot":"\u0421\u043A\u0440\u0438\u043D\u0448\u043E\u0442","detail.screenshotAlt":"\u0421\u043A\u0440\u0438\u043D\u0448\u043E\u0442 \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u043D\u043E\u0439 \u043E\u0431\u043B\u0430\u0441\u0442\u0438","detail.metadata":"\u0414\u0435\u0442\u0430\u043B\u0438","detail.annotation":"\u0410\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u044F","detail.page":"\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430","detail.author":"\u0410\u0432\u0442\u043E\u0440","detail.date":"\u0421\u043E\u0437\u0434\u0430\u043D","detail.viewport":"Viewport","detail.browser":"\u0411\u0440\u0430\u0443\u0437\u0435\u0440","detail.resolvedAt":"\u0420\u0435\u0448\u0451\u043D","detail.closedAt":"\u0417\u0430\u043A\u0440\u044B\u0442","detail.goToAnnotation":"\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043A \u0430\u043D\u043D\u043E\u0442\u0430\u0446\u0438\u0438","detail.element":"\u042D\u043B\u0435\u043C\u0435\u043D\u0442","detail.selector":"\u0421\u0435\u043B\u0435\u043A\u0442\u043E\u0440","detail.position":"\u041F\u043E\u0437\u0438\u0446\u0438\u044F","detail.resolve":"\u0420\u0435\u0448\u0438\u0442\u044C","detail.reopen":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0437\u0430\u043D\u043E\u0432\u043E","detail.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","detail.diagnostics":"\u0414\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0430","detail.diagnostics.console":"\u041A\u043E\u043D\u0441\u043E\u043B\u044C","detail.diagnostics.network":"\u0421\u0435\u0442\u0435\u0432\u044B\u0435 \u043E\u0448\u0438\u0431\u043A\u0438","detail.diagnostics.expand":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0443","detail.diagnostics.collapse":"\u0421\u043A\u0440\u044B\u0442\u044C \u0434\u0438\u0430\u0433\u043D\u043E\u0441\u0442\u0438\u043A\u0443","detail.diagnostics.noEntries":"\u041D\u0435\u0442 \u0437\u0430\u043F\u0438\u0441\u0435\u0439","comments.title":"\u041E\u0442\u0432\u0435\u0442\u044B","comments.placeholder":"\u041E\u0442\u0432\u0435\u0442\u0438\u0442\u044C \u043A\u043E\u043C\u0430\u043D\u0434\u0435...","comments.error":"\u041D\u0435 \u043E\u0442\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u043E. \u041F\u043E\u043F\u0440\u043E\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.","comments.full":"\u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u043E\u043B\u043D\u0435\u043D\u043E.","comments.team":"\u041A\u043E\u043C\u0430\u043D\u0434\u0430","shortcuts.title":"\u0413\u043E\u0440\u044F\u0447\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438","shortcuts.navigate":"\u041D\u0430\u0432\u0438\u0433\u0430\u0446\u0438\u044F \u043F\u043E \u043E\u0442\u0437\u044B\u0432\u0430\u043C","shortcuts.resolve":"\u0420\u0435\u0448\u0438\u0442\u044C / \u041F\u0435\u0440\u0435\u043E\u0442\u043A\u0440\u044B\u0442\u044C","shortcuts.delete":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C","shortcuts.search":"\u041F\u043E\u0438\u0441\u043A","shortcuts.select":"\u041F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0432\u044B\u0431\u043E\u0440","shortcuts.help":"\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043A\u043B\u0430\u0432\u0438\u0448\u0438","shortcuts.close":"\u0417\u0430\u043A\u0440\u044B\u0442\u044C","shortcuts.hint":"\u0413\u043E\u0440\u044F\u0447\u0438\u0435 \u043A\u043B\u0430\u0432\u0438\u0448\u0438","export.label":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442","export.csv":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 CSV","export.json":"\u042D\u043A\u0441\u043F\u043E\u0440\u0442 \u0432 JSON"};export{e as ru};//# sourceMappingURL=ru-VSWB5NKK.js.map
2
+ //# sourceMappingURL=ru-VSWB5NKK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/i18n/ru.ts"],"names":["ru"],"mappings":"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","file":"ru-VSWB5NKK.js","sourcesContent":["import type { Translations } from \"./types.js\";\n\nexport const ru: Translations = {\n // Panel\n \"panel.title\": \"Обратная связь\",\n \"panel.ariaLabel\": \"Панель обратной связи Siteping\",\n \"panel.feedbackList\": \"Список отзывов\",\n \"panel.loading\": \"Загрузка отзывов\",\n \"panel.close\": \"Закрыть панель\",\n \"panel.deleteAll\": \"Удалить всё\",\n \"panel.deleteAllConfirmTitle\": \"Удалить всё\",\n \"panel.deleteAllConfirmMessage\": \"Удалить все отзывы этого проекта? Это действие необратимо.\",\n \"panel.search\": \"Поиск...\",\n \"panel.searchAria\": \"Поиск по отзывам\",\n \"panel.filterAll\": \"Все\",\n \"panel.loadError\": \"Ошибка загрузки\",\n \"panel.retry\": \"Повторить\",\n \"panel.empty\": \"Пока нет отзывов\",\n \"panel.showMore\": \"Показать больше\",\n \"panel.showLess\": \"Показать меньше\",\n \"panel.resolve\": \"Решено\",\n \"panel.reopen\": \"Открыть заново\",\n \"panel.delete\": \"Удалить\",\n \"panel.cancel\": \"Отмена\",\n \"panel.confirmDelete\": \"Удалить\",\n \"panel.loadMore\": \"Показать ещё ({remaining} осталось)\",\n\n // Status filter labels\n \"panel.statusAll\": \"Все\",\n \"panel.statusOpen\": \"Открыт\",\n \"panel.statusResolved\": \"Решён\",\n \"panel.statusInProgress\": \"В работе\",\n \"panel.statusWontFix\": \"Не будет исправлено\",\n\n // Feedback type labels\n \"type.label\": \"Тип\",\n \"type.question\": \"Вопрос\",\n \"type.change\": \"Улучшение\",\n \"type.bug\": \"Баг\",\n \"type.other\": \"Другое\",\n\n // Status segmented control label\n \"status.label\": \"Статус\",\n\n // Page scope segmented control\n \"scope.label\": \"Область\",\n \"scope.thisPage\": \"Эта страница\",\n \"scope.thisType\": \"Этот тип\",\n \"scope.all\": \"Все страницы\",\n\n // \"Mine\" toggle\n \"panel.filterMine\": \"Мои\",\n \"panel.filterMineHint\": \"Только отзывы, отправленные из этого браузера\",\n\n // FAB menu\n \"fab.aria\": \"Siteping — Меню обратной связи\",\n \"fab.messages\": \"Показать панель\",\n \"fab.annotate\": \"Создать аннотацию\",\n \"fab.annotations\": \"Показать или скрыть метки\",\n\n // Annotator\n \"annotator.instruction\":\n \"Выделите область для комментария — или нажмите Enter, чтобы прокомментировать последний активный элемент\",\n \"annotator.instantInstruction\": \"Комментарий к выбранной точке\",\n \"annotator.touchInstruction\": \"Коснитесь элемента или проведите пальцем, чтобы выделить область\",\n \"annotator.cancel\": \"Отмена\",\n\n // Popup\n \"popup.ariaLabel\": \"Форма обратной связи\",\n \"popup.placeholder\": \"Опишите проблему или предложение...\",\n \"popup.textareaAria\": \"Сообщение\",\n \"popup.submitHintMac\": \"⌘+Enter — отправить\",\n \"popup.submitHintOther\": \"Ctrl+Enter — отправить\",\n \"popup.cancel\": \"Отмена\",\n \"popup.submit\": \"Отправить\",\n\n // Identity modal\n \"identity.title\": \"Представьтесь\",\n \"identity.nameLabel\": \"Имя\",\n \"identity.namePlaceholder\": \"Ваше имя\",\n \"identity.emailLabel\": \"Email\",\n \"identity.emailPlaceholder\": \"ваш@email.com\",\n \"identity.cancel\": \"Отмена\",\n \"identity.submit\": \"Продолжить\",\n\n // Markers\n \"marker.approximate\": \"Приблизительная позиция (точность: {confidence}%)\",\n \"marker.aria\": \"Отзыв #{number}: {type} — {message}\",\n \"marker.count\": \"Отображено маркеров отзывов: {count}\",\n\n // FAB badge\n \"fab.badge\": \"Нерешённых отзывов: {count}\",\n\n // Accessibility — screen reader announcements\n \"feedback.sent.confirmation\": \"Отзыв успешно отправлен\",\n \"feedback.error.message\": \"Не удалось отправить отзыв\",\n \"feedback.deleted.confirmation\": \"Отзыв удалён\",\n\n // Badge\n \"badge.count\": \"Нерешённых отзывов: {count}\",\n\n // Bulk actions toolbar\n \"bulk.selectAll\": \"Выбрать все\",\n \"bulk.selected\": \"Выбрано: {count}\",\n \"bulk.resolve\": \"Решить\",\n \"bulk.delete\": \"Удалить\",\n \"bulk.deselect\": \"Снять выбор\",\n\n // Sort and group controls\n \"sort.newest\": \"Сначала новые\",\n \"sort.oldest\": \"Сначала старые\",\n \"sort.byType\": \"По типу\",\n \"sort.openFirst\": \"Сначала открытые\",\n \"sort.label\": \"Сортировка\",\n \"group.byPage\": \"По странице\",\n \"group.feedbacks\": \"Отзывов: {count}\",\n\n // Stats bar\n \"stats.open\": \"Открытые\",\n \"stats.resolved\": \"Решённые\",\n \"stats.bugs\": \"Баги\",\n \"stats.progress\": \"Решено: {percent}%\",\n\n // Detail view\n \"detail.back\": \"Назад\",\n \"detail.title\": \"Отзыв #{number}\",\n \"detail.status\": \"Статус\",\n \"detail.message\": \"Сообщение\",\n \"detail.screenshot\": \"Скриншот\",\n \"detail.screenshotAlt\": \"Скриншот выделенной области\",\n \"detail.metadata\": \"Детали\",\n \"detail.annotation\": \"Аннотация\",\n \"detail.page\": \"Страница\",\n \"detail.author\": \"Автор\",\n \"detail.date\": \"Создан\",\n \"detail.viewport\": \"Viewport\",\n \"detail.browser\": \"Браузер\",\n \"detail.resolvedAt\": \"Решён\",\n \"detail.closedAt\": \"Закрыт\",\n \"detail.goToAnnotation\": \"Перейти к аннотации\",\n \"detail.element\": \"Элемент\",\n \"detail.selector\": \"Селектор\",\n \"detail.position\": \"Позиция\",\n \"detail.resolve\": \"Решить\",\n \"detail.reopen\": \"Открыть заново\",\n \"detail.delete\": \"Удалить\",\n \"detail.diagnostics\": \"Диагностика\",\n \"detail.diagnostics.console\": \"Консоль\",\n \"detail.diagnostics.network\": \"Сетевые ошибки\",\n \"detail.diagnostics.expand\": \"Показать диагностику\",\n \"detail.diagnostics.collapse\": \"Скрыть диагностику\",\n \"detail.diagnostics.noEntries\": \"Нет записей\",\n\n // Discussion thread (detail view)\n \"comments.title\": \"Ответы\",\n \"comments.placeholder\": \"Ответить команде...\",\n \"comments.error\": \"Не отправлено. Попробуйте ещё раз.\",\n \"comments.full\": \"Обсуждение заполнено.\",\n \"comments.team\": \"Команда\",\n\n // Keyboard shortcuts overlay\n \"shortcuts.title\": \"Горячие клавиши\",\n \"shortcuts.navigate\": \"Навигация по отзывам\",\n \"shortcuts.resolve\": \"Решить / Переоткрыть\",\n \"shortcuts.delete\": \"Удалить\",\n \"shortcuts.search\": \"Поиск\",\n \"shortcuts.select\": \"Переключить выбор\",\n \"shortcuts.help\": \"Показать клавиши\",\n \"shortcuts.close\": \"Закрыть\",\n \"shortcuts.hint\": \"Горячие клавиши\",\n\n // Export controls\n \"export.label\": \"Экспорт\",\n \"export.csv\": \"Экспорт в CSV\",\n \"export.json\": \"Экспорт в JSON\",\n};\n"]}
package/dist/schema.d.cts CHANGED
@@ -149,6 +149,13 @@ declare const _SITEPING_MODELS: {
149
149
  readonly model: "SitepingAnnotation";
150
150
  };
151
151
  };
152
+ readonly comments: {
153
+ readonly type: "SitepingComment";
154
+ readonly relation: {
155
+ readonly kind: "1-to-many";
156
+ readonly model: "SitepingComment";
157
+ };
158
+ };
152
159
  };
153
160
  readonly indexes: readonly [{
154
161
  readonly fields: readonly ["projectName"];
@@ -253,6 +260,53 @@ declare const _SITEPING_MODELS: {
253
260
  readonly fields: readonly ["feedbackId"];
254
261
  }];
255
262
  };
263
+ readonly SitepingComment: {
264
+ readonly fields: {
265
+ readonly id: {
266
+ readonly type: "String";
267
+ readonly isId: true;
268
+ readonly default: "cuid()";
269
+ };
270
+ readonly feedbackId: {
271
+ readonly type: "String";
272
+ };
273
+ readonly feedback: {
274
+ readonly type: "SitepingFeedback";
275
+ readonly relation: {
276
+ readonly kind: "many-to-1";
277
+ readonly model: "SitepingFeedback";
278
+ readonly fields: readonly ["feedbackId"];
279
+ readonly references: readonly ["id"];
280
+ readonly onDelete: "Cascade";
281
+ };
282
+ };
283
+ readonly body: {
284
+ readonly type: "String";
285
+ readonly nativeType: "Text";
286
+ };
287
+ readonly authorName: {
288
+ readonly type: "String";
289
+ };
290
+ readonly authorEmail: {
291
+ readonly type: "String";
292
+ };
293
+ readonly authorRole: {
294
+ readonly type: "String";
295
+ readonly default: "\"client\"";
296
+ };
297
+ readonly clientId: {
298
+ readonly type: "String";
299
+ readonly isUnique: true;
300
+ };
301
+ readonly createdAt: {
302
+ readonly type: "DateTime";
303
+ readonly default: "now()";
304
+ };
305
+ };
306
+ readonly indexes: readonly [{
307
+ readonly fields: readonly ["feedbackId", "createdAt"];
308
+ }];
309
+ };
256
310
  };
257
311
  /** Map of Siteping models keyed by model name — frozen at runtime. */
258
312
  export declare const SITEPING_MODELS: typeof _SITEPING_MODELS;
package/dist/schema.d.ts CHANGED
@@ -149,6 +149,13 @@ declare const _SITEPING_MODELS: {
149
149
  readonly model: "SitepingAnnotation";
150
150
  };
151
151
  };
152
+ readonly comments: {
153
+ readonly type: "SitepingComment";
154
+ readonly relation: {
155
+ readonly kind: "1-to-many";
156
+ readonly model: "SitepingComment";
157
+ };
158
+ };
152
159
  };
153
160
  readonly indexes: readonly [{
154
161
  readonly fields: readonly ["projectName"];
@@ -253,6 +260,53 @@ declare const _SITEPING_MODELS: {
253
260
  readonly fields: readonly ["feedbackId"];
254
261
  }];
255
262
  };
263
+ readonly SitepingComment: {
264
+ readonly fields: {
265
+ readonly id: {
266
+ readonly type: "String";
267
+ readonly isId: true;
268
+ readonly default: "cuid()";
269
+ };
270
+ readonly feedbackId: {
271
+ readonly type: "String";
272
+ };
273
+ readonly feedback: {
274
+ readonly type: "SitepingFeedback";
275
+ readonly relation: {
276
+ readonly kind: "many-to-1";
277
+ readonly model: "SitepingFeedback";
278
+ readonly fields: readonly ["feedbackId"];
279
+ readonly references: readonly ["id"];
280
+ readonly onDelete: "Cascade";
281
+ };
282
+ };
283
+ readonly body: {
284
+ readonly type: "String";
285
+ readonly nativeType: "Text";
286
+ };
287
+ readonly authorName: {
288
+ readonly type: "String";
289
+ };
290
+ readonly authorEmail: {
291
+ readonly type: "String";
292
+ };
293
+ readonly authorRole: {
294
+ readonly type: "String";
295
+ readonly default: "\"client\"";
296
+ };
297
+ readonly clientId: {
298
+ readonly type: "String";
299
+ readonly isUnique: true;
300
+ };
301
+ readonly createdAt: {
302
+ readonly type: "DateTime";
303
+ readonly default: "now()";
304
+ };
305
+ };
306
+ readonly indexes: readonly [{
307
+ readonly fields: readonly ["feedbackId", "createdAt"];
308
+ }];
309
+ };
256
310
  };
257
311
  /** Map of Siteping models keyed by model name — frozen at runtime. */
258
312
  export declare const SITEPING_MODELS: typeof _SITEPING_MODELS;
@@ -1,16 +1,17 @@
1
1
  /**
2
2
  * Pluggable storage for feedback screenshots.
3
3
  *
4
- * `adapter-prisma` accepts an optional `screenshotStorage` config. When
5
- * provided, the adapter forwards the widget-supplied data URL to `upload()`
6
- * and persists the returned URL on `Feedback.screenshotUrl`. When not
7
- * provided, the adapter falls back to inline base64 (with a one-time warn) —
8
- * fine for dev and small deployments, a footgun for production Postgres.
4
+ * `adapter-prisma` and `adapter-drizzle` accept an optional
5
+ * `screenshotStorage` config. When provided, the adapter forwards the
6
+ * widget-supplied data URL to `upload()` and persists the returned URL on
7
+ * `Feedback.screenshotUrl`. When not provided, the adapter falls back to
8
+ * inline base64 (with a one-time warn) — fine for dev and small
9
+ * deployments, a footgun for production Postgres.
9
10
  *
10
- * Implementations typically wrap an object store: S3, Cloudflare R2,
11
- * Backblaze B2, Cloudflare Images, local filesystem, etc. They are
12
- * intentionally not shipped from this package — wire your own based on
13
- * existing infra.
11
+ * `@siteping/screenshot-storage` implements it over any S3-compatible
12
+ * bucket (AWS S3, Cloudflare R2, Backblaze B2, MinIO…), Cloudflare Images,
13
+ * a database table, the local filesystem or memory. Implement it yourself
14
+ * for anything else.
14
15
  *
15
16
  * @example
16
17
  * ```ts
@@ -19,11 +20,11 @@
19
20
  *
20
21
  * const s3 = new S3Client({ region: "eu-west-3" });
21
22
  * const screenshotStorage: ScreenshotStorage = {
22
- * async upload(dataUrl, ctx) {
23
- * const buf = Buffer.from(dataUrl.split(",")[1], "base64");
24
- * const key = `feedback/${ctx.feedbackId}.jpg`;
23
+ * async upload(dataUrl, { mimeType }) {
24
+ * const body = Buffer.from(dataUrl.slice(dataUrl.indexOf(",") + 1), "base64");
25
+ * const key = `siteping/${crypto.randomUUID()}`; // fresh per upload, see URL ownership
25
26
  * await s3.send(new PutObjectCommand({
26
- * Bucket: "my-bucket", Key: key, Body: buf, ContentType: ctx.mimeType,
27
+ * Bucket: "my-bucket", Key: key, Body: body, ContentType: mimeType,
27
28
  * }));
28
29
  * return { url: `https://cdn.example.com/${key}` };
29
30
  * },
@@ -41,10 +42,26 @@ export interface ScreenshotStorage {
41
42
  * Adapters call this synchronously inside `createFeedback` — keep it
42
43
  * fast or move to a queue if needed.
43
44
  *
44
- * **Security note:** `ctx.feedbackId` is the *client-generated* id
45
- * (`clientId`) — the record id does not exist yet at upload time. Treat it
46
- * as attacker-controlled: sanitize before using it in filesystem paths or
47
- * object keys, even though server adapters validate its shape upstream.
45
+ * `ctx.feedbackId` identifies the upload. Adapters that upload before the
46
+ * record exists pass the *client-generated* `clientId` (Prisma); the
47
+ * Drizzle adapter passes the server-generated id the create attempt will
48
+ * insert the record under.
49
+ *
50
+ * **URL ownership:** every call must return a URL no other call returns —
51
+ * key the object by a fresh random value (`crypto.randomUUID()`, as the
52
+ * example does), never by `ctx.feedbackId` alone nor by a content hash.
53
+ * Adapters treat each URL as the property of the one record that stores it
54
+ * and may pass it to `delete` once that record is deleted, or once its
55
+ * create lost a race: two submissions of one `clientId` both upload, and
56
+ * the object of the one that is not stored is deleted. Under Prisma,
57
+ * `ctx.feedbackId` is that client-supplied `clientId`, so an object keyed
58
+ * by it is rewritten by every replay — a retry, or anyone who learns the
59
+ * id — and a URL shared by several records lets deleting one remove the
60
+ * object another still points at.
61
+ *
62
+ * **Security note:** treat `ctx.feedbackId` as attacker-controlled:
63
+ * sanitize before using it in filesystem paths or object keys, even though
64
+ * server adapters validate its shape upstream.
48
65
  */
49
66
  upload(dataUrl: string, ctx: {
50
67
  feedbackId: string;
@@ -53,9 +70,34 @@ export interface ScreenshotStorage {
53
70
  url: string;
54
71
  }>;
55
72
  /**
56
- * Optional cleanup hook called when the feedback is deleted. Adapters
57
- * call this best-effort and swallow errors — orphaned objects are
73
+ * Optional cleanup hook called when the feedback is deleted, and for an
74
+ * object uploaded by a create whose record was not stored: one rejected
75
+ * because its `clientId` is already stored, or — in adapters that key
76
+ * uploads per attempt, like Drizzle — one whose insert failed. An object a
77
+ * stored row still references (a deterministic key reused by the replay)
78
+ * is kept. Receives only URLs returned by {@link ScreenshotStorage.upload}.
79
+ * Adapters call this best-effort and swallow errors — orphaned objects are
58
80
  * preferred over failed deletes.
59
81
  */
60
82
  delete?: (url: string) => Promise<void>;
61
83
  }
84
+ /**
85
+ * Most `ScreenshotStorage.delete` calls one cleanup keeps in flight — a
86
+ * project delete may free thousands of objects, and firing them all at once
87
+ * can exhaust sockets (one per request with `fetch`) or memory and trip
88
+ * object-store rate limits. It stays under the 50 sockets the AWS SDK opens
89
+ * per client by default, yet a project delete, which waits for its cleanup,
90
+ * is not serialised: 1,000 objects take 32 rounds. Adapters run their
91
+ * deletes through `settleWithConcurrencyLimit` with this bound.
92
+ */
93
+ export declare const SCREENSHOT_DELETE_CONCURRENCY = 32;
94
+ /**
95
+ * MIME type an adapter reports to {@link ScreenshotStorage.upload}: the one
96
+ * an image data URL declares (`data:image/png;base64,…` → `image/png`),
97
+ * limited to the JPEG, PNG and WebP the HTTP schema accepts. Stores are
98
+ * public and may be fed unvalidated data URLs, and an `image/svg+xml` label
99
+ * would make the stored object script-capable when served inline. Anything
100
+ * else — including a data URL that declares no type — reports JPEG, the
101
+ * widget's capture format.
102
+ */
103
+ export declare function screenshotMimeType(dataUrl: string): string;
@@ -1,16 +1,17 @@
1
1
  /**
2
2
  * Pluggable storage for feedback screenshots.
3
3
  *
4
- * `adapter-prisma` accepts an optional `screenshotStorage` config. When
5
- * provided, the adapter forwards the widget-supplied data URL to `upload()`
6
- * and persists the returned URL on `Feedback.screenshotUrl`. When not
7
- * provided, the adapter falls back to inline base64 (with a one-time warn) —
8
- * fine for dev and small deployments, a footgun for production Postgres.
4
+ * `adapter-prisma` and `adapter-drizzle` accept an optional
5
+ * `screenshotStorage` config. When provided, the adapter forwards the
6
+ * widget-supplied data URL to `upload()` and persists the returned URL on
7
+ * `Feedback.screenshotUrl`. When not provided, the adapter falls back to
8
+ * inline base64 (with a one-time warn) — fine for dev and small
9
+ * deployments, a footgun for production Postgres.
9
10
  *
10
- * Implementations typically wrap an object store: S3, Cloudflare R2,
11
- * Backblaze B2, Cloudflare Images, local filesystem, etc. They are
12
- * intentionally not shipped from this package — wire your own based on
13
- * existing infra.
11
+ * `@siteping/screenshot-storage` implements it over any S3-compatible
12
+ * bucket (AWS S3, Cloudflare R2, Backblaze B2, MinIO…), Cloudflare Images,
13
+ * a database table, the local filesystem or memory. Implement it yourself
14
+ * for anything else.
14
15
  *
15
16
  * @example
16
17
  * ```ts
@@ -19,11 +20,11 @@
19
20
  *
20
21
  * const s3 = new S3Client({ region: "eu-west-3" });
21
22
  * const screenshotStorage: ScreenshotStorage = {
22
- * async upload(dataUrl, ctx) {
23
- * const buf = Buffer.from(dataUrl.split(",")[1], "base64");
24
- * const key = `feedback/${ctx.feedbackId}.jpg`;
23
+ * async upload(dataUrl, { mimeType }) {
24
+ * const body = Buffer.from(dataUrl.slice(dataUrl.indexOf(",") + 1), "base64");
25
+ * const key = `siteping/${crypto.randomUUID()}`; // fresh per upload, see URL ownership
25
26
  * await s3.send(new PutObjectCommand({
26
- * Bucket: "my-bucket", Key: key, Body: buf, ContentType: ctx.mimeType,
27
+ * Bucket: "my-bucket", Key: key, Body: body, ContentType: mimeType,
27
28
  * }));
28
29
  * return { url: `https://cdn.example.com/${key}` };
29
30
  * },
@@ -41,10 +42,26 @@ export interface ScreenshotStorage {
41
42
  * Adapters call this synchronously inside `createFeedback` — keep it
42
43
  * fast or move to a queue if needed.
43
44
  *
44
- * **Security note:** `ctx.feedbackId` is the *client-generated* id
45
- * (`clientId`) — the record id does not exist yet at upload time. Treat it
46
- * as attacker-controlled: sanitize before using it in filesystem paths or
47
- * object keys, even though server adapters validate its shape upstream.
45
+ * `ctx.feedbackId` identifies the upload. Adapters that upload before the
46
+ * record exists pass the *client-generated* `clientId` (Prisma); the
47
+ * Drizzle adapter passes the server-generated id the create attempt will
48
+ * insert the record under.
49
+ *
50
+ * **URL ownership:** every call must return a URL no other call returns —
51
+ * key the object by a fresh random value (`crypto.randomUUID()`, as the
52
+ * example does), never by `ctx.feedbackId` alone nor by a content hash.
53
+ * Adapters treat each URL as the property of the one record that stores it
54
+ * and may pass it to `delete` once that record is deleted, or once its
55
+ * create lost a race: two submissions of one `clientId` both upload, and
56
+ * the object of the one that is not stored is deleted. Under Prisma,
57
+ * `ctx.feedbackId` is that client-supplied `clientId`, so an object keyed
58
+ * by it is rewritten by every replay — a retry, or anyone who learns the
59
+ * id — and a URL shared by several records lets deleting one remove the
60
+ * object another still points at.
61
+ *
62
+ * **Security note:** treat `ctx.feedbackId` as attacker-controlled:
63
+ * sanitize before using it in filesystem paths or object keys, even though
64
+ * server adapters validate its shape upstream.
48
65
  */
49
66
  upload(dataUrl: string, ctx: {
50
67
  feedbackId: string;
@@ -53,9 +70,34 @@ export interface ScreenshotStorage {
53
70
  url: string;
54
71
  }>;
55
72
  /**
56
- * Optional cleanup hook called when the feedback is deleted. Adapters
57
- * call this best-effort and swallow errors — orphaned objects are
73
+ * Optional cleanup hook called when the feedback is deleted, and for an
74
+ * object uploaded by a create whose record was not stored: one rejected
75
+ * because its `clientId` is already stored, or — in adapters that key
76
+ * uploads per attempt, like Drizzle — one whose insert failed. An object a
77
+ * stored row still references (a deterministic key reused by the replay)
78
+ * is kept. Receives only URLs returned by {@link ScreenshotStorage.upload}.
79
+ * Adapters call this best-effort and swallow errors — orphaned objects are
58
80
  * preferred over failed deletes.
59
81
  */
60
82
  delete?: (url: string) => Promise<void>;
61
83
  }
84
+ /**
85
+ * Most `ScreenshotStorage.delete` calls one cleanup keeps in flight — a
86
+ * project delete may free thousands of objects, and firing them all at once
87
+ * can exhaust sockets (one per request with `fetch`) or memory and trip
88
+ * object-store rate limits. It stays under the 50 sockets the AWS SDK opens
89
+ * per client by default, yet a project delete, which waits for its cleanup,
90
+ * is not serialised: 1,000 objects take 32 rounds. Adapters run their
91
+ * deletes through `settleWithConcurrencyLimit` with this bound.
92
+ */
93
+ export declare const SCREENSHOT_DELETE_CONCURRENCY = 32;
94
+ /**
95
+ * MIME type an adapter reports to {@link ScreenshotStorage.upload}: the one
96
+ * an image data URL declares (`data:image/png;base64,…` → `image/png`),
97
+ * limited to the JPEG, PNG and WebP the HTTP schema accepts. Stores are
98
+ * public and may be fed unvalidated data URLs, and an `image/svg+xml` label
99
+ * would make the stored object script-capable when served inline. Anything
100
+ * else — including a data URL that declares no type — reports JPEG, the
101
+ * widget's capture format.
102
+ */
103
+ export declare function screenshotMimeType(dataUrl: string): string;
@@ -1,17 +1,20 @@
1
+ export { settleWithConcurrencyLimit } from "./concurrency.cjs";
2
+ export { buildDeepLink, parseHttpUrl } from "./deep-link.cjs";
1
3
  export { EMAIL_PATTERN, isValidEmail } from "./email.cjs";
2
4
  export type { SitepingErrorCode } from "./errors.cjs";
3
5
  export { SitepingAuthError, SitepingError, SitepingNetworkError, SitepingValidationError } from "./errors.cjs";
4
6
  export type { FilterResult, Pagination } from "./filters.cjs";
5
- export { applyFeedbackFilters, clampPagination, DEFAULT_PAGE_LIMIT, MAX_PAGE_LIMIT } from "./filters.cjs";
7
+ export { applyFeedbackFilters, clampPagination, DEFAULT_PAGE_LIMIT, isUnreachableOffset, MAX_PAGE_LIMIT, matchesFeedbackQuery, } from "./filters.cjs";
6
8
  export type { I18n, LocaleLoaders, TranslateFunction } from "./i18n.cjs";
7
- export { createI18n, interpolate, tWithParams } from "./i18n.cjs";
9
+ export { canonicalizeLocale, createI18n, interpolate, intlLocale, tWithParams } from "./i18n.cjs";
8
10
  export type { FieldDef, IndexDef, ModelDef, PrismaNativeType, PrismaScalarType, RelationDef, RelationKind, RelationOnDelete, SitepingModelFieldName, SitepingModelName, } from "./schema.cjs";
9
11
  export { isRelationField, isScalarField, SITEPING_MODELS } from "./schema.cjs";
10
12
  export type { ScreenshotStorage } from "./screenshot-storage.cjs";
13
+ export { SCREENSHOT_DELETE_CONCURRENCY, screenshotMimeType } from "./screenshot-storage.cjs";
11
14
  export type { CollectionStore, CollectionStoreBackend } from "./store-helpers.cjs";
12
- export { buildAnnotationRecord, buildFeedbackRecord, createCollectionStore } from "./store-helpers.cjs";
15
+ export { buildAnnotationRecord, buildCommentRecord, buildFeedbackRecord, createCollectionStore, } from "./store-helpers.cjs";
13
16
  export type { AssertEqual, IfEquals, Prettify, Serialized } from "./type-utils.cjs";
14
17
  export { hasOwn, isRecord } from "./type-utils.cjs";
15
- export type { AnchorData, AnnotationCreateInput, AnnotationPayload, AnnotationRecord, AnnotationResponse, BuiltinLocale, ClosedFeedbackStatus, ConsoleDiagnosticEntry, ConsoleDiagnosticLevel, DiagnosticsCaptureOptions, DiagnosticsSnapshot, FeedbackCreateInput, FeedbackPage, FeedbackPayload, FeedbackQuery, FeedbackRecord, FeedbackResponse, FeedbackResponseList, FeedbackStatus, FeedbackType, FeedbackUpdateInput, NetworkDiagnosticEntry, OpenFeedbackStatus, PageScope, RectData, ScreenshotRegion, SitepingBaseConfig, SitepingConfig, SitepingDeepLinkOptions, SitepingHeadersOption, SitepingHttpConfig, SitepingIdentity, SitepingInstance, SitepingLocale, SitepingPosition, SitepingPublicEventListener, SitepingPublicEvents, SitepingSkipReason, SitepingStore, SitepingStoreConfig, SitepingTheme, SitepingUnsubscribe, } from "./types.cjs";
16
- export { BUILTIN_LOCALES, CLOSED_FEEDBACK_STATUSES, CONSOLE_DIAGNOSTIC_LEVELS, FEEDBACK_STATUSES, FEEDBACK_TYPES, flattenAnnotation, isClosedStatus, isStoreDuplicate, isStoreNotFound, isStorePersistence, OPEN_FEEDBACK_STATUSES, StoreDuplicateError, StoreNotFoundError, StorePersistenceError, toFeedbackUpdate, } from "./types.cjs";
17
- export { errorFromResponse, feedbackQueryToSearchParams, networkErrorFromException } from "./wire.cjs";
18
+ export type { AnchorData, AnnotationCreateInput, AnnotationPayload, AnnotationRecord, AnnotationResponse, BuiltinLocale, ClosedFeedbackStatus, CommentAuthorRole, CommentCreateInput, CommentDeletePayload, CommentPayload, CommentRecord, CommentResponse, ConsoleDiagnosticEntry, ConsoleDiagnosticLevel, DiagnosticsCaptureOptions, DiagnosticsSnapshot, FeedbackCreateInput, FeedbackCreateOutcome, FeedbackListPermissions, FeedbackPage, FeedbackPayload, FeedbackPermissions, FeedbackQuery, FeedbackRecord, FeedbackResponse, FeedbackResponseList, FeedbackStatus, FeedbackType, FeedbackUpdateInput, NetworkDiagnosticEntry, OpenFeedbackStatus, PageScope, RectData, ScreenshotRegion, SitepingBaseConfig, SitepingCapabilities, SitepingConfig, SitepingDeepLinkOptions, SitepingHeadersOption, SitepingHttpConfig, SitepingIdentity, SitepingInstance, SitepingLocale, SitepingPanelAction, SitepingPanelActionContext, SitepingPanelActionFeedback, SitepingPanelButtonAction, SitepingPanelLinkAction, SitepingPosition, SitepingPublicEventListener, SitepingPublicEvents, SitepingSkipReason, SitepingStore, SitepingStoreConfig, SitepingTheme, SitepingUnsubscribe, } from "./types.cjs";
19
+ export { ANCHOR_ELEMENT_ID_MAX, ANCHOR_ELEMENT_TAG_MAX, BUILTIN_LOCALES, CLOSED_FEEDBACK_STATUSES, COMMENT_AUTHOR_ROLES, COMMENT_BODY_MAX_LENGTH, CONSOLE_DIAGNOSTIC_LEVELS, FEEDBACK_STATUSES, FEEDBACK_TYPES, flattenAnnotation, IDENTITY_FIELD_MAX_LENGTH, isClosedStatus, isStoreDuplicate, isStoreLimit, isStoreNotFound, isStorePersistence, isStoreValueTooLong, MAX_COMMENTS_PER_FEEDBACK, OPEN_FEEDBACK_STATUSES, StoreDuplicateError, StoreLimitError, StoreNotFoundError, StorePersistenceError, StoreValueTooLongError, toFeedbackUpdate, } from "./types.cjs";
20
+ export { errorFromResponse, feedbackQueryToSearchParams, isCommentGone, isThreadFull, mergeRequestHeaders, networkErrorFromException, newClientId, withSearchParams, } from "./wire.cjs";
@@ -1,17 +1,20 @@
1
+ export { settleWithConcurrencyLimit } from "./concurrency.js";
2
+ export { buildDeepLink, parseHttpUrl } from "./deep-link.js";
1
3
  export { EMAIL_PATTERN, isValidEmail } from "./email.js";
2
4
  export type { SitepingErrorCode } from "./errors.js";
3
5
  export { SitepingAuthError, SitepingError, SitepingNetworkError, SitepingValidationError } from "./errors.js";
4
6
  export type { FilterResult, Pagination } from "./filters.js";
5
- export { applyFeedbackFilters, clampPagination, DEFAULT_PAGE_LIMIT, MAX_PAGE_LIMIT } from "./filters.js";
7
+ export { applyFeedbackFilters, clampPagination, DEFAULT_PAGE_LIMIT, isUnreachableOffset, MAX_PAGE_LIMIT, matchesFeedbackQuery, } from "./filters.js";
6
8
  export type { I18n, LocaleLoaders, TranslateFunction } from "./i18n.js";
7
- export { createI18n, interpolate, tWithParams } from "./i18n.js";
9
+ export { canonicalizeLocale, createI18n, interpolate, intlLocale, tWithParams } from "./i18n.js";
8
10
  export type { FieldDef, IndexDef, ModelDef, PrismaNativeType, PrismaScalarType, RelationDef, RelationKind, RelationOnDelete, SitepingModelFieldName, SitepingModelName, } from "./schema.js";
9
11
  export { isRelationField, isScalarField, SITEPING_MODELS } from "./schema.js";
10
12
  export type { ScreenshotStorage } from "./screenshot-storage.js";
13
+ export { SCREENSHOT_DELETE_CONCURRENCY, screenshotMimeType } from "./screenshot-storage.js";
11
14
  export type { CollectionStore, CollectionStoreBackend } from "./store-helpers.js";
12
- export { buildAnnotationRecord, buildFeedbackRecord, createCollectionStore } from "./store-helpers.js";
15
+ export { buildAnnotationRecord, buildCommentRecord, buildFeedbackRecord, createCollectionStore, } from "./store-helpers.js";
13
16
  export type { AssertEqual, IfEquals, Prettify, Serialized } from "./type-utils.js";
14
17
  export { hasOwn, isRecord } from "./type-utils.js";
15
- export type { AnchorData, AnnotationCreateInput, AnnotationPayload, AnnotationRecord, AnnotationResponse, BuiltinLocale, ClosedFeedbackStatus, ConsoleDiagnosticEntry, ConsoleDiagnosticLevel, DiagnosticsCaptureOptions, DiagnosticsSnapshot, FeedbackCreateInput, FeedbackPage, FeedbackPayload, FeedbackQuery, FeedbackRecord, FeedbackResponse, FeedbackResponseList, FeedbackStatus, FeedbackType, FeedbackUpdateInput, NetworkDiagnosticEntry, OpenFeedbackStatus, PageScope, RectData, ScreenshotRegion, SitepingBaseConfig, SitepingConfig, SitepingDeepLinkOptions, SitepingHeadersOption, SitepingHttpConfig, SitepingIdentity, SitepingInstance, SitepingLocale, SitepingPosition, SitepingPublicEventListener, SitepingPublicEvents, SitepingSkipReason, SitepingStore, SitepingStoreConfig, SitepingTheme, SitepingUnsubscribe, } from "./types.js";
16
- export { BUILTIN_LOCALES, CLOSED_FEEDBACK_STATUSES, CONSOLE_DIAGNOSTIC_LEVELS, FEEDBACK_STATUSES, FEEDBACK_TYPES, flattenAnnotation, isClosedStatus, isStoreDuplicate, isStoreNotFound, isStorePersistence, OPEN_FEEDBACK_STATUSES, StoreDuplicateError, StoreNotFoundError, StorePersistenceError, toFeedbackUpdate, } from "./types.js";
17
- export { errorFromResponse, feedbackQueryToSearchParams, networkErrorFromException } from "./wire.js";
18
+ export type { AnchorData, AnnotationCreateInput, AnnotationPayload, AnnotationRecord, AnnotationResponse, BuiltinLocale, ClosedFeedbackStatus, CommentAuthorRole, CommentCreateInput, CommentDeletePayload, CommentPayload, CommentRecord, CommentResponse, ConsoleDiagnosticEntry, ConsoleDiagnosticLevel, DiagnosticsCaptureOptions, DiagnosticsSnapshot, FeedbackCreateInput, FeedbackCreateOutcome, FeedbackListPermissions, FeedbackPage, FeedbackPayload, FeedbackPermissions, FeedbackQuery, FeedbackRecord, FeedbackResponse, FeedbackResponseList, FeedbackStatus, FeedbackType, FeedbackUpdateInput, NetworkDiagnosticEntry, OpenFeedbackStatus, PageScope, RectData, ScreenshotRegion, SitepingBaseConfig, SitepingCapabilities, SitepingConfig, SitepingDeepLinkOptions, SitepingHeadersOption, SitepingHttpConfig, SitepingIdentity, SitepingInstance, SitepingLocale, SitepingPanelAction, SitepingPanelActionContext, SitepingPanelActionFeedback, SitepingPanelButtonAction, SitepingPanelLinkAction, SitepingPosition, SitepingPublicEventListener, SitepingPublicEvents, SitepingSkipReason, SitepingStore, SitepingStoreConfig, SitepingTheme, SitepingUnsubscribe, } from "./types.js";
19
+ export { ANCHOR_ELEMENT_ID_MAX, ANCHOR_ELEMENT_TAG_MAX, BUILTIN_LOCALES, CLOSED_FEEDBACK_STATUSES, COMMENT_AUTHOR_ROLES, COMMENT_BODY_MAX_LENGTH, CONSOLE_DIAGNOSTIC_LEVELS, FEEDBACK_STATUSES, FEEDBACK_TYPES, flattenAnnotation, IDENTITY_FIELD_MAX_LENGTH, isClosedStatus, isStoreDuplicate, isStoreLimit, isStoreNotFound, isStorePersistence, isStoreValueTooLong, MAX_COMMENTS_PER_FEEDBACK, OPEN_FEEDBACK_STATUSES, StoreDuplicateError, StoreLimitError, StoreNotFoundError, StorePersistenceError, StoreValueTooLongError, toFeedbackUpdate, } from "./types.js";
20
+ export { errorFromResponse, feedbackQueryToSearchParams, isCommentGone, isThreadFull, mergeRequestHeaders, networkErrorFromException, newClientId, withSearchParams, } from "./wire.js";