@purpleschool/gptbot 0.7.47 → 0.7.49
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/api/controllers/http/index.ts +1 -0
- package/api/controllers/http/writer.ts +20 -0
- package/build/api/controllers/http/index.js +1 -0
- package/build/api/controllers/http/writer.js +22 -0
- package/build/commands/chat/check-limit.command.js +4 -0
- package/build/commands/chat/create-chat.command.js +1 -3
- package/build/commands/chat/find-chat-by-uuid.command.js +1 -1
- package/build/commands/chat/find-chats.command.js +1 -3
- package/build/commands/chat/get-last-active-chat-command.js +1 -1
- package/build/commands/folder/find-folder-by-uuid-with-chats.command.js +1 -3
- package/build/commands/tools/index.js +1 -0
- package/build/commands/tools/writer/create-writer-document.command.js +16 -0
- package/build/commands/tools/writer/delete-all-writer-documents.command.js +8 -0
- package/build/commands/tools/writer/delete-writer-document-by-uuid.command.js +11 -0
- package/build/commands/tools/writer/export-writer-document-as-docx.command.js +15 -0
- package/build/commands/tools/writer/find-writer-document-by-uuid.command.js +14 -0
- package/build/commands/tools/writer/find-writer-documents.command.js +18 -0
- package/build/commands/tools/writer/generate-writer-document-contents.command.js +14 -0
- package/build/commands/tools/writer/get-writer-tool-config.command.js +11 -0
- package/build/commands/tools/writer/index.js +31 -0
- package/build/commands/tools/writer/update-writer-document-contents.command.js +18 -0
- package/build/commands/tools/writer/update-writer-document-outline.command.js +17 -0
- package/build/commands/tools/writer/writer-extend-text.command.js +18 -0
- package/build/commands/tools/writer/writer-fix-errors.command.js +18 -0
- package/build/commands/tools/writer/writer-generate-text.command.js +21 -0
- package/build/commands/tools/writer/writer-paraphrase.command.js +18 -0
- package/build/commands/tools/writer/writer-shorten-text.command.js +18 -0
- package/build/constants/errors/errors.js +115 -30
- package/build/constants/index.js +1 -0
- package/build/constants/writer/enums/index.js +20 -0
- package/build/constants/writer/enums/writer-ai-action-pricing-type.enum.js +8 -0
- package/build/constants/writer/enums/writer-ai-action-type.enum.js +11 -0
- package/build/constants/writer/enums/writer-document-section-type.enum.js +9 -0
- package/build/constants/writer/enums/writer-document-stage.enum.js +14 -0
- package/build/constants/writer/index.js +17 -0
- package/build/helpers/index.js +1 -0
- package/build/helpers/writer/calculate-page-count.util.js +37 -0
- package/build/helpers/writer/calculate-writer-ai-action-price.util.js +16 -0
- package/build/helpers/writer/calculate-writer-content-generation-price.util.js +6 -0
- package/build/helpers/writer/index.js +19 -0
- package/build/models/chat-with-messages.schema.js +9 -0
- package/build/models/chat.schema.js +0 -2
- package/build/models/index.js +1 -0
- package/build/models/tools/index.js +1 -0
- package/build/models/tools/writer/index.js +21 -0
- package/build/models/tools/writer/writer-ai-action.schema.js +26 -0
- package/build/models/tools/writer/writer-config.schema.js +11 -0
- package/build/models/tools/writer/writer-document-outline.schema.js +21 -0
- package/build/models/tools/writer/writer-document-type.schema.js +16 -0
- package/build/models/tools/writer/writer-document.schema.js +22 -0
- package/commands/chat/check-limit.command.ts +4 -0
- package/commands/chat/create-chat.command.ts +2 -4
- package/commands/chat/find-chat-by-uuid.command.ts +2 -2
- package/commands/chat/find-chats.command.ts +2 -6
- package/commands/chat/get-last-active-chat-command.ts +2 -2
- package/commands/folder/find-folder-by-uuid-with-chats.command.ts +2 -6
- package/commands/tools/index.ts +1 -0
- package/commands/tools/writer/create-writer-document.command.ts +16 -0
- package/commands/tools/writer/delete-all-writer-documents.command.ts +6 -0
- package/commands/tools/writer/delete-writer-document-by-uuid.command.ts +11 -0
- package/commands/tools/writer/export-writer-document-as-docx.command.ts +15 -0
- package/commands/tools/writer/find-writer-document-by-uuid.command.ts +14 -0
- package/commands/tools/writer/find-writer-documents.command.ts +18 -0
- package/commands/tools/writer/generate-writer-document-contents.command.ts +14 -0
- package/commands/tools/writer/get-writer-tool-config.command.ts +10 -0
- package/commands/tools/writer/index.ts +15 -0
- package/commands/tools/writer/update-writer-document-contents.command.ts +20 -0
- package/commands/tools/writer/update-writer-document-outline.command.ts +19 -0
- package/commands/tools/writer/writer-extend-text.command.ts +20 -0
- package/commands/tools/writer/writer-fix-errors.command.ts +20 -0
- package/commands/tools/writer/writer-generate-text.command.ts +23 -0
- package/commands/tools/writer/writer-paraphrase.command.ts +20 -0
- package/commands/tools/writer/writer-shorten-text.command.ts +20 -0
- package/constants/errors/errors.ts +115 -30
- package/constants/index.ts +1 -0
- package/constants/writer/enums/index.ts +4 -0
- package/constants/writer/enums/writer-ai-action-pricing-type.enum.ts +4 -0
- package/constants/writer/enums/writer-ai-action-type.enum.ts +7 -0
- package/constants/writer/enums/writer-document-section-type.enum.ts +5 -0
- package/constants/writer/enums/writer-document-stage.enum.ts +13 -0
- package/constants/writer/index.ts +1 -0
- package/helpers/index.ts +1 -0
- package/helpers/writer/calculate-page-count.util.ts +46 -0
- package/helpers/writer/calculate-writer-ai-action-price.util.ts +20 -0
- package/helpers/writer/calculate-writer-content-generation-price.util.ts +3 -0
- package/helpers/writer/index.ts +3 -0
- package/models/chat-with-messages.schema.ts +7 -0
- package/models/chat.schema.ts +0 -2
- package/models/index.ts +1 -0
- package/models/tools/index.ts +1 -0
- package/models/tools/writer/index.ts +5 -0
- package/models/tools/writer/writer-ai-action.schema.ts +27 -0
- package/models/tools/writer/writer-config.schema.ts +10 -0
- package/models/tools/writer/writer-document-outline.schema.ts +28 -0
- package/models/tools/writer/writer-document-type.schema.ts +15 -0
- package/models/tools/writer/writer-document.schema.ts +21 -0
- package/package.json +1 -1
|
@@ -1741,78 +1741,118 @@ exports.ERRORS = {
|
|
|
1741
1741
|
message: 'Ошибка при обновлении ежедневного стрика',
|
|
1742
1742
|
httpCode: 500,
|
|
1743
1743
|
},
|
|
1744
|
-
|
|
1744
|
+
WRITER_CONFIG_ERROR: {
|
|
1745
1745
|
code: 'A362',
|
|
1746
|
+
message: 'Произошла ошибка при получении конфигурации Writer',
|
|
1747
|
+
httpCode: 500,
|
|
1748
|
+
},
|
|
1749
|
+
WRITER_CREATE_DOCUMENT_ERROR: {
|
|
1750
|
+
code: 'A363',
|
|
1751
|
+
message: 'Произошла ошибка при создании документа',
|
|
1752
|
+
httpCode: 500,
|
|
1753
|
+
},
|
|
1754
|
+
WRITER_DOCUMENT_FIND_ERROR: {
|
|
1755
|
+
code: 'A364',
|
|
1756
|
+
message: 'Произошла ошибка при поиске документа',
|
|
1757
|
+
httpCode: 500,
|
|
1758
|
+
},
|
|
1759
|
+
WRITER_DOCUMENTS_FIND_ERROR: {
|
|
1760
|
+
code: 'A365',
|
|
1761
|
+
message: 'Произошла ошибка при поиске документов',
|
|
1762
|
+
httpCode: 500,
|
|
1763
|
+
},
|
|
1764
|
+
WRITER_DELETE_DOCUMENT_ERROR: {
|
|
1765
|
+
code: 'A366',
|
|
1766
|
+
message: 'Произошла ошибка при удалении документа',
|
|
1767
|
+
httpCode: 500,
|
|
1768
|
+
},
|
|
1769
|
+
WRITER_DELETE_ALL_DOCUMENTS_ERROR: {
|
|
1770
|
+
code: 'A367',
|
|
1771
|
+
message: 'Произошла ошибка при удалении всех документов пользователя',
|
|
1772
|
+
httpCode: 500,
|
|
1773
|
+
},
|
|
1774
|
+
WRITER_UPDATE_DOCUMENT_OUTLINE_ERROR: {
|
|
1775
|
+
code: 'A368',
|
|
1776
|
+
message: 'Произошла ошибка при обновлении структуры документа',
|
|
1777
|
+
httpCode: 500,
|
|
1778
|
+
},
|
|
1779
|
+
WRITER_GENERATE_DOCUMENT_CONTENTS_ERROR: {
|
|
1780
|
+
code: 'A369',
|
|
1781
|
+
message: 'Произошла ошибка при генерации содержимого документа',
|
|
1782
|
+
httpCode: 500,
|
|
1783
|
+
},
|
|
1784
|
+
ACCOUNT_DELETE_ERROR: {
|
|
1785
|
+
code: 'A370',
|
|
1746
1786
|
message: 'Аккаунт не был удалён',
|
|
1747
1787
|
httpCode: 500,
|
|
1748
1788
|
},
|
|
1749
1789
|
ACCOUNT_DELETED: {
|
|
1750
|
-
code: '
|
|
1790
|
+
code: 'A371',
|
|
1751
1791
|
message: 'Операция невозможна, аккаунт был удалён',
|
|
1752
1792
|
httpCode: 400,
|
|
1753
1793
|
},
|
|
1754
1794
|
TELEGRAM_PROFILE_DELETE_ERROR: {
|
|
1755
|
-
code: '
|
|
1795
|
+
code: 'A372',
|
|
1756
1796
|
message: 'Произошла ошибка при удалении Telegram профиля',
|
|
1757
1797
|
httpCode: 500,
|
|
1758
1798
|
},
|
|
1759
1799
|
TOOL_NOT_FOUND_ERROR: {
|
|
1760
|
-
code: '
|
|
1800
|
+
code: 'A373',
|
|
1761
1801
|
message: 'Инструмент не найден',
|
|
1762
1802
|
httpCode: 404,
|
|
1763
1803
|
},
|
|
1764
1804
|
ORDER_CHECK_FIRST_PURCHASE_ERROR: {
|
|
1765
|
-
code: '
|
|
1805
|
+
code: 'A374',
|
|
1766
1806
|
message: 'Произошла ошибка при проверке первой покупки',
|
|
1767
1807
|
httpCode: 500,
|
|
1768
1808
|
},
|
|
1769
1809
|
ORDER_CURRENT_ORDER_NOT_FOUND_ERROR: {
|
|
1770
|
-
code: '
|
|
1810
|
+
code: 'A375',
|
|
1771
1811
|
message: 'Текущий заказ не найден',
|
|
1772
1812
|
httpCode: 404,
|
|
1773
1813
|
},
|
|
1774
1814
|
ORDER_GET_USER_ORDERS_ERROR: {
|
|
1775
|
-
code: '
|
|
1815
|
+
code: 'A376',
|
|
1776
1816
|
message: 'Произошла ошибка при получении заказов пользователя',
|
|
1777
1817
|
httpCode: 500,
|
|
1778
1818
|
},
|
|
1779
1819
|
ORDER_NO_SUBSCRIPTION_ID_OR_PRODUCT_ID_PROVIDED_ERROR: {
|
|
1780
|
-
code: '
|
|
1820
|
+
code: 'A377',
|
|
1781
1821
|
message: 'Не указан subscriptionId или productId',
|
|
1782
1822
|
httpCode: 400,
|
|
1783
1823
|
},
|
|
1784
1824
|
FILE_TO_MD_FORMAT_ERROR: {
|
|
1785
|
-
code: '
|
|
1825
|
+
code: 'A378',
|
|
1786
1826
|
message: 'Неверный формат файла, варианты: .xlsx, .docx, .pdf',
|
|
1787
1827
|
httpCode: 400,
|
|
1788
1828
|
},
|
|
1789
1829
|
FILE_TO_MD_ERROR: {
|
|
1790
|
-
code: '
|
|
1830
|
+
code: 'A379',
|
|
1791
1831
|
message: 'Произошла ошибка при конвертации файла в markdown',
|
|
1792
1832
|
httpCode: 500,
|
|
1793
1833
|
},
|
|
1794
1834
|
FILE_TO_MD_CONVERT_ERROR: {
|
|
1795
|
-
code: '
|
|
1835
|
+
code: 'A380',
|
|
1796
1836
|
message: 'Не получилось конвертировать файл в markdown, возможно файл пуст, поврежден или невалиден',
|
|
1797
1837
|
httpCode: 400,
|
|
1798
1838
|
},
|
|
1799
1839
|
IMAGE_EDITOR_MODEL_INACTIVE: {
|
|
1800
|
-
code: '
|
|
1840
|
+
code: 'A381',
|
|
1801
1841
|
message: 'Модель редактирования картинок архивирована и недоступна для пользования',
|
|
1802
1842
|
httpCode: 403,
|
|
1803
1843
|
},
|
|
1804
1844
|
TTS_MODEL_INACTIVE: {
|
|
1805
|
-
code: '
|
|
1845
|
+
code: 'A382',
|
|
1806
1846
|
message: 'Модель генерации текста в голос архивирована и недоступна для пользования',
|
|
1807
1847
|
httpCode: 403,
|
|
1808
1848
|
},
|
|
1809
1849
|
STT_MODEL_INACTIVE: {
|
|
1810
|
-
code: '
|
|
1850
|
+
code: 'A383',
|
|
1811
1851
|
message: 'Модель генерации голоса в текст архивирована и недоступна для пользования',
|
|
1812
1852
|
httpCode: 403,
|
|
1813
1853
|
},
|
|
1814
1854
|
VIDEO_MODEL_INACTIVE: {
|
|
1815
|
-
code: '
|
|
1855
|
+
code: 'A384',
|
|
1816
1856
|
message: 'Модель генерации видео архивирована и недоступна для пользования',
|
|
1817
1857
|
httpCode: 403,
|
|
1818
1858
|
},
|
|
@@ -1822,17 +1862,17 @@ exports.ERRORS = {
|
|
|
1822
1862
|
httpCode: 500,
|
|
1823
1863
|
},
|
|
1824
1864
|
VK_GET_ACCESS_TOKEN_ERROR: {
|
|
1825
|
-
code: '
|
|
1865
|
+
code: 'A385',
|
|
1826
1866
|
message: 'Ошибка при получении кода доступа от ВК',
|
|
1827
1867
|
httpCode: 500,
|
|
1828
1868
|
},
|
|
1829
1869
|
VK_GET_USER_INFO_ERROR: {
|
|
1830
|
-
code: '
|
|
1870
|
+
code: 'A386',
|
|
1831
1871
|
message: 'Ошибка при получении данных об юзере из ВК',
|
|
1832
1872
|
httpCode: 500,
|
|
1833
1873
|
},
|
|
1834
1874
|
USER_NOT_VK_ID: {
|
|
1835
|
-
code: '
|
|
1875
|
+
code: 'A387',
|
|
1836
1876
|
message: 'Произошла ошибка при поиске пользователя по vkId',
|
|
1837
1877
|
httpCode: 500,
|
|
1838
1878
|
},
|
|
@@ -1842,12 +1882,12 @@ exports.ERRORS = {
|
|
|
1842
1882
|
httpCode: 409,
|
|
1843
1883
|
},
|
|
1844
1884
|
YANDEX_GET_USER_INFO_ERROR: {
|
|
1845
|
-
code: '
|
|
1885
|
+
code: 'A388',
|
|
1846
1886
|
message: 'Ошибка при получении данных об юзере из Яндекса',
|
|
1847
1887
|
httpCode: 500,
|
|
1848
1888
|
},
|
|
1849
1889
|
USER_NOT_YANDEX_ID: {
|
|
1850
|
-
code: '
|
|
1890
|
+
code: 'A389',
|
|
1851
1891
|
message: 'Произошла ошибка при поиске пользователя по yandexId',
|
|
1852
1892
|
httpCode: 500,
|
|
1853
1893
|
},
|
|
@@ -1857,52 +1897,97 @@ exports.ERRORS = {
|
|
|
1857
1897
|
httpCode: 409,
|
|
1858
1898
|
},
|
|
1859
1899
|
PDF_TO_MD_CONVERT_ERROR: {
|
|
1860
|
-
code: '
|
|
1900
|
+
code: 'A390',
|
|
1861
1901
|
message: 'Не получилось конвертировать pdf в markdown, возможно вы прикрепили скан или картинку, не имеющую текста',
|
|
1862
1902
|
httpCode: 400,
|
|
1863
1903
|
},
|
|
1864
1904
|
SUBSCRIPTION_DOWNGRADE_INVALID: {
|
|
1865
|
-
code: '
|
|
1905
|
+
code: 'A391',
|
|
1866
1906
|
message: 'Невозможно понизить подписку до указанного уровня',
|
|
1867
1907
|
httpCode: 400,
|
|
1868
1908
|
},
|
|
1869
1909
|
SUBSCRIPTION_DOWNGRADE_ERROR: {
|
|
1870
|
-
code: '
|
|
1910
|
+
code: 'A392',
|
|
1871
1911
|
message: 'Не удалось понизить подписку',
|
|
1872
1912
|
httpCode: 500,
|
|
1873
1913
|
},
|
|
1874
1914
|
SUBSCRIPTIONS_GET_DOWNGRADE_ERROR: {
|
|
1875
|
-
code: '
|
|
1915
|
+
code: 'A393',
|
|
1876
1916
|
message: 'Не удалось получить список возможных понижений для подписок',
|
|
1877
1917
|
httpCode: 500,
|
|
1878
1918
|
},
|
|
1919
|
+
WRITER_PARAPHRASE_ERROR: {
|
|
1920
|
+
code: 'A394',
|
|
1921
|
+
message: 'Произошла ошибка при перефразировании текста',
|
|
1922
|
+
httpCode: 500,
|
|
1923
|
+
},
|
|
1924
|
+
WRITER_EXTEND_TEXT_ERROR: {
|
|
1925
|
+
code: 'A395',
|
|
1926
|
+
message: 'Произошла ошибка при расширении текста',
|
|
1927
|
+
httpCode: 500,
|
|
1928
|
+
},
|
|
1929
|
+
WRITER_SHORTEN_TEXT_ERROR: {
|
|
1930
|
+
code: 'A396',
|
|
1931
|
+
message: 'Произошла ошибка при сокращении текста',
|
|
1932
|
+
httpCode: 500,
|
|
1933
|
+
},
|
|
1934
|
+
WRITER_FIX_ERRORS_ERROR: {
|
|
1935
|
+
code: 'A397',
|
|
1936
|
+
message: 'Произошла ошибка при исправлении ошибок в тексте',
|
|
1937
|
+
httpCode: 500,
|
|
1938
|
+
},
|
|
1939
|
+
WRITER_UPDATE_DOCUMENT_CONTENTS_ERROR: {
|
|
1940
|
+
code: 'A398',
|
|
1941
|
+
message: 'Произошла ошибка при обновлении содержимого документа',
|
|
1942
|
+
httpCode: 500,
|
|
1943
|
+
},
|
|
1944
|
+
WRITER_GENERATE_TEXT_ERROR: {
|
|
1945
|
+
code: 'A399',
|
|
1946
|
+
message: 'Произошла ошибка при генерации текста',
|
|
1947
|
+
httpCode: 500,
|
|
1948
|
+
},
|
|
1949
|
+
WRITER_EXPORT_DOCX_ERROR: {
|
|
1950
|
+
code: 'A400',
|
|
1951
|
+
message: 'Произошла ошибка при экспорте документа в DOCX',
|
|
1952
|
+
httpCode: 500,
|
|
1953
|
+
},
|
|
1954
|
+
AI_MODEL_SUGGESTIONS_INVALID_PROMPT_LENGTH: {
|
|
1955
|
+
code: 'A401',
|
|
1956
|
+
message: 'Промпт не подходит для генерации предложений',
|
|
1957
|
+
httpCode: 400,
|
|
1958
|
+
},
|
|
1959
|
+
AI_MODEL_SUGGESTIONS_GENERATION_ERROR: {
|
|
1960
|
+
code: 'A402',
|
|
1961
|
+
message: 'Ошибка генерации предложения',
|
|
1962
|
+
httpCode: 500,
|
|
1963
|
+
},
|
|
1879
1964
|
VK_STATE_ERROR: {
|
|
1880
|
-
code: '
|
|
1965
|
+
code: 'A403',
|
|
1881
1966
|
message: 'Получен неверный state в ответе от API ВК',
|
|
1882
1967
|
httpCode: 400,
|
|
1883
1968
|
},
|
|
1884
1969
|
YANDEX_GET_ACCESS_TOKEN_ERROR: {
|
|
1885
|
-
code: '
|
|
1970
|
+
code: 'A404',
|
|
1886
1971
|
message: 'Ошибка при получении кода доступа от Яндекса',
|
|
1887
1972
|
httpCode: 500,
|
|
1888
1973
|
},
|
|
1889
1974
|
KIE_MIDJOURNEY_TASK_ERROR: {
|
|
1890
|
-
code: '
|
|
1975
|
+
code: 'A405',
|
|
1891
1976
|
message: 'Произошла ошибка при получении задачи Midjourney',
|
|
1892
1977
|
httpCode: 500,
|
|
1893
1978
|
},
|
|
1894
1979
|
KIE_MIDJOURNEY_GENERATION_ERROR: {
|
|
1895
|
-
code: '
|
|
1980
|
+
code: 'A406',
|
|
1896
1981
|
message: 'Произошла ошибка при генерации видео от Midjourney',
|
|
1897
1982
|
httpCode: 500,
|
|
1898
1983
|
},
|
|
1899
1984
|
KIE_MIDJOURNEY_NO_RESPONSE: {
|
|
1900
|
-
code: '
|
|
1985
|
+
code: 'A407',
|
|
1901
1986
|
message: 'Нет ответа от Midjourney, попробуйте позже',
|
|
1902
1987
|
httpCode: 503,
|
|
1903
1988
|
},
|
|
1904
1989
|
KIE_CONTENT_POLICY_VIOLATION: {
|
|
1905
|
-
code: '
|
|
1990
|
+
code: 'A408',
|
|
1906
1991
|
message: 'Запрос был отклонен, т.к. может не соответствовать политике безопасности сервиса',
|
|
1907
1992
|
httpCode: 400,
|
|
1908
1993
|
},
|
package/build/constants/index.js
CHANGED
|
@@ -47,6 +47,7 @@ __exportStar(require("./promocode"), exports);
|
|
|
47
47
|
__exportStar(require("./ui-notification"), exports);
|
|
48
48
|
__exportStar(require("./review"), exports);
|
|
49
49
|
__exportStar(require("./tool-video"), exports);
|
|
50
|
+
__exportStar(require("./writer"), exports);
|
|
50
51
|
__exportStar(require("./tool-image-editor"), exports);
|
|
51
52
|
__exportStar(require("./feedback"), exports);
|
|
52
53
|
__exportStar(require("./daily-streak"), exports);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./writer-document-section-type.enum"), exports);
|
|
18
|
+
__exportStar(require("./writer-document-stage.enum"), exports);
|
|
19
|
+
__exportStar(require("./writer-ai-action-pricing-type.enum"), exports);
|
|
20
|
+
__exportStar(require("./writer-ai-action-type.enum"), exports);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WRITER_AI_ACTION_PRICING_TYPE = void 0;
|
|
4
|
+
var WRITER_AI_ACTION_PRICING_TYPE;
|
|
5
|
+
(function (WRITER_AI_ACTION_PRICING_TYPE) {
|
|
6
|
+
WRITER_AI_ACTION_PRICING_TYPE["PER_CHARACTER"] = "PER_CHARACTER";
|
|
7
|
+
WRITER_AI_ACTION_PRICING_TYPE["FLAT"] = "FLAT";
|
|
8
|
+
})(WRITER_AI_ACTION_PRICING_TYPE || (exports.WRITER_AI_ACTION_PRICING_TYPE = WRITER_AI_ACTION_PRICING_TYPE = {}));
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WRITER_AI_ACTION_TYPE = void 0;
|
|
4
|
+
var WRITER_AI_ACTION_TYPE;
|
|
5
|
+
(function (WRITER_AI_ACTION_TYPE) {
|
|
6
|
+
WRITER_AI_ACTION_TYPE["PARAPHRASE"] = "PARAPHRASE";
|
|
7
|
+
WRITER_AI_ACTION_TYPE["EXTEND_TEXT"] = "EXTEND_TEXT";
|
|
8
|
+
WRITER_AI_ACTION_TYPE["SHORTEN_TEXT"] = "SHORTEN_TEXT";
|
|
9
|
+
WRITER_AI_ACTION_TYPE["GENERATE_TEXT"] = "GENERATE_TEXT";
|
|
10
|
+
WRITER_AI_ACTION_TYPE["FIX_ERRORS"] = "FIX_ERRORS";
|
|
11
|
+
})(WRITER_AI_ACTION_TYPE || (exports.WRITER_AI_ACTION_TYPE = WRITER_AI_ACTION_TYPE = {}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WRITER_DOCUMENT_SECTION_TYPE = void 0;
|
|
4
|
+
var WRITER_DOCUMENT_SECTION_TYPE;
|
|
5
|
+
(function (WRITER_DOCUMENT_SECTION_TYPE) {
|
|
6
|
+
WRITER_DOCUMENT_SECTION_TYPE["INTRODUCTION"] = "introduction";
|
|
7
|
+
WRITER_DOCUMENT_SECTION_TYPE["CONCLUSION"] = "conclusion";
|
|
8
|
+
WRITER_DOCUMENT_SECTION_TYPE["SECTION"] = "section";
|
|
9
|
+
})(WRITER_DOCUMENT_SECTION_TYPE || (exports.WRITER_DOCUMENT_SECTION_TYPE = WRITER_DOCUMENT_SECTION_TYPE = {}));
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WRITER_DOCUMENT_STAGE = void 0;
|
|
4
|
+
var WRITER_DOCUMENT_STAGE;
|
|
5
|
+
(function (WRITER_DOCUMENT_STAGE) {
|
|
6
|
+
WRITER_DOCUMENT_STAGE["CREATED"] = "CREATED";
|
|
7
|
+
WRITER_DOCUMENT_STAGE["GENERATING_OUTLINE"] = "GENERATING_OUTLINE";
|
|
8
|
+
WRITER_DOCUMENT_STAGE["OUTLINE_GENERATED"] = "OUTLINE_GENERATED";
|
|
9
|
+
WRITER_DOCUMENT_STAGE["OUTLINE_GENERATION_FAILED"] = "OUTLINE_GENERATION_FAILED";
|
|
10
|
+
WRITER_DOCUMENT_STAGE["GENERATING_CONTENT"] = "GENERATING_CONTENT";
|
|
11
|
+
WRITER_DOCUMENT_STAGE["CONTENT_GENERATED"] = "CONTENT_GENERATED";
|
|
12
|
+
WRITER_DOCUMENT_STAGE["CONTENT_GENERATION_FAILED"] = "CONTENT_GENERATION_FAILED";
|
|
13
|
+
WRITER_DOCUMENT_STAGE["DELETED"] = "DELETED";
|
|
14
|
+
})(WRITER_DOCUMENT_STAGE || (exports.WRITER_DOCUMENT_STAGE = WRITER_DOCUMENT_STAGE = {}));
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./enums"), exports);
|
package/build/helpers/index.js
CHANGED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CHARACTERS_PER_PAGE = void 0;
|
|
4
|
+
exports.pagesToCharacters = pagesToCharacters;
|
|
5
|
+
exports.charactersToPages = charactersToPages;
|
|
6
|
+
const WORD_FONT_SIZE_PT = 14;
|
|
7
|
+
const WORD_LINE_SPACING = 1.5;
|
|
8
|
+
const A4_WIDTH_MM = 210;
|
|
9
|
+
const A4_HEIGHT_MM = 297;
|
|
10
|
+
const MARGIN_TOP_MM = 20;
|
|
11
|
+
const MARGIN_BOTTOM_MM = 20;
|
|
12
|
+
const MARGIN_LEFT_MM = 30;
|
|
13
|
+
const MARGIN_RIGHT_MM = 10;
|
|
14
|
+
const FIRST_LINE_INDENT_MM = 12.5;
|
|
15
|
+
const MM_PER_POINT = 0.3527777778;
|
|
16
|
+
const TEXT_WIDTH_MM = A4_WIDTH_MM - MARGIN_LEFT_MM - MARGIN_RIGHT_MM;
|
|
17
|
+
const TEXT_HEIGHT_MM = A4_HEIGHT_MM - MARGIN_TOP_MM - MARGIN_BOTTOM_MM;
|
|
18
|
+
const LINE_HEIGHT_MM = WORD_FONT_SIZE_PT * WORD_LINE_SPACING * MM_PER_POINT;
|
|
19
|
+
const LINES_PER_PAGE = Math.floor(TEXT_HEIGHT_MM / LINE_HEIGHT_MM);
|
|
20
|
+
const AVG_CHAR_WIDTH_EM = 0.58;
|
|
21
|
+
const AVG_CHAR_WIDTH_MM = WORD_FONT_SIZE_PT * AVG_CHAR_WIDTH_EM * MM_PER_POINT;
|
|
22
|
+
const CHARS_PER_LINE = Math.floor(TEXT_WIDTH_MM / AVG_CHAR_WIDTH_MM);
|
|
23
|
+
const AVG_PARAGRAPHS_PER_PAGE = 4; // average paragraph count across typical student papers
|
|
24
|
+
const INDENT_CHARS_LOSS = Math.round((FIRST_LINE_INDENT_MM / AVG_CHAR_WIDTH_MM) * AVG_PARAGRAPHS_PER_PAGE);
|
|
25
|
+
const LAYOUT_FUDGE_FACTOR = 0.96;
|
|
26
|
+
exports.CHARACTERS_PER_PAGE = Math.round((LINES_PER_PAGE * CHARS_PER_LINE - INDENT_CHARS_LOSS) * LAYOUT_FUDGE_FACTOR);
|
|
27
|
+
function pagesToCharacters(pages) {
|
|
28
|
+
if (!Number.isFinite(pages) || pages <= 0)
|
|
29
|
+
return 0;
|
|
30
|
+
return Math.max(0, Math.round(pages * exports.CHARACTERS_PER_PAGE));
|
|
31
|
+
}
|
|
32
|
+
function charactersToPages(characters) {
|
|
33
|
+
if (!Number.isFinite(characters) || characters <= 0)
|
|
34
|
+
return 0;
|
|
35
|
+
const raw = characters / exports.CHARACTERS_PER_PAGE;
|
|
36
|
+
return Math.max(0, Math.ceil(raw));
|
|
37
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.calculateWriterAiActionPrice = calculateWriterAiActionPrice;
|
|
4
|
+
const constants_1 = require("../../constants");
|
|
5
|
+
function calculateWriterAiActionPrice(pricingRules, selectionText) {
|
|
6
|
+
switch (pricingRules.type) {
|
|
7
|
+
case constants_1.WRITER_AI_ACTION_PRICING_TYPE.PER_CHARACTER:
|
|
8
|
+
const characterCount = selectionText.length;
|
|
9
|
+
const price = characterCount * pricingRules.price;
|
|
10
|
+
return Math.max(1, Math.ceil(price));
|
|
11
|
+
case constants_1.WRITER_AI_ACTION_PRICING_TYPE.FLAT:
|
|
12
|
+
return Math.max(1, Math.ceil(pricingRules.price));
|
|
13
|
+
default:
|
|
14
|
+
throw new Error(`Unknown pricing type`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./calculate-writer-ai-action-price.util"), exports);
|
|
18
|
+
__exportStar(require("./calculate-writer-content-generation-price.util"), exports);
|
|
19
|
+
__exportStar(require("./calculate-page-count.util"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChatWithMessagesSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const chat_schema_1 = require("./chat.schema");
|
|
6
|
+
const message_schema_1 = require("./message.schema");
|
|
7
|
+
exports.ChatWithMessagesSchema = chat_schema_1.ChatSchema.extend({
|
|
8
|
+
messages: zod_1.z.array(message_schema_1.MessageSchema),
|
|
9
|
+
});
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ChatSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
const constants_1 = require("../constants");
|
|
6
|
-
const message_schema_1 = require("./message.schema");
|
|
7
6
|
exports.ChatSchema = zod_1.z.object({
|
|
8
7
|
uuid: zod_1.z.string().uuid(),
|
|
9
8
|
userId: zod_1.z.nullable(zod_1.z.string().uuid()),
|
|
@@ -12,7 +11,6 @@ exports.ChatSchema = zod_1.z.object({
|
|
|
12
11
|
aIModelId: zod_1.z.string().uuid(),
|
|
13
12
|
title: zod_1.z.string(),
|
|
14
13
|
chatStatus: zod_1.z.enum(Object.values(constants_1.CHAT_STATUS_ENUM)),
|
|
15
|
-
messages: zod_1.z.array(message_schema_1.MessageSchema),
|
|
16
14
|
folderId: zod_1.z.string().nullable(),
|
|
17
15
|
createdAt: zod_1.z.date(),
|
|
18
16
|
updatedAt: zod_1.z.date(),
|
package/build/models/index.js
CHANGED
|
@@ -20,6 +20,7 @@ __exportStar(require("./ai-model-formatted.schema"), exports);
|
|
|
20
20
|
__exportStar(require("./ai-model.schema"), exports);
|
|
21
21
|
__exportStar(require("./ai-vendor.schema"), exports);
|
|
22
22
|
__exportStar(require("./category.schema"), exports);
|
|
23
|
+
__exportStar(require("./chat-with-messages.schema"), exports);
|
|
23
24
|
__exportStar(require("./chat.schema"), exports);
|
|
24
25
|
__exportStar(require("./cloud-payments-receipt.schema"), exports);
|
|
25
26
|
__exportStar(require("./course-author.schema"), exports);
|
|
@@ -19,4 +19,5 @@ __exportStar(require("./paraphrase"), exports);
|
|
|
19
19
|
__exportStar(require("./stt"), exports);
|
|
20
20
|
__exportStar(require("./tts"), exports);
|
|
21
21
|
__exportStar(require("./video"), exports);
|
|
22
|
+
__exportStar(require("./writer"), exports);
|
|
22
23
|
__exportStar(require("./image-editor"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./writer-config.schema"), exports);
|
|
18
|
+
__exportStar(require("./writer-ai-action.schema"), exports);
|
|
19
|
+
__exportStar(require("./writer-document-outline.schema"), exports);
|
|
20
|
+
__exportStar(require("./writer-document.schema"), exports);
|
|
21
|
+
__exportStar(require("./writer-document-type.schema"), exports);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WriterAiActionSchema = exports.WriterAiActionPricingRulesSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../../constants");
|
|
6
|
+
exports.WriterAiActionPricingRulesSchema = zod_1.z.discriminatedUnion('type', [
|
|
7
|
+
zod_1.z.object({
|
|
8
|
+
type: zod_1.z.literal(constants_1.WRITER_AI_ACTION_PRICING_TYPE.PER_CHARACTER),
|
|
9
|
+
price: zod_1.z.number(),
|
|
10
|
+
}),
|
|
11
|
+
zod_1.z.object({
|
|
12
|
+
type: zod_1.z.literal(constants_1.WRITER_AI_ACTION_PRICING_TYPE.FLAT),
|
|
13
|
+
price: zod_1.z.number(),
|
|
14
|
+
}),
|
|
15
|
+
]);
|
|
16
|
+
exports.WriterAiActionSchema = zod_1.z.object({
|
|
17
|
+
uuid: zod_1.z.string(),
|
|
18
|
+
type: zod_1.z.nativeEnum(constants_1.WRITER_AI_ACTION_TYPE),
|
|
19
|
+
pricingRules: exports.WriterAiActionPricingRulesSchema,
|
|
20
|
+
maxPromptLength: zod_1.z.number(),
|
|
21
|
+
title: zod_1.z.string(),
|
|
22
|
+
icon: zod_1.z.string(),
|
|
23
|
+
order: zod_1.z.number(),
|
|
24
|
+
createdAt: zod_1.z.date(),
|
|
25
|
+
updatedAt: zod_1.z.date(),
|
|
26
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WriterConfigSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const writer_document_type_schema_1 = require("./writer-document-type.schema");
|
|
6
|
+
const writer_ai_action_schema_1 = require("./writer-ai-action.schema");
|
|
7
|
+
exports.WriterConfigSchema = zod_1.z.object({
|
|
8
|
+
maxPromptLength: zod_1.z.number(),
|
|
9
|
+
documentTypes: zod_1.z.array(writer_document_type_schema_1.WriterDocumentTypeSchema),
|
|
10
|
+
aiActions: zod_1.z.array(writer_ai_action_schema_1.WriterAiActionSchema),
|
|
11
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WriterDocumentOutlineSchema = exports.WriterDocumentOutlineSectionSchema = exports.WriterDocumentOutlineSubsectionSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const constants_1 = require("../../../constants");
|
|
6
|
+
exports.WriterDocumentOutlineSubsectionSchema = zod_1.z.object({
|
|
7
|
+
title: zod_1.z
|
|
8
|
+
.string()
|
|
9
|
+
.min(3)
|
|
10
|
+
.max(120)
|
|
11
|
+
.describe(`Concise title of the subsection. Meant to elaborate on its parent section's title.`),
|
|
12
|
+
});
|
|
13
|
+
exports.WriterDocumentOutlineSectionSchema = zod_1.z.object({
|
|
14
|
+
title: zod_1.z.string().min(3).max(120).describe(`Concise title of the paper section.`),
|
|
15
|
+
type: zod_1.z.nativeEnum(constants_1.WRITER_DOCUMENT_SECTION_TYPE),
|
|
16
|
+
subsections: zod_1.z
|
|
17
|
+
.array(exports.WriterDocumentOutlineSubsectionSchema)
|
|
18
|
+
.optional()
|
|
19
|
+
.describe(`Subsections of the paper section. Each subsection is a single idea that is a part of the parent section.`),
|
|
20
|
+
});
|
|
21
|
+
exports.WriterDocumentOutlineSchema = zod_1.z.array(exports.WriterDocumentOutlineSectionSchema);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WriterDocumentTypeSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const icon_variants_schema_1 = require("../../icon-variants.schema");
|
|
6
|
+
exports.WriterDocumentTypeSchema = zod_1.z.object({
|
|
7
|
+
uuid: zod_1.z.string().uuid(),
|
|
8
|
+
title: zod_1.z.string(),
|
|
9
|
+
icons: icon_variants_schema_1.IconVariantsSchema,
|
|
10
|
+
order: zod_1.z.number(),
|
|
11
|
+
minPages: zod_1.z.number(),
|
|
12
|
+
maxPages: zod_1.z.number(),
|
|
13
|
+
pageRange: zod_1.z.array(zod_1.z.number()),
|
|
14
|
+
createdAt: zod_1.z.date(),
|
|
15
|
+
updatedAt: zod_1.z.date(),
|
|
16
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WriterDocumentSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const writer_document_outline_schema_1 = require("./writer-document-outline.schema");
|
|
6
|
+
const constants_1 = require("../../../constants");
|
|
7
|
+
exports.WriterDocumentSchema = zod_1.z.object({
|
|
8
|
+
uuid: zod_1.z.string().uuid(),
|
|
9
|
+
prompt: zod_1.z.string(),
|
|
10
|
+
topic: zod_1.z.string(),
|
|
11
|
+
typeId: zod_1.z.string(),
|
|
12
|
+
stage: zod_1.z.nativeEnum(constants_1.WRITER_DOCUMENT_STAGE),
|
|
13
|
+
outline: writer_document_outline_schema_1.WriterDocumentOutlineSchema,
|
|
14
|
+
sourceMd: zod_1.z.string().nullable(),
|
|
15
|
+
finalMd: zod_1.z.string().nullable(),
|
|
16
|
+
userId: zod_1.z.string().nullable(),
|
|
17
|
+
unregisteredUserId: zod_1.z.string().nullable(),
|
|
18
|
+
pages: zod_1.z.number(),
|
|
19
|
+
createdAt: zod_1.z.date(),
|
|
20
|
+
updatedAt: zod_1.z.date(),
|
|
21
|
+
completedAt: zod_1.z.date().nullable(),
|
|
22
|
+
});
|
|
@@ -4,6 +4,10 @@ export namespace CheckLimitCommand {
|
|
|
4
4
|
export const ResponseSchema = z.object({
|
|
5
5
|
data: z.object({
|
|
6
6
|
totalTokenBalance: z.number(),
|
|
7
|
+
tokenBonusBalance: z.number(),
|
|
8
|
+
subscriptionBalance: z.number(),
|
|
9
|
+
productBalance: z.number(),
|
|
10
|
+
referralBonusBalance: z.number(),
|
|
7
11
|
}),
|
|
8
12
|
});
|
|
9
13
|
export type Response = z.infer<typeof ResponseSchema>;
|