@manifesto-ai/core 0.3.0 → 1.0.0

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 (259) hide show
  1. package/README.md +129 -499
  2. package/dist/core/apply.d.ts +16 -0
  3. package/dist/core/apply.d.ts.map +1 -0
  4. package/dist/core/apply.js +52 -0
  5. package/dist/core/apply.js.map +1 -0
  6. package/dist/core/compute.d.ts +17 -0
  7. package/dist/core/compute.d.ts.map +1 -0
  8. package/dist/core/compute.js +197 -0
  9. package/dist/core/compute.js.map +1 -0
  10. package/dist/core/compute.test.d.ts +2 -0
  11. package/dist/core/compute.test.d.ts.map +1 -0
  12. package/dist/core/compute.test.js +400 -0
  13. package/dist/core/compute.test.js.map +1 -0
  14. package/dist/core/explain.d.ts +14 -0
  15. package/dist/core/explain.d.ts.map +1 -0
  16. package/dist/core/explain.js +74 -0
  17. package/dist/core/explain.js.map +1 -0
  18. package/dist/core/index.d.ts +5 -0
  19. package/dist/core/index.d.ts.map +1 -0
  20. package/dist/core/index.js +5 -0
  21. package/dist/core/index.js.map +1 -0
  22. package/dist/core/validate.d.ts +15 -0
  23. package/dist/core/validate.d.ts.map +1 -0
  24. package/dist/core/validate.js +143 -0
  25. package/dist/core/validate.js.map +1 -0
  26. package/dist/core/validate.test.d.ts +2 -0
  27. package/dist/core/validate.test.d.ts.map +1 -0
  28. package/dist/core/validate.test.js +450 -0
  29. package/dist/core/validate.test.js.map +1 -0
  30. package/dist/errors.d.ts +30 -0
  31. package/dist/errors.d.ts.map +1 -0
  32. package/dist/errors.js +51 -0
  33. package/dist/errors.js.map +1 -0
  34. package/dist/evaluator/computed.d.ts +14 -0
  35. package/dist/evaluator/computed.d.ts.map +1 -0
  36. package/dist/evaluator/computed.js +57 -0
  37. package/dist/evaluator/computed.js.map +1 -0
  38. package/dist/evaluator/context.d.ts +46 -0
  39. package/dist/evaluator/context.d.ts.map +1 -0
  40. package/dist/evaluator/context.js +35 -0
  41. package/dist/evaluator/context.js.map +1 -0
  42. package/dist/evaluator/dag.d.ts +30 -0
  43. package/dist/evaluator/dag.d.ts.map +1 -0
  44. package/dist/evaluator/dag.js +121 -0
  45. package/dist/evaluator/dag.js.map +1 -0
  46. package/dist/evaluator/expr.d.ts +11 -0
  47. package/dist/evaluator/expr.d.ts.map +1 -0
  48. package/dist/evaluator/expr.js +498 -0
  49. package/dist/evaluator/expr.js.map +1 -0
  50. package/dist/evaluator/expr.test.d.ts +2 -0
  51. package/dist/evaluator/expr.test.d.ts.map +1 -0
  52. package/dist/evaluator/expr.test.js +426 -0
  53. package/dist/evaluator/expr.test.js.map +1 -0
  54. package/dist/evaluator/flow.d.ts +35 -0
  55. package/dist/evaluator/flow.d.ts.map +1 -0
  56. package/dist/evaluator/flow.js +234 -0
  57. package/dist/evaluator/flow.js.map +1 -0
  58. package/dist/evaluator/flow.test.d.ts +2 -0
  59. package/dist/evaluator/flow.test.d.ts.map +1 -0
  60. package/dist/evaluator/flow.test.js +446 -0
  61. package/dist/evaluator/flow.test.js.map +1 -0
  62. package/dist/evaluator/index.d.ts +6 -0
  63. package/dist/evaluator/index.d.ts.map +1 -0
  64. package/dist/evaluator/index.js +6 -0
  65. package/dist/evaluator/index.js.map +1 -0
  66. package/dist/factories.d.ts +20 -0
  67. package/dist/factories.d.ts.map +1 -0
  68. package/dist/factories.js +43 -0
  69. package/dist/factories.js.map +1 -0
  70. package/dist/index.d.ts +46 -11
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +30 -45
  73. package/dist/index.js.map +1 -1
  74. package/dist/index.test.d.ts +2 -0
  75. package/dist/index.test.d.ts.map +1 -0
  76. package/dist/index.test.js +13 -0
  77. package/dist/index.test.js.map +1 -0
  78. package/dist/schema/action.d.ts +14 -0
  79. package/dist/schema/action.d.ts.map +1 -0
  80. package/dist/schema/action.js +30 -0
  81. package/dist/schema/action.js.map +1 -0
  82. package/dist/schema/common.d.ts +37 -0
  83. package/dist/schema/common.d.ts.map +1 -0
  84. package/dist/schema/common.js +20 -0
  85. package/dist/schema/common.js.map +1 -0
  86. package/dist/schema/computed.d.ts +23 -0
  87. package/dist/schema/computed.d.ts.map +1 -0
  88. package/dist/schema/computed.js +34 -0
  89. package/dist/schema/computed.js.map +1 -0
  90. package/dist/schema/domain.d.ts +46 -0
  91. package/dist/schema/domain.d.ts.map +1 -0
  92. package/dist/schema/domain.js +54 -0
  93. package/dist/schema/domain.js.map +1 -0
  94. package/dist/schema/expr.d.ts +260 -0
  95. package/dist/schema/expr.d.ts.map +1 -0
  96. package/dist/schema/expr.js +247 -0
  97. package/dist/schema/expr.js.map +1 -0
  98. package/dist/schema/field.d.ts +48 -0
  99. package/dist/schema/field.d.ts.map +1 -0
  100. package/dist/schema/field.js +31 -0
  101. package/dist/schema/field.js.map +1 -0
  102. package/dist/schema/flow.d.ts +103 -0
  103. package/dist/schema/flow.d.ts.map +1 -0
  104. package/dist/schema/flow.js +82 -0
  105. package/dist/schema/flow.js.map +1 -0
  106. package/dist/schema/index.d.ts +11 -2
  107. package/dist/schema/index.d.ts.map +1 -1
  108. package/dist/schema/index.js +22 -2
  109. package/dist/schema/index.js.map +1 -1
  110. package/dist/schema/patch.d.ts +59 -0
  111. package/dist/schema/patch.d.ts.map +1 -0
  112. package/dist/schema/patch.js +60 -0
  113. package/dist/schema/patch.js.map +1 -0
  114. package/dist/schema/result.d.ts +130 -0
  115. package/dist/schema/result.d.ts.map +1 -0
  116. package/dist/schema/result.js +90 -0
  117. package/dist/schema/result.js.map +1 -0
  118. package/dist/schema/snapshot.d.ts +151 -0
  119. package/dist/schema/snapshot.d.ts.map +1 -0
  120. package/dist/schema/snapshot.js +156 -0
  121. package/dist/schema/snapshot.js.map +1 -0
  122. package/dist/schema/trace.d.ts +87 -0
  123. package/dist/schema/trace.d.ts.map +1 -0
  124. package/dist/schema/trace.js +79 -0
  125. package/dist/schema/trace.js.map +1 -0
  126. package/dist/utils/canonical.d.ts +29 -0
  127. package/dist/utils/canonical.d.ts.map +1 -0
  128. package/dist/utils/canonical.js +56 -0
  129. package/dist/utils/canonical.js.map +1 -0
  130. package/dist/utils/canonical.test.d.ts +2 -0
  131. package/dist/utils/canonical.test.d.ts.map +1 -0
  132. package/dist/utils/canonical.test.js +153 -0
  133. package/dist/utils/canonical.test.js.map +1 -0
  134. package/dist/utils/hash.d.ts +20 -0
  135. package/dist/utils/hash.d.ts.map +1 -0
  136. package/dist/utils/hash.js +38 -0
  137. package/dist/utils/hash.js.map +1 -0
  138. package/dist/utils/hash.test.d.ts +2 -0
  139. package/dist/utils/hash.test.d.ts.map +1 -0
  140. package/dist/utils/hash.test.js +146 -0
  141. package/dist/utils/hash.test.js.map +1 -0
  142. package/dist/utils/index.d.ts +4 -0
  143. package/dist/utils/index.d.ts.map +1 -0
  144. package/dist/utils/index.js +4 -0
  145. package/dist/utils/index.js.map +1 -0
  146. package/dist/utils/path.d.ts +40 -0
  147. package/dist/utils/path.d.ts.map +1 -0
  148. package/dist/utils/path.js +132 -0
  149. package/dist/utils/path.js.map +1 -0
  150. package/dist/utils/path.test.d.ts +2 -0
  151. package/dist/utils/path.test.d.ts.map +1 -0
  152. package/dist/utils/path.test.js +191 -0
  153. package/dist/utils/path.test.js.map +1 -0
  154. package/package.json +25 -39
  155. package/LICENSE +0 -21
  156. package/dist/dag/graph.d.ts +0 -62
  157. package/dist/dag/graph.d.ts.map +0 -1
  158. package/dist/dag/graph.js +0 -244
  159. package/dist/dag/graph.js.map +0 -1
  160. package/dist/dag/index.d.ts +0 -4
  161. package/dist/dag/index.d.ts.map +0 -1
  162. package/dist/dag/index.js +0 -4
  163. package/dist/dag/index.js.map +0 -1
  164. package/dist/dag/propagation.d.ts +0 -58
  165. package/dist/dag/propagation.d.ts.map +0 -1
  166. package/dist/dag/propagation.js +0 -224
  167. package/dist/dag/propagation.js.map +0 -1
  168. package/dist/dag/topological.d.ts +0 -33
  169. package/dist/dag/topological.d.ts.map +0 -1
  170. package/dist/dag/topological.js +0 -173
  171. package/dist/dag/topological.js.map +0 -1
  172. package/dist/domain/define.d.ts +0 -82
  173. package/dist/domain/define.d.ts.map +0 -1
  174. package/dist/domain/define.js +0 -105
  175. package/dist/domain/define.js.map +0 -1
  176. package/dist/domain/index.d.ts +0 -4
  177. package/dist/domain/index.d.ts.map +0 -1
  178. package/dist/domain/index.js +0 -4
  179. package/dist/domain/index.js.map +0 -1
  180. package/dist/domain/types.d.ts +0 -203
  181. package/dist/domain/types.d.ts.map +0 -1
  182. package/dist/domain/types.js +0 -2
  183. package/dist/domain/types.js.map +0 -1
  184. package/dist/domain/validate.d.ts +0 -17
  185. package/dist/domain/validate.d.ts.map +0 -1
  186. package/dist/domain/validate.js +0 -204
  187. package/dist/domain/validate.js.map +0 -1
  188. package/dist/effect/index.d.ts +0 -4
  189. package/dist/effect/index.d.ts.map +0 -1
  190. package/dist/effect/index.js +0 -4
  191. package/dist/effect/index.js.map +0 -1
  192. package/dist/effect/result.d.ts +0 -100
  193. package/dist/effect/result.d.ts.map +0 -1
  194. package/dist/effect/result.js +0 -163
  195. package/dist/effect/result.js.map +0 -1
  196. package/dist/effect/runner.d.ts +0 -98
  197. package/dist/effect/runner.d.ts.map +0 -1
  198. package/dist/effect/runner.js +0 -321
  199. package/dist/effect/runner.js.map +0 -1
  200. package/dist/effect/types.d.ts +0 -169
  201. package/dist/effect/types.d.ts.map +0 -1
  202. package/dist/effect/types.js +0 -28
  203. package/dist/effect/types.js.map +0 -1
  204. package/dist/expression/analyzer.d.ts +0 -42
  205. package/dist/expression/analyzer.d.ts.map +0 -1
  206. package/dist/expression/analyzer.js +0 -166
  207. package/dist/expression/analyzer.js.map +0 -1
  208. package/dist/expression/evaluator.d.ts +0 -16
  209. package/dist/expression/evaluator.d.ts.map +0 -1
  210. package/dist/expression/evaluator.js +0 -382
  211. package/dist/expression/evaluator.js.map +0 -1
  212. package/dist/expression/index.d.ts +0 -5
  213. package/dist/expression/index.d.ts.map +0 -1
  214. package/dist/expression/index.js +0 -5
  215. package/dist/expression/index.js.map +0 -1
  216. package/dist/expression/parser.d.ts +0 -37
  217. package/dist/expression/parser.d.ts.map +0 -1
  218. package/dist/expression/parser.js +0 -201
  219. package/dist/expression/parser.js.map +0 -1
  220. package/dist/expression/types.d.ts +0 -123
  221. package/dist/expression/types.d.ts.map +0 -1
  222. package/dist/expression/types.js +0 -10
  223. package/dist/expression/types.js.map +0 -1
  224. package/dist/policy/field-policy.d.ts +0 -63
  225. package/dist/policy/field-policy.d.ts.map +0 -1
  226. package/dist/policy/field-policy.js +0 -138
  227. package/dist/policy/field-policy.js.map +0 -1
  228. package/dist/policy/index.d.ts +0 -3
  229. package/dist/policy/index.d.ts.map +0 -1
  230. package/dist/policy/index.js +0 -3
  231. package/dist/policy/index.js.map +0 -1
  232. package/dist/policy/precondition.d.ts +0 -58
  233. package/dist/policy/precondition.d.ts.map +0 -1
  234. package/dist/policy/precondition.js +0 -115
  235. package/dist/policy/precondition.js.map +0 -1
  236. package/dist/runtime/index.d.ts +0 -4
  237. package/dist/runtime/index.d.ts.map +0 -1
  238. package/dist/runtime/index.js +0 -4
  239. package/dist/runtime/index.js.map +0 -1
  240. package/dist/runtime/runtime.d.ts +0 -94
  241. package/dist/runtime/runtime.d.ts.map +0 -1
  242. package/dist/runtime/runtime.js +0 -294
  243. package/dist/runtime/runtime.js.map +0 -1
  244. package/dist/runtime/snapshot.d.ts +0 -39
  245. package/dist/runtime/snapshot.d.ts.map +0 -1
  246. package/dist/runtime/snapshot.js +0 -264
  247. package/dist/runtime/snapshot.js.map +0 -1
  248. package/dist/runtime/subscription.d.ts +0 -82
  249. package/dist/runtime/subscription.d.ts.map +0 -1
  250. package/dist/runtime/subscription.js +0 -222
  251. package/dist/runtime/subscription.js.map +0 -1
  252. package/dist/schema/integration.d.ts +0 -89
  253. package/dist/schema/integration.d.ts.map +0 -1
  254. package/dist/schema/integration.js +0 -171
  255. package/dist/schema/integration.js.map +0 -1
  256. package/dist/schema/validation.d.ts +0 -51
  257. package/dist/schema/validation.d.ts.map +0 -1
  258. package/dist/schema/validation.js +0 -212
  259. package/dist/schema/validation.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/effect/runner.ts"],"names":[],"mappings":"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"}
@@ -1,169 +0,0 @@
1
- import type { Expression } from '../expression/types.js';
2
- import type { SemanticPath } from '../domain/types.js';
3
- /**
4
- * Effect: 부수효과를 캡슐화하는 타입
5
- *
6
- * Monadic Design Principles:
7
- * - 실행 전까지는 "설명"일 뿐 (데이터로서의 Effect)
8
- * - 합성 가능 (Sequence, Parallel, Conditional)
9
- * - 에러 처리 일관됨 (Result<T, E>)
10
- * - AI가 "무슨 일이 일어날지" 이해 가능
11
- */
12
- export type Effect = SetValueEffect | SetStateEffect | ApiCallEffect | DelayEffect | NavigateEffect | SequenceEffect | ParallelEffect | ConditionalEffect | CatchEffect | EmitEventEffect;
13
- /**
14
- * SetValueEffect: 데이터 값 설정
15
- */
16
- export type SetValueEffect = {
17
- _tag: 'SetValue';
18
- /** 대상 경로 */
19
- path: SemanticPath;
20
- /** 설정할 값 (Expression으로 계산 가능) */
21
- value: Expression;
22
- /** 설명 */
23
- description: string;
24
- };
25
- /**
26
- * SetStateEffect: 상태 값 설정
27
- */
28
- export type SetStateEffect = {
29
- _tag: 'SetState';
30
- /** 대상 경로 */
31
- path: SemanticPath;
32
- /** 설정할 값 */
33
- value: Expression;
34
- /** 설명 */
35
- description: string;
36
- };
37
- /**
38
- * ApiCallEffect: API 호출
39
- */
40
- export type ApiCallEffect = {
41
- _tag: 'ApiCall';
42
- /** 엔드포인트 (Expression 가능) */
43
- endpoint: string | Expression;
44
- /** HTTP 메서드 */
45
- method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
46
- /** 요청 본문 */
47
- body?: Record<string, Expression>;
48
- /** 요청 헤더 */
49
- headers?: Record<string, string>;
50
- /** 쿼리 파라미터 */
51
- query?: Record<string, Expression>;
52
- /** 타임아웃 (ms) */
53
- timeout?: number;
54
- /** 설명 */
55
- description: string;
56
- };
57
- /**
58
- * NavigateEffect: 페이지 이동
59
- */
60
- export type NavigateEffect = {
61
- _tag: 'Navigate';
62
- /** 이동할 경로 (Expression 가능) */
63
- to: string | Expression;
64
- /** 히스토리 모드 */
65
- mode?: 'push' | 'replace';
66
- /** 설명 */
67
- description: string;
68
- };
69
- /**
70
- * DelayEffect: 대기
71
- */
72
- export type DelayEffect = {
73
- _tag: 'Delay';
74
- /** 대기 시간 (ms) */
75
- ms: number;
76
- /** 설명 */
77
- description: string;
78
- };
79
- /**
80
- * SequenceEffect: 순차 실행
81
- */
82
- export type SequenceEffect = {
83
- _tag: 'Sequence';
84
- /** 순차 실행할 Effect들 */
85
- effects: Effect[];
86
- /** 설명 */
87
- description: string;
88
- };
89
- /**
90
- * ParallelEffect: 병렬 실행
91
- */
92
- export type ParallelEffect = {
93
- _tag: 'Parallel';
94
- /** 병렬 실행할 Effect들 */
95
- effects: Effect[];
96
- /** 모두 완료 대기 여부 */
97
- waitAll?: boolean;
98
- /** 설명 */
99
- description: string;
100
- };
101
- /**
102
- * ConditionalEffect: 조건부 실행
103
- */
104
- export type ConditionalEffect = {
105
- _tag: 'Conditional';
106
- /** 조건 */
107
- condition: Expression;
108
- /** 참일 때 실행 */
109
- then: Effect;
110
- /** 거짓일 때 실행 (선택) */
111
- else?: Effect;
112
- /** 설명 */
113
- description: string;
114
- };
115
- /**
116
- * CatchEffect: 에러 처리
117
- */
118
- export type CatchEffect = {
119
- _tag: 'Catch';
120
- /** 시도할 Effect */
121
- try: Effect;
122
- /** 에러 시 실행할 Effect */
123
- catch: Effect;
124
- /** 항상 실행할 Effect (선택) */
125
- finally?: Effect;
126
- /** 설명 */
127
- description: string;
128
- };
129
- /**
130
- * EmitEventEffect: 일회성 이벤트 발행
131
- *
132
- * State와 달리 Snapshot에 저장되지 않음.
133
- * Projection Layer에서 구독하여 처리.
134
- */
135
- export type EmitEventEffect = {
136
- _tag: 'EmitEvent';
137
- /** 이벤트 채널 */
138
- channel: 'ui' | 'domain' | 'analytics';
139
- /** 이벤트 페이로드 */
140
- payload: {
141
- /** 이벤트 타입 */
142
- type: string;
143
- /** 메시지 (선택) */
144
- message?: string;
145
- /** 추가 데이터 (선택) */
146
- data?: unknown;
147
- /** 이벤트 심각도 (선택, UI 채널용) */
148
- severity?: 'success' | 'info' | 'warning' | 'error';
149
- /** 지속 시간 (선택, 토스트 등) */
150
- duration?: number;
151
- };
152
- /** 설명 */
153
- description: string;
154
- };
155
- /**
156
- * Effect 타입 가드
157
- */
158
- export declare function isEffect(value: unknown): value is Effect;
159
- /**
160
- * Effect 태그 타입
161
- */
162
- export type EffectTag = Effect['_tag'];
163
- /**
164
- * 특정 태그의 Effect인지 확인
165
- */
166
- export declare function isEffectOfType<T extends EffectTag>(effect: Effect, tag: T): effect is Extract<Effect, {
167
- _tag: T;
168
- }>;
169
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/effect/types.ts"],"names":[],"mappings":"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"}
@@ -1,28 +0,0 @@
1
- // =============================================================================
2
- // Effect Helpers
3
- // =============================================================================
4
- /**
5
- * Effect 타입 가드
6
- */
7
- export function isEffect(value) {
8
- if (!value || typeof value !== 'object')
9
- return false;
10
- const { _tag } = value;
11
- return (_tag === 'SetValue' ||
12
- _tag === 'SetState' ||
13
- _tag === 'ApiCall' ||
14
- _tag === 'Navigate' ||
15
- _tag === 'Delay' ||
16
- _tag === 'Sequence' ||
17
- _tag === 'Parallel' ||
18
- _tag === 'Conditional' ||
19
- _tag === 'Catch' ||
20
- _tag === 'EmitEvent');
21
- }
22
- /**
23
- * 특정 태그의 Effect인지 확인
24
- */
25
- export function isEffectOfType(effect, tag) {
26
- return effect._tag === tag;
27
- }
28
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/effect/types.ts"],"names":[],"mappings":"AAoMA,gFAAgF;AAChF,iBAAiB;AACjB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,KAA0B,CAAC;IAC5C,OAAO,CACL,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,SAAS;QAClB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,aAAa;QACtB,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,WAAW,CACrB,CAAC;AACJ,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,GAAM;IAEN,OAAO,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC;AAC7B,CAAC"}
@@ -1,42 +0,0 @@
1
- import type { Expression } from './types.js';
2
- import type { SemanticPath } from '../domain/types.js';
3
- /**
4
- * 의존성 분석 결과
5
- */
6
- export type DependencyAnalysis = {
7
- /** 직접 의존하는 경로들 */
8
- directDeps: SemanticPath[];
9
- /** 사용된 연산자들 */
10
- operators: string[];
11
- /** 표현식의 복잡도 (노드 수) */
12
- complexity: number;
13
- /** 부분 표현식에서 사용되는 컨텍스트 변수 */
14
- usesContext: boolean;
15
- };
16
- /**
17
- * Expression 의존성 분석
18
- */
19
- export declare function analyzeExpression(expr: Expression): DependencyAnalysis;
20
- /**
21
- * Expression이 순수한지 확인 (부수효과 없음)
22
- * 모든 Expression은 순수해야 하지만, 추가 검증용
23
- */
24
- export declare function isPureExpression(expr: Expression): boolean;
25
- /**
26
- * Expression이 상수인지 확인 (의존성 없음)
27
- */
28
- export declare function isConstantExpression(expr: Expression): boolean;
29
- /**
30
- * 두 Expression이 동일한지 확인 (구조적 동등성)
31
- */
32
- export declare function areExpressionsEqual(a: Expression, b: Expression): boolean;
33
- /**
34
- * Expression 최적화 (기본적인 상수 폴딩)
35
- */
36
- export declare function optimizeExpression(expr: Expression): Expression;
37
- /**
38
- * Expression에서 특정 경로에 대한 의존성 제거
39
- * (경로가 상수로 대체되었을 때 사용)
40
- */
41
- export declare function substitutePathWithValue(expr: Expression, path: SemanticPath, value: Expression): Expression;
42
- //# sourceMappingURL=analyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.d.ts","sourceRoot":"","sources":["../../src/expression/analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB;IAClB,UAAU,EAAE,YAAY,EAAE,CAAC;IAE3B,eAAe;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,sBAAsB;IACtB,UAAU,EAAE,MAAM,CAAC;IAEnB,4BAA4B;IAC5B,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,CAsCtE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAI1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAG9D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,OAAO,CAmBzE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CA6C/D;AA2BD;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,UAAU,GAChB,UAAU,CAgBZ"}
@@ -1,166 +0,0 @@
1
- import { extractPaths, isValidExpression } from './parser.js';
2
- /**
3
- * Expression 의존성 분석
4
- */
5
- export function analyzeExpression(expr) {
6
- const directDeps = extractPaths(expr);
7
- const operators = new Set();
8
- let complexity = 0;
9
- let usesContext = false;
10
- function traverse(e) {
11
- complexity++;
12
- if (e === null || typeof e !== 'object')
13
- return;
14
- if (!Array.isArray(e))
15
- return;
16
- const [op, ...args] = e;
17
- operators.add(op);
18
- // 컨텍스트 변수 사용 확인
19
- if (op === 'get') {
20
- const path = args[0];
21
- if (path.startsWith('$')) {
22
- usesContext = true;
23
- }
24
- }
25
- for (const arg of args) {
26
- if (isValidExpression(arg)) {
27
- traverse(arg);
28
- }
29
- }
30
- }
31
- traverse(expr);
32
- return {
33
- directDeps,
34
- operators: [...operators],
35
- complexity,
36
- usesContext,
37
- };
38
- }
39
- /**
40
- * Expression이 순수한지 확인 (부수효과 없음)
41
- * 모든 Expression은 순수해야 하지만, 추가 검증용
42
- */
43
- export function isPureExpression(expr) {
44
- // 현재 모든 Expression 연산자는 순수함
45
- // 향후 사용자 정의 함수 허용 시 검증 필요
46
- return isValidExpression(expr);
47
- }
48
- /**
49
- * Expression이 상수인지 확인 (의존성 없음)
50
- */
51
- export function isConstantExpression(expr) {
52
- const analysis = analyzeExpression(expr);
53
- return analysis.directDeps.length === 0 && !analysis.usesContext;
54
- }
55
- /**
56
- * 두 Expression이 동일한지 확인 (구조적 동등성)
57
- */
58
- export function areExpressionsEqual(a, b) {
59
- if (a === b)
60
- return true;
61
- if (a === null || b === null)
62
- return a === b;
63
- if (typeof a !== typeof b)
64
- return false;
65
- if (typeof a !== 'object')
66
- return a === b;
67
- if (!Array.isArray(a) || !Array.isArray(b))
68
- return false;
69
- if (a.length !== b.length)
70
- return false;
71
- for (let i = 0; i < a.length; i++) {
72
- const aItem = a[i];
73
- const bItem = b[i];
74
- if (isValidExpression(aItem) && isValidExpression(bItem)) {
75
- if (!areExpressionsEqual(aItem, bItem))
76
- return false;
77
- }
78
- else if (aItem !== bItem) {
79
- return false;
80
- }
81
- }
82
- return true;
83
- }
84
- /**
85
- * Expression 최적화 (기본적인 상수 폴딩)
86
- */
87
- export function optimizeExpression(expr) {
88
- if (expr === null || typeof expr !== 'object')
89
- return expr;
90
- if (!Array.isArray(expr))
91
- return expr;
92
- const [op, ...args] = expr;
93
- // 재귀적으로 자식 최적화
94
- const optimizedArgs = args.map((arg) => isValidExpression(arg) ? optimizeExpression(arg) : arg);
95
- // 상수 폴딩: 모든 인자가 리터럴이면 미리 계산
96
- const allLiterals = optimizedArgs.every((arg) => !Array.isArray(arg) && typeof arg !== 'object');
97
- if (allLiterals && canFoldOperator(op)) {
98
- // 상수 폴딩은 현재 생략 (런타임에 평가)
99
- // 향후 빌드 타임 최적화로 구현 가능
100
- }
101
- // all/any 단축 평가
102
- if (op === 'all') {
103
- // all에서 false 리터럴이 있으면 false
104
- if (optimizedArgs.some((arg) => arg === false)) {
105
- return false;
106
- }
107
- // all에서 모든 인자가 true면 true
108
- if (optimizedArgs.every((arg) => arg === true)) {
109
- return true;
110
- }
111
- }
112
- if (op === 'any') {
113
- // any에서 true 리터럴이 있으면 true
114
- if (optimizedArgs.some((arg) => arg === true)) {
115
- return true;
116
- }
117
- // any에서 모든 인자가 false면 false
118
- if (optimizedArgs.every((arg) => arg === false)) {
119
- return false;
120
- }
121
- }
122
- return [op, ...optimizedArgs];
123
- }
124
- /**
125
- * 상수 폴딩이 가능한 연산자인지 확인
126
- */
127
- function canFoldOperator(op) {
128
- const foldableOps = new Set([
129
- '+',
130
- '-',
131
- '*',
132
- '/',
133
- '%',
134
- '==',
135
- '!=',
136
- '>',
137
- '>=',
138
- '<',
139
- '<=',
140
- '!',
141
- 'concat',
142
- 'upper',
143
- 'lower',
144
- 'trim',
145
- ]);
146
- return foldableOps.has(op);
147
- }
148
- /**
149
- * Expression에서 특정 경로에 대한 의존성 제거
150
- * (경로가 상수로 대체되었을 때 사용)
151
- */
152
- export function substitutePathWithValue(expr, path, value) {
153
- if (expr === null || typeof expr !== 'object')
154
- return expr;
155
- if (!Array.isArray(expr))
156
- return expr;
157
- const [op, ...args] = expr;
158
- if (op === 'get' && args[0] === path) {
159
- return value;
160
- }
161
- return [
162
- op,
163
- ...args.map((arg) => isValidExpression(arg) ? substitutePathWithValue(arg, path, value) : arg),
164
- ];
165
- }
166
- //# sourceMappingURL=analyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../src/expression/analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import type { Expression, EvaluationContext } from './types.js';
2
- /**
3
- * Expression 평가 결과
4
- */
5
- export type EvalResult<T = unknown> = {
6
- ok: true;
7
- value: T;
8
- } | {
9
- ok: false;
10
- error: string;
11
- };
12
- /**
13
- * Expression 평가
14
- */
15
- export declare function evaluate(expr: Expression, ctx: EvaluationContext): EvalResult;
16
- //# sourceMappingURL=evaluator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/expression/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,OAAO,IAC9B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GACtB;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjC;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,iBAAiB,GAAG,UAAU,CAO7E"}