@cloudpss/expression 0.6.0-alpha.8 → 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.
Files changed (157) hide show
  1. package/dist/analyze.d.ts +6 -3
  2. package/dist/analyze.d.ts.map +1 -1
  3. package/dist/analyze.js +13 -33
  4. package/dist/analyze.js.map +1 -1
  5. package/dist/definitions/argument.d.ts +3 -11
  6. package/dist/definitions/argument.d.ts.map +1 -1
  7. package/dist/definitions/constraint.d.ts +2 -2
  8. package/dist/definitions/constraint.d.ts.map +1 -1
  9. package/dist/definitions/constraint.js +1 -1
  10. package/dist/definitions/constraint.js.map +1 -1
  11. package/dist/definitions/parameter-group.js +4 -4
  12. package/dist/definitions/parameter-group.js.map +1 -1
  13. package/dist/definitions/parameter.d.ts +22 -14
  14. package/dist/definitions/parameter.d.ts.map +1 -1
  15. package/dist/definitions/parameter.js +10 -1
  16. package/dist/definitions/parameter.js.map +1 -1
  17. package/dist/definitions/utils.d.ts +28 -0
  18. package/dist/definitions/utils.d.ts.map +1 -0
  19. package/dist/definitions/utils.js +272 -0
  20. package/dist/definitions/utils.js.map +1 -0
  21. package/dist/definitions/variable.js +1 -1
  22. package/dist/definitions/variable.js.map +1 -1
  23. package/dist/definitions.d.ts +1 -2
  24. package/dist/definitions.d.ts.map +1 -1
  25. package/dist/definitions.js +1 -1
  26. package/dist/definitions.js.map +1 -1
  27. package/dist/eval.d.ts +3 -5
  28. package/dist/eval.d.ts.map +1 -1
  29. package/dist/eval.js +12 -20
  30. package/dist/eval.js.map +1 -1
  31. package/dist/expression.d.ts +10 -4
  32. package/dist/expression.d.ts.map +1 -1
  33. package/dist/expression.js +6 -6
  34. package/dist/expression.js.map +1 -1
  35. package/dist/index.d.ts +3 -1
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +1 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/interface.d.ts +30 -0
  40. package/dist/interface.d.ts.map +1 -0
  41. package/dist/interface.js +6 -0
  42. package/dist/interface.js.map +1 -0
  43. package/dist/main.d.ts +41 -28
  44. package/dist/main.d.ts.map +1 -1
  45. package/dist/main.js +165 -149
  46. package/dist/main.js.map +1 -1
  47. package/dist/migrate.d.ts +3 -2
  48. package/dist/migrate.d.ts.map +1 -1
  49. package/dist/migrate.js +25 -3
  50. package/dist/migrate.js.map +1 -1
  51. package/dist/migrator/access.d.ts.map +1 -1
  52. package/dist/migrator/access.js +65 -30
  53. package/dist/migrator/access.js.map +1 -1
  54. package/dist/migrator/call.d.ts.map +1 -1
  55. package/dist/migrator/call.js +298 -201
  56. package/dist/migrator/call.js.map +1 -1
  57. package/dist/migrator/concat.d.ts.map +1 -1
  58. package/dist/migrator/concat.js +15 -2
  59. package/dist/migrator/concat.js.map +1 -1
  60. package/dist/migrator/function.d.ts +6 -0
  61. package/dist/migrator/function.d.ts.map +1 -0
  62. package/dist/migrator/function.js +25 -0
  63. package/dist/migrator/function.js.map +1 -0
  64. package/dist/migrator/interface.d.ts +3 -1
  65. package/dist/migrator/interface.d.ts.map +1 -1
  66. package/dist/migrator/interface.js.map +1 -1
  67. package/dist/migrator/node.d.ts.map +1 -1
  68. package/dist/migrator/node.js +55 -7
  69. package/dist/migrator/node.js.map +1 -1
  70. package/dist/migrator/operator.d.ts.map +1 -1
  71. package/dist/migrator/operator.js +107 -60
  72. package/dist/migrator/operator.js.map +1 -1
  73. package/dist/migrator/serialize.d.ts +4 -0
  74. package/dist/migrator/serialize.d.ts.map +1 -0
  75. package/dist/migrator/serialize.js +21 -0
  76. package/dist/migrator/serialize.js.map +1 -0
  77. package/dist/migrator/special.d.ts.map +1 -1
  78. package/dist/migrator/special.js +31 -0
  79. package/dist/migrator/special.js.map +1 -1
  80. package/dist/migrator/state.d.ts +2 -2
  81. package/dist/migrator/state.d.ts.map +1 -1
  82. package/dist/migrator/state.js +30 -33
  83. package/dist/migrator/state.js.map +1 -1
  84. package/dist/migrator/symbol.d.ts.map +1 -1
  85. package/dist/migrator/symbol.js +34 -12
  86. package/dist/migrator/symbol.js.map +1 -1
  87. package/dist/migrator/to-type.d.ts.map +1 -1
  88. package/dist/migrator/to-type.js +21 -4
  89. package/dist/migrator/to-type.js.map +1 -1
  90. package/dist/migrator/utils.d.ts +6 -0
  91. package/dist/migrator/utils.d.ts.map +1 -1
  92. package/dist/migrator/utils.js +49 -1
  93. package/dist/migrator/utils.js.map +1 -1
  94. package/dist/parser.d.ts +2 -2
  95. package/dist/parser.d.ts.map +1 -1
  96. package/dist/parser.js +27 -8
  97. package/dist/parser.js.map +1 -1
  98. package/dist/re-exports.d.ts +4 -0
  99. package/dist/re-exports.d.ts.map +1 -0
  100. package/dist/re-exports.js +3 -0
  101. package/dist/re-exports.js.map +1 -0
  102. package/dist/scope.d.ts +17 -18
  103. package/dist/scope.d.ts.map +1 -1
  104. package/dist/scope.js +84 -53
  105. package/dist/scope.js.map +1 -1
  106. package/dist/type.d.ts +22 -10
  107. package/dist/type.d.ts.map +1 -1
  108. package/dist/type.js +21 -24
  109. package/dist/type.js.map +1 -1
  110. package/package.json +8 -5
  111. package/src/analyze.ts +20 -39
  112. package/src/definitions/argument.ts +3 -13
  113. package/src/definitions/constraint.ts +3 -3
  114. package/src/definitions/parameter-group.ts +4 -4
  115. package/src/definitions/parameter.ts +47 -24
  116. package/src/definitions/utils.ts +288 -0
  117. package/src/definitions/variable.ts +1 -1
  118. package/src/definitions.ts +1 -28
  119. package/src/eval.ts +16 -25
  120. package/src/expression.ts +16 -8
  121. package/src/index.ts +3 -1
  122. package/src/interface.ts +35 -0
  123. package/src/main.ts +232 -200
  124. package/src/migrate.ts +30 -6
  125. package/src/migrator/access.ts +68 -38
  126. package/src/migrator/call.ts +287 -190
  127. package/src/migrator/concat.ts +15 -2
  128. package/src/migrator/function.ts +27 -0
  129. package/src/migrator/interface.ts +3 -1
  130. package/src/migrator/node.ts +56 -6
  131. package/src/migrator/operator.ts +110 -64
  132. package/src/migrator/serialize.ts +21 -0
  133. package/src/migrator/special.ts +31 -0
  134. package/src/migrator/state.ts +30 -33
  135. package/src/migrator/symbol.ts +33 -12
  136. package/src/migrator/to-type.ts +23 -4
  137. package/src/migrator/utils.ts +49 -1
  138. package/src/parser.ts +33 -8
  139. package/src/re-exports.ts +47 -0
  140. package/src/scope.ts +101 -65
  141. package/src/type.ts +40 -25
  142. package/tests/analyze.ts +45 -6
  143. package/tests/compile.ts +65 -0
  144. package/tests/condition.ts +33 -17
  145. package/tests/definition.ts +237 -18
  146. package/tests/eval-complex.ts +19 -11
  147. package/tests/eval.ts +59 -12
  148. package/tests/import.ts +21 -7
  149. package/tests/main.ts +58 -0
  150. package/tests/migrate.ts +317 -0
  151. package/tests/scope.ts +3 -3
  152. package/tests/template.ts +36 -0
  153. package/dist/context.d.ts +0 -41
  154. package/dist/context.d.ts.map +0 -1
  155. package/dist/context.js +0 -18
  156. package/dist/context.js.map +0 -1
  157. package/src/context.ts +0 -54
package/dist/analyze.d.ts CHANGED
@@ -1,7 +1,10 @@
1
- import type { Context } from './context.js';
2
- import type { ExpressionCache } from './parser.js';
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(context: Context, expression: ExpressionCache): string[][];
9
+ export declare function analyze(expression: EvalExpressionCache, evaluator: Evaluator, scope: Scope): readonly GlobalReferenceChain[];
7
10
  //# sourceMappingURL=analyze.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,GAAG,MAAM,EAAE,EAAE,CAqCjF"}
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(context, expression) {
5
- // TODO:
6
- return [];
7
- // if (expression.ast == null) return [];
8
- // const deps: string[][] = [];
9
- // const analyzeNode = (node: MathNode): string[] | undefined => {
10
- // if (isSymbolNode(node) && node.name) {
11
- // return [node.name];
12
- // }
13
- // if (isAccessorNode(node)) {
14
- // const { index } = node;
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
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../src/analyze.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,OAAgB,EAAE,UAA2B;IACjE,QAAQ;IACR,OAAO,EAAE,CAAC;IACV,yCAAyC;IAEzC,+BAA+B;IAE/B,kEAAkE;IAClE,6CAA6C;IAC7C,8BAA8B;IAC9B,QAAQ;IACR,kCAAkC;IAClC,kCAAkC;IAClC,uFAAuF;IACvF,gCAAgC;IAChC,YAAY;IACZ,wDAAwD;IACxD,iCAAiC;IACjC,oFAAoF;IACpF,gCAAgC;IAChC,YAAY;IACZ,iDAAiD;IACjD,uCAAuC;IAEvC,wCAAwC;IACxC,QAAQ;IACR,wBAAwB;IACxB,KAAK;IAEL,qDAAqD;IACrD,qCAAqC;IACrC,+BAA+B;IAC/B,4DAA4D;IAC5D,yCAAyC;IACzC,KAAK;IACL,kCAAkC;IAClC,eAAe;AACnB,CAAC"}
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 ExpressionFunction<R, V extends VmValue = ArgumentValue> = (
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<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<V extends VmValue = ArgumentValue> = ExpressionFunction<boolean, V>;
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 & string]?: ExpressionOrValue<NonNullable<T[K]>>;
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,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,GAAG,aAAa,IAAI;AACnE,cAAc;AACd,KAAK,EAAE,CAAC;AACR,YAAY;AACZ,KAAK,EAAE,KAAK;AACZ,YAAY;AACZ,SAAS,EAAE,SAAS,KACnB,CAAC,CAAC;AAEP;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;AAC/B,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,CAAC,SAAS,OAAO,GAAG,aAAa,IAAI,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAElG,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,GAAG,MAAM,CAAC,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACjE,CAAC"}
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, ExpressionFunction } from './argument.js';
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 | ExpressionFunction<VmRecord, V>;
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,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAC/G,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,kBAAkB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACtF;;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"}
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;IAE/E,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"}
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 group = item;
15
- if ('key' in group)
14
+ const v = item;
15
+ if ('key' in v || 'value' in v)
16
16
  return false;
17
- return typeof group.name === 'string' && typeof group.description === 'string' && Array.isArray(group.items);
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;IAClE,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,KAAK,GAAG,IAAsB,CAAC;IACrC,IAAI,KAAK,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACjC,OAAO,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjH,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, ParameterFunction } from './argument.js';
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: ChoiceKey<V>;
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>>> | ParameterFunction<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]>>> | ParameterFunction<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>]> | ParameterFunction<[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[] | ParameterFunction<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<string> | ChoiceParameter<number> | ChoiceParameter<boolean>;
189
+ choice: ChoiceParameter;
188
190
  /** 多选参数 */
189
- multiSelect: MultiSelectParameter<string[]> | MultiSelectParameter<number[]> | MultiSelectParameter<boolean[]>;
191
+ multiSelect: MultiSelectParameter;
190
192
  /** 布尔参数 */
191
- logical: LogicalParameter<string> | LogicalParameter<number> | LogicalParameter<boolean>;
193
+ logical: LogicalParameter;
192
194
  /** 表格参数 */
193
- table: TableParameter<ArgumentValue[]>;
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":"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"}
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' && typeof c.description == 'string' && !('items' in c) && !('value' in c);
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;AAkD9G,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,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,WAAW,IAAI,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;AAChH,CAAC;AA+JD;;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"}
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"}