mycontext-cli 4.2.21 → 4.2.22
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 +37 -4
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +4 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +96 -16
- package/dist/commands/init.js.map +1 -1
- package/dist/doctor/DoctorEngine.d.ts.map +1 -1
- package/dist/doctor/DoctorEngine.js +5 -65
- package/dist/doctor/DoctorEngine.js.map +1 -1
- package/dist/doctor/rules/cli-rules.d.ts +3 -0
- package/dist/doctor/rules/cli-rules.d.ts.map +1 -0
- package/dist/doctor/rules/cli-rules.js +57 -0
- package/dist/doctor/rules/cli-rules.js.map +1 -0
- package/dist/doctor/rules/drift-rules.d.ts +3 -0
- package/dist/doctor/rules/drift-rules.d.ts.map +1 -0
- package/dist/doctor/rules/drift-rules.js +69 -0
- package/dist/doctor/rules/drift-rules.js.map +1 -0
- package/dist/doctor/rules/i18n-rules.d.ts +3 -0
- package/dist/doctor/rules/i18n-rules.d.ts.map +1 -0
- package/dist/doctor/rules/i18n-rules.js +183 -0
- package/dist/doctor/rules/i18n-rules.js.map +1 -0
- package/dist/doctor/rules/index.d.ts.map +1 -1
- package/dist/doctor/rules/index.js +6 -0
- package/dist/doctor/rules/index.js.map +1 -1
- package/dist/doctor/types.d.ts +3 -1
- package/dist/doctor/types.d.ts.map +1 -1
- package/dist/services/ProjectScanner.d.ts +1 -0
- package/dist/services/ProjectScanner.d.ts.map +1 -1
- package/dist/services/ProjectScanner.js +31 -5
- package/dist/services/ProjectScanner.js.map +1 -1
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/utils/fileSystem.d.ts +2 -2
- package/dist/utils/fileSystem.d.ts.map +1 -1
- package/dist/utils/fileSystem.js +26 -4
- package/dist/utils/fileSystem.js.map +1 -1
- package/dist/utils/workspace.d.ts +17 -0
- package/dist/utils/workspace.d.ts.map +1 -0
- package/dist/utils/workspace.js +154 -0
- package/dist/utils/workspace.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DoctorEngine.js","sourceRoot":"","sources":["../../src/doctor/DoctorEngine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DoctorEngine.js","sourceRoot":"","sources":["../../src/doctor/DoctorEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules/cli-rules.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAc,MAAM,UAAU,CAAC;AAwDvD,eAAO,MAAM,QAAQ,EAAE,UAAU,EAGhC,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cliRules = void 0;
|
|
4
|
+
const cliVersion = {
|
|
5
|
+
id: "cli/version",
|
|
6
|
+
name: "CLI Version Compatibility",
|
|
7
|
+
category: "node",
|
|
8
|
+
severity: "warning",
|
|
9
|
+
description: "Check if the CLI version is compatible with the project setup",
|
|
10
|
+
help: "Run 'npm install -g @myycontext/cli@latest' to update your CLI",
|
|
11
|
+
appliesTo: ["node", "nextjs", "turbo"],
|
|
12
|
+
async check(ctx) {
|
|
13
|
+
const results = [];
|
|
14
|
+
const pkg = await ctx.readJson("package.json");
|
|
15
|
+
// In a real scenario, we'd compare against a minimum required version
|
|
16
|
+
// For now, we'll just check if the CLI itself is a reasonable version
|
|
17
|
+
return results;
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
const configHealth = {
|
|
21
|
+
id: "mycontext/config-health",
|
|
22
|
+
name: "MyContext Config Health",
|
|
23
|
+
category: "node",
|
|
24
|
+
severity: "error",
|
|
25
|
+
description: "Verify that MyContext configuration files are present and valid",
|
|
26
|
+
help: "Run 'mycontext init' to repair your project configuration",
|
|
27
|
+
appliesTo: ["node", "nextjs", "turbo"],
|
|
28
|
+
async check(ctx) {
|
|
29
|
+
const results = [];
|
|
30
|
+
if (!(await ctx.fileExists(".mycontext/config.json"))) {
|
|
31
|
+
results.push({
|
|
32
|
+
ruleId: this.id,
|
|
33
|
+
filePath: ".mycontext/config.json",
|
|
34
|
+
severity: "error",
|
|
35
|
+
message: "Missing config.json in .mycontext directory",
|
|
36
|
+
help: "Run 'mycontext init' to re-initialize your project",
|
|
37
|
+
autoFixable: false
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
if (!(await ctx.fileExists(".mycontext/context.json"))) {
|
|
41
|
+
results.push({
|
|
42
|
+
ruleId: this.id,
|
|
43
|
+
filePath: ".mycontext/context.json",
|
|
44
|
+
severity: "error",
|
|
45
|
+
message: "Missing context.json (Living Brain) in .mycontext directory",
|
|
46
|
+
help: "Run 'mycontext sync' or 'mycontext generate context' to build your brain",
|
|
47
|
+
autoFixable: false
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return results;
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
exports.cliRules = [
|
|
54
|
+
cliVersion,
|
|
55
|
+
configHealth,
|
|
56
|
+
];
|
|
57
|
+
//# sourceMappingURL=cli-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/cli-rules.ts"],"names":[],"mappings":";;;AAGA,MAAM,UAAU,GAAe;IAC7B,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,2BAA2B;IACjC,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,SAAS;IACnB,WAAW,EAAE,+DAA+D;IAC5E,IAAI,EAAE,gEAAgE;IACtE,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IACtC,KAAK,CAAC,KAAK,CAAC,GAAG;QACb,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAC/C,sEAAsE;QACtE,sEAAsE;QACtE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEF,MAAM,YAAY,GAAe;IAC/B,EAAE,EAAE,yBAAyB;IAC7B,IAAI,EAAE,yBAAyB;IAC/B,QAAQ,EAAE,MAAM;IAChB,QAAQ,EAAE,OAAO;IACjB,WAAW,EAAE,iEAAiE;IAC9E,IAAI,EAAE,2DAA2D;IACjE,SAAS,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;IACtC,KAAK,CAAC,KAAK,CAAC,GAAG;QACb,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,wBAAwB;gBAClC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,6CAA6C;gBACtD,IAAI,EAAE,oDAAoD;gBAC1D,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,IAAI,CAAC,EAAE;gBACf,QAAQ,EAAE,yBAAyB;gBACnC,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,6DAA6D;gBACtE,IAAI,EAAE,0EAA0E;gBAChF,WAAW,EAAE,KAAK;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC;AAEW,QAAA,QAAQ,GAAiB;IACpC,UAAU;IACV,YAAY;CACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift-rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules/drift-rules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAwC,MAAM,UAAU,CAAC;AA2EjF,eAAO,MAAM,UAAU,EAAE,UAAU,EAGlC,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.driftRules = void 0;
|
|
4
|
+
function diag(rule, filePath, message, opts = {}) {
|
|
5
|
+
return {
|
|
6
|
+
ruleId: rule.id,
|
|
7
|
+
filePath,
|
|
8
|
+
line: opts.line,
|
|
9
|
+
severity: rule.severity,
|
|
10
|
+
message,
|
|
11
|
+
help: opts.help || rule.help,
|
|
12
|
+
autoFixable: opts.autoFixable ?? false,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const PROJECT_TYPES = ["nextjs", "turbo", "node"];
|
|
16
|
+
const contextExists = {
|
|
17
|
+
id: "drift/context-exists",
|
|
18
|
+
name: "Context Exists",
|
|
19
|
+
category: "node", // Using node as a fallback for structural rules
|
|
20
|
+
severity: "error",
|
|
21
|
+
description: "Verify that .mycontext/context.json exists and is valid",
|
|
22
|
+
help: "Run 'mycontext sync' to generate or repair the Living Brain",
|
|
23
|
+
appliesTo: PROJECT_TYPES,
|
|
24
|
+
async check(ctx) {
|
|
25
|
+
const results = [];
|
|
26
|
+
const brainPath = ".mycontext/context.json";
|
|
27
|
+
if (!(await ctx.fileExists(brainPath))) {
|
|
28
|
+
results.push(diag(this, brainPath, "Living Brain (context.json) is missing"));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const brain = await ctx.readJson(brainPath);
|
|
32
|
+
if (!brain || !brain.prd || !brain.features) {
|
|
33
|
+
results.push(diag(this, brainPath, "Living Brain is corrupted or incomplete"));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return results;
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
const featureDrift = {
|
|
40
|
+
id: "drift/feature-drift",
|
|
41
|
+
name: "Feature Drift",
|
|
42
|
+
category: "node",
|
|
43
|
+
severity: "warning",
|
|
44
|
+
description: "Detect features in context.json that have no corresponding code",
|
|
45
|
+
help: "Implement the missing feature or remove it from context.json if abandoned",
|
|
46
|
+
appliesTo: PROJECT_TYPES,
|
|
47
|
+
async check(ctx) {
|
|
48
|
+
const results = [];
|
|
49
|
+
const brain = await ctx.readJson(".mycontext/context.json");
|
|
50
|
+
if (!brain || !brain.features || !Array.isArray(brain.features))
|
|
51
|
+
return results;
|
|
52
|
+
const allFiles = await ctx.findFiles(/\..*$/); // Get all files
|
|
53
|
+
for (const feature of brain.features) {
|
|
54
|
+
const featureName = feature.name.toLowerCase().replace(/\s+/g, "-");
|
|
55
|
+
// Heuristic: look for a directory or key file named after the feature
|
|
56
|
+
const hasCode = allFiles.some(f => f.toLowerCase().includes(`/${featureName}/`) ||
|
|
57
|
+
f.toLowerCase().includes(`${featureName}.`));
|
|
58
|
+
if (!hasCode) {
|
|
59
|
+
results.push(diag(this, ".mycontext/context.json", `Feature "${feature.name}" has no corresponding implementation code`));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return results;
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
exports.driftRules = [
|
|
66
|
+
contextExists,
|
|
67
|
+
featureDrift,
|
|
68
|
+
];
|
|
69
|
+
//# sourceMappingURL=drift-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drift-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/drift-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules/i18n-rules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAwC,MAAM,UAAU,CAAC;AAyJjF,eAAO,MAAM,SAAS,EAAE,UAAU,EAKjC,CAAC"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.i18nRules = void 0;
|
|
37
|
+
/**
|
|
38
|
+
* i18n Rules — Deterministic checks for internationalization coverage and sync
|
|
39
|
+
*/
|
|
40
|
+
const path = __importStar(require("path"));
|
|
41
|
+
function diag(rule, filePath, message, opts = {}) {
|
|
42
|
+
return {
|
|
43
|
+
ruleId: rule.id,
|
|
44
|
+
filePath,
|
|
45
|
+
line: opts.line,
|
|
46
|
+
severity: rule.severity,
|
|
47
|
+
message,
|
|
48
|
+
help: opts.help || rule.help,
|
|
49
|
+
autoFixable: opts.autoFixable ?? false,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
// ─── Rules ────────────────────────────────────────────────────────
|
|
53
|
+
const PROJECT_TYPES = ["nextjs", "turbo", "node"];
|
|
54
|
+
const i18nConfigured = {
|
|
55
|
+
id: "i18n/configured",
|
|
56
|
+
name: "i18n Configured",
|
|
57
|
+
category: "i18n",
|
|
58
|
+
severity: "warning",
|
|
59
|
+
description: "Check if i18n is configured in .mycontext/config.json",
|
|
60
|
+
help: "Run 'mycontext init' to configure i18n or manually add it to config.json",
|
|
61
|
+
appliesTo: PROJECT_TYPES,
|
|
62
|
+
async check(ctx) {
|
|
63
|
+
const results = [];
|
|
64
|
+
const config = await ctx.readJson(".mycontext/config.json");
|
|
65
|
+
if (!config?.i18n) {
|
|
66
|
+
results.push(diag(this, ".mycontext/config.json", "i18n is not configured for this project"));
|
|
67
|
+
}
|
|
68
|
+
return results;
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
const dictionariesExist = {
|
|
72
|
+
id: "i18n/dictionaries-exist",
|
|
73
|
+
name: "Dictionaries Exist",
|
|
74
|
+
category: "i18n",
|
|
75
|
+
severity: "error",
|
|
76
|
+
description: "Verify that configured i18n dictionaries actually exist",
|
|
77
|
+
help: "Create the dictionary files in the path specified in config.json",
|
|
78
|
+
appliesTo: PROJECT_TYPES,
|
|
79
|
+
async check(ctx) {
|
|
80
|
+
const results = [];
|
|
81
|
+
const config = await ctx.readJson(".mycontext/config.json");
|
|
82
|
+
const i18n = config?.i18n;
|
|
83
|
+
if (!i18n)
|
|
84
|
+
return results;
|
|
85
|
+
for (const locale of i18n.locales) {
|
|
86
|
+
const dictPath = path.join(i18n.dictionaryPath, `${locale}.json`);
|
|
87
|
+
if (!(await ctx.fileExists(dictPath))) {
|
|
88
|
+
results.push(diag(this, dictPath, `Missing dictionary file for locale: ${locale}`));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return results;
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
const hardcodedStrings = {
|
|
95
|
+
id: "i18n/no-hardcoded-strings",
|
|
96
|
+
name: "No Hardcoded Strings",
|
|
97
|
+
category: "i18n",
|
|
98
|
+
severity: "warning",
|
|
99
|
+
description: "Detect hardcoded strings in components that should be localized",
|
|
100
|
+
help: "Move strings to i18n dictionaries and use translate hooks (e.g., t('key'))",
|
|
101
|
+
appliesTo: PROJECT_TYPES,
|
|
102
|
+
async check(ctx) {
|
|
103
|
+
const results = [];
|
|
104
|
+
const config = await ctx.readJson(".mycontext/config.json");
|
|
105
|
+
if (!config?.i18n)
|
|
106
|
+
return results;
|
|
107
|
+
// Use findFiles to get components
|
|
108
|
+
const allTsx = await ctx.findFiles(/\.tsx$/);
|
|
109
|
+
const componentFiles = allTsx.filter(f => !f.includes("components/ui/") && // Skip shadcn UI
|
|
110
|
+
!f.includes(".stories."));
|
|
111
|
+
for (const filePath of componentFiles) {
|
|
112
|
+
const content = await ctx.readFile(filePath);
|
|
113
|
+
if (!content)
|
|
114
|
+
continue;
|
|
115
|
+
const hardcodedRegex = />([^<>{}\n\r]+)</g;
|
|
116
|
+
let match;
|
|
117
|
+
while ((match = hardcodedRegex.exec(content)) !== null) {
|
|
118
|
+
const capturedText = match[1];
|
|
119
|
+
if (!capturedText)
|
|
120
|
+
continue;
|
|
121
|
+
const text = capturedText.trim();
|
|
122
|
+
if (text.length > 3 && /[a-zA-Z]/.test(text) && !text.includes("import ") && !text.includes("export ")) {
|
|
123
|
+
const lines = content.substring(0, match.index).split("\n");
|
|
124
|
+
results.push(diag(this, filePath, `Potential hardcoded string found: "${text}"`, { line: lines.length }));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return results;
|
|
129
|
+
},
|
|
130
|
+
};
|
|
131
|
+
const dictionarySync = {
|
|
132
|
+
id: "i18n/dictionary-sync",
|
|
133
|
+
name: "Dictionary Key Sync",
|
|
134
|
+
category: "i18n",
|
|
135
|
+
severity: "error",
|
|
136
|
+
description: "Ensure all locales have the same keys in their dictionaries",
|
|
137
|
+
help: "Sync missing keys between dictionary files",
|
|
138
|
+
appliesTo: PROJECT_TYPES,
|
|
139
|
+
async check(ctx) {
|
|
140
|
+
const results = [];
|
|
141
|
+
const config = await ctx.readJson(".mycontext/config.json");
|
|
142
|
+
const i18n = config?.i18n;
|
|
143
|
+
if (!i18n || i18n.locales.length < 2)
|
|
144
|
+
return results;
|
|
145
|
+
const defaultDict = await ctx.readJson(path.join(i18n.dictionaryPath, `${i18n.defaultLocale}.json`));
|
|
146
|
+
if (!defaultDict)
|
|
147
|
+
return results;
|
|
148
|
+
const defaultKeys = new Set(Object.keys(flattenObject(defaultDict)));
|
|
149
|
+
for (const locale of i18n.locales) {
|
|
150
|
+
if (locale === i18n.defaultLocale)
|
|
151
|
+
continue;
|
|
152
|
+
const dictPath = path.join(i18n.dictionaryPath, `${locale}.json`);
|
|
153
|
+
const dict = await ctx.readJson(dictPath);
|
|
154
|
+
if (!dict)
|
|
155
|
+
continue;
|
|
156
|
+
const keys = new Set(Object.keys(flattenObject(dict)));
|
|
157
|
+
const missing = [...defaultKeys].filter(k => !keys.has(k));
|
|
158
|
+
if (missing.length > 0) {
|
|
159
|
+
results.push(diag(this, dictPath, `Locale "${locale}" is missing keys from "${i18n.defaultLocale}": ${missing.slice(0, 3).join(", ")}${missing.length > 3 ? "..." : ""}`));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return results;
|
|
163
|
+
},
|
|
164
|
+
};
|
|
165
|
+
function flattenObject(obj, prefix = "") {
|
|
166
|
+
return Object.keys(obj).reduce((acc, k) => {
|
|
167
|
+
const pre = prefix.length ? prefix + "." : "";
|
|
168
|
+
if (typeof obj[k] === "object" && obj[k] !== null && !Array.isArray(obj[k])) {
|
|
169
|
+
Object.assign(acc, flattenObject(obj[k], pre + k));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
acc[pre + k] = obj[k];
|
|
173
|
+
}
|
|
174
|
+
return acc;
|
|
175
|
+
}, {});
|
|
176
|
+
}
|
|
177
|
+
exports.i18nRules = [
|
|
178
|
+
i18nConfigured,
|
|
179
|
+
dictionariesExist,
|
|
180
|
+
hardcodedStrings,
|
|
181
|
+
dictionarySync,
|
|
182
|
+
];
|
|
183
|
+
//# sourceMappingURL=i18n-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-rules.js","sourceRoot":"","sources":["../../../src/doctor/rules/i18n-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,eAAO,MAAM,QAAQ,EAAE,UAAU,EAWhC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -18,6 +18,9 @@ const instantdb_rules_1 = require("./instantdb-rules");
|
|
|
18
18
|
Object.defineProperty(exports, "instantdbRules", { enumerable: true, get: function () { return instantdb_rules_1.instantdbRules; } });
|
|
19
19
|
const security_rules_1 = require("./security-rules");
|
|
20
20
|
Object.defineProperty(exports, "securityRules", { enumerable: true, get: function () { return security_rules_1.securityRules; } });
|
|
21
|
+
const cli_rules_1 = require("./cli-rules");
|
|
22
|
+
const i18n_rules_1 = require("./i18n-rules");
|
|
23
|
+
const drift_rules_1 = require("./drift-rules");
|
|
21
24
|
exports.allRules = [
|
|
22
25
|
...nextjs_rules_1.nextjsRules,
|
|
23
26
|
...turbo_rules_1.turboRules,
|
|
@@ -26,5 +29,8 @@ exports.allRules = [
|
|
|
26
29
|
...typescript_rules_1.typescriptRules,
|
|
27
30
|
...instantdb_rules_1.instantdbRules,
|
|
28
31
|
...security_rules_1.securityRules,
|
|
32
|
+
...cli_rules_1.cliRules,
|
|
33
|
+
...i18n_rules_1.i18nRules,
|
|
34
|
+
...drift_rules_1.driftRules,
|
|
29
35
|
];
|
|
30
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/rules/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,iDAA6C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/rules/index.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,iDAA6C;AAyBpC,4FAzBA,0BAAW,OAyBA;AAxBpB,+CAA2C;AAwBrB,2FAxBb,wBAAU,OAwBa;AAvBhC,6CAAyC;AAuBP,0FAvBzB,sBAAS,OAuByB;AAtB3C,uDAAkD;AAsBL,8FAtBpC,+BAAa,OAsBoC;AArB1D,yDAAqD;AAqBO,gGArBnD,kCAAe,OAqBmD;AApB3E,uDAAmD;AAoB0B,+FApBpE,gCAAc,OAoBoE;AAnB3F,qDAAiD;AAmB4C,8FAnBpF,8BAAa,OAmBoF;AAlB1G,2CAAuC;AACvC,6CAAyC;AACzC,+CAA2C;AAG9B,QAAA,QAAQ,GAAiB;IACpC,GAAG,0BAAW;IACd,GAAG,wBAAU;IACb,GAAG,sBAAS;IACZ,GAAG,+BAAa;IAChB,GAAG,kCAAe;IAClB,GAAG,gCAAc;IACjB,GAAG,8BAAa;IAChB,GAAG,oBAAQ;IACX,GAAG,sBAAS;IACZ,GAAG,wBAAU;CACd,CAAC"}
|
package/dist/doctor/types.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface WorkspaceInfo {
|
|
|
22
22
|
type: ProjectType;
|
|
23
23
|
hasPackageJson: boolean;
|
|
24
24
|
}
|
|
25
|
-
export type DoctorCategory = "nextjs" | "turbo" | "node" | "dead" | "security";
|
|
25
|
+
export type DoctorCategory = "nextjs" | "turbo" | "node" | "dead" | "security" | "i18n";
|
|
26
26
|
export interface Diagnostic {
|
|
27
27
|
ruleId: string;
|
|
28
28
|
filePath: string;
|
|
@@ -74,6 +74,7 @@ export interface DoctorOptions {
|
|
|
74
74
|
verbose?: boolean;
|
|
75
75
|
score?: boolean;
|
|
76
76
|
project?: string;
|
|
77
|
+
scope?: string;
|
|
77
78
|
category?: DoctorCategory;
|
|
78
79
|
dryRun?: boolean;
|
|
79
80
|
json?: boolean;
|
|
@@ -84,5 +85,6 @@ export interface DiagnoseOptions {
|
|
|
84
85
|
deadCode?: boolean;
|
|
85
86
|
category?: DoctorCategory;
|
|
86
87
|
project?: string;
|
|
88
|
+
scope?: string;
|
|
87
89
|
}
|
|
88
90
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/doctor/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;IAC5D,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAID,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/doctor/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectScanner.d.ts","sourceRoot":"","sources":["../../src/services/ProjectScanner.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;IAC3E,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,qBAAqB,EAAE,GAAG,CAAC;CAC5B;
|
|
1
|
+
{"version":3,"file":"ProjectScanner.d.ts","sourceRoot":"","sources":["../../src/services/ProjectScanner.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,GAAG,UAAU,GAAG,YAAY,CAAC;IAC3E,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAClE,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,qBAAqB,EAAE,GAAG,CAAC;CAC5B;AA6CD,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,EAAE,CAAuB;gBAErB,WAAW,GAAE,MAAsB;IAI/C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAwDtC;;OAEG;YACW,aAAa;IA4F3B;;OAEG;YACW,eAAe;IAe7B;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,GAAG,GACnB,OAAO,CAAC,iBAAiB,CAAC;IA8E7B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAYhD;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IA8B9C;;OAEG;IACH,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,eAAe;CAMxB"}
|
|
@@ -84,6 +84,7 @@ const KEY_FILE_PATTERNS = [
|
|
|
84
84
|
/constants\/.*\.(ts|js)$/,
|
|
85
85
|
/services\/.*\.(ts|js)$/,
|
|
86
86
|
/providers\/.*\.(ts|js)$/,
|
|
87
|
+
/dictionaries\/.*\.json$/,
|
|
87
88
|
];
|
|
88
89
|
const MAX_FILE_READ_SIZE = 4000; // chars per file
|
|
89
90
|
const MAX_KEY_FILES = 80; // increased for larger projects
|
|
@@ -107,9 +108,29 @@ class ProjectScanner {
|
|
|
107
108
|
apiFiles: 0,
|
|
108
109
|
schemaFiles: 0,
|
|
109
110
|
testFiles: 0,
|
|
111
|
+
i18nFiles: 0,
|
|
110
112
|
};
|
|
111
|
-
//
|
|
112
|
-
|
|
113
|
+
// Load scope and ignore from config if available
|
|
114
|
+
let scope;
|
|
115
|
+
let ignore;
|
|
116
|
+
try {
|
|
117
|
+
const configPath = path.join(this.projectRoot, ".mycontext", "config.json");
|
|
118
|
+
if (fs.existsSync(configPath)) {
|
|
119
|
+
const config = fs.readJsonSync(configPath);
|
|
120
|
+
scope = config.scope;
|
|
121
|
+
ignore = config.ignore;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
catch (e) { }
|
|
125
|
+
// Walk the tree (either root or specific scopes)
|
|
126
|
+
if (scope && scope.length > 0) {
|
|
127
|
+
for (const s of scope) {
|
|
128
|
+
await this.walkDirectory(s, fileTree, stats, 0, ignore);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
await this.walkDirectory("", fileTree, stats, 0, ignore);
|
|
133
|
+
}
|
|
113
134
|
// Read key files (truncated)
|
|
114
135
|
for (const entry of fileTree) {
|
|
115
136
|
if (entry.type !== "file")
|
|
@@ -134,7 +155,7 @@ class ProjectScanner {
|
|
|
134
155
|
/**
|
|
135
156
|
* Recursively walk a directory
|
|
136
157
|
*/
|
|
137
|
-
async walkDirectory(relativePath, entries, stats, depth) {
|
|
158
|
+
async walkDirectory(relativePath, entries, stats, depth, ignorePatterns) {
|
|
138
159
|
if (depth > MAX_TREE_DEPTH)
|
|
139
160
|
return;
|
|
140
161
|
const fullPath = path.join(this.projectRoot, relativePath);
|
|
@@ -146,11 +167,14 @@ class ProjectScanner {
|
|
|
146
167
|
return;
|
|
147
168
|
}
|
|
148
169
|
for (const item of items) {
|
|
170
|
+
const itemRelPath = relativePath ? `${relativePath}/${item}` : item;
|
|
171
|
+
// Check ignore patterns
|
|
172
|
+
if (ignorePatterns && ignorePatterns.some(p => itemRelPath.includes(p) || item.includes(p)))
|
|
173
|
+
continue;
|
|
149
174
|
if (IGNORE_DIRS.has(item) && depth < 2)
|
|
150
175
|
continue; // Allow nested dirs with same name
|
|
151
176
|
if (item.startsWith(".") && item !== ".env.example")
|
|
152
177
|
continue;
|
|
153
|
-
const itemRelPath = relativePath ? `${relativePath}/${item}` : item;
|
|
154
178
|
const itemFullPath = path.join(this.projectRoot, itemRelPath);
|
|
155
179
|
let stat;
|
|
156
180
|
try {
|
|
@@ -164,7 +188,7 @@ class ProjectScanner {
|
|
|
164
188
|
continue;
|
|
165
189
|
stats.totalDirs++;
|
|
166
190
|
entries.push({ path: itemRelPath, type: "dir" });
|
|
167
|
-
await this.walkDirectory(itemRelPath, entries, stats, depth + 1);
|
|
191
|
+
await this.walkDirectory(itemRelPath, entries, stats, depth + 1, ignorePatterns);
|
|
168
192
|
}
|
|
169
193
|
else if (stat.isFile()) {
|
|
170
194
|
const ext = path.extname(item);
|
|
@@ -180,6 +204,8 @@ class ProjectScanner {
|
|
|
180
204
|
// Categorize
|
|
181
205
|
if (/page\.(tsx|jsx)$/.test(item) || /route\.(tsx|jsx|ts)$/.test(item))
|
|
182
206
|
stats.routeFiles++;
|
|
207
|
+
if (itemRelPath.includes("dictionaries/") && item.endsWith(".json"))
|
|
208
|
+
stats.i18nFiles++;
|
|
183
209
|
// BUT exclude Next.js convention files and non-component directories
|
|
184
210
|
const isNextJsConvention = /^(page|layout|loading|error|not-found|template|route|middleware|global-error)\.(tsx|jsx|ts|js)$/.test(item);
|
|
185
211
|
const isInMyContext = itemRelPath.startsWith(".mycontext/") || itemRelPath.includes("/.mycontext/");
|