@manifesto-ai/core 0.3.0 → 1.3.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 (279) hide show
  1. package/README.md +148 -498
  2. package/dist/__tests__/apply.test.d.ts +2 -0
  3. package/dist/__tests__/apply.test.d.ts.map +1 -0
  4. package/dist/__tests__/apply.test.js +144 -0
  5. package/dist/__tests__/apply.test.js.map +1 -0
  6. package/dist/__tests__/jcs.test.d.ts +2 -0
  7. package/dist/__tests__/jcs.test.d.ts.map +1 -0
  8. package/dist/__tests__/jcs.test.js +45 -0
  9. package/dist/__tests__/jcs.test.js.map +1 -0
  10. package/dist/core/apply.d.ts +17 -0
  11. package/dist/core/apply.d.ts.map +1 -0
  12. package/dist/core/apply.js +130 -0
  13. package/dist/core/apply.js.map +1 -0
  14. package/dist/core/compute.d.ts +17 -0
  15. package/dist/core/compute.d.ts.map +1 -0
  16. package/dist/core/compute.js +287 -0
  17. package/dist/core/compute.js.map +1 -0
  18. package/dist/core/compute.test.d.ts +2 -0
  19. package/dist/core/compute.test.d.ts.map +1 -0
  20. package/dist/core/compute.test.js +633 -0
  21. package/dist/core/compute.test.js.map +1 -0
  22. package/dist/core/explain.d.ts +14 -0
  23. package/dist/core/explain.d.ts.map +1 -0
  24. package/dist/core/explain.js +78 -0
  25. package/dist/core/explain.js.map +1 -0
  26. package/dist/core/index.d.ts +5 -0
  27. package/dist/core/index.d.ts.map +1 -0
  28. package/dist/core/index.js +5 -0
  29. package/dist/core/index.js.map +1 -0
  30. package/dist/core/validate.d.ts +16 -0
  31. package/dist/core/validate.d.ts.map +1 -0
  32. package/dist/core/validate.js +361 -0
  33. package/dist/core/validate.js.map +1 -0
  34. package/dist/core/validate.test.d.ts +2 -0
  35. package/dist/core/validate.test.d.ts.map +1 -0
  36. package/dist/core/validate.test.js +638 -0
  37. package/dist/core/validate.test.js.map +1 -0
  38. package/dist/core/validation-utils.d.ts +20 -0
  39. package/dist/core/validation-utils.d.ts.map +1 -0
  40. package/dist/core/validation-utils.js +289 -0
  41. package/dist/core/validation-utils.js.map +1 -0
  42. package/dist/errors.d.ts +30 -0
  43. package/dist/errors.d.ts.map +1 -0
  44. package/dist/errors.js +51 -0
  45. package/dist/errors.js.map +1 -0
  46. package/dist/evaluator/computed.d.ts +14 -0
  47. package/dist/evaluator/computed.d.ts.map +1 -0
  48. package/dist/evaluator/computed.js +60 -0
  49. package/dist/evaluator/computed.js.map +1 -0
  50. package/dist/evaluator/context.d.ts +59 -0
  51. package/dist/evaluator/context.d.ts.map +1 -0
  52. package/dist/evaluator/context.js +41 -0
  53. package/dist/evaluator/context.js.map +1 -0
  54. package/dist/evaluator/dag.d.ts +30 -0
  55. package/dist/evaluator/dag.d.ts.map +1 -0
  56. package/dist/evaluator/dag.js +121 -0
  57. package/dist/evaluator/dag.js.map +1 -0
  58. package/dist/evaluator/expr.d.ts +11 -0
  59. package/dist/evaluator/expr.d.ts.map +1 -0
  60. package/dist/evaluator/expr.js +649 -0
  61. package/dist/evaluator/expr.js.map +1 -0
  62. package/dist/evaluator/expr.test.d.ts +2 -0
  63. package/dist/evaluator/expr.test.d.ts.map +1 -0
  64. package/dist/evaluator/expr.test.js +449 -0
  65. package/dist/evaluator/expr.test.js.map +1 -0
  66. package/dist/evaluator/flow.d.ts +35 -0
  67. package/dist/evaluator/flow.d.ts.map +1 -0
  68. package/dist/evaluator/flow.js +387 -0
  69. package/dist/evaluator/flow.js.map +1 -0
  70. package/dist/evaluator/flow.test.d.ts +2 -0
  71. package/dist/evaluator/flow.test.d.ts.map +1 -0
  72. package/dist/evaluator/flow.test.js +499 -0
  73. package/dist/evaluator/flow.test.js.map +1 -0
  74. package/dist/evaluator/index.d.ts +6 -0
  75. package/dist/evaluator/index.d.ts.map +1 -0
  76. package/dist/evaluator/index.js +6 -0
  77. package/dist/evaluator/index.js.map +1 -0
  78. package/dist/factories.d.ts +22 -0
  79. package/dist/factories.d.ts.map +1 -0
  80. package/dist/factories.js +44 -0
  81. package/dist/factories.js.map +1 -0
  82. package/dist/index.d.ts +47 -11
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +30 -45
  85. package/dist/index.js.map +1 -1
  86. package/dist/index.test.d.ts +2 -0
  87. package/dist/index.test.d.ts.map +1 -0
  88. package/dist/index.test.js +13 -0
  89. package/dist/index.test.js.map +1 -0
  90. package/dist/schema/action.d.ts +14 -0
  91. package/dist/schema/action.d.ts.map +1 -0
  92. package/dist/schema/action.js +30 -0
  93. package/dist/schema/action.js.map +1 -0
  94. package/dist/schema/common.d.ts +37 -0
  95. package/dist/schema/common.d.ts.map +1 -0
  96. package/dist/schema/common.js +20 -0
  97. package/dist/schema/common.js.map +1 -0
  98. package/dist/schema/computed.d.ts +23 -0
  99. package/dist/schema/computed.d.ts.map +1 -0
  100. package/dist/schema/computed.js +34 -0
  101. package/dist/schema/computed.js.map +1 -0
  102. package/dist/schema/domain.d.ts +50 -0
  103. package/dist/schema/domain.d.ts.map +1 -0
  104. package/dist/schema/domain.js +60 -0
  105. package/dist/schema/domain.js.map +1 -0
  106. package/dist/schema/expr.d.ts +303 -0
  107. package/dist/schema/expr.d.ts.map +1 -0
  108. package/dist/schema/expr.js +283 -0
  109. package/dist/schema/expr.js.map +1 -0
  110. package/dist/schema/field.d.ts +48 -0
  111. package/dist/schema/field.d.ts.map +1 -0
  112. package/dist/schema/field.js +31 -0
  113. package/dist/schema/field.js.map +1 -0
  114. package/dist/schema/flow.d.ts +103 -0
  115. package/dist/schema/flow.d.ts.map +1 -0
  116. package/dist/schema/flow.js +82 -0
  117. package/dist/schema/flow.js.map +1 -0
  118. package/dist/schema/host-context.d.ts +12 -0
  119. package/dist/schema/host-context.d.ts.map +1 -0
  120. package/dist/schema/host-context.js +23 -0
  121. package/dist/schema/host-context.js.map +1 -0
  122. package/dist/schema/index.d.ts +13 -2
  123. package/dist/schema/index.d.ts.map +1 -1
  124. package/dist/schema/index.js +25 -2
  125. package/dist/schema/index.js.map +1 -1
  126. package/dist/schema/patch.d.ts +59 -0
  127. package/dist/schema/patch.d.ts.map +1 -0
  128. package/dist/schema/patch.js +60 -0
  129. package/dist/schema/patch.js.map +1 -0
  130. package/dist/schema/result.d.ts +142 -0
  131. package/dist/schema/result.d.ts.map +1 -0
  132. package/dist/schema/result.js +94 -0
  133. package/dist/schema/result.js.map +1 -0
  134. package/dist/schema/snapshot.d.ts +153 -0
  135. package/dist/schema/snapshot.d.ts.map +1 -0
  136. package/dist/schema/snapshot.js +160 -0
  137. package/dist/schema/snapshot.js.map +1 -0
  138. package/dist/schema/trace.d.ts +98 -0
  139. package/dist/schema/trace.d.ts.map +1 -0
  140. package/dist/schema/trace.js +90 -0
  141. package/dist/schema/trace.js.map +1 -0
  142. package/dist/schema/type-spec.d.ts +34 -0
  143. package/dist/schema/type-spec.d.ts.map +1 -0
  144. package/dist/schema/type-spec.js +40 -0
  145. package/dist/schema/type-spec.js.map +1 -0
  146. package/dist/utils/canonical.d.ts +37 -0
  147. package/dist/utils/canonical.d.ts.map +1 -0
  148. package/dist/utils/canonical.js +122 -0
  149. package/dist/utils/canonical.js.map +1 -0
  150. package/dist/utils/canonical.test.d.ts +2 -0
  151. package/dist/utils/canonical.test.d.ts.map +1 -0
  152. package/dist/utils/canonical.test.js +183 -0
  153. package/dist/utils/canonical.test.js.map +1 -0
  154. package/dist/utils/hash.d.ts +28 -0
  155. package/dist/utils/hash.d.ts.map +1 -0
  156. package/dist/utils/hash.js +152 -0
  157. package/dist/utils/hash.js.map +1 -0
  158. package/dist/utils/hash.test.d.ts +2 -0
  159. package/dist/utils/hash.test.d.ts.map +1 -0
  160. package/dist/utils/hash.test.js +170 -0
  161. package/dist/utils/hash.test.js.map +1 -0
  162. package/dist/utils/index.d.ts +4 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +4 -0
  165. package/dist/utils/index.js.map +1 -0
  166. package/dist/utils/path.d.ts +40 -0
  167. package/dist/utils/path.d.ts.map +1 -0
  168. package/dist/utils/path.js +132 -0
  169. package/dist/utils/path.js.map +1 -0
  170. package/dist/utils/path.test.d.ts +2 -0
  171. package/dist/utils/path.test.d.ts.map +1 -0
  172. package/dist/utils/path.test.js +191 -0
  173. package/dist/utils/path.test.js.map +1 -0
  174. package/package.json +28 -41
  175. package/LICENSE +0 -21
  176. package/dist/dag/graph.d.ts +0 -62
  177. package/dist/dag/graph.d.ts.map +0 -1
  178. package/dist/dag/graph.js +0 -244
  179. package/dist/dag/graph.js.map +0 -1
  180. package/dist/dag/index.d.ts +0 -4
  181. package/dist/dag/index.d.ts.map +0 -1
  182. package/dist/dag/index.js +0 -4
  183. package/dist/dag/index.js.map +0 -1
  184. package/dist/dag/propagation.d.ts +0 -58
  185. package/dist/dag/propagation.d.ts.map +0 -1
  186. package/dist/dag/propagation.js +0 -224
  187. package/dist/dag/propagation.js.map +0 -1
  188. package/dist/dag/topological.d.ts +0 -33
  189. package/dist/dag/topological.d.ts.map +0 -1
  190. package/dist/dag/topological.js +0 -173
  191. package/dist/dag/topological.js.map +0 -1
  192. package/dist/domain/define.d.ts +0 -82
  193. package/dist/domain/define.d.ts.map +0 -1
  194. package/dist/domain/define.js +0 -105
  195. package/dist/domain/define.js.map +0 -1
  196. package/dist/domain/index.d.ts +0 -4
  197. package/dist/domain/index.d.ts.map +0 -1
  198. package/dist/domain/index.js +0 -4
  199. package/dist/domain/index.js.map +0 -1
  200. package/dist/domain/types.d.ts +0 -203
  201. package/dist/domain/types.d.ts.map +0 -1
  202. package/dist/domain/types.js +0 -2
  203. package/dist/domain/types.js.map +0 -1
  204. package/dist/domain/validate.d.ts +0 -17
  205. package/dist/domain/validate.d.ts.map +0 -1
  206. package/dist/domain/validate.js +0 -204
  207. package/dist/domain/validate.js.map +0 -1
  208. package/dist/effect/index.d.ts +0 -4
  209. package/dist/effect/index.d.ts.map +0 -1
  210. package/dist/effect/index.js +0 -4
  211. package/dist/effect/index.js.map +0 -1
  212. package/dist/effect/result.d.ts +0 -100
  213. package/dist/effect/result.d.ts.map +0 -1
  214. package/dist/effect/result.js +0 -163
  215. package/dist/effect/result.js.map +0 -1
  216. package/dist/effect/runner.d.ts +0 -98
  217. package/dist/effect/runner.d.ts.map +0 -1
  218. package/dist/effect/runner.js +0 -321
  219. package/dist/effect/runner.js.map +0 -1
  220. package/dist/effect/types.d.ts +0 -169
  221. package/dist/effect/types.d.ts.map +0 -1
  222. package/dist/effect/types.js +0 -28
  223. package/dist/effect/types.js.map +0 -1
  224. package/dist/expression/analyzer.d.ts +0 -42
  225. package/dist/expression/analyzer.d.ts.map +0 -1
  226. package/dist/expression/analyzer.js +0 -166
  227. package/dist/expression/analyzer.js.map +0 -1
  228. package/dist/expression/evaluator.d.ts +0 -16
  229. package/dist/expression/evaluator.d.ts.map +0 -1
  230. package/dist/expression/evaluator.js +0 -382
  231. package/dist/expression/evaluator.js.map +0 -1
  232. package/dist/expression/index.d.ts +0 -5
  233. package/dist/expression/index.d.ts.map +0 -1
  234. package/dist/expression/index.js +0 -5
  235. package/dist/expression/index.js.map +0 -1
  236. package/dist/expression/parser.d.ts +0 -37
  237. package/dist/expression/parser.d.ts.map +0 -1
  238. package/dist/expression/parser.js +0 -201
  239. package/dist/expression/parser.js.map +0 -1
  240. package/dist/expression/types.d.ts +0 -123
  241. package/dist/expression/types.d.ts.map +0 -1
  242. package/dist/expression/types.js +0 -10
  243. package/dist/expression/types.js.map +0 -1
  244. package/dist/policy/field-policy.d.ts +0 -63
  245. package/dist/policy/field-policy.d.ts.map +0 -1
  246. package/dist/policy/field-policy.js +0 -138
  247. package/dist/policy/field-policy.js.map +0 -1
  248. package/dist/policy/index.d.ts +0 -3
  249. package/dist/policy/index.d.ts.map +0 -1
  250. package/dist/policy/index.js +0 -3
  251. package/dist/policy/index.js.map +0 -1
  252. package/dist/policy/precondition.d.ts +0 -58
  253. package/dist/policy/precondition.d.ts.map +0 -1
  254. package/dist/policy/precondition.js +0 -115
  255. package/dist/policy/precondition.js.map +0 -1
  256. package/dist/runtime/index.d.ts +0 -4
  257. package/dist/runtime/index.d.ts.map +0 -1
  258. package/dist/runtime/index.js +0 -4
  259. package/dist/runtime/index.js.map +0 -1
  260. package/dist/runtime/runtime.d.ts +0 -94
  261. package/dist/runtime/runtime.d.ts.map +0 -1
  262. package/dist/runtime/runtime.js +0 -294
  263. package/dist/runtime/runtime.js.map +0 -1
  264. package/dist/runtime/snapshot.d.ts +0 -39
  265. package/dist/runtime/snapshot.d.ts.map +0 -1
  266. package/dist/runtime/snapshot.js +0 -264
  267. package/dist/runtime/snapshot.js.map +0 -1
  268. package/dist/runtime/subscription.d.ts +0 -82
  269. package/dist/runtime/subscription.d.ts.map +0 -1
  270. package/dist/runtime/subscription.js +0 -222
  271. package/dist/runtime/subscription.js.map +0 -1
  272. package/dist/schema/integration.d.ts +0 -89
  273. package/dist/schema/integration.d.ts.map +0 -1
  274. package/dist/schema/integration.js +0 -171
  275. package/dist/schema/integration.js.map +0 -1
  276. package/dist/schema/validation.d.ts +0 -51
  277. package/dist/schema/validation.d.ts.map +0 -1
  278. package/dist/schema/validation.js +0 -212
  279. package/dist/schema/validation.js.map +0 -1
@@ -1,163 +0,0 @@
1
- // =============================================================================
2
- // Result Constructors
3
- // =============================================================================
4
- /**
5
- * 성공 Result 생성
6
- */
7
- export function ok(value) {
8
- return { ok: true, value };
9
- }
10
- /**
11
- * 실패 Result 생성
12
- */
13
- export function err(error) {
14
- return { ok: false, error };
15
- }
16
- /**
17
- * EffectError 생성
18
- */
19
- export function effectError(effect, cause, options) {
20
- return {
21
- _tag: 'EffectError',
22
- effect,
23
- cause,
24
- context: options?.context,
25
- code: options?.code,
26
- };
27
- }
28
- // =============================================================================
29
- // Result Utilities
30
- // =============================================================================
31
- /**
32
- * Result가 성공인지 확인
33
- */
34
- export function isOk(result) {
35
- return result.ok;
36
- }
37
- /**
38
- * Result가 실패인지 확인
39
- */
40
- export function isErr(result) {
41
- return !result.ok;
42
- }
43
- /**
44
- * Result에서 값 추출 (실패 시 예외)
45
- */
46
- export function unwrap(result) {
47
- if (result.ok) {
48
- return result.value;
49
- }
50
- throw result.error;
51
- }
52
- /**
53
- * Result에서 값 추출 (실패 시 기본값)
54
- */
55
- export function unwrapOr(result, defaultValue) {
56
- if (result.ok) {
57
- return result.value;
58
- }
59
- return defaultValue;
60
- }
61
- /**
62
- * Result에서 에러 추출 (성공 시 undefined)
63
- */
64
- export function unwrapErr(result) {
65
- if (!result.ok) {
66
- return result.error;
67
- }
68
- return undefined;
69
- }
70
- // =============================================================================
71
- // Result Transformations (Monadic Operations)
72
- // =============================================================================
73
- /**
74
- * Result.map: 성공 값 변환
75
- */
76
- export function map(result, fn) {
77
- if (result.ok) {
78
- return ok(fn(result.value));
79
- }
80
- return result;
81
- }
82
- /**
83
- * Result.mapErr: 에러 값 변환
84
- */
85
- export function mapErr(result, fn) {
86
- if (!result.ok) {
87
- return err(fn(result.error));
88
- }
89
- return result;
90
- }
91
- /**
92
- * Result.flatMap (bind/chain): 연쇄 연산
93
- */
94
- export function flatMap(result, fn) {
95
- if (result.ok) {
96
- return fn(result.value);
97
- }
98
- return result;
99
- }
100
- /**
101
- * Result.flatten: 중첩 Result 평탄화
102
- */
103
- export function flatten(result) {
104
- if (result.ok) {
105
- return result.value;
106
- }
107
- return result;
108
- }
109
- // =============================================================================
110
- // Result Combinators
111
- // =============================================================================
112
- /**
113
- * 여러 Result를 하나로 합침 (모두 성공해야 성공)
114
- */
115
- export function all(results) {
116
- const values = [];
117
- for (const result of results) {
118
- if (!result.ok) {
119
- return result;
120
- }
121
- values.push(result.value);
122
- }
123
- return ok(values);
124
- }
125
- /**
126
- * 첫 번째 성공 Result 반환
127
- */
128
- export function any(results) {
129
- const errors = [];
130
- for (const result of results) {
131
- if (result.ok) {
132
- return result;
133
- }
134
- errors.push(result.error);
135
- }
136
- return err(errors);
137
- }
138
- /**
139
- * Promise를 Result로 변환
140
- */
141
- export async function fromPromise(promise, mapError) {
142
- try {
143
- const value = await promise;
144
- return ok(value);
145
- }
146
- catch (e) {
147
- const error = mapError ? mapError(e) : e instanceof Error ? e : new Error(String(e));
148
- return err(error);
149
- }
150
- }
151
- /**
152
- * try-catch를 Result로 변환
153
- */
154
- export function tryCatch(fn, mapError) {
155
- try {
156
- return ok(fn());
157
- }
158
- catch (e) {
159
- const error = mapError ? mapError(e) : e instanceof Error ? e : new Error(String(e));
160
- return err(error);
161
- }
162
- }
163
- //# sourceMappingURL=result.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/effect/result.ts"],"names":[],"mappings":"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"}
@@ -1,98 +0,0 @@
1
- import type { Effect, SetValueEffect, SetStateEffect, ApiCallEffect, NavigateEffect, DelayEffect, SequenceEffect, ParallelEffect, ConditionalEffect, CatchEffect, EmitEventEffect } from './types.js';
2
- import type { Result } from './result.js';
3
- import type { EvaluationContext, Expression } from '../expression/types.js';
4
- import type { SemanticPath } from '../domain/types.js';
5
- /**
6
- * Effect 실행 핸들러
7
- */
8
- export type EffectHandler = {
9
- /** 데이터 값 설정 */
10
- setValue: (path: SemanticPath, value: unknown) => void;
11
- /** 상태 값 설정 */
12
- setState: (path: SemanticPath, value: unknown) => void;
13
- /** API 호출 */
14
- apiCall: (request: {
15
- endpoint: string;
16
- method: string;
17
- body?: unknown;
18
- headers?: Record<string, string>;
19
- query?: Record<string, unknown>;
20
- timeout?: number;
21
- }) => Promise<unknown>;
22
- /** 네비게이션 */
23
- navigate: (to: string, mode?: 'push' | 'replace') => void;
24
- /** 이벤트 발행 */
25
- emitEvent: (channel: string, payload: unknown) => void;
26
- };
27
- /**
28
- * Effect Runner 설정
29
- */
30
- export type EffectRunnerConfig = {
31
- handler: EffectHandler;
32
- context: EvaluationContext;
33
- };
34
- /**
35
- * Effect 실행 결과
36
- */
37
- export type EffectResult = Result<unknown, import('./result.js').EffectError>;
38
- /**
39
- * Effect 실행
40
- */
41
- export declare function runEffect(effect: Effect, config: EffectRunnerConfig): Promise<EffectResult>;
42
- /**
43
- * SetValue Effect 생성
44
- */
45
- export declare function setValue(path: SemanticPath, value: Expression, description: string): SetValueEffect;
46
- /**
47
- * SetState Effect 생성
48
- */
49
- export declare function setState(path: SemanticPath, value: Expression, description: string): SetStateEffect;
50
- /**
51
- * ApiCall Effect 생성
52
- */
53
- export declare function apiCall(options: Omit<ApiCallEffect, '_tag'>): ApiCallEffect;
54
- /**
55
- * Navigate Effect 생성
56
- */
57
- export declare function navigate(to: string | Expression, options?: {
58
- mode?: 'push' | 'replace';
59
- description?: string;
60
- }): NavigateEffect;
61
- /**
62
- * Delay Effect 생성
63
- */
64
- export declare function delay(ms: number, description?: string): DelayEffect;
65
- /**
66
- * Sequence Effect 생성
67
- */
68
- export declare function sequence(effects: Effect[], description?: string): SequenceEffect;
69
- /**
70
- * Parallel Effect 생성
71
- */
72
- export declare function parallel(effects: Effect[], options?: {
73
- waitAll?: boolean;
74
- description?: string;
75
- }): ParallelEffect;
76
- /**
77
- * Conditional Effect 생성
78
- */
79
- export declare function conditional(options: {
80
- condition: Expression;
81
- then: Effect;
82
- else?: Effect;
83
- description?: string;
84
- }): ConditionalEffect;
85
- /**
86
- * Catch Effect 생성
87
- */
88
- export declare function catchEffect(options: {
89
- try: Effect;
90
- catch: Effect;
91
- finally?: Effect;
92
- description?: string;
93
- }): CatchEffect;
94
- /**
95
- * EmitEvent Effect 생성
96
- */
97
- export declare function emitEvent(channel: 'ui' | 'domain' | 'analytics', payload: EmitEventEffect['payload'], description?: string): EmitEventEffect;
98
- //# sourceMappingURL=runner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/effect/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,WAAW,EACX,eAAe,EAChB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIvD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvD,cAAc;IACd,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvD,aAAa;IACb,OAAO,EAAE,CAAC,OAAO,EAAE;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvB,YAAY;IACZ,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAE1D,aAAa;IACb,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC,CAAC;AAE9E;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,YAAY,CAAC,CA6CvB;AAmPD;;GAEG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,GAClB,cAAc,CAEhB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,GAClB,cAAc,CAEhB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CAE3E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,EAAE,EAAE,MAAM,GAAG,UAAU,EACvB,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5D,cAAc,CAOhB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,CAMnE;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,CAMhF;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD,cAAc,CAOhB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,SAAS,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,iBAAiB,CAQpB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,WAAW,CAQd;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,IAAI,GAAG,QAAQ,GAAG,WAAW,EACtC,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe,CAOjB"}
@@ -1,321 +0,0 @@
1
- import { ok, err, effectError } from './result.js';
2
- import { evaluate } from '../expression/evaluator.js';
3
- /**
4
- * Effect 실행
5
- */
6
- export async function runEffect(effect, config) {
7
- const { handler, context } = config;
8
- try {
9
- switch (effect._tag) {
10
- case 'SetValue':
11
- return await runSetValue(effect, handler, context);
12
- case 'SetState':
13
- return await runSetState(effect, handler, context);
14
- case 'ApiCall':
15
- return await runApiCall(effect, handler, context);
16
- case 'Navigate':
17
- return await runNavigate(effect, handler, context);
18
- case 'Delay':
19
- return await runDelay(effect);
20
- case 'Sequence':
21
- return await runSequence(effect, config);
22
- case 'Parallel':
23
- return await runParallel(effect, config);
24
- case 'Conditional':
25
- return await runConditional(effect, config);
26
- case 'Catch':
27
- return await runCatch(effect, config);
28
- case 'EmitEvent':
29
- return await runEmitEvent(effect, handler);
30
- default:
31
- return err(effectError(effect, new Error(`Unknown effect type: ${effect._tag}`)));
32
- }
33
- }
34
- catch (e) {
35
- return err(effectError(effect, e instanceof Error ? e : new Error(String(e)), { context }));
36
- }
37
- }
38
- /**
39
- * SetValue 실행
40
- */
41
- async function runSetValue(effect, handler, context) {
42
- const valueResult = evaluate(effect.value, context);
43
- if (!valueResult.ok) {
44
- return err(effectError(effect, new Error(valueResult.error)));
45
- }
46
- handler.setValue(effect.path, valueResult.value);
47
- return ok(undefined);
48
- }
49
- /**
50
- * SetState 실행
51
- */
52
- async function runSetState(effect, handler, context) {
53
- const valueResult = evaluate(effect.value, context);
54
- if (!valueResult.ok) {
55
- return err(effectError(effect, new Error(valueResult.error)));
56
- }
57
- handler.setState(effect.path, valueResult.value);
58
- return ok(undefined);
59
- }
60
- /**
61
- * ApiCall 실행
62
- */
63
- async function runApiCall(effect, handler, context) {
64
- // 엔드포인트 평가
65
- let endpoint;
66
- if (typeof effect.endpoint === 'string') {
67
- endpoint = effect.endpoint;
68
- }
69
- else {
70
- const endpointResult = evaluate(effect.endpoint, context);
71
- if (!endpointResult.ok) {
72
- return err(effectError(effect, new Error(endpointResult.error)));
73
- }
74
- endpoint = String(endpointResult.value);
75
- }
76
- // body 평가
77
- let body = undefined;
78
- if (effect.body) {
79
- const evaluatedBody = {};
80
- for (const [key, expr] of Object.entries(effect.body)) {
81
- const result = evaluate(expr, context);
82
- if (!result.ok) {
83
- return err(effectError(effect, new Error(result.error)));
84
- }
85
- evaluatedBody[key] = result.value;
86
- }
87
- body = evaluatedBody;
88
- }
89
- // query 평가
90
- let query = undefined;
91
- if (effect.query) {
92
- query = {};
93
- for (const [key, expr] of Object.entries(effect.query)) {
94
- const result = evaluate(expr, context);
95
- if (!result.ok) {
96
- return err(effectError(effect, new Error(result.error)));
97
- }
98
- query[key] = result.value;
99
- }
100
- }
101
- try {
102
- const response = await handler.apiCall({
103
- endpoint,
104
- method: effect.method,
105
- body,
106
- headers: effect.headers,
107
- query,
108
- timeout: effect.timeout,
109
- });
110
- return ok(response);
111
- }
112
- catch (e) {
113
- return err(effectError(effect, e instanceof Error ? e : new Error(String(e)), {
114
- code: 'API_CALL_FAILED',
115
- }));
116
- }
117
- }
118
- /**
119
- * Navigate 실행
120
- */
121
- async function runNavigate(effect, handler, context) {
122
- let to;
123
- if (typeof effect.to === 'string') {
124
- to = effect.to;
125
- }
126
- else {
127
- const toResult = evaluate(effect.to, context);
128
- if (!toResult.ok) {
129
- return err(effectError(effect, new Error(toResult.error)));
130
- }
131
- to = String(toResult.value);
132
- }
133
- handler.navigate(to, effect.mode);
134
- return ok(undefined);
135
- }
136
- /**
137
- * Delay 실행
138
- */
139
- async function runDelay(effect) {
140
- await new Promise((resolve) => setTimeout(resolve, effect.ms));
141
- return ok(undefined);
142
- }
143
- /**
144
- * Sequence 실행
145
- */
146
- async function runSequence(effect, config) {
147
- let lastResult = undefined;
148
- for (const childEffect of effect.effects) {
149
- const result = await runEffect(childEffect, config);
150
- if (!result.ok) {
151
- return result;
152
- }
153
- lastResult = result.value;
154
- }
155
- return ok(lastResult);
156
- }
157
- /**
158
- * Parallel 실행
159
- */
160
- async function runParallel(effect, config) {
161
- const promises = effect.effects.map((e) => runEffect(e, config));
162
- if (effect.waitAll !== false) {
163
- const results = await Promise.all(promises);
164
- const values = [];
165
- for (const result of results) {
166
- if (!result.ok) {
167
- return result;
168
- }
169
- values.push(result.value);
170
- }
171
- return ok(values);
172
- }
173
- else {
174
- // 하나라도 완료되면 반환
175
- const result = await Promise.race(promises);
176
- return result;
177
- }
178
- }
179
- /**
180
- * Conditional 실행
181
- */
182
- async function runConditional(effect, config) {
183
- const conditionResult = evaluate(effect.condition, config.context);
184
- if (!conditionResult.ok) {
185
- return err(effectError(effect, new Error(conditionResult.error)));
186
- }
187
- if (conditionResult.value) {
188
- return runEffect(effect.then, config);
189
- }
190
- else if (effect.else) {
191
- return runEffect(effect.else, config);
192
- }
193
- return ok(undefined);
194
- }
195
- /**
196
- * Catch 실행
197
- */
198
- async function runCatch(effect, config) {
199
- let result;
200
- try {
201
- result = await runEffect(effect.try, config);
202
- }
203
- catch (e) {
204
- result = err(effectError(effect.try, e instanceof Error ? e : new Error(String(e))));
205
- }
206
- // 에러 발생 시 catch 실행
207
- if (!result.ok) {
208
- result = await runEffect(effect.catch, config);
209
- }
210
- // finally 항상 실행
211
- if (effect.finally) {
212
- await runEffect(effect.finally, config);
213
- }
214
- return result;
215
- }
216
- /**
217
- * EmitEvent 실행
218
- */
219
- async function runEmitEvent(effect, handler) {
220
- handler.emitEvent(effect.channel, effect.payload);
221
- return ok(undefined);
222
- }
223
- // =============================================================================
224
- // Effect Builders
225
- // =============================================================================
226
- /**
227
- * SetValue Effect 생성
228
- */
229
- export function setValue(path, value, description) {
230
- return { _tag: 'SetValue', path, value, description };
231
- }
232
- /**
233
- * SetState Effect 생성
234
- */
235
- export function setState(path, value, description) {
236
- return { _tag: 'SetState', path, value, description };
237
- }
238
- /**
239
- * ApiCall Effect 생성
240
- */
241
- export function apiCall(options) {
242
- return { _tag: 'ApiCall', ...options };
243
- }
244
- /**
245
- * Navigate Effect 생성
246
- */
247
- export function navigate(to, options) {
248
- return {
249
- _tag: 'Navigate',
250
- to,
251
- mode: options?.mode,
252
- description: options?.description ?? `Navigate to ${typeof to === 'string' ? to : 'computed path'}`,
253
- };
254
- }
255
- /**
256
- * Delay Effect 생성
257
- */
258
- export function delay(ms, description) {
259
- return {
260
- _tag: 'Delay',
261
- ms,
262
- description: description ?? `Wait ${ms}ms`,
263
- };
264
- }
265
- /**
266
- * Sequence Effect 생성
267
- */
268
- export function sequence(effects, description) {
269
- return {
270
- _tag: 'Sequence',
271
- effects,
272
- description: description ?? `Sequence of ${effects.length} effects`,
273
- };
274
- }
275
- /**
276
- * Parallel Effect 생성
277
- */
278
- export function parallel(effects, options) {
279
- return {
280
- _tag: 'Parallel',
281
- effects,
282
- waitAll: options?.waitAll,
283
- description: options?.description ?? `Parallel execution of ${effects.length} effects`,
284
- };
285
- }
286
- /**
287
- * Conditional Effect 생성
288
- */
289
- export function conditional(options) {
290
- return {
291
- _tag: 'Conditional',
292
- condition: options.condition,
293
- then: options.then,
294
- else: options.else,
295
- description: options.description ?? 'Conditional effect',
296
- };
297
- }
298
- /**
299
- * Catch Effect 생성
300
- */
301
- export function catchEffect(options) {
302
- return {
303
- _tag: 'Catch',
304
- try: options.try,
305
- catch: options.catch,
306
- finally: options.finally,
307
- description: options.description ?? 'Try-catch effect',
308
- };
309
- }
310
- /**
311
- * EmitEvent Effect 생성
312
- */
313
- export function emitEvent(channel, payload, description) {
314
- return {
315
- _tag: 'EmitEvent',
316
- channel,
317
- payload,
318
- description: description ?? `Emit ${payload.type} event`,
319
- };
320
- }
321
- //# sourceMappingURL=runner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/effect/runner.ts"],"names":[],"mappings":"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"}