@univerjs/engine-formula 0.1.0-alpha.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.
Files changed (149) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/lib/cjs/index.js +8809 -0
  4. package/lib/esm/index.js +8800 -0
  5. package/lib/types/analysis/lexer-node.d.ts +49 -0
  6. package/lib/types/analysis/lexer-node.d.ts.map +1 -0
  7. package/lib/types/analysis/lexer.d.ts +84 -0
  8. package/lib/types/analysis/lexer.d.ts.map +1 -0
  9. package/lib/types/analysis/parser.d.ts +41 -0
  10. package/lib/types/analysis/parser.d.ts.map +1 -0
  11. package/lib/types/analysis/un-parser.d.ts +1 -0
  12. package/lib/types/analysis/un-parser.d.ts.map +1 -0
  13. package/lib/types/ast-node/ast-root-node.d.ts +13 -0
  14. package/lib/types/ast-node/ast-root-node.d.ts.map +1 -0
  15. package/lib/types/ast-node/base-ast-node-factory.d.ts +11 -0
  16. package/lib/types/ast-node/base-ast-node-factory.d.ts.map +1 -0
  17. package/lib/types/ast-node/base-ast-node.d.ts +57 -0
  18. package/lib/types/ast-node/base-ast-node.d.ts.map +1 -0
  19. package/lib/types/ast-node/function-node.d.ts +24 -0
  20. package/lib/types/ast-node/function-node.d.ts.map +1 -0
  21. package/lib/types/ast-node/index.d.ts +11 -0
  22. package/lib/types/ast-node/index.d.ts.map +1 -0
  23. package/lib/types/ast-node/lambda-node.d.ts +24 -0
  24. package/lib/types/ast-node/lambda-node.d.ts.map +1 -0
  25. package/lib/types/ast-node/lambda-parameter-node.d.ts +21 -0
  26. package/lib/types/ast-node/lambda-parameter-node.d.ts.map +1 -0
  27. package/lib/types/ast-node/node-type.d.ts +17 -0
  28. package/lib/types/ast-node/node-type.d.ts.map +1 -0
  29. package/lib/types/ast-node/null-node.d.ts +9 -0
  30. package/lib/types/ast-node/null-node.d.ts.map +1 -0
  31. package/lib/types/ast-node/operator-node.d.ts +21 -0
  32. package/lib/types/ast-node/operator-node.d.ts.map +1 -0
  33. package/lib/types/ast-node/prefix-node.d.ts +26 -0
  34. package/lib/types/ast-node/prefix-node.d.ts.map +1 -0
  35. package/lib/types/ast-node/reference-node.d.ts +28 -0
  36. package/lib/types/ast-node/reference-node.d.ts.map +1 -0
  37. package/lib/types/ast-node/suffix-node.d.ts +25 -0
  38. package/lib/types/ast-node/suffix-node.d.ts.map +1 -0
  39. package/lib/types/ast-node/union-node.d.ts +21 -0
  40. package/lib/types/ast-node/union-node.d.ts.map +1 -0
  41. package/lib/types/ast-node/value-node.d.ts +17 -0
  42. package/lib/types/ast-node/value-node.d.ts.map +1 -0
  43. package/lib/types/basics/cache-lru.d.ts +9 -0
  44. package/lib/types/basics/cache-lru.d.ts.map +1 -0
  45. package/lib/types/basics/calculate.d.ts +3 -0
  46. package/lib/types/basics/calculate.d.ts.map +1 -0
  47. package/lib/types/basics/common.d.ts +112 -0
  48. package/lib/types/basics/common.d.ts.map +1 -0
  49. package/lib/types/basics/dirty.d.ts +3 -0
  50. package/lib/types/basics/dirty.d.ts.map +1 -0
  51. package/lib/types/basics/error-type.d.ts +29 -0
  52. package/lib/types/basics/error-type.d.ts.map +1 -0
  53. package/lib/types/basics/function-definition.d.ts +4 -0
  54. package/lib/types/basics/function-definition.d.ts.map +1 -0
  55. package/lib/types/basics/function.d.ts +138 -0
  56. package/lib/types/basics/function.d.ts.map +1 -0
  57. package/lib/types/basics/match-token.d.ts +6 -0
  58. package/lib/types/basics/match-token.d.ts.map +1 -0
  59. package/lib/types/basics/node-type.d.ts +6 -0
  60. package/lib/types/basics/node-type.d.ts.map +1 -0
  61. package/lib/types/basics/object-class-type.d.ts +9 -0
  62. package/lib/types/basics/object-class-type.d.ts.map +1 -0
  63. package/lib/types/basics/regex.d.ts +18 -0
  64. package/lib/types/basics/regex.d.ts.map +1 -0
  65. package/lib/types/basics/sequence.d.ts +28 -0
  66. package/lib/types/basics/sequence.d.ts.map +1 -0
  67. package/lib/types/basics/set-zero-time-out.d.ts +7 -0
  68. package/lib/types/basics/set-zero-time-out.d.ts.map +1 -0
  69. package/lib/types/basics/token-type.d.ts +8 -0
  70. package/lib/types/basics/token-type.d.ts.map +1 -0
  71. package/lib/types/basics/token.d.ts +45 -0
  72. package/lib/types/basics/token.d.ts.map +1 -0
  73. package/lib/types/dependency/dependency-tree.d.ts +49 -0
  74. package/lib/types/dependency/dependency-tree.d.ts.map +1 -0
  75. package/lib/types/dependency/formula-dependency.d.ts +67 -0
  76. package/lib/types/dependency/formula-dependency.d.ts.map +1 -0
  77. package/lib/types/functions/average.d.ts +6 -0
  78. package/lib/types/functions/average.d.ts.map +1 -0
  79. package/lib/types/functions/base-function.d.ts +14 -0
  80. package/lib/types/functions/base-function.d.ts.map +1 -0
  81. package/lib/types/functions/concatenate.d.ts +7 -0
  82. package/lib/types/functions/concatenate.d.ts.map +1 -0
  83. package/lib/types/functions/count.d.ts +7 -0
  84. package/lib/types/functions/count.d.ts.map +1 -0
  85. package/lib/types/functions/index.d.ts +16 -0
  86. package/lib/types/functions/index.d.ts.map +1 -0
  87. package/lib/types/functions/indirect.d.ts +7 -0
  88. package/lib/types/functions/indirect.d.ts.map +1 -0
  89. package/lib/types/functions/max.d.ts +8 -0
  90. package/lib/types/functions/max.d.ts.map +1 -0
  91. package/lib/types/functions/meta/compare.d.ts +9 -0
  92. package/lib/types/functions/meta/compare.d.ts.map +1 -0
  93. package/lib/types/functions/meta/divided.d.ts +6 -0
  94. package/lib/types/functions/meta/divided.d.ts.map +1 -0
  95. package/lib/types/functions/meta/minus.d.ts +6 -0
  96. package/lib/types/functions/meta/minus.d.ts.map +1 -0
  97. package/lib/types/functions/meta/multiply.d.ts +6 -0
  98. package/lib/types/functions/meta/multiply.d.ts.map +1 -0
  99. package/lib/types/functions/meta/plus.d.ts +6 -0
  100. package/lib/types/functions/meta/plus.d.ts.map +1 -0
  101. package/lib/types/functions/meta/union.d.ts +9 -0
  102. package/lib/types/functions/meta/union.d.ts.map +1 -0
  103. package/lib/types/functions/min.d.ts +8 -0
  104. package/lib/types/functions/min.d.ts.map +1 -0
  105. package/lib/types/functions/offset.d.ts +7 -0
  106. package/lib/types/functions/offset.d.ts.map +1 -0
  107. package/lib/types/functions/power.d.ts +7 -0
  108. package/lib/types/functions/power.d.ts.map +1 -0
  109. package/lib/types/functions/sum.d.ts +8 -0
  110. package/lib/types/functions/sum.d.ts.map +1 -0
  111. package/lib/types/index.d.ts +23 -0
  112. package/lib/types/index.d.ts.map +1 -0
  113. package/lib/types/interpreter/interpreter.d.ts +18 -0
  114. package/lib/types/interpreter/interpreter.d.ts.map +1 -0
  115. package/lib/types/other-object/error-value-object.d.ts +12 -0
  116. package/lib/types/other-object/error-value-object.d.ts.map +1 -0
  117. package/lib/types/plugin.d.ts +8 -0
  118. package/lib/types/plugin.d.ts.map +1 -0
  119. package/lib/types/reference-object/base-reference-object.d.ts +95 -0
  120. package/lib/types/reference-object/base-reference-object.d.ts.map +1 -0
  121. package/lib/types/reference-object/cell-reference-object.d.ts +12 -0
  122. package/lib/types/reference-object/cell-reference-object.d.ts.map +1 -0
  123. package/lib/types/reference-object/column-reference-object.d.ts +8 -0
  124. package/lib/types/reference-object/column-reference-object.d.ts.map +1 -0
  125. package/lib/types/reference-object/range-reference-object.d.ts +7 -0
  126. package/lib/types/reference-object/range-reference-object.d.ts.map +1 -0
  127. package/lib/types/reference-object/row-reference-object.d.ts +8 -0
  128. package/lib/types/reference-object/row-reference-object.d.ts.map +1 -0
  129. package/lib/types/reference-object/table-reference-object.d.ts +12 -0
  130. package/lib/types/reference-object/table-reference-object.d.ts.map +1 -0
  131. package/lib/types/services/current-data.service.d.ts +49 -0
  132. package/lib/types/services/current-data.service.d.ts.map +1 -0
  133. package/lib/types/services/defined-names.service.d.ts +13 -0
  134. package/lib/types/services/defined-names.service.d.ts.map +1 -0
  135. package/lib/types/services/formula-engine.service.d.ts +98 -0
  136. package/lib/types/services/formula-engine.service.d.ts.map +1 -0
  137. package/lib/types/services/function.service.d.ts +29 -0
  138. package/lib/types/services/function.service.d.ts.map +1 -0
  139. package/lib/types/services/runtime.service.d.ts +149 -0
  140. package/lib/types/services/runtime.service.d.ts.map +1 -0
  141. package/lib/types/services/super-table.service.d.ts +19 -0
  142. package/lib/types/services/super-table.service.d.ts.map +1 -0
  143. package/lib/types/value-object/array-value-object.d.ts +41 -0
  144. package/lib/types/value-object/array-value-object.d.ts.map +1 -0
  145. package/lib/types/value-object/base-value-object.d.ts +41 -0
  146. package/lib/types/value-object/base-value-object.d.ts.map +1 -0
  147. package/lib/types/value-object/primitive-object.d.ts +67 -0
  148. package/lib/types/value-object/primitive-object.d.ts.map +1 -0
  149. package/package.json +52 -0
@@ -0,0 +1,98 @@
1
+ import { Disposable, IConfigService } from '@univerjs/core';
2
+ import { Injector } from '@wendellhu/redi';
3
+ import { LexerTreeBuilder } from '../analysis/lexer';
4
+ import type { LexerNode } from '../analysis/lexer-node';
5
+ import { AstTreeBuilder } from '../analysis/parser';
6
+ import { ErrorNode } from '../ast-node/base-ast-node';
7
+ import type { IFormulaDatasetConfig } from '../basics/common';
8
+ import type { IFunctionInfo } from '../basics/function';
9
+ import { FUNCTION_NAMES } from '../basics/function';
10
+ import { FormulaDependencyGenerator } from '../dependency/formula-dependency';
11
+ import type { BaseFunction } from '../functions/base-function';
12
+ import { Interpreter } from '../interpreter/interpreter';
13
+ import { FormulaCurrentConfigService } from './current-data.service';
14
+ import { DefinedNamesService } from './defined-names.service';
15
+ import { FunctionService } from './function.service';
16
+ import type { IAllRuntimeData, IExecutionInProgressParams } from './runtime.service';
17
+ import { FormulaRuntimeService } from './runtime.service';
18
+ import { ISuperTableService } from './super-table.service';
19
+ export declare const DEFAULT_CYCLE_REFERENCE_COUNT = 1;
20
+ export declare const CYCLE_REFERENCE_COUNT = "cycleReferenceCount";
21
+ export declare const EVERY_N_FUNCTION_EXECUTION_PAUSE = 100;
22
+ export declare class FormulaEngineService extends Disposable {
23
+ private readonly _injector;
24
+ private readonly _configService;
25
+ private readonly _executionStartListener$;
26
+ readonly executionStartListener$: import("rxjs").Observable<boolean>;
27
+ private readonly _executionCompleteListener$;
28
+ readonly executionCompleteListener$: import("rxjs").Observable<IAllRuntimeData>;
29
+ private readonly _executionInProgressListener$;
30
+ readonly executionInProgressListener$: import("rxjs").Observable<IExecutionInProgressParams>;
31
+ constructor(_injector: Injector, _configService: IConfigService);
32
+ dispose(): void;
33
+ get currentConfigService(): FormulaCurrentConfigService;
34
+ get runtimeService(): FormulaRuntimeService;
35
+ get superTableService(): ISuperTableService;
36
+ get definedNamesService(): DefinedNamesService;
37
+ get formulaDependencyGenerator(): FormulaDependencyGenerator;
38
+ get interpreter(): Interpreter;
39
+ get astTreeBuilder(): AstTreeBuilder;
40
+ get functionService(): FunctionService;
41
+ get lexerTreeBuilder(): LexerTreeBuilder;
42
+ /**
43
+ * Use register to register a function, new CustomFunction(inject, name)
44
+ */
45
+ registerFunction(...functions: BaseFunction[]): void;
46
+ /**
47
+ * Obtain the operator of the function to reuse the calculation logic.
48
+ * The argument type accepted by the function is: FunctionVariantType.
49
+ * For instance, the sum formula capability is needed for the statistics bar.
50
+ * You can obtain the calculation result by using
51
+ * const sum = formulaService.getExecutor(FUNCTION_NAMES.SUM);
52
+ * sum.calculate(new RangeReferenceObject(range, sheetId, unitId), ref2, re3).
53
+ * @param functionName Function name, which can be obtained through the FUNCTION_NAMES enumeration.
54
+ * @returns
55
+ */
56
+ getExecutor(functionName: FUNCTION_NAMES): BaseFunction | undefined;
57
+ /**
58
+ * Use register to register function description
59
+ */
60
+ registerDescription(...descriptions: IFunctionInfo[]): void;
61
+ /**
62
+ * Obtain all function descriptions registered to the formulaEngineService.
63
+ * @returns
64
+ */
65
+ getDescriptions(): Map<string, IFunctionInfo>;
66
+ builderLexerTree(formulaString: string): ErrorNode | LexerNode;
67
+ buildSequenceNodes(formulaString: string): (string | import("..").ISequenceNode)[] | undefined;
68
+ checkIfAddBracket(formulaString: string): number;
69
+ getFunctionAndParameter(formulaString: string, strIndex: number): {
70
+ functionName: string;
71
+ paramIndex: number;
72
+ } | undefined;
73
+ /**
74
+ * Modify the formula text to offset the 'ref' text within it.
75
+ * @param formulaString '=SUM(A1:B10)'
76
+ * @param refOffsetX
77
+ * @param refOffsetY
78
+ * @returns
79
+ */
80
+ moveFormulaRefOffset(formulaString: string, refOffsetX: number, refOffsetY: number): string;
81
+ /**
82
+ *
83
+ * @param unitId
84
+ * @param formulaData
85
+ * @param interpreterDatasetConfig
86
+ * @param forceCalculate force calculate all formula, and ignore dependency relationship
87
+ * @param dirtyRanges input external unit data for multi workbook
88
+ * @returns
89
+ */
90
+ execute(formulaDatasetConfig: IFormulaDatasetConfig): Promise<void>;
91
+ private _execute;
92
+ private _getArrayFormulaDirtyRangeAndExcludedRange;
93
+ private _apply;
94
+ calculate(formulaString: string, transformSuffix?: boolean): ErrorNode | undefined;
95
+ private _initializeDependencies;
96
+ private _initializeFunctions;
97
+ }
98
+ //# sourceMappingURL=formula-engine.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formula-engine.service.d.ts","sourceRoot":"","sources":["../../../src/services/formula-engine.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { Nullable } from '@univerjs/core';
2
+ import { Disposable } from '@univerjs/core';
3
+ import type { FUNCTION_NAMES, IFunctionInfo } from '../basics/function';
4
+ import type { BaseFunction } from '../functions/base-function';
5
+ export interface IFunctionService {
6
+ registerExecutors(...functions: BaseFunction[]): void;
7
+ getExecutors(): Map<string, BaseFunction>;
8
+ getExecutor(functionToken: string): Nullable<BaseFunction>;
9
+ hasExecutor(functionToken: string): boolean;
10
+ registerDescriptions(...functions: IFunctionInfo[]): void;
11
+ getDescriptions(): Map<string, IFunctionInfo>;
12
+ getDescription(functionToken: string): Nullable<IFunctionInfo>;
13
+ hasDescription(functionToken: string): boolean;
14
+ }
15
+ export declare class FunctionService extends Disposable implements IFunctionService {
16
+ private _functionExecutors;
17
+ private _functionDescriptions;
18
+ dispose(): void;
19
+ registerExecutors(...functions: BaseFunction[]): void;
20
+ getExecutors(): Map<string, BaseFunction>;
21
+ getExecutor(functionToken: string | FUNCTION_NAMES): BaseFunction | undefined;
22
+ hasExecutor(functionToken: string | FUNCTION_NAMES): boolean;
23
+ registerDescriptions(...descriptions: IFunctionInfo[]): void;
24
+ getDescriptions(): Map<string, IFunctionInfo>;
25
+ getDescription(functionToken: string): IFunctionInfo | undefined;
26
+ hasDescription(functionToken: string): boolean;
27
+ }
28
+ export declare const IFunctionService: import("@wendellhu/redi").IdentifierDecorator<FunctionService>;
29
+ //# sourceMappingURL=function.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.service.d.ts","sourceRoot":"","sources":["../../../src/services/function.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC7B,iBAAiB,CAAC,GAAG,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEtD,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAE1C,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAE3D,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IAE5C,oBAAoB,CAAC,GAAG,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAE1D,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE9C,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE/D,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;CAClD;AAED,qBAAa,eAAgB,SAAQ,UAAW,YAAW,gBAAgB;IACvE,OAAO,CAAC,kBAAkB,CAAwC;IAElE,OAAO,CAAC,qBAAqB,CAAyC;IAE7D,OAAO,IAAI,IAAI;IAKxB,iBAAiB,CAAC,GAAG,SAAS,EAAE,YAAY,EAAE;IAO9C,YAAY;IAIZ,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;IAIlD,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc;IAIlD,oBAAoB,CAAC,GAAG,YAAY,EAAE,aAAa,EAAE;IAOrD,eAAe;IAIf,cAAc,CAAC,aAAa,EAAE,MAAM;IAIpC,cAAc,CAAC,aAAa,EAAE,MAAM;CAGvC;AAED,eAAO,MAAM,gBAAgB,gEAAuE,CAAC"}
@@ -0,0 +1,149 @@
1
+ import type { Nullable } from '@univerjs/core';
2
+ import { Disposable } from '@univerjs/core';
3
+ import type { BaseAstNode } from '../ast-node/base-ast-node';
4
+ import type { IArrayFormulaRangeType, IRuntimeOtherUnitDataType, IRuntimeUnitDataType } from '../basics/common';
5
+ import type { FunctionVariantType } from '../reference-object/base-reference-object';
6
+ import { IFormulaCurrentConfigService } from './current-data.service';
7
+ /**
8
+ * IDLE: Idle phase of the formula engine.
9
+ *
10
+ * DEPENDENCY: Dependency calculation phase, where the formulas that need to be calculated are determined by the modified area,
11
+ * as well as their dependencies. This outputs an array of formulas to execute.
12
+ *
13
+ * INTERPRETER:Formula execution phase, where the calculation of formulas begins.
14
+ *
15
+ */
16
+ export declare enum FormulaExecuteStageType {
17
+ IDLE = 0,
18
+ START_DEPENDENCY = 1,
19
+ START_CALCULATION = 2,
20
+ CURRENTLY_CALCULATING = 3,
21
+ START_DEPENDENCY_ARRAY_FORMULA = 4,
22
+ START_CALCULATION_ARRAY_FORMULA = 5,
23
+ CURRENTLY_CALCULATING_ARRAY_FORMULA = 6,
24
+ CALCULATION_COMPLETED = 7
25
+ }
26
+ export declare enum FormulaExecutedStateType {
27
+ INITIAL = 0,
28
+ STOP_EXECUTION = 1,
29
+ NOT_EXECUTED = 2,
30
+ SUCCESS = 3
31
+ }
32
+ export interface IAllRuntimeData {
33
+ unitData: IRuntimeUnitDataType;
34
+ arrayFormulaRange: IArrayFormulaRangeType;
35
+ unitOtherData: IRuntimeOtherUnitDataType;
36
+ functionsExecutedState: FormulaExecutedStateType;
37
+ arrayFormulaCellData: IRuntimeUnitDataType;
38
+ clearArrayFormulaCellData: IRuntimeUnitDataType;
39
+ }
40
+ export interface IExecutionInProgressParams {
41
+ totalFormulasToCalculate: number;
42
+ completedFormulasCount: number;
43
+ totalArrayFormulasToCalculate: number;
44
+ completedArrayFormulasCount: number;
45
+ stage: FormulaExecuteStageType;
46
+ }
47
+ export interface IFormulaRuntimeService {
48
+ currentRow: number;
49
+ currentColumn: number;
50
+ currentSubComponentId: string;
51
+ currentUnitId: string;
52
+ dispose(): void;
53
+ reset(): void;
54
+ setCurrent(row: number, column: number, sheetId: string, unitId: string): void;
55
+ registerFunctionDefinitionPrivacyVar(lambdaId: string, lambdaVar: Map<string, Nullable<BaseAstNode>>): void;
56
+ getFunctionDefinitionPrivacyVar(lambdaId: string): Nullable<Map<string, Nullable<BaseAstNode>>>;
57
+ setRuntimeData(functionVariant: FunctionVariantType): void;
58
+ getUnitData(): IRuntimeUnitDataType;
59
+ getUnitArrayFormula(): IArrayFormulaRangeType;
60
+ stopExecution(): void;
61
+ setFormulaExecuteStage(type: FormulaExecuteStageType): void;
62
+ isStopExecution(): boolean;
63
+ getFormulaExecuteStage(): FormulaExecuteStageType;
64
+ setRuntimeOtherData(formulaId: string, functionVariant: FunctionVariantType): void;
65
+ getRuntimeOtherData(): IRuntimeOtherUnitDataType;
66
+ getAllRuntimeData(): IAllRuntimeData;
67
+ markedAsSuccessfullyExecuted(): void;
68
+ markedAsNoFunctionsExecuted(): void;
69
+ markedAsStopFunctionsExecuted(): void;
70
+ markedAsInitialFunctionsExecuted(): void;
71
+ setTotalFormulasToCalculate(value: number): void;
72
+ getTotalFormulasToCalculate(): number;
73
+ setCompletedFormulasCount(value: number): void;
74
+ getCompletedFormulasCount(): number;
75
+ getRuntimeState(): IExecutionInProgressParams;
76
+ setTotalArrayFormulasToCalculate(value: number): void;
77
+ getTotalArrayFormulasToCalculate(): number;
78
+ setCompletedArrayFormulasCount(value: number): void;
79
+ getCompletedArrayFormulasCount(): number;
80
+ enableCycleDependency(): void;
81
+ disableCycleDependency(): void;
82
+ isCycleDependency(): boolean;
83
+ getRuntimeArrayFormulaCellData(): IRuntimeUnitDataType;
84
+ }
85
+ export declare class FormulaRuntimeService extends Disposable implements IFormulaRuntimeService {
86
+ private readonly _currentConfigService;
87
+ private _formulaExecuteStage;
88
+ private _stopState;
89
+ private _currentRow;
90
+ private _currentColumn;
91
+ private _currentSubComponentId;
92
+ private _currentUnitId;
93
+ private _runtimeData;
94
+ private _runtimeOtherData;
95
+ private _unitArrayFormulaRange;
96
+ private _runtimeArrayFormulaCellData;
97
+ private _runtimeClearArrayFormulaCellData;
98
+ private _functionsExecutedState;
99
+ private _functionDefinitionPrivacyVar;
100
+ private _totalFormulasToCalculate;
101
+ private _completedFormulasCount;
102
+ private _totalArrayFormulasToCalculate;
103
+ private _completedArrayFormulasCount;
104
+ private _isCycleDependency;
105
+ constructor(_currentConfigService: IFormulaCurrentConfigService);
106
+ get currentRow(): number;
107
+ get currentColumn(): number;
108
+ get currentSubComponentId(): string;
109
+ get currentUnitId(): string;
110
+ dispose(): void;
111
+ enableCycleDependency(): void;
112
+ disableCycleDependency(): void;
113
+ isCycleDependency(): boolean;
114
+ setTotalArrayFormulasToCalculate(value: number): void;
115
+ getTotalArrayFormulasToCalculate(): number;
116
+ setCompletedArrayFormulasCount(value: number): void;
117
+ getCompletedArrayFormulasCount(): number;
118
+ setTotalFormulasToCalculate(value: number): void;
119
+ getTotalFormulasToCalculate(): number;
120
+ setCompletedFormulasCount(value: number): void;
121
+ getCompletedFormulasCount(): number;
122
+ markedAsSuccessfullyExecuted(): void;
123
+ markedAsNoFunctionsExecuted(): void;
124
+ markedAsStopFunctionsExecuted(): void;
125
+ markedAsInitialFunctionsExecuted(): void;
126
+ stopExecution(): void;
127
+ isStopExecution(): boolean;
128
+ setFormulaExecuteStage(type: FormulaExecuteStageType): void;
129
+ getFormulaExecuteStage(): FormulaExecuteStageType;
130
+ reset(): void;
131
+ setCurrent(row: number, column: number, sheetId: string, unitId: string): void;
132
+ clearFunctionDefinitionPrivacyVar(): void;
133
+ registerFunctionDefinitionPrivacyVar(lambdaId: string, lambdaVar: Map<string, Nullable<BaseAstNode>>): void;
134
+ getFunctionDefinitionPrivacyVar(lambdaId: string): Nullable<Map<string, Nullable<BaseAstNode>>>;
135
+ setRuntimeOtherData(formulaId: string, functionVariant: FunctionVariantType): void;
136
+ setRuntimeData(functionVariant: FunctionVariantType): void;
137
+ getUnitData(): IRuntimeUnitDataType;
138
+ getUnitArrayFormula(): IArrayFormulaRangeType;
139
+ getRuntimeOtherData(): IRuntimeOtherUnitDataType;
140
+ getRuntimeArrayFormulaCellData(): IRuntimeUnitDataType;
141
+ getRuntimeClearArrayFormulaCellData(): IRuntimeUnitDataType;
142
+ getAllRuntimeData(): IAllRuntimeData;
143
+ getRuntimeState(): IExecutionInProgressParams;
144
+ private _objectValueToCellValue;
145
+ private _checkIfArrayFormulaRangeHasData;
146
+ private _isInDirtyRange;
147
+ }
148
+ export declare const IFormulaRuntimeService: import("@wendellhu/redi").IdentifierDecorator<FormulaRuntimeService>;
149
+ //# sourceMappingURL=runtime.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.service.d.ts","sourceRoot":"","sources":["../../../src/services/runtime.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { Disposable } from '@univerjs/core';
2
+ import type { ISuperTable, TableOptionType } from '../basics/common';
3
+ export interface ISuperTableService {
4
+ getTableMap(): Map<string, ISuperTable>;
5
+ getTableOptionMap(): Map<string, TableOptionType>;
6
+ registerTable(tableName: string, reference: ISuperTable): void;
7
+ registerTableOptionMap(tableOption: string, tableOptionType: TableOptionType): void;
8
+ }
9
+ export declare class SuperTableService extends Disposable implements ISuperTableService {
10
+ private _tableMap;
11
+ private _tableOptionMap;
12
+ dispose(): void;
13
+ getTableMap(): Map<string, ISuperTable>;
14
+ getTableOptionMap(): Map<string, TableOptionType>;
15
+ registerTable(tableName: string, reference: ISuperTable): void;
16
+ registerTableOptionMap(tableOption: string, tableOptionType: TableOptionType): void;
17
+ }
18
+ export declare const ISuperTableService: import("@wendellhu/redi").IdentifierDecorator<ISuperTableService>;
19
+ //# sourceMappingURL=super-table.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"super-table.service.d.ts","sourceRoot":"","sources":["../../../src/services/super-table.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,WAAW,kBAAkB;IAC/B,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAExC,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAElD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAE/D,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACvF;AAED,qBAAa,iBAAkB,SAAQ,UAAW,YAAW,kBAAkB;IAE3E,OAAO,CAAC,SAAS,CAAuC;IAGxD,OAAO,CAAC,eAAe,CAA2C;IAEzD,OAAO,IAAI,IAAI;IAMxB,WAAW;IAIX,iBAAiB;IAIjB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW;IAIvD,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;CAG/E;AAED,eAAO,MAAM,kBAAkB,mEAA6E,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { Nullable } from '@univerjs/core';
2
+ import type { compareToken } from '../basics/token';
3
+ import { ErrorValueObject } from '../other-object/error-value-object';
4
+ import type { CalculateValueType, IArrayValueObject } from './base-value-object';
5
+ import { BaseValueObject } from './base-value-object';
6
+ import { BooleanValueObject, NumberValueObject, StringValueObject } from './primitive-object';
7
+ export declare function fromObjectToString(array: IArrayValueObject): string;
8
+ export declare class ArrayValueObject extends BaseValueObject {
9
+ private _value;
10
+ private _rowCount;
11
+ private _columnCount;
12
+ constructor(rawValue: string | IArrayValueObject);
13
+ dispose(): void;
14
+ getRowCount(): number;
15
+ setRowCount(rowCount: number): void;
16
+ getColumnCount(): number;
17
+ setColumnCount(columnCount: number): void;
18
+ getArrayValue(): CalculateValueType[][];
19
+ setArrayValue(value: CalculateValueType[][]): void;
20
+ isArray(): boolean;
21
+ getRangePosition(): {
22
+ startRow: number;
23
+ endRow: number;
24
+ startColumn: number;
25
+ endColumn: number;
26
+ };
27
+ iterator(callback: (valueObject: CalculateValueType, rowIndex: number, columnIndex: number) => Nullable<boolean>): void;
28
+ plus(valueObject: BaseValueObject): CalculateValueType;
29
+ minus(valueObject: BaseValueObject): CalculateValueType;
30
+ multiply(valueObject: BaseValueObject): CalculateValueType;
31
+ divided(valueObject: BaseValueObject): CalculateValueType;
32
+ compare(valueObject: BaseValueObject, operator: compareToken): CalculateValueType;
33
+ concatenateFront(valueObject: BaseValueObject): CalculateValueType;
34
+ concatenateBack(valueObject: BaseValueObject): CalculateValueType;
35
+ private _batchOperator;
36
+ private _formatValue;
37
+ }
38
+ export declare class ValueObjectFactory {
39
+ static create(rawValue: string | number | boolean): ErrorValueObject | NumberValueObject | StringValueObject | BooleanValueObject | ArrayValueObject;
40
+ }
41
+ //# sourceMappingURL=array-value-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"array-value-object.d.ts","sourceRoot":"","sources":["../../../src/value-object/array-value-object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAY9F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,iBAAiB,UAE1D;AAED,qBAAa,gBAAiB,SAAQ,eAAe;IACjD,OAAO,CAAC,MAAM,CAA8B;IAE5C,OAAO,CAAC,SAAS,CAAc;IAE/B,OAAO,CAAC,YAAY,CAAc;gBAEtB,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAWvC,OAAO,IAAI,IAAI;IAUxB,WAAW;IAIX,WAAW,CAAC,QAAQ,EAAE,MAAM;IAI5B,cAAc;IAId,cAAc,CAAC,WAAW,EAAE,MAAM;IAIzB,aAAa;IAIb,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE;IAI3C,OAAO;IAIhB,gBAAgB;;;;;;IAchB,QAAQ,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,QAAQ,CAAC,OAAO,CAAC;IAcvG,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAItD,KAAK,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAIvD,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAI1D,OAAO,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAIzD,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,GAAG,kBAAkB;IAIjF,gBAAgB,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAIlE,eAAe,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAK1E,OAAO,CAAC,cAAc;IAiJtB,OAAO,CAAC,YAAY;CAsCvB;AAED,qBAAa,kBAAkB;IAC3B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;CAsBpD"}
@@ -0,0 +1,41 @@
1
+ import { ConcatenateType } from '../basics/common';
2
+ import { ObjectClassType } from '../basics/object-class-type';
3
+ import type { compareToken } from '../basics/token';
4
+ import { ErrorValueObject } from '../other-object/error-value-object';
5
+ export type CalculateValueType = BaseValueObject | ErrorValueObject;
6
+ export interface IArrayValueObject {
7
+ calculateValueList: CalculateValueType[][];
8
+ rowCount: number;
9
+ columnCount: number;
10
+ }
11
+ export declare class BaseValueObject extends ObjectClassType {
12
+ private _rawValue;
13
+ constructor(_rawValue: string | number | boolean);
14
+ isValueObject(): boolean;
15
+ getValue(): string | number | boolean;
16
+ getArrayValue(): CalculateValueType[][];
17
+ setValue(value: string | number | boolean): void;
18
+ setArrayValue(value: CalculateValueType[][]): void;
19
+ isArray(): boolean;
20
+ isString(): boolean;
21
+ isNumber(): boolean;
22
+ isBoolean(): boolean;
23
+ isError(): boolean;
24
+ isNull(): boolean;
25
+ getNegative(): CalculateValueType;
26
+ getReciprocal(): CalculateValueType;
27
+ plus(valueObject: BaseValueObject): CalculateValueType;
28
+ minus(valueObject: BaseValueObject): CalculateValueType;
29
+ multiply(valueObject: BaseValueObject): CalculateValueType;
30
+ divided(valueObject: BaseValueObject): CalculateValueType;
31
+ compare(valueObject: BaseValueObject, operator: compareToken): CalculateValueType;
32
+ concatenateFront(valueObject: BaseValueObject): CalculateValueType;
33
+ concatenateBack(valueObject: BaseValueObject): CalculateValueType;
34
+ plusBy(value: string | number | boolean): CalculateValueType;
35
+ minusBy(value: string | number | boolean): CalculateValueType;
36
+ multiplyBy(value: string | number | boolean): CalculateValueType;
37
+ dividedBy(value: string | number | boolean): CalculateValueType;
38
+ compareBy(value: string | number | boolean, operator: compareToken): CalculateValueType;
39
+ concatenate(value: string | number | boolean, concatenateType?: ConcatenateType): CalculateValueType;
40
+ }
41
+ //# sourceMappingURL=base-value-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-value-object.d.ts","sourceRoot":"","sources":["../../../src/value-object/base-value-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAEpE,MAAM,WAAW,iBAAiB;IAC9B,kBAAkB,EAAE,kBAAkB,EAAE,EAAE,CAAC;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AACD,qBAAa,eAAgB,SAAQ,eAAe;IACpC,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAI/C,aAAa;IAItB,QAAQ,IAAI,MAAM,GAAG,MAAM,GAAG,OAAO;IAKrC,aAAa,IAAI,kBAAkB,EAAE,EAAE;IAKvC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAIzC,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,EAAE;IAI3C,OAAO;IAIP,QAAQ;IAIR,QAAQ;IAIR,SAAS;IAIT,OAAO;IAIP,MAAM;IAIN,WAAW,IAAI,kBAAkB;IAIjC,aAAa,IAAI,kBAAkB;IAInC,IAAI,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAKtD,KAAK,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAKvD,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAK1D,OAAO,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAKzD,OAAO,CAAC,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,YAAY,GAAG,kBAAkB;IAKjF,gBAAgB,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAKlE,eAAe,CAAC,WAAW,EAAE,eAAe,GAAG,kBAAkB;IAKjE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,kBAAkB;IAK5D,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,kBAAkB;IAK7D,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,kBAAkB;IAKhE,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,kBAAkB;IAK/D,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,QAAQ,EAAE,YAAY,GAAG,kBAAkB;IAKvF,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,eAAe,kBAAwB,GAAG,kBAAkB;CAyB7G"}
@@ -0,0 +1,67 @@
1
+ import { compareToken } from '../basics/token';
2
+ import type { CalculateValueType } from './base-value-object';
3
+ import { BaseValueObject } from './base-value-object';
4
+ export declare class NullValueObject extends BaseValueObject {
5
+ isNull(): boolean;
6
+ plus(valueObject: BaseValueObject): CalculateValueType;
7
+ minus(valueObject: BaseValueObject): CalculateValueType;
8
+ multiply(valueObject: BaseValueObject): CalculateValueType;
9
+ divided(valueObject: BaseValueObject): CalculateValueType;
10
+ compare(valueObject: BaseValueObject, operator: compareToken): CalculateValueType;
11
+ concatenateFront(valueObject: BaseValueObject): CalculateValueType;
12
+ concatenateBack(valueObject: BaseValueObject): CalculateValueType;
13
+ plusBy(value: string | number | boolean): CalculateValueType;
14
+ minusBy(value: string | number | boolean): CalculateValueType;
15
+ multiplyBy(value: string | number | boolean): CalculateValueType;
16
+ dividedBy(value: string | number | boolean): CalculateValueType;
17
+ compareBy(value: string | number | boolean, operator: compareToken): CalculateValueType;
18
+ }
19
+ export declare class BooleanValueObject extends BaseValueObject {
20
+ private _value;
21
+ constructor(rawValue: string | number | boolean, isForce?: boolean);
22
+ getValue(): boolean;
23
+ isBoolean(): boolean;
24
+ getNegative(): CalculateValueType;
25
+ getReciprocal(): CalculateValueType;
26
+ plus(valueObject: BaseValueObject): CalculateValueType;
27
+ minus(valueObject: BaseValueObject): CalculateValueType;
28
+ multiply(valueObject: BaseValueObject): CalculateValueType;
29
+ divided(valueObject: BaseValueObject): CalculateValueType;
30
+ compare(valueObject: BaseValueObject, operator: compareToken): CalculateValueType;
31
+ concatenateFront(valueObject: BaseValueObject): CalculateValueType;
32
+ concatenateBack(valueObject: BaseValueObject): CalculateValueType;
33
+ private _convertTonNumber;
34
+ }
35
+ export declare class NumberValueObject extends BaseValueObject {
36
+ private _value;
37
+ constructor(rawValue: string | number | boolean, isForce?: boolean);
38
+ getValue(): number;
39
+ setValue(value: number): void;
40
+ isNumber(): boolean;
41
+ getNegative(): CalculateValueType;
42
+ getReciprocal(): CalculateValueType;
43
+ plus(valueObject: BaseValueObject): CalculateValueType;
44
+ equalZero(): boolean;
45
+ minus(valueObject: BaseValueObject): CalculateValueType;
46
+ multiply(valueObject: BaseValueObject): CalculateValueType;
47
+ divided(valueObject: BaseValueObject): CalculateValueType;
48
+ concatenateFront(valueObject: BaseValueObject): CalculateValueType;
49
+ concatenateBack(valueObject: BaseValueObject): CalculateValueType;
50
+ compare(valueObject: BaseValueObject, operator: compareToken): CalculateValueType;
51
+ plusBy(value: string | number | boolean): CalculateValueType;
52
+ minusBy(value: string | number | boolean): CalculateValueType;
53
+ multiplyBy(value: string | number | boolean): CalculateValueType;
54
+ dividedBy(value: string | number | boolean): CalculateValueType;
55
+ compareBy(value: string | number | boolean, operator: compareToken): CalculateValueType;
56
+ }
57
+ export declare class StringValueObject extends BaseValueObject {
58
+ private _value;
59
+ constructor(rawValue: string | number | boolean, isForce?: boolean);
60
+ getValue(): string;
61
+ isString(): boolean;
62
+ concatenateFront(valueObject: BaseValueObject): CalculateValueType;
63
+ concatenateBack(valueObject: BaseValueObject): CalculateValueType;
64
+ compare(valueObject: BaseValueObject, operator: compareToken): CalculateValueType;
65
+ compareBy(value: string | number | boolean, operator: compareToken): CalculateValueType;
66
+ }
67
+ //# sourceMappingURL=primitive-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitive-object.d.ts","sourceRoot":"","sources":["../../../src/value-object/primitive-object.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@univerjs/engine-formula",
3
+ "version": "0.1.0-alpha.1",
4
+ "description": "UniverSheet normal base-formula-engine",
5
+ "keywords": [],
6
+ "author": "DreamNum <developer@univer.ai>",
7
+ "license": "MIT",
8
+ "main": "./lib/cjs/index.js",
9
+ "module": "./lib/esm/index.js",
10
+ "types": "./lib/types/index.d.ts",
11
+ "publishConfig": {
12
+ "access": "public"
13
+ },
14
+ "exports": {
15
+ ".": {
16
+ "import": "./lib/esm/index.js",
17
+ "require": "./lib/cjs/index.js",
18
+ "types": "./lib/types/index.d.ts"
19
+ },
20
+ "./*": {
21
+ "import": "./lib/esm/*",
22
+ "require": "./lib/cjs/*",
23
+ "types": "./lib/types/index.d.ts"
24
+ }
25
+ },
26
+ "directories": {
27
+ "lib": "lib"
28
+ },
29
+ "files": [
30
+ "lib"
31
+ ],
32
+ "private": false,
33
+ "dependencies": {
34
+ "@wendellhu/redi": "^0.12.11",
35
+ "rxjs": "^7.8.1",
36
+ "@univerjs/core": "0.1.0-alpha.1"
37
+ },
38
+ "devDependencies": {
39
+ "@vitest/coverage-istanbul": "^0.34.6",
40
+ "esbuild": "^0.19.8",
41
+ "less": "^4.2.0",
42
+ "ts-node": "^10.9.1",
43
+ "typescript": "^5.3.2",
44
+ "vitest": "^0.34.6"
45
+ },
46
+ "scripts": {
47
+ "test": "vitest run",
48
+ "test:watch": "vitest",
49
+ "coverage": "vitest run --coverage",
50
+ "esbuild": "node ./esbuild.config.mjs && tsc -p tsconfig.esbuild.json"
51
+ }
52
+ }