@bigbinary/neeto-commons-frontend 3.0.6 → 3.0.9

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 (420) hide show
  1. package/cjs/configs/babel.js +50 -0
  2. package/cjs/configs/eslint/globals.js +14 -0
  3. package/cjs/configs/eslint/helpers/index.js +74 -0
  4. package/cjs/configs/eslint/imports/enforced.js +29 -0
  5. package/cjs/configs/eslint/imports/order.js +65 -0
  6. package/cjs/configs/eslint/index.js +171 -0
  7. package/cjs/configs/eslint/overrides.js +30 -0
  8. package/cjs/configs/eslint/promise.js +8 -0
  9. package/cjs/configs/eslint/react.js +92 -0
  10. package/cjs/configs/nanos/eslint/imports/order.js +25 -0
  11. package/cjs/configs/nanos/eslint/index.js +28 -0
  12. package/cjs/configs/nanos/tailwind.js +11 -0
  13. package/cjs/configs/nanos/webpack/resolve.js +48 -0
  14. package/cjs/configs/nextjs/eslint/imports/order.js +25 -0
  15. package/cjs/configs/nextjs/eslint/index.js +22 -0
  16. package/cjs/configs/nextjs/webpack/resolve.js +1 -0
  17. package/cjs/configs/prettier.js +16 -0
  18. package/cjs/configs/scripts/dead-code-eliminator/constants.js +12 -0
  19. package/cjs/configs/scripts/dead-code-eliminator/index.js +266 -0
  20. package/cjs/configs/scripts/getPkgTranslations.js +45 -0
  21. package/cjs/configs/scripts/jsdoc-builder/constants.mjs +42 -0
  22. package/cjs/configs/scripts/jsdoc-builder/index.mjs +67 -0
  23. package/cjs/configs/scripts/jsdoc-builder/utils.mjs +219 -0
  24. package/cjs/configs/scripts/remove-unused-translation-keys/constants.js +11 -0
  25. package/cjs/configs/scripts/remove-unused-translation-keys/index.js +186 -0
  26. package/cjs/configs/tailwind.js +13 -0
  27. package/cjs/configs/webpack/helpers/customize-default-rules.js +54 -0
  28. package/cjs/configs/webpack/index.js +58 -0
  29. package/cjs/configs/webpack/resolve.js +53 -0
  30. package/cjs/configs/webpack/rules.js +34 -0
  31. package/{constants.cjs.js → cjs/constants/index.js} +11 -10
  32. package/cjs/constants/index.js.map +1 -0
  33. package/cjs/cypress-configs/initializer.js +32 -0
  34. package/cjs/cypress-configs/plugins.js +105 -0
  35. package/cjs/cypress-configs/resolve.js +17 -0
  36. package/cjs/cypress-configs/webpack.config.js +19 -0
  37. package/cjs/cypress-utils/commands.js +276 -0
  38. package/cjs/cypress-utils/commands.js.map +1 -0
  39. package/cjs/cypress-utils/constants/index.js +14 -0
  40. package/cjs/cypress-utils/constants/index.js.map +1 -0
  41. package/cjs/cypress-utils/constants/routes.js +40 -0
  42. package/cjs/cypress-utils/constants/routes.js.map +1 -0
  43. package/cjs/cypress-utils/constants/selectors/common.js +103 -0
  44. package/cjs/cypress-utils/constants/selectors/common.js.map +1 -0
  45. package/cjs/cypress-utils/constants/selectors/editor.js +29 -0
  46. package/cjs/cypress-utils/constants/selectors/editor.js.map +1 -0
  47. package/cjs/cypress-utils/constants/selectors/ipRestriction.js +19 -0
  48. package/cjs/cypress-utils/constants/selectors/ipRestriction.js.map +1 -0
  49. package/cjs/cypress-utils/constants/selectors/login.js +21 -0
  50. package/cjs/cypress-utils/constants/selectors/login.js.map +1 -0
  51. package/cjs/cypress-utils/constants/selectors/member.js +65 -0
  52. package/cjs/cypress-utils/constants/selectors/member.js.map +1 -0
  53. package/cjs/cypress-utils/constants/selectors/navigation.js +28 -0
  54. package/cjs/cypress-utils/constants/selectors/navigation.js.map +1 -0
  55. package/cjs/cypress-utils/constants/selectors/roles.js +24 -0
  56. package/cjs/cypress-utils/constants/selectors/roles.js.map +1 -0
  57. package/cjs/cypress-utils/constants/selectors/signUp.js +23 -0
  58. package/cjs/cypress-utils/constants/selectors/signUp.js.map +1 -0
  59. package/cjs/cypress-utils/constants/selectors/tags.js +31 -0
  60. package/cjs/cypress-utils/constants/selectors/tags.js.map +1 -0
  61. package/cjs/cypress-utils/constants/texts/common.js +40 -0
  62. package/cjs/cypress-utils/constants/texts/common.js.map +1 -0
  63. package/cjs/cypress-utils/constants/texts/member.js +68 -0
  64. package/cjs/cypress-utils/constants/texts/member.js.map +1 -0
  65. package/cjs/cypress-utils/constants/texts/navigation.js +24 -0
  66. package/cjs/cypress-utils/constants/texts/navigation.js.map +1 -0
  67. package/cjs/cypress-utils/constants/texts/roles.js +25 -0
  68. package/cjs/cypress-utils/constants/texts/roles.js.map +1 -0
  69. package/cjs/cypress-utils/constants/texts/signUp.js +14 -0
  70. package/cjs/cypress-utils/constants/texts/signUp.js.map +1 -0
  71. package/cjs/cypress-utils/constants/texts/tags.js +28 -0
  72. package/cjs/cypress-utils/constants/texts/tags.js.map +1 -0
  73. package/cjs/cypress-utils/fixtures/fake.js +177 -0
  74. package/cjs/cypress-utils/fixtures/fake.js.map +1 -0
  75. package/cjs/cypress-utils/index.js +226 -0
  76. package/cjs/cypress-utils/index.js.map +1 -0
  77. package/cjs/cypress-utils/utils/authentication.js +45 -0
  78. package/cjs/cypress-utils/utils/authentication.js.map +1 -0
  79. package/cjs/cypress-utils/utils/common.js +92 -0
  80. package/cjs/cypress-utils/utils/common.js.map +1 -0
  81. package/cjs/cypress-utils/utils/date.js +28 -0
  82. package/cjs/cypress-utils/utils/date.js.map +1 -0
  83. package/cjs/cypress-utils/utils/email.js +165 -0
  84. package/cjs/cypress-utils/utils/email.js.map +1 -0
  85. package/cjs/cypress-utils/utils/member.js +352 -0
  86. package/cjs/cypress-utils/utils/member.js.map +1 -0
  87. package/cjs/cypress-utils/utils/navigation.js +208 -0
  88. package/cjs/cypress-utils/utils/navigation.js.map +1 -0
  89. package/cjs/cypress-utils/utils/organization.js +109 -0
  90. package/cjs/cypress-utils/utils/organization.js.map +1 -0
  91. package/cjs/cypress-utils/utils/validation.js +17 -0
  92. package/cjs/cypress-utils/utils/validation.js.map +1 -0
  93. package/cjs/initializers/axios/index.js +199 -0
  94. package/cjs/initializers/axios/index.js.map +1 -0
  95. package/cjs/initializers/axios/paramsSerializer.js +27 -0
  96. package/cjs/initializers/axios/paramsSerializer.js.map +1 -0
  97. package/cjs/initializers/constants.js +23 -0
  98. package/cjs/initializers/constants.js.map +1 -0
  99. package/cjs/initializers/globalProps.js +15 -0
  100. package/cjs/initializers/globalProps.js.map +1 -0
  101. package/cjs/initializers/i18n.js +74 -0
  102. package/cjs/initializers/i18n.js.map +1 -0
  103. package/cjs/initializers/index.js +51 -0
  104. package/cjs/initializers/index.js.map +1 -0
  105. package/cjs/initializers/logger.js +17 -0
  106. package/cjs/initializers/logger.js.map +1 -0
  107. package/cjs/initializers/reactDevTools.js +26 -0
  108. package/cjs/initializers/reactDevTools.js.map +1 -0
  109. package/cjs/initializers/utils/customFormatters.js +52 -0
  110. package/cjs/initializers/utils/customFormatters.js.map +1 -0
  111. package/cjs/initializers/utils/customPostProcessors.js +21 -0
  112. package/cjs/initializers/utils/customPostProcessors.js.map +1 -0
  113. package/cjs/initializers/utils.js +37 -0
  114. package/cjs/initializers/utils.js.map +1 -0
  115. package/cjs/react-utils/BrowserPushNotifications/devices.js +26 -0
  116. package/cjs/react-utils/BrowserPushNotifications/devices.js.map +1 -0
  117. package/cjs/react-utils/BrowserPushNotifications/index.js +19 -0
  118. package/cjs/react-utils/BrowserPushNotifications/index.js.map +1 -0
  119. package/cjs/react-utils/BrowserPushNotifications/pushHelper.js +116 -0
  120. package/cjs/react-utils/BrowserPushNotifications/pushHelper.js.map +1 -0
  121. package/cjs/react-utils/BrowserPushNotifications/registerServiceWorker.js +146 -0
  122. package/cjs/react-utils/BrowserPushNotifications/registerServiceWorker.js.map +1 -0
  123. package/cjs/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js +153 -0
  124. package/cjs/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js.map +1 -0
  125. package/cjs/react-utils/HoneybadgerErrorBoundary/constants.js +9 -0
  126. package/cjs/react-utils/HoneybadgerErrorBoundary/constants.js.map +1 -0
  127. package/cjs/react-utils/HoneybadgerErrorBoundary/index.js +59 -0
  128. package/cjs/react-utils/HoneybadgerErrorBoundary/index.js.map +1 -0
  129. package/cjs/react-utils/HoneybadgerErrorBoundary/utils.js +17 -0
  130. package/cjs/react-utils/HoneybadgerErrorBoundary/utils.js.map +1 -0
  131. package/cjs/react-utils/PrivateRoute.js +80 -0
  132. package/cjs/react-utils/PrivateRoute.js.map +1 -0
  133. package/cjs/react-utils/constants/constants.js +11 -0
  134. package/cjs/react-utils/constants/constants.js.map +1 -0
  135. package/cjs/react-utils/constants/index.js +28 -0
  136. package/cjs/react-utils/constants/index.js.map +1 -0
  137. package/cjs/react-utils/constants/query.js +11 -0
  138. package/cjs/react-utils/constants/query.js.map +1 -0
  139. package/cjs/react-utils/index.js +242 -0
  140. package/cjs/react-utils/index.js.map +1 -0
  141. package/cjs/react-utils/metaClick.js +16 -0
  142. package/cjs/react-utils/metaClick.js.map +1 -0
  143. package/cjs/react-utils/useDebounce.js +28 -0
  144. package/cjs/react-utils/useDebounce.js.map +1 -0
  145. package/cjs/react-utils/useDisplayErrorPage.js +23 -0
  146. package/cjs/react-utils/useDisplayErrorPage.js.map +1 -0
  147. package/cjs/react-utils/useFetchNeetoApps/apis/neeto_apps.js +17 -0
  148. package/cjs/react-utils/useFetchNeetoApps/apis/neeto_apps.js.map +1 -0
  149. package/cjs/react-utils/useFetchNeetoApps/index.js +14 -0
  150. package/cjs/react-utils/useFetchNeetoApps/index.js.map +1 -0
  151. package/cjs/react-utils/useFetchNeetoApps/useFetchNeetoApps.js +27 -0
  152. package/cjs/react-utils/useFetchNeetoApps/useFetchNeetoApps.js.map +1 -0
  153. package/cjs/react-utils/useFieldSubmit.js +33 -0
  154. package/cjs/react-utils/useFieldSubmit.js.map +1 -0
  155. package/cjs/react-utils/useFuncDebounce.js +27 -0
  156. package/cjs/react-utils/useFuncDebounce.js.map +1 -0
  157. package/cjs/react-utils/useHotKeys/constants.js +36 -0
  158. package/cjs/react-utils/useHotKeys/constants.js.map +1 -0
  159. package/cjs/react-utils/useHotKeys/index.js +14 -0
  160. package/cjs/react-utils/useHotKeys/index.js.map +1 -0
  161. package/cjs/react-utils/useHotKeys/useHotKeys.js +65 -0
  162. package/cjs/react-utils/useHotKeys/useHotKeys.js.map +1 -0
  163. package/cjs/react-utils/useHotKeys/utils.js +37 -0
  164. package/cjs/react-utils/useHotKeys/utils.js.map +1 -0
  165. package/cjs/react-utils/useIsElementVisibleInDom/index.js +14 -0
  166. package/cjs/react-utils/useIsElementVisibleInDom/index.js.map +1 -0
  167. package/cjs/react-utils/useIsElementVisibleInDom/useForceUpdate.js +23 -0
  168. package/cjs/react-utils/useIsElementVisibleInDom/useForceUpdate.js.map +1 -0
  169. package/cjs/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js +34 -0
  170. package/cjs/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js.map +1 -0
  171. package/cjs/react-utils/useKeyboardShortcutsPaneState.js +36 -0
  172. package/cjs/react-utils/useKeyboardShortcutsPaneState.js.map +1 -0
  173. package/cjs/react-utils/useLocalStorage.js +39 -0
  174. package/cjs/react-utils/useLocalStorage.js.map +1 -0
  175. package/cjs/react-utils/useMutationWithInvalidation.js +33 -0
  176. package/cjs/react-utils/useMutationWithInvalidation.js.map +1 -0
  177. package/cjs/react-utils/useOnClickOutside.js +32 -0
  178. package/cjs/react-utils/useOnClickOutside.js.map +1 -0
  179. package/cjs/react-utils/usePersistedQuery.js +59 -0
  180. package/cjs/react-utils/usePersistedQuery.js.map +1 -0
  181. package/cjs/react-utils/usePrevious.js +17 -0
  182. package/cjs/react-utils/usePrevious.js.map +1 -0
  183. package/cjs/react-utils/useQueryParams.js +15 -0
  184. package/cjs/react-utils/useQueryParams.js.map +1 -0
  185. package/cjs/react-utils/useRegisterNavigationCheckpoint.js +43 -0
  186. package/cjs/react-utils/useRegisterNavigationCheckpoint.js.map +1 -0
  187. package/cjs/react-utils/useStateWithDependency.js +23 -0
  188. package/cjs/react-utils/useStateWithDependency.js.map +1 -0
  189. package/cjs/react-utils/useTimer.js +51 -0
  190. package/cjs/react-utils/useTimer.js.map +1 -0
  191. package/cjs/react-utils/useUpdateEffect.js +21 -0
  192. package/cjs/react-utils/useUpdateEffect.js.map +1 -0
  193. package/cjs/react-utils/withImmutableActions.js +29 -0
  194. package/cjs/react-utils/withImmutableActions.js.map +1 -0
  195. package/cjs/react-utils/withT.js +14 -0
  196. package/cjs/react-utils/withT.js.map +1 -0
  197. package/cjs/react-utils/withTitle.js +44 -0
  198. package/cjs/react-utils/withTitle.js.map +1 -0
  199. package/cjs/utils/axios.js +17 -0
  200. package/cjs/utils/axios.js.map +1 -0
  201. package/cjs/utils/createSubscription.js +22 -0
  202. package/cjs/utils/createSubscription.js.map +1 -0
  203. package/cjs/utils/currencyFormat.js +50 -0
  204. package/cjs/utils/currencyFormat.js.map +1 -0
  205. package/cjs/utils/datetime.js +69 -0
  206. package/cjs/utils/datetime.js.map +1 -0
  207. package/cjs/utils/general.js +193 -0
  208. package/cjs/utils/general.js.map +1 -0
  209. package/cjs/utils/index.js +72 -0
  210. package/cjs/utils/index.js.map +1 -0
  211. package/cjs/utils/permissions.js +25 -0
  212. package/cjs/utils/permissions.js.map +1 -0
  213. package/configs/scripts/getPkgTranslations.js +1 -1
  214. package/configs/scripts/jsdoc-builder/constants.mjs +1 -1
  215. package/configs/scripts/jsdoc-builder/index.mjs +1 -1
  216. package/configs/webpack/rules.js +2 -1
  217. package/constants/index.js +13 -0
  218. package/constants/index.js.map +1 -0
  219. package/cypress-utils/commands.js +268 -0
  220. package/cypress-utils/commands.js.map +1 -0
  221. package/cypress-utils/constants/index.js +7 -0
  222. package/cypress-utils/constants/index.js.map +1 -0
  223. package/cypress-utils/constants/routes.js +33 -0
  224. package/cypress-utils/constants/routes.js.map +1 -0
  225. package/cypress-utils/constants/selectors/common.js +94 -0
  226. package/cypress-utils/constants/selectors/common.js.map +1 -0
  227. package/cypress-utils/constants/selectors/editor.js +22 -0
  228. package/cypress-utils/constants/selectors/editor.js.map +1 -0
  229. package/cypress-utils/constants/selectors/ipRestriction.js +12 -0
  230. package/cypress-utils/constants/selectors/ipRestriction.js.map +1 -0
  231. package/cypress-utils/constants/selectors/login.js +14 -0
  232. package/cypress-utils/constants/selectors/login.js.map +1 -0
  233. package/cypress-utils/constants/selectors/member.js +56 -0
  234. package/cypress-utils/constants/selectors/member.js.map +1 -0
  235. package/cypress-utils/constants/selectors/navigation.js +20 -0
  236. package/cypress-utils/constants/selectors/navigation.js.map +1 -0
  237. package/cypress-utils/constants/selectors/roles.js +17 -0
  238. package/cypress-utils/constants/selectors/roles.js.map +1 -0
  239. package/cypress-utils/constants/selectors/signUp.js +16 -0
  240. package/cypress-utils/constants/selectors/signUp.js.map +1 -0
  241. package/cypress-utils/constants/selectors/tags.js +23 -0
  242. package/cypress-utils/constants/selectors/tags.js.map +1 -0
  243. package/cypress-utils/constants/texts/common.js +33 -0
  244. package/cypress-utils/constants/texts/common.js.map +1 -0
  245. package/cypress-utils/constants/texts/member.js +59 -0
  246. package/cypress-utils/constants/texts/member.js.map +1 -0
  247. package/cypress-utils/constants/texts/navigation.js +16 -0
  248. package/cypress-utils/constants/texts/navigation.js.map +1 -0
  249. package/cypress-utils/constants/texts/roles.js +18 -0
  250. package/cypress-utils/constants/texts/roles.js.map +1 -0
  251. package/cypress-utils/constants/texts/signUp.js +7 -0
  252. package/cypress-utils/constants/texts/signUp.js.map +1 -0
  253. package/cypress-utils/constants/texts/tags.js +21 -0
  254. package/cypress-utils/constants/texts/tags.js.map +1 -0
  255. package/cypress-utils/fixtures/fake.js +171 -0
  256. package/cypress-utils/fixtures/fake.js.map +1 -0
  257. package/cypress-utils/index.js +21 -0
  258. package/cypress-utils/index.js.map +1 -0
  259. package/cypress-utils/utils/authentication.js +38 -0
  260. package/cypress-utils/utils/authentication.js.map +1 -0
  261. package/cypress-utils/utils/common.js +75 -0
  262. package/cypress-utils/utils/common.js.map +1 -0
  263. package/cypress-utils/utils/date.js +20 -0
  264. package/cypress-utils/utils/date.js.map +1 -0
  265. package/cypress-utils/utils/email.js +156 -0
  266. package/cypress-utils/utils/email.js.map +1 -0
  267. package/cypress-utils/utils/member.js +344 -0
  268. package/cypress-utils/utils/member.js.map +1 -0
  269. package/cypress-utils/utils/navigation.js +200 -0
  270. package/cypress-utils/utils/navigation.js.map +1 -0
  271. package/cypress-utils/utils/organization.js +102 -0
  272. package/cypress-utils/utils/organization.js.map +1 -0
  273. package/cypress-utils/utils/validation.js +10 -0
  274. package/cypress-utils/utils/validation.js.map +1 -0
  275. package/initializers/axios/index.js +192 -0
  276. package/initializers/axios/index.js.map +1 -0
  277. package/initializers/axios/paramsSerializer.js +18 -0
  278. package/initializers/axios/paramsSerializer.js.map +1 -0
  279. package/initializers/constants.js +13 -0
  280. package/initializers/constants.js.map +1 -0
  281. package/initializers/globalProps.js +8 -0
  282. package/initializers/globalProps.js.map +1 -0
  283. package/initializers/i18n.js +67 -0
  284. package/initializers/i18n.js.map +1 -0
  285. package/initializers/index.js +28 -0
  286. package/initializers/index.js.map +1 -0
  287. package/initializers/logger.js +10 -0
  288. package/initializers/logger.js.map +1 -0
  289. package/initializers/reactDevTools.js +19 -0
  290. package/initializers/reactDevTools.js.map +1 -0
  291. package/initializers/utils/customFormatters.js +43 -0
  292. package/initializers/utils/customFormatters.js.map +1 -0
  293. package/initializers/utils/customPostProcessors.js +14 -0
  294. package/initializers/utils/customPostProcessors.js.map +1 -0
  295. package/initializers/utils.js +29 -0
  296. package/initializers/utils.js.map +1 -0
  297. package/package.json +51 -158
  298. package/pure.d.ts +384 -0
  299. package/react-utils/BrowserPushNotifications/devices.js +18 -0
  300. package/react-utils/BrowserPushNotifications/devices.js.map +1 -0
  301. package/react-utils/BrowserPushNotifications/index.js +1 -0
  302. package/react-utils/BrowserPushNotifications/index.js.map +1 -0
  303. package/react-utils/BrowserPushNotifications/pushHelper.js +107 -0
  304. package/react-utils/BrowserPushNotifications/pushHelper.js.map +1 -0
  305. package/react-utils/BrowserPushNotifications/registerServiceWorker.js +137 -0
  306. package/react-utils/BrowserPushNotifications/registerServiceWorker.js.map +1 -0
  307. package/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js +144 -0
  308. package/react-utils/HoneybadgerErrorBoundary/FallbackComponent.js.map +1 -0
  309. package/react-utils/HoneybadgerErrorBoundary/constants.js +1 -0
  310. package/react-utils/HoneybadgerErrorBoundary/constants.js.map +1 -0
  311. package/react-utils/HoneybadgerErrorBoundary/index.js +52 -0
  312. package/react-utils/HoneybadgerErrorBoundary/index.js.map +1 -0
  313. package/react-utils/HoneybadgerErrorBoundary/utils.js +9 -0
  314. package/react-utils/HoneybadgerErrorBoundary/utils.js.map +1 -0
  315. package/react-utils/PrivateRoute.js +72 -0
  316. package/react-utils/PrivateRoute.js.map +1 -0
  317. package/react-utils/constants/constants.js +3 -0
  318. package/react-utils/constants/constants.js.map +1 -0
  319. package/react-utils/constants/index.js +3 -0
  320. package/react-utils/constants/index.js.map +1 -0
  321. package/react-utils/constants/query.js +4 -0
  322. package/react-utils/constants/query.js.map +1 -0
  323. package/react-utils/index.js +33 -0
  324. package/react-utils/index.js.map +1 -0
  325. package/react-utils/metaClick.js +8 -0
  326. package/react-utils/metaClick.js.map +1 -0
  327. package/react-utils/useDebounce.js +20 -0
  328. package/react-utils/useDebounce.js.map +1 -0
  329. package/react-utils/useDisplayErrorPage.js +15 -0
  330. package/react-utils/useDisplayErrorPage.js.map +1 -0
  331. package/react-utils/useFetchNeetoApps/apis/neeto_apps.js +9 -0
  332. package/react-utils/useFetchNeetoApps/apis/neeto_apps.js.map +1 -0
  333. package/react-utils/useFetchNeetoApps/index.js +1 -0
  334. package/react-utils/useFetchNeetoApps/index.js.map +1 -0
  335. package/react-utils/useFetchNeetoApps/useFetchNeetoApps.js +19 -0
  336. package/react-utils/useFetchNeetoApps/useFetchNeetoApps.js.map +1 -0
  337. package/react-utils/useFieldSubmit.js +26 -0
  338. package/react-utils/useFieldSubmit.js.map +1 -0
  339. package/react-utils/useFuncDebounce.js +20 -0
  340. package/react-utils/useFuncDebounce.js.map +1 -0
  341. package/react-utils/useHotKeys/constants.js +25 -0
  342. package/react-utils/useHotKeys/constants.js.map +1 -0
  343. package/react-utils/useHotKeys/index.js +1 -0
  344. package/react-utils/useHotKeys/index.js.map +1 -0
  345. package/react-utils/useHotKeys/useHotKeys.js +57 -0
  346. package/react-utils/useHotKeys/useHotKeys.js.map +1 -0
  347. package/react-utils/useHotKeys/utils.js +29 -0
  348. package/react-utils/useHotKeys/utils.js.map +1 -0
  349. package/react-utils/useIsElementVisibleInDom/index.js +1 -0
  350. package/react-utils/useIsElementVisibleInDom/index.js.map +1 -0
  351. package/react-utils/useIsElementVisibleInDom/useForceUpdate.js +15 -0
  352. package/react-utils/useIsElementVisibleInDom/useForceUpdate.js.map +1 -0
  353. package/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js +26 -0
  354. package/react-utils/useIsElementVisibleInDom/useIsElementVisibleInDom.js.map +1 -0
  355. package/react-utils/useKeyboardShortcutsPaneState.js +29 -0
  356. package/react-utils/useKeyboardShortcutsPaneState.js.map +1 -0
  357. package/react-utils/useLocalStorage.js +31 -0
  358. package/react-utils/useLocalStorage.js.map +1 -0
  359. package/react-utils/useMutationWithInvalidation.js +25 -0
  360. package/react-utils/useMutationWithInvalidation.js.map +1 -0
  361. package/react-utils/useOnClickOutside.js +25 -0
  362. package/react-utils/useOnClickOutside.js.map +1 -0
  363. package/react-utils/usePersistedQuery.js +51 -0
  364. package/react-utils/usePersistedQuery.js.map +1 -0
  365. package/react-utils/usePrevious.js +10 -0
  366. package/react-utils/usePrevious.js.map +1 -0
  367. package/react-utils/useQueryParams.js +8 -0
  368. package/react-utils/useQueryParams.js.map +1 -0
  369. package/react-utils/useRegisterNavigationCheckpoint.js +35 -0
  370. package/react-utils/useRegisterNavigationCheckpoint.js.map +1 -0
  371. package/react-utils/useStateWithDependency.js +15 -0
  372. package/react-utils/useStateWithDependency.js.map +1 -0
  373. package/react-utils/useTimer.js +43 -0
  374. package/react-utils/useTimer.js.map +1 -0
  375. package/react-utils/useUpdateEffect.js +14 -0
  376. package/react-utils/useUpdateEffect.js.map +1 -0
  377. package/react-utils/withImmutableActions.js +22 -0
  378. package/react-utils/withImmutableActions.js.map +1 -0
  379. package/react-utils/withT.js +7 -0
  380. package/react-utils/withT.js.map +1 -0
  381. package/react-utils/withTitle.js +36 -0
  382. package/react-utils/withTitle.js.map +1 -0
  383. package/react-utils.d.ts +14 -2
  384. package/translations/en.json +100 -0
  385. package/utils/axios.js +10 -0
  386. package/utils/axios.js.map +1 -0
  387. package/utils/createSubscription.js +15 -0
  388. package/utils/createSubscription.js.map +1 -0
  389. package/utils/currencyFormat.js +42 -0
  390. package/utils/currencyFormat.js.map +1 -0
  391. package/utils/datetime.js +60 -0
  392. package/utils/datetime.js.map +1 -0
  393. package/utils/general.js +172 -0
  394. package/utils/general.js.map +1 -0
  395. package/utils/index.js +7 -0
  396. package/utils/index.js.map +1 -0
  397. package/utils/permissions.js +16 -0
  398. package/utils/permissions.js.map +1 -0
  399. package/utils.d.ts +18 -2
  400. package/README.md +0 -173
  401. package/constants.cjs.js.map +0 -1
  402. package/constants.js +0 -15
  403. package/constants.js.map +0 -1
  404. package/cypress-utils.cjs.js +0 -1819
  405. package/cypress-utils.cjs.js.map +0 -1
  406. package/cypress-utils.js +0 -1773
  407. package/cypress-utils.js.map +0 -1
  408. package/initializers.cjs.js +0 -2648
  409. package/initializers.cjs.js.map +0 -1
  410. package/initializers.js +0 -2634
  411. package/initializers.js.map +0 -1
  412. package/react-utils.cjs.js +0 -4915
  413. package/react-utils.cjs.js.map +0 -1
  414. package/react-utils.js +0 -4860
  415. package/react-utils.js.map +0 -1
  416. package/utils.cjs.js +0 -1280
  417. package/utils.cjs.js.map +0 -1
  418. package/utils.js +0 -1248
  419. package/utils.js.map +0 -1
  420. /package/{src → cjs}/translations/en.json +0 -0
@@ -0,0 +1,21 @@
1
+ export * from "./commands";
2
+ export * from "./constants";
3
+ export * from "./constants/selectors/common";
4
+ export * from "./constants/selectors/login";
5
+ export * from "./constants/selectors/member";
6
+ export * from "./constants/selectors/signUp";
7
+ export * from "./constants/selectors/navigation";
8
+ export * from "./constants/texts/common";
9
+ export * from "./constants/texts/member";
10
+ export * from "./constants/texts/signUp";
11
+ export * from "./constants/texts/navigation";
12
+ export * from "./fixtures/fake";
13
+ export * from "./utils/authentication";
14
+ export * from "./utils/common";
15
+ export * from "./utils/date";
16
+ export * from "./utils/member";
17
+ export * from "./utils/organization";
18
+ export * from "./utils/validation";
19
+ export * from "./utils/navigation";
20
+ export * from "./utils/email";
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/cypress-utils/index.js"],"sourcesContent":["export * from \"./commands\";\n\nexport * from \"./constants\";\nexport * from \"./constants/selectors/common\";\nexport * from \"./constants/selectors/login\";\nexport * from \"./constants/selectors/member\";\nexport * from \"./constants/selectors/signUp\";\nexport * from \"./constants/selectors/navigation\";\n\nexport * from \"./constants/texts/common\";\nexport * from \"./constants/texts/member\";\nexport * from \"./constants/texts/signUp\";\nexport * from \"./constants/texts/navigation\";\n\nexport * from \"./fixtures/fake\";\n\nexport * from \"./utils/authentication\";\nexport * from \"./utils/common\";\nexport * from \"./utils/date\";\nexport * from \"./utils/member\";\nexport * from \"./utils/organization\";\nexport * from \"./utils/validation\";\nexport * from \"./utils/navigation\";\nexport * from \"./utils/email\";\n"],"mappings":"AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1,38 @@
1
+ import { navigationUtils } from "./navigation";
2
+ import { commonSelectors, profileSelectors } from "../constants/selectors/common";
3
+ import { loginSelectors } from "../constants/selectors/login";
4
+ import { commonTexts } from "../constants/texts/common";
5
+ var verifySSOLoginPage = function verifySSOLoginPage() {
6
+ cy.log("verify Login Page");
7
+ cy.get(loginSelectors.githubAuthenticationButton).should("be.visible");
8
+ cy.get(loginSelectors.twitterAuthenticationButton).should("be.visible");
9
+ cy.get(loginSelectors.appleAuthenticationButton).should("be.visible");
10
+ cy.get(loginSelectors.googleAuthenticationButton).should("be.visible");
11
+ cy.log("verify Cross Site scripting");
12
+ cy.clearAndType(loginSelectors.emailTextField, commonTexts.crossSiteScript);
13
+ cy.get(loginSelectors.submitButton).click();
14
+ cy.get(commonSelectors.windowAlert).should("not.exist");
15
+ cy.log("verify email login");
16
+ cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
17
+ cy.get(loginSelectors.emailTextField).clear();
18
+ cy.get(loginSelectors.submitButton).click();
19
+ cy.get(commonSelectors.emailInputError).should("have.text", commonTexts.invalidEmailMessage);
20
+ };
21
+ var logout = function logout(homeUrl) {
22
+ cy.get(profileSelectors.loader).should("not.exist");
23
+ navigationUtils.openProfileOrHelpCenter({
24
+ tabSelector: profileSelectors.tab,
25
+ subTabLink: profileSelectors.logoutLink,
26
+ count: 5
27
+ });
28
+ cy.get(profileSelectors.tab).click();
29
+ cy.get(profileSelectors.logoutLink).should("have.text", commonTexts.logout).invoke("click");
30
+ cy.url({
31
+ timeout: 15000
32
+ }).should("not.include", homeUrl);
33
+ };
34
+ export var authUtils = {
35
+ verifySSOLoginPage: verifySSOLoginPage,
36
+ logout: logout
37
+ };
38
+ //# sourceMappingURL=authentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authentication.js","names":["navigationUtils","commonSelectors","profileSelectors","loginSelectors","commonTexts","verifySSOLoginPage","cy","log","get","githubAuthenticationButton","should","twitterAuthenticationButton","appleAuthenticationButton","googleAuthenticationButton","clearAndType","emailTextField","crossSiteScript","submitButton","click","windowAlert","emailInputError","invalidEmailMessage","clear","logout","homeUrl","loader","openProfileOrHelpCenter","tabSelector","tab","subTabLink","logoutLink","count","invoke","url","timeout","authUtils"],"sources":["../../../src/cypress-utils/utils/authentication.js"],"sourcesContent":["import { navigationUtils } from \"./navigation\";\n\nimport {\n commonSelectors,\n profileSelectors,\n} from \"../constants/selectors/common\";\nimport { loginSelectors } from \"../constants/selectors/login\";\nimport { commonTexts } from \"../constants/texts/common\";\n\nconst verifySSOLoginPage = () => {\n cy.log(\"verify Login Page\");\n cy.get(loginSelectors.githubAuthenticationButton).should(\"be.visible\");\n cy.get(loginSelectors.twitterAuthenticationButton).should(\"be.visible\");\n cy.get(loginSelectors.appleAuthenticationButton).should(\"be.visible\");\n cy.get(loginSelectors.googleAuthenticationButton).should(\"be.visible\");\n\n cy.log(\"verify Cross Site scripting\");\n cy.clearAndType(loginSelectors.emailTextField, commonTexts.crossSiteScript);\n cy.get(loginSelectors.submitButton).click();\n cy.get(commonSelectors.windowAlert).should(\"not.exist\");\n\n cy.log(\"verify email login\");\n cy.get(commonSelectors.emailInputError).should(\n \"have.text\",\n commonTexts.invalidEmailMessage\n );\n cy.get(loginSelectors.emailTextField).clear();\n cy.get(loginSelectors.submitButton).click();\n cy.get(commonSelectors.emailInputError).should(\n \"have.text\",\n commonTexts.invalidEmailMessage\n );\n};\n\nconst logout = homeUrl => {\n cy.get(profileSelectors.loader).should(\"not.exist\");\n navigationUtils.openProfileOrHelpCenter({\n tabSelector: profileSelectors.tab,\n subTabLink: profileSelectors.logoutLink,\n count: 5,\n });\n cy.get(profileSelectors.tab).click();\n cy.get(profileSelectors.logoutLink)\n .should(\"have.text\", commonTexts.logout)\n .invoke(\"click\");\n cy.url({ timeout: 15000 }).should(\"not.include\", homeUrl);\n};\n\nexport const authUtils = { verifySSOLoginPage, logout };\n"],"mappings":"AAAA,SAASA,eAAe;AAExB,SACEC,eAAe,EACfC,gBAAgB;AAElB,SAASC,cAAc;AACvB,SAASC,WAAW;AAEpB,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAA,EAAS;EAC/BC,EAAE,CAACC,GAAG,CAAC,mBAAmB,CAAC;EAC3BD,EAAE,CAACE,GAAG,CAACL,cAAc,CAACM,0BAA0B,CAAC,CAACC,MAAM,CAAC,YAAY,CAAC;EACtEJ,EAAE,CAACE,GAAG,CAACL,cAAc,CAACQ,2BAA2B,CAAC,CAACD,MAAM,CAAC,YAAY,CAAC;EACvEJ,EAAE,CAACE,GAAG,CAACL,cAAc,CAACS,yBAAyB,CAAC,CAACF,MAAM,CAAC,YAAY,CAAC;EACrEJ,EAAE,CAACE,GAAG,CAACL,cAAc,CAACU,0BAA0B,CAAC,CAACH,MAAM,CAAC,YAAY,CAAC;EAEtEJ,EAAE,CAACC,GAAG,CAAC,6BAA6B,CAAC;EACrCD,EAAE,CAACQ,YAAY,CAACX,cAAc,CAACY,cAAc,EAAEX,WAAW,CAACY,eAAe,CAAC;EAC3EV,EAAE,CAACE,GAAG,CAACL,cAAc,CAACc,YAAY,CAAC,CAACC,KAAK,EAAE;EAC3CZ,EAAE,CAACE,GAAG,CAACP,eAAe,CAACkB,WAAW,CAAC,CAACT,MAAM,CAAC,WAAW,CAAC;EAEvDJ,EAAE,CAACC,GAAG,CAAC,oBAAoB,CAAC;EAC5BD,EAAE,CAACE,GAAG,CAACP,eAAe,CAACmB,eAAe,CAAC,CAACV,MAAM,CAC5C,WAAW,EACXN,WAAW,CAACiB,mBAAmB,CAChC;EACDf,EAAE,CAACE,GAAG,CAACL,cAAc,CAACY,cAAc,CAAC,CAACO,KAAK,EAAE;EAC7ChB,EAAE,CAACE,GAAG,CAACL,cAAc,CAACc,YAAY,CAAC,CAACC,KAAK,EAAE;EAC3CZ,EAAE,CAACE,GAAG,CAACP,eAAe,CAACmB,eAAe,CAAC,CAACV,MAAM,CAC5C,WAAW,EACXN,WAAW,CAACiB,mBAAmB,CAChC;AACH,CAAC;AAED,IAAME,MAAM,GAAG,SAATA,MAAMA,CAAGC,OAAO,EAAI;EACxBlB,EAAE,CAACE,GAAG,CAACN,gBAAgB,CAACuB,MAAM,CAAC,CAACf,MAAM,CAAC,WAAW,CAAC;EACnDV,eAAe,CAAC0B,uBAAuB,CAAC;IACtCC,WAAW,EAAEzB,gBAAgB,CAAC0B,GAAG;IACjCC,UAAU,EAAE3B,gBAAgB,CAAC4B,UAAU;IACvCC,KAAK,EAAE;EACT,CAAC,CAAC;EACFzB,EAAE,CAACE,GAAG,CAACN,gBAAgB,CAAC0B,GAAG,CAAC,CAACV,KAAK,EAAE;EACpCZ,EAAE,CAACE,GAAG,CAACN,gBAAgB,CAAC4B,UAAU,CAAC,CAChCpB,MAAM,CAAC,WAAW,EAAEN,WAAW,CAACmB,MAAM,CAAC,CACvCS,MAAM,CAAC,OAAO,CAAC;EAClB1B,EAAE,CAAC2B,GAAG,CAAC;IAAEC,OAAO,EAAE;EAAM,CAAC,CAAC,CAACxB,MAAM,CAAC,aAAa,EAAEc,OAAO,CAAC;AAC3D,CAAC;AAED,OAAO,IAAMW,SAAS,GAAG;EAAE9B,kBAAkB,EAAlBA,kBAAkB;EAAEkB,MAAM,EAANA;AAAO,CAAC"}
@@ -0,0 +1,75 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
+ import { environment } from "../constants";
5
+ var getCountFromText = function getCountFromText(countText) {
6
+ return Number(countText.text().trim().split(" ")[0]);
7
+ };
8
+ var env = {
9
+ isDevelopment: Cypress.env("configFile") === environment.development,
10
+ isReview: Cypress.env("configFile") === environment.review,
11
+ isStaging: Cypress.env("configFile") === environment.staging,
12
+ isProduction: Cypress.env("configFile") === environment.production
13
+ };
14
+ env.isNightlyRun = env.isProduction || env.isStaging;
15
+ env.tld = env.isProduction ? "com" : "net";
16
+ var isStagingEnv = Cypress.env("configFile") === environment.staging;
17
+ var dataCy = function dataCy(value) {
18
+ var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
19
+ return "[data-cy='".concat(value, "']").concat(suffix);
20
+ };
21
+ var dataTestId = function dataTestId(value) {
22
+ var suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
23
+ return "[data-testid='".concat(value, "']").concat(suffix);
24
+ };
25
+ var setListCount = function setListCount(countSelector, alias) {
26
+ return cy.get(countSelector).then(function (countText) {
27
+ cy.wrap(getCountFromText(countText)).as(alias);
28
+ });
29
+ };
30
+ var verifyListCount = function verifyListCount(countSelector, count) {
31
+ return cy.get(countSelector).then(function (countText) {
32
+ cy.wrap(getCountFromText(countText)).should("eq", count);
33
+ });
34
+ };
35
+ var getUrl = function getUrl(path) {
36
+ return "/api/v1/".concat(path);
37
+ };
38
+ var getTestTitle = function getTestTitle() {
39
+ var ctx = Cypress.mocha.getRunner().suite.ctx;
40
+ return ctx.currentTest.parent.title;
41
+ };
42
+ var joinHyphenCase = function joinHyphenCase() {
43
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
44
+ args[_key] = arguments[_key];
45
+ }
46
+ return args.join(" ").replace(/\s+/g, "-").toLowerCase();
47
+ };
48
+ var hyphenize = function hyphenize(input) {
49
+ var fallbackString = "";
50
+ if (typeof input === "number") return String(input);
51
+ if (input && typeof input === "string" && input.replace) {
52
+ return input.replace(/[\s_]/g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/-+/g, "-").toLowerCase();
53
+ }
54
+ return fallbackString;
55
+ };
56
+ var initializeCredentials = function initializeCredentials(stagingData) {
57
+ cy.task("getGlobalState").then(function (state) {
58
+ var newState = _objectSpread(_objectSpread({}, state), {}, {
59
+ businessName: state.businessName || stagingData.businessName,
60
+ currentUserName: state.currentUserName || stagingData.currentUserName,
61
+ email: state.email || stagingData.email,
62
+ firstName: state.firstName || stagingData.firstName,
63
+ lastName: state.lastName || stagingData.lastName,
64
+ subdomainName: state.subdomainName || stagingData.subdomainName,
65
+ skipSetup: state.skipSetup
66
+ });
67
+ if (isStagingEnv) {
68
+ var baseUrl = "https://".concat(newState.subdomainName, ".").concat(stagingData.domain);
69
+ Cypress.config("baseUrl", baseUrl);
70
+ }
71
+ cy.task("bulkUpdateGlobalState", newState);
72
+ });
73
+ };
74
+ export { env, isStagingEnv, dataCy, dataTestId, setListCount, verifyListCount, getUrl, getTestTitle, joinHyphenCase, hyphenize, initializeCredentials };
75
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","names":["environment","getCountFromText","countText","Number","text","trim","split","env","isDevelopment","Cypress","development","isReview","review","isStaging","staging","isProduction","production","isNightlyRun","tld","isStagingEnv","dataCy","value","suffix","arguments","length","undefined","concat","dataTestId","setListCount","countSelector","alias","cy","get","then","wrap","as","verifyListCount","count","should","getUrl","path","getTestTitle","ctx","mocha","getRunner","suite","currentTest","parent","title","joinHyphenCase","_len","args","Array","_key","join","replace","toLowerCase","hyphenize","input","fallbackString","String","initializeCredentials","stagingData","task","state","newState","_objectSpread","businessName","currentUserName","email","firstName","lastName","subdomainName","skipSetup","baseUrl","domain","config"],"sources":["../../../src/cypress-utils/utils/common.js"],"sourcesContent":["import { environment } from \"../constants\";\n\nconst getCountFromText = countText =>\n Number(countText.text().trim().split(\" \")[0]);\n\nconst env = {\n isDevelopment: Cypress.env(\"configFile\") === environment.development,\n isReview: Cypress.env(\"configFile\") === environment.review,\n isStaging: Cypress.env(\"configFile\") === environment.staging,\n isProduction: Cypress.env(\"configFile\") === environment.production,\n};\nenv.isNightlyRun = env.isProduction || env.isStaging;\nenv.tld = env.isProduction ? \"com\" : \"net\";\n\nconst isStagingEnv = Cypress.env(\"configFile\") === environment.staging;\n\nconst dataCy = (value, suffix = \"\") => `[data-cy='${value}']${suffix}`;\n\nconst dataTestId = (value, suffix = \"\") => `[data-testid='${value}']${suffix}`;\n\nconst setListCount = (countSelector, alias) =>\n cy.get(countSelector).then(countText => {\n cy.wrap(getCountFromText(countText)).as(alias);\n });\n\nconst verifyListCount = (countSelector, count) =>\n cy.get(countSelector).then(countText => {\n cy.wrap(getCountFromText(countText)).should(\"eq\", count);\n });\n\nconst getUrl = path => `/api/v1/${path}`;\n\nconst getTestTitle = () => {\n const { ctx } = Cypress.mocha.getRunner().suite;\n\n return ctx.currentTest.parent.title;\n};\n\nconst joinHyphenCase = (...args) =>\n args.join(\" \").replace(/\\s+/g, \"-\").toLowerCase();\n\nconst hyphenize = input => {\n const fallbackString = \"\";\n if (typeof input === \"number\") return String(input);\n\n if (input && typeof input === \"string\" && input.replace) {\n return input\n .replace(/[\\s_]/g, \"-\")\n .replace(/([a-z])([A-Z])/g, \"$1-$2\")\n .replace(/-+/g, \"-\")\n .toLowerCase();\n }\n\n return fallbackString;\n};\n\nconst initializeCredentials = stagingData => {\n cy.task(\"getGlobalState\").then(state => {\n const newState = {\n ...state,\n businessName: state.businessName || stagingData.businessName,\n currentUserName: state.currentUserName || stagingData.currentUserName,\n email: state.email || stagingData.email,\n firstName: state.firstName || stagingData.firstName,\n lastName: state.lastName || stagingData.lastName,\n subdomainName: state.subdomainName || stagingData.subdomainName,\n skipSetup: state.skipSetup,\n };\n if (isStagingEnv) {\n const baseUrl = `https://${newState.subdomainName}.${stagingData.domain}`;\n Cypress.config(\"baseUrl\", baseUrl);\n }\n cy.task(\"bulkUpdateGlobalState\", newState);\n });\n};\n\nexport {\n env,\n isStagingEnv,\n dataCy,\n dataTestId,\n setListCount,\n verifyListCount,\n getUrl,\n getTestTitle,\n joinHyphenCase,\n hyphenize,\n initializeCredentials,\n};\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import dayjs from "dayjs";
2
+ var currentDate = function currentDate() {
3
+ return dayjs().format("YYYY-MM-DD");
4
+ };
5
+ var futureDate = function futureDate() {
6
+ var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
7
+ var date = dayjs().add(numberOfDays, "day").format("YYYY-MM-DD");
8
+ return date;
9
+ };
10
+ var pastDate = function pastDate() {
11
+ var numberOfDays = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
12
+ var date = dayjs().subtract(numberOfDays, "day").format("YYYY-MM-DD");
13
+ return date;
14
+ };
15
+ export var dateUtils = {
16
+ currentDate: currentDate,
17
+ futureDate: futureDate,
18
+ pastDate: pastDate
19
+ };
20
+ //# sourceMappingURL=date.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date.js","names":["dayjs","currentDate","format","futureDate","numberOfDays","arguments","length","undefined","date","add","pastDate","subtract","dateUtils"],"sources":["../../../src/cypress-utils/utils/date.js"],"sourcesContent":["import dayjs from \"dayjs\";\n\nconst currentDate = () => dayjs().format(\"YYYY-MM-DD\");\n\nconst futureDate = (numberOfDays = 1) => {\n const date = dayjs().add(numberOfDays, \"day\").format(\"YYYY-MM-DD\");\n\n return date;\n};\n\nconst pastDate = (numberOfDays = 1) => {\n const date = dayjs().subtract(numberOfDays, \"day\").format(\"YYYY-MM-DD\");\n\n return date;\n};\n\nexport const dateUtils = { currentDate, futureDate, pastDate };\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAA;EAAA,OAASD,KAAK,EAAE,CAACE,MAAM,CAAC,YAAY,CAAC;AAAA;AAEtD,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAyB;EAAA,IAArBC,YAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAClC,IAAMG,IAAI,GAAGR,KAAK,EAAE,CAACS,GAAG,CAACL,YAAY,EAAE,KAAK,CAAC,CAACF,MAAM,CAAC,YAAY,CAAC;EAElE,OAAOM,IAAI;AACb,CAAC;AAED,IAAME,QAAQ,GAAG,SAAXA,QAAQA,CAAA,EAAyB;EAAA,IAArBN,YAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EAChC,IAAMG,IAAI,GAAGR,KAAK,EAAE,CAACW,QAAQ,CAACP,YAAY,EAAE,KAAK,CAAC,CAACF,MAAM,CAAC,YAAY,CAAC;EAEvE,OAAOM,IAAI;AACb,CAAC;AAED,OAAO,IAAMI,SAAS,GAAG;EAAEX,WAAW,EAAXA,WAAW;EAAEE,UAAU,EAAVA,UAAU;EAAEO,QAAQ,EAARA;AAAS,CAAC"}
@@ -0,0 +1,156 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ var hostname = "api.fastmail.com";
3
+ var username = Cypress.env("FASTMAIL_USERNAME") || "cypress@mixarrow.com";
4
+ var token = Cypress.env("FASTMAIL_TOKEN");
5
+ var authUrl = "https://".concat(hostname, "/.well-known/jmap");
6
+ var headers = {
7
+ "Content-Type": "application/json",
8
+ Authorization: "Bearer ".concat(token)
9
+ };
10
+ var getSession = function getSession() {
11
+ return cy.request({
12
+ url: authUrl,
13
+ method: "GET",
14
+ headers: headers
15
+ });
16
+ };
17
+ var getDraftId = function getDraftId(_ref) {
18
+ var apiUrl = _ref.apiUrl,
19
+ accountId = _ref.accountId;
20
+ cy.request({
21
+ url: apiUrl,
22
+ method: "POST",
23
+ headers: headers,
24
+ body: JSON.stringify({
25
+ using: ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail"],
26
+ methodCalls: [["Mailbox/query", {
27
+ accountId: accountId,
28
+ filter: {
29
+ name: "Drafts"
30
+ }
31
+ }, "a"]]
32
+ })
33
+ }).then(function (_ref2) {
34
+ var data = _ref2.body;
35
+ return cy.wrap(data["methodResponses"][0][1].ids[0]).as("draftId");
36
+ });
37
+ };
38
+ var getIdentityId = function getIdentityId(_ref3) {
39
+ var apiUrl = _ref3.apiUrl,
40
+ accountId = _ref3.accountId;
41
+ cy.request({
42
+ url: apiUrl,
43
+ method: "POST",
44
+ headers: headers,
45
+ body: JSON.stringify({
46
+ using: ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail", "urn:ietf:params:jmap:submission"],
47
+ methodCalls: [["Identity/get", {
48
+ accountId: accountId,
49
+ ids: null
50
+ }, "a"]]
51
+ })
52
+ }).then(function (_ref4) {
53
+ var data = _ref4.body;
54
+ var identities = data["methodResponses"][0][1].list;
55
+ var identityId = identities.find(function (_ref5) {
56
+ var email = _ref5.email;
57
+ return email === username;
58
+ }).id;
59
+ cy.wrap(identityId).as("identityId");
60
+ });
61
+ };
62
+ var composeEmail = function composeEmail(_ref6) {
63
+ var apiUrl = _ref6.apiUrl,
64
+ accountId = _ref6.accountId,
65
+ draftId = _ref6.draftId,
66
+ identityId = _ref6.identityId,
67
+ emailDetails = _ref6.emailDetails;
68
+ var subject = emailDetails.subject,
69
+ body = emailDetails.body,
70
+ to = emailDetails.to,
71
+ senderName = emailDetails.senderName;
72
+ var draftObject = {
73
+ from: [{
74
+ email: username,
75
+ name: senderName
76
+ }],
77
+ to: [{
78
+ email: to
79
+ }],
80
+ subject: subject,
81
+ keywords: {
82
+ $draft: true
83
+ },
84
+ mailboxIds: _defineProperty({}, draftId, true),
85
+ bodyValues: {
86
+ body: {
87
+ value: body,
88
+ charset: "utf-8"
89
+ }
90
+ },
91
+ textBody: [{
92
+ partId: "body",
93
+ type: "text/plain"
94
+ }]
95
+ };
96
+ cy.request({
97
+ url: apiUrl,
98
+ method: "POST",
99
+ headers: headers,
100
+ body: JSON.stringify({
101
+ using: ["urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail", "urn:ietf:params:jmap:submission"],
102
+ methodCalls: [["Email/set", {
103
+ accountId: accountId,
104
+ create: {
105
+ draft: draftObject
106
+ }
107
+ }, "a"], ["EmailSubmission/set", {
108
+ accountId: accountId,
109
+ onSuccessDestroyEmail: ["#sendIt"],
110
+ create: {
111
+ sendIt: {
112
+ emailId: "#draft",
113
+ identityId: identityId
114
+ }
115
+ }
116
+ }, "b"]]
117
+ })
118
+ });
119
+ };
120
+ var checkForEnvs = function checkForEnvs() {
121
+ if (!username || !token) {
122
+ throw new Error("Please provide CYPRESS_FASTMAIL_USERNAME and CYPRESS_FASTMAIL_TOKEN as environment variables");
123
+ }
124
+ };
125
+ export var sendEmail = function sendEmail(emailDetails) {
126
+ checkForEnvs();
127
+ getSession().then(function (_ref7) {
128
+ var session = _ref7.body;
129
+ var apiUrl = session.apiUrl,
130
+ primaryAccounts = session.primaryAccounts;
131
+ var accountId = primaryAccounts["urn:ietf:params:jmap:mail"];
132
+ getDraftId({
133
+ apiUrl: apiUrl,
134
+ accountId: accountId
135
+ });
136
+ getIdentityId({
137
+ apiUrl: apiUrl,
138
+ accountId: accountId
139
+ });
140
+ cy.get("@draftId").then(function (draftId) {
141
+ cy.get("@identityId").then(function (identityId) {
142
+ return composeEmail({
143
+ apiUrl: apiUrl,
144
+ accountId: accountId,
145
+ draftId: draftId,
146
+ identityId: identityId,
147
+ emailDetails: emailDetails
148
+ });
149
+ });
150
+ });
151
+ });
152
+ };
153
+ export var emailUtils = {
154
+ sendEmail: sendEmail
155
+ };
156
+ //# sourceMappingURL=email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.js","names":["hostname","username","Cypress","env","token","authUrl","concat","headers","Authorization","getSession","cy","request","url","method","getDraftId","_ref","apiUrl","accountId","body","JSON","stringify","using","methodCalls","filter","name","then","_ref2","data","wrap","ids","as","getIdentityId","_ref3","_ref4","identities","list","identityId","find","_ref5","email","id","composeEmail","_ref6","draftId","emailDetails","subject","to","senderName","draftObject","from","keywords","$draft","mailboxIds","_defineProperty","bodyValues","value","charset","textBody","partId","type","create","draft","onSuccessDestroyEmail","sendIt","emailId","checkForEnvs","Error","sendEmail","_ref7","session","primaryAccounts","get","emailUtils"],"sources":["../../../src/cypress-utils/utils/email.js"],"sourcesContent":["const hostname = \"api.fastmail.com\";\nconst username = Cypress.env(\"FASTMAIL_USERNAME\") || \"cypress@mixarrow.com\";\nconst token = Cypress.env(\"FASTMAIL_TOKEN\");\n\nconst authUrl = `https://${hostname}/.well-known/jmap`;\nconst headers = {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${token}`,\n};\n\nconst getSession = () => cy.request({ url: authUrl, method: \"GET\", headers });\n\nconst getDraftId = ({ apiUrl, accountId }) => {\n cy.request({\n url: apiUrl,\n method: \"POST\",\n headers,\n body: JSON.stringify({\n using: [\"urn:ietf:params:jmap:core\", \"urn:ietf:params:jmap:mail\"],\n methodCalls: [\n [\"Mailbox/query\", { accountId, filter: { name: \"Drafts\" } }, \"a\"],\n ],\n }),\n }).then(({ body: data }) =>\n cy.wrap(data[\"methodResponses\"][0][1].ids[0]).as(\"draftId\")\n );\n};\n\nconst getIdentityId = ({ apiUrl, accountId }) => {\n cy.request({\n url: apiUrl,\n method: \"POST\",\n headers,\n body: JSON.stringify({\n using: [\n \"urn:ietf:params:jmap:core\",\n \"urn:ietf:params:jmap:mail\",\n \"urn:ietf:params:jmap:submission\",\n ],\n methodCalls: [[\"Identity/get\", { accountId, ids: null }, \"a\"]],\n }),\n }).then(({ body: data }) => {\n const identities = data[\"methodResponses\"][0][1].list;\n const identityId = identities.find(({ email }) => email === username).id;\n cy.wrap(identityId).as(\"identityId\");\n });\n};\n\nconst composeEmail = ({\n apiUrl,\n accountId,\n draftId,\n identityId,\n emailDetails,\n}) => {\n const { subject, body, to, senderName } = emailDetails;\n\n const draftObject = {\n from: [{ email: username, name: senderName }],\n to: [{ email: to }],\n subject,\n keywords: { $draft: true },\n mailboxIds: { [draftId]: true },\n bodyValues: { body: { value: body, charset: \"utf-8\" } },\n textBody: [{ partId: \"body\", type: \"text/plain\" }],\n };\n\n cy.request({\n url: apiUrl,\n method: \"POST\",\n headers,\n body: JSON.stringify({\n using: [\n \"urn:ietf:params:jmap:core\",\n \"urn:ietf:params:jmap:mail\",\n \"urn:ietf:params:jmap:submission\",\n ],\n methodCalls: [\n [\"Email/set\", { accountId, create: { draft: draftObject } }, \"a\"],\n [\n \"EmailSubmission/set\",\n {\n accountId,\n onSuccessDestroyEmail: [\"#sendIt\"],\n create: { sendIt: { emailId: \"#draft\", identityId } },\n },\n \"b\",\n ],\n ],\n }),\n });\n};\n\nconst checkForEnvs = () => {\n if (!username || !token) {\n throw new Error(\n \"Please provide CYPRESS_FASTMAIL_USERNAME and CYPRESS_FASTMAIL_TOKEN as environment variables\"\n );\n }\n};\n\nexport const sendEmail = emailDetails => {\n checkForEnvs();\n getSession().then(({ body: session }) => {\n const { apiUrl, primaryAccounts } = session;\n const accountId = primaryAccounts[\"urn:ietf:params:jmap:mail\"];\n getDraftId({ apiUrl, accountId });\n getIdentityId({ apiUrl, accountId });\n cy.get(\"@draftId\").then(draftId => {\n cy.get(\"@identityId\").then(identityId =>\n composeEmail({ apiUrl, accountId, draftId, identityId, emailDetails })\n );\n });\n });\n};\n\nexport const emailUtils = { sendEmail };\n"],"mappings":"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"}