@univerjs-pro/sheets-mcp 0.10.14-nightly.202511031023 → 0.10.14-nightly.202511070640
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/lib/cjs/facade.js +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/es/facade.js +1 -1
- package/lib/es/index.js +1 -1
- package/lib/facade.js +1 -1
- package/lib/index.js +1 -1
- package/lib/types/controllers/config.schema.d.ts +2 -0
- package/lib/types/facade/f-range.d.ts +41 -0
- package/lib/types/facade/f-univer.d.ts +4 -7
- package/lib/types/facade/f-workbook.d.ts +30 -0
- package/lib/types/facade/f-worksheet.d.ts +39 -0
- package/lib/types/facade/index.d.ts +3 -0
- package/lib/types/index.d.ts +1 -0
- package/lib/types/services/formula-analysis.service.d.ts +53 -0
- package/lib/types/tools/conditional-format-tools.d.ts +10 -10
- package/lib/types/tools/formula-utils.d.ts +1 -0
- package/lib/umd/facade.js +1 -1
- package/lib/umd/index.js +1 -1
- package/package.json +10 -10
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export declare const SHEET_MCP_PLUGIN_CONFIG_KEY = "sheet-mcp.config";
|
|
2
2
|
export declare const configSymbol: unique symbol;
|
|
3
3
|
export interface IUniverSheetMCPConfig {
|
|
4
|
+
/** Whether to enable worker mode */
|
|
5
|
+
enableWorker?: boolean;
|
|
4
6
|
}
|
|
5
7
|
export declare const defaultPluginConfig: IUniverSheetMCPConfig;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { IFormulaUsage, IFormulaUsageAsA1 } from '@univerjs-pro/sheets-mcp';
|
|
2
|
+
import { FRange } from '@univerjs/sheets/facade';
|
|
3
|
+
/**
|
|
4
|
+
* @ignore
|
|
5
|
+
*/
|
|
6
|
+
export interface IFRangeSheetsMCP {
|
|
7
|
+
/**
|
|
8
|
+
* Get all formula usages in the range
|
|
9
|
+
* @returns A promise that resolves to an array of formula usages
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const workbook = univerAPI.getActiveWorkbook()
|
|
14
|
+
* const sheet = workbook.getActiveSheet()
|
|
15
|
+
* const range = sheet.getRangeByA1('A1:C10')
|
|
16
|
+
* const usages = await range.getFormulaUsages();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
getFormulaUsages(): Promise<IFormulaUsage[]>;
|
|
20
|
+
/**
|
|
21
|
+
* Get all formula usages in the range in A1 notation
|
|
22
|
+
* @returns A promise that resolves to an array of formula usages in A1 notation
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const workbook = univerAPI.getActiveWorkbook()
|
|
27
|
+
* const sheet = workbook.getActiveSheet()
|
|
28
|
+
* const range = sheet.getRangeByA1('A1:C10')
|
|
29
|
+
* const usagesA1 = await range.getFormulaUsagesAsA1();
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
getFormulaUsagesAsA1(): Promise<IFormulaUsageAsA1[]>;
|
|
33
|
+
}
|
|
34
|
+
export declare class FRangeSheetsMCP extends FRange implements IFRangeSheetsMCP {
|
|
35
|
+
getFormulaUsages(): Promise<IFormulaUsage[]>;
|
|
36
|
+
getFormulaUsagesAsA1(): Promise<IFormulaUsageAsA1[]>;
|
|
37
|
+
}
|
|
38
|
+
declare module '@univerjs/sheets/facade' {
|
|
39
|
+
interface FRange extends IFRangeSheetsMCP {
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IDataValidationError } from '@univerjs/sheets-data-validation/facade';
|
|
1
|
+
import { ILintErrorReport } from './f-workbook';
|
|
3
2
|
import { FUniver } from '@univerjs/core/facade';
|
|
4
3
|
import '@univerjs/sheets-formula/facade';
|
|
5
4
|
import '@univerjs/sheets-data-validation/facade';
|
|
6
|
-
interface ILintErrorReport {
|
|
7
|
-
formulaErrors: ISheetFormulaError[];
|
|
8
|
-
dataValidationErrors: IDataValidationError[];
|
|
9
|
-
}
|
|
10
5
|
/**
|
|
11
6
|
* @ignore
|
|
12
7
|
*/
|
|
13
8
|
export interface IFUniverLintMCP {
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated use {@link FWorkbookSheetsMCP.getLintErrors} instead.
|
|
11
|
+
*/
|
|
14
12
|
getLintErrors(): Promise<ILintErrorReport>;
|
|
15
13
|
}
|
|
16
14
|
export declare class FUniverLintMCPMixin extends FUniver implements IFUniverLintMCP {
|
|
@@ -20,4 +18,3 @@ declare module '@univerjs/core/facade' {
|
|
|
20
18
|
interface FUniver extends IFUniverLintMCP {
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
|
-
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ISheetFormulaError } from '@univerjs/engine-formula';
|
|
2
|
+
import { IDataValidationError } from '@univerjs/sheets-data-validation/facade';
|
|
3
|
+
import { FWorkbook } from '@univerjs/sheets/facade';
|
|
4
|
+
export interface ILintErrorReport {
|
|
5
|
+
formulaErrors: ISheetFormulaError[];
|
|
6
|
+
dataValidationErrors: IDataValidationError[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
export interface IFWorkbookSheetsMCPMixin {
|
|
12
|
+
/**
|
|
13
|
+
* Get lint errors report including formula errors and data validation errors
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* const workbook = univerAPI.getActiveWorkbook()
|
|
18
|
+
* const lintErrors = await workbook.getLintErrors();
|
|
19
|
+
* console.log(lintErrors.formulaErrors, lintErrors.dataValidationErrors);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
getLintErrors(): Promise<ILintErrorReport>;
|
|
23
|
+
}
|
|
24
|
+
export declare class FWorkbookSheetsMCPMixin extends FWorkbook implements IFWorkbookSheetsMCPMixin {
|
|
25
|
+
getLintErrors(): Promise<ILintErrorReport>;
|
|
26
|
+
}
|
|
27
|
+
declare module '@univerjs/sheets/facade' {
|
|
28
|
+
interface FWorkbook extends IFWorkbookSheetsMCPMixin {
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { IFormulaUsage, IFormulaUsageAsA1 } from '@univerjs-pro/sheets-mcp';
|
|
2
|
+
import { FWorksheet } from '@univerjs/sheets/facade';
|
|
3
|
+
/**
|
|
4
|
+
* @ignore
|
|
5
|
+
*/
|
|
6
|
+
export interface IFWorksheetSheetsMCP {
|
|
7
|
+
/**
|
|
8
|
+
* Get all formula usages in the worksheet
|
|
9
|
+
* @returns A promise that resolves to an array of formula usages
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* const workbook = univerAPI.getActiveWorkbook()
|
|
14
|
+
* const sheet = workbook.getActiveSheet()
|
|
15
|
+
* const usages = await sheet.getFormulaUsages();
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
getFormulaUsages(): Promise<IFormulaUsage[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Get all formula usages in the worksheet in A1 notation
|
|
21
|
+
* @returns A promise that resolves to an array of formula usages in A1 notation
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* const workbook = univerAPI.getActiveWorkbook()
|
|
26
|
+
* const sheet = workbook.getActiveSheet()
|
|
27
|
+
* const usagesA1 = await sheet.getFormulaUsagesAsA1();
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
getFormulaUsagesAsA1(): Promise<IFormulaUsageAsA1[]>;
|
|
31
|
+
}
|
|
32
|
+
export declare class FWorksheetSheetsMCP extends FWorksheet implements IFWorksheetSheetsMCP {
|
|
33
|
+
getFormulaUsages(): Promise<IFormulaUsage[]>;
|
|
34
|
+
getFormulaUsagesAsA1(): Promise<IFormulaUsageAsA1[]>;
|
|
35
|
+
}
|
|
36
|
+
declare module '@univerjs/sheets/facade' {
|
|
37
|
+
interface FWorksheet extends IFWorksheetSheetsMCP {
|
|
38
|
+
}
|
|
39
|
+
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ICellData, IRange, Nullable } from '@univerjs/core';
|
|
2
|
+
import { ICalculateFormulaService, LexerTreeBuilder } from '@univerjs/engine-formula';
|
|
3
|
+
/**
|
|
4
|
+
* Interface for formula usage information
|
|
5
|
+
*/
|
|
6
|
+
export interface IFormulaUsage {
|
|
7
|
+
/**
|
|
8
|
+
* The formula's first occurrence location
|
|
9
|
+
*/
|
|
10
|
+
formula: string;
|
|
11
|
+
/**
|
|
12
|
+
* The formula's first occurrence cell range
|
|
13
|
+
*/
|
|
14
|
+
firstOccurrence: IRange;
|
|
15
|
+
/**
|
|
16
|
+
* The filled ranges of the formula, including the first occurrence
|
|
17
|
+
*/
|
|
18
|
+
filledRanges: IRange[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Interface for formula usage information in A1 notation
|
|
22
|
+
*/
|
|
23
|
+
export interface IFormulaUsageAsA1 {
|
|
24
|
+
/**
|
|
25
|
+
* The formula's first occurrence location
|
|
26
|
+
*/
|
|
27
|
+
formula: string;
|
|
28
|
+
/**
|
|
29
|
+
* The formula's first occurrence cell range in A1 notation
|
|
30
|
+
*/
|
|
31
|
+
firstOccurrence: string;
|
|
32
|
+
/**
|
|
33
|
+
* The filled ranges of the formula in A1 notation, including the first occurrence
|
|
34
|
+
*/
|
|
35
|
+
filledRanges: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function toA1(usage: IFormulaUsage): IFormulaUsageAsA1;
|
|
38
|
+
/**
|
|
39
|
+
* Convert rectangle coordinates to A1 notation
|
|
40
|
+
* @param param0 [r1, r2, c1, c2]
|
|
41
|
+
* @returns A1 notation string
|
|
42
|
+
*/
|
|
43
|
+
export declare function getA1Notation([r1, r2, c1, c2]: [number, number, number, number]): string;
|
|
44
|
+
export declare const FormulaUsageAnalyzerChannelName = "sheets.mcp.formula-usage-analyzer";
|
|
45
|
+
export declare const IFormulaUsageAnalyzer: import('@wendellhu/redi').IdentifierDecorator<FormulaUsageAnalyzer>;
|
|
46
|
+
export declare class FormulaUsageAnalyzer {
|
|
47
|
+
protected _formulaService: ICalculateFormulaService;
|
|
48
|
+
private _lexerTreeBuilder;
|
|
49
|
+
constructor(_formulaService: ICalculateFormulaService, _lexerTreeBuilder: LexerTreeBuilder);
|
|
50
|
+
getAllFormulaUsages(data: Nullable<ICellData>[][]): IFormulaUsage[];
|
|
51
|
+
getFormulaHash(formulaString: string, refOffsetX: number, refOffsetY: number, ignoreAbsolute?: boolean): string;
|
|
52
|
+
moveFormulaRefOffset(formula: string, refOffsetX: number, refOffsetY: number, ignoreAbsolute?: boolean): string;
|
|
53
|
+
}
|
|
@@ -11,20 +11,20 @@ export declare const ZodConditionalFormatRuleSchema: z.ZodObject<{
|
|
|
11
11
|
colorScale: "colorScale";
|
|
12
12
|
}>>;
|
|
13
13
|
min_type: z.ZodOptional<z.ZodEnum<{
|
|
14
|
-
|
|
15
|
-
num: "num";
|
|
14
|
+
percent: "percent";
|
|
16
15
|
min: "min";
|
|
17
16
|
max: "max";
|
|
18
|
-
|
|
17
|
+
formula: "formula";
|
|
18
|
+
num: "num";
|
|
19
19
|
percentile: "percentile";
|
|
20
20
|
}>>;
|
|
21
21
|
min_value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
22
22
|
max_type: z.ZodOptional<z.ZodEnum<{
|
|
23
|
-
|
|
24
|
-
num: "num";
|
|
23
|
+
percent: "percent";
|
|
25
24
|
min: "min";
|
|
26
25
|
max: "max";
|
|
27
|
-
|
|
26
|
+
formula: "formula";
|
|
27
|
+
num: "num";
|
|
28
28
|
percentile: "percentile";
|
|
29
29
|
}>>;
|
|
30
30
|
max_value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
@@ -38,11 +38,11 @@ export declare const ZodConditionalFormatRuleSchema: z.ZodObject<{
|
|
|
38
38
|
index: z.ZodNumber;
|
|
39
39
|
color: z.ZodString;
|
|
40
40
|
value_type: z.ZodEnum<{
|
|
41
|
-
|
|
42
|
-
num: "num";
|
|
41
|
+
percent: "percent";
|
|
43
42
|
min: "min";
|
|
44
43
|
max: "max";
|
|
45
|
-
|
|
44
|
+
formula: "formula";
|
|
45
|
+
num: "num";
|
|
46
46
|
percentile: "percentile";
|
|
47
47
|
}>;
|
|
48
48
|
value: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
@@ -50,12 +50,12 @@ export declare const ZodConditionalFormatRuleSchema: z.ZodObject<{
|
|
|
50
50
|
sub_type: z.ZodOptional<z.ZodEnum<{
|
|
51
51
|
number: "number";
|
|
52
52
|
text: "text";
|
|
53
|
+
formula: "formula";
|
|
53
54
|
uniqueValues: "uniqueValues";
|
|
54
55
|
duplicateValues: "duplicateValues";
|
|
55
56
|
rank: "rank";
|
|
56
57
|
timePeriod: "timePeriod";
|
|
57
58
|
average: "average";
|
|
58
|
-
formula: "formula";
|
|
59
59
|
}>>;
|
|
60
60
|
operator: z.ZodOptional<z.ZodEnum<{
|
|
61
61
|
endsWith: "endsWith";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function extractFormulas(univerAPI: any, sheets?: string[]): Promise<string>;
|
package/lib/umd/facade.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
function _0x20ad(){const _0x4beccc=['UniverCore','IFormulaUsageAnalyzer','moveFormulaRefOffset','40jufQLX','getMaxColumns','toA1','_worksheet','getLintErrors','@univerjs/core','length','2345WgFigF','get','103584GpaFOh','691036mrCsqO','_injector','getMaxRows','getAllFormulaError','4132584KqBVBW','@univerjs/sheets-data-validation/facade','UniverCoreFacade','object','1200529iWHMWE','push','formula','@univerjs-pro/sheets-mcp','filledRanges','2007140tvaKLt','3924QAmngZ','@univerjs/sheets-formula/facade','getCellRaw','FWorkbook','@univerjs/sheets/facade','FUniver','extend','@univerjs/core/facade','getAllDataValidationErrorAsync','FWorksheet','map','110bzCJPy','2860371WVyrtR','startRow','startColumn','1PasBVZ','UniverSheetsFacade','getAllFormulaUsages','getFormulaUsagesAsA1','amd','30yGIAjc','FRange','UniverSheetsFormulaFacade','getFormulaUsages','getActiveWorkbook','5190YaESbO','getIntersectRange','getRange'];_0x20ad=function(){return _0x4beccc;};return _0x20ad();}function _0x471d(_0x103c45,_0x438de8){const _0x20ade1=_0x20ad();return _0x471d=function(_0x471d5a,_0x49f6f5){_0x471d5a=_0x471d5a-0x73;let _0x157a78=_0x20ade1[_0x471d5a];return _0x157a78;},_0x471d(_0x103c45,_0x438de8);}(function(_0x1eb168,_0x451d6e){const _0x42e286=_0x471d,_0x5d966d=_0x1eb168();while(!![]){try{const _0x482dd9=parseInt(_0x42e286(0x90))/0x1*(-parseInt(_0x42e286(0x80))/0x2)+parseInt(_0x42e286(0x77))/0x3+-parseInt(_0x42e286(0x73))/0x4*(-parseInt(_0x42e286(0x95))/0x5)+-parseInt(_0x42e286(0x9a))/0x6*(parseInt(_0x42e286(0xa7))/0x7)+-parseInt(_0x42e286(0xa0))/0x8*(parseInt(_0x42e286(0x8d))/0x9)+-parseInt(_0x42e286(0x8c))/0xa*(parseInt(_0x42e286(0x7b))/0xb)+-parseInt(_0x42e286(0x81))/0xc*(-parseInt(_0x42e286(0xa9))/0xd);if(_0x482dd9===_0x451d6e)break;else _0x5d966d['push'](_0x5d966d['shift']());}catch(_0x1999ce){_0x5d966d['push'](_0x5d966d['shift']());}}}(_0x20ad,0xe4ac9),function(_0x29f575,_0x555049){const _0xd7b3e6=_0x471d;typeof exports==_0xd7b3e6(0x7a)&&typeof module<'u'?_0x555049(require('@univerjs/core/facade'),require('@univerjs/sheets-formula/facade'),require('@univerjs/sheets-data-validation/facade'),require('@univerjs/sheets/facade'),require('@univerjs-pro/sheets-mcp'),require('@univerjs/core')):typeof define=='function'&&define[_0xd7b3e6(0x94)]?define([_0xd7b3e6(0x88),_0xd7b3e6(0x82),_0xd7b3e6(0x78),_0xd7b3e6(0x85),_0xd7b3e6(0x7e),_0xd7b3e6(0xa5)],_0x555049):(_0x29f575=typeof globalThis<'u'?globalThis:_0x29f575||self,_0x555049(_0x29f575[_0xd7b3e6(0x79)],_0x29f575[_0xd7b3e6(0x97)],_0x29f575['UniverSheetsDataValidationFacade'],_0x29f575[_0xd7b3e6(0x91)],_0x29f575['UniverProSheetsMcp'],_0x29f575[_0xd7b3e6(0x9d)]));}(this,function(_0x12346d,_0x3cb679,_0xb712c4,_0xb9d576,_0x2d3631,_0x5edae6){'use strict';const _0x45c74e=_0x471d;class _0x41e5de extends _0x12346d[_0x45c74e(0x86)]{async[_0x45c74e(0xa4)](){const _0x80020f=_0x45c74e;return this[_0x80020f(0x99)]()[_0x80020f(0xa4)]();}}_0x12346d[_0x45c74e(0x86)][_0x45c74e(0x87)](_0x41e5de);class _0x5d37dd extends _0xb9d576[_0x45c74e(0x84)]{async[_0x45c74e(0xa4)](){const _0x16d4f0=_0x45c74e,_0xd9711d=this[_0x16d4f0(0x76)](),_0x37b2ab=await this[_0x16d4f0(0x89)]();return{'formulaErrors':_0xd9711d,'dataValidationErrors':_0x37b2ab};}}_0xb9d576[_0x45c74e(0x84)][_0x45c74e(0x87)](_0x5d37dd);class _0x46b6a3 extends _0xb9d576[_0x45c74e(0x8a)]{async['getFormulaUsages'](){const _0x4716d3=_0x45c74e,_0x1b5ce6=this[_0x4716d3(0x74)][_0x4716d3(0xa8)](_0x2d3631[_0x4716d3(0x9e)]),_0x303725=this[_0x4716d3(0x9c)](0x0,0x0,this[_0x4716d3(0x75)]()+0x1,this[_0x4716d3(0xa1)]()+0x1)['getCellDataGrid']();return await _0x1b5ce6[_0x4716d3(0x92)](_0x303725);}async['getFormulaUsagesAsA1'](){const _0x3c71a9=_0x45c74e;return(await this[_0x3c71a9(0x98)]())[_0x3c71a9(0x8b)](_0x2d3631[_0x3c71a9(0xa2)]);}}_0xb9d576[_0x45c74e(0x8a)]['extend'](_0x46b6a3);class _0x98d1d4 extends _0xb9d576[_0x45c74e(0x96)]{async[_0x45c74e(0x98)](){const _0x237f64=_0x45c74e,_0x187034=this[_0x237f64(0x74)][_0x237f64(0xa8)](_0x2d3631[_0x237f64(0x9e)]),_0x4e42c3=(({startRow:_0x55c4a7,endRow:_0x183044,startColumn:_0x314594,endColumn:_0x148cdc})=>{const _0x2a28f9=_0x237f64,_0x42f956=[];for(let _0x680943=_0x55c4a7;_0x680943<=_0x183044;_0x680943++){const _0x3f4cfd=[];for(let _0x813d2=_0x314594;_0x813d2<=_0x148cdc;_0x813d2++)_0x3f4cfd[_0x2a28f9(0x7c)](this[_0x2a28f9(0xa3)][_0x2a28f9(0x83)](_0x680943,_0x813d2));_0x42f956[_0x2a28f9(0x7c)](_0x3f4cfd);}return _0x42f956;})({'startRow':0x0,'endRow':this[_0x237f64(0xa3)][_0x237f64(0x75)](),'startColumn':0x0,'endColumn':this[_0x237f64(0xa3)][_0x237f64(0xa1)]()}),_0x1abd15=await _0x187034[_0x237f64(0x92)](_0x4e42c3),_0x39e7ac=this['getRange'](),_0x48baeb=[];for(let _0x30eaca=0x0;_0x30eaca<_0x1abd15['length'];_0x30eaca++){const _0x119389=_0x1abd15[_0x30eaca],_0x19fd83=_0x119389[_0x237f64(0x7f)],_0x3d0936=[];for(let _0x495932=0x0;_0x495932<_0x19fd83[_0x237f64(0xa6)];_0x495932++){const _0x1ae29f=_0x19fd83[_0x495932],_0x37fec3=_0x5edae6[_0x237f64(0x9b)](_0x1ae29f,_0x39e7ac);_0x37fec3&&_0x3d0936[_0x237f64(0x7c)](_0x37fec3);}if(_0x3d0936[_0x237f64(0xa6)]>0x0){_0x119389[_0x237f64(0x7f)]=_0x3d0936;const _0x28b8b5=_0x3d0936[0x0],_0x411efe=_0x28b8b5[_0x237f64(0x8e)]-_0x39e7ac[_0x237f64(0x8e)],_0x24d59a=_0x28b8b5[_0x237f64(0x8f)]-_0x39e7ac[_0x237f64(0x8f)];_0x119389['formula']=await _0x187034[_0x237f64(0x9f)](_0x119389[_0x237f64(0x7d)],_0x411efe,_0x24d59a),_0x48baeb['push'](_0x119389);}}return _0x48baeb;}async[_0x45c74e(0x93)](){const _0x95b58b=_0x45c74e;return(await this[_0x95b58b(0x98)]())[_0x95b58b(0x8b)](_0x2d3631[_0x95b58b(0xa2)]);}}_0xb9d576[_0x45c74e(0x96)]['extend'](_0x98d1d4);}));
|