cloudflare-expression-lint 0.1.24 → 0.1.25

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/validator.js CHANGED
@@ -581,17 +581,38 @@ function isUnwrappedAnd(node) {
581
581
  * formatted correctly. Complex expressions (functions, xor, nested
582
582
  * or-inside-and) are silently skipped. `not` is Builder-compatible.
583
583
  */
584
+ /**
585
+ * Check Expression Builder compatibility.
586
+ *
587
+ * Builder-compatible forms:
588
+ * 1. Single group: (cond [and cond ...])
589
+ * 2. Or-chain: (group) or (group) or ...
590
+ *
591
+ * Where each "cond" is:
592
+ * - A comparison: field op value
593
+ * - An in-expression: field in {...}
594
+ * - A boolean field: cf.bot_management.verified_bot
595
+ * - `not` prefixed: not field op value
596
+ *
597
+ * NOT compatible:
598
+ * - Bare expressions without parens: A or B, A and B
599
+ * - `and` between groups: (A) and (B)
600
+ * - `or` inside a group: (A or B)
601
+ * - `not` wrapping a group: not (A)
602
+ * - Outer parens around or-chain: ((A) or (B))
603
+ * - Nested or inside and-group: ((A or B) and C)
604
+ * - Functions as left-hand side: (len(field) gt 0)
605
+ */
584
606
  function checkBuilderCompatibility(ast, diagnostics) {
585
- // Bare boolean literals fine
586
- if (ast.kind === 'BooleanLiteral')
607
+ // If the expression contains functions or array unpacks anywhere, it's
608
+ // inherently not Builder-compatible and there's no simple fix — skip silently.
609
+ if (containsFunctionOrUnpack(ast))
587
610
  return;
588
- // Bare boolean field — fine
589
- if (ast.kind === 'FieldAccess')
611
+ // Bare boolean literals / fields technically fine, nothing to flag
612
+ if (ast.kind === 'BooleanLiteral' || ast.kind === 'FieldAccess')
590
613
  return;
591
- // Single unwrapped comparison — needs (field op value)
592
- if (ast.kind === 'Comparison') {
593
- if (ast.left.kind === 'FunctionCall' || ast.left.kind === 'ArrayUnpack')
594
- return;
614
+ // ── Bare comparison/in — needs wrapping ──────────────────────────
615
+ if (ast.kind === 'Comparison' || ast.kind === 'InExpression') {
595
616
  diagnostics.push({
596
617
  severity: 'info',
597
618
  message: 'Wrap in parentheses for Expression Builder compatibility: (field op value)',
@@ -599,32 +620,66 @@ function checkBuilderCompatibility(ast, diagnostics) {
599
620
  });
600
621
  return;
601
622
  }
602
- // Single unwrapped in-expressionneeds (field in {...})
603
- if (ast.kind === 'InExpression') {
604
- // Negated or function-call field — not Builder-compatible
605
- if (ast.negated)
606
- return;
607
- if (ast.field.kind === 'FunctionCall' || ast.field.kind === 'ArrayUnpack')
608
- return;
609
- diagnostics.push({
610
- severity: 'info',
611
- message: 'Wrap in parentheses for Expression Builder compatibility: (field in {...})',
612
- code: 'builder-incompatible',
613
- });
623
+ // ── Top-level `not` NOT Builder-compatible ─────────────────────
624
+ if (ast.kind === 'Not') {
625
+ if (ast.operand.kind === 'Group') {
626
+ const inner = ast.operand.expression;
627
+ // not (A) → suggest (not A)
628
+ if (isBuilderCondition(inner)) {
629
+ diagnostics.push({
630
+ severity: 'info',
631
+ message: 'Move `not` inside the group for Expression Builder compatibility: (not A) instead of not (A)',
632
+ code: 'builder-incompatible',
633
+ });
634
+ }
635
+ else if (inner.kind === 'Logical' && isTopLevelOr(inner)) {
636
+ // not (A or B) → suggest (not A and not B) via De Morgan's
637
+ diagnostics.push({
638
+ severity: 'info',
639
+ message: 'Rewrite using De Morgan\'s law for Expression Builder compatibility: not (A or B) → (not A and not B)',
640
+ code: 'builder-incompatible',
641
+ });
642
+ }
643
+ else if (inner.kind === 'Logical' && isTopLevelAnd(inner)) {
644
+ // not (A and B) → suggest (not A) or (not B) via De Morgan's
645
+ diagnostics.push({
646
+ severity: 'info',
647
+ message: 'Rewrite using De Morgan\'s law for Expression Builder compatibility: not (A and B) → (not A) or (not B)',
648
+ code: 'builder-incompatible',
649
+ });
650
+ }
651
+ else {
652
+ diagnostics.push({
653
+ severity: 'info',
654
+ message: 'Top-level `not (...)` is not Expression Builder compatible',
655
+ code: 'builder-incompatible',
656
+ });
657
+ }
658
+ }
659
+ else {
660
+ // Bare not A — needs (not A)
661
+ diagnostics.push({
662
+ severity: 'info',
663
+ message: 'Wrap in parentheses for Expression Builder compatibility: (not field op value)',
664
+ code: 'builder-incompatible',
665
+ });
666
+ }
614
667
  return;
615
668
  }
616
- // Group check what's inside
669
+ // ── Single group: (...) ──────────────────────────────────────────
617
670
  if (ast.kind === 'Group') {
618
671
  const inner = ast.expression;
619
- // (comparison) or (in-expression) — already good
620
- if (inner.kind === 'Comparison' || inner.kind === 'InExpression')
672
+ // (comparison), (in-expression), (boolean field) — good
673
+ if (isBuilderCondition(inner))
621
674
  return;
622
- // (A and B and C) — all-and inside one group, already good
623
- if (inner.kind === 'Logical' && isAllAnd(inner) && isSimpleChain(inner))
675
+ // (not condition) — good (not toggle on single condition)
676
+ if (inner.kind === 'Not' && isBuilderCondition(inner.operand))
624
677
  return;
625
- // (or-chain inside group) the outer group must be REMOVED for Builder compat
626
- // Builder format is (A) or (B), NOT ((A) or (B))
627
- if (inner.kind === 'Logical' && isAllOr(inner)) {
678
+ // (A and B and C) where all leaves are simple conditions good
679
+ if (inner.kind === 'Logical' && isTopLevelAnd(inner) && isBuilderAndGroup(inner))
680
+ return;
681
+ // ((A) or (B)) — outer group wrapping or-chain, must be removed
682
+ if (inner.kind === 'Logical' && isTopLevelOr(inner)) {
628
683
  diagnostics.push({
629
684
  severity: 'info',
630
685
  message: 'Remove outer parentheses from or-chain for Expression Builder compatibility. Use (A) or (B) instead of ((A) or (B)).',
@@ -632,135 +687,200 @@ function checkBuilderCompatibility(ast, diagnostics) {
632
687
  });
633
688
  return;
634
689
  }
635
- // Other logical inside group check recursively
636
- if (inner.kind === 'Logical') {
637
- checkBuilderCompatibility(inner, diagnostics);
690
+ // ((A or B) and C and D) — or nested inside and-group, not Builder-compatible
691
+ if (inner.kind === 'Logical' && isTopLevelAnd(inner) && !isBuilderAndGroup(inner)) {
692
+ diagnostics.push({
693
+ severity: 'info',
694
+ message: 'Expression contains `or` nested inside an `and` group, which is not Expression Builder compatible. Consider distributing: ((A or B) and C) → (A and C) or (B and C)',
695
+ code: 'builder-incompatible',
696
+ });
638
697
  return;
639
698
  }
640
- // Boolean field etc in group fine
641
- if (inner.kind === 'BooleanLiteral' || inner.kind === 'FieldAccess')
642
- return;
643
- return;
644
- }
645
- // Logical chain at top level
646
- if (ast.kind === 'Logical') {
647
- // Collect top-level or-branches
648
- const orBranches = [];
649
- if (isAllOr(ast)) {
650
- collectOrBranches(ast, orBranches);
651
- }
652
- else if (isAllAnd(ast)) {
653
- // All-and at top level — should be wrapped in one group: (A and B and C)
654
- if (!isSimpleChain(ast))
655
- return; // complex contents, skip
699
+ // Other complex group contentsflag generically
700
+ if (inner.kind === 'Logical' || inner.kind === 'Not') {
656
701
  diagnostics.push({
657
702
  severity: 'info',
658
- message: 'Wrap and-chain in parentheses for Expression Builder compatibility: (A and B and C)',
703
+ message: 'Expression inside group is not Expression Builder compatible',
659
704
  code: 'builder-incompatible',
660
705
  });
661
- return;
662
706
  }
663
- else {
664
- // Mixed operators or xor — too complex, skip
707
+ return;
708
+ }
709
+ // ── Top-level logical chain ──────────────────────────────────────
710
+ if (ast.kind === 'Logical') {
711
+ // Top-level or-chain: (A) or (B) or (C and D)
712
+ if (isTopLevelOr(ast)) {
713
+ const branches = [];
714
+ collectOrBranches(ast, branches);
715
+ const unwrapped = [];
716
+ for (const branch of branches) {
717
+ if (branch.kind === 'Group') {
718
+ // Check the group contents are Builder-compatible
719
+ if (isValidBuilderGroup(branch))
720
+ continue;
721
+ // Group contains something non-Builder (e.g., nested or, functions)
722
+ diagnostics.push({
723
+ severity: 'info',
724
+ message: 'Or-branch contains expressions not compatible with Expression Builder',
725
+ code: 'builder-incompatible',
726
+ });
727
+ return;
728
+ }
729
+ // Not wrapped in a group
730
+ unwrapped.push(branch);
731
+ }
732
+ if (unwrapped.length > 0) {
733
+ diagnostics.push({
734
+ severity: 'info',
735
+ message: `Wrap each or-branch in parentheses for Expression Builder compatibility: (A) or (B). ${unwrapped.length} of ${branches.length} branch(es) need wrapping.`,
736
+ code: 'builder-incompatible',
737
+ });
738
+ }
665
739
  return;
666
740
  }
667
- // Check each or-branch is a wrapped group
668
- const unwrapped = [];
669
- for (const branch of orBranches) {
670
- // Each branch should be a Group
671
- if (branch.kind === 'Group') {
672
- const inner = branch.expression;
673
- // Inside should be simple: comparison, in-expression, or all-and chain
674
- if (inner.kind === 'Comparison' || inner.kind === 'InExpression')
675
- continue;
676
- if (inner.kind === 'Logical' && isAllAnd(inner) && isSimpleChain(inner))
677
- continue;
678
- if (inner.kind === 'FieldAccess')
679
- continue;
680
- // Complex group contents — skip entire check
681
- return;
741
+ // Top-level and-chain: A and B, or (A) and (B)
742
+ if (isTopLevelAnd(ast)) {
743
+ const andLeaves = [];
744
+ collectAndLeaves(ast, andLeaves);
745
+ const hasGroupLeaves = andLeaves.some(l => l.kind === 'Group');
746
+ if (hasGroupLeaves) {
747
+ // (A) and (B) pattern groups joined by and at top level
748
+ const allSimpleGroups = andLeaves.every(l => l.kind === 'Group' ? isValidBuilderGroup(l) : isBuilderAndLeaf(l));
749
+ if (allSimpleGroups) {
750
+ diagnostics.push({
751
+ severity: 'info',
752
+ message: 'Merge and-groups into a single group for Expression Builder compatibility: (A) and (B) → (A and B)',
753
+ code: 'builder-incompatible',
754
+ });
755
+ }
756
+ else {
757
+ diagnostics.push({
758
+ severity: 'info',
759
+ message: 'Top-level `and` between complex expressions is not Expression Builder compatible',
760
+ code: 'builder-incompatible',
761
+ });
762
+ }
682
763
  }
683
- // Not a group — check if it's simple enough to be Builder-compatible
684
- if (branch.kind === 'Comparison' || branch.kind === 'InExpression' || branch.kind === 'FieldAccess') {
685
- unwrapped.push(branch);
686
- continue;
764
+ else if (isBuilderAndGroup(ast)) {
765
+ // A and B bare and-chain of simple conditions, just needs wrapping
766
+ diagnostics.push({
767
+ severity: 'info',
768
+ message: 'Wrap and-chain in parentheses for Expression Builder compatibility: (A and B and C)',
769
+ code: 'builder-incompatible',
770
+ });
687
771
  }
688
- if (branch.kind === 'Logical' && isAllAnd(branch) && isSimpleChain(branch)) {
689
- unwrapped.push(branch);
690
- continue;
772
+ else {
773
+ diagnostics.push({
774
+ severity: 'info',
775
+ message: 'Top-level `and` between complex expressions is not Expression Builder compatible',
776
+ code: 'builder-incompatible',
777
+ });
691
778
  }
692
- // Complex branch — skip entire check
693
779
  return;
694
780
  }
695
- if (unwrapped.length > 0) {
696
- diagnostics.push({
697
- severity: 'info',
698
- message: `Wrap each or-branch in parentheses for Expression Builder compatibility. ${unwrapped.length} of ${orBranches.length} branch(es) need wrapping.`,
699
- code: 'builder-incompatible',
700
- });
701
- }
781
+ // Mixed or/and without grouping — not Builder-compatible
702
782
  return;
703
783
  }
704
- // Top-level Not wrapping a simple expressionneeds wrapping: (not field op value)
705
- if (ast.kind === 'Not' && isSimpleChain(ast)) {
706
- diagnostics.push({
707
- severity: 'info',
708
- message: 'Wrap in parentheses for Expression Builder compatibility: (not field op value)',
709
- code: 'builder-incompatible',
710
- });
711
- return;
784
+ // FunctionCall, ArrayUnpack, etc. at top level — not Builder-compatible, skip
785
+ }
786
+ // ── Builder compatibility helpers ──────────────────────────────────
787
+ /** Check if an AST contains any function calls or array unpacks anywhere.
788
+ * Expressions with these are inherently not Builder-compatible and
789
+ * we skip the check silently (no actionable fix). */
790
+ function containsFunctionOrUnpack(node) {
791
+ switch (node.kind) {
792
+ case 'FunctionCall':
793
+ case 'ArrayUnpack':
794
+ return true;
795
+ case 'Comparison':
796
+ return containsFunctionOrUnpack(node.left) || containsFunctionOrUnpack(node.right);
797
+ case 'Logical':
798
+ return containsFunctionOrUnpack(node.left) || containsFunctionOrUnpack(node.right);
799
+ case 'Not':
800
+ return containsFunctionOrUnpack(node.operand);
801
+ case 'Group':
802
+ return containsFunctionOrUnpack(node.expression);
803
+ case 'InExpression':
804
+ return containsFunctionOrUnpack(node.field);
805
+ default:
806
+ return false;
712
807
  }
713
- // Everything else (FunctionCall, etc.) — not Builder-compatible, skip
714
808
  }
715
- /** Check if a logical chain uses only `and`/`&&` */
716
- function isAllAnd(node) {
809
+ /** A "condition" is a leaf that can appear in a Builder group row */
810
+ function isBuilderCondition(node) {
811
+ if (node.kind === 'Comparison')
812
+ return true;
813
+ if (node.kind === 'InExpression')
814
+ return true;
815
+ if (node.kind === 'FieldAccess')
816
+ return true; // bare boolean field
817
+ if (node.kind === 'BooleanLiteral')
818
+ return true;
819
+ return false;
820
+ }
821
+ /** Check if a node is a valid condition for inside an and-group
822
+ * (a condition, or `not` prefixed condition) */
823
+ function isBuilderAndLeaf(node) {
824
+ if (isBuilderCondition(node))
825
+ return true;
826
+ if (node.kind === 'Not')
827
+ return isBuilderCondition(node.operand);
828
+ // A Group wrapping a simple condition — (A) — treat as valid leaf
829
+ if (node.kind === 'Group') {
830
+ const inner = node.expression;
831
+ if (isBuilderCondition(inner))
832
+ return true;
833
+ if (inner.kind === 'Not' && isBuilderCondition(inner.operand))
834
+ return true;
835
+ }
836
+ return false;
837
+ }
838
+ /** Check if an and-chain contains only Builder-compatible leaves
839
+ * (no nested or-chains, no functions, no groups-of-groups) */
840
+ function isBuilderAndGroup(node) {
841
+ if (node.kind === 'Logical') {
842
+ const op = node.operator;
843
+ if (op !== 'and' && op !== '&&')
844
+ return false;
845
+ return isBuilderAndGroup(node.left) && isBuilderAndGroup(node.right);
846
+ }
847
+ return isBuilderAndLeaf(node);
848
+ }
849
+ /** Check if a Group node is a valid Builder group */
850
+ function isValidBuilderGroup(node) {
851
+ if (node.kind !== 'Group')
852
+ return false;
853
+ const inner = node.expression;
854
+ if (isBuilderCondition(inner))
855
+ return true;
856
+ if (inner.kind === 'Not' && isBuilderCondition(inner.operand))
857
+ return true;
858
+ if (inner.kind === 'Logical' && isTopLevelAnd(inner) && isBuilderAndGroup(inner))
859
+ return true;
860
+ return false;
861
+ }
862
+ /** Check if the top-level chain uses only `and`/`&&` */
863
+ function isTopLevelAnd(node) {
717
864
  if (node.kind !== 'Logical')
718
865
  return true;
719
866
  const op = node.operator;
720
867
  if (op !== 'and' && op !== '&&')
721
868
  return false;
722
- return isAllAnd(node.left) && isAllAnd(node.right);
869
+ return isTopLevelAnd(node.left) && isTopLevelAnd(node.right);
723
870
  }
724
- /** Check if the top-level logical chain uses only `or`/`||` (doesn't recurse into branches) */
725
- function isAllOr(node) {
871
+ /** Check if the top-level chain uses only `or`/`||` (doesn't recurse into group contents) */
872
+ function isTopLevelOr(node) {
726
873
  if (node.kind !== 'Logical')
727
874
  return true;
728
875
  const op = node.operator;
729
876
  if (op !== 'or' && op !== '||')
730
877
  return false;
731
- // Only recurse into the or-chain structure, not into and-branches
732
- const leftIsOr = node.left.kind !== 'Logical' || node.left.operator === 'or' || node.left.operator === '||';
733
878
  if (node.left.kind === 'Logical' && (node.left.operator === 'or' || node.left.operator === '||')) {
734
- return isAllOr(node.left);
735
- }
736
- return true; // left is a leaf or and-branch (both fine as or-branch content)
737
- }
738
- /** Check if a logical chain contains only simple leaves (no functions, nested groups)
739
- * `not` is allowed on individual comparisons (Builder supports it as a toggle) */
740
- function isSimpleChain(node) {
741
- if (node.kind === 'Logical') {
742
- return isSimpleChain(node.left) && isSimpleChain(node.right);
743
- }
744
- if (node.kind === 'Comparison') {
745
- return node.left.kind !== 'FunctionCall' && node.left.kind !== 'ArrayUnpack';
879
+ return isTopLevelOr(node.left);
746
880
  }
747
- if (node.kind === 'InExpression') {
748
- // Negated in-expressions are fine if the field is simple
749
- return node.field.kind !== 'FunctionCall' && node.field.kind !== 'ArrayUnpack';
750
- }
751
- if (node.kind === 'Not') {
752
- // not wrapping a simple comparison or in-expression is Builder-compatible
753
- return isSimpleChain(node.operand);
754
- }
755
- if (node.kind === 'FieldAccess')
756
- return true;
757
- if (node.kind === 'BooleanLiteral')
758
- return true;
759
- if (node.kind === 'Group')
760
- return isSimpleChain(node.expression);
761
- return false;
881
+ return true;
762
882
  }
763
- /** Collect top-level or-branches from an all-or chain */
883
+ /** Collect top-level or-branches from an or-chain */
764
884
  function collectOrBranches(node, branches) {
765
885
  if (node.kind === 'Logical' && (node.operator === 'or' || node.operator === '||')) {
766
886
  collectOrBranches(node.left, branches);
@@ -770,6 +890,16 @@ function collectOrBranches(node, branches) {
770
890
  branches.push(node);
771
891
  }
772
892
  }
893
+ /** Collect top-level and-leaves from an and-chain */
894
+ function collectAndLeaves(node, leaves) {
895
+ if (node.kind === 'Logical' && (node.operator === 'and' || node.operator === '&&')) {
896
+ collectAndLeaves(node.left, leaves);
897
+ collectAndLeaves(node.right, leaves);
898
+ }
899
+ else {
900
+ leaves.push(node);
901
+ }
902
+ }
773
903
  /**
774
904
  * Check if an AST node ends with `and (cf.zone.plan eq "ENT")`.
775
905
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudflare-expression-lint",
3
- "version": "0.1.24",
3
+ "version": "0.1.25",
4
4
  "description": "A parser, validator, and linter for Cloudflare Rules Language expressions with phase-aware field and function checking",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",