@vitnode/core 1.2.0-canary.52 → 1.2.0-canary.54

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 (579) hide show
  1. package/config/next.config.ts +3 -3
  2. package/dist/scripts/get-config.d.ts +2 -2
  3. package/dist/scripts/get-config.d.ts.map +1 -1
  4. package/dist/scripts/plugin.d.ts.map +1 -1
  5. package/dist/scripts/prepare-database.d.ts +0 -1
  6. package/dist/scripts/prepare-database.d.ts.map +1 -1
  7. package/dist/scripts/prepare-plugins-files.d.ts.map +1 -1
  8. package/dist/scripts/scripts.js +3 -3
  9. package/dist/scripts/shared/file-utils.d.ts.map +1 -1
  10. package/dist/src/api/adapters/cron/node-cron.adapter.d.ts +3 -0
  11. package/dist/src/api/adapters/cron/node-cron.adapter.d.ts.map +1 -0
  12. package/dist/src/api/adapters/cron/node-cron.adapter.js +11 -0
  13. package/dist/src/api/adapters/email/nodemailer.d.ts +1 -1
  14. package/dist/src/api/adapters/email/nodemailer.js +3 -3
  15. package/dist/src/api/adapters/email/resend.d.ts +1 -1
  16. package/dist/src/api/adapters/email/resend.js +2 -2
  17. package/dist/src/api/adapters/sso/discord.d.ts +1 -1
  18. package/dist/src/api/adapters/sso/discord.d.ts.map +1 -1
  19. package/dist/src/api/adapters/sso/discord.js +21 -21
  20. package/dist/src/api/adapters/sso/facebook.d.ts +1 -1
  21. package/dist/src/api/adapters/sso/facebook.d.ts.map +1 -1
  22. package/dist/src/api/adapters/sso/facebook.js +23 -23
  23. package/dist/src/api/adapters/sso/google.d.ts +1 -1
  24. package/dist/src/api/adapters/sso/google.d.ts.map +1 -1
  25. package/dist/src/api/adapters/sso/google.js +21 -21
  26. package/dist/src/api/config.d.ts +3 -3
  27. package/dist/src/api/config.d.ts.map +1 -1
  28. package/dist/src/api/config.js +30 -18
  29. package/dist/src/api/lib/check-plugin-id.js +8 -8
  30. package/dist/src/api/lib/cron.d.ts +18 -0
  31. package/dist/src/api/lib/cron.d.ts.map +1 -0
  32. package/dist/src/api/lib/cron.js +22 -0
  33. package/dist/src/api/lib/logger-middleware.d.ts +1 -1
  34. package/dist/src/api/lib/logger-middleware.js +9 -9
  35. package/dist/src/api/lib/module.d.ts +6 -3
  36. package/dist/src/api/lib/module.d.ts.map +1 -1
  37. package/dist/src/api/lib/module.js +3 -2
  38. package/dist/src/api/lib/plugin.d.ts +4 -2
  39. package/dist/src/api/lib/plugin.d.ts.map +1 -1
  40. package/dist/src/api/lib/plugin.js +9 -1
  41. package/dist/src/api/lib/route.d.ts +2 -2
  42. package/dist/src/api/lib/route.d.ts.map +1 -1
  43. package/dist/src/api/lib/route.js +1 -1
  44. package/dist/src/api/lib/with-pagination.d.ts +7 -7
  45. package/dist/src/api/lib/with-pagination.d.ts.map +1 -1
  46. package/dist/src/api/lib/with-pagination.js +37 -24
  47. package/dist/src/api/middlewares/captcha.middleware.d.ts +1 -1
  48. package/dist/src/api/middlewares/captcha.middleware.d.ts.map +1 -1
  49. package/dist/src/api/middlewares/captcha.middleware.js +14 -13
  50. package/dist/src/api/middlewares/cron-auth.middleware.d.ts +3 -0
  51. package/dist/src/api/middlewares/cron-auth.middleware.d.ts.map +1 -0
  52. package/dist/src/api/middlewares/cron-auth.middleware.js +19 -0
  53. package/dist/src/api/middlewares/global.middleware.d.ts +18 -12
  54. package/dist/src/api/middlewares/global.middleware.d.ts.map +1 -1
  55. package/dist/src/api/middlewares/global.middleware.js +46 -34
  56. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts +3 -3
  57. package/dist/src/api/middlewares/rate-limiter.middleware.d.ts.map +1 -1
  58. package/dist/src/api/middlewares/rate-limiter.middleware.js +4 -4
  59. package/dist/src/api/models/device.d.ts +1 -1
  60. package/dist/src/api/models/device.d.ts.map +1 -1
  61. package/dist/src/api/models/device.js +13 -13
  62. package/dist/src/api/models/email.d.ts +15 -15
  63. package/dist/src/api/models/email.d.ts.map +1 -1
  64. package/dist/src/api/models/email.js +11 -10
  65. package/dist/src/api/models/password.js +9 -9
  66. package/dist/src/api/models/session-admin.d.ts +1 -1
  67. package/dist/src/api/models/session-admin.d.ts.map +1 -1
  68. package/dist/src/api/models/session-admin.js +19 -19
  69. package/dist/src/api/models/session.d.ts +1 -1
  70. package/dist/src/api/models/session.d.ts.map +1 -1
  71. package/dist/src/api/models/session.js +17 -17
  72. package/dist/src/api/models/sso.d.ts +1 -1
  73. package/dist/src/api/models/sso.d.ts.map +1 -1
  74. package/dist/src/api/models/sso.js +22 -25
  75. package/dist/src/api/models/user/get-user-by-id.d.ts +1 -1
  76. package/dist/src/api/models/user/get-user-by-id.d.ts.map +1 -1
  77. package/dist/src/api/models/user/get-user-by-id.js +1 -1
  78. package/dist/src/api/models/user/sign-in-with-passwords.d.ts +1 -1
  79. package/dist/src/api/models/user/sign-in-with-passwords.d.ts.map +1 -1
  80. package/dist/src/api/models/user/sign-in-with-passwords.js +1 -1
  81. package/dist/src/api/models/user/sign-up.d.ts +2 -2
  82. package/dist/src/api/models/user/sign-up.d.ts.map +1 -1
  83. package/dist/src/api/models/user/sign-up.js +11 -12
  84. package/dist/src/api/models/user.d.ts +1 -1
  85. package/dist/src/api/models/user.d.ts.map +1 -1
  86. package/dist/src/api/modules/admin/admin.module.d.ts +166 -4
  87. package/dist/src/api/modules/admin/admin.module.d.ts.map +1 -1
  88. package/dist/src/api/modules/admin/admin.module.js +7 -4
  89. package/dist/src/api/modules/admin/advanced/advanced.admin.module.d.ts +164 -0
  90. package/dist/src/api/modules/admin/advanced/advanced.admin.module.d.ts.map +1 -0
  91. package/dist/src/api/modules/admin/advanced/advanced.admin.module.js +11 -0
  92. package/dist/src/api/modules/admin/advanced/cron/cron.admin.module.d.ts +164 -0
  93. package/dist/src/api/modules/admin/advanced/cron/cron.admin.module.d.ts.map +1 -0
  94. package/dist/src/api/modules/admin/advanced/cron/cron.admin.module.js +12 -0
  95. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.d.ts +98 -0
  96. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.d.ts.map +1 -0
  97. package/dist/src/api/modules/admin/advanced/cron/routes/get.route.js +66 -0
  98. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.d.ts +70 -0
  99. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.d.ts.map +1 -0
  100. package/dist/src/api/modules/admin/advanced/cron/routes/run.route.js +95 -0
  101. package/dist/src/api/modules/admin/debug/debug.admin.module.d.ts +1 -1
  102. package/dist/src/api/modules/admin/debug/debug.admin.module.js +2 -2
  103. package/dist/src/api/modules/admin/debug/routes/logs.route.d.ts +2 -2
  104. package/dist/src/api/modules/admin/debug/routes/logs.route.js +17 -17
  105. package/dist/src/api/modules/admin/routes/session.route.d.ts +2 -2
  106. package/dist/src/api/modules/admin/routes/session.route.js +8 -8
  107. package/dist/src/api/modules/admin/users/routes/list.route.d.ts +2 -2
  108. package/dist/src/api/modules/admin/users/routes/list.route.js +13 -13
  109. package/dist/src/api/modules/admin/users/routes/users.route.d.ts +5 -5
  110. package/dist/src/api/modules/admin/users/routes/users.route.js +16 -16
  111. package/dist/src/api/modules/admin/users/users.admin.module.d.ts +1 -1
  112. package/dist/src/api/modules/admin/users/users.admin.module.js +2 -2
  113. package/dist/src/api/modules/cron/cron/clean.cron.d.ts +2 -0
  114. package/dist/src/api/modules/cron/cron/clean.cron.d.ts.map +1 -0
  115. package/dist/src/api/modules/cron/cron/clean.cron.js +24 -0
  116. package/dist/src/api/modules/cron/cron.module.d.ts +26 -0
  117. package/dist/src/api/modules/cron/cron.module.d.ts.map +1 -0
  118. package/dist/src/api/modules/cron/cron.module.js +14 -0
  119. package/dist/src/api/modules/cron/helpers/process-cron-jobs.d.ts +36 -0
  120. package/dist/src/api/modules/cron/helpers/process-cron-jobs.d.ts.map +1 -0
  121. package/dist/src/api/modules/cron/helpers/process-cron-jobs.js +72 -0
  122. package/dist/src/api/modules/cron/routes/cron.route.d.ts +27 -0
  123. package/dist/src/api/modules/cron/routes/cron.route.d.ts.map +1 -0
  124. package/dist/src/api/modules/cron/routes/cron.route.js +95 -0
  125. package/dist/src/api/modules/middleware/middleware.module.d.ts +1 -1
  126. package/dist/src/api/modules/middleware/middleware.module.js +2 -2
  127. package/dist/src/api/modules/middleware/route.d.ts +2 -2
  128. package/dist/src/api/modules/middleware/route.js +13 -13
  129. package/dist/src/api/modules/users/routes/change-password.route.d.ts +2 -2
  130. package/dist/src/api/modules/users/routes/change-password.route.js +14 -14
  131. package/dist/src/api/modules/users/routes/reset-passowrd.route.d.ts +2 -2
  132. package/dist/src/api/modules/users/routes/reset-passowrd.route.js +18 -18
  133. package/dist/src/api/modules/users/routes/session.route.d.ts +2 -2
  134. package/dist/src/api/modules/users/routes/session.route.js +7 -7
  135. package/dist/src/api/modules/users/routes/sign-in.route.d.ts +3 -3
  136. package/dist/src/api/modules/users/routes/sign-in.route.js +11 -11
  137. package/dist/src/api/modules/users/routes/sign-out.route.d.ts +2 -2
  138. package/dist/src/api/modules/users/routes/sign-out.route.js +8 -8
  139. package/dist/src/api/modules/users/routes/sign-up.route.d.ts +3 -3
  140. package/dist/src/api/modules/users/routes/sign-up.route.js +15 -15
  141. package/dist/src/api/modules/users/routes/test.route.d.ts +3 -3
  142. package/dist/src/api/modules/users/routes/test.route.js +10 -10
  143. package/dist/src/api/modules/users/sso/routes/callback.route.d.ts +2 -2
  144. package/dist/src/api/modules/users/sso/routes/callback.route.js +9 -9
  145. package/dist/src/api/modules/users/sso/routes/create-url.route.d.ts +2 -2
  146. package/dist/src/api/modules/users/sso/routes/create-url.route.js +7 -7
  147. package/dist/src/api/modules/users/sso/sso.module.d.ts +2 -2
  148. package/dist/src/api/modules/users/sso/sso.module.js +2 -2
  149. package/dist/src/api/modules/users/users.module.d.ts +12 -12
  150. package/dist/src/api/modules/users/users.module.js +2 -2
  151. package/dist/src/api/plugin.d.ts.map +1 -1
  152. package/dist/src/api/plugin.js +4 -2
  153. package/dist/src/app/login/page.d.ts +1 -1
  154. package/dist/src/app/login/page.js +2 -2
  155. package/dist/src/app/login/reset-password/page.d.ts +2 -2
  156. package/dist/src/app/login/reset-password/page.js +2 -2
  157. package/dist/src/app/register/page.d.ts +1 -1
  158. package/dist/src/app/register/page.js +2 -2
  159. package/dist/src/app_admin/core/advanced/cron/page.d.ts +11 -0
  160. package/dist/src/app_admin/core/advanced/cron/page.d.ts.map +1 -0
  161. package/dist/src/app_admin/core/advanced/cron/page.js +42 -0
  162. package/dist/src/app_admin/core/debug/page.d.ts +1 -1
  163. package/dist/src/app_admin/core/debug/page.js +8 -8
  164. package/dist/src/app_admin/core/users/page.d.ts +2 -2
  165. package/dist/src/app_admin/core/users/page.d.ts.map +1 -1
  166. package/dist/src/app_admin/core/users/page.js +7 -7
  167. package/dist/src/components/avatar.d.ts +1 -1
  168. package/dist/src/components/avatar.js +1 -1
  169. package/dist/src/components/confirm-action/confirm-action-alert-dialog.d.ts +2 -2
  170. package/dist/src/components/confirm-action/confirm-action-alert-dialog.js +5 -5
  171. package/dist/src/components/confirm-action/content.d.ts.map +1 -1
  172. package/dist/src/components/confirm-action/content.js +3 -4
  173. package/dist/src/components/date-format.js +8 -8
  174. package/dist/src/components/form/auto-form.d.ts +16 -16
  175. package/dist/src/components/form/auto-form.d.ts.map +1 -1
  176. package/dist/src/components/form/auto-form.js +13 -12
  177. package/dist/src/components/form/common/desc.js +1 -1
  178. package/dist/src/components/form/common/label.d.ts +1 -1
  179. package/dist/src/components/form/common/label.js +1 -1
  180. package/dist/src/components/form/fields/checkbox.d.ts +2 -2
  181. package/dist/src/components/form/fields/checkbox.d.ts.map +1 -1
  182. package/dist/src/components/form/fields/combobox-async.d.ts +3 -3
  183. package/dist/src/components/form/fields/combobox-async.d.ts.map +1 -1
  184. package/dist/src/components/form/fields/combobox-async.js +29 -23
  185. package/dist/src/components/form/fields/combobox.d.ts +3 -3
  186. package/dist/src/components/form/fields/combobox.d.ts.map +1 -1
  187. package/dist/src/components/form/fields/combobox.js +6 -7
  188. package/dist/src/components/form/fields/input.d.ts +2 -2
  189. package/dist/src/components/form/fields/input.d.ts.map +1 -1
  190. package/dist/src/components/form/fields/input.js +2 -2
  191. package/dist/src/components/form/fields/radio-group.d.ts +3 -3
  192. package/dist/src/components/form/fields/radio-group.d.ts.map +1 -1
  193. package/dist/src/components/form/fields/radio-group.js +0 -1
  194. package/dist/src/components/form/fields/select.d.ts +3 -3
  195. package/dist/src/components/form/fields/select.d.ts.map +1 -1
  196. package/dist/src/components/form/fields/select.js +2 -3
  197. package/dist/src/components/form/fields/switch.d.ts +2 -2
  198. package/dist/src/components/form/fields/switch.d.ts.map +1 -1
  199. package/dist/src/components/form/fields/textarea.d.ts +3 -3
  200. package/dist/src/components/form/fields/textarea.d.ts.map +1 -1
  201. package/dist/src/components/form/fields/textarea.js +1 -2
  202. package/dist/src/components/i18n-provider.d.ts +2 -2
  203. package/dist/src/components/i18n-provider.js +3 -3
  204. package/dist/src/components/logo-vitnode.d.ts.map +1 -1
  205. package/dist/src/components/logo-vitnode.js +8 -2
  206. package/dist/src/components/switchers/langs/{language-swietcher.d.ts → language-switcher.d.ts} +2 -2
  207. package/dist/src/components/switchers/langs/language-switcher.d.ts.map +1 -0
  208. package/dist/src/components/switchers/langs/{language-swietcher.js → language-switcher.js} +3 -3
  209. package/dist/src/components/switchers/themes/theme-switcher.js +4 -4
  210. package/dist/src/components/table/content.d.ts +1 -1
  211. package/dist/src/components/table/content.d.ts.map +1 -1
  212. package/dist/src/components/table/content.js +5 -5
  213. package/dist/src/components/table/data-table.d.ts +7 -7
  214. package/dist/src/components/table/data-table.d.ts.map +1 -1
  215. package/dist/src/components/table/data-table.js +22 -15
  216. package/dist/src/components/table/order-table-head.d.ts +4 -4
  217. package/dist/src/components/table/order-table-head.d.ts.map +1 -1
  218. package/dist/src/components/table/order-table-head.js +20 -9
  219. package/dist/src/components/table/pagination.js +19 -19
  220. package/dist/src/components/tiptap/extension.d.ts +4 -0
  221. package/dist/src/components/tiptap/extension.d.ts.map +1 -0
  222. package/dist/src/components/tiptap/extension.js +26 -0
  223. package/dist/src/components/tiptap/toolbar/actions/bold-action.d.ts +2 -0
  224. package/dist/src/components/tiptap/toolbar/actions/bold-action.d.ts.map +1 -0
  225. package/dist/src/components/tiptap/toolbar/actions/bold-action.js +39 -0
  226. package/dist/src/components/tiptap/toolbar/actions/headings-action.d.ts +2 -0
  227. package/dist/src/components/tiptap/toolbar/actions/headings-action.d.ts.map +1 -0
  228. package/dist/src/components/tiptap/toolbar/actions/headings-action.js +94 -0
  229. package/dist/src/components/tiptap/toolbar/actions/italic-action.d.ts +2 -0
  230. package/dist/src/components/tiptap/toolbar/actions/italic-action.d.ts.map +1 -0
  231. package/dist/src/components/tiptap/toolbar/actions/italic-action.js +38 -0
  232. package/dist/src/components/tiptap/toolbar/actions/list-action.d.ts +2 -0
  233. package/dist/src/components/tiptap/toolbar/actions/list-action.d.ts.map +1 -0
  234. package/dist/src/components/tiptap/toolbar/actions/list-action.js +60 -0
  235. package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.d.ts +2 -0
  236. package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.d.ts.map +1 -0
  237. package/dist/src/components/tiptap/toolbar/actions/text-format-more/text-format-more.js +59 -0
  238. package/dist/src/components/tiptap/toolbar/actions/underline-action.d.ts +2 -0
  239. package/dist/src/components/tiptap/toolbar/actions/underline-action.d.ts.map +1 -0
  240. package/dist/src/components/tiptap/toolbar/actions/underline-action.js +38 -0
  241. package/dist/src/components/tiptap/toolbar/actions/undo-redo-actions.d.ts +2 -0
  242. package/dist/src/components/tiptap/toolbar/actions/undo-redo-actions.d.ts.map +1 -0
  243. package/dist/src/components/tiptap/toolbar/actions/undo-redo-actions.js +63 -0
  244. package/dist/src/components/tiptap/toolbar/actions/utils/tooltip-shortcut.d.ts +4 -0
  245. package/dist/src/components/tiptap/toolbar/actions/utils/tooltip-shortcut.d.ts.map +1 -0
  246. package/dist/src/components/tiptap/toolbar/actions/utils/tooltip-shortcut.js +11 -0
  247. package/dist/src/components/tiptap/toolbar/tiptap-toolbar.d.ts +5 -0
  248. package/dist/src/components/tiptap/toolbar/tiptap-toolbar.d.ts.map +1 -0
  249. package/dist/src/components/tiptap/toolbar/tiptap-toolbar.js +35 -0
  250. package/dist/src/components/tiptap/toolbar/use-toolbar-editor.d.ts +9 -0
  251. package/dist/src/components/tiptap/toolbar/use-toolbar-editor.d.ts.map +1 -0
  252. package/dist/src/components/tiptap/toolbar/use-toolbar-editor.js +5 -0
  253. package/dist/src/components/ui/accordion.d.ts +2 -2
  254. package/dist/src/components/ui/accordion.d.ts.map +1 -1
  255. package/dist/src/components/ui/accordion.js +4 -5
  256. package/dist/src/components/ui/alert-dialog.d.ts +7 -7
  257. package/dist/src/components/ui/alert-dialog.d.ts.map +1 -1
  258. package/dist/src/components/ui/alert-dialog.js +12 -12
  259. package/dist/src/components/ui/alert.d.ts +5 -5
  260. package/dist/src/components/ui/alert.d.ts.map +1 -1
  261. package/dist/src/components/ui/alert.js +6 -7
  262. package/dist/src/components/ui/badge.d.ts +3 -3
  263. package/dist/src/components/ui/badge.d.ts.map +1 -1
  264. package/dist/src/components/ui/badge.js +7 -8
  265. package/dist/src/components/ui/button-client.d.ts +1 -1
  266. package/dist/src/components/ui/button-client.d.ts.map +1 -1
  267. package/dist/src/components/ui/button-client.js +10 -10
  268. package/dist/src/components/ui/button.d.ts +8 -8
  269. package/dist/src/components/ui/button.d.ts.map +1 -1
  270. package/dist/src/components/ui/button.js +14 -15
  271. package/dist/src/components/ui/card.d.ts +8 -8
  272. package/dist/src/components/ui/card.js +7 -7
  273. package/dist/src/components/ui/checkbox.d.ts +2 -2
  274. package/dist/src/components/ui/checkbox.d.ts.map +1 -1
  275. package/dist/src/components/ui/checkbox.js +2 -3
  276. package/dist/src/components/ui/collapsible.d.ts +1 -1
  277. package/dist/src/components/ui/collapsible.js +1 -1
  278. package/dist/src/components/ui/command.d.ts +4 -4
  279. package/dist/src/components/ui/command.d.ts.map +1 -1
  280. package/dist/src/components/ui/command.js +9 -10
  281. package/dist/src/components/ui/context-menu.d.ts +4 -4
  282. package/dist/src/components/ui/context-menu.d.ts.map +1 -1
  283. package/dist/src/components/ui/context-menu.js +7 -8
  284. package/dist/src/components/ui/dialog.d.ts +6 -6
  285. package/dist/src/components/ui/dialog.d.ts.map +1 -1
  286. package/dist/src/components/ui/dialog.js +16 -16
  287. package/dist/src/components/ui/drawer.d.ts +4 -4
  288. package/dist/src/components/ui/drawer.d.ts.map +1 -1
  289. package/dist/src/components/ui/drawer.js +7 -8
  290. package/dist/src/components/ui/dropdown-menu.d.ts +4 -4
  291. package/dist/src/components/ui/dropdown-menu.d.ts.map +1 -1
  292. package/dist/src/components/ui/dropdown-menu.js +8 -9
  293. package/dist/src/components/ui/editor-content.d.ts +4 -0
  294. package/dist/src/components/ui/editor-content.d.ts.map +1 -0
  295. package/dist/src/components/ui/editor-content.js +10 -0
  296. package/dist/src/components/ui/editor.d.ts +6 -0
  297. package/dist/src/components/ui/editor.d.ts.map +1 -0
  298. package/dist/src/components/ui/editor.js +35 -0
  299. package/dist/src/components/ui/form.d.ts +10 -10
  300. package/dist/src/components/ui/form.d.ts.map +1 -1
  301. package/dist/src/components/ui/form.js +15 -15
  302. package/dist/src/components/ui/header-content.js +1 -1
  303. package/dist/src/components/ui/hover-card.d.ts +2 -2
  304. package/dist/src/components/ui/hover-card.d.ts.map +1 -1
  305. package/dist/src/components/ui/hover-card.js +3 -4
  306. package/dist/src/components/ui/input-otp.d.ts +5 -5
  307. package/dist/src/components/ui/input-otp.d.ts.map +1 -1
  308. package/dist/src/components/ui/input-otp.js +6 -7
  309. package/dist/src/components/ui/input.d.ts +2 -2
  310. package/dist/src/components/ui/input.d.ts.map +1 -1
  311. package/dist/src/components/ui/input.js +1 -2
  312. package/dist/src/components/ui/label.d.ts +2 -2
  313. package/dist/src/components/ui/label.d.ts.map +1 -1
  314. package/dist/src/components/ui/label.js +2 -3
  315. package/dist/src/components/ui/loader.js +3 -3
  316. package/dist/src/components/ui/menubar.d.ts +4 -4
  317. package/dist/src/components/ui/menubar.d.ts.map +1 -1
  318. package/dist/src/components/ui/menubar.js +11 -12
  319. package/dist/src/components/ui/navigation-menu.d.ts +2 -2
  320. package/dist/src/components/ui/navigation-menu.d.ts.map +1 -1
  321. package/dist/src/components/ui/navigation-menu.js +10 -11
  322. package/dist/src/components/ui/popover.d.ts +2 -2
  323. package/dist/src/components/ui/popover.d.ts.map +1 -1
  324. package/dist/src/components/ui/popover.js +3 -4
  325. package/dist/src/components/ui/progress.d.ts +2 -2
  326. package/dist/src/components/ui/progress.d.ts.map +1 -1
  327. package/dist/src/components/ui/progress.js +2 -3
  328. package/dist/src/components/ui/radio-group.d.ts +2 -2
  329. package/dist/src/components/ui/radio-group.d.ts.map +1 -1
  330. package/dist/src/components/ui/radio-group.js +3 -4
  331. package/dist/src/components/ui/select.d.ts +3 -3
  332. package/dist/src/components/ui/select.d.ts.map +1 -1
  333. package/dist/src/components/ui/select.js +9 -10
  334. package/dist/src/components/ui/separator.d.ts +2 -2
  335. package/dist/src/components/ui/separator.d.ts.map +1 -1
  336. package/dist/src/components/ui/separator.js +3 -4
  337. package/dist/src/components/ui/sheet.d.ts +5 -5
  338. package/dist/src/components/ui/sheet.d.ts.map +1 -1
  339. package/dist/src/components/ui/sheet.js +8 -9
  340. package/dist/src/components/ui/sidebar.d.ts +31 -31
  341. package/dist/src/components/ui/sidebar.d.ts.map +1 -1
  342. package/dist/src/components/ui/sidebar.js +78 -80
  343. package/dist/src/components/ui/skeleton.d.ts +1 -1
  344. package/dist/src/components/ui/skeleton.js +1 -1
  345. package/dist/src/components/ui/slider.d.ts +2 -2
  346. package/dist/src/components/ui/slider.d.ts.map +1 -1
  347. package/dist/src/components/ui/slider.js +16 -8
  348. package/dist/src/components/ui/sonner.d.ts +1 -1
  349. package/dist/src/components/ui/sonner.d.ts.map +1 -1
  350. package/dist/src/components/ui/sonner.js +6 -6
  351. package/dist/src/components/ui/switch.d.ts +2 -2
  352. package/dist/src/components/ui/switch.d.ts.map +1 -1
  353. package/dist/src/components/ui/switch.js +3 -4
  354. package/dist/src/components/ui/table.d.ts +9 -9
  355. package/dist/src/components/ui/table.d.ts.map +1 -1
  356. package/dist/src/components/ui/table.js +8 -9
  357. package/dist/src/components/ui/tabs.d.ts +2 -2
  358. package/dist/src/components/ui/tabs.d.ts.map +1 -1
  359. package/dist/src/components/ui/tabs.js +4 -5
  360. package/dist/src/components/ui/textarea.d.ts +2 -2
  361. package/dist/src/components/ui/textarea.d.ts.map +1 -1
  362. package/dist/src/components/ui/textarea.js +1 -2
  363. package/dist/src/components/ui/toggle-group.d.ts +4 -4
  364. package/dist/src/components/ui/toggle-group.d.ts.map +1 -1
  365. package/dist/src/components/ui/toggle-group.js +6 -6
  366. package/dist/src/components/ui/toggle.d.ts +3 -3
  367. package/dist/src/components/ui/toggle.d.ts.map +1 -1
  368. package/dist/src/components/ui/toggle.js +8 -9
  369. package/dist/src/components/ui/tooltip.d.ts +6 -3
  370. package/dist/src/components/ui/tooltip.d.ts.map +1 -1
  371. package/dist/src/components/ui/tooltip.js +20 -5
  372. package/dist/src/config.js +2 -2
  373. package/dist/src/database/admins.js +10 -10
  374. package/dist/src/database/cron.d.ts +171 -0
  375. package/dist/src/database/cron.d.ts.map +1 -0
  376. package/dist/src/database/cron.js +22 -0
  377. package/dist/src/database/languages.js +7 -7
  378. package/dist/src/database/logs.js +9 -9
  379. package/dist/src/database/moderators.js +5 -5
  380. package/dist/src/database/roles.js +1 -1
  381. package/dist/src/database/sessions.js +6 -6
  382. package/dist/src/database/users.d.ts +2 -2
  383. package/dist/src/database/users.js +14 -14
  384. package/dist/src/drizzle.config.d.ts +2 -2
  385. package/dist/src/drizzle.config.d.ts.map +1 -1
  386. package/dist/src/drizzle.config.js +19 -12
  387. package/dist/src/emails/default-template.d.ts +3 -3
  388. package/dist/src/emails/default-template.d.ts.map +1 -1
  389. package/dist/src/emails/default-template.js +39 -38
  390. package/dist/src/emails/reset-password.d.ts +1 -1
  391. package/dist/src/emails/reset-password.d.ts.map +1 -1
  392. package/dist/src/emails/reset-password.js +51 -51
  393. package/dist/src/emails/ui/button.d.ts +2 -2
  394. package/dist/src/emails/ui/button.js +13 -13
  395. package/dist/src/emails/ui/card.d.ts +1 -1
  396. package/dist/src/emails/ui/card.js +6 -6
  397. package/dist/src/hooks/use-before-unload.js +3 -3
  398. package/dist/src/hooks/use-captcha.d.ts +2 -2
  399. package/dist/src/hooks/use-captcha.d.ts.map +1 -1
  400. package/dist/src/hooks/use-captcha.js +29 -37
  401. package/dist/src/hooks/use-mobile.d.ts.map +1 -1
  402. package/dist/src/hooks/use-mobile.js +3 -4
  403. package/dist/src/lib/api/get-middleware-api.js +4 -4
  404. package/dist/src/lib/api/get-next-cron-run-date.d.ts +2 -0
  405. package/dist/src/lib/api/get-next-cron-run-date.d.ts.map +1 -0
  406. package/dist/src/lib/api/get-next-cron-run-date.js +14 -0
  407. package/dist/src/lib/api/get-next-cron-run-date.test.d.ts +2 -0
  408. package/dist/src/lib/api/get-next-cron-run-date.test.d.ts.map +1 -0
  409. package/dist/src/lib/api/get-next-cron-run-date.test.js +55 -0
  410. package/dist/src/lib/api/get-session-admin-api.js +5 -5
  411. package/dist/src/lib/api/get-session-api.js +4 -4
  412. package/dist/src/lib/api/should-cron-job-run.d.ts +2 -0
  413. package/dist/src/lib/api/should-cron-job-run.d.ts.map +1 -0
  414. package/dist/src/lib/api/should-cron-job-run.js +16 -0
  415. package/dist/src/lib/api/should-cron-job-run.test.d.ts +2 -0
  416. package/dist/src/lib/api/should-cron-job-run.test.d.ts.map +1 -0
  417. package/dist/src/lib/api/should-cron-job-run.test.js +213 -0
  418. package/dist/src/lib/colors.js +28 -19
  419. package/dist/src/lib/colors.test.js +60 -60
  420. package/dist/src/lib/config.d.ts +1 -0
  421. package/dist/src/lib/config.d.ts.map +1 -1
  422. package/dist/src/lib/config.js +8 -6
  423. package/dist/src/lib/ctrl-or-command-character.d.ts +2 -0
  424. package/dist/src/lib/ctrl-or-command-character.d.ts.map +1 -0
  425. package/dist/src/lib/ctrl-or-command-character.js +9 -0
  426. package/dist/src/lib/fetcher/cookie-from-string-to-object.d.ts.map +1 -1
  427. package/dist/src/lib/fetcher/cookie-from-string-to-object.js +1 -1
  428. package/dist/src/lib/fetcher/cookie-from-string-to-object.test.js +27 -27
  429. package/dist/src/lib/fetcher/core.d.ts +5 -5
  430. package/dist/src/lib/fetcher/core.d.ts.map +1 -1
  431. package/dist/src/lib/fetcher/core.js +11 -10
  432. package/dist/src/lib/fetcher/helpers-server.d.ts +1 -1
  433. package/dist/src/lib/fetcher/helpers-server.js +1 -1
  434. package/dist/src/lib/fetcher/helpers.test.js +17 -17
  435. package/dist/src/lib/fetcher/types.d.ts +26 -26
  436. package/dist/src/lib/fetcher/types.d.ts.map +1 -1
  437. package/dist/src/lib/fetcher-client.d.ts +4 -4
  438. package/dist/src/lib/fetcher-client.d.ts.map +1 -1
  439. package/dist/src/lib/fetcher-client.js +3 -3
  440. package/dist/src/lib/fetcher.d.ts +5 -5
  441. package/dist/src/lib/fetcher.d.ts.map +1 -1
  442. package/dist/src/lib/fetcher.js +4 -4
  443. package/dist/src/lib/helpers/auto-form.d.ts +3 -3
  444. package/dist/src/lib/helpers/auto-form.d.ts.map +1 -1
  445. package/dist/src/lib/helpers/auto-form.js +16 -15
  446. package/dist/src/lib/helpers/auto-form.test.js +129 -129
  447. package/dist/src/lib/navigation.d.ts +3 -3
  448. package/dist/src/lib/navigation.d.ts.map +1 -1
  449. package/dist/src/lib/plugin.d.ts +3 -3
  450. package/dist/src/lib/special-characters.js +1 -1
  451. package/dist/src/lib/special-characters.test.js +36 -36
  452. package/dist/src/lib/utils.d.ts +1 -1
  453. package/dist/src/tests/setup.d.ts +1 -1
  454. package/dist/src/views/admin/layouts/admin-layout.d.ts +1 -1
  455. package/dist/src/views/admin/layouts/admin-layout.d.ts.map +1 -1
  456. package/dist/src/views/admin/layouts/admin-layout.js +5 -9
  457. package/dist/src/views/admin/layouts/sidebar/nav/item.d.ts.map +1 -1
  458. package/dist/src/views/admin/layouts/sidebar/nav/item.js +8 -12
  459. package/dist/src/views/admin/layouts/sidebar/nav/nav.d.ts +1 -1
  460. package/dist/src/views/admin/layouts/sidebar/nav/nav.d.ts.map +1 -1
  461. package/dist/src/views/admin/layouts/sidebar/nav/nav.js +23 -12
  462. package/dist/src/views/admin/layouts/sidebar/sidebar.d.ts +1 -1
  463. package/dist/src/views/admin/layouts/sidebar/sidebar.d.ts.map +1 -1
  464. package/dist/src/views/admin/layouts/sidebar/sidebar.js +1 -2
  465. package/dist/src/views/admin/layouts/sidebar/sign-out.js +1 -1
  466. package/dist/src/views/admin/layouts/user-bar/client.js +5 -5
  467. package/dist/src/views/admin/layouts/user-bar/user-bar.d.ts +1 -1
  468. package/dist/src/views/admin/layouts/user-bar/user-bar.d.ts.map +1 -1
  469. package/dist/src/views/admin/layouts/user-bar/user-bar.js +1 -1
  470. package/dist/src/views/admin/sign-in/sign-in-admin-view.js +1 -1
  471. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.d.ts +5 -0
  472. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.d.ts.map +1 -0
  473. package/dist/src/views/admin/views/core/advanced/cron/cron-table-view.js +97 -0
  474. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.d.ts +4 -0
  475. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.d.ts.map +1 -0
  476. package/dist/src/views/admin/views/core/advanced/cron/run-action/mutation-api.js +23 -0
  477. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.d.ts +4 -0
  478. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.d.ts.map +1 -0
  479. package/dist/src/views/admin/views/core/advanced/cron/run-action/run-action.js +37 -0
  480. package/dist/src/views/admin/views/core/dashboard/dashboard-admin-view.js +3 -3
  481. package/dist/src/views/admin/views/core/debug/actions/clear-cache/clear-cache.js +10 -10
  482. package/dist/src/views/admin/views/core/debug/actions/clear-cache/mutation-api.js +2 -2
  483. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/content.d.ts +1 -1
  484. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/content.d.ts.map +1 -1
  485. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/content.js +15 -15
  486. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.d.ts +1 -1
  487. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.d.ts.map +1 -1
  488. package/dist/src/views/admin/views/core/debug/system-logs/actions/more/more.js +16 -25
  489. package/dist/src/views/admin/views/core/debug/system-logs/badges/badge-status.d.ts.map +1 -1
  490. package/dist/src/views/admin/views/core/debug/system-logs/badges/badge-status.js +7 -1
  491. package/dist/src/views/admin/views/core/debug/system-logs/badges/badge-type-log.d.ts +1 -1
  492. package/dist/src/views/admin/views/core/debug/system-logs/badges/badge-type-log.js +3 -3
  493. package/dist/src/views/admin/views/core/debug/system-logs/system-logs-view.js +25 -25
  494. package/dist/src/views/admin/views/core/test.d.ts.map +1 -1
  495. package/dist/src/views/admin/views/core/test.js +134 -124
  496. package/dist/src/views/admin/views/core/users/users-admin-view.d.ts.map +1 -1
  497. package/dist/src/views/admin/views/core/users/users-admin-view.js +13 -14
  498. package/dist/src/views/auth/password-reset/change-password-form/form.js +9 -9
  499. package/dist/src/views/auth/password-reset/change-password-form/mutation-api.d.ts +2 -2
  500. package/dist/src/views/auth/password-reset/change-password-form/mutation-api.js +5 -5
  501. package/dist/src/views/auth/password-reset/change-password-form/use-form.d.ts +2 -2
  502. package/dist/src/views/auth/password-reset/change-password-form/use-form.d.ts.map +1 -1
  503. package/dist/src/views/auth/password-reset/change-password-form/use-form.js +7 -7
  504. package/dist/src/views/auth/password-reset/form/form.d.ts +2 -2
  505. package/dist/src/views/auth/password-reset/form/form.d.ts.map +1 -1
  506. package/dist/src/views/auth/password-reset/form/form.js +15 -15
  507. package/dist/src/views/auth/password-reset/form/mutation-api.js +5 -5
  508. package/dist/src/views/auth/password-reset/form/use-form.d.ts +2 -2
  509. package/dist/src/views/auth/password-reset/form/use-form.js +7 -7
  510. package/dist/src/views/auth/password-reset/password-reset-view.js +4 -4
  511. package/dist/src/views/auth/sign-in/form/form.js +9 -9
  512. package/dist/src/views/auth/sign-in/form/mutation-api.d.ts +2 -2
  513. package/dist/src/views/auth/sign-in/form/mutation-api.d.ts.map +1 -1
  514. package/dist/src/views/auth/sign-in/form/mutation-api.js +10 -10
  515. package/dist/src/views/auth/sign-in/form/use-form.d.ts +2 -2
  516. package/dist/src/views/auth/sign-in/form/use-form.js +11 -11
  517. package/dist/src/views/auth/sign-in/sign-in-view.js +5 -5
  518. package/dist/src/views/auth/sign-up/components/password-input.d.ts +3 -3
  519. package/dist/src/views/auth/sign-up/components/password-input.d.ts.map +1 -1
  520. package/dist/src/views/auth/sign-up/components/password-input.js +9 -10
  521. package/dist/src/views/auth/sign-up/email-confirmation-view.js +4 -4
  522. package/dist/src/views/auth/sign-up/form/form.d.ts +2 -2
  523. package/dist/src/views/auth/sign-up/form/form.d.ts.map +1 -1
  524. package/dist/src/views/auth/sign-up/form/form.js +18 -18
  525. package/dist/src/views/auth/sign-up/form/mutation-api.d.ts +2 -2
  526. package/dist/src/views/auth/sign-up/form/mutation-api.d.ts.map +1 -1
  527. package/dist/src/views/auth/sign-up/form/mutation-api.js +6 -6
  528. package/dist/src/views/auth/sign-up/form/use-form.d.ts +2 -2
  529. package/dist/src/views/auth/sign-up/form/use-form.js +21 -21
  530. package/dist/src/views/auth/sign-up/sign-up-view.js +5 -5
  531. package/dist/src/views/auth/sign-up/wrapper.d.ts +1 -1
  532. package/dist/src/views/auth/sign-up/wrapper.d.ts.map +1 -1
  533. package/dist/src/views/auth/sign-up/wrapper.js +5 -8
  534. package/dist/src/views/auth/sso/buttons/client.js +4 -4
  535. package/dist/src/views/auth/sso/buttons/mutation-api.js +5 -5
  536. package/dist/src/views/auth/sso/buttons/sso-buttons.js +2 -2
  537. package/dist/src/views/auth/sso/callback/callback-sso-view.js +6 -6
  538. package/dist/src/views/auth/sso/callback/client/client.d.ts +1 -1
  539. package/dist/src/views/auth/sso/callback/client/client.d.ts.map +1 -1
  540. package/dist/src/views/auth/sso/callback/client/client.js +9 -9
  541. package/dist/src/views/auth/sso/callback/client/mutation-api.js +7 -7
  542. package/dist/src/views/error/back-button.js +1 -1
  543. package/dist/src/views/error/error-view.js +4 -4
  544. package/dist/src/views/error/global-error-view.d.ts +3 -3
  545. package/dist/src/views/error/global-error-view.d.ts.map +1 -1
  546. package/dist/src/views/error/global-error-view.js +36 -44
  547. package/dist/src/views/layouts/provider.d.ts +4 -4
  548. package/dist/src/views/layouts/provider.d.ts.map +1 -1
  549. package/dist/src/views/layouts/provider.js +3 -3
  550. package/dist/src/views/layouts/root-layout.d.ts +3 -3
  551. package/dist/src/views/layouts/root-layout.d.ts.map +1 -1
  552. package/dist/src/views/layouts/root-layout.js +1 -2
  553. package/dist/src/views/layouts/theme/header/header.d.ts +2 -2
  554. package/dist/src/views/layouts/theme/header/header.d.ts.map +1 -1
  555. package/dist/src/views/layouts/theme/header/header.js +2 -2
  556. package/dist/src/views/layouts/theme/header/user/auth/client.d.ts +1 -1
  557. package/dist/src/views/layouts/theme/header/user/auth/client.d.ts.map +1 -1
  558. package/dist/src/views/layouts/theme/header/user/auth/client.js +4 -4
  559. package/dist/src/views/layouts/theme/header/user/auth/log-out-mutation-api.js +8 -8
  560. package/dist/src/views/layouts/theme/header/user/user.js +4 -4
  561. package/dist/src/views/layouts/theme/layout.d.ts +2 -2
  562. package/dist/src/views/layouts/theme/layout.js +1 -1
  563. package/dist/src/vitnode.config.d.ts +18 -16
  564. package/dist/src/vitnode.config.d.ts.map +1 -1
  565. package/dist/src/vitnode.config.js +3 -2
  566. package/dist/tsconfig.tsbuildinfo +1 -1
  567. package/package.json +32 -29
  568. package/src/app/login/page.tsx +5 -5
  569. package/src/app/login/reset-password/page.tsx +5 -5
  570. package/src/app/login/sso/[providerId]/page.tsx +1 -1
  571. package/src/app/register/page.tsx +5 -5
  572. package/src/app_admin/core/advanced/cron/page.tsx +41 -0
  573. package/src/app_admin/core/debug/page.tsx +14 -14
  574. package/src/app_admin/core/page.tsx +1 -1
  575. package/src/app_admin/core/test/page.tsx +1 -1
  576. package/src/app_admin/core/users/page.tsx +12 -13
  577. package/src/locales/en.json +43 -0
  578. package/src/tiptap.css +20 -0
  579. package/dist/src/components/switchers/langs/language-swietcher.d.ts.map +0 -1
@@ -0,0 +1,213 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ import { shouldCronJobRun } from "./should-cron-job-run.js";
3
+ describe("shouldCronJobRun", ()=>{
4
+ beforeEach(()=>{
5
+ // Reset any mocked console methods
6
+ vi.clearAllMocks();
7
+ });
8
+ describe("valid cron schedules", ()=>{
9
+ it("should return true when job has never run (lastRun is null)", ()=>{
10
+ const schedule = "0 * * * *"; // Every hour
11
+ const lastRun = null;
12
+ const result = shouldCronJobRun(schedule, lastRun);
13
+ expect(result).toBe(true);
14
+ });
15
+ it("should return true when enough time has passed since last run", ()=>{
16
+ const schedule = "0 * * * *"; // Every hour
17
+ const lastRun = new Date("2024-01-01T10:00:00Z");
18
+ // Mock current time to be 2 hours later
19
+ vi.useFakeTimers();
20
+ vi.setSystemTime(new Date("2024-01-01T12:00:00Z"));
21
+ const result = shouldCronJobRun(schedule, lastRun);
22
+ expect(result).toBe(true);
23
+ vi.useRealTimers();
24
+ });
25
+ it("should return false when not enough time has passed since last run", ()=>{
26
+ const schedule = "0 * * * *"; // Every hour
27
+ const lastRun = new Date("2024-01-01T11:30:00Z");
28
+ // Mock current time to be 15 minutes later (not enough for hourly job)
29
+ vi.useFakeTimers();
30
+ vi.setSystemTime(new Date("2024-01-01T11:45:00Z"));
31
+ const result = shouldCronJobRun(schedule, lastRun);
32
+ expect(result).toBe(false);
33
+ vi.useRealTimers();
34
+ });
35
+ it("should handle daily job correctly", ()=>{
36
+ const schedule = "0 9 * * *"; // Every day at 9 AM
37
+ const lastRun = new Date("2024-01-01T09:00:00Z");
38
+ // Mock current time to be next day at 10 AM
39
+ vi.useFakeTimers();
40
+ vi.setSystemTime(new Date("2024-01-02T10:00:00Z"));
41
+ const result = shouldCronJobRun(schedule, lastRun);
42
+ expect(result).toBe(true);
43
+ vi.useRealTimers();
44
+ });
45
+ it("should handle weekly job correctly", ()=>{
46
+ const schedule = "0 9 * * 1"; // Every Monday at 9 AM
47
+ const lastRun = new Date("2024-01-01T09:00:00Z"); // Monday
48
+ // Mock current time to be next Monday
49
+ vi.useFakeTimers();
50
+ vi.setSystemTime(new Date("2024-01-08T10:00:00Z")); // Next Monday
51
+ const result = shouldCronJobRun(schedule, lastRun);
52
+ expect(result).toBe(true);
53
+ vi.useRealTimers();
54
+ });
55
+ it("should handle monthly job correctly", ()=>{
56
+ const schedule = "0 9 1 * *"; // First day of every month at 9 AM
57
+ const lastRun = new Date("2024-01-01T09:00:00Z");
58
+ // Mock current time to be next month
59
+ vi.useFakeTimers();
60
+ vi.setSystemTime(new Date("2024-02-01T10:00:00Z"));
61
+ const result = shouldCronJobRun(schedule, lastRun);
62
+ expect(result).toBe(true);
63
+ vi.useRealTimers();
64
+ });
65
+ it("should handle every minute job correctly", ()=>{
66
+ const schedule = "* * * * *"; // Every minute
67
+ const lastRun = new Date("2024-01-01T10:00:00Z");
68
+ // Mock current time to be 1 minute later
69
+ vi.useFakeTimers();
70
+ vi.setSystemTime(new Date("2024-01-01T10:01:00Z"));
71
+ const result = shouldCronJobRun(schedule, lastRun);
72
+ expect(result).toBe(true);
73
+ vi.useRealTimers();
74
+ });
75
+ it("should handle every 5 minutes job correctly", ()=>{
76
+ const schedule = "*/5 * * * *"; // Every 5 minutes
77
+ const lastRun = new Date("2024-01-01T10:00:00Z");
78
+ // Mock current time to be 3 minutes later (not enough)
79
+ vi.useFakeTimers();
80
+ vi.setSystemTime(new Date("2024-01-01T10:03:00Z"));
81
+ const result = shouldCronJobRun(schedule, lastRun);
82
+ expect(result).toBe(false);
83
+ // Mock current time to be 5 minutes later (enough)
84
+ vi.setSystemTime(new Date("2024-01-01T10:05:00Z"));
85
+ const result2 = shouldCronJobRun(schedule, lastRun);
86
+ expect(result2).toBe(true);
87
+ vi.useRealTimers();
88
+ });
89
+ it("should handle complex cron expressions", ()=>{
90
+ const schedule = "0 9-17 * * 1-5"; // 9 AM to 5 PM on weekdays
91
+ const lastRun = new Date("2024-01-01T09:00:00Z"); // Monday 9 AM
92
+ // Mock current time to be same day at 10 AM
93
+ vi.useFakeTimers();
94
+ vi.setSystemTime(new Date("2024-01-01T10:00:00Z"));
95
+ const result = shouldCronJobRun(schedule, lastRun);
96
+ expect(result).toBe(true);
97
+ vi.useRealTimers();
98
+ });
99
+ });
100
+ describe("invalid cron schedules", ()=>{
101
+ it("should return false and log error for invalid cron schedule", ()=>{
102
+ const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(()=>{});
103
+ const schedule = "invalid cron"; // Invalid schedule
104
+ const lastRun = null;
105
+ const result = shouldCronJobRun(schedule, lastRun);
106
+ expect(result).toBe(false);
107
+ expect(consoleErrorSpy).toHaveBeenCalledWith(expect.stringContaining("[VitNode]") && expect.stringContaining("Error parsing schedule") && expect.stringContaining("invalid cron"), expect.any(Error));
108
+ consoleErrorSpy.mockRestore();
109
+ });
110
+ it("should return false for malformed cron expression", ()=>{
111
+ const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(()=>{});
112
+ const schedule = "60 * * * *"; // Invalid minute (should be 0-59)
113
+ const lastRun = null;
114
+ const result = shouldCronJobRun(schedule, lastRun);
115
+ expect(result).toBe(false);
116
+ expect(consoleErrorSpy).toHaveBeenCalled();
117
+ consoleErrorSpy.mockRestore();
118
+ });
119
+ it("should return true for empty cron schedule (parsed as valid)", ()=>{
120
+ // Note: cron-parser actually parses empty string as a valid cron expression
121
+ const schedule = ""; // Empty schedule
122
+ const lastRun = null;
123
+ const result = shouldCronJobRun(schedule, lastRun);
124
+ expect(result).toBe(true);
125
+ });
126
+ });
127
+ describe("edge cases", ()=>{
128
+ it("should handle lastRun being exactly at the next scheduled time", ()=>{
129
+ const schedule = "0 * * * *"; // Every hour
130
+ const lastRun = new Date("2024-01-01T10:00:00Z");
131
+ // Mock current time to be exactly at the next scheduled time
132
+ vi.useFakeTimers();
133
+ vi.setSystemTime(new Date("2024-01-01T11:00:00Z"));
134
+ const result = shouldCronJobRun(schedule, lastRun);
135
+ expect(result).toBe(true);
136
+ vi.useRealTimers();
137
+ });
138
+ it("should handle lastRun being in the future (clock skew)", ()=>{
139
+ const schedule = "0 * * * *"; // Every hour
140
+ const lastRun = new Date("2024-01-01T12:00:00Z"); // Future time
141
+ // Mock current time to be earlier
142
+ vi.useFakeTimers();
143
+ vi.setSystemTime(new Date("2024-01-01T11:00:00Z"));
144
+ const result = shouldCronJobRun(schedule, lastRun);
145
+ expect(result).toBe(false);
146
+ vi.useRealTimers();
147
+ });
148
+ it("should handle lastRun being epoch (new Date(0))", ()=>{
149
+ const schedule = "0 * * * *"; // Every hour
150
+ const lastRun = new Date(0); // Epoch time
151
+ // Mock current time to be much later
152
+ vi.useFakeTimers();
153
+ vi.setSystemTime(new Date("2024-01-01T10:00:00Z"));
154
+ const result = shouldCronJobRun(schedule, lastRun);
155
+ expect(result).toBe(true);
156
+ vi.useRealTimers();
157
+ });
158
+ it("should handle yearly cron job", ()=>{
159
+ const schedule = "0 0 1 1 *"; // January 1st at midnight
160
+ const lastRun = new Date("2023-01-01T00:00:00Z");
161
+ // Mock current time to be next year
162
+ vi.useFakeTimers();
163
+ vi.setSystemTime(new Date("2024-01-01T01:00:00Z"));
164
+ const result = shouldCronJobRun(schedule, lastRun);
165
+ expect(result).toBe(true);
166
+ vi.useRealTimers();
167
+ });
168
+ it("should handle specific day of month with month", ()=>{
169
+ const schedule = "0 12 15 6 *"; // June 15th at noon
170
+ const lastRun = new Date("2023-06-15T12:00:00Z");
171
+ // Mock current time to be next year same date
172
+ vi.useFakeTimers();
173
+ vi.setSystemTime(new Date("2024-06-15T13:00:00Z"));
174
+ const result = shouldCronJobRun(schedule, lastRun);
175
+ expect(result).toBe(true);
176
+ vi.useRealTimers();
177
+ });
178
+ });
179
+ describe("timezone handling", ()=>{
180
+ it("should work with different timezone dates", ()=>{
181
+ const schedule = "0 9 * * *"; // Every day at 9 AM
182
+ const lastRun = new Date("2024-01-01T09:00:00+05:00"); // 9 AM in +5 timezone
183
+ // Mock current time to be next day in UTC
184
+ vi.useFakeTimers();
185
+ vi.setSystemTime(new Date("2024-01-02T04:00:00Z")); // 9 AM in +5 timezone
186
+ const result = shouldCronJobRun(schedule, lastRun);
187
+ expect(result).toBe(true);
188
+ vi.useRealTimers();
189
+ });
190
+ });
191
+ describe("performance and boundary conditions", ()=>{
192
+ it("should handle very old lastRun dates", ()=>{
193
+ const schedule = "0 * * * *"; // Every hour
194
+ const lastRun = new Date("1970-01-01T00:00:00Z"); // Very old date
195
+ // Current time
196
+ vi.useFakeTimers();
197
+ vi.setSystemTime(new Date("2024-01-01T10:00:00Z"));
198
+ const result = shouldCronJobRun(schedule, lastRun);
199
+ expect(result).toBe(true);
200
+ vi.useRealTimers();
201
+ });
202
+ it("should handle leap year considerations", ()=>{
203
+ const schedule = "0 0 29 2 *"; // February 29th (leap day)
204
+ const lastRun = new Date("2020-02-29T00:00:00Z"); // Last leap year
205
+ // Mock current time to be next leap year
206
+ vi.useFakeTimers();
207
+ vi.setSystemTime(new Date("2024-02-29T01:00:00Z"));
208
+ const result = shouldCronJobRun(schedule, lastRun);
209
+ expect(result).toBe(true);
210
+ vi.useRealTimers();
211
+ });
212
+ });
213
+ });
@@ -5,19 +5,21 @@ export const convertColor = {
5
5
  const f = (n)=>{
6
6
  const k = (n + h / 30) % 12;
7
7
  const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
8
- return Math.round(255 * color).toString(16).padStart(2, '0');
8
+ return Math.round(255 * color).toString(16).padStart(2, "0");
9
9
  };
10
10
  return `${f(0)}${f(8)}${f(4)}`;
11
11
  },
12
12
  hexToHSL: (hex)=>{
13
13
  if (!hexRegex.test(hex)) return undefined;
14
- let b = 0, g = 0, r = 0;
14
+ let b = 0;
15
+ let g = 0;
16
+ let r = 0;
15
17
  // 3 digits
16
- if (hex.length == 4) {
18
+ if (hex.length === 4) {
17
19
  r = parseInt(hex[1] + hex[1], 16);
18
20
  g = parseInt(hex[2] + hex[2], 16);
19
21
  b = parseInt(hex[3] + hex[3], 16);
20
- } else if (hex.length == 7) {
22
+ } else if (hex.length === 7) {
21
23
  r = parseInt(hex[1] + hex[2], 16);
22
24
  g = parseInt(hex[3] + hex[4], 16);
23
25
  b = parseInt(hex[5] + hex[6], 16);
@@ -25,15 +27,18 @@ export const convertColor = {
25
27
  return undefined;
26
28
  }
27
29
  // Check if any of the parsed values are NaN
28
- if (isNaN(r) || isNaN(g) || isNaN(b)) {
30
+ if (Number.isNaN(r) || Number.isNaN(g) || Number.isNaN(b)) {
29
31
  return undefined;
30
32
  }
31
33
  r /= 255;
32
34
  g /= 255;
33
35
  b /= 255;
34
- const max = Math.max(r, g, b), min = Math.min(r, g, b), l = (max + min) / 2;
35
- let h = 0, s = 0;
36
- if (max == min) {
36
+ const max = Math.max(r, g, b);
37
+ const min = Math.min(r, g, b);
38
+ const l = (max + min) / 2;
39
+ let h = 0;
40
+ let s = 0;
41
+ if (max === min) {
37
42
  h = s = 0; // achromatic
38
43
  } else {
39
44
  const d = max - min;
@@ -63,12 +68,16 @@ export const convertColor = {
63
68
  g /= 255;
64
69
  b /= 255;
65
70
  // Find greatest and smallest channel values
66
- const cmax = Math.max(r, g, b), cmin = Math.min(r, g, b), delta = cmax - cmin;
67
- let h = 0, l = 0, s = 0;
71
+ const cmax = Math.max(r, g, b);
72
+ const cmin = Math.min(r, g, b);
73
+ const delta = cmax - cmin;
74
+ let h = 0;
75
+ let l = 0;
76
+ let s = 0;
68
77
  // Calculate hue
69
- if (delta == 0) h = 0;
70
- else if (cmax == r) h = (g - b) / delta % 6;
71
- else if (cmax == g) h = (b - r) / delta + 2;
78
+ if (delta === 0) h = 0;
79
+ else if (cmax === r) h = (g - b) / delta % 6;
80
+ else if (cmax === g) h = (b - r) / delta + 2;
72
81
  else h = (r - g) / delta + 4;
73
82
  h = Math.round(h * 60);
74
83
  // Make negative hues positive behind 360°
@@ -76,7 +85,7 @@ export const convertColor = {
76
85
  // Calculate lightness
77
86
  l = (cmax + cmin) / 2;
78
87
  // Calculate saturation
79
- s = delta == 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
88
+ s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));
80
89
  // Multiply l and s by 100
81
90
  s = +(s * 100).toFixed(1);
82
91
  l = +(l * 100).toFixed(1);
@@ -92,7 +101,7 @@ export const convertColor = {
92
101
  const f = (n)=>{
93
102
  const k = (n + h / 30) % 12;
94
103
  const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
95
- return Math.round(255 * color).toString(16).padStart(2, '0'); // convert to Hex and prefix "0" if needed
104
+ return Math.round(255 * color).toString(16).padStart(2, "0"); // convert to Hex and prefix "0" if needed
96
105
  };
97
106
  return {
98
107
  r: f(0),
@@ -107,19 +116,19 @@ export const rgbWithCommaRegex = /^rgb\(\s*([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][
107
116
  export const rgbWithoutCommaRegex = /^rgb\(\s*([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\s+([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\s+([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\s*\)$/;
108
117
  export const checkColorType = (strColor)=>{
109
118
  if (hexRegex.test(strColor)) {
110
- return 'hex';
119
+ return "hex";
111
120
  }
112
121
  if (hslRegex.test(strColor)) {
113
- return 'hsl';
122
+ return "hsl";
114
123
  }
115
124
  if (rgbWithoutCommaRegex.test(strColor) || rgbWithCommaRegex.test(strColor)) {
116
- return 'rgb';
125
+ return "rgb";
117
126
  }
118
127
  return null;
119
128
  };
120
129
  export const getHSLFromString = (string)=>{
121
130
  if (!hslRegex.test(string)) return null;
122
- const [h, s, l] = string.replaceAll('hsl(', '').replaceAll(')', '').replaceAll('%', '').split(',').map(Number);
131
+ const [h, s, l] = string.replaceAll("hsl(", "").replaceAll(")", "").replaceAll("%", "").split(",").map(Number);
123
132
  return {
124
133
  h,
125
134
  s,
@@ -1,71 +1,71 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { checkColorType, convertColor, getHSLFromString, getStringFromHSL } from "./colors.js";
3
- describe('convertColor', ()=>{
4
- describe('hslToHex', ()=>{
5
- it('should convert HSL to hex correctly', ()=>{
3
+ describe("convertColor", ()=>{
4
+ describe("hslToHex", ()=>{
5
+ it("should convert HSL to hex correctly", ()=>{
6
6
  const hsl = {
7
7
  h: 0,
8
8
  s: 100,
9
9
  l: 50
10
10
  }; // Red
11
- expect(convertColor.hslToHex(hsl)).toBe('ff0000');
11
+ expect(convertColor.hslToHex(hsl)).toBe("ff0000");
12
12
  const hsl2 = {
13
13
  h: 120,
14
14
  s: 100,
15
15
  l: 50
16
16
  }; // Green
17
- expect(convertColor.hslToHex(hsl2)).toBe('00ff00');
17
+ expect(convertColor.hslToHex(hsl2)).toBe("00ff00");
18
18
  const hsl3 = {
19
19
  h: 240,
20
20
  s: 100,
21
21
  l: 50
22
22
  }; // Blue
23
- expect(convertColor.hslToHex(hsl3)).toBe('0000ff');
23
+ expect(convertColor.hslToHex(hsl3)).toBe("0000ff");
24
24
  });
25
25
  });
26
- describe('hexToHSL', ()=>{
27
- it('should convert 6-digit hex to HSL correctly', ()=>{
28
- expect(convertColor.hexToHSL('#ff0000')).toEqual({
26
+ describe("hexToHSL", ()=>{
27
+ it("should convert 6-digit hex to HSL correctly", ()=>{
28
+ expect(convertColor.hexToHSL("#ff0000")).toEqual({
29
29
  h: 0,
30
30
  s: 100,
31
31
  l: 50
32
32
  });
33
- expect(convertColor.hexToHSL('#00ff00')).toEqual({
33
+ expect(convertColor.hexToHSL("#00ff00")).toEqual({
34
34
  h: 120,
35
35
  s: 100,
36
36
  l: 50
37
37
  });
38
- expect(convertColor.hexToHSL('#0000ff')).toEqual({
38
+ expect(convertColor.hexToHSL("#0000ff")).toEqual({
39
39
  h: 240,
40
40
  s: 100,
41
41
  l: 50
42
42
  });
43
43
  });
44
- it('should convert 3-digit hex to HSL correctly', ()=>{
45
- expect(convertColor.hexToHSL('#f00')).toEqual({
44
+ it("should convert 3-digit hex to HSL correctly", ()=>{
45
+ expect(convertColor.hexToHSL("#f00")).toEqual({
46
46
  h: 0,
47
47
  s: 100,
48
48
  l: 50
49
49
  });
50
- expect(convertColor.hexToHSL('#0f0')).toEqual({
50
+ expect(convertColor.hexToHSL("#0f0")).toEqual({
51
51
  h: 120,
52
52
  s: 100,
53
53
  l: 50
54
54
  });
55
- expect(convertColor.hexToHSL('#00f')).toEqual({
55
+ expect(convertColor.hexToHSL("#00f")).toEqual({
56
56
  h: 240,
57
57
  s: 100,
58
58
  l: 50
59
59
  });
60
60
  });
61
- it('should return undefined for invalid hex values', ()=>{
62
- expect(convertColor.hexToHSL('#xyz')).toBeUndefined();
63
- expect(convertColor.hexToHSL('#12')).toBeUndefined();
64
- expect(convertColor.hexToHSL('invalid')).toBeUndefined();
61
+ it("should return undefined for invalid hex values", ()=>{
62
+ expect(convertColor.hexToHSL("#xyz")).toBeUndefined();
63
+ expect(convertColor.hexToHSL("#12")).toBeUndefined();
64
+ expect(convertColor.hexToHSL("invalid")).toBeUndefined();
65
65
  });
66
66
  });
67
- describe('RGBToHSL', ()=>{
68
- it('should convert RGB to HSL correctly', ()=>{
67
+ describe("RGBToHSL", ()=>{
68
+ it("should convert RGB to HSL correctly", ()=>{
69
69
  expect(convertColor.RGBToHSL(255, 0, 0)).toEqual({
70
70
  h: 0,
71
71
  s: 100,
@@ -93,81 +93,81 @@ describe('convertColor', ()=>{
93
93
  });
94
94
  });
95
95
  });
96
- describe('hslToRgb', ()=>{
97
- it('should convert HSL to RGB correctly', ()=>{
96
+ describe("hslToRgb", ()=>{
97
+ it("should convert HSL to RGB correctly", ()=>{
98
98
  expect(convertColor.hslToRgb(0, 100, 50)).toEqual({
99
- r: 'ff',
100
- g: '00',
101
- b: '00'
99
+ r: "ff",
100
+ g: "00",
101
+ b: "00"
102
102
  });
103
103
  expect(convertColor.hslToRgb(120, 100, 50)).toEqual({
104
- r: '00',
105
- g: 'ff',
106
- b: '00'
104
+ r: "00",
105
+ g: "ff",
106
+ b: "00"
107
107
  });
108
108
  expect(convertColor.hslToRgb(240, 100, 50)).toEqual({
109
- r: '00',
110
- g: '00',
111
- b: 'ff'
109
+ r: "00",
110
+ g: "00",
111
+ b: "ff"
112
112
  });
113
113
  });
114
114
  });
115
115
  });
116
- describe('checkColorType', ()=>{
117
- it('should identify hex colors correctly', ()=>{
118
- expect(checkColorType('#fff')).toBe('hex');
119
- expect(checkColorType('#ffffff')).toBe('hex');
120
- expect(checkColorType('#FF0000')).toBe('hex');
116
+ describe("checkColorType", ()=>{
117
+ it("should identify hex colors correctly", ()=>{
118
+ expect(checkColorType("#fff")).toBe("hex");
119
+ expect(checkColorType("#ffffff")).toBe("hex");
120
+ expect(checkColorType("#FF0000")).toBe("hex");
121
121
  });
122
- it('should identify HSL colors correctly', ()=>{
123
- expect(checkColorType('hsl(0, 100%, 50%)')).toBe('hsl');
124
- expect(checkColorType('hsl(120, 60%, 70%)')).toBe('hsl');
122
+ it("should identify HSL colors correctly", ()=>{
123
+ expect(checkColorType("hsl(0, 100%, 50%)")).toBe("hsl");
124
+ expect(checkColorType("hsl(120, 60%, 70%)")).toBe("hsl");
125
125
  });
126
- it('should identify RGB colors correctly', ()=>{
127
- expect(checkColorType('rgb(255, 0, 0)')).toBe('rgb');
128
- expect(checkColorType('rgb(255 0 0)')).toBe('rgb');
126
+ it("should identify RGB colors correctly", ()=>{
127
+ expect(checkColorType("rgb(255, 0, 0)")).toBe("rgb");
128
+ expect(checkColorType("rgb(255 0 0)")).toBe("rgb");
129
129
  });
130
- it('should return null for invalid colors', ()=>{
131
- expect(checkColorType('invalid')).toBeNull();
132
- expect(checkColorType('rgb(300, 0, 0)')).toBeNull();
133
- expect(checkColorType('hsl(400, 100%, 50%)')).toBeNull();
130
+ it("should return null for invalid colors", ()=>{
131
+ expect(checkColorType("invalid")).toBeNull();
132
+ expect(checkColorType("rgb(300, 0, 0)")).toBeNull();
133
+ expect(checkColorType("hsl(400, 100%, 50%)")).toBeNull();
134
134
  });
135
135
  });
136
- describe('getHSLFromString', ()=>{
137
- it('should parse valid HSL strings correctly', ()=>{
138
- expect(getHSLFromString('hsl(0, 100%, 50%)')).toEqual({
136
+ describe("getHSLFromString", ()=>{
137
+ it("should parse valid HSL strings correctly", ()=>{
138
+ expect(getHSLFromString("hsl(0, 100%, 50%)")).toEqual({
139
139
  h: 0,
140
140
  s: 100,
141
141
  l: 50
142
142
  });
143
- expect(getHSLFromString('hsl(120, 60%, 70%)')).toEqual({
143
+ expect(getHSLFromString("hsl(120, 60%, 70%)")).toEqual({
144
144
  h: 120,
145
145
  s: 60,
146
146
  l: 70
147
147
  });
148
148
  });
149
- it('should return null for invalid HSL strings', ()=>{
150
- expect(getHSLFromString('invalid')).toBeNull();
151
- expect(getHSLFromString('rgb(255, 0, 0)')).toBeNull();
152
- expect(getHSLFromString('hsl(400, 100%, 50%')).toBeNull();
149
+ it("should return null for invalid HSL strings", ()=>{
150
+ expect(getHSLFromString("invalid")).toBeNull();
151
+ expect(getHSLFromString("rgb(255, 0, 0)")).toBeNull();
152
+ expect(getHSLFromString("hsl(400, 100%, 50%")).toBeNull();
153
153
  });
154
154
  });
155
- describe('getStringFromHSL', ()=>{
156
- it('should format HSL color object to string correctly', ()=>{
155
+ describe("getStringFromHSL", ()=>{
156
+ it("should format HSL color object to string correctly", ()=>{
157
157
  expect(getStringFromHSL({
158
158
  h: 0,
159
159
  s: 100,
160
160
  l: 50
161
- })).toBe('hsl(0, 100%, 50%)');
161
+ })).toBe("hsl(0, 100%, 50%)");
162
162
  expect(getStringFromHSL({
163
163
  h: 120,
164
164
  s: 60,
165
165
  l: 70
166
- })).toBe('hsl(120, 60%, 70%)');
166
+ })).toBe("hsl(120, 60%, 70%)");
167
167
  expect(getStringFromHSL({
168
168
  h: 240,
169
169
  s: 50,
170
170
  l: 30
171
- })).toBe('hsl(240, 50%, 30%)');
171
+ })).toBe("hsl(240, 50%, 30%)");
172
172
  });
173
173
  });
@@ -1,4 +1,5 @@
1
1
  export declare const CONFIG: {
2
+ cronJobSecret: string;
2
3
  api: URL;
3
4
  web: URL;
4
5
  node_development: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,MAAM;;;;CAGlB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/config.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,MAAM;;;;;CAIlB,CAAC"}
@@ -1,12 +1,14 @@
1
1
  const ENVS = {
2
- api_url: process.env.NEXT_PUBLIC_API_URL,
3
- web_url: process.env.NEXT_PUBLIC_WEB_URL
2
+ apiUrl: process.env.NEXT_PUBLIC_API_URL,
3
+ webUrl: process.env.NEXT_PUBLIC_WEB_URL,
4
+ cronConfig: process.env.CRON_SECRET || "default-cron-secret-change-in-production"
4
5
  };
5
6
  const urls = {
6
- api: new URL(ENVS.api_url ?? 'http://localhost:3000'),
7
- web: new URL(ENVS.web_url ?? 'http://localhost:3000')
7
+ api: new URL(ENVS.apiUrl ?? "http://localhost:3000"),
8
+ web: new URL(ENVS.webUrl ?? "http://localhost:3000")
8
9
  };
9
10
  export const CONFIG = {
10
- node_development: process.env.NODE_ENV === 'development',
11
- ...urls
11
+ node_development: process.env.NODE_ENV === "development",
12
+ ...urls,
13
+ cronJobSecret: ENVS.cronConfig
12
14
  };
@@ -0,0 +1,2 @@
1
+ export declare const CtrlOrCommandCharacter: () => string;
2
+ //# sourceMappingURL=ctrl-or-command-character.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ctrl-or-command-character.d.ts","sourceRoot":"","sources":["../../../src/lib/ctrl-or-command-character.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,cAUlC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ export const CtrlOrCommandCharacter = ()=>{
3
+ const [key, setKey] = React.useState("⌘");
4
+ React.useEffect(()=>{
5
+ const isWindows = window.navigator.userAgent.includes("Windows");
6
+ if (isWindows) setKey("Ctrl");
7
+ }, []);
8
+ return key;
9
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"cookie-from-string-to-object.d.ts","sourceRoot":"","sources":["../../../../src/lib/fetcher/cookie-from-string-to-object.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,GACnC,KAAK,MAAM,EAAE,KACZ;IAED,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAC1D,MAAM,EAAE,OAAO,CAAC;CACjB,EAcA,CAAC"}
1
+ {"version":3,"file":"cookie-from-string-to-object.d.ts","sourceRoot":"","sources":["../../../../src/lib/fetcher/cookie-from-string-to-object.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,wBAAwB,GACnC,KAAK,MAAM,EAAE,KACZ;IACD,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IAC1D,MAAM,EAAE,OAAO,CAAC;CACjB,EAcA,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export const cookieFromStringToObject = (str)=>{
2
- return str.map((item)=>Object.fromEntries(item.split('; ').map((v)=>{
2
+ return str.map((item)=>Object.fromEntries(item.split("; ").map((v)=>{
3
3
  const current = v.split(/=(.*)/s).map(decodeURIComponent);
4
4
  if (current.length === 1) {
5
5
  return [