@redocly/config-rules-builder 0.2.0 → 0.2.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.
@@ -1,6 +1,6 @@
1
- import { SectionTone } from '../styles';
2
- import { AssertionObject } from '../types';
3
- import { RuleErrors } from '../validation';
1
+ import { type SectionTone } from '../styles';
2
+ import type { AssertionObject } from '../types';
3
+ import type { RuleErrors } from '../validation';
4
4
  export interface AssertionsEditorProps {
5
5
  assertions: AssertionObject;
6
6
  onChange: (assertions: AssertionObject) => void;
@@ -1,4 +1,4 @@
1
- import { HostAdapters } from '../types';
1
+ import type { HostAdapters } from '../types';
2
2
  export interface ConfigPreviewProps {
3
3
  yaml: string;
4
4
  host?: HostAdapters;
@@ -1,4 +1,4 @@
1
- import { NamedRule } from '../types';
1
+ import type { NamedRule } from '../types';
2
2
  export interface ImportPanelProps {
3
3
  onImport: (rules: NamedRule[]) => void;
4
4
  }
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { type ReactNode } from 'react';
2
2
  export interface ModalProps {
3
3
  title: string;
4
4
  subtitle?: string;
@@ -1,4 +1,4 @@
1
- import { ProblemInfo } from '../types';
1
+ import type { ProblemInfo } from '../types';
2
2
  export interface ProblemsPanelProps {
3
3
  problems: ProblemInfo[];
4
4
  ruleErrors: string[];
@@ -1,4 +1,4 @@
1
- import { RuleEntry } from '../state';
1
+ import { type RuleEntry } from '../state';
2
2
  export interface RuleCardProps {
3
3
  entry: RuleEntry;
4
4
  selected: boolean;
@@ -10,8 +10,8 @@ export interface RuleCardProps {
10
10
  onRemove: () => void;
11
11
  }
12
12
  export declare function RuleCard({ entry, selected, matchCount, isDuplicateName, isEvaluating, onToggle, onChange, onRemove, }: RuleCardProps): import("react/jsx-runtime").JSX.Element;
13
- export declare const Badge: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$dim"> & {
13
+ export declare const Badge: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$dim"> & {
14
14
  $dim?: boolean;
15
- }, never> & Partial<Pick<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$dim"> & {
15
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "$dim"> & {
16
16
  $dim?: boolean;
17
17
  }, never>>> & string;
@@ -1,6 +1,6 @@
1
- import { RuleEntry } from '../state';
2
- import { ConfigPreviewProps } from './ConfigPreview';
3
- import { ImportPanelProps } from './ImportPanel';
1
+ import type { RuleEntry } from '../state';
2
+ import { type ConfigPreviewProps } from './ConfigPreview';
3
+ import { type ImportPanelProps } from './ImportPanel';
4
4
  export interface RuleListProps {
5
5
  entries: RuleEntry[];
6
6
  selectedId: string | null;
@@ -1,4 +1,4 @@
1
- import { ConfigurableRule, HostAdapters, NamedRule } from '../types';
1
+ import type { ConfigurableRule, HostAdapters, NamedRule } from '../types';
2
2
  export interface RulesBuilderProps {
3
3
  defaultSpec: string;
4
4
  defaultSpecFileName?: string;
@@ -1,5 +1,5 @@
1
- import { HostAdapters } from '../types';
2
- import { RulerMarker } from './OverviewRuler';
1
+ import type { HostAdapters } from '../types';
2
+ import { type RulerMarker } from './OverviewRuler';
3
3
  export interface FailRange {
4
4
  from: number;
5
5
  to: number;
@@ -1,5 +1,5 @@
1
- import { SubjectObject } from '../types';
2
- import { RuleErrors } from '../validation';
1
+ import type { SubjectObject } from '../types';
2
+ import { type RuleErrors } from '../validation';
3
3
  export interface SubjectEditorProps {
4
4
  subject: SubjectObject;
5
5
  onChange: (subject: SubjectObject) => void;
@@ -1,4 +1,4 @@
1
- import { Severity } from '../../types';
1
+ import type { Severity } from '../../types';
2
2
  export declare function SeverityPill({ value, onChange, }: {
3
3
  value: Severity;
4
4
  onChange: (value: Severity) => void;
@@ -1,26 +1,26 @@
1
- import { CSSProperties, ReactNode } from 'react';
2
- import { SectionTone } from '../../styles';
3
- export declare const InlineSelect: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never>>> & string;
4
- export declare const InlineInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>> & string;
5
- export declare const MonoInput: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('styled-components').FastOmit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>, "as" | "forwardedAs"> & {
6
- as?: import('styled-components').WebTarget | undefined;
7
- forwardedAs?: import('styled-components').WebTarget | undefined;
8
- }, never> & Partial<Pick<import('styled-components').FastOmit<import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>, "as" | "forwardedAs"> & {
9
- as?: import('styled-components').WebTarget | undefined;
10
- forwardedAs?: import('styled-components').WebTarget | undefined;
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ import { type SectionTone } from '../../styles';
3
+ export declare const InlineSelect: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, never>>> & string;
4
+ export declare const InlineInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>> & string;
5
+ export declare const MonoInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>, "as" | "forwardedAs"> & {
6
+ as?: import("styled-components").WebTarget | undefined;
7
+ forwardedAs?: import("styled-components").WebTarget | undefined;
8
+ }, never> & Partial<Pick<import("styled-components").FastOmit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, never>>, "as" | "forwardedAs"> & {
9
+ as?: import("styled-components").WebTarget | undefined;
10
+ forwardedAs?: import("styled-components").WebTarget | undefined;
11
11
  }, never>>> & string;
12
- export declare const ToolbarButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
13
- export declare const TriggerButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
14
- export declare const SecondaryButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
15
- export declare const PrimaryButton: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
16
- export declare const Keyword: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
12
+ export declare const ToolbarButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
13
+ export declare const TriggerButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
14
+ export declare const SecondaryButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
15
+ export declare const PrimaryButton: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, never>>> & string;
16
+ export declare const Keyword: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, never>>> & string;
17
17
  export declare function Section({ tone, label, hint, children, }: {
18
18
  tone: SectionTone;
19
19
  label: string;
20
20
  hint: string;
21
21
  children: ReactNode;
22
22
  }): import("react/jsx-runtime").JSX.Element;
23
- export declare const SentenceRow: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
23
+ export declare const SentenceRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never> & Partial<Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>> & string;
24
24
  export declare function Chevron({ open }: {
25
25
  open: boolean;
26
26
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { AssertionKey, CasingStyle } from './types';
1
+ import type { AssertionKey, CasingStyle } from './types';
2
2
  export declare const CASING_STYLES: CasingStyle[];
3
3
  export declare const NODE_TYPES: string[];
4
4
  export type AssertionValueKind = 'casing' | 'text' | 'regex' | 'stringList' | 'number' | 'boolean' | 'refValue';
@@ -1,2 +1,2 @@
1
- import { EvaluationResult, NamedRule } from '../types';
1
+ import type { EvaluationResult, NamedRule } from '../types';
2
2
  export declare function evaluateRules(specText: string, rules: NamedRule[], fileName?: string): Promise<EvaluationResult>;
@@ -1,43 +1,43 @@
1
- import { ConfigurableRule, SubjectObject } from './types';
1
+ import type { ConfigurableRule, SubjectObject } from './types';
2
2
  export declare function pruneRule(rule: ConfigurableRule): {
3
- severity?: "warn" | "off" | undefined;
4
- reference?: string | undefined;
5
- suggest?: string[] | undefined;
6
- message?: string | undefined;
3
+ subject: {
4
+ type: string;
5
+ property?: string | string[] | undefined;
6
+ filterInParentKeys?: string[] | undefined;
7
+ filterOutParentKeys?: string[] | undefined;
8
+ matchParentKeys?: string | undefined;
9
+ };
10
+ assertions: import("./types").AssertionObject;
7
11
  where?: {
8
12
  subject: {
9
- matchParentKeys?: string | undefined;
10
- filterOutParentKeys?: string[] | undefined;
11
- filterInParentKeys?: string[] | undefined;
12
- property?: string | string[] | undefined;
13
13
  type: string;
14
+ property?: string | string[] | undefined;
15
+ filterInParentKeys?: string[] | undefined;
16
+ filterOutParentKeys?: string[] | undefined;
17
+ matchParentKeys?: string | undefined;
14
18
  };
15
- assertions: import('./types').AssertionObject;
19
+ assertions: import("./types").AssertionObject;
16
20
  }[] | undefined;
17
- subject: {
18
- matchParentKeys?: string | undefined;
19
- filterOutParentKeys?: string[] | undefined;
20
- filterInParentKeys?: string[] | undefined;
21
- property?: string | string[] | undefined;
22
- type: string;
23
- };
24
- assertions: import('./types').AssertionObject;
21
+ message?: string | undefined;
22
+ suggest?: string[] | undefined;
23
+ reference?: string | undefined;
24
+ severity?: "off" | "warn" | undefined;
25
25
  };
26
26
  export declare function pruneWhere(where: ConfigurableRule['where']): {
27
27
  subject: {
28
- matchParentKeys?: string | undefined;
29
- filterOutParentKeys?: string[] | undefined;
30
- filterInParentKeys?: string[] | undefined;
31
- property?: string | string[] | undefined;
32
28
  type: string;
29
+ property?: string | string[] | undefined;
30
+ filterInParentKeys?: string[] | undefined;
31
+ filterOutParentKeys?: string[] | undefined;
32
+ matchParentKeys?: string | undefined;
33
33
  };
34
- assertions: import('./types').AssertionObject;
34
+ assertions: import("./types").AssertionObject;
35
35
  }[] | undefined;
36
36
  export declare function cleanSubject(subject: SubjectObject): {
37
- matchParentKeys?: string | undefined;
38
- filterOutParentKeys?: string[] | undefined;
39
- filterInParentKeys?: string[] | undefined;
40
- property?: string | string[] | undefined;
41
37
  type: string;
38
+ property?: string | string[] | undefined;
39
+ filterInParentKeys?: string[] | undefined;
40
+ filterOutParentKeys?: string[] | undefined;
41
+ matchParentKeys?: string | undefined;
42
42
  };
43
43
  export declare function ruleId(name: string, index: number): string;
package/dist/state.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { ConfigurableRule, NamedRule } from './types';
1
+ import type { ConfigurableRule, NamedRule } from './types';
2
2
  export interface RuleEntry {
3
3
  id: string;
4
4
  name: string;
package/dist/styles.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Severity } from './types';
1
+ import type { Severity } from './types';
2
2
  export declare const FONT_FAMILY = "var(--font-family-base, 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif)";
3
3
  export declare const MONO_FONT_FAMILY = "var(--font-family-monospaced, 'SF Mono', 'JetBrains Mono', ui-monospace, Menlo, Monaco, 'Courier New', monospace)";
4
4
  export type SectionTone = 'subject' | 'where' | 'assert' | 'message' | 'suggest';
@@ -1,4 +1,4 @@
1
- import { ConfigurableRule, SubjectObject } from './types';
1
+ import type { ConfigurableRule, SubjectObject } from './types';
2
2
  export type RuleErrors = Record<string, string>;
3
3
  export declare function hasSubjectProperty(subject: SubjectObject): boolean;
4
4
  export declare function validateRule(name: string, rule: ConfigurableRule): RuleErrors;
@@ -1,4 +1,4 @@
1
- import { NamedRule } from '../types';
1
+ import type { NamedRule } from '../types';
2
2
  export interface ImportResult {
3
3
  rules: NamedRule[];
4
4
  skipped: string[];
@@ -1,2 +1,2 @@
1
- import { NamedRule } from '../types';
1
+ import type { NamedRule } from '../types';
2
2
  export declare function serializeRules(rules: NamedRule[]): string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/config-rules-builder",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Visual builder for Redocly configurable rules (rule/*) with live matching against an OpenAPI document",
5
5
  "keywords": [
6
6
  "redocly",
@@ -36,7 +36,7 @@
36
36
  "@codemirror/language": "^6.11.3",
37
37
  "@codemirror/state": "^6.5.2",
38
38
  "@codemirror/view": "^6.25.1",
39
- "@redocly/openapi-core": "2.72.1",
39
+ "@redocly/openapi-core": "2.73.0",
40
40
  "js-yaml": "4.3.2",
41
41
  "yaml-ast-parser": "0.0.43"
42
42
  },
@@ -56,16 +56,15 @@
56
56
  "styled-components": "^6.4.2",
57
57
  "typescript": "6.0.3",
58
58
  "vite": "8.3.3",
59
- "vite-plugin-dts": "4.5.4",
60
59
  "vitest": "4.1.11"
61
60
  },
62
61
  "scripts": {
63
62
  "clean": "rm -rf dist dist-demo",
64
- "build": "pnpm run clean && vite build",
63
+ "build": "pnpm run clean && vite build && tsgo -p tsconfig.build.json",
65
64
  "dev": "vite --config vite.demo.config.ts",
66
65
  "build:demo": "vite build --config vite.demo.config.ts",
67
66
  "preview": "vite preview --config vite.demo.config.ts",
68
67
  "test": "vitest run",
69
- "ts:check": "tsc --noEmit"
68
+ "ts:check": "tsgo --noEmit"
70
69
  }
71
70
  }