@unbox-plus/cli 0.20.4 → 0.20.5

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.
package/README.md CHANGED
@@ -12,7 +12,7 @@ neutros), cores e nome da loja.
12
12
  Navegue até a pasta onde queira criar o projeto e rode:
13
13
 
14
14
  ```bash
15
- npx @unbox-plus/cli create-unbox-store
15
+ npx --package=@unbox-plus/cli create-unbox-store
16
16
  ```
17
17
 
18
18
  O `npx` roda o CLI direto do pacote publicado no NPM, sem instalar nada global.
@@ -76,7 +76,7 @@ node bin/cli.js
76
76
  ## Uso não-interativo (scripts/CI)
77
77
 
78
78
  ```bash
79
- npx @unbox-plus/cli create-unbox-store minha-loja --yes --no-install
79
+ npx --package=@unbox-plus/cli create-unbox-store minha-loja --yes --no-install
80
80
  ```
81
81
 
82
82
  Gera com as cores/nome default e o estilo **essencial** — use `--estilo <nome>`
package/bin/cli.js CHANGED
@@ -129,7 +129,7 @@ function printHelp() {
129
129
  create-unbox-store: gera um storefront Next.js integrado à Unbox
130
130
 
131
131
  Uso:
132
- npx --package=./create-unbox-store.tgz create-unbox-store [pasta] [flags]
132
+ npx --package=@unbox-plus/cli create-unbox-store [pasta] [flags]
133
133
 
134
134
  Sem flags, roda o wizard interativo: nome da loja, cores, estilo visual,
135
135
  credenciais da Unbox (Enter pra pular = modo mockup) e checkout.
@@ -143,8 +143,8 @@ function printHelp() {
143
143
  --help, -h esta ajuda
144
144
 
145
145
  Exemplos:
146
- npx --package=./create-unbox-store.tgz create-unbox-store minha-loja
147
- npx --package=./create-unbox-store.tgz create-unbox-store loja-x --yes --no-install --estilo boutique
146
+ npx --package=@unbox-plus/cli create-unbox-store minha-loja
147
+ npx --package=@unbox-plus/cli create-unbox-store loja-x --yes --no-install --estilo boutique
148
148
 
149
149
  Depois de gerar: cd <pasta> && claude (o briefing de marca abre sozinho)
150
150
  Docs completas: README.md dentro do zip da beta.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbox-plus/cli",
3
- "version": "0.20.4",
3
+ "version": "0.20.5",
4
4
  "author": {
5
5
  "name": "Unbox Development Team",
6
6
  "email": "devs@unbox.com.br",
@@ -6,11 +6,11 @@
6
6
  //
7
7
  // Existe pra que "manter a página atualizada" seja um comando, não um trabalho manual que
8
8
  // ninguém lembra de fazer no dia do release. A versão vem do package.json e o changelog é
9
- // extraído do README.md — as duas únicas fontes da verdade. Rode depois de todo release e
10
- // atualize a página com a saída.
9
+ // extraído do CHANGELOG.md — as duas únicas fontes da verdade. Rode depois de todo release
10
+ // e atualize a página com a saída.
11
11
  //
12
12
  // A prosa de apresentação é curada aqui (uma página de Notion para o time não é um despejo
13
- // do README). O changelog é mecânico: toda entrada "### vX.Y.Z" do README vira um toggle.
13
+ // do README). O changelog é mecânico: toda entrada "### vX.Y.Z" do CHANGELOD vira um toggle.
14
14
  // ═══════════════════════════════════════════════════════════════════════════════════════
15
15
  import fs from "node:fs";
16
16
  import path from "node:path";
@@ -18,14 +18,14 @@ import { fileURLToPath } from "node:url";
18
18
 
19
19
  const RAIZ = path.join(path.dirname(fileURLToPath(import.meta.url)), "..");
20
20
  const pkg = JSON.parse(fs.readFileSync(path.join(RAIZ, "package.json"), "utf8"));
21
- const readme = fs.readFileSync(path.join(RAIZ, "README.md"), "utf8");
21
+ const changelog = fs.readFileSync(path.join(RAIZ, "CHANGELOG.md"), "utf8");
22
22
  const VERSAO = pkg.version;
23
23
 
24
- // ── Changelog: extrai as entradas "### vX" / "### Beta vX" do README ────────────────────
24
+ // ── Changelog: extrai as entradas "### vX" / "### Beta vX" do CHANGELOG ─────────────────
25
25
  function extrairChangelog() {
26
- const linhas = readme.split("\n");
26
+ const linhas = changelog.split("\n");
27
27
  const ini = linhas.findIndex((l) => l.trim() === "## Changelog");
28
- if (ini === -1) throw new Error("seção '## Changelog' não encontrada no README.md");
28
+ if (ini === -1) throw new Error("seção '## Changelog' não encontrada no CHANGELOG.md");
29
29
 
30
30
  const entradas = [];
31
31
  let atual = null;
@@ -75,7 +75,7 @@ function escaparAngulos(texto) {
75
75
  const entradas = extrairChangelog();
76
76
  // Detalhe integral só na era da arquitetura atual (v0.12.13+, quando o versionamento foi
77
77
  // unificado). O histórico anterior vira uma linha por versão dentro de um toggle: ninguém lê
78
- // 35 changelogs completos, e o texto integral continua no README do pacote.
78
+ // 35 changelogs completos, e o texto integral continua no CHANGELOG do pacote.
79
79
  const DETALHADAS = entradas.findIndex((e) => /^Beta v/.test(e.titulo));
80
80
  const corte = DETALHADAS === -1 ? entradas.length : DETALHADAS;
81
81
 
@@ -95,23 +95,24 @@ const antigas = entradas.slice(corte).map((e) => {
95
95
  return `- **${e.titulo}** — ${resumo}`;
96
96
  }).join("\n");
97
97
 
98
- const changelog = detalhadas + `
98
+ const changelogFinal = detalhadas + `
99
99
 
100
100
  <details>
101
101
  <summary>Histórico anterior (${entradas.length - corte} versões, era "Beta")</summary>
102
102
  ` + antigas.split("\n").map((l) => "\t" + l).join("\n") + `
103
103
  \t
104
- \tO texto integral de cada uma está no \`README.md\` dentro do pacote.
104
+ \tO texto integral de cada uma está no \`CHANGELOG.md\` dentro do pacote.
105
105
  </details>`;
106
106
 
107
107
  // ── A página ────────────────────────────────────────────────────────────────────────────
108
108
  const pagina = `<callout icon="📦" color="blue_bg">
109
109
  **Versão atual: v${VERSAO}** — entregue como \`CLI - Unbox v${VERSAO}.zip\`, que contém \`create-unbox-store.tgz\` e o README completo.
110
110
  O nome do tarball é sempre \`create-unbox-store.tgz\`, **sem versão** — a versão fica dentro do pacote. Zips antigos traziam a versão no nome do arquivo e isso gerava erro de \`npx\` quando o comando não batia com o nome real.
111
+ O pacote também está sendo distribuído como [@unbox-plus/cli](https://www.npmjs.com/package/@unbox-plus/cli) no NPM.
111
112
  </callout>
112
113
 
113
114
  <callout icon="🔄" color="gray_bg">
114
- Esta página é gerada a partir do \`README.md\` e do \`package.json\` do CLI. Para atualizá-la depois de um release, rode \`node tools/notion-doc.mjs\` no repositório do CLI e substitua o conteúdo com a saída. Não edite o changelog aqui à mão: ele será sobrescrito.
115
+ Esta página é gerada a partir do \`CHANGELOG.md\` e do \`package.json\` do CLI. Para atualizá-la depois de um release, rode \`node tools/notion-doc.mjs\` no repositório do CLI e substitua o conteúdo com a saída. Não edite o changelog aqui à mão: ele será sobrescrito.
115
116
  </callout>
116
117
 
117
118
  ## O que é
@@ -122,14 +123,14 @@ O que sai do CLI é **fundação**, não loja pronta. A personalização de verd
122
123
 
123
124
  ## Como usar
124
125
 
125
- Único pré-requisito da máquina: **Node.js** ([nodejs.org](https://nodejs.org), botão LTS). Coloque o \`create-unbox-store.tgz\` na pasta onde quer criar o projeto e rode:
126
+ Único pré-requisito da máquina: **Node.js** ([nodejs.org](https://nodejs.org), botão LTS). Navegue até a pasta onde queira criar o projeto e rode:
126
127
 
127
128
  \`\`\`bash
128
- npx --package=./create-unbox-store.tgz create-unbox-store
129
+ npx --package=@unbox-plus/cli create-unbox-store
129
130
  \`\`\`
130
131
 
131
132
  <callout icon="⚠️" color="yellow_bg">
132
- Use sempre a forma com \`--package=\`. O \`npx ./create-unbox-store.tgz\` sem ela dá erro de permissão em algumas versões do npm.
133
+ Use sempre a forma com \`--package=\` para detecção correta do pacote.
133
134
  </callout>
134
135
 
135
136
  O CLI pergunta 12 coisas: nome do projeto e da loja, cor primária e de CTA, site e Instagram da marca, objetivo em uma frase, **estilo visual** (Essencial, Promocional, Editorial ou Boutique), credenciais da Unbox, tipo de checkout, o segredo de captcha (só com key de parceiro) e se roda \`npm install\`. Tudo menos as credenciais fica em \`marca/briefing.json\`, para o agente de marca não reperguntar.
@@ -148,7 +149,7 @@ O Claude Code abre direto no briefing de marca e conduz a personalização. Ence
148
149
  ### Sem interação (CI ou testes)
149
150
 
150
151
  \`\`\`bash
151
- npx --package=./create-unbox-store.tgz create-unbox-store minha-loja --yes --no-install
152
+ npx --package=@unbox-plus/cli create-unbox-store minha-loja --yes --no-install
152
153
  \`\`\`
153
154
 
154
155
  Use \`--estilo <essencial|promocional|editorial|boutique>\` para escolher o preset sem interação.
@@ -185,7 +186,7 @@ A fundação traz placeholders que funcionam mas **precisam de uma decisão cons
185
186
 
186
187
  ## Changelog
187
188
 
188
- ${changelog}
189
+ ${changelogFinal}
189
190
  `;
190
191
 
191
192
  process.stdout.write(pagina);