@joystick.js/node-canary 0.0.0-canary.42 → 0.0.0-canary.420

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 (444) hide show
  1. package/.build/getFilesToBuild.js +26 -0
  2. package/.build/getPlatformSafeFilePath.js +6 -0
  3. package/.build/getPlatformSafePath.js +6 -0
  4. package/.build/index.js +88 -0
  5. package/.build/isWindows.js +3 -0
  6. package/dist/action/class.js +1 -82
  7. package/dist/action/index.js +1 -8
  8. package/dist/app/accounts/default_user_output_fields.js +1 -0
  9. package/dist/app/accounts/delete_user.js +1 -0
  10. package/dist/app/accounts/generate_account_session.js +1 -0
  11. package/dist/app/accounts/generate_password_reset_token.js +1 -0
  12. package/dist/app/accounts/get_browser_safe_user.js +1 -0
  13. package/dist/app/accounts/has_login_token_expired.js +1 -0
  14. package/dist/app/accounts/index.js +1 -29
  15. package/dist/app/accounts/login.js +1 -59
  16. package/dist/app/accounts/recover_password.js +1 -0
  17. package/dist/app/accounts/reset_password.js +1 -0
  18. package/dist/app/accounts/roles/add.js +1 -7
  19. package/dist/app/accounts/roles/grant.js +1 -7
  20. package/dist/app/accounts/roles/index.js +1 -17
  21. package/dist/app/accounts/roles/list.js +1 -7
  22. package/dist/app/accounts/roles/remove.js +1 -7
  23. package/dist/app/accounts/roles/revoke.js +1 -7
  24. package/dist/app/accounts/roles/user_has_role.js +1 -0
  25. package/dist/app/accounts/send_email_verification.js +1 -0
  26. package/dist/app/accounts/set_account_cookie.js +1 -0
  27. package/dist/app/accounts/set_password.js +1 -0
  28. package/dist/app/accounts/signup.js +1 -97
  29. package/dist/app/accounts/unset_account_cookie.js +1 -0
  30. package/dist/app/accounts/verify_email.js +1 -0
  31. package/dist/app/api/accounts/authenticated.js +1 -0
  32. package/dist/app/api/accounts/login.js +1 -0
  33. package/dist/app/api/accounts/logout.js +1 -0
  34. package/dist/app/api/accounts/recover_password.js +1 -0
  35. package/dist/app/api/accounts/reset_password.js +1 -0
  36. package/dist/app/api/accounts/signup.js +1 -0
  37. package/dist/app/api/accounts/user.js +1 -0
  38. package/dist/app/api/accounts/verify_email.js +1 -0
  39. package/dist/app/api/format_api_error.js +1 -0
  40. package/dist/app/api/get.js +2 -0
  41. package/dist/app/api/get_api_context.js +1 -0
  42. package/dist/app/api/get_api_for_data_functions.js +1 -0
  43. package/dist/app/api/get_api_url_component.js +1 -0
  44. package/dist/app/api/get_output.js +1 -0
  45. package/dist/app/api/get_value_from_object.js +1 -0
  46. package/dist/app/api/handle_api_error.js +1 -0
  47. package/dist/app/api/input_validators.js +1 -0
  48. package/dist/app/api/is_array_path.js +1 -0
  49. package/dist/app/api/push/health.js +2 -0
  50. package/dist/app/api/register_getters.js +1 -0
  51. package/dist/app/api/register_setters.js +1 -0
  52. package/dist/app/api/sanitize_api_response.js +1 -0
  53. package/dist/app/api/set.js +2 -0
  54. package/dist/app/api/test/accounts/delete.js +1 -0
  55. package/dist/app/api/test/accounts/signup.js +1 -0
  56. package/dist/app/api/test/bootstrap.js +1 -0
  57. package/dist/app/api/test/process.js +1 -0
  58. package/dist/app/api/test/queues.js +1 -0
  59. package/dist/app/api/validate_input.js +1 -0
  60. package/dist/app/api/validate_session.js +1 -0
  61. package/dist/app/api/validate_type.js +1 -0
  62. package/dist/app/browser/hmr_client.js +1 -0
  63. package/dist/app/browser/process_polyfill.js +1 -0
  64. package/dist/app/cron_jobs/register.js +1 -0
  65. package/dist/app/databases/database_type_map.js +1 -0
  66. package/dist/app/databases/get_target_database_connection.js +1 -0
  67. package/dist/app/databases/mongodb/available_query_parameters.js +1 -0
  68. package/dist/app/databases/mongodb/build_connection_string.js +1 -0
  69. package/dist/app/databases/mongodb/build_query_parameters.js +1 -0
  70. package/dist/app/databases/mongodb/connect.js +6 -0
  71. package/dist/app/databases/mongodb/create_indexes.js +1 -0
  72. package/dist/app/databases/postgresql/accounts/create_accounts_metadata_table_columns.js +1 -0
  73. package/dist/app/databases/postgresql/connect.js +30 -0
  74. package/dist/app/databases/postgresql/create_indexes.js +1 -0
  75. package/dist/app/databases/postgresql/create_tables.js +1 -0
  76. package/dist/app/databases/postgresql/handle_cleanup_queues.js +5 -0
  77. package/dist/app/databases/postgresql/handle_cleanup_sessions.js +1 -0
  78. package/dist/app/databases/queries/accounts.js +1 -0
  79. package/dist/app/databases/queries/map.js +1 -0
  80. package/dist/app/databases/queries/mongodb/accounts.js +1 -0
  81. package/dist/app/databases/queries/mongodb/queues.js +1 -0
  82. package/dist/app/databases/queries/mongodb/sessions.js +1 -0
  83. package/dist/app/databases/queries/postgresql/accounts.js +1 -0
  84. package/dist/app/databases/queries/postgresql/queues.js +123 -0
  85. package/dist/app/databases/queries/postgresql/sessions.js +14 -0
  86. package/dist/app/databases/queries/sessions.js +1 -0
  87. package/dist/app/databases/register_database.js +1 -0
  88. package/dist/app/databases/sql.js +1 -0
  89. package/dist/app/email/send.js +1 -0
  90. package/dist/app/email/validate_smtp_settings.js +1 -0
  91. package/dist/app/fixture/index.js +1 -0
  92. package/dist/app/generate_machine_id.js +1 -0
  93. package/dist/app/generate_process_id.js +1 -0
  94. package/dist/app/get_ssl_certificates.js +1 -0
  95. package/dist/app/handle_process_errors.js +1 -0
  96. package/dist/app/index.js +1 -654
  97. package/dist/app/middleware/account.js +1 -0
  98. package/dist/app/middleware/body_parser.js +1 -0
  99. package/dist/app/middleware/build_error.js +1 -0
  100. package/dist/app/middleware/built_in.js +1 -0
  101. package/dist/app/middleware/context.js +1 -0
  102. package/dist/app/middleware/cors.js +1 -22
  103. package/dist/app/middleware/csp.js +1 -48
  104. package/dist/app/middleware/generate_insecure_page.js +65 -0
  105. package/dist/app/middleware/generate_joystick_error_page.js +147 -0
  106. package/dist/app/middleware/hmr_client.js +1 -0
  107. package/dist/app/middleware/insecure.js +1 -11
  108. package/dist/app/middleware/process_browser_polyfill.js +1 -0
  109. package/dist/app/middleware/render/get_url.js +1 -0
  110. package/dist/app/middleware/render/index.js +1 -0
  111. package/dist/app/middleware/request_methods.js +1 -0
  112. package/dist/app/middleware/session.js +1 -24
  113. package/dist/app/push_logs.js +1 -0
  114. package/dist/app/queues/index.js +1 -119
  115. package/dist/app/register_app_options.js +1 -0
  116. package/dist/app/routes/register_route_from_function.js +1 -0
  117. package/dist/app/routes/register_route_from_object.js +1 -0
  118. package/dist/app/routes/supported_http_methods.js +1 -0
  119. package/dist/app/settings/load.js +1 -0
  120. package/dist/app/ssr/index.js +32 -0
  121. package/dist/app/ssr/set_base_attributes_in_html.js +1 -0
  122. package/dist/app/ssr/set_head_tags_in_html.js +1 -0
  123. package/dist/app/start_express.js +1 -0
  124. package/dist/app/start_node_as_cluster.js +1 -0
  125. package/dist/app/uploaders/local_upload_progress_middleware.js +1 -0
  126. package/dist/app/uploaders/register.js +1 -0
  127. package/dist/app/uploaders/run_upload.js +1 -0
  128. package/dist/app/uploaders/validate_options.js +1 -0
  129. package/dist/app/uploaders/validate_uploads.js +1 -0
  130. package/dist/app/websockets/emit_event.js +1 -0
  131. package/dist/app/websockets/index.js +1 -0
  132. package/dist/app/websockets/register.js +1 -0
  133. package/dist/index.js +4 -76
  134. package/dist/lib/camel_pascal_to_snake.js +1 -0
  135. package/dist/lib/constants.js +1 -13
  136. package/dist/lib/dynamic_import.js +1 -0
  137. package/dist/lib/escape_html.js +1 -0
  138. package/dist/lib/escape_key_value_pair.js +1 -0
  139. package/dist/lib/float_to_decimal_place.js +1 -0
  140. package/dist/lib/generate_id.js +1 -0
  141. package/dist/lib/get_browser_safe_request.js +1 -0
  142. package/dist/lib/get_joystick_build_path.js +1 -0
  143. package/dist/lib/get_origin.js +1 -0
  144. package/dist/lib/get_sanitized_context.js +1 -0
  145. package/dist/lib/get_translations.js +1 -0
  146. package/dist/lib/hash_string.js +1 -0
  147. package/dist/lib/is_valid_json.js +1 -0
  148. package/dist/lib/log.js +13 -52
  149. package/dist/lib/node_path_polyfills.js +1 -0
  150. package/dist/lib/parse_json.js +1 -0
  151. package/dist/lib/path_exists.js +1 -0
  152. package/dist/lib/rainbow_road.js +1 -0
  153. package/dist/lib/replace_backslashes_with_forward_slashes.js +1 -0
  154. package/dist/lib/replace_file_protocol.js +1 -0
  155. package/dist/lib/serialize_query_parameters.js +1 -0
  156. package/dist/lib/set_cookie.js +1 -0
  157. package/dist/lib/string_to_slug.js +1 -0
  158. package/dist/lib/timestamps.js +1 -0
  159. package/dist/lib/types.js +1 -0
  160. package/dist/lib/unset_cookie.js +1 -0
  161. package/dist/lib/wait.js +1 -0
  162. package/dist/test/track_function_call.js +1 -0
  163. package/increment_version.js +3 -0
  164. package/package.json +27 -44
  165. package/src/action/class.js +137 -0
  166. package/src/action/index.js +8 -0
  167. package/src/app/accounts/default_user_output_fields.js +10 -0
  168. package/src/app/accounts/delete_user.js +18 -0
  169. package/src/app/accounts/generate_account_session.js +11 -0
  170. package/src/app/accounts/generate_password_reset_token.js +16 -0
  171. package/src/app/accounts/get_browser_safe_user.js +29 -0
  172. package/src/app/accounts/has_login_token_expired.js +9 -0
  173. package/src/app/accounts/index.js +38 -0
  174. package/src/app/accounts/login.js +82 -0
  175. package/src/app/accounts/recover_password.js +58 -0
  176. package/src/app/accounts/reset_password.js +69 -0
  177. package/src/app/accounts/roles/add.js +7 -0
  178. package/src/app/accounts/roles/grant.js +7 -0
  179. package/src/app/accounts/roles/index.js +18 -0
  180. package/src/app/accounts/roles/list.js +7 -0
  181. package/src/app/accounts/roles/remove.js +7 -0
  182. package/src/app/accounts/roles/revoke.js +7 -0
  183. package/src/app/accounts/roles/user_has_role.js +7 -0
  184. package/src/app/accounts/send_email_verification.js +48 -0
  185. package/src/app/accounts/set_account_cookie.js +12 -0
  186. package/src/app/accounts/set_password.js +46 -0
  187. package/src/app/accounts/signup.js +158 -0
  188. package/src/app/accounts/unset_account_cookie.js +12 -0
  189. package/src/app/accounts/verify_email.js +32 -0
  190. package/src/app/api/accounts/authenticated.js +17 -0
  191. package/src/app/api/accounts/login.js +36 -0
  192. package/src/app/api/accounts/logout.js +20 -0
  193. package/src/app/api/accounts/recover_password.js +16 -0
  194. package/src/app/api/accounts/reset_password.js +24 -0
  195. package/src/app/api/accounts/signup.js +49 -0
  196. package/src/app/api/accounts/user.js +21 -0
  197. package/src/app/api/accounts/verify_email.js +11 -0
  198. package/src/app/api/format_api_error.js +10 -0
  199. package/src/app/api/get.js +119 -0
  200. package/src/app/api/get_api_context.js +27 -0
  201. package/src/app/api/get_api_for_data_functions.js +37 -0
  202. package/src/app/api/get_api_url_component.js +5 -0
  203. package/src/app/api/get_output.js +116 -0
  204. package/src/app/api/get_value_from_object.js +8 -0
  205. package/src/app/api/handle_api_error.js +28 -0
  206. package/src/app/api/input_validators.js +227 -0
  207. package/src/app/api/is_array_path.js +6 -0
  208. package/src/app/api/push/health.js +17 -0
  209. package/src/app/api/register_getters.js +57 -0
  210. package/src/app/api/register_setters.js +55 -0
  211. package/src/app/api/sanitize_api_response.js +35 -0
  212. package/src/app/api/set.js +119 -0
  213. package/src/app/api/test/accounts/delete.js +8 -0
  214. package/src/app/api/test/accounts/signup.js +50 -0
  215. package/src/app/api/test/bootstrap.js +36 -0
  216. package/src/app/api/test/process.js +7 -0
  217. package/src/app/api/test/queues.js +25 -0
  218. package/src/app/api/validate_input.js +132 -0
  219. package/src/app/api/validate_session.js +20 -0
  220. package/src/app/api/validate_type.js +24 -0
  221. package/src/app/browser/hmr_client.js +196 -0
  222. package/src/app/browser/process_polyfill.js +11 -0
  223. package/src/app/cron_jobs/register.js +29 -0
  224. package/src/app/databases/database_type_map.js +6 -0
  225. package/src/app/databases/get_target_database_connection.js +25 -0
  226. package/{dist/app/databases/mongodb/availableQueryParameters.js → src/app/databases/mongodb/available_query_parameters.js} +3 -4
  227. package/src/app/databases/mongodb/build_connection_string.js +30 -0
  228. package/src/app/databases/mongodb/build_query_parameters.js +17 -0
  229. package/src/app/databases/mongodb/connect.js +42 -0
  230. package/src/app/databases/mongodb/create_indexes.js +35 -0
  231. package/src/app/databases/postgresql/accounts/create_accounts_metadata_table_columns.js +18 -0
  232. package/src/app/databases/postgresql/connect.js +128 -0
  233. package/src/app/databases/postgresql/create_indexes.js +58 -0
  234. package/src/app/databases/postgresql/create_tables.js +70 -0
  235. package/src/app/databases/postgresql/handle_cleanup_queues.js +36 -0
  236. package/src/app/databases/postgresql/handle_cleanup_sessions.js +5 -0
  237. package/src/app/databases/queries/accounts.js +17 -0
  238. package/src/app/databases/queries/map.js +21 -0
  239. package/src/app/databases/queries/mongodb/accounts.js +360 -0
  240. package/src/app/databases/queries/mongodb/queues.js +157 -0
  241. package/src/app/databases/queries/mongodb/sessions.js +22 -0
  242. package/src/app/databases/queries/postgresql/accounts.js +379 -0
  243. package/src/app/databases/queries/postgresql/queues.js +288 -0
  244. package/src/app/databases/queries/postgresql/sessions.js +37 -0
  245. package/src/app/databases/queries/sessions.js +17 -0
  246. package/src/app/databases/register_database.js +30 -0
  247. package/src/app/databases/sql.js +63 -0
  248. package/src/app/email/send.js +108 -0
  249. package/src/app/email/validate_smtp_settings.js +53 -0
  250. package/src/app/fixture/index.js +50 -0
  251. package/src/app/generate_machine_id.js +26 -0
  252. package/src/app/generate_process_id.js +30 -0
  253. package/src/app/get_ssl_certificates.js +23 -0
  254. package/src/app/handle_process_errors.js +101 -0
  255. package/src/app/index.js +248 -0
  256. package/src/app/middleware/account.js +28 -0
  257. package/src/app/middleware/body_parser.js +18 -0
  258. package/src/app/middleware/build_error.js +18 -0
  259. package/src/app/middleware/built_in.js +76 -0
  260. package/src/app/middleware/context.js +34 -0
  261. package/src/app/middleware/cors.js +23 -0
  262. package/src/app/middleware/csp.js +54 -0
  263. package/src/app/middleware/generate_insecure_page.js +71 -0
  264. package/{dist/lib/generateErrorPage.js → src/app/middleware/generate_joystick_error_page.js} +25 -21
  265. package/src/app/middleware/hmr_client.js +12 -0
  266. package/src/app/middleware/insecure.js +22 -0
  267. package/src/app/middleware/process_browser_polyfill.js +12 -0
  268. package/src/app/middleware/render/get_url.js +15 -0
  269. package/src/app/middleware/render/index.js +93 -0
  270. package/src/app/middleware/request_methods.js +21 -0
  271. package/src/app/middleware/session.js +31 -0
  272. package/src/app/push_logs.js +36 -0
  273. package/src/app/queues/index.js +268 -0
  274. package/src/app/register_app_options.js +7 -0
  275. package/src/app/routes/register_route_from_function.js +10 -0
  276. package/src/app/routes/register_route_from_object.js +34 -0
  277. package/src/app/routes/supported_http_methods.js +9 -0
  278. package/src/app/settings/load.js +33 -0
  279. package/src/app/ssr/index.js +131 -0
  280. package/src/app/ssr/set_base_attributes_in_html.js +43 -0
  281. package/src/app/ssr/set_head_tags_in_html.js +104 -0
  282. package/src/app/start_express.js +50 -0
  283. package/src/app/start_node_as_cluster.js +30 -0
  284. package/src/app/uploaders/local_upload_progress_middleware.js +24 -0
  285. package/src/app/uploaders/register.js +169 -0
  286. package/src/app/uploaders/run_upload.js +136 -0
  287. package/src/app/uploaders/validate_options.js +74 -0
  288. package/src/app/uploaders/validate_uploads.js +127 -0
  289. package/src/app/websockets/emit_event.js +14 -0
  290. package/src/app/websockets/index.js +16 -0
  291. package/src/app/websockets/register.js +175 -0
  292. package/src/index.js +82 -0
  293. package/{dist/lib/camelPascalToSnake.js → src/lib/camel_pascal_to_snake.js} +3 -4
  294. package/src/lib/constants.js +21 -0
  295. package/src/lib/dynamic_import.js +6 -0
  296. package/src/lib/escape_html.js +9 -0
  297. package/src/lib/escape_key_value_pair.js +15 -0
  298. package/src/lib/float_to_decimal_place.js +5 -0
  299. package/src/lib/generate_id.js +15 -0
  300. package/src/lib/get_browser_safe_request.js +17 -0
  301. package/src/lib/get_joystick_build_path.js +28 -0
  302. package/src/lib/get_origin.js +7 -0
  303. package/src/lib/get_sanitized_context.js +51 -0
  304. package/src/lib/get_translations.js +102 -0
  305. package/src/lib/hash_string.js +7 -0
  306. package/src/lib/is_valid_json.js +10 -0
  307. package/src/lib/log.js +42 -0
  308. package/src/lib/node_path_polyfills.js +18 -0
  309. package/src/lib/parse_json.js +9 -0
  310. package/src/lib/path_exists.js +11 -0
  311. package/src/lib/rainbow_road.js +7 -0
  312. package/src/lib/replace_backslashes_with_forward_slashes.js +8 -0
  313. package/src/lib/replace_file_protocol.js +8 -0
  314. package/src/lib/serialize_query_parameters.js +7 -0
  315. package/src/lib/set_cookie.js +16 -0
  316. package/src/lib/string_to_slug.js +14 -0
  317. package/src/lib/timestamps.js +48 -0
  318. package/src/lib/types.js +59 -0
  319. package/src/lib/unset_cookie.js +11 -0
  320. package/src/lib/wait.js +9 -0
  321. package/src/test/track_function_call.js +16 -0
  322. package/README.md +0 -8
  323. package/_package.json +0 -63
  324. package/canary.js +0 -12
  325. package/dist/api/get.js +0 -29
  326. package/dist/api/getOrigin.js +0 -6
  327. package/dist/api/index.js +0 -9
  328. package/dist/api/set.js +0 -29
  329. package/dist/app/accounts/defaultUserOutputFields.js +0 -9
  330. package/dist/app/accounts/generateResetToken.js +0 -28
  331. package/dist/app/accounts/generateSession.js +0 -15
  332. package/dist/app/accounts/getBrowserSafeUser.js +0 -24
  333. package/dist/app/accounts/hasLoginTokenExpired.js +0 -18
  334. package/dist/app/accounts/hashString.js +0 -7
  335. package/dist/app/accounts/recoverPassword.js +0 -30
  336. package/dist/app/accounts/resetPassword.js +0 -73
  337. package/dist/app/accounts/roles/index.test.js +0 -123
  338. package/dist/app/accounts/roles/userHasRole.js +0 -7
  339. package/dist/app/accounts/runUserQuery.js +0 -15
  340. package/dist/app/accounts/sendEmailVerification.js +0 -65
  341. package/dist/app/accounts/setAuthenticationCookie.js +0 -11
  342. package/dist/app/accounts/setPassword.js +0 -45
  343. package/dist/app/accounts/unsetAuthenticationCookie.js +0 -11
  344. package/dist/app/accounts/verifyEmail.js +0 -46
  345. package/dist/app/databases/getTargetDatabase.js +0 -10
  346. package/dist/app/databases/getTargetDatabaseConnection.js +0 -19
  347. package/dist/app/databases/getTargetDatabaseProvider.js +0 -10
  348. package/dist/app/databases/mongodb/buildConnectionString.js +0 -22
  349. package/dist/app/databases/mongodb/buildQueryParameters.js +0 -14
  350. package/dist/app/databases/mongodb/index.js +0 -40
  351. package/dist/app/databases/mongodb/queries/accounts.js +0 -266
  352. package/dist/app/databases/mongodb/queries/queues.js +0 -111
  353. package/dist/app/databases/postgresql/addColumnToTable.js +0 -6
  354. package/dist/app/databases/postgresql/createAccountsIndexes.js +0 -21
  355. package/dist/app/databases/postgresql/createAccountsTables.js +0 -39
  356. package/dist/app/databases/postgresql/createDatabase.js +0 -0
  357. package/dist/app/databases/postgresql/index.js +0 -55
  358. package/dist/app/databases/postgresql/queries/accounts.js +0 -186
  359. package/dist/app/databases/postgresql/queries/queues.js +0 -211
  360. package/dist/app/databases/queryMap.js +0 -17
  361. package/dist/app/databases/typesMap.js +0 -7
  362. package/dist/app/getAPIContext.js +0 -25
  363. package/dist/app/getAPIURLComponent.js +0 -6
  364. package/dist/app/getBrowserSafeRequest.js +0 -14
  365. package/dist/app/getOutput.js +0 -74
  366. package/dist/app/handleProcessErrors.js +0 -73
  367. package/dist/app/index.test.js +0 -575
  368. package/dist/app/initExpress.js +0 -41
  369. package/dist/app/middleware/bodyParser.js +0 -16
  370. package/dist/app/middleware/hmr/client.js +0 -113
  371. package/dist/app/middleware/index.js +0 -89
  372. package/dist/app/middleware/render.js +0 -213
  373. package/dist/app/middleware/requestMethods.js +0 -19
  374. package/dist/app/registerGetters.js +0 -45
  375. package/dist/app/registerSetters.js +0 -45
  376. package/dist/app/runGetter.js +0 -103
  377. package/dist/app/runSetter.js +0 -103
  378. package/dist/app/runUploader.js +0 -143
  379. package/dist/app/sanitizeAPIResponse.js +0 -27
  380. package/dist/app/utils/process.js +0 -193
  381. package/dist/app/validateSession.js +0 -16
  382. package/dist/app/validateUploaderOptions.js +0 -53
  383. package/dist/app/validateUploads.js +0 -102
  384. package/dist/email/render.js +0 -50
  385. package/dist/email/send.js +0 -55
  386. package/dist/email/send.test.js +0 -37
  387. package/dist/email/templates/base.css +0 -194
  388. package/dist/email/templates/base.html +0 -28
  389. package/dist/email/templates/reset-password.js +0 -14
  390. package/dist/email/validateSMTPSettings.js +0 -27
  391. package/dist/lib/escapeHTML.js +0 -9
  392. package/dist/lib/escapeKeyValuePair.js +0 -13
  393. package/dist/lib/formatAPIError.js +0 -12
  394. package/dist/lib/formatErrorString.js +0 -8
  395. package/dist/lib/generateCookie.js +0 -14
  396. package/dist/lib/generateId.js +0 -13
  397. package/dist/lib/generateMachineId.js +0 -15
  398. package/dist/lib/getBuildPath.js +0 -10
  399. package/dist/lib/getErrorObject.js +0 -9
  400. package/dist/lib/getPlatformSafeFilePath.js +0 -8
  401. package/dist/lib/getPlatformSafePath.js +0 -8
  402. package/dist/lib/getSSLCertificates.js +0 -19
  403. package/dist/lib/isValidHTTPMethod.js +0 -7
  404. package/dist/lib/isValidJSONString.js +0 -11
  405. package/dist/lib/nodeUrlPolyfills.js +0 -14
  406. package/dist/lib/objectToSQLKeysString.js +0 -18
  407. package/dist/lib/objectToSQLValuesString.js +0 -16
  408. package/dist/lib/obscenedb/debounce.js +0 -12
  409. package/dist/lib/obscenedb/index.js +0 -61
  410. package/dist/lib/parseDatabasesFromEnvironment.js +0 -9
  411. package/dist/lib/rainbowRoad.js +0 -7
  412. package/dist/lib/readDirectory.js +0 -24
  413. package/dist/lib/replaceBackslashesWithForwardSlashes.js +0 -8
  414. package/dist/lib/replaceFileProtocol.js +0 -8
  415. package/dist/lib/replaceForwardSlashesWithBackslashes.js +0 -8
  416. package/dist/lib/serializeQueryParameters.js +0 -8
  417. package/dist/lib/serverAvailable.js +0 -0
  418. package/dist/lib/setCookie.js +0 -16
  419. package/dist/lib/supportedHTTPMethods.js +0 -4
  420. package/dist/lib/unsetCookie.js +0 -13
  421. package/dist/push/logs/index.js +0 -55
  422. package/dist/settings/index.js +0 -5
  423. package/dist/settings/load.js +0 -30
  424. package/dist/ssr/compileCSS.js +0 -85
  425. package/dist/ssr/findComponentInTree.js +0 -29
  426. package/dist/ssr/formatCSS.js +0 -6
  427. package/dist/ssr/getCSSFromTree.js +0 -33
  428. package/dist/ssr/index.js +0 -441
  429. package/dist/ssr/replaceWhenTags.js +0 -37
  430. package/dist/ssr/setHeadTagsInHTML.js +0 -84
  431. package/dist/validation/index.js +0 -10
  432. package/dist/validation/index.test.js +0 -463
  433. package/dist/validation/inputWithSchema/index.js +0 -105
  434. package/dist/validation/lib/constants.js +0 -162
  435. package/dist/validation/lib/getValueFromObject.js +0 -12
  436. package/dist/validation/lib/getValueFromObject.test.js +0 -7
  437. package/dist/validation/lib/isArrayPath.js +0 -6
  438. package/dist/validation/lib/throwError.js +0 -6
  439. package/dist/validation/lib/typeValidators.js +0 -38
  440. package/dist/validation/lib/validateType.js +0 -33
  441. package/dist/validation/schema/index.js +0 -44
  442. package/dist/websockets/emitWebsocketEvent.js +0 -12
  443. package/dist/websockets/index.js +0 -12
  444. package/notes +0 -1
@@ -1,55 +0,0 @@
1
- import chalk from "chalk";
2
- import nodemailer from "nodemailer";
3
- import fs from "fs";
4
- import { htmlToText } from "html-to-text";
5
- import juice from "juice";
6
- import settings from "../settings";
7
- import validateSMTPSettings from "./validateSMTPSettings";
8
- import render from "./render";
9
- import getBuildPath from "../lib/getBuildPath";
10
- var send_default = async ({ template: templateName, props, base: baseName, ...restOfOptions }) => {
11
- const validSMTPSettings = validateSMTPSettings(settings?.config?.email?.smtp);
12
- if (!validSMTPSettings) {
13
- console.warn(chalk.redBright("Cannot send email, invalid SMTP settings."));
14
- return Promise.resolve(null);
15
- }
16
- const isNoSecurePort = [587, 25, "587", "25"].includes(settings?.config?.email?.smtp?.port);
17
- const smtp = validSMTPSettings ? nodemailer.createTransport({
18
- host: settings?.config?.email?.smtp?.host,
19
- port: settings?.config?.email?.smtp?.port,
20
- secure: !isNoSecurePort && process.env.NODE_ENV !== "development",
21
- auth: {
22
- user: settings?.config?.email?.smtp?.username,
23
- pass: settings?.config?.email?.smtp?.password
24
- }
25
- }) : null;
26
- let templatePath = `${process.cwd()}/${getBuildPath()}email/${templateName}.js`;
27
- const templateExists = templateName && fs.existsSync(templatePath);
28
- const options = {
29
- from: settings?.config?.email?.from,
30
- ...restOfOptions
31
- };
32
- if (templateExists) {
33
- const template = (await import(templatePath)).default;
34
- const html = await render({
35
- templateName,
36
- baseName,
37
- settings,
38
- Component: template,
39
- props,
40
- subject: restOfOptions?.subject,
41
- preheader: restOfOptions?.preheader,
42
- user: restOfOptions?.user
43
- });
44
- const text = htmlToText(html);
45
- const htmlWithStylesInlined = juice(html);
46
- options.html = htmlWithStylesInlined;
47
- options.text = text;
48
- return smtp.sendMail(options);
49
- }
50
- console.warn(`Template ${templateName} could not be found in /email. Double-check the template exists and try again.`);
51
- return Promise.resolve();
52
- };
53
- export {
54
- send_default as default
55
- };
@@ -1,37 +0,0 @@
1
- import { jest } from "@jest/globals";
2
- import chalk from "chalk";
3
- import send from "./send";
4
- import setAppSettingsForTest from "../tests/lib/setAppSettingsForTest";
5
- setAppSettingsForTest({
6
- "config": {
7
- "databases": [
8
- {
9
- "provider": "mongodb",
10
- "users": true,
11
- "options": {}
12
- }
13
- ],
14
- "i18n": {
15
- "defaultLanguage": "en-US"
16
- },
17
- "middleware": {},
18
- "email": {
19
- "from": "app@test.com",
20
- "smtp": {}
21
- }
22
- },
23
- "global": {},
24
- "public": {},
25
- "private": {}
26
- });
27
- console.warn = jest.fn();
28
- describe("send.js", () => {
29
- test("console.warns an error when bad smtp settings are passed", async () => {
30
- const result = await send({ template: "test", props: {} });
31
- expect(result).toBe(null);
32
- expect(console.warn.mock.calls).toEqual([
33
- [chalk.redBright("Invalid SMTP settings: config.smtp not defined in settings.test.js")],
34
- [chalk.redBright("Cannot send email, invalid SMTP settings.")]
35
- ]);
36
- });
37
- });
@@ -1,194 +0,0 @@
1
- /* http://meyerweb.com/eric/tools/css/reset/
2
- v2.0 | 20110126
3
- License: none (public domain)
4
- */
5
-
6
- html,
7
- body,
8
- div,
9
- span,
10
- applet,
11
- object,
12
- iframe,
13
- h1,
14
- h2,
15
- h3,
16
- h4,
17
- h5,
18
- h6,
19
- p,
20
- blockquote,
21
- pre,
22
- a,
23
- abbr,
24
- acronym,
25
- address,
26
- big,
27
- cite,
28
- code,
29
- del,
30
- dfn,
31
- em,
32
- img,
33
- ins,
34
- kbd,
35
- q,
36
- s,
37
- samp,
38
- small,
39
- strike,
40
- strong,
41
- sub,
42
- sup,
43
- tt,
44
- var,
45
- b,
46
- u,
47
- i,
48
- center,
49
- dl,
50
- dt,
51
- dd,
52
- ol,
53
- ul,
54
- li,
55
- fieldset,
56
- form,
57
- label,
58
- legend,
59
- table,
60
- caption,
61
- tbody,
62
- tfoot,
63
- thead,
64
- tr,
65
- th,
66
- td,
67
- article,
68
- aside,
69
- canvas,
70
- details,
71
- embed,
72
- figure,
73
- figcaption,
74
- footer,
75
- header,
76
- hgroup,
77
- menu,
78
- nav,
79
- output,
80
- ruby,
81
- section,
82
- summary,
83
- time,
84
- mark,
85
- audio,
86
- video {
87
- margin: 0;
88
- padding: 0;
89
- border: 0;
90
- font-size: 100%;
91
- font: inherit;
92
- vertical-align: baseline;
93
- }
94
-
95
- article,
96
- aside,
97
- details,
98
- figcaption,
99
- figure,
100
- footer,
101
- header,
102
- hgroup,
103
- menu,
104
- nav,
105
- section {
106
- display: block;
107
- }
108
-
109
- body {
110
- line-height: 1;
111
- }
112
-
113
- ol,
114
- ul {
115
- list-style: none;
116
- }
117
-
118
- blockquote,
119
- q {
120
- quotes: none;
121
- }
122
-
123
- blockquote:before,
124
- blockquote:after,
125
- q:before,
126
- q:after {
127
- content: "";
128
- content: none;
129
- }
130
-
131
- table {
132
- border-collapse: collapse;
133
- border-spacing: 0;
134
- }
135
-
136
- img {
137
- border: none;
138
- -ms-interpolation-mode: bicubic;
139
- max-width: 100%;
140
- }
141
-
142
- body {
143
- background-color: #fff;
144
- font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif;
145
- -webkit-font-smoothing: antialiased;
146
- font-size: 14px;
147
- line-height: 1.4;
148
- margin: 0;
149
- padding: 0;
150
- -ms-text-size-adjust: 100%;
151
- -webkit-text-size-adjust: 100%;
152
- }
153
-
154
- table {
155
- border-collapse: separate;
156
- mso-table-lspace: 0pt;
157
- mso-table-rspace: 0pt;
158
- width: 100%;
159
- }
160
-
161
- .body {
162
- background-color: #fff;
163
- width: 100%;
164
- }
165
-
166
- .container {
167
- display: block;
168
- margin: 0 auto !important;
169
- max-width: 675px;
170
- width: 100%;
171
- }
172
-
173
- .content {
174
- box-sizing: border-box;
175
- display: block;
176
- margin: 0 auto;
177
- width: 100%;
178
- max-width: 675px;
179
- }
180
-
181
- .content > table {
182
- width: 100%;
183
- }
184
-
185
- @media only screen and (max-width: 620px) {
186
- table.body .content {
187
- padding: 0 !important;
188
- }
189
-
190
- table.body .container {
191
- padding: 0 !important;
192
- width: 100% !important;
193
- }
194
- }
@@ -1,28 +0,0 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
5
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
- <title>${subject}</title>
7
- ${globalCSS}
8
- ${componentCSS}
9
- </head>
10
- <body>
11
- <table role="presentation" border="0" cellpadding="0" cellspacing="0" class="body">
12
- <tr>
13
- <td class="container">
14
- <div class="content">
15
- <table role="presentation" border="0" cellpadding="0" cellspacing="0">
16
- <tr>
17
- <td>
18
- <span class="preheader" style="color: transparent; display: none; height: 0; max-height: 0; max-width: 0; opacity: 0; overflow: hidden; mso-hide: all; visibility: hidden; width: 0;">${preheader}</span>
19
- <div id="email"></div>
20
- </td>
21
- </tr>
22
- </table>
23
- </div>
24
- </td>
25
- </tr>
26
- </table>
27
- </body>
28
- </html>
@@ -1,14 +0,0 @@
1
- import ui from "@joystick.js/ui";
2
- const ResetPassword = ui.component({
3
- id: process.env.NODE_ENV === "test" ? "testComponent1234" : null,
4
- render: ({ props }) => {
5
- return `
6
- <p>A password reset was requested for this email address (${props.emailAddress}). If you requested this reset, click the link below to reset your password:</p>
7
- <p><a href="${props.url}">Reset Password</a></p>
8
- `;
9
- }
10
- });
11
- var reset_password_default = ResetPassword;
12
- export {
13
- reset_password_default as default
14
- };
@@ -1,27 +0,0 @@
1
- import chalk from "chalk";
2
- var validateSMTPSettings_default = (settings = null) => {
3
- if (!settings) {
4
- console.warn(chalk.redBright(`Invalid SMTP settings: config.smtp not defined in settings.${process.env.NODE_ENV}.js`));
5
- return false;
6
- }
7
- if (settings && !settings.host) {
8
- console.warn(chalk.redBright(`Invalid SMTP settings: config.smtp.host not defined in settings.${process.env.NODE_ENV}.js`));
9
- return false;
10
- }
11
- if (settings && !settings.port) {
12
- console.warn(chalk.redBright(`Invalid SMTP settings: config.smtp.port not defined in settings.${process.env.NODE_ENV}.js`));
13
- return false;
14
- }
15
- if (settings && !settings.username) {
16
- console.warn(chalk.redBright(`Invalid SMTP settings: config.smtp.username not defined in settings.${process.env.NODE_ENV}.js`));
17
- return false;
18
- }
19
- if (settings && !settings.password) {
20
- console.warn(chalk.redBright(`Invalid SMTP settings: config.smtp.password not defined in settings.${process.env.NODE_ENV}.js`));
21
- return false;
22
- }
23
- return true;
24
- };
25
- export {
26
- validateSMTPSettings_default as default
27
- };
@@ -1,9 +0,0 @@
1
- import { HTML_ENTITY_MAP } from "./constants.js";
2
- var escapeHTML_default = (string = "") => {
3
- return String(string).replace(/[&<>"'`=]/g, function(match) {
4
- return HTML_ENTITY_MAP[match];
5
- });
6
- };
7
- export {
8
- escapeHTML_default as default
9
- };
@@ -1,13 +0,0 @@
1
- import escapeHTML from "./escapeHTML.js";
2
- var escapeKeyValuePair_default = (target = {}) => {
3
- const parameters = Object.entries(target || {});
4
- for (let i = 0; i < parameters?.length; i += 1) {
5
- const [key, value] = parameters[i];
6
- delete target[key];
7
- target[escapeHTML(key)] = escapeHTML(value);
8
- }
9
- return target;
10
- };
11
- export {
12
- escapeKeyValuePair_default as default
13
- };
@@ -1,12 +0,0 @@
1
- import getErrorObject from "./getErrorObject";
2
- var formatAPIError_default = (exception = {}, location = "", code = 0) => {
3
- return {
4
- code,
5
- error: exception,
6
- message: exception?.message || exception?.reason || exception,
7
- location
8
- };
9
- };
10
- export {
11
- formatAPIError_default as default
12
- };
@@ -1,8 +0,0 @@
1
- const formatErrorString = (location = "", error) => {
2
- const message = typeof error === "object" ? error.reason || error.message || error : error;
3
- return `${process.env.NODE_ENV === "development" ? `[${location}] ` : ""}${message}`;
4
- };
5
- var formatErrorString_default = formatErrorString;
6
- export {
7
- formatErrorString_default as default
8
- };
@@ -1,14 +0,0 @@
1
- import dayjs from "dayjs";
2
- var generateCookie_default = (tokenExpiresAt = null) => {
3
- const cookie = {
4
- secure: process.env.NODE_ENV !== "development",
5
- httpOnly: true
6
- };
7
- if (tokenExpiresAt) {
8
- cookie.expires = dayjs(tokenExpiresAt).toDate();
9
- }
10
- return cookie;
11
- };
12
- export {
13
- generateCookie_default as default
14
- };
@@ -1,13 +0,0 @@
1
- const characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890".split("");
2
- var generateId_default = (length = 16) => {
3
- let id = "";
4
- let i = 0;
5
- while (i < length) {
6
- id += characters[Math.floor(Math.random() * (characters.length - 1))];
7
- i += 1;
8
- }
9
- return id;
10
- };
11
- export {
12
- generateId_default as default
13
- };
@@ -1,15 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import os from "os";
4
- import generateId from "./generateId.js";
5
- var generateMachineId_default = () => {
6
- const home = os.homedir();
7
- if (!fs.existsSync(`${home}/.cheatcode/MACHINE_ID`)) {
8
- fs.mkdirSync(path.dirname(`${home}/.cheatcode/MACHINE_ID`), { recursive: true });
9
- fs.writeFileSync(`${home}/.cheatcode/MACHINE_ID`, generateId(32));
10
- }
11
- ;
12
- };
13
- export {
14
- generateMachineId_default as default
15
- };
@@ -1,10 +0,0 @@
1
- import fs from "fs";
2
- var getBuildPath_default = () => {
3
- if (["development", "test"].includes(process.env.NODE_ENV) || fs.existsSync(".joystick/build")) {
4
- return ".joystick/build/";
5
- }
6
- return "";
7
- };
8
- export {
9
- getBuildPath_default as default
10
- };
@@ -1,9 +0,0 @@
1
- var getErrorObject_default = (error = {}) => {
2
- return Object.getOwnPropertyNames(error).reduce((errorObject, key) => {
3
- errorObject[key] = error[key];
4
- return errorObject;
5
- }, {});
6
- };
7
- export {
8
- getErrorObject_default as default
9
- };
@@ -1,8 +0,0 @@
1
- import os from "os";
2
- const isWindows = os.platform() === "win32";
3
- var getPlatformSafeFilePath_default = (path = "") => {
4
- return isWindows ? path.replace(/[a-zA-Z]:\\\\/, "file://") : path;
5
- };
6
- export {
7
- getPlatformSafeFilePath_default as default
8
- };
@@ -1,8 +0,0 @@
1
- import os from "os";
2
- const isWindows = os.platform() === "win32";
3
- var getPlatformSafePath_default = (path = "") => {
4
- return isWindows ? path.replace("/", "\\") : path;
5
- };
6
- export {
7
- getPlatformSafePath_default as default
8
- };
@@ -1,19 +0,0 @@
1
- import fs from "fs";
2
- var getSSLCertificates_default = (ssl = null) => {
3
- const pushCertificatePath = "/lib/push/certs/cert.pem";
4
- const pushKeyPath = "/lib/push/certs/key.pem";
5
- const certPath = process.env.IS_PUSH_DEPLOYED ? pushCertificatePath : ssl?.cert || null;
6
- const keyPath = process.env.IS_PUSH_DEPLOYED ? pushKeyPath : ssl?.key || null;
7
- const certExists = fs.existsSync(certPath);
8
- const keyExists = fs.existsSync(keyPath);
9
- if (["development", "test"].includes(process.env.NODE_ENV) || !certExists || !keyExists) {
10
- return null;
11
- }
12
- return {
13
- cert: fs.readFileSync(certPath),
14
- key: fs.readFileSync(keyPath)
15
- };
16
- };
17
- export {
18
- getSSLCertificates_default as default
19
- };
@@ -1,7 +0,0 @@
1
- import supportedHTTPMethods from "./supportedHTTPMethods";
2
- var isValidHTTPMethod_default = (method = "") => {
3
- return supportedHTTPMethods.includes(method);
4
- };
5
- export {
6
- isValidHTTPMethod_default as default
7
- };
@@ -1,11 +0,0 @@
1
- var isValidJSONString_default = (JSONString = "") => {
2
- try {
3
- JSON.parse(JSONString);
4
- } catch (error) {
5
- return false;
6
- }
7
- return true;
8
- };
9
- export {
10
- isValidJSONString_default as default
11
- };
@@ -1,14 +0,0 @@
1
- import { fileURLToPath } from "url";
2
- import { dirname } from "path";
3
- var nodeUrlPolyfills_default = {
4
- __filename: (url = "") => {
5
- return fileURLToPath(url);
6
- },
7
- __dirname: (url = "") => {
8
- const currentFilePath = fileURLToPath(url);
9
- return dirname(currentFilePath);
10
- }
11
- };
12
- export {
13
- nodeUrlPolyfills_default as default
14
- };
@@ -1,18 +0,0 @@
1
- import { isObject } from "../validation/lib/typeValidators";
2
- import camelPascalToSnake from "./camelPascalToSnake";
3
- const objectToSQLKeys = (objectToConvert = {}, target = []) => {
4
- const keyValuePairs = Object.entries(objectToConvert);
5
- keyValuePairs.forEach(([key, value]) => {
6
- if (isObject(value)) {
7
- target.push(camelPascalToSnake(key));
8
- objectToSQLKeys(value, target);
9
- } else {
10
- target.push(camelPascalToSnake(key));
11
- }
12
- });
13
- return target.flatMap((value) => value).join(", ");
14
- };
15
- var objectToSQLKeysString_default = objectToSQLKeys;
16
- export {
17
- objectToSQLKeysString_default as default
18
- };
@@ -1,16 +0,0 @@
1
- import { isObject } from "../validation/lib/typeValidators";
2
- const objectToSQLValues = (objectToConvert = {}, target = []) => {
3
- const keyValuePairs = Object.entries(objectToConvert);
4
- keyValuePairs.forEach(([_key, value]) => {
5
- if (isObject(value)) {
6
- objectToSQLValues(value, target);
7
- } else {
8
- target.push(`'${value}'`);
9
- }
10
- });
11
- return target.flatMap((value) => value).join(", ");
12
- };
13
- var objectToSQLValuesString_default = objectToSQLValues;
14
- export {
15
- objectToSQLValuesString_default as default
16
- };
@@ -1,12 +0,0 @@
1
- var debounce_default = (callback, wait) => {
2
- let timeoutId = null;
3
- return (...args) => {
4
- clearTimeout(timeoutId);
5
- timeoutId = setTimeout(() => {
6
- callback.apply(null, args);
7
- }, wait);
8
- };
9
- };
10
- export {
11
- debounce_default as default
12
- };
@@ -1,61 +0,0 @@
1
- import fs from "node:fs";
2
- import debounce from "./debounce.js";
3
- class ObsceneDB {
4
- constructor(options = {}) {
5
- this.options = options;
6
- if (!fs.existsSync(this.options.file)) {
7
- fs.writeFileSync(this.options.file, JSON.stringify(this.options.collections || {}));
8
- }
9
- this.db = JSON.parse(fs.readFileSync(this.options.file, "utf-8"));
10
- this.writeToDisk = debounce(this._writeToDisk.bind(this), 300);
11
- }
12
- _writeToDisk() {
13
- fs.writeFile(this.options?.file, JSON.stringify(this.db), () => {
14
- });
15
- }
16
- collection(name = "") {
17
- if (this?.db && !this?.db[name]) {
18
- this.db[name] = [];
19
- this.writeToDisk();
20
- }
21
- }
22
- collectionExists(name = "") {
23
- return this?.db && !!this?.db[name];
24
- }
25
- find(collection = "", filter_function = null, options = {}) {
26
- const existingCollection = this.db[collection];
27
- if (existingCollection) {
28
- const sortedOptions = options?.sortBy && typeof options.sortBy === "function" ? options.sortBy(existingCollection) : existingCollection;
29
- return !options?.limit ? sortedOptions.filter(filter_function) : sortedOptions.filter(filter_function)?.slice(0, options?.limit);
30
- }
31
- return [];
32
- }
33
- findOne(collection = "", filter_function = null, options = {}) {
34
- const [result = null] = this.find(collection, filter_function, { ...options, limit: 1 });
35
- return result;
36
- }
37
- insert(collection = "", data = {}) {
38
- const existingCollection = this.db[collection];
39
- if (existingCollection) {
40
- existingCollection.push(data);
41
- this.writeToDisk();
42
- return true;
43
- }
44
- this.db[collection] = [data];
45
- this.writeToDisk();
46
- return true;
47
- }
48
- remove(collection = "", filter_function = null) {
49
- const existingCollection = this.db[collection];
50
- if (existingCollection) {
51
- this.db[collection] = existingCollection.filter(filter_function);
52
- this.writeToDisk();
53
- return true;
54
- }
55
- return false;
56
- }
57
- }
58
- var obscenedb_default = ObsceneDB;
59
- export {
60
- obscenedb_default as default
61
- };
@@ -1,9 +0,0 @@
1
- var parseDatabasesFromEnvironment_default = (databases = "") => {
2
- if (databases && typeof databases === "string") {
3
- return JSON.parse(databases);
4
- }
5
- return {};
6
- };
7
- export {
8
- parseDatabasesFromEnvironment_default as default
9
- };
@@ -1,7 +0,0 @@
1
- import chalk from "chalk";
2
- var rainbowRoad_default = () => {
3
- return `${chalk.red("=")}${chalk.green("=")}${chalk.blue("=")}${chalk.red("=")}${chalk.green("=")}${chalk.blue("=")}`;
4
- };
5
- export {
6
- rainbowRoad_default as default
7
- };