@variojs/core 0.0.2 → 0.1.2

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/dist/index.d.ts +644 -17
  2. package/dist/index.js +9 -1
  3. package/dist/index.js.map +1 -1
  4. package/package.json +14 -5
  5. package/dist/errors.d.ts +0 -100
  6. package/dist/errors.d.ts.map +0 -1
  7. package/dist/errors.js +0 -4
  8. package/dist/errors.js.map +0 -1
  9. package/dist/expression/cache.d.ts +0 -53
  10. package/dist/expression/cache.d.ts.map +0 -1
  11. package/dist/expression/cache.js +0 -1
  12. package/dist/expression/cache.js.map +0 -1
  13. package/dist/expression/compiler.d.ts +0 -34
  14. package/dist/expression/compiler.d.ts.map +0 -1
  15. package/dist/expression/compiler.js +0 -1
  16. package/dist/expression/compiler.js.map +0 -1
  17. package/dist/expression/dependencies.d.ts +0 -17
  18. package/dist/expression/dependencies.d.ts.map +0 -1
  19. package/dist/expression/dependencies.js +0 -1
  20. package/dist/expression/dependencies.js.map +0 -1
  21. package/dist/expression/evaluate.d.ts +0 -22
  22. package/dist/expression/evaluate.d.ts.map +0 -1
  23. package/dist/expression/evaluate.js +0 -2
  24. package/dist/expression/evaluate.js.map +0 -1
  25. package/dist/expression/evaluator.d.ts +0 -22
  26. package/dist/expression/evaluator.d.ts.map +0 -1
  27. package/dist/expression/evaluator.js +0 -1
  28. package/dist/expression/evaluator.js.map +0 -1
  29. package/dist/expression/index.d.ts +0 -12
  30. package/dist/expression/index.d.ts.map +0 -1
  31. package/dist/expression/index.js +0 -1
  32. package/dist/expression/index.js.map +0 -1
  33. package/dist/expression/parser.d.ts +0 -15
  34. package/dist/expression/parser.d.ts.map +0 -1
  35. package/dist/expression/parser.js +0 -1
  36. package/dist/expression/parser.js.map +0 -1
  37. package/dist/expression/utils.d.ts +0 -46
  38. package/dist/expression/utils.d.ts.map +0 -1
  39. package/dist/expression/utils.js +0 -1
  40. package/dist/expression/utils.js.map +0 -1
  41. package/dist/expression/whitelist.d.ts +0 -24
  42. package/dist/expression/whitelist.d.ts.map +0 -1
  43. package/dist/expression/whitelist.js +0 -3
  44. package/dist/expression/whitelist.js.map +0 -1
  45. package/dist/index.d.ts.map +0 -1
  46. package/dist/runtime/context.d.ts +0 -8
  47. package/dist/runtime/context.d.ts.map +0 -1
  48. package/dist/runtime/context.js +0 -1
  49. package/dist/runtime/context.js.map +0 -1
  50. package/dist/runtime/create-context.d.ts +0 -20
  51. package/dist/runtime/create-context.d.ts.map +0 -1
  52. package/dist/runtime/create-context.js +0 -1
  53. package/dist/runtime/create-context.js.map +0 -1
  54. package/dist/runtime/index.d.ts +0 -10
  55. package/dist/runtime/index.d.ts.map +0 -1
  56. package/dist/runtime/index.js +0 -1
  57. package/dist/runtime/index.js.map +0 -1
  58. package/dist/runtime/loop-context-pool.d.ts +0 -58
  59. package/dist/runtime/loop-context-pool.d.ts.map +0 -1
  60. package/dist/runtime/loop-context-pool.js +0 -1
  61. package/dist/runtime/loop-context-pool.js.map +0 -1
  62. package/dist/runtime/path.d.ts +0 -114
  63. package/dist/runtime/path.d.ts.map +0 -1
  64. package/dist/runtime/path.js +0 -1
  65. package/dist/runtime/path.js.map +0 -1
  66. package/dist/runtime/proxy.d.ts +0 -18
  67. package/dist/runtime/proxy.d.ts.map +0 -1
  68. package/dist/runtime/proxy.js +0 -1
  69. package/dist/runtime/proxy.js.map +0 -1
  70. package/dist/runtime/sandbox.d.ts +0 -20
  71. package/dist/runtime/sandbox.d.ts.map +0 -1
  72. package/dist/runtime/sandbox.js +0 -1
  73. package/dist/runtime/sandbox.js.map +0 -1
  74. package/dist/types.d.ts +0 -191
  75. package/dist/types.d.ts.map +0 -1
  76. package/dist/types.js +0 -1
  77. package/dist/types.js.map +0 -1
  78. package/dist/vm/errors.d.ts +0 -5
  79. package/dist/vm/errors.d.ts.map +0 -1
  80. package/dist/vm/errors.js +0 -1
  81. package/dist/vm/errors.js.map +0 -1
  82. package/dist/vm/executor.d.ts +0 -35
  83. package/dist/vm/executor.d.ts.map +0 -1
  84. package/dist/vm/executor.js +0 -2
  85. package/dist/vm/executor.js.map +0 -1
  86. package/dist/vm/handlers/array/pop.d.ts +0 -12
  87. package/dist/vm/handlers/array/pop.d.ts.map +0 -1
  88. package/dist/vm/handlers/array/pop.js +0 -1
  89. package/dist/vm/handlers/array/pop.js.map +0 -1
  90. package/dist/vm/handlers/array/push.d.ts +0 -13
  91. package/dist/vm/handlers/array/push.d.ts.map +0 -1
  92. package/dist/vm/handlers/array/push.js +0 -1
  93. package/dist/vm/handlers/array/push.js.map +0 -1
  94. package/dist/vm/handlers/array/shift.d.ts +0 -12
  95. package/dist/vm/handlers/array/shift.d.ts.map +0 -1
  96. package/dist/vm/handlers/array/shift.js +0 -1
  97. package/dist/vm/handlers/array/shift.js.map +0 -1
  98. package/dist/vm/handlers/array/splice.d.ts +0 -12
  99. package/dist/vm/handlers/array/splice.d.ts.map +0 -1
  100. package/dist/vm/handlers/array/splice.js +0 -1
  101. package/dist/vm/handlers/array/splice.js.map +0 -1
  102. package/dist/vm/handlers/array/unshift.d.ts +0 -13
  103. package/dist/vm/handlers/array/unshift.d.ts.map +0 -1
  104. package/dist/vm/handlers/array/unshift.js +0 -1
  105. package/dist/vm/handlers/array/unshift.js.map +0 -1
  106. package/dist/vm/handlers/array/utils.d.ts +0 -10
  107. package/dist/vm/handlers/array/utils.d.ts.map +0 -1
  108. package/dist/vm/handlers/array/utils.js +0 -1
  109. package/dist/vm/handlers/array/utils.js.map +0 -1
  110. package/dist/vm/handlers/batch.d.ts +0 -12
  111. package/dist/vm/handlers/batch.d.ts.map +0 -1
  112. package/dist/vm/handlers/batch.js +0 -1
  113. package/dist/vm/handlers/batch.js.map +0 -1
  114. package/dist/vm/handlers/call.d.ts +0 -14
  115. package/dist/vm/handlers/call.d.ts.map +0 -1
  116. package/dist/vm/handlers/call.js +0 -1
  117. package/dist/vm/handlers/call.js.map +0 -1
  118. package/dist/vm/handlers/emit.d.ts +0 -12
  119. package/dist/vm/handlers/emit.d.ts.map +0 -1
  120. package/dist/vm/handlers/emit.js +0 -1
  121. package/dist/vm/handlers/emit.js.map +0 -1
  122. package/dist/vm/handlers/if.d.ts +0 -13
  123. package/dist/vm/handlers/if.d.ts.map +0 -1
  124. package/dist/vm/handlers/if.js +0 -1
  125. package/dist/vm/handlers/if.js.map +0 -1
  126. package/dist/vm/handlers/index.d.ts +0 -14
  127. package/dist/vm/handlers/index.d.ts.map +0 -1
  128. package/dist/vm/handlers/index.js +0 -1
  129. package/dist/vm/handlers/index.js.map +0 -1
  130. package/dist/vm/handlers/log.d.ts +0 -12
  131. package/dist/vm/handlers/log.d.ts.map +0 -1
  132. package/dist/vm/handlers/log.js +0 -1
  133. package/dist/vm/handlers/log.js.map +0 -1
  134. package/dist/vm/handlers/loop.d.ts +0 -12
  135. package/dist/vm/handlers/loop.d.ts.map +0 -1
  136. package/dist/vm/handlers/loop.js +0 -1
  137. package/dist/vm/handlers/loop.js.map +0 -1
  138. package/dist/vm/handlers/navigate.d.ts +0 -12
  139. package/dist/vm/handlers/navigate.d.ts.map +0 -1
  140. package/dist/vm/handlers/navigate.js +0 -1
  141. package/dist/vm/handlers/navigate.js.map +0 -1
  142. package/dist/vm/handlers/set.d.ts +0 -15
  143. package/dist/vm/handlers/set.d.ts.map +0 -1
  144. package/dist/vm/handlers/set.js +0 -1
  145. package/dist/vm/handlers/set.js.map +0 -1
  146. package/dist/vm/index.d.ts +0 -8
  147. package/dist/vm/index.d.ts.map +0 -1
  148. package/dist/vm/index.js +0 -1
  149. package/dist/vm/index.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@variojs/core",
3
- "version": "0.0.2",
3
+ "version": "0.1.2",
4
4
  "description": "Vario Core Runtime - Instruction VM, Expression System, Runtime Context",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -13,18 +13,19 @@
13
13
  }
14
14
  },
15
15
  "scripts": {
16
- "build": "tsc",
17
- "postbuild": "tsc-alias && node ../../scripts/minify.js",
18
- "dev": "tsc --watch",
16
+ "build": "tsup",
17
+ "dev": "tsup --watch",
19
18
  "test": "vitest run",
20
19
  "test:watch": "vitest",
21
20
  "clean": "rm -rf dist"
22
21
  },
23
22
  "dependencies": {
24
23
  "@babel/parser": "^7.23.6",
25
- "@babel/types": "^7.23.6"
24
+ "@babel/types": "^7.23.6",
25
+ "@variojs/schema": "workspace:*"
26
26
  },
27
27
  "devDependencies": {
28
+ "tsc-alias": "^1.8.8",
28
29
  "typescript": "^5.3.3",
29
30
  "vitest": "^1.2.0"
30
31
  },
@@ -34,5 +35,13 @@
34
35
  ],
35
36
  "publishConfig": {
36
37
  "access": "public"
38
+ },
39
+ "peerDependencies": {
40
+ "@variojs/types": "^0.0.2"
41
+ },
42
+ "peerDependenciesMeta": {
43
+ "@variojs/types": {
44
+ "optional": false
45
+ }
37
46
  }
38
47
  }
package/dist/errors.d.ts DELETED
@@ -1,100 +0,0 @@
1
- /**
2
- * Vario 错误处理体系
3
- *
4
- * 统一的错误基类和错误码系统
5
- */
6
- import type { Action } from './types.js';
7
- /**
8
- * 错误上下文信息
9
- */
10
- export interface ErrorContext {
11
- /** Schema 路径(如 "events.click[0]") */
12
- schemaPath?: string;
13
- /** 表达式字符串 */
14
- expression?: string;
15
- /** 动作对象 */
16
- action?: Action;
17
- /** 调用栈(简化版) */
18
- stack?: string[];
19
- /** 额外上下文信息 */
20
- metadata?: Record<string, unknown>;
21
- }
22
- /**
23
- * Vario 错误基类
24
- *
25
- * 所有 Vario 相关错误都应继承此类
26
- */
27
- export declare class VarioError extends Error {
28
- /** 错误码 */
29
- readonly code: string;
30
- /** 错误上下文 */
31
- readonly context: ErrorContext;
32
- constructor(message: string, code: string, context?: ErrorContext);
33
- /**
34
- * 获取友好的错误消息
35
- */
36
- getFriendlyMessage(): string;
37
- /**
38
- * 转换为 JSON(用于序列化)
39
- */
40
- toJSON(): Record<string, unknown>;
41
- }
42
- /**
43
- * 动作执行错误
44
- */
45
- export declare class ActionError extends VarioError {
46
- constructor(action: Action, message: string, code?: string, context?: Omit<ErrorContext, 'action'>);
47
- }
48
- /**
49
- * 表达式求值错误
50
- */
51
- export declare class ExpressionError extends VarioError {
52
- constructor(expression: string, message: string, code?: string, context?: Omit<ErrorContext, 'expression'>);
53
- }
54
- /**
55
- * 服务调用错误
56
- */
57
- export declare class ServiceError extends VarioError {
58
- readonly service: string;
59
- readonly originalError?: Error;
60
- constructor(service: string, message: string, originalError?: Error, context?: ErrorContext);
61
- }
62
- /**
63
- * 批量执行错误
64
- */
65
- export declare class BatchError extends VarioError {
66
- readonly failedActions: Array<{
67
- action: Action;
68
- error: Error;
69
- }>;
70
- constructor(failedActions: Array<{
71
- action: Action;
72
- error: Error;
73
- }>, message: string, context?: ErrorContext);
74
- }
75
- /**
76
- * 错误码定义
77
- */
78
- export declare const ErrorCodes: {
79
- readonly ACTION_UNKNOWN_TYPE: "ACTION_UNKNOWN_TYPE";
80
- readonly ACTION_EXECUTION_ERROR: "ACTION_EXECUTION_ERROR";
81
- readonly ACTION_ABORTED: "ACTION_ABORTED";
82
- readonly ACTION_TIMEOUT: "ACTION_TIMEOUT";
83
- readonly ACTION_MAX_STEPS_EXCEEDED: "ACTION_MAX_STEPS_EXCEEDED";
84
- readonly ACTION_MISSING_PARAM: "ACTION_MISSING_PARAM";
85
- readonly ACTION_INVALID_PARAM: "ACTION_INVALID_PARAM";
86
- readonly EXPRESSION_PARSE_ERROR: "EXPRESSION_PARSE_ERROR";
87
- readonly EXPRESSION_VALIDATION_ERROR: "EXPRESSION_VALIDATION_ERROR";
88
- readonly EXPRESSION_EVALUATION_ERROR: "EXPRESSION_EVALUATION_ERROR";
89
- readonly EXPRESSION_TIMEOUT: "EXPRESSION_TIMEOUT";
90
- readonly EXPRESSION_MAX_STEPS_EXCEEDED: "EXPRESSION_MAX_STEPS_EXCEEDED";
91
- readonly EXPRESSION_UNSAFE_ACCESS: "EXPRESSION_UNSAFE_ACCESS";
92
- readonly EXPRESSION_FUNCTION_NOT_WHITELISTED: "EXPRESSION_FUNCTION_NOT_WHITELISTED";
93
- readonly SERVICE_NOT_FOUND: "SERVICE_NOT_FOUND";
94
- readonly SERVICE_CALL_ERROR: "SERVICE_CALL_ERROR";
95
- readonly BATCH_ERROR: "BATCH_ERROR";
96
- readonly SCHEMA_VALIDATION_ERROR: "SCHEMA_VALIDATION_ERROR";
97
- readonly SCHEMA_INVALID_ACTION: "SCHEMA_INVALID_ACTION";
98
- };
99
- export type ErrorCode = typeof ErrorCodes[keyof typeof ErrorCodes];
100
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,UAAU;IACV,SAAgB,IAAI,EAAE,MAAM,CAAA;IAC5B,YAAY;IACZ,SAAgB,OAAO,EAAE,YAAY,CAAA;gBAGnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,YAAiB;IAa5B;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAkB5B;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CASlC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,UAAU;gBAEvC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAuB,EAC7B,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAM;CAQ7C;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;gBAE3C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAA2B,EACjC,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAM;CAQjD;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,SAAgB,OAAO,EAAE,MAAM,CAAA;IAC/B,SAAgB,aAAa,CAAC,EAAE,KAAK,CAAA;gBAGnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,KAAK,EACrB,OAAO,GAAE,YAAiB;CAO7B;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,UAAU;IACxC,SAAgB,aAAa,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAA;gBAGpE,aAAa,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,EACtD,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB;CAM7B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;CA6Bb,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,OAAO,UAAU,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA"}
package/dist/errors.js DELETED
@@ -1,4 +0,0 @@
1
- class R extends Error{code;context;constructor(E,t,r={}){super(E),this.name="VarioError",this.code=t,this.context=r,Error.captureStackTrace&&Error.captureStackTrace(this,R)}getFriendlyMessage(){const E=[this.message];return this.context.schemaPath&&E.push(`
2
- Schema \u8DEF\u5F84: ${this.context.schemaPath}`),this.context.expression&&E.push(`
3
- \u8868\u8FBE\u5F0F: ${this.context.expression}`),this.context.action&&E.push(`
4
- \u52A8\u4F5C\u7C7B\u578B: ${this.context.action.type}`),E.join("")}toJSON(){return{name:this.name,message:this.message,code:this.code,context:this.context,stack:this.stack}}}class _ extends R{constructor(E,t,r="ACTION_ERROR",e={}){super(t,r,{...e,action:E}),this.name="ActionError"}}class O extends R{constructor(E,t,r="EXPRESSION_ERROR",e={}){super(t,r,{...e,expression:E}),this.name="ExpressionError"}}class I extends R{service;originalError;constructor(E,t,r,e={}){super(t,"SERVICE_ERROR",e),this.name="ServiceError",this.service=E,this.originalError=r}}class S extends R{failedActions;constructor(E,t,r={}){super(t,"BATCH_ERROR",r),this.name="BatchError",this.failedActions=E}}const A={ACTION_UNKNOWN_TYPE:"ACTION_UNKNOWN_TYPE",ACTION_EXECUTION_ERROR:"ACTION_EXECUTION_ERROR",ACTION_ABORTED:"ACTION_ABORTED",ACTION_TIMEOUT:"ACTION_TIMEOUT",ACTION_MAX_STEPS_EXCEEDED:"ACTION_MAX_STEPS_EXCEEDED",ACTION_MISSING_PARAM:"ACTION_MISSING_PARAM",ACTION_INVALID_PARAM:"ACTION_INVALID_PARAM",EXPRESSION_PARSE_ERROR:"EXPRESSION_PARSE_ERROR",EXPRESSION_VALIDATION_ERROR:"EXPRESSION_VALIDATION_ERROR",EXPRESSION_EVALUATION_ERROR:"EXPRESSION_EVALUATION_ERROR",EXPRESSION_TIMEOUT:"EXPRESSION_TIMEOUT",EXPRESSION_MAX_STEPS_EXCEEDED:"EXPRESSION_MAX_STEPS_EXCEEDED",EXPRESSION_UNSAFE_ACCESS:"EXPRESSION_UNSAFE_ACCESS",EXPRESSION_FUNCTION_NOT_WHITELISTED:"EXPRESSION_FUNCTION_NOT_WHITELISTED",SERVICE_NOT_FOUND:"SERVICE_NOT_FOUND",SERVICE_CALL_ERROR:"SERVICE_CALL_ERROR",BATCH_ERROR:"BATCH_ERROR",SCHEMA_VALIDATION_ERROR:"SCHEMA_VALIDATION_ERROR",SCHEMA_INVALID_ACTION:"SCHEMA_INVALID_ACTION"};export{_ as ActionError,S as BatchError,A as ErrorCodes,O as ExpressionError,I as ServiceError,R as VarioError};
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- /**
2
- * 表达式缓存系统
3
- *
4
- * 功能:
5
- * - 每个 RuntimeContext 独立缓存(WeakMap 关联)
6
- * - LRU 淘汰策略
7
- * - 通配符依赖匹配
8
- * - 缓存失效机制
9
- *
10
- * 设计原则:
11
- * - 惰性求值:只在需要时计算
12
- * - 依赖追踪:精确的缓存失效
13
- * - 内存友好:WeakMap + LRU 淘汰
14
- */
15
- import type { RuntimeContext } from '../types.js';
16
- /**
17
- * 获取缓存的表达式结果
18
- *
19
- * @param expr 表达式字符串
20
- * @param ctx 运行时上下文
21
- * @returns 缓存的结果,无缓存或已失效返回 null
22
- */
23
- export declare function getCachedExpression(expr: string, ctx: RuntimeContext): unknown | null;
24
- /**
25
- * 设置表达式缓存
26
- *
27
- * @param expr 表达式字符串
28
- * @param result 求值结果
29
- * @param dependencies 依赖的状态路径
30
- * @param ctx 运行时上下文
31
- */
32
- export declare function setCachedExpression(expr: string, result: unknown, dependencies: string[], ctx: RuntimeContext): void;
33
- /**
34
- * 使缓存失效
35
- *
36
- * 当状态变化时调用,精确删除依赖该状态的缓存
37
- *
38
- * @param changedPath 变化的状态路径
39
- * @param ctx 运行时上下文
40
- */
41
- export declare function invalidateCache(changedPath: string, ctx: RuntimeContext): void;
42
- /**
43
- * 清除指定上下文的所有缓存
44
- */
45
- export declare function clearCache(ctx: RuntimeContext): void;
46
- /**
47
- * 获取缓存统计信息(调试用)
48
- */
49
- export declare function getCacheStats(ctx: RuntimeContext): {
50
- size: number;
51
- expressions: string[];
52
- };
53
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/expression/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAA;AA0ElE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,GAClB,OAAO,GAAG,IAAI,CAgBhB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,YAAY,EAAE,MAAM,EAAE,EACtB,GAAG,EAAE,cAAc,GAClB,IAAI,CAcN;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,cAAc,GAClB,IAAI,CAmBN;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CAGpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,cAAc,GAAG;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,EAAE,CAAA;CACtB,CAMA"}
@@ -1 +0,0 @@
1
- import{matchPath as a}from"../runtime/path.js";const f=new WeakMap,o={maxSize:100,ttl:0};function i(t){let e=f.get(t);return e||(e=new Map,f.set(t,e)),e}function u(t,e){return o.ttl>0&&Date.now()-t.timestamp>o.ttl?!1:t.dependencies.every(n=>{if(n.includes("*")){const s=n.split(".*")[0];return e._get(s)!=null}return e._get(n)!==void 0})}function p(t){let e=null,n=1/0;for(const[s,c]of t.entries())c.timestamp<n&&(n=c.timestamp,e=s);e&&t.delete(e)}function d(t,e){const n=i(e),s=n.get(t);return s?u(s,e)?(s.timestamp=Date.now(),s.result):(n.delete(t),null):null}function C(t,e,n,s){const c=i(s);c.size>=o.maxSize&&p(c),c.set(t,{expr:t,result:e,dependencies:n,timestamp:Date.now()})}function y(t,e){const n=i(e),s=[];for(const[c,l]of n.entries())l.dependencies.some(r=>a(r,t)||a(t,r))&&s.push(c);for(const c of s)n.delete(c)}function x(t){i(t).clear()}function g(t){const e=i(t);return{size:e.size,expressions:Array.from(e.keys())}}export{x as clearCache,g as getCacheStats,d as getCachedExpression,y as invalidateCache,C as setCachedExpression};
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/expression/cache.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * 表达式编译器
3
- *
4
- * 功能:
5
- * - 将简单表达式编译为直接访问函数
6
- * - 提升简单表达式的执行性能
7
- * - 复杂表达式回退到解释执行
8
- */
9
- import type * as ESTree from '@babel/types';
10
- import type { RuntimeContext } from '../types.js';
11
- /**
12
- * 编译后的表达式函数类型
13
- */
14
- export type CompiledExpression = (ctx: RuntimeContext) => unknown;
15
- /**
16
- * 编译简单表达式为直接访问函数
17
- *
18
- * @param ast AST 节点
19
- * @returns 编译后的函数,如果无法编译则返回 null
20
- */
21
- export declare function compileSimpleExpression(ast: ESTree.Node): CompiledExpression | null;
22
- /**
23
- * 获取或编译表达式
24
- *
25
- * @param expr 表达式字符串
26
- * @param ast AST 节点(已解析)
27
- * @returns 编译后的函数,如果无法编译则返回 null
28
- */
29
- export declare function getCompiledExpression(expr: string, ast: ESTree.Node): CompiledExpression | null;
30
- /**
31
- * 清除编译缓存
32
- */
33
- export declare function clearCompiledCache(): void;
34
- //# sourceMappingURL=compiler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/expression/compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAA;AA8DjE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,kBAAkB,GAAG,IAAI,CAkDnF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,CAAC,IAAI,GACf,kBAAkB,GAAG,IAAI,CAW3B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -1 +0,0 @@
1
- const n=new Map,u=["constructor","prototype","__proto__"];function c(e){return e.split(".").some(t=>u.includes(t))}function o(e){if(e.type==="Identifier")return e.name;if(e.type==="MemberExpression"){const r=o(e.object);if(!r)return null;if(e.computed){if(e.property.type==="NumericLiteral"){const t=e.property.value;return`${r}.${String(t)}`}if(e.property.type==="StringLiteral"){const t=e.property.value;return`${r}.${String(t)}`}return null}else return e.property.type==="Identifier"?`${r}.${e.property.name}`:null}return null}function p(e){if(e.type==="NumericLiteral"){const t=e.value;return()=>t}if(e.type==="StringLiteral"){const t=e.value;return()=>t}if(e.type==="BooleanLiteral"){const t=e.value;return()=>t}if(e.type==="NullLiteral")return()=>null;if(e.type==="Identifier"){const t=e.name;return["window","document","global","globalThis","self"].includes(t)?null:l=>l._get(t)}const r=o(e);if(r){const t=["window","document","global","globalThis","self"],i=r.split(".")[0];return t.includes(i)||c(r)?null:l=>l._get(r)}return null}function s(e,r){if(n.has(e))return n.get(e)||null;const t=p(r);return n.set(e,t),t}function a(){n.clear()}export{a as clearCompiledCache,p as compileSimpleExpression,s as getCompiledExpression};
@@ -1 +0,0 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/expression/compiler.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- /**
2
- * 依赖提取算法
3
- *
4
- * 功能:
5
- * - 从 AST 中提取状态依赖
6
- * - 支持通配符依赖(items.*)
7
- * - 保守策略:标记整个对象
8
- */
9
- import type * as ESTree from '@babel/types';
10
- /**
11
- * 从 AST 中提取依赖的状态路径
12
- *
13
- * @param ast AST 节点
14
- * @returns 依赖路径数组(支持通配符)
15
- */
16
- export declare function extractDependencies(ast: ESTree.Node): string[];
17
- //# sourceMappingURL=dependencies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/expression/dependencies.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAE3C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,GAAG,MAAM,EAAE,CAqF9D"}
@@ -1 +0,0 @@
1
- function b(i){const o=new Set;function r(s,a=""){switch(s.type){case"Identifier":{const t=s;p(t.name)||o.add(t.name);break}case"MemberExpression":{const t=s,e=t.object;if(e.type==="Identifier"){const n=e.name;if(t.computed)o.add(`${n}.*`),r(t.property,a);else{const c=t.property.name;o.add(`${n}.${c}`),o.add(`${n}.*`)}}else r(e,a);break}case"OptionalMemberExpression":{const t=s,e=t.object;if(e.type==="Identifier"){const n=e.name;if(t.computed)o.add(`${n}.*`),r(t.property,a);else{const c=t.property.name;o.add(`${n}.${c}`),o.add(`${n}.*`)}}else r(e,a);break}default:for(const t in s){const e=s[t];e!=null&&(Array.isArray(e)?e.forEach(n=>{n&&typeof n=="object"&&"type"in n&&r(n,a)}):e&&typeof e=="object"&&"type"in e&&r(e,a))}}}return r(i),Array.from(o)}function p(i){return new Set(["String","Number","Boolean","BigInt","Symbol","Array","Object","Math","Date","console","JSON","parseInt","parseFloat","isNaN","isFinite"]).has(i)}export{b as extractDependencies};
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/expression/dependencies.ts"],"names":[],"mappings":"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"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 表达式求值入口函数
3
- *
4
- * 整合解析、验证、缓存、求值流程
5
- */
6
- import type { RuntimeContext, ExpressionOptions } from '../types.js';
7
- /**
8
- * 求值表达式(完整流程)
9
- *
10
- * @param expr 表达式字符串
11
- * @param ctx 运行时上下文
12
- * @returns 求值结果(类型无法静态推导,返回 unknown)
13
- *
14
- * 注意:表达式求值结果类型无法在编译时确定,因为:
15
- * 1. 表达式是运行时字符串
16
- * 2. 状态类型是动态的
17
- * 3. 表达式可能返回任意类型
18
- *
19
- * 如果需要类型安全,应在使用结果时进行类型守卫或类型断言
20
- */
21
- export declare function evaluate(expr: string, ctx: RuntimeContext, options?: ExpressionOptions): unknown;
22
- //# sourceMappingURL=evaluate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/expression/evaluate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAYpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CA0DT"}
@@ -1,2 +0,0 @@
1
- import{ExpressionError as c,ErrorCodes as E}from"../errors.js";import{parseExpression as u}from"./parser.js";import{validateAST as g}from"./whitelist.js";import{evaluateExpression as h}from"./evaluator.js";import{extractDependencies as l}from"./dependencies.js";import{getCompiledExpression as w}from"./compiler.js";import{getCachedExpression as O,setCachedExpression as m}from"./cache.js";function D(o,r,p={}){try{const e={...r.$exprOptions,...p},s=O(o,r);if(s!==null)return s;const n=u(o);g(n,{allowGlobals:e.allowGlobals,maxNestingDepth:e.maxNestingDepth});const t=w(o,n);if(t){const a=t(r),f=l(n);return m(o,a,f,r),a}const i=h(n,r,e),d=l(n);return m(o,i,d,r),i}catch(e){if(e instanceof c)throw e;const s=e instanceof Error?e.message:String(e);throw new c(o,`Expression evaluation failed: ${s}`,E.EXPRESSION_EVALUATION_ERROR,{metadata:{originalError:e instanceof Error?e.name:"Unknown",stack:e instanceof Error?e.stack?.split(`
2
- `).slice(0,5):void 0}})}}export{D as evaluate};
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluate.js","sourceRoot":"","sources":["../../src/expression/evaluate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,GAAmB,EACnB,UAA6B,EAAE;IAE/B,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,aAAa,GAAG;YACpB,GAAG,GAAG,CAAC,YAAY;YACnB,GAAG,OAAO;SACX,CAAA;QAED,YAAY;QACZ,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QAC7C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAO,MAAM,CAAA;QACf,CAAC;QAED,aAAa;QACb,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QAEjC,qDAAqD;QACrD,WAAW,CAAC,GAAG,EAAE;YACf,YAAY,EAAE,aAAa,CAAC,YAAY;YACxC,eAAe,EAAE,aAAa,CAAC,eAAe;SAC/C,CAAC,CAAA;QAEF,qBAAqB;QACrB,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACjD,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC5B,YAAY;YACZ,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;YAC7C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;YACpD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,kBAAkB;QAClB,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,aAAa,CAAC,CAAA;QAE1D,aAAa;QACb,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAC7C,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,CAAC,CAAA;QAEpD,OAAO,MAAM,CAAA;IACf,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,IAAI,eAAe,CACvB,IAAI,EACJ,iCAAiC,YAAY,EAAE,EAC/C,UAAU,CAAC,2BAA2B,EACtC;YACE,QAAQ,EAAE;gBACR,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;gBAC9D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;aACjF;SACF,CACF,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 表达式求值器
3
- *
4
- * 功能:
5
- * - 安全求值 AST
6
- * - 支持白名单函数调用
7
- * - 执行步数/时间限制
8
- */
9
- import type * as ESTree from '@babel/types';
10
- import type { RuntimeContext, ExpressionOptions } from '../types.js';
11
- /**
12
- * 安全求值 AST
13
- *
14
- * @param ast AST 节点
15
- * @param ctx 运行时上下文
16
- * @param options 求值选项
17
- * @returns 求值结果(类型无法静态推导)
18
- *
19
- * 注意:表达式求值结果类型无法在编译时确定,返回 unknown
20
- */
21
- export declare function evaluateExpression(ast: ESTree.Node, ctx: RuntimeContext, options?: ExpressionOptions): unknown;
22
- //# sourceMappingURL=evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/expression/evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAuGpE;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,CAAC,IAAI,EAChB,GAAG,EAAE,cAAc,EACnB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAyiBT"}
@@ -1 +0,0 @@
1
- import{ExpressionError as o,ErrorCodes as i}from"../errors.js";import{isSafePropertyAccess as U}from"../runtime/sandbox.js";const A=new Set(["String","Number","Boolean","BigInt","Symbol","Array","Object","Math","Date"]),P=new Set(["Array.isArray","Object.is","Number.isFinite","Number.isInteger","Number.isNaN","Number.isSafeInteger","Math.abs","Math.round","Math.floor","Math.ceil","Math.random","Math.max","Math.min","Date.now"]),I=new Set(["slice","concat","filter","map","flat","flatMap","toReversed","toSorted","toSpliced","with","indexOf","lastIndexOf","includes","find","findIndex","findLast","findLastIndex","every","some","at","join","toString","toLocaleString","reverse","sort"]),j=new Set(["constructor","prototype","__proto__"]);function _(u){return typeof u=="string"&&j.has(u)}const b={$truncate:(u,E)=>{if(typeof u!="string")return u;const y=typeof E=="number"?E:0;return u.length>y?u.slice(0,y)+"...":u},$format:(u,E)=>(typeof u=="number"?new Date(u):u).toISOString()};function v(u,E,y={}){const w={...E.$exprOptions,...y},p=w.allowGlobals===!0,O=w.maxSteps??1e3,N=w.timeout??100;let g=0;const R=Date.now();function T(r){if(p)return r==="globalThis"?globalThis:r==="window"&&typeof window<"u"?window:r==="document"&&typeof document<"u"?document:r==="global"&&typeof global<"u"?global:r==="self"&&typeof self<"u"?self:globalThis[r]}function h(r){return["window","document","global","globalThis","self"].includes(r)}function x(){if(g++,g>O)throw new o(JSON.stringify(u),`Expression evaluation exceeded max steps (${O})`,i.EXPRESSION_MAX_STEPS_EXCEEDED,{metadata:{maxSteps:O,currentSteps:g}});if(Date.now()-R>N)throw new o(JSON.stringify(u),`Expression evaluation exceeded timeout (${N}ms)`,i.EXPRESSION_TIMEOUT,{metadata:{timeout:N,elapsedTime:Date.now()-R}})}function s(r){switch(x(),r.type){case"NumericLiteral":case"StringLiteral":case"BooleanLiteral":case"BigIntLiteral":case"DecimalLiteral":case"RegExpLiteral":return r.value;case"NullLiteral":return null;case"Literal":{const n=r;return"value"in n&&n.value!==void 0?n.value:n.type==="NullLiteral"?null:n.value??void 0}case"Identifier":{const n=r.name;if(h(n)&&!p)throw new o(n,`Access to global "${n}" is not allowed in expressions`,i.EXPRESSION_UNSAFE_ACCESS);if(n in E&&!h(n))return E[n];if(p){const t=T(n);if(t!==void 0)return t}return A.has(n)?globalThis[n]:void 0}case"MemberExpression":{const n=r,t=s(n.object);if(t==null)return;if(!p&&(t===globalThis||typeof window<"u"&&t===window||typeof global<"u"&&t===global||typeof self<"u"&&t===self))throw new o(JSON.stringify(r),"Access to global object is not allowed in expressions",i.EXPRESSION_UNSAFE_ACCESS);let e;if(n.computed?e=s(n.property):e=n.property.name,!p&&_(e))throw new o(String(e),`Access to "${e}" is not allowed in expressions`,i.EXPRESSION_UNSAFE_ACCESS);return t[e]}case"OptionalMemberExpression":{const n=r,t=s(n.object);if(t==null)return;if(!p&&(t===globalThis||typeof window<"u"&&t===window||typeof global<"u"&&t===global||typeof self<"u"&&t===self))throw new o(JSON.stringify(r),"Access to global object is not allowed in expressions",i.EXPRESSION_UNSAFE_ACCESS);let e;if(n.computed?e=s(n.property):e=n.property.name,!p&&_(e))throw new o(String(e),`Access to "${e}" is not allowed in expressions`,i.EXPRESSION_UNSAFE_ACCESS);return t?.[e]}case"BinaryExpression":{const n=r,t=s(n.left),e=s(n.right),c=n.operator;switch(c){case"+":return t+e;case"-":return t-e;case"*":return t*e;case"/":return t/e;case"%":return t%e;case"**":return t**e;case"==":return t==e;case"!=":return t!=e;case"===":return t===e;case"!==":return t!==e;case"<":return t<e;case"<=":return t<=e;case">":return t>e;case">=":return t>=e;case"<<":return t<<e;case">>":return t>>e;case">>>":return t>>>e;case"&":return t&e;case"|":return t|e;case"^":return t^e;case"in":return t in e;case"instanceof":{if(typeof e!="function"&&typeof e!="object")throw new o(JSON.stringify(r),"Right-hand side of instanceof must be a constructor",i.EXPRESSION_EVALUATION_ERROR);return t instanceof e}default:throw new o(JSON.stringify(r),`Unsupported binary operator: ${c}`,i.EXPRESSION_EVALUATION_ERROR)}}case"LogicalExpression":{const n=r,t=s(n.left),e=n.operator;if(e==="&&")return t&&s(n.right);if(e==="||")return t||s(n.right);if(e==="??")return t??s(n.right);throw new o(JSON.stringify(r),`Unsupported logical operator: ${e}`,i.EXPRESSION_EVALUATION_ERROR)}case"UnaryExpression":{const n=r,t=s(n.argument),e=n.operator;switch(e){case"+":return+t;case"-":return-t;case"!":return!t;case"~":return~t;case"typeof":return typeof t;case"void":return;case"delete":throw new o(JSON.stringify(r),"delete operator is not allowed",i.EXPRESSION_EVALUATION_ERROR);default:throw new o(JSON.stringify(r),`Unsupported unary operator: ${e}`,i.EXPRESSION_EVALUATION_ERROR)}}case"ConditionalExpression":{const n=r,t=s(n.test);return s(t?n.consequent:n.alternate)}case"CallExpression":{const n=r,t=n.callee;let e,c,S=null;if(t.type==="Identifier"){if(e=t.name,!U(e,E,{allowGlobals:p}))throw new o(e,`Access to global "${e}" is not allowed in expressions`,"UNSAFE_ACCESS");c=E[e]??globalThis[e],S=null}else if(t.type==="MemberExpression"){const l=t,a=s(l.object);if(a==null)throw new o(JSON.stringify(r),`Cannot call method on ${a===null?"null":"undefined"}`,i.EXPRESSION_EVALUATION_ERROR);if(!p&&(a===globalThis||typeof window<"u"&&a===window||typeof global<"u"&&a===global||typeof self<"u"&&a===self))throw new o(JSON.stringify(r),"Access to global object is not allowed in expressions",i.EXPRESSION_UNSAFE_ACCESS);if(Array.isArray(a)&&!l.computed&&l.property.type==="Identifier"){const f=l.property.name;I.has(f)?(c=a[f],e=`Array.${f}`,S=a):(e=`${l.object.type==="Identifier"?l.object.name:String(a)}.${f}`,c=a?.[f],S=a)}else{let f="";if(l.object.type==="Identifier"?f=l.object.name:f=String(a),l.computed){const d=s(l.property);e=`${f}[${String(d)}]`,c=a?.[d],S=a}else{const d=l.property.name;e=`${f}.${d}`,c=a?.[d],S=a}}}else throw new o(JSON.stringify(r),"Invalid function call: only Identifier and MemberExpression are allowed",i.EXPRESSION_EVALUATION_ERROR);const L=e.startsWith("Array.")&&I.has(e.split(".")[1])||P.has(e)||A.has(e.split(".")[0])||b[e]!==void 0;if(!p&&!L)throw new o(e,`Function "${e}" is not in whitelist`,i.EXPRESSION_FUNCTION_NOT_WHITELISTED);const m=n.arguments.map(l=>{if(l.type==="SpreadElement")throw new o(JSON.stringify(r),"Spread operator is not allowed",i.EXPRESSION_EVALUATION_ERROR);return s(l)});if(b[e])return b[e](...m);if(typeof c=="function")try{return S!==null?c.apply(S,m):c(...m)}catch(l){const a=l instanceof Error?l.message:String(l);throw new o(e,`Error calling "${e}": ${a}`,i.EXPRESSION_EVALUATION_ERROR)}throw new o(e,`"${e}" is not a function${c===void 0?" (undefined)":c===null?" (null)":""}`,i.EXPRESSION_EVALUATION_ERROR)}case"ArrayExpression":return r.elements.map(t=>{if(t==null)return null;if(t.type==="SpreadElement")throw new o(JSON.stringify(r),"Spread operator is not allowed",i.EXPRESSION_EVALUATION_ERROR);return s(t)});case"ObjectExpression":{const n=r,t={};for(const e of n.properties){if(e.type==="ObjectMethod"||e.type==="SpreadElement")throw new o(JSON.stringify(r),"Object methods and spread are not allowed",i.EXPRESSION_EVALUATION_ERROR);const c=e.key.type==="Identifier"?e.key.name:String(s(e.key));t[c]=s(e.value)}return t}case"TemplateLiteral":{const n=r;let t="";for(let e=0;e<n.quasis.length;e++)t+=n.quasis[e].value.cooked,e<n.expressions.length&&(t+=String(s(n.expressions[e])));return t}default:throw new o(JSON.stringify(r),`Unsupported node type: ${r.type}`,i.EXPRESSION_EVALUATION_ERROR)}}return s(u)}export{v as evaluateExpression};
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/expression/evaluator.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Expression 模块导出
3
- */
4
- export { parseExpression } from './parser.js';
5
- export { validateAST } from './whitelist.js';
6
- export { evaluateExpression } from './evaluator.js';
7
- export { evaluate } from './evaluate.js';
8
- export { extractDependencies } from './dependencies.js';
9
- export { getCachedExpression, setCachedExpression, invalidateCache, clearCache, getCacheStats } from './cache.js';
10
- export { extractExpression, normalizeExpression, isExpressionFormat, extractExpressionsRecursively } from './utils.js';
11
- export { compileSimpleExpression, getCompiledExpression, clearCompiledCache, type CompiledExpression } from './compiler.js';
12
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/expression/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAA"}
@@ -1 +0,0 @@
1
- import{parseExpression as o}from"./parser.js";import{validateAST as t}from"./whitelist.js";import{evaluateExpression as a}from"./evaluator.js";import{evaluate as x}from"./evaluate.js";import{extractDependencies as m}from"./dependencies.js";import{getCachedExpression as l,setCachedExpression as E,invalidateCache as f,clearCache as C,getCacheStats as d}from"./cache.js";import{extractExpression as v,normalizeExpression as g,isExpressionFormat as u,extractExpressionsRecursively as S}from"./utils.js";import{compileSimpleExpression as z,getCompiledExpression as A,clearCompiledCache as D}from"./compiler.js";export{C as clearCache,D as clearCompiledCache,z as compileSimpleExpression,x as evaluate,a as evaluateExpression,m as extractDependencies,v as extractExpression,S as extractExpressionsRecursively,d as getCacheStats,l as getCachedExpression,A as getCompiledExpression,f as invalidateCache,u as isExpressionFormat,g as normalizeExpression,o as parseExpression,E as setCachedExpression,t as validateAST};
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/expression/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACvD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,6BAA6B,EAC9B,MAAM,YAAY,CAAA;AACnB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAEnB,MAAM,eAAe,CAAA"}
@@ -1,15 +0,0 @@
1
- /**
2
- * 表达式解析器
3
- *
4
- * 使用 @babel/parser 解析 JavaScript 表达式为 AST
5
- * 移除 models. 前缀支持
6
- */
7
- import type * as ESTree from '@babel/types';
8
- /**
9
- * 解析表达式为 AST
10
- *
11
- * @param expr 表达式字符串(如 "user.name + 1")
12
- * @returns ESTree.Node AST 节点
13
- */
14
- export declare function parseExpression(expr: string): ESTree.Node;
15
- //# sourceMappingURL=parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/expression/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAG3C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAoCzD"}
@@ -1 +0,0 @@
1
- import{parse as n}from"@babel/parser";import{ExpressionError as t,ErrorCodes as s}from"../errors.js";function E(e){try{const o=n(`(${e})`,{plugins:["typescript"],sourceType:"module",allowReturnOutsideFunction:!0}).program.body[0];if(o?.type==="ExpressionStatement")return o.expression;throw new t(e,`Failed to parse expression: ${e}`,s.EXPRESSION_PARSE_ERROR)}catch(r){if(r instanceof t)throw r;const o=r instanceof Error?r.message:String(r);throw new t(e,`Expression parse error: ${o}`,s.EXPRESSION_PARSE_ERROR,{metadata:{originalError:r instanceof Error?r.name:"Unknown"}})}}export{E as parseExpression};
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/expression/parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAErC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE;YAC7B,OAAO,EAAE,CAAC,YAAY,CAAC;YACvB,UAAU,EAAE,QAAQ;YACpB,0BAA0B,EAAE,IAAI;SACjC,CAAC,CAAA;QAEF,UAAU;QACV,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACrC,IAAI,SAAS,EAAE,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC9C,OAAO,SAAS,CAAC,UAAU,CAAA;QAC7B,CAAC;QAED,MAAM,IAAI,eAAe,CACvB,IAAI,EACJ,+BAA+B,IAAI,EAAE,EACrC,UAAU,CAAC,sBAAsB,CAClC,CAAA;IACH,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;YACrC,MAAM,KAAK,CAAA;QACb,CAAC;QACD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3E,MAAM,IAAI,eAAe,CACvB,IAAI,EACJ,2BAA2B,YAAY,EAAE,EACzC,UAAU,CAAC,sBAAsB,EACjC;YACE,QAAQ,EAAE;gBACR,aAAa,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;aAC/D;SACF,CACF,CAAA;IACH,CAAC;AACH,CAAC"}
@@ -1,46 +0,0 @@
1
- /**
2
- * 表达式工具函数
3
- *
4
- * 提供表达式解析、格式化的通用工具
5
- * 支持 {{ }} 格式的表达式提取和规范化
6
- */
7
- /**
8
- * 提取表达式字符串
9
- * 支持 {{ expression }} 格式,自动去掉包装
10
- *
11
- * @param expr 表达式字符串,可能是 "{{ showContent }}" 或 "showContent"
12
- * @returns 去掉 {{ }} 包装后的表达式字符串
13
- *
14
- * @example
15
- * ```typescript
16
- * extractExpression("{{ showContent }}") // => "showContent"
17
- * extractExpression("showContent") // => "showContent"
18
- * extractExpression("{{ userRole === 'admin' }}") // => "userRole === 'admin'"
19
- * ```
20
- */
21
- export declare function extractExpression(expr: string): string;
22
- /**
23
- * 规范化表达式字符串
24
- * 确保表达式格式统一,便于后续处理
25
- *
26
- * @param expr 表达式字符串
27
- * @returns 规范化后的表达式字符串(去掉 {{ }} 包装)
28
- */
29
- export declare function normalizeExpression(expr: string): string;
30
- /**
31
- * 检查是否为表达式格式
32
- *
33
- * @param value 要检查的值
34
- * @returns 如果是 {{ }} 格式返回 true
35
- */
36
- export declare function isExpressionFormat(value: any): boolean;
37
- /**
38
- * 批量提取表达式
39
- * 从对象或数组中提取所有表达式字符串
40
- *
41
- * @param value 要处理的值(对象、数组或字符串)
42
- * @param extractor 提取函数,默认使用 extractExpression
43
- * @returns 处理后的值
44
- */
45
- export declare function extractExpressionsRecursively(value: any, extractor?: (expr: string) => string): any;
46
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/expression/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWtD;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAEtD;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,GAAG,EACV,SAAS,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAA0B,GACtD,GAAG,CAsBL"}
@@ -1 +0,0 @@
1
- function i(t){return typeof t!="string"?String(t):t.startsWith("{{")&&t.endsWith("}}")?t.slice(2,-2).trim():t.trim()}function f(t){return i(t)}function c(t){return typeof t=="string"&&t.startsWith("{{")&&t.endsWith("}}")}function s(t,n=i){if(typeof t=="string")return n(t);if(Array.isArray(t))return t.map(r=>s(r,n));if(t&&typeof t=="object"){const r={};for(const[o,e]of Object.entries(t))r[o]=s(e,n);return r}return t}export{i as extractExpression,s as extractExpressionsRecursively,c as isExpressionFormat,f as normalizeExpression};
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/expression/utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACjC,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,EAAE,CAAA;AACpB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAU;IAC3C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AACpF,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,6BAA6B,CAC3C,KAAU,EACV,YAAsC,iBAAiB;IAEvD,eAAe;IACf,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACzB,CAAC;IAED,cAAc;IACd,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,6BAA6B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAA;IAC1E,CAAC;IAED,eAAe;IACf,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAwB,EAAE,CAAA;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,6BAA6B,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAC7D,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,YAAY;IACZ,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,24 +0,0 @@
1
- /**
2
- * AST 白名单验证器
3
- *
4
- * 功能:
5
- * - 深度遍历 AST,检查每个节点
6
- * - 只允许安全的语法节点
7
- * - 禁止危险的语法(赋值、函数、this 等)
8
- * - 检查函数调用中的函数名是否在白名单中
9
- */
10
- import type * as ESTree from '@babel/types';
11
- /**
12
- * 验证 AST 是否通过白名单检查
13
- *
14
- * @param ast AST 节点
15
- * @param options 验证选项
16
- * @param options.allowGlobals 是否允许全局函数调用(跳过白名单检查)
17
- * @param options.maxNestingDepth 最大嵌套深度(默认 50)
18
- * @throws ExpressionError 如果发现禁止的节点
19
- */
20
- export declare function validateAST(ast: ESTree.Node, options?: {
21
- allowGlobals?: boolean;
22
- maxNestingDepth?: number;
23
- }): void;
24
- //# sourceMappingURL=whitelist.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"whitelist.d.ts","sourceRoot":"","sources":["../../src/expression/whitelist.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,cAAc,CAAA;AAwF3C;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAoHlH"}