@revisium/formula 0.8.0 → 0.10.0

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.
Files changed (75) hide show
  1. package/dist/__tests__/array-context.spec.d.ts +2 -0
  2. package/dist/__tests__/array-context.spec.d.ts.map +1 -0
  3. package/dist/__tests__/dependency-graph.spec.d.ts +2 -0
  4. package/dist/__tests__/dependency-graph.spec.d.ts.map +1 -0
  5. package/dist/__tests__/evaluate-complex.spec.d.ts +2 -0
  6. package/dist/__tests__/evaluate-complex.spec.d.ts.map +1 -0
  7. package/dist/__tests__/parse-formula.spec.d.ts +2 -0
  8. package/dist/__tests__/parse-formula.spec.d.ts.map +1 -0
  9. package/dist/__tests__/parser.spec.d.ts +2 -0
  10. package/dist/__tests__/parser.spec.d.ts.map +1 -0
  11. package/dist/__tests__/replace-dependencies.spec.d.ts +2 -0
  12. package/dist/__tests__/replace-dependencies.spec.d.ts.map +1 -0
  13. package/dist/__tests__/serialize-ast.spec.d.ts +2 -0
  14. package/dist/__tests__/serialize-ast.spec.d.ts.map +1 -0
  15. package/dist/__tests__/validate-syntax.spec.d.ts +2 -0
  16. package/dist/__tests__/validate-syntax.spec.d.ts.map +1 -0
  17. package/dist/dependency-graph.d.ts +17 -0
  18. package/dist/dependency-graph.d.ts.map +1 -0
  19. package/dist/editor/index.cjs +4 -19
  20. package/dist/editor/index.d.ts +8 -1
  21. package/dist/editor/index.d.ts.map +1 -0
  22. package/dist/editor/index.mjs +3 -0
  23. package/dist/formula-spec.cjs +831 -535
  24. package/dist/formula-spec.cjs.map +1 -1
  25. package/dist/formula-spec.d.ts +10 -5
  26. package/dist/formula-spec.d.ts.map +1 -0
  27. package/dist/formula-spec.mjs +1062 -0
  28. package/dist/formula-spec.mjs.map +1 -0
  29. package/dist/index.cjs +121 -131
  30. package/dist/index.cjs.map +1 -1
  31. package/dist/index.d.ts +10 -25
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.mjs +130 -0
  34. package/dist/index.mjs.map +1 -0
  35. package/dist/ohm/core/parser.d.ts +30 -0
  36. package/dist/ohm/core/parser.d.ts.map +1 -0
  37. package/dist/ohm/core/replace-dependencies.d.ts +3 -0
  38. package/dist/ohm/core/replace-dependencies.d.ts.map +1 -0
  39. package/dist/ohm/core/serialize-ast.d.ts +3 -0
  40. package/dist/ohm/core/serialize-ast.d.ts.map +1 -0
  41. package/dist/ohm/core/types.d.ts +78 -0
  42. package/dist/ohm/core/types.d.ts.map +1 -0
  43. package/dist/ohm/grammar/index.d.ts +3 -0
  44. package/dist/ohm/grammar/index.d.ts.map +1 -0
  45. package/dist/ohm/index.d.ts +8 -0
  46. package/dist/ohm/index.d.ts.map +1 -0
  47. package/dist/ohm/semantics/index.d.ts +2 -0
  48. package/dist/ohm/semantics/index.d.ts.map +1 -0
  49. package/dist/parse-formula.d.ts +9 -0
  50. package/dist/parse-formula.d.ts.map +1 -0
  51. package/dist/types.d.ts +52 -0
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/validate-syntax-Dttxs0ku.mjs +1426 -0
  54. package/dist/validate-syntax-Dttxs0ku.mjs.map +1 -0
  55. package/dist/validate-syntax-q3bM-DaM.cjs +1507 -0
  56. package/dist/validate-syntax-q3bM-DaM.cjs.map +1 -0
  57. package/dist/validate-syntax.d.ts +9 -0
  58. package/dist/validate-syntax.d.ts.map +1 -0
  59. package/package.json +12 -11
  60. package/dist/chunk-4FIOGFOL.cjs +0 -1512
  61. package/dist/chunk-4FIOGFOL.cjs.map +0 -1
  62. package/dist/chunk-RMAHNB4D.js +0 -1482
  63. package/dist/chunk-RMAHNB4D.js.map +0 -1
  64. package/dist/editor/index.cjs.map +0 -1
  65. package/dist/editor/index.d.cts +0 -1
  66. package/dist/editor/index.js +0 -3
  67. package/dist/editor/index.js.map +0 -1
  68. package/dist/formula-spec.d.cts +0 -68
  69. package/dist/formula-spec.js +0 -765
  70. package/dist/formula-spec.js.map +0 -1
  71. package/dist/index-CPsOPCQ6.d.cts +0 -166
  72. package/dist/index-CPsOPCQ6.d.ts +0 -166
  73. package/dist/index.d.cts +0 -25
  74. package/dist/index.js +0 -111
  75. package/dist/index.js.map +0 -1
@@ -0,0 +1,30 @@
1
+ import type { ASTNode } from './types';
2
+ import type { ArrayContext, FormulaFeature, FormulaMinorVersion } from '../../types';
3
+ export interface ParseResult {
4
+ ast: ASTNode;
5
+ dependencies: string[];
6
+ features: FormulaFeature[];
7
+ minVersion: FormulaMinorVersion;
8
+ }
9
+ export declare function parseFormula(expression: string): ParseResult;
10
+ export declare function validateSyntax(expression: string): {
11
+ isValid: true;
12
+ } | {
13
+ isValid: false;
14
+ error: string;
15
+ position?: number;
16
+ };
17
+ export declare function evaluate(expression: string, context: Record<string, unknown>): unknown;
18
+ export interface EvaluateContextOptions {
19
+ rootData: Record<string, unknown>;
20
+ itemData?: Record<string, unknown>;
21
+ currentPath?: string;
22
+ arrayContext?: ArrayContext;
23
+ }
24
+ export declare function evaluateWithContext(expression: string, options: EvaluateContextOptions): unknown;
25
+ export type InferredType = 'number' | 'boolean' | 'string' | 'unknown';
26
+ export interface FieldTypes {
27
+ [fieldName: string]: 'number' | 'string' | 'boolean' | 'object' | 'array';
28
+ }
29
+ export declare function inferFormulaType(expression: string, fieldTypes?: FieldTypes): InferredType;
30
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/ohm/core/parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EACV,YAAY,EAEZ,cAAc,EACd,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAYrB,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAmB5D;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,MAAM,GACjB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAiB1E;AAED,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAmBT;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAkND,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAwBT;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,UAAU;IACzB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC3E;AAsJD,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,UAAU,GAAE,UAAe,GAC1B,YAAY,CAYd"}
@@ -0,0 +1,3 @@
1
+ import type { ASTNode } from './types';
2
+ export declare function replaceDependencies(ast: ASTNode, replacements: Record<string, string>): ASTNode;
3
+ //# sourceMappingURL=replace-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replace-dependencies.d.ts","sourceRoot":"","sources":["../../../src/ohm/core/replace-dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AA0JvC,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAET"}
@@ -0,0 +1,3 @@
1
+ import type { ASTNode } from './types';
2
+ export declare function serializeAst(ast: ASTNode): string;
3
+ //# sourceMappingURL=serialize-ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serialize-ast.d.ts","sourceRoot":"","sources":["../../../src/ohm/core/serialize-ast.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAiJvC,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAEjD"}
@@ -0,0 +1,78 @@
1
+ export type ASTNode = NumberLiteral | StringLiteral | BooleanLiteral | NullLiteral | Identifier | BracketedIdentifier | RootPath | RelativePath | ContextToken | BinaryOp | UnaryOp | TernaryOp | CallExpression | MemberExpression | BracketedMemberExpression | IndexExpression | WildcardExpression;
2
+ export interface NumberLiteral {
3
+ type: 'NumberLiteral';
4
+ value: number;
5
+ }
6
+ export interface StringLiteral {
7
+ type: 'StringLiteral';
8
+ value: string;
9
+ }
10
+ export interface BooleanLiteral {
11
+ type: 'BooleanLiteral';
12
+ value: boolean;
13
+ }
14
+ export interface NullLiteral {
15
+ type: 'NullLiteral';
16
+ }
17
+ export interface Identifier {
18
+ type: 'Identifier';
19
+ name: string;
20
+ }
21
+ export interface BracketedIdentifier {
22
+ type: 'BracketedIdentifier';
23
+ name: string;
24
+ }
25
+ export interface RootPath {
26
+ type: 'RootPath';
27
+ path: string;
28
+ }
29
+ export interface RelativePath {
30
+ type: 'RelativePath';
31
+ path: string;
32
+ }
33
+ export interface ContextToken {
34
+ type: 'ContextToken';
35
+ name: string;
36
+ }
37
+ export interface BinaryOp {
38
+ type: 'BinaryOp';
39
+ op: string;
40
+ left: ASTNode;
41
+ right: ASTNode;
42
+ }
43
+ export interface UnaryOp {
44
+ type: 'UnaryOp';
45
+ op: string;
46
+ argument: ASTNode;
47
+ }
48
+ export interface TernaryOp {
49
+ type: 'TernaryOp';
50
+ condition: ASTNode;
51
+ consequent: ASTNode;
52
+ alternate: ASTNode;
53
+ }
54
+ export interface CallExpression {
55
+ type: 'CallExpression';
56
+ callee: ASTNode;
57
+ arguments: ASTNode[];
58
+ }
59
+ export interface MemberExpression {
60
+ type: 'MemberExpression';
61
+ object: ASTNode;
62
+ property: string;
63
+ }
64
+ export interface BracketedMemberExpression {
65
+ type: 'BracketedMemberExpression';
66
+ object: ASTNode;
67
+ property: string;
68
+ }
69
+ export interface IndexExpression {
70
+ type: 'IndexExpression';
71
+ object: ASTNode;
72
+ index: ASTNode;
73
+ }
74
+ export interface WildcardExpression {
75
+ type: 'WildcardExpression';
76
+ object: ASTNode;
77
+ }
78
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ohm/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GACf,aAAa,GACb,aAAa,GACb,cAAc,GACd,WAAW,GACX,UAAU,GACV,mBAAmB,GACnB,QAAQ,GACR,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,OAAO,GACP,SAAS,GACT,cAAc,GACd,gBAAgB,GAChB,yBAAyB,GACzB,eAAe,GACf,kBAAkB,CAAC;AAEvB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,eAAe,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ import * as ohm from 'ohm-js';
2
+ export declare const grammar: ohm.Grammar;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ohm/grammar/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAqI9B,eAAO,MAAM,OAAO,aAA2B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { grammar } from './grammar';
2
+ export { semantics } from './semantics';
3
+ export type { ASTNode } from './core/types';
4
+ export { parseFormula, validateSyntax, evaluate, evaluateWithContext, inferFormulaType, } from './core/parser';
5
+ export type { ParseResult, EvaluateContextOptions, InferredType, FieldTypes, } from './core/parser';
6
+ export { serializeAst } from './core/serialize-ast';
7
+ export { replaceDependencies } from './core/replace-dependencies';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ohm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,YAAY,EACZ,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const semantics: import("ohm-js").Semantics;
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ohm/semantics/index.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,SAAS,4BAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { FormulaFeature, FormulaMinorVersion } from './types';
2
+ export interface ParsedExpression {
3
+ expression: string;
4
+ dependencies: string[];
5
+ minVersion: FormulaMinorVersion;
6
+ features: FormulaFeature[];
7
+ }
8
+ export declare function parseExpression(expression: string): ParsedExpression;
9
+ //# sourceMappingURL=parse-formula.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-formula.d.ts","sourceRoot":"","sources":["../src/parse-formula.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG9D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAeD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAQpE"}
@@ -0,0 +1,52 @@
1
+ export interface XFormula {
2
+ version: 1;
3
+ expression: string;
4
+ }
5
+ export type FormulaMinorVersion = '1.0' | '1.1' | '1.2';
6
+ export type FormulaFeature = 'nested_path' | 'array_index' | 'array_wildcard' | 'relative_path' | 'root_path' | 'context_token' | 'array_function' | 'bracket_notation';
7
+ export interface FormulaAnalysis {
8
+ minVersion: FormulaMinorVersion;
9
+ features: FormulaFeature[];
10
+ dependencies: string[];
11
+ }
12
+ export type PathSegment = {
13
+ type: 'property';
14
+ name: string;
15
+ } | {
16
+ type: 'index';
17
+ value: number;
18
+ } | {
19
+ type: 'wildcard';
20
+ } | {
21
+ type: 'parent';
22
+ } | {
23
+ type: 'root';
24
+ } | {
25
+ type: 'token';
26
+ name: string;
27
+ };
28
+ export interface ParsedPath {
29
+ original: string;
30
+ segments: PathSegment[];
31
+ isAbsolute: boolean;
32
+ isRelative: boolean;
33
+ }
34
+ export interface PathValidationResult {
35
+ isValid: boolean;
36
+ error?: string;
37
+ segments?: PathSegment[];
38
+ }
39
+ export interface FormulaContext {
40
+ [fieldName: string]: unknown;
41
+ }
42
+ export type FormulaResult = number | string | boolean | null;
43
+ export interface ArrayLevelContext {
44
+ index: number;
45
+ length: number;
46
+ prev: unknown;
47
+ next: unknown;
48
+ }
49
+ export interface ArrayContext {
50
+ levels: ArrayLevelContext[];
51
+ }
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,QAAQ;IAOvB,OAAO,EAAE,CAAC,CAAC;IAOX,UAAU,EAAE,MAAM,CAAC;CACpB;AAKD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAKxD,MAAM,MAAM,cAAc,GACtB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,WAAW,GACX,eAAe,GACf,gBAAgB,GAChB,kBAAkB,CAAC;AAKvB,MAAM,WAAW,eAAe;IAE9B,UAAU,EAAE,mBAAmB,CAAC;IAEhC,QAAQ,EAAE,cAAc,EAAE,CAAC;IAE3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAKD,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAKpC,MAAM,WAAW,UAAU;IAEzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IAExB,UAAU,EAAE,OAAO,CAAC;IAEpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAKD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAKD,MAAM,WAAW,cAAc;IAE7B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B;AAKD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAK7D,MAAM,WAAW,iBAAiB;IAEhC,KAAK,EAAE,MAAM,CAAC;IAEd,MAAM,EAAE,MAAM,CAAC;IAEf,IAAI,EAAE,OAAO,CAAC;IAEd,IAAI,EAAE,OAAO,CAAC;CACf;AAMD,MAAM,WAAW,YAAY;IAE3B,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B"}