@cloudpss/expression 0.6.0-alpha.9 → 0.6.0-beta.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.
- package/dist/analyze.d.ts +6 -3
- package/dist/analyze.d.ts.map +1 -1
- package/dist/analyze.js +13 -33
- package/dist/analyze.js.map +1 -1
- package/dist/definitions/argument.d.ts +3 -11
- package/dist/definitions/argument.d.ts.map +1 -1
- package/dist/definitions/constraint.d.ts +2 -2
- package/dist/definitions/constraint.d.ts.map +1 -1
- package/dist/definitions/constraint.js +1 -1
- package/dist/definitions/constraint.js.map +1 -1
- package/dist/definitions/parameter-group.js +4 -4
- package/dist/definitions/parameter-group.js.map +1 -1
- package/dist/definitions/parameter.d.ts +22 -14
- package/dist/definitions/parameter.d.ts.map +1 -1
- package/dist/definitions/parameter.js +10 -1
- package/dist/definitions/parameter.js.map +1 -1
- package/dist/definitions/utils.d.ts +28 -0
- package/dist/definitions/utils.d.ts.map +1 -0
- package/dist/definitions/utils.js +272 -0
- package/dist/definitions/utils.js.map +1 -0
- package/dist/definitions/variable.js +1 -1
- package/dist/definitions/variable.js.map +1 -1
- package/dist/definitions.d.ts +1 -2
- package/dist/definitions.d.ts.map +1 -1
- package/dist/definitions.js +1 -1
- package/dist/definitions.js.map +1 -1
- package/dist/eval.d.ts +3 -5
- package/dist/eval.d.ts.map +1 -1
- package/dist/eval.js +12 -20
- package/dist/eval.js.map +1 -1
- package/dist/expression.d.ts +10 -4
- package/dist/expression.d.ts.map +1 -1
- package/dist/expression.js +6 -6
- package/dist/expression.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interface.d.ts +30 -0
- package/dist/interface.d.ts.map +1 -0
- package/dist/interface.js +6 -0
- package/dist/interface.js.map +1 -0
- package/dist/main.d.ts +41 -28
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +165 -149
- package/dist/main.js.map +1 -1
- package/dist/migrate.d.ts +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +25 -4
- package/dist/migrate.js.map +1 -1
- package/dist/migrator/access.d.ts.map +1 -1
- package/dist/migrator/access.js +64 -29
- package/dist/migrator/access.js.map +1 -1
- package/dist/migrator/call.d.ts.map +1 -1
- package/dist/migrator/call.js +298 -201
- package/dist/migrator/call.js.map +1 -1
- package/dist/migrator/concat.d.ts.map +1 -1
- package/dist/migrator/concat.js +15 -2
- package/dist/migrator/concat.js.map +1 -1
- package/dist/migrator/function.d.ts +6 -0
- package/dist/migrator/function.d.ts.map +1 -0
- package/dist/migrator/function.js +25 -0
- package/dist/migrator/function.js.map +1 -0
- package/dist/migrator/interface.d.ts +3 -1
- package/dist/migrator/interface.d.ts.map +1 -1
- package/dist/migrator/interface.js.map +1 -1
- package/dist/migrator/node.d.ts.map +1 -1
- package/dist/migrator/node.js +55 -7
- package/dist/migrator/node.js.map +1 -1
- package/dist/migrator/operator.d.ts.map +1 -1
- package/dist/migrator/operator.js +107 -60
- package/dist/migrator/operator.js.map +1 -1
- package/dist/migrator/serialize.d.ts +4 -0
- package/dist/migrator/serialize.d.ts.map +1 -0
- package/dist/migrator/serialize.js +21 -0
- package/dist/migrator/serialize.js.map +1 -0
- package/dist/migrator/special.d.ts.map +1 -1
- package/dist/migrator/special.js +31 -0
- package/dist/migrator/special.js.map +1 -1
- package/dist/migrator/state.d.ts +4 -4
- package/dist/migrator/state.d.ts.map +1 -1
- package/dist/migrator/state.js +29 -31
- package/dist/migrator/state.js.map +1 -1
- package/dist/migrator/symbol.d.ts.map +1 -1
- package/dist/migrator/symbol.js +34 -12
- package/dist/migrator/symbol.js.map +1 -1
- package/dist/migrator/to-type.d.ts.map +1 -1
- package/dist/migrator/to-type.js +21 -4
- package/dist/migrator/to-type.js.map +1 -1
- package/dist/migrator/utils.d.ts +6 -0
- package/dist/migrator/utils.d.ts.map +1 -1
- package/dist/migrator/utils.js +49 -1
- package/dist/migrator/utils.js.map +1 -1
- package/dist/parser.d.ts +2 -2
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +27 -8
- package/dist/parser.js.map +1 -1
- package/dist/re-exports.d.ts +4 -0
- package/dist/re-exports.d.ts.map +1 -0
- package/dist/re-exports.js +3 -0
- package/dist/re-exports.js.map +1 -0
- package/dist/scope.d.ts +16 -17
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +84 -53
- package/dist/scope.js.map +1 -1
- package/dist/type.d.ts +22 -10
- package/dist/type.d.ts.map +1 -1
- package/dist/type.js +21 -24
- package/dist/type.js.map +1 -1
- package/package.json +8 -5
- package/src/analyze.ts +20 -39
- package/src/definitions/argument.ts +3 -13
- package/src/definitions/constraint.ts +3 -3
- package/src/definitions/parameter-group.ts +4 -4
- package/src/definitions/parameter.ts +47 -24
- package/src/definitions/utils.ts +288 -0
- package/src/definitions/variable.ts +1 -1
- package/src/definitions.ts +1 -28
- package/src/eval.ts +16 -25
- package/src/expression.ts +16 -8
- package/src/index.ts +3 -1
- package/src/interface.ts +35 -0
- package/src/main.ts +232 -200
- package/src/migrate.ts +27 -4
- package/src/migrator/access.ts +67 -37
- package/src/migrator/call.ts +287 -190
- package/src/migrator/concat.ts +15 -2
- package/src/migrator/function.ts +27 -0
- package/src/migrator/interface.ts +3 -1
- package/src/migrator/node.ts +56 -6
- package/src/migrator/operator.ts +110 -64
- package/src/migrator/serialize.ts +21 -0
- package/src/migrator/special.ts +31 -0
- package/src/migrator/state.ts +31 -34
- package/src/migrator/symbol.ts +33 -12
- package/src/migrator/to-type.ts +23 -4
- package/src/migrator/utils.ts +49 -1
- package/src/parser.ts +33 -8
- package/src/re-exports.ts +47 -0
- package/src/scope.ts +98 -62
- package/src/type.ts +40 -25
- package/tests/analyze.ts +45 -6
- package/tests/compile.ts +65 -0
- package/tests/condition.ts +33 -17
- package/tests/definition.ts +237 -18
- package/tests/eval-complex.ts +19 -11
- package/tests/eval.ts +59 -12
- package/tests/import.ts +21 -7
- package/tests/main.ts +58 -0
- package/tests/migrate.ts +317 -0
- package/tests/scope.ts +3 -3
- package/tests/template.ts +36 -0
- package/dist/context.d.ts +0 -41
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js +0 -18
- package/dist/context.js.map +0 -1
- package/src/context.ts +0 -54
package/dist/analyze.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
1
|
+
import { type GlobalReferenceChain } from '@mirascript/mirascript/subtle';
|
|
2
|
+
import type { EvalExpressionCache } from './parser.js';
|
|
3
|
+
import type { Scope } from './scope.js';
|
|
4
|
+
import type { Evaluator } from './main.js';
|
|
5
|
+
export type { GlobalReferenceChain };
|
|
3
6
|
/**
|
|
4
7
|
* 分析依赖
|
|
5
8
|
*/
|
|
6
|
-
export declare function analyze(
|
|
9
|
+
export declare function analyze(expression: EvalExpressionCache, evaluator: Evaluator, scope: Scope): readonly GlobalReferenceChain[];
|
|
7
10
|
//# sourceMappingURL=analyze.d.ts.map
|
package/dist/analyze.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,oBAAoB,EAA2B,MAAM,+BAA+B,CAAC;AACrH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C,YAAY,EAAE,oBAAoB,EAAE,CAAC;AACrC;;GAEG;AACH,wBAAgB,OAAO,CACnB,UAAU,EAAE,mBAAmB,EAC/B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,GACb,SAAS,oBAAoB,EAAE,CAUjC"}
|
package/dist/analyze.js
CHANGED
|
@@ -1,38 +1,18 @@
|
|
|
1
|
+
import { DefaultVmContext, analyzeGlobalReferences } from '@mirascript/mirascript/subtle';
|
|
2
|
+
const kAnalyze = Symbol('cloudpss.expression.analyzeCache');
|
|
1
3
|
/**
|
|
2
4
|
* 分析依赖
|
|
3
5
|
*/
|
|
4
|
-
export function analyze(
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// if (index.dimensions.length !== 1 || !isConstantNode(index.dimensions[0])) {
|
|
16
|
-
// return undefined;
|
|
17
|
-
// }
|
|
18
|
-
// const indexValue = index.dimensions[0].value;
|
|
19
|
-
// // 暂时不考虑,两边索引 base 不一致
|
|
20
|
-
// if (typeof indexValue != 'string' /*&& typeof indexValue != 'number'*/) {
|
|
21
|
-
// return undefined;
|
|
22
|
-
// }
|
|
23
|
-
// const deps = analyzeNode(node.object);
|
|
24
|
-
// if (!deps) return undefined;
|
|
25
|
-
// return [...deps, indexValue];
|
|
26
|
-
// }
|
|
27
|
-
// return undefined;
|
|
28
|
-
// };
|
|
29
|
-
// const analyzeAndPush = (node: MathNode): void => {
|
|
30
|
-
// const dep = analyzeNode(node);
|
|
31
|
-
// if (dep) deps.push(dep);
|
|
32
|
-
// // eslint-disable-next-line unicorn/no-array-for-each
|
|
33
|
-
// else node.forEach(analyzeAndPush);
|
|
34
|
-
// };
|
|
35
|
-
// analyzeAndPush(expression.ast);
|
|
36
|
-
// return deps;
|
|
6
|
+
export function analyze(expression, evaluator, scope) {
|
|
7
|
+
let result = expression[kAnalyze];
|
|
8
|
+
if (result == null) {
|
|
9
|
+
result = analyzeGlobalReferences(expression.source);
|
|
10
|
+
expression[kAnalyze] = result;
|
|
11
|
+
}
|
|
12
|
+
return result.filter(([global]) => {
|
|
13
|
+
if (scope.has(global))
|
|
14
|
+
return true;
|
|
15
|
+
return !(evaluator.imported.has(global) || DefaultVmContext.has(global));
|
|
16
|
+
});
|
|
37
17
|
}
|
|
38
18
|
//# sourceMappingURL=analyze.js.map
|
package/dist/analyze.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA6B,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAKrH,MAAM,QAAQ,GAAG,MAAM,CAAC,kCAAkC,CAAC,CAAC;AAE5D;;GAEG;AACH,MAAM,UAAU,OAAO,CACnB,UAA+B,EAC/B,SAAoB,EACpB,KAAY;IAEZ,IAAI,MAAM,GAAI,UAAqF,CAAC,QAAQ,CAAC,CAAC;IAC9G,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnD,UAAqF,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAC9G,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -5,29 +5,21 @@ import type { Evaluator } from '../main.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* 表示一个具有类似表达式功能的 JS 函数,与某个 {@link ArgumentValue} 相关联,在其之后求值
|
|
7
7
|
*/
|
|
8
|
-
export type
|
|
8
|
+
export type ArgumentFunction<out R, in V extends VmValue = ArgumentValue> = (
|
|
9
9
|
/** 相关联的参数值 */
|
|
10
10
|
value: V,
|
|
11
11
|
/** 当前作用域 */
|
|
12
12
|
scope: Scope,
|
|
13
13
|
/** 当前求值器 */
|
|
14
14
|
evaluator: Evaluator) => R;
|
|
15
|
-
/**
|
|
16
|
-
* 表示一个具有类似表达式功能的 JS 函数,与某个 {@link ArgumentValue} 相关联,在其之前求值
|
|
17
|
-
*/
|
|
18
|
-
export type ParameterFunction<out R> = (
|
|
19
|
-
/** 当前作用域 */
|
|
20
|
-
scope: Scope,
|
|
21
|
-
/** 当前求值器 */
|
|
22
|
-
evaluator: Evaluator) => R;
|
|
23
15
|
/** 条件表达式 */
|
|
24
16
|
export type ConditionExpression = boolean | ExpressionSource<boolean>;
|
|
25
17
|
/** 条件函数 */
|
|
26
|
-
export type ConditionFunction<in V extends VmValue = ArgumentValue> =
|
|
18
|
+
export type ConditionFunction<in V extends VmValue = ArgumentValue> = ArgumentFunction<boolean, V>;
|
|
27
19
|
/** 参数值 */
|
|
28
20
|
export type ArgumentValue = NonNullable<VmConst>;
|
|
29
21
|
/** 未求值的参数表 */
|
|
30
22
|
export type ArgumentMap<T extends Record<string, ArgumentValue> = Record<string, ArgumentValue>> = {
|
|
31
|
-
[K in keyof T
|
|
23
|
+
[K in keyof T]?: ExpressionOrValue<NonNullable<T[K]>>;
|
|
32
24
|
};
|
|
33
25
|
//# sourceMappingURL=argument.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"argument.d.ts","sourceRoot":"","sources":["../../src/definitions/argument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"argument.d.ts","sourceRoot":"","sources":["../../src/definitions/argument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,aAAa,IAAI;AACxE,cAAc;AACd,KAAK,EAAE,CAAC;AACR,YAAY;AACZ,KAAK,EAAE,KAAK;AACZ,YAAY;AACZ,SAAS,EAAE,SAAS,KACnB,CAAC,CAAC;AAEP,YAAY;AACZ,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEtE,WAAW;AACX,MAAM,MAAM,iBAAiB,CAAC,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,aAAa,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAEnG,UAAU;AACV,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;AAEjD,cAAc;AACd,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI;KAC9F,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VmRecord, VmValue } from '@mirascript/mirascript';
|
|
2
|
-
import type { ArgumentValue, ConditionExpression, ConditionFunction,
|
|
2
|
+
import type { ArgumentValue, ConditionExpression, ConditionFunction, ArgumentFunction } from './argument.js';
|
|
3
3
|
import type { ExpressionSource } from '../expression.js';
|
|
4
4
|
export declare const ConstraintLevel: readonly ["info", "warning", "error"];
|
|
5
5
|
/** 约束条件的级别 */
|
|
@@ -21,7 +21,7 @@ export interface Constraint<V extends VmValue = ArgumentValue> {
|
|
|
21
21
|
/**
|
|
22
22
|
* 不满足条件的提示附加参数
|
|
23
23
|
*/
|
|
24
|
-
messageData?: ExpressionSource<VmRecord> | VmRecord |
|
|
24
|
+
messageData?: ExpressionSource<VmRecord> | VmRecord | ArgumentFunction<VmRecord, V>;
|
|
25
25
|
/**
|
|
26
26
|
* 约束条件
|
|
27
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"constraint.d.ts","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC7G,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,eAAO,MAAM,eAAe,uCAAuD,CAAC;AACpF,cAAc;AACd,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,qBAAqB;AACrB,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,OAAO,GAAG,aAAa;IACzD;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACpF;;OAEG;IACH,SAAS,EAAE,mBAAmB,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;CACzD;AAED,uBAAuB;AACvB,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAehE"}
|
|
@@ -3,7 +3,7 @@ export const ConstraintLevel = Object.freeze(['info', 'warning', 'error']);
|
|
|
3
3
|
export function isConstraint(value) {
|
|
4
4
|
if (value == null || typeof value !== 'object')
|
|
5
5
|
return false;
|
|
6
|
-
if ('key' in value || 'description' in value || 'items' in value)
|
|
6
|
+
if ('key' in value || 'name' in value || 'description' in value || 'items' in value)
|
|
7
7
|
return false;
|
|
8
8
|
const v = value;
|
|
9
9
|
if (typeof v.message != 'string')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC,CAAC;AA4BpF,uBAAuB;AACvB,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,KAAK,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"constraint.js","sourceRoot":"","sources":["../../src/definitions/constraint.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAU,CAAC,CAAC;AA4BpF,uBAAuB;AACvB,MAAM,UAAU,YAAY,CAAC,KAAc;IACvC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,aAAa,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAElG,MAAM,CAAC,GAAG,KAAmB,CAAC;IAC9B,IAAI,OAAO,CAAC,CAAC,OAAO,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,UAAU,IAAI,OAAO,CAAC,CAAC,SAAS,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IACrF,IACI,CAAC,CAAC,WAAW,IAAI,IAAI;QACrB,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,OAAO,CAAC,CAAC,WAAW,IAAI,UAAU;QAElC,OAAO,KAAK,CAAC;IACjB,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
|
@@ -3,7 +3,7 @@ export function isParameterDecorationGroup(value) {
|
|
|
3
3
|
if (value == null || typeof value !== 'object')
|
|
4
4
|
return false;
|
|
5
5
|
const v = value;
|
|
6
|
-
if ('key' in v || 'name' in v || 'description' in v)
|
|
6
|
+
if ('key' in v || 'name' in v || 'description' in v || 'value' in v)
|
|
7
7
|
return false;
|
|
8
8
|
return Array.isArray(v.items);
|
|
9
9
|
}
|
|
@@ -11,9 +11,9 @@ export function isParameterDecorationGroup(value) {
|
|
|
11
11
|
export function isParameterGroup(item) {
|
|
12
12
|
if (item == null || typeof item !== 'object')
|
|
13
13
|
return false;
|
|
14
|
-
const
|
|
15
|
-
if ('key' in
|
|
14
|
+
const v = item;
|
|
15
|
+
if ('key' in v || 'value' in v)
|
|
16
16
|
return false;
|
|
17
|
-
return typeof
|
|
17
|
+
return typeof v.name === 'string' && typeof v.description === 'string' && Array.isArray(v.items);
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=parameter-group.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-group.js","sourceRoot":"","sources":["../../src/definitions/parameter-group.ts"],"names":[],"mappings":"AAkBA,gBAAgB;AAChB,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACrD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAiC,CAAC;IAC5C,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter-group.js","sourceRoot":"","sources":["../../src/definitions/parameter-group.ts"],"names":[],"mappings":"AAkBA,gBAAgB;AAChB,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACrD,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7D,MAAM,CAAC,GAAG,KAAiC,CAAC;IAC5C,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAClF,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAgBD,gBAAgB;AAChB,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC1C,IAAI,IAAI,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3D,MAAM,CAAC,GAAG,IAAsB,CAAC;IACjC,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,OAAO,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACrG,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { VmPrimitive, VmRecord } from '@mirascript/mirascript';
|
|
2
|
-
import type { ExpressionOrValue } from '../expression.js';
|
|
3
|
-
import type { ArgumentMap, ArgumentValue, ConditionExpression
|
|
2
|
+
import type { ExpressionFunction, ExpressionOrValue } from '../expression.js';
|
|
3
|
+
import type { ArgumentMap, ArgumentValue, ConditionExpression } from './argument.js';
|
|
4
4
|
import type { Constraint } from './constraint.js';
|
|
5
5
|
import type { ParameterDecoration } from './parameter-decoration.js';
|
|
6
6
|
import type { ParameterGroup } from './parameter-group.js';
|
|
@@ -58,12 +58,10 @@ export interface IntegerParameter extends NumericParameter<'integer'> {
|
|
|
58
58
|
}
|
|
59
59
|
/** 可用于选项的值 */
|
|
60
60
|
export type ChoiceArgumentValue = NonNullable<VmPrimitive>;
|
|
61
|
-
/** 表示一个选项 Key,当其值为数字时,默认值为其在数组中的索引 */
|
|
62
|
-
export type ChoiceKey<V extends ChoiceArgumentValue = ChoiceArgumentValue> = V extends number ? number | null : V;
|
|
63
61
|
/** 表示一个选项 */
|
|
64
62
|
export type Choice<V extends ChoiceArgumentValue = ChoiceArgumentValue> = {
|
|
65
|
-
/**
|
|
66
|
-
key:
|
|
63
|
+
/** 选中该选项将存储的参数值,默认值为其在数组中的索引 */
|
|
64
|
+
key: V;
|
|
67
65
|
/** 选项名称 */
|
|
68
66
|
name: string;
|
|
69
67
|
/** 选项详细描述 */
|
|
@@ -80,7 +78,7 @@ export interface ChoiceParameter<V extends ChoiceArgumentValue = ChoiceArgumentV
|
|
|
80
78
|
/**
|
|
81
79
|
* 可选取值及其对应的说明文本
|
|
82
80
|
*/
|
|
83
|
-
choices: ExpressionOrValue<Array<Choice<V>>> |
|
|
81
|
+
choices: ExpressionOrValue<Array<Choice<V>>> | ExpressionFunction<ReadonlyArray<Choice<V>>>;
|
|
84
82
|
}
|
|
85
83
|
/**
|
|
86
84
|
* 表示值为多选选择项的参数定义
|
|
@@ -89,7 +87,7 @@ export interface MultiSelectParameter<V extends readonly ChoiceArgumentValue[] =
|
|
|
89
87
|
/**
|
|
90
88
|
* 可选取值及其对应的说明文本
|
|
91
89
|
*/
|
|
92
|
-
choices: ExpressionOrValue<Array<Choice<V[number]>>> |
|
|
90
|
+
choices: ExpressionOrValue<Array<Choice<V[number]>>> | ExpressionFunction<ReadonlyArray<Choice<V[number]>>>;
|
|
93
91
|
}
|
|
94
92
|
/**
|
|
95
93
|
* 表示值为布尔量的参数定义
|
|
@@ -98,7 +96,7 @@ export interface LogicalParameter<V extends ChoiceArgumentValue = ChoiceArgument
|
|
|
98
96
|
/**
|
|
99
97
|
* 可选取值及其对应的说明文本
|
|
100
98
|
*/
|
|
101
|
-
choices?: ExpressionOrValue<[false: Choice<V>, true: Choice<V>]> |
|
|
99
|
+
choices?: ExpressionOrValue<[false: Choice<V>, true: Choice<V>]> | ExpressionFunction<readonly [false: Choice<V>, true: Choice<V>]>;
|
|
102
100
|
}
|
|
103
101
|
/**
|
|
104
102
|
* 表示值为表格的参数定义
|
|
@@ -117,8 +115,12 @@ export interface TableParameter<V extends readonly ArgumentValue[] = readonly Ar
|
|
|
117
115
|
*
|
|
118
116
|
* 否则,表格参数的值为记录类型数组,每个记录包含各列定义的键值
|
|
119
117
|
*/
|
|
120
|
-
columns: Parameter[] |
|
|
118
|
+
columns: Parameter[] | ExpressionFunction<readonly Parameter[]>;
|
|
119
|
+
/** 添加额外属性以跟踪表格行 */
|
|
120
|
+
trackTag?: string;
|
|
121
121
|
}
|
|
122
|
+
/** 生成用于跟踪的额外属性值 */
|
|
123
|
+
export declare function generateTrackId(): number;
|
|
122
124
|
/**
|
|
123
125
|
* 表示值为简单记录类型的定义
|
|
124
126
|
*
|
|
@@ -184,13 +186,13 @@ export interface ParameterMap {
|
|
|
184
186
|
/** 整数参数 */
|
|
185
187
|
integer: IntegerParameter;
|
|
186
188
|
/** 选择参数 */
|
|
187
|
-
choice: ChoiceParameter
|
|
189
|
+
choice: ChoiceParameter;
|
|
188
190
|
/** 多选参数 */
|
|
189
|
-
multiSelect: MultiSelectParameter
|
|
191
|
+
multiSelect: MultiSelectParameter;
|
|
190
192
|
/** 布尔参数 */
|
|
191
|
-
logical: LogicalParameter
|
|
193
|
+
logical: LogicalParameter;
|
|
192
194
|
/** 表格参数 */
|
|
193
|
-
table: TableParameter
|
|
195
|
+
table: TableParameter;
|
|
194
196
|
/** 文本参数 */
|
|
195
197
|
text: TextParameter;
|
|
196
198
|
/** 代码参数 */
|
|
@@ -206,6 +208,12 @@ export interface ParameterMap {
|
|
|
206
208
|
export type ParameterType = keyof ParameterMap;
|
|
207
209
|
/** 已定义的参数类型 */
|
|
208
210
|
export type Parameter = ParameterMap[ParameterType];
|
|
211
|
+
/** 已定义的选择参数类型 */
|
|
212
|
+
export type ChoiceParameterType = {
|
|
213
|
+
[K in keyof ParameterMap]: ParameterMap[K] extends {
|
|
214
|
+
choices?: infer _;
|
|
215
|
+
} ? ParameterMap[K]['type'] : never;
|
|
216
|
+
}[keyof ParameterMap];
|
|
209
217
|
/**
|
|
210
218
|
* 是否为参数定义
|
|
211
219
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter.d.ts","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,16 @@ export function isChoice(value) {
|
|
|
4
4
|
if (value == null || typeof value != 'object')
|
|
5
5
|
return false;
|
|
6
6
|
const c = value;
|
|
7
|
-
return typeof c.name === 'string' &&
|
|
7
|
+
return (typeof c.name === 'string' &&
|
|
8
|
+
typeof c.description == 'string' &&
|
|
9
|
+
!('items' in c) &&
|
|
10
|
+
!('value' in c) &&
|
|
11
|
+
!('span' in c));
|
|
12
|
+
}
|
|
13
|
+
/** 生成用于跟踪的额外属性值 */
|
|
14
|
+
export function generateTrackId() {
|
|
15
|
+
// 生成 1 ~ 2^31-1 之间的随机整数
|
|
16
|
+
return Math.trunc(1 + Math.random() * 0x7fff_ffff);
|
|
8
17
|
}
|
|
9
18
|
/**
|
|
10
19
|
* 是否为参数定义
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"parameter.js","sourceRoot":"","sources":["../../src/definitions/parameter.ts"],"names":[],"mappings":"AAgCA,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAU,CAAC,CAAC;AA+C9G,YAAY;AACZ,MAAM,UAAU,QAAQ,CAAsD,KAAc;IACxF,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,CAAC,GAAG,KAAkB,CAAC;IAC7B,OAAO,CACH,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CACjB,CAAC;AACN,CAAC;AAiED,mBAAmB;AACnB,MAAM,UAAU,eAAe;IAC3B,wBAAwB;IACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC;AACvD,CAAC;AA8GD;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,KAAc;IACtC,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,IAAI,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5D,MAAM,CAAC,GAAG,KAAkB,CAAC;IAC7B,OAAO,CACH,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;QACzB,OAAO,CAAC,CAAC,IAAI,IAAI,QAAQ;QACzB,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;QACjB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ;QAChC,OAAO,IAAI,CAAC,CACf,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type VmValue } from '@mirascript/mirascript';
|
|
2
|
+
import type { ChoiceParameterType, Parameter, ParameterMap } from './parameter.js';
|
|
3
|
+
import { TypeInfo } from '../type.js';
|
|
4
|
+
import type { ArgumentMap, ArgumentValue } from './argument.js';
|
|
5
|
+
import type { ParameterGroup } from './parameter-group.js';
|
|
6
|
+
/** 转换参数类型 */
|
|
7
|
+
export type ArgumentConverter<out R extends ArgumentValue = ArgumentValue> = <const D = undefined>(value: VmValue | null | undefined, defaults?: D) => R | Exclude<D, undefined>;
|
|
8
|
+
/**
|
|
9
|
+
* 通过枚举参数定义推测枚举类型
|
|
10
|
+
*/
|
|
11
|
+
export declare function choiceParameterType(definition: Pick<ParameterMap[ChoiceParameterType], 'type' | 'value' | 'choices'>): TypeInfo;
|
|
12
|
+
/** 是否为枚举值类型 */
|
|
13
|
+
export declare function isChoiceValue(value: unknown): value is ChoiceParameterType;
|
|
14
|
+
/** 转换推测参数类型,不回退到 {@link Parameter.value} 提供的默认值 */
|
|
15
|
+
export declare function argumentConverter(definition: Parameter): ArgumentConverter;
|
|
16
|
+
/**
|
|
17
|
+
* 转换参数值的类型,不回退到 {@link Parameter.value} 提供的默认值
|
|
18
|
+
* 转换失败时返回 null
|
|
19
|
+
*/
|
|
20
|
+
export declare function toArgumentValue(value: VmValue | null | undefined, definition: Parameter): ArgumentValue | null;
|
|
21
|
+
/** 参数定义数组 */
|
|
22
|
+
type ParameterDefinitions = ReadonlyArray<Pick<ParameterGroup, 'items'>>;
|
|
23
|
+
/** 查找指定参数 */
|
|
24
|
+
export declare function findParameter(definition: ParameterDefinitions | undefined, key: string): Parameter | undefined;
|
|
25
|
+
/** 获取参数默认值,修复现有的参数,填充缺失的参数,删除未定义的参数 */
|
|
26
|
+
export declare function fillArgumentMap<T extends Record<string, ArgumentValue>>(definition: ParameterDefinitions | undefined, args?: ArgumentMap<T> | null): ArgumentMap<T>;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/definitions/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAiE,KAAK,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAErH,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,aAAa;AACb,MAAM,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,SAAS,EAC7F,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EACjC,QAAQ,CAAC,EAAE,CAAC,KACX,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAS/B;;GAEG;AACH,wBAAgB,mBAAmB,CAC/B,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAClF,QAAQ,CA2BV;AAED,eAAe;AACf,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAE1E;AAmFD,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,SAAS,GAAG,iBAAiB,CAkD1E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,SAAS,GAAG,aAAa,GAAG,IAAI,CAG9G;AAED,aAAa;AACb,KAAK,oBAAoB,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;AAgBzE,aAAa;AACb,wBAAgB,aAAa,CAAC,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAQ9G;AAED,uCAAuC;AACvC,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACnE,UAAU,EAAE,oBAAoB,GAAG,SAAS,EAC5C,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,GAC7B,WAAW,CAAC,CAAC,CAAC,CAmDhB"}
|