mirror of
https://github.com/actualbudget/actual.git
synced 2026-05-07 04:18:51 -05:00
* [AI] Add publishConfig.imports sync validator with pre-commit integration Add a TypeScript script that validates publishConfig.imports stays in sync with imports in all packages/*/package.json files. Runs automatically in the pre-commit hook via lint-staged with --fix mode. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [AI] Add release notes for #7469 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [AI] Guard main() with require.main and respect lint-staged file args Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * [AI] Handle non-string imports targets in derivePublishImports - Add type guard to check for non-string values in imports - Throw descriptive error when conditional imports are encountered - Update type signature to accept Record<string, string | object> - Add test case for non-string imports error handling This prevents TypeError when packages have conditional imports (e.g., #browser-preload in desktop-client) Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com> * [AI] Limit resolvePackageJsonPaths scope to packages directory - Add packagesRoot constant to restrict path resolution - Update while loop condition to only traverse within packages directory - Add additional check to ensure candidate paths are under packages/ - Prevents resolution to repo root package.json for missing/deleted files This ensures the validator only processes package.json files under packages/* and avoids accidentally targeting the monorepo root manifest. Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
61 lines
1.5 KiB
JSON
61 lines
1.5 KiB
JSON
{
|
|
"references": [
|
|
{ "path": "./packages/crdt" },
|
|
{ "path": "./packages/component-library" },
|
|
{ "path": "./packages/plugins-service" },
|
|
{ "path": "./packages/loot-core" },
|
|
{ "path": "./packages/api" },
|
|
{ "path": "./packages/desktop-client" },
|
|
{ "path": "./packages/sync-server" },
|
|
{ "path": "./packages/desktop-electron" },
|
|
{ "path": "./packages/cli" }
|
|
],
|
|
"compilerOptions": {
|
|
"target": "ES2022",
|
|
"lib": ["ES2022", "DOM", "DOM.Iterable"],
|
|
"allowSyntheticDefaultImports": true,
|
|
"esModuleInterop": true,
|
|
"experimentalDecorators": true,
|
|
"resolveJsonModule": true,
|
|
"downlevelIteration": true,
|
|
// TODO: enable once every file is ts
|
|
// "strict": true,
|
|
"strictFunctionTypes": true,
|
|
"noFallthroughCasesInSwitch": true,
|
|
"skipLibCheck": true,
|
|
"jsx": "preserve",
|
|
"types": ["vite/client", "vitest/globals"],
|
|
// Check JS files too
|
|
"allowJs": true,
|
|
"checkJs": false,
|
|
// Used for temp builds
|
|
"outDir": "build",
|
|
"moduleResolution": "bundler",
|
|
"module": "es2022",
|
|
// Until/if we build using tsc
|
|
"noEmit": true
|
|
},
|
|
"include": ["bin/*.ts"],
|
|
"exclude": [
|
|
"**/.*/",
|
|
"node_modules",
|
|
"**/node_modules/*",
|
|
"**/build/*",
|
|
"**/build-electron/*",
|
|
"**/client-build/*",
|
|
"**/dist/*",
|
|
"**/lib-dist/*",
|
|
"packages/*/@types",
|
|
"**/test-results/*",
|
|
"**/playwright-report/*",
|
|
"**/service-worker/*",
|
|
"packages/docs/**/*"
|
|
],
|
|
"ts-node": {
|
|
"compilerOptions": {
|
|
"module": "CommonJS",
|
|
"types": ["node"]
|
|
}
|
|
}
|
|
}
|