outfitter 1.0.2 → 1.0.4
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 +39 -3
- package/dist/commands/equip-refactored.js +1 -1
- package/dist/commands/equip-refactored.js.map +1 -1
- package/dist/commands/fieldguides/add.d.ts.map +1 -1
- package/dist/commands/fieldguides/add.js +1 -1
- package/dist/commands/fieldguides/add.js.map +1 -1
- package/dist/commands/fieldguides/config.d.ts.map +1 -1
- package/dist/commands/fieldguides/config.js +6 -3
- package/dist/commands/fieldguides/config.js.map +1 -1
- package/dist/commands/fieldguides/create.d.ts.map +1 -1
- package/dist/commands/fieldguides/create.js +2 -2
- package/dist/commands/fieldguides/create.js.map +1 -1
- package/dist/commands/fieldguides/list.d.ts.map +1 -1
- package/dist/commands/fieldguides/list.js +1 -1
- package/dist/commands/fieldguides/list.js.map +1 -1
- package/dist/commands/fieldguides.d.ts.map +1 -1
- package/dist/commands/fieldguides.js.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/services/configuration-applier.d.ts +1 -4
- package/dist/services/configuration-applier.d.ts.map +1 -1
- package/dist/services/configuration-applier.js +89 -32
- package/dist/services/configuration-applier.js.map +1 -1
- package/dist/utils/detect-terrain.d.ts.map +1 -1
- package/dist/utils/detect-terrain.js.map +1 -1
- package/package.json +6 -2
- package/dist/commands/add.d.ts +0 -3
- package/dist/commands/add.d.ts.map +0 -1
- package/dist/commands/add.js +0 -49
- package/dist/commands/add.js.map +0 -1
- package/dist/commands/equip.d.ts +0 -3
- package/dist/commands/equip.d.ts.map +0 -1
- package/dist/commands/equip.js +0 -232
- package/dist/commands/equip.js.map +0 -1
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -76
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/list.d.ts +0 -3
- package/dist/commands/list.d.ts.map +0 -1
- package/dist/commands/list.js +0 -51
- package/dist/commands/list.js.map +0 -1
- package/dist/commands/pack.d.ts +0 -3
- package/dist/commands/pack.d.ts.map +0 -1
- package/dist/commands/pack.js +0 -54
- package/dist/commands/pack.js.map +0 -1
- package/dist/commands/update.d.ts +0 -3
- package/dist/commands/update.d.ts.map +0 -1
- package/dist/commands/update.js +0 -44
- package/dist/commands/update.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Outfitter
|
|
2
2
|
|
|
3
3
|
> Command-line tool for equipping your development journey with configurations
|
|
4
|
-
> and fieldguides
|
|
4
|
+
> and fieldguides.
|
|
5
5
|
|
|
6
6
|
## Installation
|
|
7
7
|
|
|
@@ -11,6 +11,8 @@ npm install -g outfitter
|
|
|
11
11
|
pnpm add -g outfitter
|
|
12
12
|
# or
|
|
13
13
|
yarn global add outfitter
|
|
14
|
+
# or
|
|
15
|
+
brew install outfitter
|
|
14
16
|
```
|
|
15
17
|
|
|
16
18
|
## Quick Start
|
|
@@ -18,9 +20,13 @@ yarn global add outfitter
|
|
|
18
20
|
```bash
|
|
19
21
|
# Initialize a new project with Outfitter configurations
|
|
20
22
|
outfitter equip
|
|
23
|
+
# or
|
|
24
|
+
outfitter init
|
|
21
25
|
|
|
22
26
|
# Manage fieldguides (documentation & patterns)
|
|
23
27
|
outfitter fieldguides list
|
|
28
|
+
# or
|
|
29
|
+
outfitter fg list
|
|
24
30
|
outfitter fieldguides add react-patterns typescript-standards
|
|
25
31
|
|
|
26
32
|
# View help
|
|
@@ -66,11 +72,41 @@ outfitter fieldguides create
|
|
|
66
72
|
outfitter fieldguides config
|
|
67
73
|
```
|
|
68
74
|
|
|
75
|
+
## Terrain Detection
|
|
76
|
+
|
|
77
|
+
Outfitter automatically detects your project's technology stack to provide tailored recommendations and configurations. This "terrain detection" analyzes your project for:
|
|
78
|
+
|
|
79
|
+
### Detected Frameworks
|
|
80
|
+
|
|
81
|
+
- **Frontend**: Next.js, React, Vue, Svelte, Angular
|
|
82
|
+
- **Build Tools**: Vite, Webpack
|
|
83
|
+
- **Languages**: TypeScript, JavaScript, Python
|
|
84
|
+
|
|
85
|
+
### Detected Tools
|
|
86
|
+
|
|
87
|
+
- **Testing**: Vitest, Jest, Playwright, Cypress
|
|
88
|
+
- **State Management**: Zustand, Redux, MobX
|
|
89
|
+
- **Package Managers**: pnpm, yarn, npm, bun
|
|
90
|
+
- **CI/CD**: GitHub Actions, GitLab CI
|
|
91
|
+
- **Containerization**: Docker
|
|
92
|
+
|
|
93
|
+
### Detected Project Types
|
|
94
|
+
|
|
95
|
+
- Monorepo structures (pnpm workspaces, Lerna, Nx, Rush)
|
|
96
|
+
- TypeScript projects
|
|
97
|
+
- Python projects
|
|
98
|
+
|
|
99
|
+
The terrain detection runs automatically when you use commands like `outfitter equip` or `outfitter fieldguides add`, ensuring that:
|
|
100
|
+
|
|
101
|
+
- Recommended configurations match your tech stack
|
|
102
|
+
- Fieldguides are relevant to your frameworks
|
|
103
|
+
- Installation commands use your preferred package manager
|
|
104
|
+
|
|
69
105
|
## Configuration
|
|
70
106
|
|
|
71
107
|
Projects initialized with Outfitter have a `.outfitter/` directory containing:
|
|
72
108
|
|
|
73
|
-
```
|
|
109
|
+
```text
|
|
74
110
|
.outfitter/
|
|
75
111
|
├── config.json # Project configuration and installed supplies
|
|
76
112
|
├── supplies/ # Local copies of installed supplies
|
|
@@ -70,7 +70,7 @@ export const equipCommand = new Command('equip')
|
|
|
70
70
|
const hooksSpinner = ui.createSpinner('Setting up git hooks...');
|
|
71
71
|
hooksSpinner.start();
|
|
72
72
|
try {
|
|
73
|
-
await configApplier.initializeHusky();
|
|
73
|
+
await configApplier.initializeHusky(process.cwd());
|
|
74
74
|
hooksSpinner.succeed('Git hooks initialized');
|
|
75
75
|
}
|
|
76
76
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"equip-refactored.js","sourceRoot":"","sources":["../../src/commands/equip-refactored.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"equip-refactored.js","sourceRoot":"","sources":["../../src/commands/equip-refactored.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/add.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/add.ts"],"names":[],"mappings":"AAYA;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,IAAI,CAAC,CA0Df"}
|
|
@@ -24,7 +24,7 @@ export async function addFieldguides(fieldguides) {
|
|
|
24
24
|
const spinner = ora('Adding fieldguides...').start();
|
|
25
25
|
try {
|
|
26
26
|
// Read current config
|
|
27
|
-
const config = await readJSON(configPath);
|
|
27
|
+
const config = (await readJSON(configPath));
|
|
28
28
|
// Get existing fieldguides (support old 'supplies' key)
|
|
29
29
|
const existingFieldguides = Array.isArray(config.fieldguides)
|
|
30
30
|
? config.fieldguides
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/add.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AAOpD;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAA0B;IAE1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAE1D,uBAAuB;IACvB,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpC,MAAM,OAAO,GACX,qEAAqE,CAAC;QACxE,kDAAkD;QAClD,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAoB,CAAC;QAE/D,wDAAwD;QACxD,MAAM,mBAAmB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;YAC3D,CAAC,CAAC,MAAM,CAAC,WAAW;YACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAC9B,CAAC,CAAC,MAAM,CAAC,QAAQ;gBACjB,CAAC,CAAC,EAAE,CAAC;QAET,4CAA4C;QAC5C,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CACtC,CAAC;QACF,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,cAAc,CAAC,CAAC;QAEjE,mCAAmC;QACnC,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,4EAA4E;QAC5E,8BAA8B;QAE9B,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnD,OAAO,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,MAAM,kBAAkB,CAAC,CAAC;QAElE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAC3D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,OAAO,gCAAgC,CAAC,CACxE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/config.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/config.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,QAAQ,GAAG,QAAQ,EAC3B,OAAO,EAAE,aAAa,GAAG,aAAa,GACrC,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
|
@@ -23,7 +23,7 @@ export async function manageFieldguideConfig(action, options) {
|
|
|
23
23
|
console.error(chalk.red('No fieldguide configuration found. Run "outfitter fg create" first.'));
|
|
24
24
|
process.exit(1);
|
|
25
25
|
}
|
|
26
|
-
const config = await readJSON(configPath);
|
|
26
|
+
const config = (await readJSON(configPath));
|
|
27
27
|
const exportConfig = {
|
|
28
28
|
name: 'Custom Fieldguide Configuration',
|
|
29
29
|
version: '1.0.0',
|
|
@@ -42,7 +42,7 @@ export async function manageFieldguideConfig(action, options) {
|
|
|
42
42
|
console.error(chalk.red(`Configuration file not found: ${file}`));
|
|
43
43
|
process.exit(1);
|
|
44
44
|
}
|
|
45
|
-
const importConfig = await readJSON(importPath);
|
|
45
|
+
const importConfig = (await readJSON(importPath));
|
|
46
46
|
if (!(importConfig.fieldguides || importConfig.supplies) ||
|
|
47
47
|
!Array.isArray(importConfig.fieldguides || importConfig.supplies)) {
|
|
48
48
|
console.error(chalk.red('Invalid configuration format'));
|
|
@@ -53,8 +53,11 @@ export async function manageFieldguideConfig(action, options) {
|
|
|
53
53
|
console.log(chalk.yellow('Initializing fieldguide configuration...'));
|
|
54
54
|
// TODO: Create minimal config
|
|
55
55
|
}
|
|
56
|
+
const fieldguideCount = (importConfig.fieldguides ||
|
|
57
|
+
importConfig.supplies ||
|
|
58
|
+
[]).length;
|
|
56
59
|
console.log(chalk.green('✓') +
|
|
57
|
-
` Imported ${
|
|
60
|
+
` Imported ${fieldguideCount} fieldguides from ${chalk.cyan(importConfig.name)}`);
|
|
58
61
|
}
|
|
59
62
|
}
|
|
60
63
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/create.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/create.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAkBD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAmEf"}
|
|
@@ -38,7 +38,7 @@ export async function createFieldguideConfig(options) {
|
|
|
38
38
|
// Interactive setup if no preset
|
|
39
39
|
let selectedPreset = options.preset;
|
|
40
40
|
if (!selectedPreset || !presets[selectedPreset]) {
|
|
41
|
-
const answers = await inquirer.prompt([
|
|
41
|
+
const answers = (await inquirer.prompt([
|
|
42
42
|
{
|
|
43
43
|
type: 'list',
|
|
44
44
|
name: 'preset',
|
|
@@ -50,7 +50,7 @@ export async function createFieldguideConfig(options) {
|
|
|
50
50
|
{ name: 'Minimal (TypeScript only)', value: 'minimal' },
|
|
51
51
|
],
|
|
52
52
|
},
|
|
53
|
-
]);
|
|
53
|
+
]));
|
|
54
54
|
selectedPreset = answers.preset;
|
|
55
55
|
}
|
|
56
56
|
const spinner = ora('Creating fieldguide configuration...').start();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/create.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/create.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/fieldguides/list.ts"],"names":[],"mappings":"AAwBA;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhB"}
|
|
@@ -28,7 +28,7 @@ export async function listFieldguides(options) {
|
|
|
28
28
|
let installedFieldguides = [];
|
|
29
29
|
try {
|
|
30
30
|
if (await pathExists(configPath)) {
|
|
31
|
-
const config = await readJSON(configPath);
|
|
31
|
+
const config = (await readJSON(configPath));
|
|
32
32
|
installedFieldguides = config.fieldguides || config.supplies || []; // Support old 'supplies' key for backwards compatibility
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/fieldguides/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldguides.d.ts","sourceRoot":"","sources":["../../src/commands/fieldguides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"fieldguides.d.ts","sourceRoot":"","sources":["../../src/commands/fieldguides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC,eAAO,MAAM,kBAAkB,SAuD5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldguides.js","sourceRoot":"","sources":["../../src/commands/fieldguides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"fieldguides.js","sourceRoot":"","sources":["../../src/commands/fieldguides.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAUjE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;KACzD,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,uDAAuD,CAAC;KACpE,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,uBAAuB,EAAE,4BAA4B,EAAE,SAAS,CAAC;KACxE,MAAM,CAAC,eAAe,EAAE,qCAAqC,CAAC;KAC9D,MAAM,CAAC,aAAa,EAAE,gDAAgD,CAAC;KACvE,MAAM,CAAC,sBAAsB,CAAC,CAClC;KACA,UAAU,CACT,IAAI,OAAO,CAAC,KAAK,CAAC;KACf,WAAW,CAAC,iCAAiC,CAAC;KAC9C,QAAQ,CACP,kBAAkB,EAClB,gEAAgE,CACjE;KACA,MAAM,CAAC,cAAc,CAAC,CAC1B;KACA,UAAU,CACT,IAAI,OAAO,CAAC,MAAM,CAAC;KAChB,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,eAAe,CAAC,CAC3B;KACA,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,MAAM,CAAC,iBAAiB,CAAC,CAC7B;KACA,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CACL,qBAAqB,EACrB,aAAa,EACb,wBAAwB,CACzB;KACA,MAAM,CAAC,KAAK,EAAE,OAAsB,EAAE,EAAE;IACvC,MAAM,sBAAsB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC,CAAC,CACL;KACA,UAAU,CACT,IAAI,OAAO,CAAC,QAAQ,CAAC;KAClB,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,QAAQ,EAAE,8BAA8B,CAAC;KAClD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;IAC7B,MAAM,sBAAsB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAmB,CAAC,CAAC;AACpE,CAAC,CAAC,CACL,CACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,10 +17,13 @@ try {
|
|
|
17
17
|
await program.parseAsync(process.argv);
|
|
18
18
|
}
|
|
19
19
|
catch (error) {
|
|
20
|
-
if (error
|
|
20
|
+
if (error instanceof Error &&
|
|
21
|
+
'code' in error &&
|
|
22
|
+
error.code === 'commander.help') {
|
|
21
23
|
process.exit(0);
|
|
22
24
|
}
|
|
23
|
-
|
|
25
|
+
const message = error instanceof Error ? error.message : 'An unexpected error occurred';
|
|
26
|
+
console.error(chalk.red('Error:'), message);
|
|
24
27
|
process.exit(1);
|
|
25
28
|
}
|
|
26
29
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CACV,qFAAqF,CACtF;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAEvC,iBAAiB;AACjB,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CACV,qFAAqF,CACtF;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAEvC,iBAAiB;AACjB,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,IAAI,CAAC;IACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAAC,OAAO,KAAc,EAAE,CAAC;IACxB,IACE,KAAK,YAAY,KAAK;QACtB,MAAM,IAAI,KAAK;QACf,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAC/B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
export declare function applyConfigurations(configs: Array<string>): Promise<void>;
|
|
2
2
|
/**
|
|
3
3
|
* Initializes Husky by running the installation command to set up Git hooks.
|
|
4
|
-
*
|
|
5
|
-
* @remark
|
|
6
|
-
* This function executes `npx husky install` and inherits standard input/output streams for direct console interaction.
|
|
7
4
|
*/
|
|
8
|
-
export declare function initializeHusky(): Promise<void>;
|
|
5
|
+
export declare function initializeHusky(cwd: string): Promise<void>;
|
|
9
6
|
//# sourceMappingURL=configuration-applier.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-applier.d.ts","sourceRoot":"","sources":["../../src/services/configuration-applier.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration-applier.d.ts","sourceRoot":"","sources":["../../src/services/configuration-applier.ts"],"names":[],"mappings":"AAOA,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,GACrB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AA2ED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhE"}
|
|
@@ -1,45 +1,102 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { execa } from 'execa';
|
|
3
|
+
import fsExtra from 'fs-extra';
|
|
4
|
+
import { join } from 'path';
|
|
5
|
+
const { writeFile, pathExists, writeJSON } = fsExtra;
|
|
3
6
|
export async function applyConfigurations(configs) {
|
|
4
|
-
// TODO: Implement actual configuration application
|
|
5
|
-
// For each config package, we need to:
|
|
6
|
-
// 1. Check if it has an init function or CLI
|
|
7
|
-
// 2. Copy default config files if needed
|
|
8
|
-
// 3. Update package.json scripts if needed
|
|
9
7
|
console.log(chalk.gray('Applying configurations...'));
|
|
10
|
-
|
|
8
|
+
const cwd = process.cwd();
|
|
9
|
+
const handlers = {
|
|
10
|
+
'@outfitter/eslint-config': createEslintConfig,
|
|
11
|
+
'@outfitter/typescript-config': createTsconfigJson,
|
|
12
|
+
'@outfitter/prettier-config': createPrettierConfig,
|
|
13
|
+
'@outfitter/husky-config': initializeHusky,
|
|
14
|
+
'@outfitter/changeset-config': initializeChangesets,
|
|
15
|
+
};
|
|
11
16
|
for (const config of configs) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
case '@outfitter/typescript-config':
|
|
17
|
-
// TODO: Create/update tsconfig.json
|
|
18
|
-
break;
|
|
19
|
-
case '@outfitter/prettier-config':
|
|
20
|
-
// TODO: Create .prettierrc
|
|
21
|
-
break;
|
|
22
|
-
case '@outfitter/husky-config':
|
|
23
|
-
// Will be handled separately by initializeHusky
|
|
24
|
-
break;
|
|
25
|
-
case '@outfitter/changeset-config':
|
|
26
|
-
// TODO: Run changeset init
|
|
27
|
-
break;
|
|
28
|
-
default:
|
|
29
|
-
console.warn(chalk.yellow(`⚠ Unknown configuration package: ${config}`));
|
|
30
|
-
break;
|
|
17
|
+
const handler = handlers[config];
|
|
18
|
+
if (!handler) {
|
|
19
|
+
console.warn(chalk.yellow(`⚠ Unknown configuration package: ${config}`));
|
|
20
|
+
continue;
|
|
31
21
|
}
|
|
22
|
+
try {
|
|
23
|
+
await handler(cwd);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error(chalk.red(` ✗ Failed to apply ${config}:`), error.message);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async function createEslintConfig(cwd) {
|
|
31
|
+
const configPath = join(cwd, 'eslint.config.mjs');
|
|
32
|
+
if (await pathExists(configPath)) {
|
|
33
|
+
console.log(chalk.gray(' ✓ ESLint config already exists'));
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const config = `export { default } from '@outfitter/eslint-config';
|
|
37
|
+
`;
|
|
38
|
+
await writeFile(configPath, config, 'utf8');
|
|
39
|
+
console.log(chalk.green(' ✓ Created eslint.config.mjs'));
|
|
40
|
+
}
|
|
41
|
+
async function createTsconfigJson(cwd) {
|
|
42
|
+
const configPath = join(cwd, 'tsconfig.json');
|
|
43
|
+
if (await pathExists(configPath)) {
|
|
44
|
+
console.log(chalk.gray(' ✓ TypeScript config already exists'));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const config = {
|
|
48
|
+
extends: '@outfitter/typescript-config/base',
|
|
49
|
+
compilerOptions: {
|
|
50
|
+
outDir: './dist',
|
|
51
|
+
rootDir: './src',
|
|
52
|
+
},
|
|
53
|
+
include: ['src/**/*'],
|
|
54
|
+
exclude: ['node_modules', 'dist'],
|
|
55
|
+
};
|
|
56
|
+
await writeJSON(configPath, config, { spaces: 2 });
|
|
57
|
+
console.log(chalk.green(' ✓ Created tsconfig.json'));
|
|
58
|
+
}
|
|
59
|
+
async function createPrettierConfig(cwd) {
|
|
60
|
+
const configPath = join(cwd, 'prettier.config.cjs');
|
|
61
|
+
if (await pathExists(configPath)) {
|
|
62
|
+
console.log(chalk.gray(' ✓ Prettier config already exists'));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const config = `module.exports = require('@outfitter/prettier-config');
|
|
66
|
+
`;
|
|
67
|
+
await writeFile(configPath, config, 'utf8');
|
|
68
|
+
console.log(chalk.green(' ✓ Created prettier.config.cjs'));
|
|
69
|
+
}
|
|
70
|
+
async function initializeChangesets(cwd) {
|
|
71
|
+
const changesetDir = join(cwd, '.changeset');
|
|
72
|
+
if (await pathExists(changesetDir)) {
|
|
73
|
+
console.log(chalk.gray(' ✓ Changesets already initialized'));
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
await execa('npx', ['@changesets/cli', 'init'], {
|
|
78
|
+
cwd,
|
|
79
|
+
stdio: 'inherit',
|
|
80
|
+
});
|
|
81
|
+
console.log(chalk.green(' ✓ Initialized changesets'));
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
throw new Error(`Failed to initialize changesets: ${error.message}`);
|
|
32
85
|
}
|
|
33
86
|
}
|
|
34
87
|
/**
|
|
35
88
|
* Initializes Husky by running the installation command to set up Git hooks.
|
|
36
|
-
*
|
|
37
|
-
* @remark
|
|
38
|
-
* This function executes `npx husky install` and inherits standard input/output streams for direct console interaction.
|
|
39
89
|
*/
|
|
40
|
-
export async function initializeHusky() {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
90
|
+
export async function initializeHusky(cwd) {
|
|
91
|
+
try {
|
|
92
|
+
await execa('npx', ['husky', 'init'], {
|
|
93
|
+
cwd,
|
|
94
|
+
stdio: 'inherit',
|
|
95
|
+
});
|
|
96
|
+
console.log(chalk.green(' ✓ Initialized Husky'));
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
throw new Error(`Failed to initialize Husky: ${error.message}`);
|
|
100
|
+
}
|
|
44
101
|
}
|
|
45
102
|
//# sourceMappingURL=configuration-applier.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration-applier.js","sourceRoot":"","sources":["../../src/services/configuration-applier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"configuration-applier.js","sourceRoot":"","sources":["../../src/services/configuration-applier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-terrain.d.ts","sourceRoot":"","sources":["../../src/utils/detect-terrain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"detect-terrain.d.ts","sourceRoot":"","sources":["../../src/utils/detect-terrain.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAE9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,OAAO,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IAGjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAGhB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IAGd,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IAGjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAGlB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;CACd;AAgDD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAyI1B;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,CAkCzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detect-terrain.js","sourceRoot":"","sources":["../../src/utils/detect-terrain.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"detect-terrain.js","sourceRoot":"","sources":["../../src/utils/detect-terrain.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "outfitter",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Command-line tool for equipping your development journey with configurations and fieldguides",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "tsc",
|
|
15
15
|
"dev": "tsx src/index.ts",
|
|
16
|
+
"lint": "eslint .",
|
|
16
17
|
"prepare": "npm run build",
|
|
17
18
|
"test": "vitest",
|
|
18
19
|
"type-check": "tsc --noEmit"
|
|
@@ -56,5 +57,8 @@
|
|
|
56
57
|
"bugs": {
|
|
57
58
|
"url": "https://github.com/outfitter-dev/monorepo/issues"
|
|
58
59
|
},
|
|
59
|
-
"homepage": "https://github.com/outfitter-dev/monorepo/tree/main/packages/cli#readme"
|
|
60
|
+
"homepage": "https://github.com/outfitter-dev/monorepo/tree/main/packages/cli#readme",
|
|
61
|
+
"publishConfig": {
|
|
62
|
+
"access": "public"
|
|
63
|
+
}
|
|
60
64
|
}
|
package/dist/commands/add.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,UAAU,SA6DnB,CAAC"}
|
package/dist/commands/add.js
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import ora from 'ora';
|
|
4
|
-
import { readJSON, writeJSON, pathExists } from 'fs-extra';
|
|
5
|
-
import { join } from 'path';
|
|
6
|
-
export const addCommand = new Command('add')
|
|
7
|
-
.description('Add specific fieldguides to your project')
|
|
8
|
-
.argument('<fieldguides...>', 'Fieldguides to add (e.g., react-patterns typescript-standards)')
|
|
9
|
-
.action(async (fieldguides) => {
|
|
10
|
-
const cwd = process.cwd();
|
|
11
|
-
const configPath = join(cwd, '.outfitter', 'config.json');
|
|
12
|
-
// Check if initialized
|
|
13
|
-
if (!(await pathExists(configPath))) {
|
|
14
|
-
console.error(chalk.red('Project not initialized. Run "outfitter init" first.'));
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
const spinner = ora('Adding fieldguides...').start();
|
|
18
|
-
try {
|
|
19
|
-
// Read current config
|
|
20
|
-
const config = await readJSON(configPath);
|
|
21
|
-
// Get existing fieldguides (support old 'supplies' key)
|
|
22
|
-
const existingFieldguides = config.fieldguides || config.supplies || [];
|
|
23
|
-
// Add new fieldguides (avoiding duplicates)
|
|
24
|
-
const newFieldguides = fieldguides.filter(f => !existingFieldguides.includes(f));
|
|
25
|
-
config.fieldguides = [...existingFieldguides, ...newFieldguides];
|
|
26
|
-
// Remove old supplies key if it exists
|
|
27
|
-
if (config.supplies) {
|
|
28
|
-
delete config.supplies;
|
|
29
|
-
}
|
|
30
|
-
// TODO: In real implementation, fetch actual files from fieldguides package
|
|
31
|
-
// For now, just update config
|
|
32
|
-
await writeJSON(configPath, config, { spaces: 2 });
|
|
33
|
-
spinner.succeed(`Added ${newFieldguides.length} new fieldguides`);
|
|
34
|
-
if (newFieldguides.length > 0) {
|
|
35
|
-
console.log('\n' + chalk.green('Added:'));
|
|
36
|
-
newFieldguides.forEach(f => console.log(' • ' + f));
|
|
37
|
-
}
|
|
38
|
-
const skipped = fieldguides.length - newFieldguides.length;
|
|
39
|
-
if (skipped > 0) {
|
|
40
|
-
console.log('\n' +
|
|
41
|
-
chalk.yellow(`Skipped ${skipped} already installed fieldguides`));
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch (error) {
|
|
45
|
-
spinner.fail('Failed to add fieldguides');
|
|
46
|
-
throw error;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
//# sourceMappingURL=add.js.map
|
package/dist/commands/add.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACzC,WAAW,CAAC,0CAA0C,CAAC;KACvD,QAAQ,CACP,kBAAkB,EAClB,gEAAgE,CACjE;KACA,MAAM,CAAC,KAAK,EAAE,WAA0B,EAAE,EAAE;IAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAE1D,uBAAuB;IACvB,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,CAAC,CAAC,KAAK,EAAE,CAAC;IAErD,IAAI,CAAC;QACH,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE1C,wDAAwD;QACxD,MAAM,mBAAmB,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QAExE,4CAA4C;QAC5C,MAAM,cAAc,GAAG,WAAW,CAAC,MAAM,CACvC,CAAC,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,CACtC,CAAC;QACF,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,mBAAmB,EAAE,GAAG,cAAc,CAAC,CAAC;QAEjE,uCAAuC;QACvC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,CAAC;QAED,4EAA4E;QAC5E,8BAA8B;QAE9B,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnD,OAAO,CAAC,OAAO,CAAC,SAAS,cAAc,CAAC,MAAM,kBAAkB,CAAC,CAAC;QAElE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC1C,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;QAC3D,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CACT,IAAI;gBACF,KAAK,CAAC,MAAM,CAAC,WAAW,OAAO,gCAAgC,CAAC,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC,CAAC"}
|
package/dist/commands/equip.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"equip.d.ts","sourceRoot":"","sources":["../../src/commands/equip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyHpC,eAAO,MAAM,YAAY,SAoLrB,CAAC"}
|
package/dist/commands/equip.js
DELETED
|
@@ -1,232 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { checkbox, confirm } from '@inquirer/prompts';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
import ora from 'ora';
|
|
5
|
-
import { execa } from 'execa';
|
|
6
|
-
import fsExtra from 'fs-extra';
|
|
7
|
-
const { pathExistsSync } = fsExtra;
|
|
8
|
-
import { join, dirname } from 'path';
|
|
9
|
-
import { detectTerrain, getTerrainSummary } from '../utils/detect-terrain.js';
|
|
10
|
-
import { getRecommendedFieldguides, getRecommendedFieldguideIds, } from '../config/fieldguide-mappings.js';
|
|
11
|
-
import { CONFIG_PACKAGES, UTILITY_PACKAGES } from '../constants/packages.js';
|
|
12
|
-
import { getPresetSelection } from '../services/package-selector.js';
|
|
13
|
-
/**
|
|
14
|
-
* Finds the project root by walking up from the given directory until a package.json is found.
|
|
15
|
-
*
|
|
16
|
-
* @param startDir - The directory to start searching from. Defaults to process.cwd().
|
|
17
|
-
* @returns The directory containing package.json, or null if not found.
|
|
18
|
-
*/
|
|
19
|
-
function findProjectRoot(startDir = process.cwd()) {
|
|
20
|
-
let currentDir = startDir;
|
|
21
|
-
while (currentDir !== dirname(currentDir)) {
|
|
22
|
-
if (pathExistsSync(join(currentDir, 'package.json'))) {
|
|
23
|
-
return currentDir;
|
|
24
|
-
}
|
|
25
|
-
currentDir = dirname(currentDir);
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Detects the package manager used in the current project by checking for known lock files.
|
|
31
|
-
*
|
|
32
|
-
* @returns The detected package manager: 'pnpm', 'yarn', 'bun', or 'npm'. Defaults to 'npm' if no lock file is found.
|
|
33
|
-
*/
|
|
34
|
-
function detectPackageManager() {
|
|
35
|
-
const projectRoot = findProjectRoot();
|
|
36
|
-
if (!projectRoot) {
|
|
37
|
-
return 'npm';
|
|
38
|
-
}
|
|
39
|
-
// Check for lock files in the project root
|
|
40
|
-
if (pathExistsSync(join(projectRoot, 'pnpm-lock.yaml')))
|
|
41
|
-
return 'pnpm';
|
|
42
|
-
if (pathExistsSync(join(projectRoot, 'yarn.lock')))
|
|
43
|
-
return 'yarn';
|
|
44
|
-
if (pathExistsSync(join(projectRoot, 'bun.lockb')))
|
|
45
|
-
return 'bun';
|
|
46
|
-
if (pathExistsSync(join(projectRoot, 'package-lock.json')))
|
|
47
|
-
return 'npm';
|
|
48
|
-
return 'npm';
|
|
49
|
-
}
|
|
50
|
-
const DEV_FLAGS = {
|
|
51
|
-
npm: '--save-dev',
|
|
52
|
-
pnpm: '-D',
|
|
53
|
-
yarn: '-D',
|
|
54
|
-
bun: '--dev',
|
|
55
|
-
};
|
|
56
|
-
async function installPackages(packages, packageManager, isDev = true) {
|
|
57
|
-
const installCmd = packageManager === 'npm' ? 'install' : 'add';
|
|
58
|
-
const args = isDev
|
|
59
|
-
? [installCmd, DEV_FLAGS[packageManager], ...packages]
|
|
60
|
-
: [installCmd, ...packages];
|
|
61
|
-
await execa(packageManager, args, {
|
|
62
|
-
stdio: 'inherit',
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
async function applyConfigurations(selectedConfigs) {
|
|
66
|
-
// TODO: Apply configuration files based on selected packages
|
|
67
|
-
console.log(chalk.yellow('\n⚠️ Configuration file generation coming soon'));
|
|
68
|
-
console.log(chalk.gray(' For now, please configure packages manually:'));
|
|
69
|
-
if (selectedConfigs.includes('@outfitter/eslint-config')) {
|
|
70
|
-
console.log(chalk.gray(' • ESLint: Create .eslintrc.js extending @outfitter/eslint-config'));
|
|
71
|
-
}
|
|
72
|
-
if (selectedConfigs.includes('@outfitter/typescript-config')) {
|
|
73
|
-
console.log(chalk.gray(' • TypeScript: Update tsconfig.json to extend from @outfitter/typescript-config'));
|
|
74
|
-
}
|
|
75
|
-
if (selectedConfigs.includes('@outfitter/prettier-config')) {
|
|
76
|
-
console.log(chalk.gray(' • Prettier: Add "prettier": "@outfitter/prettier-config" to package.json'));
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
export const equipCommand = new Command('equip')
|
|
80
|
-
.alias('init')
|
|
81
|
-
.description('Interactively install Outfitter configurations and utilities')
|
|
82
|
-
.option('--preset <type>', 'Use a preset configuration (minimal, standard, full)')
|
|
83
|
-
.option('-y, --yes', 'Skip prompts and use defaults')
|
|
84
|
-
.action(async (options) => {
|
|
85
|
-
console.log(chalk.cyan("🎒 Welcome to Outfitter! Let's equip your project.\n"));
|
|
86
|
-
// Detect project terrain
|
|
87
|
-
const terrainSpinner = ora('Analyzing project terrain...').start();
|
|
88
|
-
let terrain;
|
|
89
|
-
let terrainSummary = [];
|
|
90
|
-
try {
|
|
91
|
-
terrain = await detectTerrain();
|
|
92
|
-
terrainSummary = getTerrainSummary(terrain);
|
|
93
|
-
terrainSpinner.succeed('Project terrain analyzed');
|
|
94
|
-
}
|
|
95
|
-
catch (err) {
|
|
96
|
-
terrainSpinner.fail('Failed to analyze project terrain');
|
|
97
|
-
throw err;
|
|
98
|
-
}
|
|
99
|
-
if (terrainSummary.length > 0) {
|
|
100
|
-
console.log(chalk.cyan('\n🗻 Detected terrain:'));
|
|
101
|
-
terrainSummary.forEach(feature => {
|
|
102
|
-
console.log(` • ${feature}`);
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
// Get recommended fieldguides based on terrain
|
|
106
|
-
const recommendedFieldguides = getRecommendedFieldguides(terrain);
|
|
107
|
-
let selection;
|
|
108
|
-
if (options.preset) {
|
|
109
|
-
// Use preset configuration
|
|
110
|
-
selection = getPresetSelection(options.preset);
|
|
111
|
-
}
|
|
112
|
-
else if (options.yes) {
|
|
113
|
-
// Use defaults
|
|
114
|
-
selection = {
|
|
115
|
-
configs: CONFIG_PACKAGES.filter(p => p.selected).map(p => p.value),
|
|
116
|
-
utils: UTILITY_PACKAGES.filter(p => p.selected).map(p => p.value),
|
|
117
|
-
fieldguides: getRecommendedFieldguideIds(terrain),
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
// Interactive selection
|
|
122
|
-
console.log('');
|
|
123
|
-
const selectedConfigs = await checkbox({
|
|
124
|
-
message: 'Select configurations to install:',
|
|
125
|
-
choices: CONFIG_PACKAGES.map(pkg => ({
|
|
126
|
-
name: pkg.name,
|
|
127
|
-
value: pkg.value,
|
|
128
|
-
checked: pkg.selected,
|
|
129
|
-
})),
|
|
130
|
-
});
|
|
131
|
-
const selectedUtils = await checkbox({
|
|
132
|
-
message: 'Select utility packages:',
|
|
133
|
-
choices: UTILITY_PACKAGES.map(pkg => ({
|
|
134
|
-
name: pkg.name,
|
|
135
|
-
value: pkg.value,
|
|
136
|
-
checked: pkg.selected,
|
|
137
|
-
})),
|
|
138
|
-
});
|
|
139
|
-
// Show recommended fieldguides
|
|
140
|
-
let selectedFieldguides = [];
|
|
141
|
-
if (recommendedFieldguides.length > 0) {
|
|
142
|
-
console.log(chalk.cyan('\n📚 Recommended fieldguides for your terrain:'));
|
|
143
|
-
recommendedFieldguides.forEach(fg => {
|
|
144
|
-
const icon = fg.priority === 'essential'
|
|
145
|
-
? '⭐'
|
|
146
|
-
: fg.priority === 'recommended'
|
|
147
|
-
? '👍'
|
|
148
|
-
: '📖';
|
|
149
|
-
console.log(` ${icon} ${fg.name} - ${fg.description}`);
|
|
150
|
-
});
|
|
151
|
-
const includeFieldguides = await confirm({
|
|
152
|
-
message: 'Would you like to include these recommended fieldguides?',
|
|
153
|
-
default: true,
|
|
154
|
-
});
|
|
155
|
-
if (includeFieldguides) {
|
|
156
|
-
selectedFieldguides = getRecommendedFieldguideIds(terrain);
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
selection = {
|
|
160
|
-
configs: selectedConfigs,
|
|
161
|
-
utils: selectedUtils,
|
|
162
|
-
fieldguides: selectedFieldguides,
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
// Detect package manager
|
|
166
|
-
const packageManager = detectPackageManager();
|
|
167
|
-
console.log(chalk.gray(`\n📦 Using ${packageManager}`));
|
|
168
|
-
// Install packages
|
|
169
|
-
const configPackages = selection.configs;
|
|
170
|
-
const utilityPackages = selection.utils;
|
|
171
|
-
if (configPackages.length > 0 || utilityPackages.length > 0) {
|
|
172
|
-
const installSpinner = ora('Installing packages...').start();
|
|
173
|
-
try {
|
|
174
|
-
// Combine installations to reduce lockfile churn
|
|
175
|
-
const installations = [];
|
|
176
|
-
if (configPackages.length > 0) {
|
|
177
|
-
installations.push([configPackages, true]);
|
|
178
|
-
}
|
|
179
|
-
if (utilityPackages.length > 0) {
|
|
180
|
-
installations.push([utilityPackages, false]);
|
|
181
|
-
}
|
|
182
|
-
for (const [packages, isDev] of installations) {
|
|
183
|
-
await installPackages(packages, packageManager, isDev);
|
|
184
|
-
}
|
|
185
|
-
installSpinner.succeed('Packages installed');
|
|
186
|
-
}
|
|
187
|
-
catch (error) {
|
|
188
|
-
installSpinner.fail('Failed to install packages');
|
|
189
|
-
throw error;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
// Apply configurations
|
|
193
|
-
if (selection.configs.length > 0) {
|
|
194
|
-
const configSpinner = ora('Applying configurations...').start();
|
|
195
|
-
try {
|
|
196
|
-
await applyConfigurations(selection.configs);
|
|
197
|
-
configSpinner.succeed('Configurations applied');
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
configSpinner.fail('Failed to apply configurations');
|
|
201
|
-
throw error;
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
// Initialize git hooks if husky was selected
|
|
205
|
-
if (selection.configs.includes('@outfitter/husky-config')) {
|
|
206
|
-
const gitHooks = await confirm({
|
|
207
|
-
message: 'Initialize git hooks?',
|
|
208
|
-
default: true,
|
|
209
|
-
});
|
|
210
|
-
if (gitHooks) {
|
|
211
|
-
const hooksSpinner = ora('Setting up git hooks...').start();
|
|
212
|
-
try {
|
|
213
|
-
await execa('npx', ['husky-init', '--yes'], { stdio: 'inherit' });
|
|
214
|
-
await execa(packageManager, ['install'], { stdio: 'inherit' });
|
|
215
|
-
hooksSpinner.succeed('Git hooks initialized');
|
|
216
|
-
}
|
|
217
|
-
catch (error) {
|
|
218
|
-
hooksSpinner.fail('Failed to initialize git hooks');
|
|
219
|
-
throw error;
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
console.log(chalk.green('\n🎉 Your project is now equipped with Outfitter!\n'));
|
|
224
|
-
// Show next steps
|
|
225
|
-
console.log(chalk.cyan('Next steps:'));
|
|
226
|
-
console.log(` • Run '${packageManager} run lint' to check your code`);
|
|
227
|
-
console.log(` • Check README.md for usage instructions`);
|
|
228
|
-
if (selection.fieldguides.length > 0) {
|
|
229
|
-
console.log(` • Explore fieldguides with 'outfitter fieldguides list'`);
|
|
230
|
-
}
|
|
231
|
-
});
|
|
232
|
-
//# sourceMappingURL=equip.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"equip.js","sourceRoot":"","sources":["../../src/commands/equip.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,eAAO,MAAM,WAAW,SAsEpB,CAAC"}
|
package/dist/commands/init.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import inquirer from 'inquirer';
|
|
3
|
-
import chalk from 'chalk';
|
|
4
|
-
import ora from 'ora';
|
|
5
|
-
import { ensureDir, writeJSON, pathExists } from 'fs-extra';
|
|
6
|
-
import { join } from 'path';
|
|
7
|
-
const presets = {
|
|
8
|
-
nextjs: [
|
|
9
|
-
'typescript-standards',
|
|
10
|
-
'react-patterns',
|
|
11
|
-
'nextjs-patterns',
|
|
12
|
-
'testing-standards',
|
|
13
|
-
],
|
|
14
|
-
react: ['typescript-standards', 'react-patterns', 'testing-standards'],
|
|
15
|
-
node: ['typescript-standards', 'testing-standards', 'security-standards'],
|
|
16
|
-
minimal: ['typescript-standards'],
|
|
17
|
-
};
|
|
18
|
-
export const initCommand = new Command('guideposts')
|
|
19
|
-
.description('Set up guideposts (.outfitter config) for managing fieldguides')
|
|
20
|
-
.option('-p, --preset <preset>', 'Use a preset configuration', 'minimal')
|
|
21
|
-
.option('--with-claude', 'Include CLAUDE.md for AI assistance')
|
|
22
|
-
.option('-f, --force', 'Force initialization even if .outfitter exists')
|
|
23
|
-
.action(async (options) => {
|
|
24
|
-
const cwd = process.cwd();
|
|
25
|
-
const outfitterDir = join(cwd, '.outfitter');
|
|
26
|
-
// Check if already initialized
|
|
27
|
-
if ((await pathExists(outfitterDir)) && !options.force) {
|
|
28
|
-
console.error(chalk.red('Project already initialized. Use --force to reinitialize.'));
|
|
29
|
-
process.exit(1);
|
|
30
|
-
}
|
|
31
|
-
// Interactive setup if no preset
|
|
32
|
-
let selectedPreset = options.preset;
|
|
33
|
-
if (!selectedPreset || !presets[selectedPreset]) {
|
|
34
|
-
const answers = await inquirer.prompt([
|
|
35
|
-
{
|
|
36
|
-
type: 'list',
|
|
37
|
-
name: 'preset',
|
|
38
|
-
message: 'Select a project preset:',
|
|
39
|
-
choices: [
|
|
40
|
-
{ name: 'Next.js Full Stack', value: 'nextjs' },
|
|
41
|
-
{ name: 'React SPA', value: 'react' },
|
|
42
|
-
{ name: 'Node.js Backend', value: 'node' },
|
|
43
|
-
{ name: 'Minimal (TypeScript only)', value: 'minimal' },
|
|
44
|
-
],
|
|
45
|
-
},
|
|
46
|
-
]);
|
|
47
|
-
selectedPreset = answers.preset;
|
|
48
|
-
}
|
|
49
|
-
const spinner = ora('Initializing Outfitter...').start();
|
|
50
|
-
try {
|
|
51
|
-
// Create .outfitter directory
|
|
52
|
-
await ensureDir(outfitterDir);
|
|
53
|
-
// Create config
|
|
54
|
-
const config = {
|
|
55
|
-
version: '1.0.0',
|
|
56
|
-
preset: selectedPreset,
|
|
57
|
-
fieldguides: presets[selectedPreset],
|
|
58
|
-
installed: new Date().toISOString(),
|
|
59
|
-
};
|
|
60
|
-
await writeJSON(join(outfitterDir, 'config.json'), config, { spaces: 2 });
|
|
61
|
-
spinner.succeed('Outfitter initialized successfully!');
|
|
62
|
-
console.log('\n' + chalk.green('✓') + ' Created .outfitter/config.json');
|
|
63
|
-
console.log('\n' + chalk.cyan('Next steps:'));
|
|
64
|
-
console.log(' 1. Run ' +
|
|
65
|
-
chalk.yellow('outfitter add <fieldguide>') +
|
|
66
|
-
' to add specific fieldguides');
|
|
67
|
-
console.log(' 2. Run ' +
|
|
68
|
-
chalk.yellow('outfitter list') +
|
|
69
|
-
' to see available fieldguides');
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
spinner.fail('Failed to initialize Outfitter');
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/list.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBpC,eAAO,MAAM,WAAW,SAwCpB,CAAC"}
|
package/dist/commands/list.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { readJSON, pathExists } from 'fs-extra';
|
|
4
|
-
import { join } from 'path';
|
|
5
|
-
// TODO: This would come from a registry or the fieldguides package
|
|
6
|
-
const availableFieldguides = {
|
|
7
|
-
'typescript-standards': 'Core TypeScript patterns and conventions',
|
|
8
|
-
'react-patterns': 'React component and hook patterns',
|
|
9
|
-
'nextjs-patterns': 'Next.js specific patterns and best practices',
|
|
10
|
-
'testing-standards': 'Comprehensive testing methodology',
|
|
11
|
-
'security-standards': 'Security baseline and best practices',
|
|
12
|
-
'react-hook-form': 'Form handling with React Hook Form',
|
|
13
|
-
'react-query': 'Data fetching with React Query',
|
|
14
|
-
'zustand-guide': 'State management with Zustand',
|
|
15
|
-
'vitest-guide': 'Testing with Vitest',
|
|
16
|
-
'playwright-guide': 'E2E testing with Playwright',
|
|
17
|
-
};
|
|
18
|
-
export const listCommand = new Command('list')
|
|
19
|
-
.description('List available fieldguides')
|
|
20
|
-
.option('-i, --installed', 'Show only installed fieldguides')
|
|
21
|
-
.action(async (options) => {
|
|
22
|
-
const cwd = process.cwd();
|
|
23
|
-
const configPath = join(cwd, '.outfitter', 'config.json');
|
|
24
|
-
let installedFieldguides = [];
|
|
25
|
-
if (await pathExists(configPath)) {
|
|
26
|
-
const config = await readJSON(configPath);
|
|
27
|
-
installedFieldguides = config.fieldguides || config.supplies || []; // Support old 'supplies' key for backwards compatibility
|
|
28
|
-
}
|
|
29
|
-
if (options.installed) {
|
|
30
|
-
if (installedFieldguides.length === 0) {
|
|
31
|
-
console.log(chalk.yellow('No fieldguides installed yet.'));
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
console.log(chalk.cyan('Installed fieldguides:\n'));
|
|
35
|
-
installedFieldguides.forEach(fieldguide => {
|
|
36
|
-
console.log(' ' + chalk.green('✓') + ' ' + fieldguide);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
console.log(chalk.cyan('Available fieldguides:\n'));
|
|
41
|
-
Object.entries(availableFieldguides).forEach(([name, description]) => {
|
|
42
|
-
const isInstalled = installedFieldguides.includes(name);
|
|
43
|
-
const status = isInstalled ? chalk.green('✓') : chalk.gray('○');
|
|
44
|
-
const nameColor = isInstalled ? chalk.green : chalk.white;
|
|
45
|
-
console.log(` ${status} ${nameColor(name)}`);
|
|
46
|
-
console.log(` ${chalk.gray(description)}\n`);
|
|
47
|
-
});
|
|
48
|
-
console.log(chalk.gray('\nUse "outfitter add <fieldguide>" to install fieldguides'));
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
//# sourceMappingURL=list.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/pack.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,WAAW,SAsErB,CAAC"}
|
package/dist/commands/pack.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import { readJSON, writeJSON, pathExists } from 'fs-extra';
|
|
4
|
-
import { join } from 'path';
|
|
5
|
-
export const packCommand = new Command('pack')
|
|
6
|
-
.description('Manage fieldguide configurations (packlists)')
|
|
7
|
-
.addCommand(new Command('export')
|
|
8
|
-
.description('Export current configuration as a packlist')
|
|
9
|
-
.option('-o, --output <file>', 'Output file', 'packlist.json')
|
|
10
|
-
.action(async (options) => {
|
|
11
|
-
const cwd = process.cwd();
|
|
12
|
-
const configPath = join(cwd, '.outfitter', 'config.json');
|
|
13
|
-
if (!(await pathExists(configPath))) {
|
|
14
|
-
console.error(chalk.red('Project not initialized. Run "outfitter init" first.'));
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
const config = await readJSON(configPath);
|
|
18
|
-
const packlist = {
|
|
19
|
-
name: 'Custom Packlist',
|
|
20
|
-
version: '1.0.0',
|
|
21
|
-
fieldguides: config.fieldguides || config.supplies || [], // Support old 'supplies' key
|
|
22
|
-
created: new Date().toISOString(),
|
|
23
|
-
};
|
|
24
|
-
await writeJSON(join(cwd, options.output), packlist, { spaces: 2 });
|
|
25
|
-
console.log(chalk.green('✓') +
|
|
26
|
-
' Exported packlist to ' +
|
|
27
|
-
chalk.cyan(options.output));
|
|
28
|
-
}))
|
|
29
|
-
.addCommand(new Command('import')
|
|
30
|
-
.description('Import a packlist configuration')
|
|
31
|
-
.argument('<file>', 'Packlist file to import')
|
|
32
|
-
.action(async (file) => {
|
|
33
|
-
const cwd = process.cwd();
|
|
34
|
-
const configPath = join(cwd, '.outfitter', 'config.json');
|
|
35
|
-
const packlistPath = join(cwd, file);
|
|
36
|
-
if (!(await pathExists(packlistPath))) {
|
|
37
|
-
console.error(chalk.red(`Packlist file not found: ${file}`));
|
|
38
|
-
process.exit(1);
|
|
39
|
-
}
|
|
40
|
-
const packlist = await readJSON(packlistPath);
|
|
41
|
-
if (!(packlist.fieldguides || packlist.supplies) ||
|
|
42
|
-
!Array.isArray(packlist.fieldguides || packlist.supplies)) {
|
|
43
|
-
console.error(chalk.red('Invalid packlist format'));
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
// Initialize if needed
|
|
47
|
-
if (!(await pathExists(configPath))) {
|
|
48
|
-
console.log(chalk.yellow('Initializing project...'));
|
|
49
|
-
// Create minimal config
|
|
50
|
-
}
|
|
51
|
-
console.log(chalk.green('✓') +
|
|
52
|
-
` Imported ${(packlist.fieldguides || packlist.supplies).length} fieldguides from ${chalk.cyan(packlist.name)}`);
|
|
53
|
-
}));
|
|
54
|
-
//# sourceMappingURL=pack.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,aAAa,SAiDtB,CAAC"}
|
package/dist/commands/update.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import chalk from 'chalk';
|
|
3
|
-
import ora from 'ora';
|
|
4
|
-
import { readJSON, pathExists } from 'fs-extra';
|
|
5
|
-
import { join } from 'path';
|
|
6
|
-
export const updateCommand = new Command('update')
|
|
7
|
-
.description('Update fieldguides to latest versions')
|
|
8
|
-
.option('-c, --check', 'Check for updates without installing')
|
|
9
|
-
.action(async (options) => {
|
|
10
|
-
const cwd = process.cwd();
|
|
11
|
-
const configPath = join(cwd, '.outfitter', 'config.json');
|
|
12
|
-
if (!(await pathExists(configPath))) {
|
|
13
|
-
console.error(chalk.red('Project not initialized. Run "outfitter init" first.'));
|
|
14
|
-
process.exit(1);
|
|
15
|
-
}
|
|
16
|
-
const config = await readJSON(configPath);
|
|
17
|
-
if (options.check) {
|
|
18
|
-
console.log(chalk.cyan('Checking for updates...\n'));
|
|
19
|
-
// TODO: In real implementation, check against registry
|
|
20
|
-
console.log(chalk.yellow('⚠') +
|
|
21
|
-
' typescript-standards: ' +
|
|
22
|
-
chalk.green('v1.2.0') +
|
|
23
|
-
' → ' +
|
|
24
|
-
chalk.cyan('v1.3.0'));
|
|
25
|
-
console.log(chalk.green('✓') + ' react-patterns: up to date');
|
|
26
|
-
console.log(chalk.green('✓') + ' testing-standards: up to date');
|
|
27
|
-
console.log('\n' + chalk.gray('Run "outfitter update" to install updates'));
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
const spinner = ora('Updating fieldguides...').start();
|
|
31
|
-
try {
|
|
32
|
-
// TODO: Actually fetch and update files
|
|
33
|
-
await new Promise(resolve => setTimeout(resolve, 1500)); // Simulate work
|
|
34
|
-
spinner.succeed('Fieldguides updated successfully!');
|
|
35
|
-
console.log('\n' + chalk.green('Updated:'));
|
|
36
|
-
console.log(' • typescript-standards: v1.2.0 → v1.3.0');
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
spinner.fail('Failed to update fieldguides');
|
|
40
|
-
throw error;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
//# sourceMappingURL=update.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,uCAAuC,CAAC;KACpD,MAAM,CAAC,aAAa,EAAE,sCAAsC,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE;IACtB,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAE1D,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAClE,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE1C,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAErD,uDAAuD;QACvD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;YACf,0BAA0B;YAC1B,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrB,KAAK;YACL,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CACvB,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,8BAA8B,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,iCAAiC,CAAC,CAAC;QAElE,OAAO,CAAC,GAAG,CACT,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAC/D,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEvD,IAAI,CAAC;YACH,wCAAwC;YACxC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB;YAEzE,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;YAErD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YAC7C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC"}
|