Repository Analysis

nocodb/nocodb

🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative

0.9 Likely human-written View on GitHub
0.9
Adjusted Score
0.9
Raw Score
100%
Time Factor
2026-05-30
Last Push
63,149
Stars
TypeScript
Language
803,337
Lines of Code
2909
Files
480
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 13HIGH 8MEDIUM 17LOW 442

Pattern Findings

480 matches across 10 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers184 hits · 182 pts
SeverityFileLineSnippet
LOWpackages/nocodb/src/types/column-internal-meta.ts32export function validateColumnInternalMeta(
LOWpackages/nocodb/src/utils/acl.ts1064export function generateReadablePermissionErr(
LOWpackages/nocodb/src/utils/dataUtils.ts229export function pickChangedFieldsForUpdatePrev(
LOWpackages/nocodb/src/utils/tsUtils.ts41export function validateAndStringifyJson<T>(val: T): {
LOWpackages/nocodb/src/public/js/vue.global.js860 function createArrayInstrumentations() {
LOWpackages/nocodb/src/public/js/vue.global.js1279 function createInstrumentationGetter(isReadonly, shallow) {
LOWpackages/nocodb/src/public/js/vue.global.js1799 function callWithAsyncErrorHandling(fn, instance, type, args) {
LOWpackages/nocodb/src/public/js/vue.global.js2265 function createDevtoolsComponentHook(hook) {
LOWpackages/nocodb/src/public/js/vue.global.js2272 function createDevtoolsPerformanceHook(hook) {
LOWpackages/nocodb/src/public/js/vue.global.js2431 function setCurrentRenderingInstance(instance) {
LOWpackages/nocodb/src/public/js/vue.global.js3167 function normalizeSuspenseChildren(vnode) {
LOWpackages/nocodb/src/public/js/vue.global.js4889 function exposePropsOnRenderContext(instance) {
LOWpackages/nocodb/src/public/js/vue.global.js4903 function exposeSetupStateOnRenderContext(instance) {
LOWpackages/nocodb/src/public/js/vue.global.js9799 function patchStopImmediatePropagation(e, value) {
LOWpackages/nocodb/src/public/js/vue.global.js11028 function injectCompilerOptionsCheck(app) {
LOWpackages/nocodb/src/public/js/vue.global.js11363 function createConditionalExpression(test, consequent, alternate, newline = true) {
LOWpackages/nocodb/src/public/js/vue.global.js11506 function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {
LOWpackages/nocodb/src/public/js/vue.global.js12792 function getConstantTypeOfHelperCall(value, context) {
LOWpackages/nocodb/src/public/js/vue.global.js12807 function getGeneratedPropsConstantType(node, context) {
LOWpackages/nocodb/src/public/js/vue.global.js13108 function createStructuralDirectiveTransform(name, fn) {
LOWpackages/nocodb/src/public/js/vue.global.js13491 function genExpressionAsPropertyKey(node, context) {
LOWpackages/nocodb/src/public/js/vue.global.js13703 function validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {
LOWpackages/nocodb/src/public/js/vue.global.js13899 function createCodegenNodeForBranch(branch, keyIndex, context) {
LOWpackages/nocodb/src/public/js/vue.global.js13913 function createChildrenCodegenNode(branch, keyIndex, context) {
LOWpackages/nocodb/src/public/js/vue.global.js14996 function stringifyDynamicPropNames(props) {
LOW…-upgrader/upgraders/0111002_ncXcdbLTARIndexUpgrader.ts15async function upgradeModelRelationsIndex(
LOW…version-upgrader/upgraders/0105003_ncFilterUpgrader.ts27function removeLikeAndNlikeFilters(
LOW…version-upgrader/upgraders/0105003_ncFilterUpgrader.ts62function migrateEmptyAndNullFilters(
LOWpackages/nocodb/src/db/CustomKnex.ts747function parseNestedConditionAndJoin(obj, qb, pKey?, table?, tableAlias?) {
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts32export async function getDisplayValueOfRefTable(
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts63export default async function generateLookupSelectQuery({
LOWpackages/nocodb/src/db/conditionV2.ts1457async function resolveDynamicFilterValue(
LOWpackages/nocodb/src/db/conditionV2.ts1521async function resolveCrossTableDynamicFilter(
LOWpackages/nocodb/src/db/conditionV2.ts1625export async function extractLinkRelFiltersAndApply(_: {
LOWpackages/nocodb/src/db/sql-client/lib/pg/typeCast.ts67function generateDateTimeCastQuery(source: string, dateFormat: string) {
LOWpackages/nocodb/src/db/sql-client/lib/pg/typeCast.ts105function generateNumberBoundingQuery(
LOWpackages/nocodb/src/db/links/requestHandler.ts7export class LinksRequestHandler {
LOWpackages/nocodb/src/db/aggregations/pg.ts431export function replaceDelimitedWithKeyValuePg(params: {
LOWpackages/nocodb/src/run/cloud.ts111function setupWorkerSignalHandlers(): void {
LOWpackages/nocodb/src/run/cloud.ts122function setupPrimarySignalHandlers(): void {
LOW…src/modules/jobs/jobs/data-import/attachment-stream.ts14export async function openImportAttachmentStream(
LOW…src/modules/jobs/jobs/data-import/csv-type-detector.ts80export function extractMultiOrSingleSelectProps(
LOW…src/modules/jobs/jobs/data-import/csv-type-detector.ts228export function detectColumnTypesFromObjects(
LOW…b/src/modules/jobs/jobs/data-import/error-formatter.ts34function extractColumnFromRowMatch(
LOW…jobs/jobs/at-import/engine/mockResponses/initialize.ts161 function deleteCookieByNameForCurrentHost(cookieName) {
LOWpackages/nocodb/src/helpers/instanceAdminHelpers.ts23export async function calculateInstanceEditorCount(
LOWpackages/nocodb/src/helpers/dataHelpers.ts32export async function getViewAndModelByAliasOrId(
LOWpackages/nocodb/src/helpers/populateSamplePayload.ts59export async function populateSamplePayloadView(
LOW…ges/nocodb/src/helpers/uniqueConstraintErrorHandler.ts15function extractColumnNameFromError(
LOW…ges/nocodb/src/helpers/uniqueConstraintErrorHandler.ts103async function findDuplicateColumnByQuery(
LOW…ges/nocodb/src/helpers/uniqueConstraintErrorHandler.ts165export async function handleUniqueConstraintError({
LOWpackages/nocodb/src/helpers/webhookHelpers.ts503export function transformDataForMailRendering(
LOWpackages/nocodb/src/helpers/lookupHelpers.ts5export async function recursiveCTEFromLookupColumn(_param: {
LOWpackages/nocodb/src/helpers/attachmentHelpers.ts131export function validateAndNormaliseLocalPath(
LOWpackages/nocodb/src/helpers/attachmentHelpers.ts131export function validateAndNormaliseLocalPath(
LOWpackages/nocodb/src/helpers/attachmentHelpers.ts177export function resolveAttachmentFilePath(attachment: {
LOWpackages/nocodb/src/helpers/attachmentHelpers.ts290export function sanitizeAttachmentStoragePath(joined: string): string {
LOWpackages/nocodb/src/helpers/uniqueConstraintHelpers.ts68export function normalizeValueForUniqueCheck(value: any, uidt: UITypes): any {
LOWpackages/nocodb/src/helpers/apiHelpers.ts14export function parseHrtimeToMilliSeconds(hrtime) {
LOWpackages/nocodb/src/helpers/stringHelpers.ts11export function swaggerSanitizeSchemaName(name: string) {
124 more matches not shown…
Over-Commented Block156 hits · 148 pts
SeverityFileLineSnippet
LOWpackages/nocodb/docker/litestream.yml21 # recipients:
LOW…odb/src/middlewares/extract-ids/extract-ids.helpers.ts61// Non-owners cannot modify filters or sorts on someone else's personal view.
LOWpackages/nocodb/src/models/HookFilter.ts241 // if (!this.fk_parent_id) return null;
LOWpackages/nocodb/src/models/HookFilter.ts401 // fk_view_id: viewId,
LOWpackages/nocodb/src/models/HookFilter.ts481 return filterObjs?.map((f) => new Filter(f));
LOWpackages/nocodb/src/models/HookFilter.ts501 // condition: {
LOWpackages/nocodb/src/models/Filter.ts601 childFilters,
LOWpackages/nocodb/src/models/View.ts2141 );
LOWpackages/nocodb/src/models/View.ts2321 // context.workspace_id,
LOWpackages/nocodb/src/models/View.ts2861 // display value (pv) + the configured range columns. Other
LOWpackages/nocodb/src/models/Model.ts881 // from UI
LOWpackages/nocodb/src/public/js/vue.global.js15261 // if this is a plain element with a single text child, leave it
LOW…version-upgrader/upgraders/0104004_ncFilterUpgrader.ts21// - Checkbox columns:
LOW…kages/nocodb/src/db/relation-update-webhook-handler.ts41 // payload: RelationUpdateWebhookContext,
LOWpackages/nocodb/src/db/BaseModelSqlv2.ts4301 // if timezone info is not found - considered as utc
LOWpackages/nocodb/src/db/BaseModelSqlv2.ts8141 // convert all date time values to utc
LOWpackages/nocodb/src/db/generateLookupSelectQuery.ts621 .from(selectQb.as(subQueryAlias)),
LOWpackages/nocodb/src/db/conditionV2.ts1541
LOWpackages/nocodb/src/db/sql-client/lib/data.helper.ts261 // if (colType.indexOf(typesArr[i]) !== -1) {
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts801 return result;
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts821 // * @param {String} - args.columns[].un -
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts841 // args.table = args.tn;
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts941 // * @param {Object[]} - args.columns
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts961 // * @returns {Promise<{upStatement, downStatement}>}
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts981 //
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1001 // downQuery += alterTableChangeColumn(
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1021 // upQuery = `ALTER TABLE ${args.columns[0].tn} ${upQuery};`;
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1261 this.sqlClient.schema
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1341 const downStatement = this.querySeparator() + downQuery.toQuery();
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1361 log.ppe(e, _func);
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1421 return 'specificType';
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1441 // "character varying",
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1461 // "int4",
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1481 // "dec"
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1501 //
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1541 // }
LOWpackages/nocodb/src/db/sql-client/lib/KnexClient.ts1561 // const result = await this.sqlClient(args.tn)
LOW…es/nocodb/src/db/sql-client/lib/sqlite/SqliteClient.ts221 }
LOW…es/nocodb/src/db/sql-client/lib/sqlite/SqliteClient.ts1981 for (let i = 0; i < tables.length; ++i) {
LOW…es/nocodb/src/db/sql-client/lib/sqlite/SqliteClient.ts2181 query += n.dtxp && n.dt !== 'text' ? `(${this.genRaw(n.dtxp)})` : '';
LOWpackages/nocodb/src/db/sql-client/lib/pg/PgClient.ts281 log.api(`${_func}:result:`, result);
LOWpackages/nocodb/src/db/sql-client/lib/pg/PgClient.ts621
LOW…ocodb/src/db/sql-client/lib/mysql/fakerFunctionList.ts381 // name: 'randomize',
LOW…ocodb/src/db/sql-client/lib/mysql/fakerFunctionList.ts401 // value: 'helpers.replaceSymbols',
LOWpackages/nocodb/src/db/sql-data-mapper/index.ts1// import XKnex, { Knex } from './lib/sql/CustomKnex';
LOW…ocodb/src/db/sql-data-mapper/__tests__/xSelect.test.js161 // let queryOutput = knex.table('city').select({
LOWpackages/nocodb/src/db/sql-data-mapper/lib/BaseModel.ts21//
LOW…-handler/handlers/date-time/date-time.mysql.handler.ts21 }): Promise<{ value: any }> {
LOW…andler/handlers/long-text/long-text.general.handler.ts21 let value = params.value;
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts121 // eslint-disable-next-line @typescript-eslint/no-unused-vars
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts141 // path.join(
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts161 // this.emit(
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts181 // );
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts201 // )
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts221 // );
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts241 // this.base.meta.metaFolder || 'meta'
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts261 // path.join(this.toolDir, 'nc', this.baseId, args.dbAlias)
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts281 // log.debug('_readProjectJson', projJsonFilePath);
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts301 // async _initProjectJsonFile(args) {
LOW…kages/nocodb/src/db/sql-migrator/lib/KnexMigratorv2.ts321 //
96 more matches not shown…
Hallucination Indicators13 hits · 145 pts
SeverityFileLineSnippet
CRITICALpackages/nocodb/src/db/field-handler/index.ts305 this.info.baseModel.model.columns.find((col) => col.id === filter.id);
CRITICAL…nc-gui/components/cell/RichText/LinkOrImageOptions.vue141 editor.value.view.state.tr.removeStoredMark(linkMark).addStoredMark(linkMark.create({ href: formatedHref })),
CRITICAL…nc-gui/components/cell/RichText/LinkOrImageOptions.vue162 editor.value.view.dispatch(editor.value.view.state.tr.removeStoredMark(linkMark))
CRITICAL…nc-gui/components/cell/RichText/LinkOrImageOptions.vue167 editor.value.view.dispatch(editor.value.view.state.tr.removeMark(markSelection.from, markSelection.to, linkMark))
CRITICALpackages/nc-gui/components/ai/PromptWithFields.vue151 tr.replaceSelectionWith(view.state.schema.nodes.mention.create({ id }))
CRITICALpackages/nc-gui/helpers/tiptap-markdown/Markdown.ts27 return commands.setContent(props.editor.storage.markdown.parser.parse(content), emitUpdate, parseOptions)(props)
CRITICALpackages/nc-gui/helpers/tiptap-markdown/Markdown.ts32 props.editor.storage.markdown.parser.parse(content, { inline: true }),
CRITICALpackages/nc-gui/helpers/tiptap-markdown/Markdown.ts44 const markdown = this.editor.storage.markdown.serializer.serialize(this.editor.state.doc)
CRITICALpackages/nc-gui/helpers/tiptap-markdown/Markdown.ts51 return this.editor.storage.markdown.parser.parse(md)
CRITICALpackages/nc-gui/helpers/tiptap-markdown/Markdown.ts55 this.editor.options.content = this.editor.storage.markdown.parser.parse(this.editor.options.content)
CRITICAL…ckages/nc-gui/helpers/tiptap-markdown/util/markdown.ts6 md.inline.State.prototype.scanDelims.call({ src: text, posMax: text.length })
CRITICAL…helpers/tiptap-markdown/extensions/tiptap/clipboard.ts32 const parsed = this.editor.storage.markdown.parser.parse(text, { inline: true })
CRITICAL…helpers/tiptap-markdown/extensions/tiptap/clipboard.ts42 return this.editor.storage.markdown.serializer.serialize(slice.content)
Fake / Example Data80 hits · 94 pts
SeverityFileLineSnippet
LOWpackages/nocodb/src/plugins/smtp/index.ts23 placeholder: 'admin@example.com',
LOWpackages/nocodb/src/schema/swagger-v3.json524 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v3.json577 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v3.json13451 "example": "user@example.com"
LOWpackages/nocodb/src/schema/swagger-v2.json540 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json644 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json676 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json756 "email": "user@example.com"
LOWpackages/nocodb/src/schema/swagger-v2.json1141 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json1293 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json1479 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json6756 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json6822 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json11637 "name": "John Doe",
LOWpackages/nocodb/src/schema/swagger-v2.json11642 "street": "123 Main Street",
LOWpackages/nocodb/src/schema/swagger-v2.json11787 "name": "John Doe",
LOWpackages/nocodb/src/schema/swagger-v2.json11792 "street": "123 Main Street",
LOWpackages/nocodb/src/schema/swagger-v2.json12040 "name": "John Doe",
LOWpackages/nocodb/src/schema/swagger-v2.json12045 "street": "123 Main Street",
LOWpackages/nocodb/src/schema/swagger-v2.json14347 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json14474 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json18388 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json18498 "email": "user@example.com"
LOWpackages/nocodb/src/schema/swagger-v2.json19046 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json19506 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json19535 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json19548 "example": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json20609 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json20661 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger-v2.json22155 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json175 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json279 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json316 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json396 "email": "user@example.com"
LOWpackages/nocodb/src/schema/swagger.json1110 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json1174 "example": "user@example.com"
LOWpackages/nocodb/src/schema/swagger.json1182 "email": "user@example.com"
LOWpackages/nocodb/src/schema/swagger.json1202 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json1281 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json1729 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json1881 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json2067 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json7968 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json8034 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json23482 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json23617 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json26730 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json26877 "email": "user@example.com"
LOWpackages/nocodb/src/schema/swagger.json27530 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json27993 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json28022 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json28035 "example": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json29192 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json29244 "email": "user@example.com",
LOWpackages/nocodb/src/schema/swagger.json31535 "email": "user@example.com",
LOW…jobs/jobs/at-import/engine/mockResponses/initialize.ts387<div class="body mb2 break-word">Lorem ipsum</div>
LOWpackages/nocodb/src/helpers/populateSamplePayload.ts93 email: 'user@example.com',
LOWpackages/nocodb/src/helpers/populateSamplePayload.ts157 email: 'user@example.com',
LOWpackages/nocodb/src/helpers/populateSamplePayload.ts415 email: 'user@example.com',
LOW…nocodb/src/services/mail/templates/org-role-update.tsx88 name: 'Jane Doe',
20 more matches not shown…
Synthetic Comment Markers8 hits · 45 pts
SeverityFileLineSnippet
HIGH…src/modules/jobs/jobs/at-import/at-import.processor.ts1713 // AI generated text
HIGH…jobs/jobs/at-import/engine/mockResponses/initialize.ts86window.initData = {"baseUrl":"https:\\u002F\\u002Fairtable.com","browserId":"brwVEsvxsca6PfACz","csrfToken":"dibFITyM--G
HIGHpackages/nc-gui/composables/useViewFilters.ts984 // Preserve 'logical_op' from the draft when provided (e.g. AI-generated filters may use 'or'),
HIGH…c-gui/components/smartsheet/column/AiButtonOptions.vue433 <div class="font-bold">Choose Output Fields To Be Generated by AI</div>
HIGH…nts/smartsheet/expanded-form/Sidebar/AuditMiniItem.vue210 (Generated by AI)
HIGH…ded-form/presentors/Discussion/AuditInfoExpressive.vue169 (Generated by AI)
HIGHpackages/nc-gui/components/cell/TextArea.vue680 <span v-else class="text-nc-content-purple-light truncate flex-1">Generated by AI</span>
HIGHpackages/nc-gui/components/cell/TextArea.vue854 <span v-else class="text-nc-content-purple-dark truncate">Generated by AI</span>
Decorative Section Separators13 hits · 39 pts
SeverityFileLineSnippet
MEDIUMpackages/nocodb/src/db/BaseModelSqlv2.ts9618 // ── V1 BT / V1 OO BT-side ─────────────────────────────────────────
MEDIUMpackages/nocodb/src/db/BaseModelSqlv2.ts9672 // ── V1 HM / V1 OO HM-side ─────────────────────────────────────────
MEDIUMpackages/nocodb/src/db/BaseModelSqlv2.ts9726 // ── V1 MM + ALL V2 (mm/om/mo/oo/bt) ───────────────────────────────
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts43// ─── Primary Key Helpers ────────────────────────────────────────────
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts77// ─── Shared helpers ─────────────────────────────────────────────────
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts92// ─── V2 → V3 ───────────────────────────────────────────────────────
MEDIUMpackages/nocodb-sdk/src/lib/v3/record-transform.ts269// ─── V3 → V2 ───────────────────────────────────────────────────────
MEDIUMpackages/nc-gui/components/smartsheet/Form.vue503// ─── Grid layout (multi-field rows) ────────────────────────────────────
MEDIUM…ckages/nc-gui/components/smartsheet/details/Fields.vue1358 // ── Surface deletions ──────────────────────────────────────────
MEDIUM…ckages/nc-gui/components/smartsheet/details/Fields.vue1383 // ── Surface updates affecting the active field ────────────────
MEDIUMpackages/nc-gui/components/nc/Drawer.vue50// ── Swipe-to-close (scroll-aware, works on entire drawer) ───────────
MEDIUMpackages/nc-gui/components/nc/Drawer.vue195// ── Scroll-aware fade ────────────────────────────────────────────────
MEDIUMpackages/nc-gui/components/nc/Drawer.vue223// ── Dynamic body height (avoids flex-1 min-content issues) ──────────
Verbosity Indicators18 hits · 32 pts
SeverityFileLineSnippet
LOWpackages/nocodb/src/services/data-table.service.ts1366 // Step 1: Case-sensitive exact match (eq operator)
LOWpackages/nocodb/src/services/data-table.service.ts1396 // Step 2: Case-insensitive fallback for values the eq step didn't match
LOWpackages/nc-gui/composables/useViewColumns.ts527 // Step 1: Apply default filter
LOWpackages/nc-gui/composables/useViewColumns.ts530 // Step 2: Apply search basis options if default filter fails
LOWpackages/nc-gui/composables/useViewColumns.ts539 // Step 1: Apply default filter
LOWpackages/nc-gui/composables/useViewColumns.ts542 // Step 2: Apply search basis options if default filter fails
LOWpackages/nc-gui/composables/usePlugin/index.ts242 // Step 1: Load assets for all plugin types
LOW…ages/nc-gui/components/smartsheet/column/EditOrAdd.vue677 // Step 1: apply default filter
LOW…ages/nc-gui/components/smartsheet/column/EditOrAdd.vue680 // Step 2: apply search basis options
LOW…ponents/smartsheet/column/UITypesOptionsWithSearch.vue31 // Step 1: apply default filter
LOW…ponents/smartsheet/column/UITypesOptionsWithSearch.vue34 // Step 2: apply search basis options
LOWpackages/nc-gui/components/template/Editor.vue72 // If it is import data only, then we need to check if the field is editable
LOWpackages/nc-gui/components/nc/List/index.vue128 // Step 1: apply default filter
LOWpackages/nc-gui/components/nc/List/index.vue131 // Step 2: apply search basis options
LOWpackages/nc-integration-scaffolder/src/index.ts25 // Step 1: Read the content of the file
LOWpackages/nc-integration-scaffolder/src/index.ts28 // Step 2: Use TypeScript Compiler API to parse the source file
LOWpackages/nc-integration-scaffolder/src/index.ts36 // Step 3: Traverse the AST to find the abstract class
LOWpackages/nc-integration-scaffolder/src/index.ts153 // Step 4: Generate the new class code
AI Slop Vocabulary5 hits · 12 pts
SeverityFileLineSnippet
MEDIUM…odb/src/middlewares/extract-ids/extract-ids.helpers.ts85// reason about nuanced transitions (e.g. collab → locked on the new
MEDIUMpackages/nocodb/src/utils/duplicate-model.utils.ts12// need to use class to utilize inheritance
MEDIUMpackages/nocodb/src/public/js/vuetify.2.x.min.js6!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("vue")):"function"==typeof def
LOWpackages/nocodb/src/public/js/vue.global.js6784 // #1689 For inside suspense + suspense resolved case, just call it
MEDIUM…s/nc-gui/components/dashboard/TreeView/ProjectNode.vue219 // We do not wait for tables api, so that add new table is seamless.
Redundant / Tautological Comments2 hits · 3 pts
SeverityFileLineSnippet
LOWdocker-compose/1_Auto_Upstall/noco.sh559 # Check if $NOCO_HOME exists as directory
LOWdocker-compose/1_Auto_Upstall/noco.sh578 # Check if nocodb is already installed
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippet
LOWpackages/nocodb/src/public/js/vue.global.js8338 // #2078 make sure to merge refs during the clone instead of overwriting it