@pasosdejesus/m 0.27.1 → 0.27.2

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/dist/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to `@pasosdejesus/m` are documented in this file.
4
4
 
5
+ ## [0.27.2] - 2026-10-10
6
+
7
+ ### Fixed
8
+
9
+ - **`m:create`**: el proyecto generado ahora incluye `apps/.env.example` (antes el filtro de
10
+ `getAllFiles` descartaba todo `.env*`, aunque el README indica `cp apps/.env.example apps/.env`) y
11
+ el template declara `@types/pg` (faltaba, con `pg` presente). Reportados al escribir los tutoriales
12
+ del modelo base (`m/REQ/46` finding 6).
13
+ - **`m:update`**: ahora ve los archivos ocultos de la plantilla (`glob` con `dot: true`) y **renderiza
14
+ los `.hbs`** (con el `name`/`description` del proyecto y la versión actual de `m`) antes de
15
+ comparar/mergear. Así ofrece/instala `apps/.env.example` y `.config/*` en proyectos existentes, un
16
+ proyecto recién creado ya no reporta diferencias falsas, y no se copian placeholders
17
+ `{{name}}`/`{{m_version}}` sin resolver. Se excluyen los env reales (`.env`, `.env.test`) y el
18
+ lockfile (`isTemplateFile`). Con pruebas de regresión para `m:create` y `m:update`.
19
+
5
20
  ## [0.27.1] - 2026-10-09
6
21
 
7
22
  ### Fixed
@@ -1,8 +1,13 @@
1
+ /**
2
+ * Fills the template placeholders. Shared with `m:update`, which renders the
3
+ * `.hbs` sources before comparing/merging them into an existing project.
4
+ */
5
+ export declare function render(content: string, name: string, description: string): string;
1
6
  /**
2
7
  * Scaffold a Web3 engine package (REQ/35 §3) under packages/<name>/.
3
8
  * Generates engine.json, package.json, tsconfig, a kysely config for DB
4
9
  * migrations, and the src/ skeleton (server, components, lib).
5
10
  */
6
11
  export declare function runCreateEngine(name: string): Promise<void>;
7
- export declare function runCreateProject(name: string, description?: string): Promise<void>;
12
+ export declare function runCreateProject(name: string, description?: string, baseDir?: string): Promise<void>;
8
13
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/tasks/create.ts"],"names":[],"mappings":"AAgEA;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,iBA8HjD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,iBAuCxE"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/tasks/create.ts"],"names":[],"mappings":"AAqCA;;;GAGG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAMjF;AAqBD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,iBA8HjD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,iBAuC1F"}
@@ -33,7 +33,11 @@ function getTemplateDir() {
33
33
  return srcTemplates;
34
34
  return path.join(__dirname, 'templates');
35
35
  }
36
- function render(content, name, description) {
36
+ /**
37
+ * Fills the template placeholders. Shared with `m:update`, which renders the
38
+ * `.hbs` sources before comparing/merging them into an existing project.
39
+ */
40
+ export function render(content, name, description) {
37
41
  const pkg = JSON.parse(fs.readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
38
42
  return content
39
43
  .replace(/\{\{name\}\}/g, name)
@@ -45,7 +49,7 @@ function getAllFiles(dir) {
45
49
  const entries = fs.readdirSync(dir, { withFileTypes: true });
46
50
  for (const entry of entries) {
47
51
  const fullPath = path.join(dir, entry.name);
48
- if (entry.name === 'pnpm-lock.yaml' || entry.name.startsWith('.env'))
52
+ if (entry.name === 'pnpm-lock.yaml' || (entry.name.startsWith('.env') && !entry.name.startsWith('.env.example')))
49
53
  continue;
50
54
  if (entry.isDirectory()) {
51
55
  files.push(...getAllFiles(fullPath));
@@ -187,10 +191,10 @@ export function createApp(deps: EngineDeps) {
187
191
  }
188
192
  success(t('create.done'));
189
193
  }
190
- export async function runCreateProject(name, description) {
194
+ export async function runCreateProject(name, description, baseDir) {
191
195
  const desc = description || '';
192
196
  const templateDir = getTemplateDir();
193
- const cwd = process.cwd();
197
+ const cwd = baseDir ?? process.cwd();
194
198
  const destDir = path.resolve(cwd, name);
195
199
  if (fs.existsSync(destDir)) {
196
200
  problem(t('create.error', `Directory ${name} already exists`));
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/tasks/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/tasks/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=create.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.test.d.ts","sourceRoot":"","sources":["../../src/tasks/create.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { describe, it, expect, beforeAll, afterAll } from 'vitest';
2
+ import * as fs from 'node:fs';
3
+ import * as os from 'node:os';
4
+ import * as path from 'node:path';
5
+ import { runCreateProject } from './create.js';
6
+ describe('m:create', () => {
7
+ let workdir;
8
+ let projectDir;
9
+ beforeAll(async () => {
10
+ workdir = fs.mkdtempSync(path.join(os.tmpdir(), 'm-create-'));
11
+ await runCreateProject('demo-app', 'Demo project', workdir);
12
+ projectDir = path.join(workdir, 'demo-app');
13
+ });
14
+ afterAll(() => {
15
+ fs.rmSync(workdir, { recursive: true, force: true });
16
+ });
17
+ it('generates apps/.env.example from the .hbs source with {{name}} rendered', () => {
18
+ const envExample = path.join(projectDir, 'apps', '.env.example');
19
+ expect(fs.existsSync(envExample)).toBe(true);
20
+ const content = fs.readFileSync(envExample, 'utf-8');
21
+ expect(content).toContain('PGUSER=demo-app');
22
+ expect(content).toContain('PGDATABASE=demo-app_dev');
23
+ expect(content).not.toContain('{{name}}');
24
+ });
25
+ it('does not copy real .env files', () => {
26
+ const appsDir = path.join(projectDir, 'apps');
27
+ const envFiles = fs
28
+ .readdirSync(appsDir)
29
+ .filter((name) => name.startsWith('.env'));
30
+ expect(envFiles).toEqual(['.env.example']);
31
+ });
32
+ it('renders package.json with the current m version and @types/pg', () => {
33
+ const pkgPath = path.join(projectDir, 'apps', 'nextjs', 'package.json');
34
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
35
+ const mPkg = JSON.parse(fs.readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
36
+ expect(pkg.name).toBe('demo-app');
37
+ expect(pkg.dependencies['@pasosdejesus/m']).toBe(`^${mPkg.version}`);
38
+ expect(pkg.devDependencies['@types/pg']).toBeDefined();
39
+ });
40
+ });
41
+ //# sourceMappingURL=create.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.test.js","sourceRoot":"","sources":["../../src/tasks/create.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,19 @@
1
+ export declare function getTemplateDir(): string;
2
+ export declare function getAllFiles(dirPath: string): string[];
3
+ /**
4
+ * A file that should be compared/copied. Skips the real env files and the
5
+ * lockfile, but keeps `.env.example` (and its `.hbs` source): the project
6
+ * README tells the operator to `cp apps/.env.example apps/.env`.
7
+ */
8
+ export declare function isTemplateFile(relPath: string): boolean;
9
+ /**
10
+ * The values `m:create` used as `{{name}}`/`{{description}}`, read back from the
11
+ * project so `m:update` can render the `.hbs` templates before comparing them.
12
+ */
13
+ export declare function readProjectIdentity(projectRoot: string): {
14
+ name: string;
15
+ description: string;
16
+ };
1
17
  export declare function runUpdate(options?: {
2
18
  check?: boolean;
3
19
  yes?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/tasks/update.ts"],"names":[],"mappings":"AA2GA,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBAsG3E"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/tasks/update.ts"],"names":[],"mappings":"AA0CA,wBAAgB,cAAc,IAAI,MAAM,CAYvC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAErD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAKvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAiB9F;AAmDD,wBAAsB,SAAS,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBAiH3E"}
@@ -1,10 +1,12 @@
1
1
  import * as fs from 'fs';
2
+ import * as os from 'os';
2
3
  import * as path from 'path';
3
4
  import * as readline from 'readline';
4
5
  import { spawnSync } from 'child_process';
5
6
  import { fileURLToPath } from 'url';
6
7
  import { dirname } from 'path';
7
8
  import { globSync } from 'glob';
9
+ import { render } from './create.js';
8
10
  import { success, info, warn } from '../util/colors.js';
9
11
  import { createTranslator } from '../i18n/createTranslator.js';
10
12
  import { detectLocale } from '../util/locale.js';
@@ -33,7 +35,7 @@ const updateT = createTranslator(detectLocale(), {
33
35
  }, commonCli);
34
36
  const __filename = fileURLToPath(import.meta.url);
35
37
  const __dirname = dirname(__filename);
36
- function getTemplateDir() {
38
+ export function getTemplateDir() {
37
39
  // __dirname is dist/tasks/ in the npm package
38
40
  // dist/templates/ is where build copies templates
39
41
  const distTemplates = path.join(__dirname, '..', 'templates');
@@ -46,8 +48,45 @@ function getTemplateDir() {
46
48
  // Last resort: templates/ next to tasks/
47
49
  return path.join(__dirname, 'templates');
48
50
  }
49
- function getAllFiles(dirPath) {
50
- return globSync('**/*', { cwd: dirPath, nodir: true });
51
+ export function getAllFiles(dirPath) {
52
+ return globSync('**/*', { cwd: dirPath, nodir: true, dot: true });
53
+ }
54
+ /**
55
+ * A file that should be compared/copied. Skips the real env files and the
56
+ * lockfile, but keeps `.env.example` (and its `.hbs` source): the project
57
+ * README tells the operator to `cp apps/.env.example apps/.env`.
58
+ */
59
+ export function isTemplateFile(relPath) {
60
+ const name = path.basename(relPath);
61
+ if (name === 'pnpm-lock.yaml')
62
+ return false;
63
+ if (name.startsWith('.env') && !name.startsWith('.env.example'))
64
+ return false;
65
+ return true;
66
+ }
67
+ /**
68
+ * The values `m:create` used as `{{name}}`/`{{description}}`, read back from the
69
+ * project so `m:update` can render the `.hbs` templates before comparing them.
70
+ */
71
+ export function readProjectIdentity(projectRoot) {
72
+ const candidates = [
73
+ path.join(projectRoot, 'apps', 'nextjs', 'package.json'),
74
+ path.join(projectRoot, 'package.json'),
75
+ ];
76
+ for (const candidate of candidates) {
77
+ if (!fs.existsSync(candidate))
78
+ continue;
79
+ try {
80
+ const pkg = JSON.parse(fs.readFileSync(candidate, 'utf-8'));
81
+ if (typeof pkg.name === 'string' && pkg.name) {
82
+ return { name: pkg.name, description: typeof pkg.description === 'string' ? pkg.description : '' };
83
+ }
84
+ }
85
+ catch {
86
+ // Not a readable package.json; try the next candidate.
87
+ }
88
+ }
89
+ return { name: path.basename(projectRoot), description: '' };
51
90
  }
52
91
  async function showDiff(file1, file2) {
53
92
  const hasDiff = spawnSync('which', ['diff'], { stdio: 'ignore' }).status === 0;
@@ -105,23 +144,33 @@ export async function runUpdate(options) {
105
144
  output: process.stdout
106
145
  });
107
146
  const question = (query) => new Promise((resolve) => rl.question(query, resolve));
147
+ let renderDir;
108
148
  try {
109
149
  const startDir = process.cwd();
110
150
  const projectRoot = findProjectRoot(startDir);
111
151
  const templateDir = getTemplateDir();
152
+ const { name: projectName, description: projectDescription } = readProjectIdentity(projectRoot);
112
153
  info(`Project root identified at: ${projectRoot}`);
113
154
  info(t('update.comparing'));
114
- // Filter out .env files and other non-template assets
115
- const templateFiles = getAllFiles(templateDir).filter(f => {
116
- const name = path.basename(f);
117
- return f !== 'pnpm-lock.yaml' &&
118
- !name.startsWith('.env');
119
- });
155
+ // Keep `.env.example` (a template) but not real env files or the lockfile.
156
+ const templateFiles = getAllFiles(templateDir).filter(isTemplateFile);
120
157
  for (const relPath of templateFiles) {
121
158
  // Determine project path (remove .hbs from relPath if present)
122
159
  const projectRelPath = relPath.endsWith('.hbs') ? relPath.slice(0, -4) : relPath;
123
160
  const projectPath = path.join(projectRoot, projectRelPath);
124
- const templatePath = path.join(templateDir, relPath);
161
+ let templatePath = path.join(templateDir, relPath);
162
+ // Render `.hbs` sources before comparing/merging: comparing the raw
163
+ // template (with `{{name}}`, `{{m_version}}`, …) reports every file as a
164
+ // difference and would copy the placeholders into the project.
165
+ if (relPath.endsWith('.hbs')) {
166
+ if (!renderDir)
167
+ renderDir = fs.mkdtempSync(path.join(os.tmpdir(), 'm-update-'));
168
+ const rendered = render(fs.readFileSync(templatePath, 'utf-8'), projectName, projectDescription);
169
+ const renderedPath = path.join(renderDir, projectRelPath);
170
+ fs.mkdirSync(path.dirname(renderedPath), { recursive: true });
171
+ fs.writeFileSync(renderedPath, rendered, 'utf-8');
172
+ templatePath = renderedPath;
173
+ }
125
174
  if (!fs.existsSync(projectPath)) {
126
175
  if (checkMode) {
127
176
  info(t('update.file_new', projectRelPath));
@@ -196,6 +245,8 @@ export async function runUpdate(options) {
196
245
  }
197
246
  finally {
198
247
  rl.close();
248
+ if (renderDir)
249
+ fs.rmSync(renderDir, { recursive: true, force: true });
199
250
  }
200
251
  }
201
252
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/tasks/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/tasks/update.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=update.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.test.d.ts","sourceRoot":"","sources":["../../src/tasks/update.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ import { describe, it, expect, afterEach } from 'vitest';
2
+ import * as fs from 'node:fs';
3
+ import * as os from 'node:os';
4
+ import * as path from 'node:path';
5
+ import { getAllFiles, getTemplateDir, isTemplateFile, readProjectIdentity, runUpdate, } from './update.js';
6
+ import { runCreateProject } from './create.js';
7
+ function templateFiles() {
8
+ return getAllFiles(getTemplateDir())
9
+ .map((file) => file.replace(/\\/g, '/'))
10
+ .filter(isTemplateFile);
11
+ }
12
+ describe('m:update template discovery', () => {
13
+ it('sees dotfiles inside the template (with dot: true)', () => {
14
+ const all = getAllFiles(getTemplateDir()).map((file) => file.replace(/\\/g, '/'));
15
+ expect(all).toContain('apps/.env.example.hbs');
16
+ expect(all.some((file) => file.endsWith('apps/nextjs/.config/kysely.config.ts'))).toBe(true);
17
+ });
18
+ it('includes .env.example but skips real env files and the lockfile', () => {
19
+ const files = templateFiles();
20
+ expect(files).toContain('apps/.env.example.hbs');
21
+ expect(files.every((file) => !file.endsWith('pnpm-lock.yaml'))).toBe(true);
22
+ expect(files.every((file) => {
23
+ const name = file.split('/').pop();
24
+ return !name.startsWith('.env') || name.startsWith('.env.example');
25
+ })).toBe(true);
26
+ });
27
+ it('isTemplateFile keeps env examples and drops real env files', () => {
28
+ expect(isTemplateFile('apps/.env.example.hbs')).toBe(true);
29
+ expect(isTemplateFile('apps/.env.example')).toBe(true);
30
+ expect(isTemplateFile('apps/.env')).toBe(false);
31
+ expect(isTemplateFile('apps/.env.test')).toBe(false);
32
+ expect(isTemplateFile('apps/nextjs/pnpm-lock.yaml')).toBe(false);
33
+ expect(isTemplateFile('apps/nextjs/package.json.hbs')).toBe(true);
34
+ });
35
+ });
36
+ describe('readProjectIdentity', () => {
37
+ it('reads name/description from apps/nextjs/package.json', () => {
38
+ const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'm-ident-'));
39
+ const dir = path.join(tmp, 'apps', 'nextjs');
40
+ fs.mkdirSync(dir, { recursive: true });
41
+ fs.writeFileSync(path.join(dir, 'package.json'), JSON.stringify({ name: 'ident-app', description: 'Ident app' }));
42
+ expect(readProjectIdentity(tmp)).toEqual({ name: 'ident-app', description: 'Ident app' });
43
+ fs.rmSync(tmp, { recursive: true, force: true });
44
+ });
45
+ it('falls back to the directory name when there is no package.json', () => {
46
+ const tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'm-ident-'));
47
+ const project = path.join(tmp, 'sin-paquete');
48
+ fs.mkdirSync(project, { recursive: true });
49
+ expect(readProjectIdentity(project)).toEqual({ name: 'sin-paquete', description: '' });
50
+ fs.rmSync(tmp, { recursive: true, force: true });
51
+ });
52
+ });
53
+ describe('m:update over a freshly created project', () => {
54
+ const originalCwd = process.cwd();
55
+ let tmp;
56
+ afterEach(() => {
57
+ process.chdir(originalCwd);
58
+ if (tmp)
59
+ fs.rmSync(tmp, { recursive: true, force: true });
60
+ tmp = undefined;
61
+ });
62
+ it('renders .hbs before comparing, so a just-created project has no drift', async () => {
63
+ tmp = fs.mkdtempSync(path.join(os.tmpdir(), 'm-update-'));
64
+ await runCreateProject('demo-app', 'Demo project', tmp);
65
+ const projectDir = path.join(tmp, 'demo-app');
66
+ const readBefore = new Map();
67
+ for (const rel of ['README.md', 'AGENTS.md', 'apps/nextjs/package.json']) {
68
+ readBefore.set(rel, fs.readFileSync(path.join(projectDir, rel), 'utf-8'));
69
+ }
70
+ process.chdir(projectDir);
71
+ await runUpdate({ yes: true });
72
+ for (const [rel, before] of readBefore) {
73
+ expect(fs.readFileSync(path.join(projectDir, rel), 'utf-8')).toBe(before);
74
+ }
75
+ // The generated README already carries the placeholders resolved.
76
+ expect(readBefore.get('README.md')).not.toContain('{{name}}');
77
+ });
78
+ });
79
+ //# sourceMappingURL=update.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.test.js","sourceRoot":"","sources":["../../src/tasks/update.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAA;AAC7B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AACjC,OAAO,EACL,WAAW,EACX,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,SAAS,GACV,MAAM,aAAa,CAAA;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C,SAAS,aAAa;IACpB,OAAO,WAAW,CAAC,cAAc,EAAE,CAAC;SACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;SACvC,MAAM,CAAC,cAAc,CAAC,CAAA;AAC3B,CAAC;AAED,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,GAAG,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;QACjF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;QAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9F,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,MAAM,KAAK,GAAG,aAAa,EAAE,CAAA;QAC7B,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAA;QAChD,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1E,MAAM,CACJ,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,CAAA;YAC5C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;QACpE,CAAC,CAAC,CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACtD,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpD,MAAM,CAAC,cAAc,CAAC,4BAA4B,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChE,MAAM,CAAC,cAAc,CAAC,8BAA8B,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC5C,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QACtC,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAChE,CAAA;QACD,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAA;QACzF,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACxE,MAAM,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC,CAAA;QAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAA;QAC7C,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC1C,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAA;QACtF,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;IACjC,IAAI,GAAuB,CAAA;IAE3B,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QAC1B,IAAI,GAAG;YAAE,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACzD,GAAG,GAAG,SAAS,CAAA;IACjB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACrF,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC,CAAA;QACzD,MAAM,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,CAAC,CAAA;QACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;QAE7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAA;QAC5C,KAAK,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,0BAA0B,CAAC,EAAE,CAAC;YACzE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;QAC3E,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QACzB,MAAM,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAA;QAE9B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YACvC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3E,CAAC;QACD,kEAAkE;QAClE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -27,6 +27,7 @@
27
27
  "devDependencies": {
28
28
  "@testing-library/react": "16.3.2",
29
29
  "@types/node": "20.19.30",
30
+ "@types/pg": "^8.23.1",
30
31
  "@types/react": "^19.2.15",
31
32
  "@types/react-dom": "^19.2.3",
32
33
  "autoprefixer": "^10.5.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pasosdejesus/m",
3
- "version": "0.27.1",
3
+ "version": "0.27.2",
4
4
  "description": "Motor para crear y gestionar proyectos al estilo Pasos de Jesus.",
5
5
  "author": "",
6
6
  "license": "ISC",