@carllee1983/dbcli 6.0.0 → 7.0.1

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/dist/cli.mjs CHANGED
@@ -3,7 +3,7 @@
3
3
  // package.json
4
4
  var package_default = {
5
5
  name: "@carllee1983/dbcli",
6
- version: "6.0.0",
6
+ version: "7.0.1",
7
7
  description: "Database CLI for AI agents",
8
8
  type: "module",
9
9
  publishConfig: {
@@ -135,7 +135,9 @@ var package_default = {
135
135
  },
136
136
  overrides: {
137
137
  "brace-expansion": "^5.0.9",
138
- postcss: "^8.5.26"
138
+ browserslist: "^4.28.7",
139
+ postcss: "^8.5.26",
140
+ "postcss-selector-parser": "^6.1.3"
139
141
  }
140
142
  };
141
143
 
package/dist/core.d.ts CHANGED
@@ -544,11 +544,16 @@ export declare class BlacklistManager {
544
544
  private config;
545
545
  private state;
546
546
  private overrideEnabled;
547
+ /** Table entries as the config wrote them, for the glob scan. */
548
+ private readonly rawTables;
547
549
  constructor(config: DbcliConfig, overrideEnvValue?: string);
548
550
  /**
549
551
  * Deserialize config.blacklist JSON into efficient Set/Map structures.
550
552
  * Case-insensitive table names (stored as lowercase). Column entries are
551
- * stored as written and folded where they are compared — see ADR-0018.
553
+ * stored as written and folded where they are compared — see ADR-0018 and
554
+ * ADR-0020. Table entries are kept twice: lower-cased in `tables` for the
555
+ * exact lookup, and as written in `rawTables` for the glob scan, because
556
+ * folding a pattern's text narrows a character class.
552
557
  *
553
558
  * @returns BlacklistState with Set<string> for tables, Map<string, Set<string>> for columns
554
559
  */
@@ -576,8 +581,9 @@ export declare class BlacklistManager {
576
581
  private readonly wildcardTables;
577
582
  /**
578
583
  * Check if a specific column in a table is blacklisted.
579
- * Both are case-insensitive on their first segment. A column entry's later
580
- * segments are nested object keys and keep their case (ADR-0018).
584
+ * Rule and name are compared case-insensitively over the whole dotted path,
585
+ * and a rule carrying a wildcard is matched through the shared matcher
586
+ * (ADR-0020).
581
587
  *
582
588
  * @param tableName Table name
583
589
  * @param columnName Column name
@@ -591,6 +597,8 @@ export declare class BlacklistManager {
591
597
  */
592
598
  private columnRulesFor;
593
599
  isColumnBlacklisted(tableName: string, columnName: string): boolean;
600
+ private readonly foldedColumns;
601
+ private foldedColumnsFor;
594
602
  /**
595
603
  * Get all blacklisted column names for a specific table.
596
604
  *
@@ -623,6 +631,16 @@ export declare class BlacklistManager {
623
631
  interface FilterColumnsResult {
624
632
  filteredRows: Record<string, unknown>[];
625
633
  omittedColumns: string[];
634
+ /**
635
+ * Whether a caller-supplied field path is covered by what was omitted.
636
+ *
637
+ * `omittedColumns` names a wildcard rule by its text, so a consumer comparing
638
+ * strings could not tell that `--fields profile.SS_num` asks for something
639
+ * `profile.ss*` removed: the literal form of the same rule dropped the field
640
+ * from the output while the wildcard form returned it as `null`. This answers
641
+ * with the compiled rule.
642
+ */
643
+ reachesOmitted: (path: string) => boolean;
626
644
  }
627
645
  /**
628
646
  * Validator class for enforcing blacklist rules.