@atlashub/smartstack-cli 1.28.0 → 1.29.0

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.
@@ -764,13 +764,25 @@ claude mcp add smartstack -- smartstack-mcp</code></pre>
764
764
  <p data-lang="fr">Installez le serveur MCP Context7 pour acceder a la documentation des bibliotheques.</p>
765
765
  <p data-lang="en">Install the Context7 MCP server to access library documentation.</p>
766
766
 
767
- <p data-lang="fr">Obtenez une cle API sur <a href="https://context7.com" target="_blank">context7.com</a>, puis executez ces 3 commandes :</p>
768
- <p data-lang="en">Get an API key at <a href="https://context7.com" target="_blank">context7.com</a>, then run these 3 commands:</p>
767
+ <p data-lang="fr">Obtenez une cle API sur <a href="https://context7.com" target="_blank">context7.com</a>, puis entrez-la ci-dessous :</p>
768
+ <p data-lang="en">Get an API key at <a href="https://context7.com" target="_blank">context7.com</a>, then enter it below:</p>
769
+
770
+ <div class="api-key-input" style="margin: 1rem 0;">
771
+ <label style="display: block; font-weight: 600; margin-bottom: 0.5rem; color: var(--text);">
772
+ <span data-lang="fr">Votre cle API Context7 :</span>
773
+ <span data-lang="en">Your Context7 API key:</span>
774
+ </label>
775
+ <input type="text"
776
+ id="context7-api-key"
777
+ placeholder="ctx7_xxxxxxxxxxxxxxxx"
778
+ style="width: 100%; max-width: 400px; padding: 0.75rem 1rem; border: 1px solid var(--border); border-radius: 6px; background: var(--bg-card); color: var(--text); font-family: monospace; font-size: 0.9rem;"
779
+ oninput="updateContext7Commands()">
780
+ </div>
769
781
 
770
782
  <div class="code-block">
771
783
  <button class="copy-btn">Copy</button>
772
- <pre><code># 1. Definir la cle API (remplacez par votre cle)
773
- $env:CONTEXT7_API_KEY = "votre-cle-api"
784
+ <pre><code id="context7-commands"># 1. Definir la cle API
785
+ $env:CONTEXT7_API_KEY = "<span class="context7-key-placeholder" style="color: var(--text-muted);">votre-cle-api</span>"
774
786
 
775
787
  # 2. Installer le package
776
788
  npm install -g @upstash/context7-mcp
@@ -1442,6 +1454,21 @@ smartstack init</code></pre>
1442
1454
  }
1443
1455
  }
1444
1456
 
1457
+ // Context7 API key dynamic update
1458
+ function updateContext7Commands() {
1459
+ var input = document.getElementById('context7-api-key');
1460
+ var placeholder = document.querySelector('.context7-key-placeholder');
1461
+ var value = input.value.trim();
1462
+
1463
+ if (value) {
1464
+ placeholder.textContent = value;
1465
+ placeholder.style.color = 'var(--success)';
1466
+ } else {
1467
+ placeholder.textContent = 'votre-cle-api';
1468
+ placeholder.style.color = 'var(--text-muted)';
1469
+ }
1470
+ }
1471
+
1445
1472
  </script>
1446
1473
  </body>
1447
1474
  </html>
package/dist/index.js CHANGED
@@ -116814,19 +116814,40 @@ var initCommand = new Command("init").description("Initialize a new SmartStack p
116814
116814
  process.exit(1);
116815
116815
  }
116816
116816
  }
116817
+ let finalProjectName = projectName;
116817
116818
  const validation = validateCSharpNamespace(projectName);
116818
116819
  if (!validation.valid) {
116819
- logger.error(`Invalid project name: ${validation.error}`);
116820
- if (validation.suggestion) {
116821
- logger.info(`Suggestion: Use '${source_default.cyan(validation.suggestion)}' instead`);
116820
+ logger.warning(`Project name "${projectName}" contains invalid characters for C# namespace.`);
116821
+ if (validation.suggestion && !options.yes) {
116822
+ const { useSuggestion } = await lib_default.prompt([
116823
+ {
116824
+ type: "confirm",
116825
+ name: "useSuggestion",
116826
+ message: `Use "${source_default.cyan(validation.suggestion)}" as C# namespace instead?`,
116827
+ default: true
116828
+ }
116829
+ ]);
116830
+ if (useSuggestion) {
116831
+ finalProjectName = validation.suggestion;
116832
+ logger.success(`Using "${finalProjectName}" as project name`);
116833
+ } else {
116834
+ logger.error(`Cannot continue with invalid project name.`);
116835
+ logger.info(`Tip: Rename folder to use only letters, digits, and underscores.`);
116836
+ process.exit(1);
116837
+ }
116838
+ } else if (validation.suggestion && options.yes) {
116839
+ finalProjectName = validation.suggestion;
116840
+ logger.info(`Auto-converted to "${finalProjectName}" for C# compatibility`);
116841
+ } else {
116842
+ logger.error(`Invalid project name: ${validation.error}`);
116843
+ process.exit(1);
116822
116844
  }
116823
- process.exit(1);
116824
116845
  }
116825
116846
  let config;
116826
116847
  if (options.yes) {
116827
116848
  config = {
116828
- name: projectName,
116829
- nameLower: projectName.toLowerCase(),
116849
+ name: finalProjectName,
116850
+ nameLower: finalProjectName.toLowerCase(),
116830
116851
  database: "sqlserver",
116831
116852
  preview: options.preview ?? false,
116832
116853
  projectDir: inPlace ? projectDir : void 0,
@@ -116869,8 +116890,8 @@ var initCommand = new Command("init").description("Initialize a new SmartStack p
116869
116890
  }
116870
116891
  ]);
116871
116892
  config = {
116872
- name: projectName,
116873
- nameLower: projectName.toLowerCase(),
116893
+ name: finalProjectName,
116894
+ nameLower: finalProjectName.toLowerCase(),
116874
116895
  database: "sqlserver",
116875
116896
  preview: options.preview ?? false,
116876
116897
  projectDir: inPlace ? projectDir : void 0,