@pasosdejesus/m 0.21.1 → 0.22.1

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 (130) hide show
  1. package/dist/base-model/baseline.generated.d.ts +60 -0
  2. package/dist/base-model/baseline.generated.d.ts.map +1 -0
  3. package/dist/base-model/baseline.generated.js +1110 -0
  4. package/dist/base-model/baseline.generated.js.map +1 -0
  5. package/dist/base-model/check.d.ts +6 -0
  6. package/dist/base-model/check.d.ts.map +1 -0
  7. package/dist/base-model/check.js +195 -0
  8. package/dist/base-model/check.js.map +1 -0
  9. package/dist/base-model/generate.d.ts +37 -0
  10. package/dist/base-model/generate.d.ts.map +1 -0
  11. package/dist/base-model/generate.js +184 -0
  12. package/dist/base-model/generate.js.map +1 -0
  13. package/dist/base-model/guidelines.d.ts +13 -0
  14. package/dist/base-model/guidelines.d.ts.map +1 -0
  15. package/dist/base-model/guidelines.js +61 -0
  16. package/dist/base-model/guidelines.js.map +1 -0
  17. package/dist/base-model/index.d.ts +19 -0
  18. package/dist/base-model/index.d.ts.map +1 -0
  19. package/dist/base-model/index.js +22 -0
  20. package/dist/base-model/index.js.map +1 -0
  21. package/dist/base-model/parse-structure.d.ts +4 -0
  22. package/dist/base-model/parse-structure.d.ts.map +1 -0
  23. package/dist/base-model/parse-structure.js +170 -0
  24. package/dist/base-model/parse-structure.js.map +1 -0
  25. package/dist/base-model/queries.d.ts +41 -0
  26. package/dist/base-model/queries.d.ts.map +1 -0
  27. package/dist/base-model/queries.js +157 -0
  28. package/dist/base-model/queries.js.map +1 -0
  29. package/dist/base-model/references/learn-tg.d.ts +16 -0
  30. package/dist/base-model/references/learn-tg.d.ts.map +1 -0
  31. package/dist/base-model/references/learn-tg.js +60 -0
  32. package/dist/base-model/references/learn-tg.js.map +1 -0
  33. package/dist/base-model/types.d.ts +183 -0
  34. package/dist/base-model/types.d.ts.map +1 -0
  35. package/dist/base-model/types.js +10 -0
  36. package/dist/base-model/types.js.map +1 -0
  37. package/dist/base-model/version.d.ts +12 -0
  38. package/dist/base-model/version.d.ts.map +1 -0
  39. package/dist/base-model/version.js +20 -0
  40. package/dist/base-model/version.js.map +1 -0
  41. package/dist/debug/DebugConsole.js +6 -6
  42. package/dist/debug/DebugConsole.js.map +1 -1
  43. package/dist/debug/Logger.js +2 -2
  44. package/dist/debug/Logger.js.map +1 -1
  45. package/dist/e2e/assertions.js +3 -3
  46. package/dist/e2e/assertions.js.map +1 -1
  47. package/dist/e2e/env.js +3 -3
  48. package/dist/e2e/env.js.map +1 -1
  49. package/dist/i18n/common-cli.js +2 -2
  50. package/dist/i18n/common-cli.js.map +1 -1
  51. package/dist/m.js +37 -5
  52. package/dist/m.js.map +1 -1
  53. package/dist/tasks/base-model.d.ts +3 -0
  54. package/dist/tasks/base-model.d.ts.map +1 -0
  55. package/dist/tasks/base-model.js +177 -0
  56. package/dist/tasks/base-model.js.map +1 -0
  57. package/dist/tasks/context-git.d.ts +27 -0
  58. package/dist/tasks/context-git.d.ts.map +1 -0
  59. package/dist/tasks/context-git.js +96 -0
  60. package/dist/tasks/context-git.js.map +1 -0
  61. package/dist/tasks/context-ignore.d.ts +18 -0
  62. package/dist/tasks/context-ignore.d.ts.map +1 -0
  63. package/dist/tasks/context-ignore.js +63 -0
  64. package/dist/tasks/context-ignore.js.map +1 -0
  65. package/dist/tasks/context-profiles.d.ts +42 -0
  66. package/dist/tasks/context-profiles.d.ts.map +1 -0
  67. package/dist/tasks/context-profiles.js +295 -0
  68. package/dist/tasks/context-profiles.js.map +1 -0
  69. package/dist/tasks/context-render.d.ts +37 -0
  70. package/dist/tasks/context-render.d.ts.map +1 -0
  71. package/dist/tasks/context-render.js +162 -0
  72. package/dist/tasks/context-render.js.map +1 -0
  73. package/dist/tasks/context-reqs.d.ts +20 -0
  74. package/dist/tasks/context-reqs.d.ts.map +1 -0
  75. package/dist/tasks/context-reqs.js +75 -0
  76. package/dist/tasks/context-reqs.js.map +1 -0
  77. package/dist/tasks/context-workspaces.d.ts +22 -0
  78. package/dist/tasks/context-workspaces.d.ts.map +1 -0
  79. package/dist/tasks/context-workspaces.js +116 -0
  80. package/dist/tasks/context-workspaces.js.map +1 -0
  81. package/dist/tasks/context.d.ts +39 -3
  82. package/dist/tasks/context.d.ts.map +1 -1
  83. package/dist/tasks/context.js +254 -262
  84. package/dist/tasks/context.js.map +1 -1
  85. package/dist/tasks/db.js +5 -5
  86. package/dist/tasks/db.js.map +1 -1
  87. package/dist/tasks/edit.js +44 -44
  88. package/dist/tasks/edit.js.map +1 -1
  89. package/dist/tasks/engine.js +2 -2
  90. package/dist/tasks/engine.js.map +1 -1
  91. package/dist/tasks/env-diff.js +2 -2
  92. package/dist/tasks/env-diff.js.map +1 -1
  93. package/dist/tasks/glob.js +6 -6
  94. package/dist/tasks/glob.js.map +1 -1
  95. package/dist/tasks/grep.js +9 -9
  96. package/dist/tasks/grep.js.map +1 -1
  97. package/dist/tasks/readfile.js +17 -17
  98. package/dist/tasks/readfile.js.map +1 -1
  99. package/dist/tasks/req.js +17 -17
  100. package/dist/tasks/req.js.map +1 -1
  101. package/dist/tasks/wallet.js +15 -15
  102. package/dist/tasks/wallet.js.map +1 -1
  103. package/dist/tasks/writefile.js +8 -8
  104. package/dist/tasks/writefile.js.map +1 -1
  105. package/dist/templates/AGENTS.md.hbs +2 -2
  106. package/dist/templates/ARCHITECTURE.md.hbs +2 -2
  107. package/dist/templates/CONTRIBUTING.md.hbs +2 -2
  108. package/dist/templates/apps/.env.example.hbs +1 -1
  109. package/dist/templates/apps/hardhat/package.json +1 -1
  110. package/dist/templates/apps/hardhat/scripts/verifyDeployment.ts +10 -10
  111. package/dist/templates/apps/hardhat/sync-abis.mjs +3 -3
  112. package/dist/templates/apps/nextjs/app/page.tsx.hbs +2 -2
  113. package/dist/util/cli-parser.d.ts +3 -3
  114. package/dist/util/cli-parser.d.ts.map +1 -1
  115. package/dist/util/cli-parser.js +8 -1
  116. package/dist/util/cli-parser.js.map +1 -1
  117. package/dist/util/fs-walk.d.ts +11 -0
  118. package/dist/util/fs-walk.d.ts.map +1 -0
  119. package/dist/util/fs-walk.js +39 -0
  120. package/dist/util/fs-walk.js.map +1 -0
  121. package/dist/util/glob-match.d.ts +8 -0
  122. package/dist/util/glob-match.d.ts.map +1 -0
  123. package/dist/util/glob-match.js +79 -0
  124. package/dist/util/glob-match.js.map +1 -0
  125. package/package.json +2 -2
  126. package/src/blockchain/README.md +1 -1
  127. package/src/debug/README.md +1 -1
  128. package/src/e2e/README.md +2 -2
  129. package/src/tasks/README.md +16 -10
  130. package/src/test-utils/README.md +16 -16
package/src/e2e/README.md CHANGED
@@ -48,8 +48,8 @@ Or via CLI:
48
48
 
49
49
  ### Assertions
50
50
  ```ts
51
- ok(msg: string) // ✅ success
52
- fail(msg: string) // ❌ failure (increments counter)
51
+ ok(msg: string) // [OK] success
52
+ fail(msg: string) // [FAIL] failure (increments counter)
53
53
  resetFailures() // Reset counter
54
54
  summary(t0: number): number // Print summary, return failure count
55
55
  ```
@@ -12,7 +12,13 @@ Each file in this directory exports a `runXxx()` function registered in `../m.ts
12
12
 
13
13
  | File | Commands | Purpose |
14
14
  |------|----------|---------|
15
- | `context.ts` | `ai:context` | Generates project context snapshot for AI chat (DeepSeek-compatible) |
15
+ | `context.ts` | `ai:context` | Orchestrates the project context document (schema 1): detection, profiles, filters, budget and output |
16
+ | `context-workspaces.ts` | *(internal)* | Detects project types and workspace roots (`rails`, `nextjs`, `hardhat`, `monorepo`, `node`) |
17
+ | `context-profiles.ts` | *(internal)* | Built-in task profiles plus JSON config loading, merging and validation |
18
+ | `context-ignore.ts` | *(internal)* | Default exclusions, absolute secrets deny list and filter precedence |
19
+ | `context-git.ts` | *(internal)* | Git queries (tracked, untracked, ignored, branch, log, status) and file collection |
20
+ | `context-reqs.ts` | *(internal)* | Parses `REQ/*.md` and keeps only open requirements |
21
+ | `context-render.ts` | *(internal)* | Structure and document rendering with a hard size budget |
16
22
  | `create.ts` | `m:create` | Scaffolds new projects from `templates/` via direct recursive copy (replaced Plop.js) |
17
23
  | `db.ts` | `db:create`, `db:drop`, `db:super:createuser`, `db:structure:dump`, `db:structure:load`, `db:migrate`, `db:rollback`, `db:mig:make`, `db:seed`, `db:check`, `db:console`, `db:test`, `db:dump`, `db:restore` | PostgreSQL database lifecycle, migration management, schema verification, and backup/restore |
18
24
  | `e2e.ts` | `test:e2e` | E2E tests (Puppeteer specs, axios smoke) |
@@ -58,15 +64,15 @@ All commands follow the same pattern:
58
64
 
59
65
  | Prefijo | Significado | ¿Tiene `setup`? | Ejemplos |
60
66
  |---------|------------|:---:|----------|
61
- | `eng:` | Engine — crea tablas vía migraciones | ✅ | `eng:credentials:setup`, `eng:wba:setup` |
62
- | `contract:` | Herramienta de desarrollo | ❌ | `contract:test` |
63
- | `db:` | Base de datos | ❌ | `db:migrate`, `db:create` |
64
- | `wallet:` | Billetera | ❌ | `wallet:generate`, `wallet:send` |
65
- | `ai:` | Herramientas para agentes | ❌ | `ai:context`, `ai:grep` |
66
- | `m:` | Scaffolding | ❌ | `m:create`, `m:update` |
67
- | `req:` | Requerimientos | ❌ | `req:list`, `req:sync` |
68
- | `env:` | Entorno | ❌ | `env:diff` |
69
- | `test:` | Tests E2E | ❌ | `test:e2e` |
67
+ | `eng:` | Engine — crea tablas vía migraciones | [OK] | `eng:credentials:setup`, `eng:wba:setup` |
68
+ | `contract:` | Herramienta de desarrollo | [FAIL] | `contract:test` |
69
+ | `db:` | Base de datos | [FAIL] | `db:migrate`, `db:create` |
70
+ | `wallet:` | Billetera | [FAIL] | `wallet:generate`, `wallet:send` |
71
+ | `ai:` | Herramientas para agentes | [FAIL] | `ai:context`, `ai:grep` |
72
+ | `m:` | Scaffolding | [FAIL] | `m:create`, `m:update` |
73
+ | `req:` | Requerimientos | [FAIL] | `req:list`, `req:sync` |
74
+ | `env:` | Entorno | [FAIL] | `env:diff` |
75
+ | `test:` | Tests E2E | [FAIL] | `test:e2e` |
70
76
 
71
77
  **Regla**: `eng:` es para módulos que requieren instalación explícita
72
78
  (`eng:X:setup`) porque crean estructura de base de datos. El resto son
@@ -4,17 +4,17 @@
4
4
 
5
5
  This directory contains generic mocking utilities for tests, designed to be reusable across multiple projects using similar stacks. These utilities have been extracted and adapted from the `learn.tg` project to become part of the `@pasosdeJesus/m` library.
6
6
 
7
- ### 🕊️ Christian Framework
7
+ ### Christian Framework
8
8
 
9
9
  As part of "Pasos de Jesús" projects, we recognize that our work serves a higher purpose: to bring the Good News to the world through technology. The Word of God is our supreme compass (brújula suprema). We strive to act with faithful diligence, excellence, and love, remembering that our technical work ultimately serves God's kingdom.
10
10
 
11
11
  "Whatever you do, work at it with all your heart, as working for the Lord, not for human masters" (Colossians 3:23). This includes writing tests and creating tools that help others build reliable, truthful software.
12
12
 
13
- ## 🚀 For users of projects generated by `m`
13
+ ## For users of projects generated by `m`
14
14
 
15
15
  If you're developing a project generated with `m`, you can use these test utilities by importing them directly from the `@pasosdejesus/m` package.
16
16
 
17
- > ⚠️ **Vitest compatibility**: These mocks are designed for **Vitest 2.1.x**.
17
+ > [WARN] **Vitest compatibility**: These mocks are designed for **Vitest 2.1.x**.
18
18
  > They use `vi.hoisted()` and `vi.mock()`. For vitest 1.x, use version `0.14.x`
19
19
  > of `@pasosdejesus/m`.
20
20
 
@@ -61,7 +61,7 @@ Esto configura automáticamente:
61
61
  - **axios**: delegación a `mocks.mockAxiosGet/Post/Put/Delete/Request`
62
62
  - **siwe**: `SiweMessage`
63
63
 
64
- > ⚠️ **CRÍTICO**: `vi.mock()` debe estar a **module scope** del archivo que vitest transforma.
64
+ > [WARN] **CRÍTICO**: `vi.mock()` debe estar a **module scope** del archivo que vitest transforma.
65
65
  > No funciona desde funciones dentro de módulos importados (como `setupMocks()`).
66
66
  > Si usas `apiDbMocks.setupMocks()`, el `vi.mock('kysely')` interno **no se aplica**.
67
67
  > Agrega los `vi.mock()` directamente en tu `vitest.setup.ts` o en el test file.
@@ -122,7 +122,7 @@ describe('My test', () => {
122
122
 
123
123
  Check the example file included in your project: `templates/tests/test-utils.example.test.ts`.
124
124
 
125
- ## 📁 Structure
125
+ ## Structure
126
126
 
127
127
  ```
128
128
  test-utils/
@@ -139,7 +139,7 @@ test-utils/
139
139
  > (credenciales, deployments, ecosystem-addresses, slearn-info) están en
140
140
  > `@pasosdejesus/mpdj/test-utils`. Ver [`packages/mpdj/src/test-utils/README.md`](../../mpdj/src/test-utils/README.md).
141
141
 
142
- ## 🧪 Available Modules
142
+ ## Available Modules
143
143
 
144
144
  ### 1. `fs-mocks.ts` – Filesystem
145
145
 
@@ -181,7 +181,7 @@ beforeEach(() => {
181
181
  - `createMockDb()`: Flat mock DB object with chainable methods — simple, no class needed
182
182
  - `apiDbMocks` / `libDbMocks`: Pre-configured instances for API routes and libraries
183
183
 
184
- > ⚠️ **CRÍTICO**: `vi.mock()` debe estar a **module scope**. El método `setupMocks()`
184
+ > [WARN] **CRÍTICO**: `vi.mock()` debe estar a **module scope**. El método `setupMocks()`
185
185
  > llama `vi.mock()` internamente pero vitest **no lo hoistea** porque está dentro de
186
186
  > una factory en un módulo importado. Agrega los `vi.mock()` directamente:
187
187
 
@@ -377,7 +377,7 @@ viemMocks.createPublicClient.mockReturnValue({ ... })
377
377
  - Mock chains are extensible; add new chains as needed
378
378
  - **Lesson learned:** Some functions like `privateKeyToAccount` and `formatUnits` are necessary for transaction tests
379
379
 
380
- ## 🚀 Complete Usage Examples
380
+ ## Complete Usage Examples
381
381
 
382
382
  ### Configuration for API Route Tests
383
383
 
@@ -432,7 +432,7 @@ test('renders component with wallet connection', () => {
432
432
  })
433
433
  ```
434
434
 
435
- ## 📝 Important Lessons Learned
435
+ ## Important Lessons Learned
436
436
 
437
437
  ### 1. **Import order**
438
438
  Radix UI mocks must be imported **before** importing any components that use them. Place `import '@pasosdejesus/m/test-utils/radix-mocks'` at the beginning of test files.
@@ -460,11 +460,11 @@ Configure mocks to simulate errors (e.g., `mockRejectedValue`) to test error flo
460
460
  ### 8. **`vi.mock` hoisting in Vitest (CRÍTICO)**
461
461
  `vi.mock` calls are hoisted to the top of the **file being transformed by vitest**. NO se hoistean desde funciones dentro de módulos importados. Ejemplo:
462
462
  ```typescript
463
- // ❌ NO FUNCIONA — el vi.mock está dentro de setupMocks() en un módulo importado
463
+ // [FAIL] NO FUNCIONA — el vi.mock está dentro de setupMocks() en un módulo importado
464
464
  import { apiDbMocks } from '@pasosdejesus/m/test-utils'
465
465
  apiDbMocks.setupMocks() // vi.mock('kysely') interno NO se aplica
466
466
 
467
- // ✅ FUNCIONA — vi.mock() a module scope del archivo que vitest transforma
467
+ // [OK] FUNCIONA — vi.mock() a module scope del archivo que vitest transforma
468
468
  vi.mock('kysely', () => ({ Kysely: MockKysely, PostgresDialect: vi.fn(), sql: mockSql }))
469
469
  ```
470
470
  Esto aplica a TODOS los `setupMocks()` de los test-utils. Para usar `apiDbMocks` correctamente, agrega el `vi.mock()` a module scope en tu `vitest.setup.ts` (ver ejemplo en §2).
@@ -534,14 +534,14 @@ Ensure that React versions are consistent between the test utilities package and
534
534
  ### 15. **Global React setup for mocks**
535
535
  When using Radix UI mocks or other React-based mocks in Vitest setup files, set `global.React = React` before importing the mocks to ensure proper React instance sharing. This is especially important when mocks are used in `vitest.setup.ts`.
536
536
 
537
- ## 🔧 Configuration for Other Projects
537
+ ## Configuration for Other Projects
538
538
 
539
539
  These utilities can be used in other projects with the following adaptations:
540
540
 
541
541
  ### 1. **Kysely Configuration**
542
542
  If the project uses a different path for Kysely configuration:
543
543
  ```typescript
544
- // ⚠️ configPath currently non-functional due to vi.mock hoisting
544
+ // [WARN] configPath currently non-functional due to vi.mock hoisting
545
545
  // For different paths, configure aliases in Vite or mock manually
546
546
  createMockKysely({ skipConfigMock: true }) // And mock the module manually
547
547
  ```
@@ -594,7 +594,7 @@ export function getMyMocks() {
594
594
  }
595
595
  ```
596
596
 
597
- ## 🤝 Contribution
597
+ ## Contribution
598
598
 
599
599
  The utilities are designed to be part of `@pasosdeJesus/m`. To contribute:
600
600
 
@@ -603,7 +603,7 @@ The utilities are designed to be part of `@pasosdeJesus/m`. To contribute:
603
603
  3. **Test**: Ensure utilities work across multiple projects
604
604
  4. **Christian principles**: Work with diligence, humility, and love (Colossians 3:23)
605
605
 
606
- ## 🚀 Integration with Existing Projects
606
+ ## Integration with Existing Projects
607
607
 
608
608
  These utilities are now part of the `@pasosdeJesus/m` package and ready to use. They have been successfully integrated into the `learn.tg` project, serving as a reference implementation.
609
609
 
@@ -643,7 +643,7 @@ beforeAll(() => {
643
643
  });
644
644
  ```
645
645
 
646
- ## 📄 License
646
+ ## License
647
647
 
648
648
  Part of `@pasosdeJesus/m` – Utilities for "Pasos de Jesús" projects.
649
649