@neetru/cli 2.29.0 → 2.31.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +61 -17
  3. package/dist/commands/deploy.d.ts +45 -0
  4. package/dist/commands/deploy.js +134 -1
  5. package/dist/commands/deploy.js.map +1 -1
  6. package/dist/commands/dev-up.d.ts +7 -5
  7. package/dist/commands/dev-up.js +24 -23
  8. package/dist/commands/dev-up.js.map +1 -1
  9. package/dist/commands/docs-produto.d.ts +65 -0
  10. package/dist/commands/docs-produto.js +322 -0
  11. package/dist/commands/docs-produto.js.map +1 -0
  12. package/dist/commands/init.d.ts +2 -0
  13. package/dist/commands/init.js +7 -0
  14. package/dist/commands/init.js.map +1 -1
  15. package/dist/commands/new.d.ts +2 -0
  16. package/dist/commands/new.js +2 -0
  17. package/dist/commands/new.js.map +1 -1
  18. package/dist/index.js +72 -6
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/api-client.d.ts +8 -1
  21. package/dist/lib/api-client.js +20 -2
  22. package/dist/lib/api-client.js.map +1 -1
  23. package/dist/lib/compose-generator.d.ts +13 -9
  24. package/dist/lib/compose-generator.js +28 -60
  25. package/dist/lib/compose-generator.js.map +1 -1
  26. package/dist/lib/config-schema.d.ts +40 -6
  27. package/dist/lib/config-schema.js +11 -0
  28. package/dist/lib/config-schema.js.map +1 -1
  29. package/dist/lib/product-docs/check.d.ts +62 -0
  30. package/dist/lib/product-docs/check.js +489 -0
  31. package/dist/lib/product-docs/check.js.map +1 -0
  32. package/dist/lib/product-docs/config.d.ts +66 -0
  33. package/dist/lib/product-docs/config.js +234 -0
  34. package/dist/lib/product-docs/config.js.map +1 -0
  35. package/dist/lib/product-docs/dates.d.ts +17 -0
  36. package/dist/lib/product-docs/dates.js +41 -0
  37. package/dist/lib/product-docs/dates.js.map +1 -0
  38. package/dist/lib/product-docs/frontmatter.d.ts +43 -0
  39. package/dist/lib/product-docs/frontmatter.js +302 -0
  40. package/dist/lib/product-docs/frontmatter.js.map +1 -0
  41. package/dist/lib/product-docs/git.d.ts +16 -0
  42. package/dist/lib/product-docs/git.js +92 -0
  43. package/dist/lib/product-docs/git.js.map +1 -0
  44. package/dist/lib/product-docs/markdown.d.ts +27 -0
  45. package/dist/lib/product-docs/markdown.js +98 -0
  46. package/dist/lib/product-docs/markdown.js.map +1 -0
  47. package/dist/lib/product-docs/ops.d.ts +133 -0
  48. package/dist/lib/product-docs/ops.js +975 -0
  49. package/dist/lib/product-docs/ops.js.map +1 -0
  50. package/dist/lib/product-docs/structure.d.ts +61 -0
  51. package/dist/lib/product-docs/structure.js +239 -0
  52. package/dist/lib/product-docs/structure.js.map +1 -0
  53. package/dist/lib/product-docs/sync.d.ts +101 -0
  54. package/dist/lib/product-docs/sync.js +313 -0
  55. package/dist/lib/product-docs/sync.js.map +1 -0
  56. package/dist/lib/product-docs/taxonomy.d.ts +46 -0
  57. package/dist/lib/product-docs/taxonomy.js +163 -0
  58. package/dist/lib/product-docs/taxonomy.js.map +1 -0
  59. package/dist/lib/product-docs/templates.d.ts +53 -0
  60. package/dist/lib/product-docs/templates.js +245 -0
  61. package/dist/lib/product-docs/templates.js.map +1 -0
  62. package/dist/lib/public-secret-scan.d.ts +76 -0
  63. package/dist/lib/public-secret-scan.js +446 -0
  64. package/dist/lib/public-secret-scan.js.map +1 -0
  65. package/package.json +1 -1
  66. package/templates/dev/Dockerfile.agent +0 -39
  67. package/templates/dev/agent-entrypoint.sh +0 -41
  68. package/templates/dev/docker-compose.dev.yml +0 -63
@@ -20,17 +20,21 @@ export declare function resolveDbConfig(engine: string): ComposeDbConfig | null;
20
20
  export interface ComposeGeneratorInput {
21
21
  productSlug: string;
22
22
  dbEngine: string;
23
- appPort?: number;
24
- coreUrl?: string;
25
- firebaseProject?: string;
26
- firebaseApiKey?: string;
27
23
  }
28
24
  /**
29
- * Gera o conteúdo do docker-compose.dev.yml baseado na config do produto.
30
- * Template em templates/dev/docker-compose.dev.yml com substituições {{VAR}}.
25
+ * URL de conexão do host (onde o app roda com `npm run dev`) para o banco do
26
+ * compose. `null` quando a engine não usa URL (Firestore usa o emulador).
31
27
  */
32
- export declare function generateComposeDev(input: ComposeGeneratorInput): string;
28
+ export declare function localDatabaseUrl(dbEngine: string): string | null;
33
29
  /**
34
- * Escreve o compose + Dockerfile.agent no diretório do projeto.
30
+ * Gera o conteúdo do `neetru-compose.dev.yml` baseado na config do produto.
31
+ *
32
+ * Só o BANCO sobe em container. O agente ficou de fora de propósito
33
+ * (2026-10-09): o serviço `agent` antigo dependia de um `Dockerfile.agent` que
34
+ * nenhum caminho do `dev up` gravava (o compose falhava no build e nem o banco
35
+ * subia), rodava o binário do agente com `node` (é executável `pkg`, não JS) e
36
+ * ligava um `NEETRU_DEV_MODE` que o agente não implementa — além de montar o
37
+ * `docker.sock` do host num binário baixado. O agente local volta quando a
38
+ * sprint dev-suite entregar o modo dev no próprio agente.
35
39
  */
36
- export declare function writeComposeDev(cwd: string, input: ComposeGeneratorInput): string;
40
+ export declare function generateComposeDev(input: ComposeGeneratorInput): string;
@@ -1,5 +1,3 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
1
  /**
4
2
  * Mapeia engine de banco → config Docker Compose.
5
3
  * Usa imagens oficiais — mesmas engines que rodam em produção na VM.
@@ -57,12 +55,35 @@ export function resolveDbConfig(engine) {
57
55
  return configs['vm-postgres-single'] ?? null; // default
58
56
  }
59
57
  /**
60
- * Gera o conteúdo do docker-compose.dev.yml baseado na config do produto.
61
- * Template em templates/dev/docker-compose.dev.yml com substituições {{VAR}}.
58
+ * URL de conexão do host (onde o app roda com `npm run dev`) para o banco do
59
+ * compose. `null` quando a engine não usa URL (Firestore usa o emulador).
60
+ */
61
+ export function localDatabaseUrl(dbEngine) {
62
+ const db = resolveDbConfig(dbEngine) ?? resolveDbConfig('vm-postgres-single');
63
+ switch (db.internalPort) {
64
+ case 5432:
65
+ return `postgresql://postgres:neetru_dev@localhost:${db.port}/app`;
66
+ case 3306:
67
+ return `mysql://root:neetru_dev@localhost:${db.port}/app`;
68
+ case 27017:
69
+ return `mongodb://localhost:${db.port}/app`;
70
+ default:
71
+ return null;
72
+ }
73
+ }
74
+ /**
75
+ * Gera o conteúdo do `neetru-compose.dev.yml` baseado na config do produto.
76
+ *
77
+ * Só o BANCO sobe em container. O agente ficou de fora de propósito
78
+ * (2026-10-09): o serviço `agent` antigo dependia de um `Dockerfile.agent` que
79
+ * nenhum caminho do `dev up` gravava (o compose falhava no build e nem o banco
80
+ * subia), rodava o binário do agente com `node` (é executável `pkg`, não JS) e
81
+ * ligava um `NEETRU_DEV_MODE` que o agente não implementa — além de montar o
82
+ * `docker.sock` do host num binário baixado. O agente local volta quando a
83
+ * sprint dev-suite entregar o modo dev no próprio agente.
62
84
  */
63
85
  export function generateComposeDev(input) {
64
86
  const db = resolveDbConfig(input.dbEngine) ?? resolveDbConfig('vm-postgres-single');
65
- const appPort = input.appPort ?? 3000;
66
87
  // Bloco `environment:` só entra quando há vars — senão vira `environment:`
67
88
  // vazio, que o docker compose rejeita ("environment must be a mapping").
68
89
  // Firestore (env: {}) caía nisso → `dev up` firestore gerava compose inválido.
@@ -76,8 +97,9 @@ export function generateComposeDev(input) {
76
97
  ` timeout: ${db.healthcheck.timeout}`,
77
98
  ` retries: ${db.healthcheck.retries}`,
78
99
  ].join('\n');
79
- return `# Neetru Dev Local — emulador de VM (${db.engine})
100
+ return `# Neetru Dev Local — banco do produto ${input.productSlug} (${db.engine})
80
101
  # Gerado por \`neetru dev up\`. Modifique o neetru.config.json e rode novamente.
102
+ # O app roda fora do container, com \`npm run dev\`.
81
103
 
82
104
  services:
83
105
  database:
@@ -90,63 +112,9 @@ ${dbEnvBlock} ports:
90
112
  healthcheck:
91
113
  ${dbHealthcheck}
92
114
  restart: unless-stopped
93
- networks:
94
- - neetru-dev-net
95
-
96
- agent:
97
- build:
98
- context: .
99
- dockerfile: Dockerfile.agent
100
- container_name: neetru-dev-agent
101
- environment:
102
- - NEETRU_SERVER_ID=dev-local-${input.productSlug}
103
- - NEETRU_CORE_URL=${input.coreUrl ?? 'https://core.neetru.com'}
104
- - NEETRU_FIREBASE_PROJECT=${input.firebaseProject ?? 'neetru'}
105
- - NEETRU_FIREBASE_API_KEY=${input.firebaseApiKey ?? ''}
106
- - NEETRU_DEV_MODE=true
107
- - NEETRU_APP_PORT=${appPort}
108
- - DATABASE_URL=${db.internalPort === 5432 ? 'postgresql://postgres:neetru_dev@database:5432/app' : db.internalPort === 3306 ? 'mysql://root:neetru_dev@database:3306/app' : db.internalPort === 27017 ? 'mongodb://database:27017/app' : ''}
109
- ports:
110
- - "${appPort}:${appPort}"
111
- volumes:
112
- - /var/run/docker.sock:/var/run/docker.sock
113
- - neetru-agent-data:/var/cache/neetru
114
- - .:/app/product:cached
115
- depends_on:
116
- database:
117
- condition: service_healthy
118
- restart: unless-stopped
119
- networks:
120
- - neetru-dev-net
121
115
 
122
116
  volumes:
123
117
  neetru-db-data:
124
- neetru-agent-data:
125
-
126
- networks:
127
- neetru-dev-net:
128
- driver: bridge
129
118
  `;
130
119
  }
131
- /**
132
- * Escreve o compose + Dockerfile.agent no diretório do projeto.
133
- */
134
- export function writeComposeDev(cwd, input) {
135
- const composePath = path.join(cwd, 'neetru-compose.dev.yml');
136
- const dockerfilePath = path.join(cwd, 'Dockerfile.agent');
137
- const entrypointPath = path.join(cwd, 'agent-entrypoint.sh');
138
- const compose = generateComposeDev(input);
139
- fs.writeFileSync(composePath, compose, 'utf8');
140
- // Copia o Dockerfile.agent do template embutido
141
- const templateDir = path.join(path.dirname(new URL(import.meta.url).pathname), '..', '..', 'templates', 'dev');
142
- // Em modo pkg/compilado, busca do __dirname ou do diretório do CLI
143
- const altTemplate = path.join(process.cwd(), 'node_modules', '@neetru', 'cli', 'templates', 'dev');
144
- const dockerfileSrc = fs.existsSync(path.join(templateDir, 'Dockerfile.agent'))
145
- ? path.join(templateDir, 'Dockerfile.agent')
146
- : path.join(altTemplate, 'Dockerfile.agent');
147
- if (fs.existsSync(dockerfileSrc)) {
148
- fs.copyFileSync(dockerfileSrc, dockerfilePath);
149
- }
150
- return composePath;
151
- }
152
120
  //# sourceMappingURL=compose-generator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose-generator.js","sourceRoot":"","sources":["../../src/lib/compose-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compose-generator.js","sourceRoot":"","sources":["../../src/lib/compose-generator.ts"],"names":[],"mappings":"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"}
@@ -89,15 +89,38 @@ export declare const neetruConfigSchema: z.ZodObject<{
89
89
  engine?: "firestore-instance" | "vm-postgres-single" | "vm-mysql-single" | "nosql-vm" | undefined;
90
90
  dbId?: string | undefined;
91
91
  }>>;
92
+ /** Protocolo de docs de produto v1 (`neetru docs init` grava; ver lib/product-docs/config.ts). */
93
+ docs: z.ZodOptional<z.ZodObject<{
94
+ protocolVersion: z.ZodOptional<z.ZodNumber>;
95
+ root: z.ZodOptional<z.ZodString>;
96
+ publish: z.ZodOptional<z.ZodBoolean>;
97
+ publishOnDeploy: z.ZodOptional<z.ZodBoolean>;
98
+ api: z.ZodOptional<z.ZodBoolean>;
99
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
100
+ protocolVersion: z.ZodOptional<z.ZodNumber>;
101
+ root: z.ZodOptional<z.ZodString>;
102
+ publish: z.ZodOptional<z.ZodBoolean>;
103
+ publishOnDeploy: z.ZodOptional<z.ZodBoolean>;
104
+ api: z.ZodOptional<z.ZodBoolean>;
105
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
106
+ protocolVersion: z.ZodOptional<z.ZodNumber>;
107
+ root: z.ZodOptional<z.ZodString>;
108
+ publish: z.ZodOptional<z.ZodBoolean>;
109
+ publishOnDeploy: z.ZodOptional<z.ZodBoolean>;
110
+ api: z.ZodOptional<z.ZodBoolean>;
111
+ }, z.ZodTypeAny, "passthrough">>>;
92
112
  }, "strip", z.ZodTypeAny, {
93
113
  name: string;
94
114
  slug: string;
95
115
  runtime: "nextjs" | "node-api";
96
116
  $schema?: string | undefined;
97
117
  tenantId?: string | undefined;
98
- deploy?: z.objectOutputType<{
99
- region: z.ZodOptional<z.ZodString>;
100
- serviceName: z.ZodOptional<z.ZodString>;
118
+ docs?: z.objectOutputType<{
119
+ protocolVersion: z.ZodOptional<z.ZodNumber>;
120
+ root: z.ZodOptional<z.ZodString>;
121
+ publish: z.ZodOptional<z.ZodBoolean>;
122
+ publishOnDeploy: z.ZodOptional<z.ZodBoolean>;
123
+ api: z.ZodOptional<z.ZodBoolean>;
101
124
  }, z.ZodTypeAny, "passthrough"> | undefined;
102
125
  publish?: {
103
126
  description: string;
@@ -108,6 +131,10 @@ export declare const neetruConfigSchema: z.ZodObject<{
108
131
  ctaHref?: string | undefined;
109
132
  ctaLabel?: string | undefined;
110
133
  } | undefined;
134
+ deploy?: z.objectOutputType<{
135
+ region: z.ZodOptional<z.ZodString>;
136
+ serviceName: z.ZodOptional<z.ZodString>;
137
+ }, z.ZodTypeAny, "passthrough"> | undefined;
111
138
  database?: {
112
139
  engine?: "firestore-instance" | "vm-postgres-single" | "vm-mysql-single" | "nosql-vm" | undefined;
113
140
  dbId?: string | undefined;
@@ -118,9 +145,12 @@ export declare const neetruConfigSchema: z.ZodObject<{
118
145
  runtime: "nextjs" | "node-api";
119
146
  $schema?: string | undefined;
120
147
  tenantId?: string | undefined;
121
- deploy?: z.objectInputType<{
122
- region: z.ZodOptional<z.ZodString>;
123
- serviceName: z.ZodOptional<z.ZodString>;
148
+ docs?: z.objectInputType<{
149
+ protocolVersion: z.ZodOptional<z.ZodNumber>;
150
+ root: z.ZodOptional<z.ZodString>;
151
+ publish: z.ZodOptional<z.ZodBoolean>;
152
+ publishOnDeploy: z.ZodOptional<z.ZodBoolean>;
153
+ api: z.ZodOptional<z.ZodBoolean>;
124
154
  }, z.ZodTypeAny, "passthrough"> | undefined;
125
155
  publish?: {
126
156
  description: string;
@@ -131,6 +161,10 @@ export declare const neetruConfigSchema: z.ZodObject<{
131
161
  ctaHref?: string | undefined;
132
162
  ctaLabel?: string | undefined;
133
163
  } | undefined;
164
+ deploy?: z.objectInputType<{
165
+ region: z.ZodOptional<z.ZodString>;
166
+ serviceName: z.ZodOptional<z.ZodString>;
167
+ }, z.ZodTypeAny, "passthrough"> | undefined;
134
168
  database?: {
135
169
  engine?: "firestore-instance" | "vm-postgres-single" | "vm-mysql-single" | "nosql-vm" | undefined;
136
170
  dbId?: string | undefined;
@@ -42,6 +42,17 @@ export const neetruConfigSchema = z.object({
42
42
  engine: z.enum(['vm-postgres-single', 'vm-mysql-single', 'nosql-vm', 'firestore-instance']).optional(),
43
43
  dbId: z.string().optional(),
44
44
  }).optional(),
45
+ /** Protocolo de docs de produto v1 (`neetru docs init` grava; ver lib/product-docs/config.ts). */
46
+ docs: z
47
+ .object({
48
+ protocolVersion: z.number().int().positive().optional(),
49
+ root: z.string().optional(),
50
+ publish: z.boolean().optional(),
51
+ publishOnDeploy: z.boolean().optional(),
52
+ api: z.boolean().optional(),
53
+ })
54
+ .passthrough()
55
+ .optional(),
45
56
  });
46
57
  export const catalogUpsertPayloadSchema = z.object({
47
58
  slug: slugSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/lib/config-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../src/lib/config-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { type DocsTaxonomy } from './taxonomy.js';
2
+ import { type ProductRepo } from './config.js';
3
+ export type Level = 'erro' | 'aviso' | 'sugestao';
4
+ export interface Finding {
5
+ /** Caminho relativo à raiz do repositório, com `/`. */
6
+ file: string;
7
+ line?: number;
8
+ code: string;
9
+ level: Level;
10
+ message: string;
11
+ }
12
+ export interface FileContext {
13
+ taxonomy: DocsTaxonomy;
14
+ slug: string;
15
+ /** Caminho relativo à raiz do repo da pasta de docs (ex.: `docs`). */
16
+ docsRoot: string;
17
+ /** Existe este caminho (relativo à raiz do repo)? */
18
+ exists: (repoRel: string) => boolean;
19
+ legacyNames: Set<string>;
20
+ /** AAAA-MM-DD de hoje (injetável em teste). */
21
+ today: string;
22
+ /** O arquivo foi alterado na branch (LK001 vira erro). */
23
+ changed: boolean;
24
+ }
25
+ /** Valida UM doc. `relInDocs` é relativo à pasta de docs, com `/`. Função pura. */
26
+ export declare function checkDocFile(relInDocs: string, raw: string, ctx: FileContext): Finding[];
27
+ export interface CheckOptions {
28
+ /** Só os arquivos alterados contra a branch principal (catraca). */
29
+ changed?: boolean;
30
+ /** Aviso vira erro. */
31
+ strict?: boolean;
32
+ taxonomy: DocsTaxonomy;
33
+ today?: string;
34
+ }
35
+ export interface CheckResult {
36
+ ok: boolean;
37
+ findings: Finding[];
38
+ counts: {
39
+ erro: number;
40
+ aviso: number;
41
+ sugestao: number;
42
+ };
43
+ filesChecked: number;
44
+ docsRoot: string;
45
+ changedBase?: string;
46
+ /** --changed pedido mas o git não respondeu: checou tudo. */
47
+ changedFallback?: boolean;
48
+ }
49
+ /** Lista os `.md` da pasta de docs (relativos a ela, com `/`). */
50
+ export declare function listDocFiles(repo: ProductRepo): Promise<string[]>;
51
+ /** Lê `docs/_nomes-legados.json` (array ou `{ arquivos: [...] }`). */
52
+ export declare function readLegacyNames(repo: ProductRepo): Set<string>;
53
+ /** Hoje no fuso dos docs (America/Sao_Paulo ou NEETRU_TZ) — nunca UTC. */
54
+ export { todayIso } from './dates.js';
55
+ /** Checagens do repositório inteiro: mínimo do primeiro dia (PR002), README, CHANGELOG (PR004). */
56
+ export declare function checkRepoLevel(repo: ProductRepo): Finding[];
57
+ export declare function summarize(findings: Finding[], strict: boolean): {
58
+ ok: boolean;
59
+ counts: CheckResult['counts'];
60
+ };
61
+ /** Roda o validador no repositório do produto. Nunca lança por conteúdo de doc. */
62
+ export declare function checkProductDocs(repo: ProductRepo, opts: CheckOptions): Promise<CheckResult>;