devctl 1.2.2__tar.gz → 1.2.3__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 (145) hide show
  1. {devctl-1.2.2 → devctl-1.2.3}/PKG-INFO +1 -1
  2. devctl-1.2.3/devctl/generators/angular/templates/config/proxy.conf.json.j2 +6 -0
  3. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nodejs/generator.py +12 -0
  4. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nodejs/templates/config/index.ts.j2 +2 -1
  5. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nodejs/templates/resource/controller.ts.j2 +1 -1
  6. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/react/generator.py +10 -1
  7. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/svelte/generator.py +3 -3
  8. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/generator.py +11 -2
  9. {devctl-1.2.2 → devctl-1.2.3}/devctl/orchestrator/config_builder.py +3 -1
  10. {devctl-1.2.2 → devctl-1.2.3}/devctl/tui/app.py +17 -5
  11. {devctl-1.2.2 → devctl-1.2.3}/devctl.egg-info/PKG-INFO +1 -1
  12. {devctl-1.2.2 → devctl-1.2.3}/pyproject.toml +1 -1
  13. devctl-1.2.2/devctl/generators/angular/templates/config/proxy.conf.json.j2 +0 -0
  14. {devctl-1.2.2 → devctl-1.2.3}/LICENSE +0 -0
  15. {devctl-1.2.2 → devctl-1.2.3}/README.md +0 -0
  16. {devctl-1.2.2 → devctl-1.2.3}/devctl/__init__.py +0 -0
  17. {devctl-1.2.2 → devctl-1.2.3}/devctl/commands/__init__.py +0 -0
  18. {devctl-1.2.2 → devctl-1.2.3}/devctl/commands/add.py +0 -0
  19. {devctl-1.2.2 → devctl-1.2.3}/devctl/commands/deploy.py +0 -0
  20. {devctl-1.2.2 → devctl-1.2.3}/devctl/commands/docker.py +0 -0
  21. {devctl-1.2.2 → devctl-1.2.3}/devctl/commands/init.py +0 -0
  22. {devctl-1.2.2 → devctl-1.2.3}/devctl/commands/run.py +0 -0
  23. {devctl-1.2.2 → devctl-1.2.3}/devctl/commands/tui.py +0 -0
  24. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/__init__.py +0 -0
  25. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/__init__.py +0 -0
  26. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/generator.py +0 -0
  27. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/scaffolder.py +0 -0
  28. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/config/environment.development.ts.j2 +0 -0
  29. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/config/environment.ts.j2 +0 -0
  30. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/models/request.model.ts.j2 +0 -0
  31. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/models/response.model.ts.j2 +0 -0
  32. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/pages/form/form.component.html.j2 +0 -0
  33. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/pages/form/form.component.scss.j2 +0 -0
  34. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/pages/form/form.component.ts.j2 +0 -0
  35. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/pages/list/list.component.html.j2 +0 -0
  36. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/pages/list/list.component.scss.j2 +0 -0
  37. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/pages/list/list.component.ts.j2 +0 -0
  38. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/routes.ts.j2 +0 -0
  39. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/angular/templates/feature/services/service.ts.j2 +0 -0
  40. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/django/__init__.py +0 -0
  41. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/django/generator.py +0 -0
  42. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/django/scaffolder.py +0 -0
  43. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/django/templates/config/requirements.txt.j2 +0 -0
  44. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/django/templates/resource/model.py.j2 +0 -0
  45. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/django/templates/resource/serializer.py.j2 +0 -0
  46. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/django/templates/resource/view.py.j2 +0 -0
  47. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/__init__.py +0 -0
  48. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/scaffolder.py +0 -0
  49. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/deploy.yml.j2 +0 -0
  50. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/django/Dockerfile.j2 +0 -0
  51. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/fastapi/Dockerfile.j2 +0 -0
  52. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/frontend/Dockerfile.j2 +0 -0
  53. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/go/Dockerfile.j2 +0 -0
  54. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/nestjs/Dockerfile.j2 +0 -0
  55. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/nextjs/Dockerfile.j2 +0 -0
  56. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/nodejs/Dockerfile.j2 +0 -0
  57. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/spring/Dockerfile.j2 +0 -0
  58. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/docker/templates/svelte/Dockerfile.j2 +0 -0
  59. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/fastapi/__init__.py +0 -0
  60. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/fastapi/generator.py +0 -0
  61. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/fastapi/scaffolder.py +0 -0
  62. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/fastapi/templates/config/main.py.j2 +0 -0
  63. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/fastapi/templates/config/requirements.txt.j2 +0 -0
  64. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/fastapi/templates/resource/router.py.j2 +0 -0
  65. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/fastapi/templates/resource/schema.py.j2 +0 -0
  66. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/go_fiber/__init__.py +0 -0
  67. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/go_fiber/generator.py +0 -0
  68. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/go_fiber/scaffolder.py +0 -0
  69. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/go_fiber/templates/config/main.go.j2 +0 -0
  70. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/go_fiber/templates/resource/handler.go.j2 +0 -0
  71. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/go_fiber/templates/resource/model.go.j2 +0 -0
  72. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nestjs/__init__.py +0 -0
  73. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nestjs/generator.py +0 -0
  74. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nestjs/scaffolder.py +0 -0
  75. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nextjs/__init__.py +0 -0
  76. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nextjs/generator.py +0 -0
  77. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nextjs/scaffolder.py +0 -0
  78. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nextjs/templates/resource/component.tsx.j2 +0 -0
  79. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nextjs/templates/resource/page.tsx.j2 +0 -0
  80. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nodejs/__init__.py +0 -0
  81. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nodejs/scaffolder.py +0 -0
  82. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/nodejs/templates/resource/routes.ts.j2 +0 -0
  83. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/react/__init__.py +0 -0
  84. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/react/scaffolder.py +0 -0
  85. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/react/templates/resource/component.tsx.j2 +0 -0
  86. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/react/templates/resource/service.ts.j2 +0 -0
  87. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/__init__.py +0 -0
  88. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/generator.py +0 -0
  89. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/scaffolder.py +0 -0
  90. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/Controller.java.j2 +0 -0
  91. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/Entity.java.j2 +0 -0
  92. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/Repository.java.j2 +0 -0
  93. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/Service.java.j2 +0 -0
  94. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/ServiceImpl.java.j2 +0 -0
  95. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/application.properties.j2 +0 -0
  96. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/config/ApplicationConfig.java.j2 +0 -0
  97. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/config/JwtAuthenticationFilter.java.j2 +0 -0
  98. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/config/JwtService.java.j2 +0 -0
  99. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/config/SecurityConfig.java.j2 +0 -0
  100. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/docker-compose.yml.j2 +0 -0
  101. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/dto/Request.java.j2 +0 -0
  102. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/dto/Response.java.j2 +0 -0
  103. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/spring/templates/mapper/Mapper.java.j2 +0 -0
  104. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/svelte/__init__.py +0 -0
  105. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/svelte/scaffolder.py +0 -0
  106. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/svelte/templates/resource/component.svelte.j2 +0 -0
  107. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/svelte/templates/resource/page.svelte.j2 +0 -0
  108. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/__init__.py +0 -0
  109. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/scaffolder.py +0 -0
  110. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/config/App.vue.j2 +0 -0
  111. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/config/main.ts.j2 +0 -0
  112. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/config/router.ts.j2 +0 -0
  113. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/config/vite.config.ts.j2 +0 -0
  114. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/feature/Form.vue.j2 +0 -0
  115. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/feature/List.vue.j2 +0 -0
  116. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/feature/models.ts.j2 +0 -0
  117. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/feature/routes.ts.j2 +0 -0
  118. {devctl-1.2.2 → devctl-1.2.3}/devctl/generators/vue/templates/feature/service.ts.j2 +0 -0
  119. {devctl-1.2.2 → devctl-1.2.3}/devctl/main.py +0 -0
  120. {devctl-1.2.2 → devctl-1.2.3}/devctl/orchestrator/__init__.py +0 -0
  121. {devctl-1.2.2 → devctl-1.2.3}/devctl/orchestrator/process_manager.py +0 -0
  122. {devctl-1.2.2 → devctl-1.2.3}/devctl/orchestrator/runner.py +0 -0
  123. {devctl-1.2.2 → devctl-1.2.3}/devctl/orchestrator/scanner.py +0 -0
  124. {devctl-1.2.2 → devctl-1.2.3}/devctl/utils/__init__.py +0 -0
  125. {devctl-1.2.2 → devctl-1.2.3}/devctl/utils/dependencies.py +0 -0
  126. {devctl-1.2.2 → devctl-1.2.3}/devctl/utils/env_loader.py +0 -0
  127. {devctl-1.2.2 → devctl-1.2.3}/devctl/utils/platform.py +0 -0
  128. {devctl-1.2.2 → devctl-1.2.3}/devctl.egg-info/SOURCES.txt +0 -0
  129. {devctl-1.2.2 → devctl-1.2.3}/devctl.egg-info/dependency_links.txt +0 -0
  130. {devctl-1.2.2 → devctl-1.2.3}/devctl.egg-info/entry_points.txt +0 -0
  131. {devctl-1.2.2 → devctl-1.2.3}/devctl.egg-info/requires.txt +0 -0
  132. {devctl-1.2.2 → devctl-1.2.3}/devctl.egg-info/top_level.txt +0 -0
  133. {devctl-1.2.2 → devctl-1.2.3}/setup.cfg +0 -0
  134. {devctl-1.2.2 → devctl-1.2.3}/test/test_add.py +0 -0
  135. {devctl-1.2.2 → devctl-1.2.3}/test/test_commands.py +0 -0
  136. {devctl-1.2.2 → devctl-1.2.3}/test/test_deploy.py +0 -0
  137. {devctl-1.2.2 → devctl-1.2.3}/test/test_env_loader.py +0 -0
  138. {devctl-1.2.2 → devctl-1.2.3}/test/test_init.py +0 -0
  139. {devctl-1.2.2 → devctl-1.2.3}/test/test_main.py +0 -0
  140. {devctl-1.2.2 → devctl-1.2.3}/test/test_mongodb.py +0 -0
  141. {devctl-1.2.2 → devctl-1.2.3}/test/test_platform.py +0 -0
  142. {devctl-1.2.2 → devctl-1.2.3}/test/test_runner.py +0 -0
  143. {devctl-1.2.2 → devctl-1.2.3}/test/test_scanner.py +0 -0
  144. {devctl-1.2.2 → devctl-1.2.3}/test/test_tui.py +0 -0
  145. {devctl-1.2.2 → devctl-1.2.3}/test/test_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devctl
3
- Version: 1.2.2
3
+ Version: 1.2.3
4
4
  Summary: Local development orchestrator for Spring Boot, Angular, and Vue.js
5
5
  Author: Youssef Fellah
6
6
  License: MIT License
@@ -0,0 +1,6 @@
1
+ {
2
+ "/api": {
3
+ "target": "http://localhost:8080",
4
+ "secure": false
5
+ }
6
+ }
@@ -75,6 +75,18 @@ def generate_nodejs_boilerplate(project_name: str) -> bool:
75
75
  shell=platform.shell_required,
76
76
  )
77
77
 
78
+ # Patch tsconfig.json to disable verbatimModuleSyntax for ES module compatibility
79
+ tsconfig_path = os.path.join(project_path, "tsconfig.json")
80
+ if os.path.exists(tsconfig_path):
81
+ with open(tsconfig_path, "r", encoding="utf-8") as f:
82
+ content = f.read()
83
+ # Replace verbatimModuleSyntax if present or add option
84
+ content = content.replace(
85
+ '"verbatimModuleSyntax": true', '"verbatimModuleSyntax": false'
86
+ )
87
+ with open(tsconfig_path, "w", encoding="utf-8") as f:
88
+ f.write(content)
89
+
78
90
  # 4. Create folder structure
79
91
  os.makedirs(os.path.join(project_path, "src"), exist_ok=True)
80
92
 
@@ -1,4 +1,5 @@
1
- import express, { Request, Response } from 'express';
1
+ import express from 'express';
2
+ import type { Request, Response } from 'express';
2
3
  import dotenv from 'dotenv';
3
4
 
4
5
  dotenv.config();
@@ -1,4 +1,4 @@
1
- import { Request, Response } from 'express';
1
+ import type { Request, Response } from 'express';
2
2
 
3
3
  export const get{{ entity_name }}s = (req: Request, res: Response) => {
4
4
  res.json({ message: 'Get all {{ resource_lower }}s' });
@@ -22,7 +22,16 @@ def generate_react_boilerplate(project_name: str) -> bool:
22
22
  platform = get_platform()
23
23
  typer.secho("Scaffolding React project...", fg=typer.colors.CYAN)
24
24
  subprocess.run(
25
- ["npm", "create", "vite@latest", safe_name, "--", "--template", "react-ts"],
25
+ [
26
+ "npm",
27
+ "create",
28
+ "vite@latest",
29
+ safe_name,
30
+ "--",
31
+ "--template",
32
+ "react-ts",
33
+ "--no-interactive",
34
+ ],
26
35
  check=True,
27
36
  shell=platform.shell_required,
28
37
  )
@@ -30,11 +30,11 @@ def generate_svelte_boilerplate(project_name: str) -> bool:
30
30
  "create",
31
31
  safe_name,
32
32
  "--template",
33
- "skeleton",
33
+ "minimal",
34
34
  "--types",
35
- "typescript",
35
+ "ts",
36
+ "--no-add-ons",
36
37
  "--no-install",
37
- "--no-git",
38
38
  ],
39
39
  check=True,
40
40
  shell=platform.shell_required,
@@ -56,7 +56,7 @@ def setup_vue_router(project_path: str):
56
56
  os.makedirs(router_dir, exist_ok=True)
57
57
 
58
58
  # 3. Jinja2 template rendering
59
- templates_dir = os.path.join(os.path.dirname(__file__), "..", "templates", "vue", "config")
59
+ templates_dir = os.path.join(os.path.dirname(__file__), "templates", "config")
60
60
  env = Environment(loader=FileSystemLoader(templates_dir))
61
61
 
62
62
  files_to_generate = {
@@ -89,7 +89,16 @@ def generate_vue_boilerplate(project_name: str) -> bool:
89
89
  try:
90
90
  typer.secho("Scaffolding Vite project...", fg=typer.colors.CYAN)
91
91
  subprocess.run(
92
- ["npm", "create", "vite@latest", safe_name, "--", "--template", "vue-ts"],
92
+ [
93
+ "npm",
94
+ "create",
95
+ "vite@latest",
96
+ safe_name,
97
+ "--",
98
+ "--template",
99
+ "vue-ts",
100
+ "--no-interactive",
101
+ ],
93
102
  check=True,
94
103
  shell=platform.shell_required,
95
104
  )
@@ -13,7 +13,9 @@ def generate_config(project_name: str, db_type: str = "postgres", custom_port: i
13
13
  """
14
14
  Generates the initial configuration (Docker and Spring properties) for a new project.
15
15
  """
16
- template_dir = os.path.join(os.path.dirname(__file__), "..", "templates", "spring")
16
+ template_dir = os.path.join(
17
+ os.path.dirname(__file__), "..", "generators", "spring", "templates"
18
+ )
17
19
  env = Environment(loader=FileSystemLoader(template_dir))
18
20
 
19
21
  # Intelligent default port resolution
@@ -347,6 +347,7 @@ class DevctlTUI(App):
347
347
  ]
348
348
  yield Select(
349
349
  frameworks,
350
+ value="spring",
350
351
  prompt="Choose target framework",
351
352
  id="init-project-framework",
352
353
  )
@@ -456,8 +457,10 @@ class DevctlTUI(App):
456
457
  if not self.single_panel:
457
458
  try:
458
459
  select_add = self.query_one("#add-resource-target", Select)
459
- options = [(f"{p.name} ({p.kind})", p.name) for p in self.projects]
460
- select_add.options = options
460
+ options = [(f"{p.name} ({p.kind.upper()})", p.name) for p in self.projects]
461
+ select_add.set_options(options)
462
+ if options and (select_add.value == Select.BLANK or select_add.value is None):
463
+ select_add.value = options[0][1]
461
464
  except Exception:
462
465
  pass
463
466
 
@@ -797,11 +800,20 @@ class DevctlTUI(App):
797
800
  self.trigger_rescan_and_refresh()
798
801
 
799
802
  def trigger_rescan_and_refresh(self) -> None:
800
- """Helper to safely perform rescan and trigger UI updates."""
801
- self.perform_rescan()
802
- self.refresh_ui_elements()
803
+ """Helper to safely perform rescan and trigger UI updates from background threads."""
804
+
805
+ def _refresh():
806
+ self.perform_rescan()
807
+ self.refresh_ui_elements()
808
+
809
+ self.call_from_thread(_refresh)
803
810
 
804
811
  def on_unmount(self) -> None:
812
+ """Stops all running background services and containers when quitting TUI."""
813
+ try:
814
+ self.action_stop_all()
815
+ except Exception:
816
+ pass
805
817
  self.manager.cleanup_all()
806
818
 
807
819
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: devctl
3
- Version: 1.2.2
3
+ Version: 1.2.3
4
4
  Summary: Local development orchestrator for Spring Boot, Angular, and Vue.js
5
5
  Author: Youssef Fellah
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "devctl"
7
- version = "1.2.2"
7
+ version = "1.2.3"
8
8
  description = "Local development orchestrator for Spring Boot, Angular, and Vue.js"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes