sverklo audit
D
Overall Health
C
Dead code
20% orphan symbols (145/714)
F
Circular deps
29 cycles detected
C
Coupling
max fan-in: 22 (packages/core/src/expression-builders/base-sql-expression.ts)
F
Security
7 concerns found
Overview
- 784 files indexed
- 3241 code symbols extracted
- 28861 symbol references tracked
- 0 active memories (0 core, 0 stale)
- Languages: typescript (546), javascript (238)
God Nodes (most-referenced symbols)
These are the symbols your codebase depends on most. Changes here have the largest blast radius.
- expectsql — 482 references
- validate — 173 references
- sql — 166 references
- build — 165 references
- quoteIdentifier — 164 references
- Attribute — 159 references
- count — 113 references
- update — 106 references
- getTestDialectTeaser — 91 references
- getTestDialect — 91 references
Hub Files (highest PageRank)
Core architectural files — imported by many others.
packages/core/test/support.ts(1.00)packages/core/test/config/config.ts(0.86)packages/core/test/integration/support.ts(0.51)packages/core/test/types/models/user.ts(0.16)packages/core/test/types/connection.ts(0.12)packages/core/src/utils/deprecations.ts(0.09)packages/core/src/expression-builders/base-sql-expression.ts(0.08)packages/core/src/errors/base-error.ts(0.08)packages/utils/src/common/_internal/build-predicate-function.ts(0.06)packages/core/test/types/models/user-group.ts(0.05)
Orphans (potential dead code)
Named functions with zero detected references. Could be dead code, public API exports, or referenced dynamically.
- getComplexSize —
packages/core/src/utils/where.ts:21 - resolveDialectClass —
packages/cli/src/_internal/config.ts:23 - Unquote —
packages/core/src/expression-builders/dialect-aware-fn.ts:87 - addAllIncludes —
packages/core/src/model.js:529 - recursiveBulkCreate —
packages/core/src/model.js:2298 - setKeys —
packages/core/src/model.js:3606 - combineWheresWithAnd —
packages/core/src/model.js:4675 - mergeDefaults —
packages/core/src/utils/object.ts:27 - flattenObject —
packages/core/src/utils/object.ts:136 - removeNullish —
packages/core/src/utils/object.ts:223
Coupling (high-PageRank files)
packages/core/test/support.ts(1.00)packages/core/test/config/config.ts(0.86)packages/core/test/integration/support.ts(0.51)packages/core/test/types/models/user.ts(0.16)packages/core/test/types/connection.ts(0.12)
Circular Dependencies (29 cycles)
- packages/core/src/abstract-dialect/data-types-utils.ts -> packages/core/src/abstract-dialect/data-types.ts -> packages/core/src/abstract-dialect/data-types-utils.ts
- packages/core/src/model-definition.ts -> packages/core/src/model-internals.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model-definition.ts
- packages/core/src/model-definition.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model-definition.ts
- packages/core/src/associations/helpers.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/associations/helpers.ts
- packages/core/src/associations/belongs-to.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/instance-validator.js -> packages/core/src/associations/belongs-to.ts
- packages/core/src/expression-builders/attribute.ts -> packages/core/src/utils/attribute-syntax.ts -> packages/core/src/expression-builders/attribute.ts
- packages/core/src/abstract-dialect/where-sql-builder.ts -> packages/core/src/expression-builders/attribute.ts -> packages/core/src/utils/attribute-syntax.ts -> packages/core/src/expression-builders/cast.ts -> packages/core/src/expression-builders/where.ts -> packages/core/src/abstract-dialect/where-sql-builder.ts
- packages/core/src/abstract-dialect/where-sql-builder.ts -> packages/core/src/expression-builders/where.ts -> packages/core/src/abstract-dialect/where-sql-builder.ts
- packages/core/src/abstract-dialect/where-sql-builder.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/instance-validator.js -> packages/core/src/associations/belongs-to.ts -> packages/core/src/associations/has-many.ts -> packages/core/src/expression-builders/fn.ts -> packages/core/src/expression-builders/where.ts -> packages/core/src/abstract-dialect/where-sql-builder.ts
- packages/core/src/associations/belongs-to.ts -> packages/core/src/associations/has-many.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/instance-validator.js -> packages/core/src/associations/belongs-to.ts
- packages/core/src/associations/belongs-to.ts -> packages/core/src/associations/has-many.ts -> packages/core/src/associations/belongs-to.ts
- packages/core/src/associations/belongs-to.ts -> packages/core/src/associations/has-one.ts -> packages/core/src/model.js -> packages/core/src/instance-validator.js -> packages/core/src/associations/belongs-to.ts
- packages/core/src/associations/belongs-to.ts -> packages/core/src/associations/has-one.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/instance-validator.js -> packages/core/src/associations/belongs-to.ts
- packages/core/src/associations/belongs-to.ts -> packages/core/src/associations/has-one.ts -> packages/core/src/associations/belongs-to.ts
- packages/core/src/decorators/shared/model.ts -> packages/core/src/model-typescript.ts -> packages/core/src/decorators/shared/model.ts
- packages/core/src/decorators/shared/model.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts -> packages/core/src/decorators/shared/model.ts
- packages/core/src/model-typescript.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts
- packages/core/src/abstract-dialect/query-generator.js -> packages/core/src/associations/belongs-to-many.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/abstract-dialect/query-generator.js
- packages/core/src/abstract-dialect/query-generator.js -> packages/core/src/sequelize.js -> packages/core/src/abstract-dialect/query-generator.js
- packages/core/src/abstract-dialect/query-generator.js -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/abstract-dialect/query-generator.js
- packages/core/src/abstract-dialect/query-generator-internal.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/abstract-dialect/query-generator.js -> packages/core/src/abstract-dialect/query-generator-internal.ts
- packages/core/src/abstract-dialect/query-generator-typescript.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/abstract-dialect/query-generator.js -> packages/core/src/abstract-dialect/query-generator-typescript.ts
- packages/core/src/import-models.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/import-models.ts
- packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/model.js -> packages/core/src/model-typescript.ts
- packages/core/src/decorators/legacy/associations.ts -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/sequelize-typescript.ts -> packages/core/src/decorators/legacy/associations.ts
- packages/core/src/sequelize-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/sequelize-typescript.ts
- packages/core/src/model-typescript.ts -> packages/core/src/sequelize.js -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js -> packages/core/src/model-typescript.ts
- packages/core/src/model.js -> packages/core/src/utils/model-utils.ts -> packages/core/src/model.js
- packages/postgres/src/internal/data-types-overrides.ts -> packages/postgres/src/query-generator.js -> packages/postgres/src/internal/data-types-overrides.ts
Security Issues (7 found)
High (7)
- SQL injection (template literal) —
packages/core/src/sequelize.js:611 await this.query(SELECT 1+1 AS result${fromClause}, options);- SQL injection (template literal) —
packages/postgres/src/query-generator.js:146 attrSql += query(${this.quoteIdentifier(attributeName)} SET NOT NULL);- SQL injection (template literal) —
packages/postgres/src/query-generator.js:150 attrSql += query(${this.quoteIdentifier(attributeName)} DROP NOT NULL);- SQL injection (template literal) —
packages/postgres/src/query-generator.js:160 attrSql += query(${this.quoteIdentifier(attributeName)} DROP DEFAULT);- SQL injection (template literal) —
packages/postgres/src/query-generator.js:174 attrSql += query(ADD UNIQUE (${this.quoteIdentifier(attributeName)})).replace(- SQL injection (template literal) —
packages/postgres/src/query-generator.js:186 attrSql += query(${this.quoteIdentifier(attributeName)} TYPE ${definition});- SQL injection (template literal) —
packages/mysql/src/connection-manager.ts:131 await promisify(cb => connection.query(SET time_zone = '${tzOffset}', cb))();
Suggested Next Steps
- Before refactoring expectsql, run
sverklo_impactto see the 482 call sites packages/core/test/support.tsis your most-imported file — changes here cascade widely- 15+ potential orphans detected — audit for dead code