smbcloud-cli 0.3.41__tar.gz → 0.4.0__tar.gz

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 (135) hide show
  1. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/Cargo.lock +14 -14
  2. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/Cargo.toml +9 -9
  3. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/PKG-INFO +9 -9
  4. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/README.md +8 -8
  5. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/Cargo.toml +1 -1
  6. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/README.md +5 -3
  7. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/login/process.rs +10 -2
  8. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/process_deploy_nextjs_ssr.rs +89 -43
  9. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/Cargo.toml +1 -1
  10. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/README.md +2 -2
  11. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/login.rs +13 -4
  12. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/resend_reset_password_instruction.rs +18 -6
  13. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/Cargo.toml +1 -1
  14. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/README.md +1 -1
  15. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/Cargo.toml +1 -1
  16. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/README.md +1 -1
  17. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/account.rs +10 -0
  18. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-network/Cargo.toml +1 -1
  19. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-network/README.md +1 -1
  20. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking/Cargo.toml +1 -1
  21. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking/README.md +1 -1
  22. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/Cargo.toml +1 -1
  23. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/README.md +1 -1
  24. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-utils/Cargo.toml +1 -1
  25. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-utils/README.md +1 -1
  26. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/cli.rs +0 -0
  27. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/forgot/mod.rs +0 -0
  28. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/lib.rs +0 -0
  29. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/login/mod.rs +0 -0
  30. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/logout/mod.rs +0 -0
  31. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/me/mod.rs +0 -0
  32. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/mod.rs +0 -0
  33. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/signup/mod.rs +0 -0
  34. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/account/signup/process.rs +0 -0
  35. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/cli/mod.rs +0 -0
  36. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/config.rs +0 -0
  37. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/detect_runner.rs +0 -0
  38. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/git.rs +0 -0
  39. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/known_hosts.rs +0 -0
  40. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/mod.rs +0 -0
  41. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/process_deploy.rs +0 -0
  42. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/process_deploy_rails.rs +0 -0
  43. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/process_deploy_rust.rs +0 -0
  44. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/process_deploy_vite_spa.rs +0 -0
  45. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/remote_messages.rs +0 -0
  46. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/rsync_deploy.rs +0 -0
  47. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/setup.rs +0 -0
  48. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/setup_create_new_project.rs +0 -0
  49. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/setup_project.rs +0 -0
  50. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/deploy/setup_select_project.rs +0 -0
  51. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/lib.rs +0 -0
  52. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/mail/cli.rs +0 -0
  53. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/mail/current_project.rs +0 -0
  54. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/mail/process.rs +0 -0
  55. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/mail/render.rs +0 -0
  56. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/mail.rs +0 -0
  57. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/main.rs +0 -0
  58. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/cli.rs +0 -0
  59. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/crud_create.rs +0 -0
  60. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/crud_delete.rs +0 -0
  61. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/crud_read.rs +0 -0
  62. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/crud_update.rs +0 -0
  63. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/deployment.rs +0 -0
  64. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/mod.rs +0 -0
  65. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/project/process.rs +0 -0
  66. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/token/clear_smb_token.rs +0 -0
  67. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/token/get_smb_token.rs +0 -0
  68. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/token/is_logged_in.rs +0 -0
  69. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/token/mod.rs +0 -0
  70. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/token/smb_token_file_path.rs +0 -0
  71. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/confirm_dialog.rs +0 -0
  72. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/deployment_detail_view.rs +0 -0
  73. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/deployment_table.rs +0 -0
  74. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/me_view.rs +0 -0
  75. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/mod.rs +0 -0
  76. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/project_detail_view.rs +0 -0
  77. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/project_table.rs +0 -0
  78. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/cli/src/ui/theme.rs +0 -0
  79. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/.gitignore +0 -0
  80. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/apple.rs +0 -0
  81. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/check_email.rs +0 -0
  82. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/client_credentials.rs +0 -0
  83. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/lib.rs +0 -0
  84. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/logout.rs +0 -0
  85. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/me.rs +0 -0
  86. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/oauth/get_account_status.rs +0 -0
  87. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/oauth/get_consent_url.rs +0 -0
  88. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/oauth/get_profile.rs +0 -0
  89. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/oauth/get_token.rs +0 -0
  90. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/oauth/mod.rs +0 -0
  91. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/oauth/provider.rs +0 -0
  92. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/oidc.rs +0 -0
  93. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/remove.rs +0 -0
  94. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/resend_email_verification.rs +0 -0
  95. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/reset_password.rs +0 -0
  96. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-auth/src/signup.rs +0 -0
  97. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/src/mail_app.rs +0 -0
  98. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/src/mail_inbox.rs +0 -0
  99. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/src/mail_message.rs +0 -0
  100. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/src/request.rs +0 -0
  101. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/src/smbcloud_mail.rs +0 -0
  102. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-mail/src/url_builder.rs +0 -0
  103. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/app_auth.rs +0 -0
  104. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/error_codes.rs +0 -0
  105. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/forgot.rs +0 -0
  106. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/frontend_app.rs +0 -0
  107. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/lib.rs +0 -0
  108. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/login.rs +0 -0
  109. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/mail.rs +0 -0
  110. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/oauth.rs +0 -0
  111. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/project.rs +0 -0
  112. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/repository.rs +0 -0
  113. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/reset_password_response.rs +0 -0
  114. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/runner.rs +0 -0
  115. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-model/src/signup.rs +0 -0
  116. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-network/src/environment.rs +0 -0
  117. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-network/src/lib.rs +0 -0
  118. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-network/src/network.rs +0 -0
  119. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking/src/constants.rs +0 -0
  120. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking/src/lib.rs +0 -0
  121. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking/src/smb_client.rs +0 -0
  122. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_frontend_app_read.rs +0 -0
  123. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_project_create.rs +0 -0
  124. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_project_delete.rs +0 -0
  125. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_project_deployment_create.rs +0 -0
  126. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_project_deployment_read.rs +0 -0
  127. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_project_deployment_update.rs +0 -0
  128. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_project_read.rs +0 -0
  129. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/crud_project_update.rs +0 -0
  130. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/lib.rs +0 -0
  131. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-networking-project/src/url_builder.rs +0 -0
  132. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-utils/src/config.rs +0 -0
  133. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-utils/src/lib.rs +0 -0
  134. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/crates/smbcloud-utils/src/write_config.rs +0 -0
  135. {smbcloud_cli-0.3.41 → smbcloud_cli-0.4.0}/pyproject.toml +0 -0
@@ -2459,7 +2459,7 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
2459
2459
 
2460
2460
  [[package]]
2461
2461
  name = "smbcloud-auth"
2462
- version = "0.3.41"
2462
+ version = "0.4.0"
2463
2463
  dependencies = [
2464
2464
  "log",
2465
2465
  "reqwest",
@@ -2474,7 +2474,7 @@ dependencies = [
2474
2474
 
2475
2475
  [[package]]
2476
2476
  name = "smbcloud-auth-sdk"
2477
- version = "0.3.41"
2477
+ version = "0.4.0"
2478
2478
  dependencies = [
2479
2479
  "base64",
2480
2480
  "reqwest",
@@ -2489,7 +2489,7 @@ dependencies = [
2489
2489
 
2490
2490
  [[package]]
2491
2491
  name = "smbcloud-auth-sdk-py"
2492
- version = "0.3.41"
2492
+ version = "0.4.0"
2493
2493
  dependencies = [
2494
2494
  "pyo3",
2495
2495
  "pythonize",
@@ -2503,7 +2503,7 @@ dependencies = [
2503
2503
 
2504
2504
  [[package]]
2505
2505
  name = "smbcloud-auth-sdk-wasm"
2506
- version = "0.3.41"
2506
+ version = "0.4.0"
2507
2507
  dependencies = [
2508
2508
  "serde-wasm-bindgen",
2509
2509
  "smbcloud-auth-sdk",
@@ -2516,7 +2516,7 @@ dependencies = [
2516
2516
 
2517
2517
  [[package]]
2518
2518
  name = "smbcloud-cli"
2519
- version = "0.3.41"
2519
+ version = "0.4.0"
2520
2520
  dependencies = [
2521
2521
  "anyhow",
2522
2522
  "chrono",
@@ -2559,7 +2559,7 @@ dependencies = [
2559
2559
 
2560
2560
  [[package]]
2561
2561
  name = "smbcloud-gresiq"
2562
- version = "0.3.41"
2562
+ version = "0.4.0"
2563
2563
  dependencies = [
2564
2564
  "native-tls",
2565
2565
  "postgres-native-tls",
@@ -2573,7 +2573,7 @@ dependencies = [
2573
2573
 
2574
2574
  [[package]]
2575
2575
  name = "smbcloud-gresiq-sdk"
2576
- version = "0.3.41"
2576
+ version = "0.4.0"
2577
2577
  dependencies = [
2578
2578
  "anyhow",
2579
2579
  "log",
@@ -2587,7 +2587,7 @@ dependencies = [
2587
2587
 
2588
2588
  [[package]]
2589
2589
  name = "smbcloud-mail"
2590
- version = "0.3.41"
2590
+ version = "0.4.0"
2591
2591
  dependencies = [
2592
2592
  "reqwest",
2593
2593
  "serde",
@@ -2599,7 +2599,7 @@ dependencies = [
2599
2599
 
2600
2600
  [[package]]
2601
2601
  name = "smbcloud-model"
2602
- version = "0.3.41"
2602
+ version = "0.4.0"
2603
2603
  dependencies = [
2604
2604
  "chrono",
2605
2605
  "log",
@@ -2615,7 +2615,7 @@ dependencies = [
2615
2615
 
2616
2616
  [[package]]
2617
2617
  name = "smbcloud-network"
2618
- version = "0.3.41"
2618
+ version = "0.4.0"
2619
2619
  dependencies = [
2620
2620
  "clap 4.6.1",
2621
2621
  "log",
@@ -2628,7 +2628,7 @@ dependencies = [
2628
2628
 
2629
2629
  [[package]]
2630
2630
  name = "smbcloud-networking"
2631
- version = "0.3.41"
2631
+ version = "0.4.0"
2632
2632
  dependencies = [
2633
2633
  "smbcloud-network",
2634
2634
  "url-builder",
@@ -2636,7 +2636,7 @@ dependencies = [
2636
2636
 
2637
2637
  [[package]]
2638
2638
  name = "smbcloud-networking-project"
2639
- version = "0.3.41"
2639
+ version = "0.4.0"
2640
2640
  dependencies = [
2641
2641
  "anyhow",
2642
2642
  "async-trait",
@@ -2654,11 +2654,11 @@ dependencies = [
2654
2654
 
2655
2655
  [[package]]
2656
2656
  name = "smbcloud-s6n"
2657
- version = "0.3.41"
2657
+ version = "0.4.0"
2658
2658
 
2659
2659
  [[package]]
2660
2660
  name = "smbcloud-utils"
2661
- version = "0.3.41"
2661
+ version = "0.4.0"
2662
2662
  dependencies = [
2663
2663
  "anyhow",
2664
2664
  "dirs",
@@ -26,15 +26,15 @@ reqwest = { version = "0.12.18", default-features = false }
26
26
  serde = "1"
27
27
  serde_json = "1.0.82"
28
28
  serde_repr = "0.1"
29
- smbcloud-auth = { version = "0.3", path = "crates/smbcloud-auth" }
30
- smbcloud-auth-sdk = { version = "0.3", path = "crates/smbcloud-auth-sdk" }
31
- smbcloud-gresiq-sdk = { version = "0.3", path = "crates/smbcloud-gresiq-sdk" }
32
- smbcloud-mail = { version = "0.3", path = "crates/smbcloud-mail" }
33
- smbcloud-model = { version = "0.3", path = "crates/smbcloud-model" }
34
- smbcloud-network = { version = "0.3", path = "crates/smbcloud-network" }
35
- smbcloud-networking = { version = "0.3", path = "crates/smbcloud-networking" }
36
- smbcloud-networking-project = { version = "0.3", path = "crates/smbcloud-networking-project" }
37
- smbcloud-utils = { version = "0.3", path = "crates/smbcloud-utils" }
29
+ smbcloud-auth = { version = "0.4.0", path = "crates/smbcloud-auth" }
30
+ smbcloud-auth-sdk = { version = "0.4.0", path = "crates/smbcloud-auth-sdk" }
31
+ smbcloud-gresiq-sdk = { version = "0.4.0", path = "crates/smbcloud-gresiq-sdk" }
32
+ smbcloud-mail = { version = "0.4.0", path = "crates/smbcloud-mail" }
33
+ smbcloud-model = { version = "0.4.0", path = "crates/smbcloud-model" }
34
+ smbcloud-network = { version = "0.4.0", path = "crates/smbcloud-network" }
35
+ smbcloud-networking = { version = "0.4.0", path = "crates/smbcloud-networking" }
36
+ smbcloud-networking-project = { version = "0.4.0", path = "crates/smbcloud-networking-project" }
37
+ smbcloud-utils = { version = "0.4.0", path = "crates/smbcloud-utils" }
38
38
  spinners = "4.1.0"
39
39
  strum = "0.27"
40
40
  strum_macros = "0.27"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smbcloud-cli
3
- Version: 0.3.41
3
+ Version: 0.4.0
4
4
  Classifier: Development Status :: 4 - Beta
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -31,7 +31,7 @@ Project-URL: Repository, https://github.com/smbcloudXYZ/smbcloud-cli
31
31
  <br>smbCloud CLI
32
32
  </h1>
33
33
  <p align="center">
34
- Deploy to the cloud in one command.
34
+ Deploy with smbCloud from your terminal.
35
35
  <br />
36
36
  <br />
37
37
  <a href="https://smbcloud.xyz/">Website</a>
@@ -54,9 +54,9 @@ Project-URL: Repository, https://github.com/smbcloudXYZ/smbcloud-cli
54
54
 
55
55
  ## About
56
56
 
57
- **`smb`** is the command-line interface for [smbCloud](https://smbcloud.xyz/) — the modern cloud deployment platform. We've eliminated the friction of cloud infrastructure so you can focus on what matters: building an incredible product.
57
+ **`smb`** is the command-line interface for [smbCloud](https://smbcloud.xyz/).
58
58
 
59
- Ship your Rust, Node.js, Ruby, or Swift app with a single, magical command.
59
+ Install it with `pip`, then run the native `smb` binary for your platform.
60
60
 
61
61
  ## Install
62
62
 
@@ -64,7 +64,7 @@ Ship your Rust, Node.js, Ruby, or Swift app with a single, magical command.
64
64
  pip install smbcloud-cli
65
65
  ```
66
66
 
67
- This package installs the native `smb` executable for your platform directly no Node.js, no Docker, no runtime dependencies.
67
+ This package installs the native `smb` executable for your platform. You do not need Node.js or Docker.
68
68
 
69
69
  ## Quick Start
70
70
 
@@ -74,7 +74,7 @@ smb init
74
74
  smb deploy
75
75
  ```
76
76
 
77
- That's it. Your app is live.
77
+ That gets you from login to first deploy.
78
78
 
79
79
  ## Other Installation Methods
80
80
 
@@ -127,11 +127,11 @@ This package ships pre-built native binaries for:
127
127
 
128
128
  ## Source & Issues
129
129
 
130
- This is a native binary distributed via PyPI. The source code lives at
130
+ This package ships the native `smb` binary through PyPI.
131
+ Source code and issue tracker:
131
132
  [github.com/smbcloudXYZ/smbcloud-cli](https://github.com/smbcloudXYZ/smbcloud-cli).
132
- Please report bugs and feature requests there.
133
133
 
134
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
134
+ See the [smbCloud documentation](https://smbcloud.xyz/posts) for setup and deployment guides.
135
135
 
136
136
  ## License
137
137
 
@@ -5,7 +5,7 @@
5
5
  <br>smbCloud CLI
6
6
  </h1>
7
7
  <p align="center">
8
- Deploy to the cloud in one command.
8
+ Deploy with smbCloud from your terminal.
9
9
  <br />
10
10
  <br />
11
11
  <a href="https://smbcloud.xyz/">Website</a>
@@ -28,9 +28,9 @@
28
28
 
29
29
  ## About
30
30
 
31
- **`smb`** is the command-line interface for [smbCloud](https://smbcloud.xyz/) — the modern cloud deployment platform. We've eliminated the friction of cloud infrastructure so you can focus on what matters: building an incredible product.
31
+ **`smb`** is the command-line interface for [smbCloud](https://smbcloud.xyz/).
32
32
 
33
- Ship your Rust, Node.js, Ruby, or Swift app with a single, magical command.
33
+ Install it with `pip`, then run the native `smb` binary for your platform.
34
34
 
35
35
  ## Install
36
36
 
@@ -38,7 +38,7 @@ Ship your Rust, Node.js, Ruby, or Swift app with a single, magical command.
38
38
  pip install smbcloud-cli
39
39
  ```
40
40
 
41
- This package installs the native `smb` executable for your platform directly no Node.js, no Docker, no runtime dependencies.
41
+ This package installs the native `smb` executable for your platform. You do not need Node.js or Docker.
42
42
 
43
43
  ## Quick Start
44
44
 
@@ -48,7 +48,7 @@ smb init
48
48
  smb deploy
49
49
  ```
50
50
 
51
- That's it. Your app is live.
51
+ That gets you from login to first deploy.
52
52
 
53
53
  ## Other Installation Methods
54
54
 
@@ -101,11 +101,11 @@ This package ships pre-built native binaries for:
101
101
 
102
102
  ## Source & Issues
103
103
 
104
- This is a native binary distributed via PyPI. The source code lives at
104
+ This package ships the native `smb` binary through PyPI.
105
+ Source code and issue tracker:
105
106
  [github.com/smbcloudXYZ/smbcloud-cli](https://github.com/smbcloudXYZ/smbcloud-cli).
106
- Please report bugs and feature requests there.
107
107
 
108
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
108
+ See the [smbCloud documentation](https://smbcloud.xyz/posts) for setup and deployment guides.
109
109
 
110
110
  ## License
111
111
 
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-cli"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2021"
5
5
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
6
6
  description = "smbCloud command line interface."
@@ -5,7 +5,7 @@
5
5
  <br>smbCloud CLI
6
6
  </h1>
7
7
  <p align="center">
8
- Deploy to the cloud in one command.
8
+ Deploy with smbCloud from your terminal.
9
9
  <br />
10
10
  <br />
11
11
  <a href="https://smbcloud.xyz/">Website</a>
@@ -76,7 +76,9 @@ pip uninstall smbcloud-cli
76
76
  smb --help
77
77
  ```
78
78
 
79
- ## Contribution
79
+ ## Contributing
80
+
81
+ To work on the CLI locally:
80
82
 
81
83
  - Set up your Rust tooling.
82
84
  - Clone the repo.
@@ -89,7 +91,7 @@ This repo draws inspiration from [Sugar](https://github.com/metaplex-foundation/
89
91
 
90
92
  It also borrows ideas from [the 12 factor CLI app](https://medium.com/@jdxcode/12-factor-cli-apps-dd3c227a0e46).
91
93
 
92
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
94
+ More CLI and deployment guides live in the [smbCloud docs](https://smbcloud.xyz/posts).
93
95
 
94
96
  ## License
95
97
 
@@ -23,8 +23,9 @@ use {
23
23
  smbcloud_model::{
24
24
  account::{
25
25
  ErrorCode::{
26
- self as AccountErrorCode, EmailNotFound, EmailUnverified, GithubNotLinked,
27
- PasswordNotSet,
26
+ self as AccountErrorCode, EmailAlreadyExist, EmailConfirmationFailed,
27
+ EmailNotFound, EmailUnverified, GithubNotLinked, HostedMailAccountUnverified,
28
+ InvalidPassword, PasswordNotSet,
28
29
  },
29
30
  GithubInfo, SmbAuthorization, User,
30
31
  },
@@ -100,6 +101,13 @@ async fn process_authorization(env: Environment, auth: SmbAuthorization) -> Resu
100
101
  return Err(error);
101
102
  }
102
103
  GithubNotLinked => return connect_github_account(env, auth).await,
104
+ EmailConfirmationFailed
105
+ | EmailAlreadyExist
106
+ | InvalidPassword
107
+ | HostedMailAccountUnverified => {
108
+ let error = anyhow!(error_code.to_string());
109
+ return Err(error);
110
+ }
103
111
  }
104
112
  }
105
113
 
@@ -36,7 +36,7 @@ use {
36
36
  /// 4. rsync .next/standalone/ → server:path/ (server + bundled deps)
37
37
  /// 5. rsync .next/static/ → server:path/.next/static/ (static chunks)
38
38
  /// 6. rsync public/ → server:path/public/ (public assets)
39
- /// 7. SSH: pm2 restart/start `node server.js`
39
+ /// 7. SSH: pm2 delete + start fresh (prefer server `ecosystem.config.js` if present)
40
40
  /// 8. PATCH deployment record as Done
41
41
  pub async fn process_deploy_nextjs_ssr(env: Environment, config: Config) -> Result<CommandResult> {
42
42
  let source = config.project.source.as_deref().unwrap_or(".");
@@ -214,16 +214,37 @@ pub async fn process_deploy_nextjs_ssr(env: Environment, config: Config) -> Resu
214
214
  }
215
215
  );
216
216
 
217
+ struct Transfer {
218
+ local_rel: &'static str,
219
+ remote_rel: &'static str,
220
+ protect_runtime_files: bool,
221
+ }
222
+
217
223
  // (local_source, remote_destination)
218
224
  // .next/standalone contents go to the root of remote_path.
219
225
  // .next/static and public go into their correct subdirectories within it.
220
- let transfers: &[(&str, &str)] = &[
226
+ let transfers: &[Transfer] = &[
221
227
  // standalone contents → remote root (server.js lives here)
222
- (".next/standalone/", ""),
228
+ Transfer {
229
+ local_rel: ".next/standalone/",
230
+ remote_rel: "",
231
+ // The server copy of ecosystem.config.js is operator-managed runtime
232
+ // config and must survive deploys. Without this protection, rsync
233
+ // `--delete` removes it because it does not exist in .next/standalone/.
234
+ protect_runtime_files: true,
235
+ },
223
236
  // static chunks → .next/static/ inside the standalone tree
224
- (".next/static/", ".next/static/"),
237
+ Transfer {
238
+ local_rel: ".next/static/",
239
+ remote_rel: ".next/static/",
240
+ protect_runtime_files: false,
241
+ },
225
242
  // public assets → public/ inside the standalone tree
226
- ("public/", "public/"),
243
+ Transfer {
244
+ local_rel: "public/",
245
+ remote_rel: "public/",
246
+ protect_runtime_files: false,
247
+ },
227
248
  ];
228
249
 
229
250
  let mut upload_spinner = Spinner::new(
@@ -231,24 +252,35 @@ pub async fn process_deploy_nextjs_ssr(env: Environment, config: Config) -> Resu
231
252
  succeed_message(&format!("Uploading to {}…", remote_path)),
232
253
  );
233
254
 
234
- for (local_rel, remote_rel) in transfers {
235
- let local_path = format!("{}/{}", source, local_rel);
236
- let destination = format!("{}{}", remote_base, remote_rel);
255
+ for transfer in transfers {
256
+ let local_path = format!("{}/{}", source, transfer.local_rel);
257
+ let destination = format!("{}{}", remote_base, transfer.remote_rel);
237
258
 
238
259
  // Skip optional directories that the project does not have.
239
260
  if !std::path::Path::new(&local_path).exists() {
240
261
  continue;
241
262
  }
242
263
 
264
+ let mut rsync_args = vec!["-az".to_string(), "--delete".to_string()];
265
+
266
+ if transfer.protect_runtime_files {
267
+ rsync_args.extend([
268
+ "--exclude".to_string(),
269
+ "ecosystem.config.js".to_string(),
270
+ "--exclude".to_string(),
271
+ "logs/".to_string(),
272
+ ]);
273
+ }
274
+
275
+ rsync_args.extend([
276
+ "-e".to_string(),
277
+ ssh_command.clone(),
278
+ local_path.clone(),
279
+ destination,
280
+ ]);
281
+
243
282
  let output = Command::new("rsync")
244
- .args([
245
- "-az",
246
- "--delete",
247
- "-e",
248
- &ssh_command,
249
- &local_path,
250
- &destination,
251
- ])
283
+ .args(&rsync_args)
252
284
  .output()
253
285
  .map_err(|e| anyhow!(fail_message(&format!("Failed to launch rsync: {}", e))))?;
254
286
 
@@ -265,7 +297,7 @@ pub async fn process_deploy_nextjs_ssr(env: Environment, config: Config) -> Resu
265
297
  .await;
266
298
  return Err(anyhow!(fail_message(&format!(
267
299
  "rsync of '{}' failed (status {}): {}",
268
- local_rel,
300
+ transfer.local_rel,
269
301
  output.status.code().unwrap_or(-1),
270
302
  stderr.trim()
271
303
  ))));
@@ -279,15 +311,17 @@ pub async fn process_deploy_nextjs_ssr(env: Environment, config: Config) -> Resu
279
311
 
280
312
  // ── Step 8: SSH remote restart ───────────────────────────────────────────
281
313
  //
282
- // Runs `node server.js` via pm2 inside the deployed standalone directory.
283
- // PORT and HOSTNAME are set so Next.js binds correctly behind nginx.
314
+ // Runs the deployed app via pm2 inside the standalone directory.
315
+ //
316
+ // We always delete the existing pm2 process (if any) and start fresh. A
317
+ // bare `pm2 restart` would re-execute the old command (e.g. `next start
318
+ // --port XXXX` from a previous git-push deploy), which fails when the
319
+ // working directory now contains standalone output instead of the full
320
+ // Next.js build tree.
284
321
  //
285
- // We always delete the existing pm2 process (if any) and start fresh with
286
- // `node server.js`. A bare `pm2 restart` would re-execute the *old* command
287
- // (e.g. `next start --port XXXX` from a previous git-push deploy), which
288
- // fails when the working directory now contains standalone output instead of
289
- // the full Next.js build tree. Deleting first guarantees the entry point
290
- // and environment are always correct.
322
+ // If the server has an operator-managed `ecosystem.config.js`, prefer it as
323
+ // the source of truth for runtime env and pm2 settings. Otherwise fall back
324
+ // to `node server.js` with the minimal inline env needed to bind the app.
291
325
  //
292
326
  // The port defaults to 3000 and can be overridden with `port = XXXX` in
293
327
  // .smb/config.toml — it must match the nginx upstream configuration.
@@ -296,24 +330,36 @@ pub async fn process_deploy_nextjs_ssr(env: Environment, config: Config) -> Resu
296
330
 
297
331
  let deploy_script = format!(
298
332
  r#"set -e
299
- APP_PATH="{remote_path}"
300
- PM2_APP="{pm2_app}"
301
-
302
- if [ ! -d "$APP_PATH" ]; then
303
- echo "Error: $APP_PATH is not a directory."
304
- exit 1
305
- fi
306
-
307
- cd "$APP_PATH"
308
-
309
- echo "Starting $PM2_APP with pm2..."
310
- if pm2 describe "$PM2_APP" > /dev/null 2>&1; then
311
- pm2 delete "$PM2_APP"
312
- fi
313
- NODE_ENV=production PORT={port} HOSTNAME=127.0.0.1 pm2 start node --name "$PM2_APP" -- server.js
314
- pm2 save
315
- echo "Done."
316
- "#,
333
+ APP_PATH="{remote_path}"
334
+ PM2_APP="{pm2_app}"
335
+
336
+ case "$APP_PATH" in
337
+ /*) ;;
338
+ *) APP_PATH="$HOME/$APP_PATH" ;;
339
+ esac
340
+
341
+ if [ ! -d "$APP_PATH" ]; then
342
+ echo "Error: $APP_PATH is not a directory."
343
+ exit 1
344
+ fi
345
+
346
+ cd "$APP_PATH"
347
+ mkdir -p logs
348
+
349
+ echo "Starting $PM2_APP with pm2..."
350
+ if pm2 describe "$PM2_APP" > /dev/null 2>&1; then
351
+ pm2 delete "$PM2_APP"
352
+ fi
353
+
354
+ if [ -f ecosystem.config.js ]; then
355
+ pm2 start ecosystem.config.js --only "$PM2_APP" --env production
356
+ else
357
+ NODE_ENV=production PORT={port} HOSTNAME=127.0.0.1 pm2 start node --name "$PM2_APP" -- server.js
358
+ fi
359
+
360
+ pm2 save
361
+ echo "Done."
362
+ "#,
317
363
  remote_path = remote_path,
318
364
  pm2_app = pm2_app,
319
365
  port = port,
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-auth"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2024"
5
5
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
6
6
  description = "Cross-platform Auth SDK for the smbCloud platform."
@@ -4,9 +4,9 @@ Rust authentication foundation for smbCloud.
4
4
 
5
5
  ## About
6
6
 
7
- `smbcloud-auth` provides the shared authentication flows used across the smbCloud CLI and SDK ecosystem.
7
+ `smbcloud-auth` provides the shared authentication flows used across the smbCloud CLI and SDKs.
8
8
 
9
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
9
+ For product context, visit [smbCloud](https://smbcloud.xyz/) or read the [developer docs](https://smbcloud.xyz/posts).
10
10
 
11
11
  ## License
12
12
 
@@ -7,9 +7,9 @@ use {
7
7
  smbcloud_network::{environment::Environment, network::request_login},
8
8
  smbcloud_networking::{
9
9
  constants::{PATH_USERS_SIGN_IN, SMB_USER_AGENT},
10
- smb_base_url_builder,
11
10
  smb_client::SmbClient,
12
11
  },
12
+ url_builder::URLBuilder,
13
13
  };
14
14
 
15
15
  pub async fn login(
@@ -31,8 +31,17 @@ pub async fn login(
31
31
  request_login(builder).await
32
32
  }
33
33
 
34
- pub(crate) fn build_smb_login_url(env: Environment, client: (&SmbClient, &str)) -> String {
35
- let mut url_builder = smb_base_url_builder(env, client);
36
- url_builder.add_route(PATH_USERS_SIGN_IN);
34
+ pub fn build_login_url(env: Environment, client_id: &str, client_secret: &str) -> String {
35
+ let mut url_builder = URLBuilder::new();
36
+ url_builder
37
+ .set_protocol(&env.api_protocol())
38
+ .set_host(&env.api_host())
39
+ .add_param("client_id", client_id)
40
+ .add_param("client_secret", client_secret)
41
+ .add_route(PATH_USERS_SIGN_IN);
37
42
  url_builder.build()
38
43
  }
44
+
45
+ pub(crate) fn build_smb_login_url(env: Environment, client: (&SmbClient, &str)) -> String {
46
+ build_login_url(env, client.0.id(), client.1)
47
+ }
@@ -2,9 +2,8 @@ use {
2
2
  reqwest::Client,
3
3
  smbcloud_model::{account::SmbAuthorization, error_codes::ErrorResponse},
4
4
  smbcloud_network::{environment::Environment, network::request},
5
- smbcloud_networking::{
6
- constants::PATH_RESET_PASSWORD_INSTRUCTIONS, smb_base_url_builder, smb_client::SmbClient,
7
- },
5
+ smbcloud_networking::{constants::PATH_RESET_PASSWORD_INSTRUCTIONS, smb_client::SmbClient},
6
+ url_builder::URLBuilder,
8
7
  };
9
8
 
10
9
  pub async fn resend_reset_password_instruction(
@@ -24,11 +23,24 @@ pub async fn resend_reset_password_instruction(
24
23
  request(builder).await
25
24
  }
26
25
 
26
+ pub fn build_resend_reset_password_instructions_url(
27
+ env: Environment,
28
+ client_id: &str,
29
+ client_secret: &str,
30
+ ) -> String {
31
+ let mut url_builder = URLBuilder::new();
32
+ url_builder
33
+ .set_protocol(&env.api_protocol())
34
+ .set_host(&env.api_host())
35
+ .add_param("client_id", client_id)
36
+ .add_param("client_secret", client_secret)
37
+ .add_route(PATH_RESET_PASSWORD_INSTRUCTIONS);
38
+ url_builder.build()
39
+ }
40
+
27
41
  fn build_smb_resend_reset_password_instructions_url(
28
42
  env: Environment,
29
43
  client: (&SmbClient, &str),
30
44
  ) -> String {
31
- let mut url_builder = smb_base_url_builder(env, client);
32
- url_builder.add_route(PATH_RESET_PASSWORD_INSTRUCTIONS);
33
- url_builder.build()
45
+ build_resend_reset_password_instructions_url(env, client.0.id(), client.1)
34
46
  }
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-mail"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2021"
5
5
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
6
6
  description = "smbCloud mail API client for the CLI."
@@ -6,7 +6,7 @@ Mail routing support crate for smbCloud Mail.
6
6
 
7
7
  `smbcloud-mail` provides the shared mail API client layer used by the smbCloud CLI for mail apps, inbox routes, test delivery, and inbound message inspection.
8
8
 
9
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
9
+ For the wider product story, visit [smbCloud](https://smbcloud.xyz/).
10
10
 
11
11
  ## License
12
12
 
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-model"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2021"
5
5
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
6
6
  description = "Command line tool for deploying NextJS app on the smbCloud platform."
@@ -2,7 +2,7 @@
2
2
 
3
3
  Shared data models for smbCloud CLI services and SDKs.
4
4
 
5
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
5
+ See the [smbCloud developer docs](https://smbcloud.xyz/posts) for the services that use these models.
6
6
 
7
7
  ## License
8
8
 
@@ -55,8 +55,12 @@ pub struct SmbAuthorization {
55
55
  pub enum ErrorCode {
56
56
  EmailNotFound = 1000,
57
57
  EmailUnverified = 1001,
58
+ EmailConfirmationFailed = 1002,
58
59
  PasswordNotSet = 1003,
59
60
  GithubNotLinked = 1004,
61
+ EmailAlreadyExist = 1005,
62
+ InvalidPassword = 1006,
63
+ HostedMailAccountUnverified = 1007,
60
64
  }
61
65
 
62
66
  impl Display for ErrorCode {
@@ -64,8 +68,14 @@ impl Display for ErrorCode {
64
68
  match self {
65
69
  ErrorCode::EmailNotFound => write!(f, "Email not found."),
66
70
  ErrorCode::EmailUnverified => write!(f, "Email not verified."),
71
+ ErrorCode::EmailConfirmationFailed => write!(f, "Email confirmation failed."),
67
72
  ErrorCode::PasswordNotSet => write!(f, "Password not set."),
68
73
  ErrorCode::GithubNotLinked => write!(f, "Github not connected."),
74
+ ErrorCode::EmailAlreadyExist => write!(f, "Email already exists."),
75
+ ErrorCode::InvalidPassword => write!(f, "Invalid password."),
76
+ ErrorCode::HostedMailAccountUnverified => {
77
+ write!(f, "Hosted mail account not fully activated yet.")
78
+ }
69
79
  }
70
80
  }
71
81
  }
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-network"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2024"
5
5
  readme = "README.md"
6
6
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
@@ -2,7 +2,7 @@
2
2
 
3
3
  Environment and transport helpers for smbCloud clients.
4
4
 
5
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
5
+ More client and platform context is on [smbcloud.xyz](https://smbcloud.xyz/).
6
6
 
7
7
  ## License
8
8
 
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-networking"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2021"
5
5
  readme = "README.md"
6
6
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
@@ -4,7 +4,7 @@ Low-level HTTP client helpers for smbCloud services.
4
4
 
5
5
  This crate takes a few cues from [Designing a Web API client in Rust](https://nullderef.com/blog/web-api-client/).
6
6
 
7
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
7
+ For higher-level usage, browse the [smbCloud docs](https://smbcloud.xyz/posts).
8
8
 
9
9
  ## License
10
10
 
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-networking-project"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2021"
5
5
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
6
6
  description = "Command line tool for deploying NextJS app on the smbCloud platform."
@@ -2,7 +2,7 @@
2
2
 
3
3
  Project-focused networking helpers for the smbCloud CLI.
4
4
 
5
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
5
+ Project and deployment guides are in the [smbCloud docs](https://smbcloud.xyz/posts).
6
6
 
7
7
  ## License
8
8
 
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "smbcloud-utils"
3
- version = "0.3.41"
3
+ version = "0.4.0"
4
4
  edition = "2021"
5
5
  authors = ["Seto Elkahfi <hej@setoelkahfi.se>"]
6
6
  description = "Command line tool for deploying NextJS app on the smbCloud platform."
@@ -2,7 +2,7 @@
2
2
 
3
3
  Shared utility helpers for smbCloud CLI crates.
4
4
 
5
- > Explore more on the [smbCloud Services](https://smbcloud.xyz/services) page.
5
+ More about the platform is at [smbCloud](https://smbcloud.xyz/).
6
6
 
7
7
  ## License
8
8