@forgehive/task 0.2.0 → 0.2.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.
@@ -1,260 +1,235 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const index_1 = require("../index");
4
- describe('Listener with boundaries tests', () => {
5
- it('Should record one item and its boundaries tape', async () => {
4
+ describe('Listener with boundaries', () => {
5
+ it('Should add a listener to the task and capture boundaries', async () => {
6
6
  const tape = [];
7
- // Create a schema for the task
8
- const schema = new index_1.Schema({
9
- value: index_1.Schema.number()
10
- });
11
- // Define the boundaries
12
- const boundaries = {
13
- fetchExternalData: async () => {
14
- return { foo: false };
15
- }
16
- };
17
- // Create the task using createTask
18
7
  const task = (0, index_1.createTask)({
19
- name: 'task',
20
- schema,
21
- boundaries,
8
+ name: 'test',
9
+ schema: new index_1.Schema({
10
+ value: index_1.Schema.number()
11
+ }),
12
+ boundaries: {
13
+ getTen: async () => {
14
+ return 10;
15
+ }
16
+ },
22
17
  fn: async (argv, boundaries) => {
23
- const externalData = await boundaries.fetchExternalData();
24
- return Object.assign(Object.assign({}, externalData), argv);
18
+ const ten = await boundaries.getTen();
19
+ return { value: argv.value, foo: ten > 5 };
25
20
  }
26
21
  });
27
22
  task.addListener((record) => {
28
23
  tape.push(record);
29
24
  });
30
25
  await task.run({ value: 5 });
31
- expect(tape.length).toBe(1);
32
- expect(tape[0].input).toEqual({ value: 5 });
33
- expect(tape[0].output).toEqual({ value: 5, foo: false });
34
- expect(tape[0].boundaries).toEqual({
35
- fetchExternalData: [
36
- { input: [], output: { foo: false } }
37
- ]
38
- });
26
+ expect(tape).toEqual([{
27
+ input: { value: 5 },
28
+ output: { value: 5, foo: true },
29
+ boundaries: {
30
+ getTen: [{
31
+ input: [],
32
+ output: 10
33
+ }]
34
+ },
35
+ taskName: 'test',
36
+ metadata: {},
37
+ type: 'success'
38
+ }]);
39
39
  });
40
- it('Should record multiple items and their boundaries tape', async () => {
40
+ it('Should add a listener to the task and capture boundaries with error', async () => {
41
41
  const tape = [];
42
- // Create a schema for the task
43
- const schema = new index_1.Schema({
44
- value: index_1.Schema.number()
45
- });
46
- // Define the boundaries
47
- const boundaries = {
48
- fetchExternalData: async () => {
49
- return { foo: false };
50
- }
51
- };
52
- // Create the task using createTask
53
42
  const task = (0, index_1.createTask)({
54
- name: 'task',
55
- schema,
56
- boundaries,
43
+ name: 'test',
44
+ schema: new index_1.Schema({
45
+ value: index_1.Schema.number()
46
+ }),
47
+ boundaries: {
48
+ getTen: async () => {
49
+ throw new Error('Network error');
50
+ }
51
+ },
57
52
  fn: async (argv, boundaries) => {
58
- const externalData = await boundaries.fetchExternalData();
59
- return Object.assign(Object.assign({}, externalData), argv);
53
+ const ten = await boundaries.getTen();
54
+ return { value: argv.value, foo: ten > 5 };
60
55
  }
61
56
  });
62
57
  task.addListener((record) => {
63
58
  tape.push(record);
64
59
  });
65
- await task.run({ value: 5 });
66
- await task.run({ value: 6 });
67
- expect(tape.length).toBe(2);
68
- expect(tape[0].input).toEqual({ value: 5 });
69
- expect(tape[0].output).toEqual({ value: 5, foo: false });
70
- expect(tape[0].boundaries).toEqual({
71
- fetchExternalData: [
72
- { input: [], output: { foo: false } }
73
- ]
74
- });
75
- expect(tape[1].input).toEqual({ value: 6 });
76
- expect(tape[1].output).toEqual({ value: 6, foo: false });
77
- expect(tape[1].boundaries).toEqual({
78
- fetchExternalData: [
79
- { input: [], output: { foo: false } }
80
- ]
81
- });
60
+ try {
61
+ await task.run({ value: 5 });
62
+ }
63
+ catch (error) {
64
+ // Expected error
65
+ }
66
+ expect(tape).toEqual([{
67
+ input: { value: 5 },
68
+ error: 'Network error',
69
+ boundaries: {
70
+ getTen: [{
71
+ input: [],
72
+ error: 'Network error'
73
+ }]
74
+ },
75
+ taskName: 'test',
76
+ metadata: {},
77
+ type: 'error'
78
+ }]);
82
79
  });
83
- it('Should record error and its boundaries tape', async () => {
80
+ it('Should add a listener to the task and capture boundaries with dynamic parameters', async () => {
84
81
  const tape = [];
85
- // Create a schema for the task
86
- const schema = new index_1.Schema({
87
- value: index_1.Schema.number().optional()
88
- });
89
- // Define the boundaries
90
- const boundaries = {
91
- fetchExternalData: async () => {
92
- return { foo: false };
93
- }
94
- };
95
- // Create the task using createTask
96
82
  const task = (0, index_1.createTask)({
97
- name: 'task',
98
- schema,
99
- boundaries,
100
- fn: async (argv, boundaries) => {
101
- const externalData = await boundaries.fetchExternalData();
102
- if (typeof argv.value === 'undefined') {
103
- throw new Error('Value is required');
83
+ name: 'test',
84
+ schema: new index_1.Schema({}),
85
+ boundaries: {
86
+ addNumbers: async (a, b) => {
87
+ return a + b;
104
88
  }
105
- return Object.assign(Object.assign({}, externalData), argv);
89
+ },
90
+ fn: async (argv, boundaries) => {
91
+ const sum = await boundaries.addNumbers(3, 7);
92
+ return { value: sum, foo: sum > 5 };
106
93
  }
107
94
  });
108
95
  task.addListener((record) => {
109
96
  tape.push(record);
110
97
  });
111
- try {
112
- await task.run({});
113
- }
114
- catch (e) {
115
- // Error is expected
116
- }
117
- expect(tape.length).toBe(1);
118
- expect(tape[0].input).toEqual({});
119
- expect(tape[0].error).toBe('Value is required');
120
- expect(tape[0].boundaries).toEqual({
121
- fetchExternalData: [
122
- { input: [], output: { foo: false } }
123
- ]
124
- });
98
+ await task.run({});
99
+ expect(tape).toEqual([{
100
+ input: {},
101
+ output: { value: 10, foo: true },
102
+ boundaries: {
103
+ addNumbers: [{
104
+ input: [3, 7],
105
+ output: 10
106
+ }]
107
+ },
108
+ taskName: 'test',
109
+ metadata: {},
110
+ type: 'success'
111
+ }]);
125
112
  });
126
- it('Should record error + success and their boundaries tape', async () => {
113
+ it('Should add a listener to the task and capture boundaries with optional parameters', async () => {
127
114
  const tape = [];
128
- // Create a schema for the task
129
- const schema = new index_1.Schema({
130
- value: index_1.Schema.number().optional()
131
- });
132
- // Define the boundaries
133
- const boundaries = {
134
- fetchExternalData: async () => {
135
- return { foo: false };
136
- }
137
- };
138
- // Create the task using createTask
139
115
  const task = (0, index_1.createTask)({
140
- name: 'task',
141
- schema,
142
- boundaries,
143
- fn: async (argv, boundaries) => {
144
- const externalData = await boundaries.fetchExternalData();
145
- if (typeof argv.value === 'undefined') {
146
- throw new Error('Value is required');
116
+ name: 'test',
117
+ schema: new index_1.Schema({
118
+ value: index_1.Schema.number().optional()
119
+ }),
120
+ boundaries: {
121
+ processValue: async (val) => {
122
+ return val || 0;
147
123
  }
148
- return Object.assign(Object.assign({}, externalData), argv);
124
+ },
125
+ fn: async (argv, boundaries) => {
126
+ const processed = await boundaries.processValue(argv.value);
127
+ return { value: processed, foo: processed > 5 };
149
128
  }
150
129
  });
151
130
  task.addListener((record) => {
152
131
  tape.push(record);
153
132
  });
154
- try {
155
- await task.run({});
156
- }
157
- catch (e) {
158
- // Error is expected
159
- }
160
- await task.run({ value: 5 });
161
- expect(tape.length).toBe(2);
162
- expect(tape[0].input).toEqual({});
163
- expect(tape[0].error).toBe('Value is required');
164
- expect(tape[0].boundaries).toEqual({
165
- fetchExternalData: [
166
- { input: [], output: { foo: false } }
167
- ]
168
- });
169
- expect(tape[1].input).toEqual({ value: 5 });
170
- expect(tape[1].output).toEqual({ value: 5, foo: false });
171
- expect(tape[1].boundaries).toEqual({
172
- fetchExternalData: [
173
- { input: [], output: { foo: false } }
174
- ]
175
- });
133
+ await task.run({ value: undefined });
134
+ expect(tape).toEqual([{
135
+ input: { value: undefined },
136
+ output: { value: 0, foo: false },
137
+ boundaries: {
138
+ processValue: [{
139
+ input: [undefined],
140
+ output: 0
141
+ }]
142
+ },
143
+ taskName: 'test',
144
+ metadata: {},
145
+ type: 'success'
146
+ }]);
176
147
  });
177
- it('Should record 2 run logs if boundary called twice', async () => {
148
+ it('Should add a listener to the task and capture boundaries with multiple calls', async () => {
178
149
  const tape = [];
179
- // Create a schema for the task
180
- const schema = new index_1.Schema({
181
- value: index_1.Schema.number()
182
- });
183
- // Define the boundaries
184
- const boundaries = {
185
- fetchExternalData: async () => {
186
- return { foo: false };
187
- }
188
- };
189
- // Create the task using createTask
190
150
  const task = (0, index_1.createTask)({
191
- name: 'task',
192
- schema,
193
- boundaries,
151
+ name: 'test',
152
+ schema: new index_1.Schema({
153
+ value: index_1.Schema.number()
154
+ }),
155
+ boundaries: {
156
+ multiplyByTwo: async (num) => {
157
+ return num * 2;
158
+ }
159
+ },
194
160
  fn: async (argv, boundaries) => {
195
- await boundaries.fetchExternalData();
196
- await boundaries.fetchExternalData();
197
- return { foo: true };
161
+ const doubled = await boundaries.multiplyByTwo(argv.value);
162
+ const quadrupled = await boundaries.multiplyByTwo(doubled);
163
+ return { foo: quadrupled > 10 };
198
164
  }
199
165
  });
200
166
  task.addListener((record) => {
201
167
  tape.push(record);
202
168
  });
203
- await task.run({ value: 5 });
204
- expect(tape.length).toBe(1);
205
- expect(tape[0].input).toEqual({ value: 5 });
206
- expect(tape[0].output).toEqual({ foo: true });
207
- expect(tape[0].boundaries).toEqual({
208
- fetchExternalData: [
209
- { input: [], output: { foo: false } },
210
- { input: [], output: { foo: false } }
211
- ]
212
- });
169
+ await task.run({ value: 3 });
170
+ expect(tape).toEqual([{
171
+ input: { value: 3 },
172
+ output: { foo: true },
173
+ boundaries: {
174
+ multiplyByTwo: [
175
+ {
176
+ input: [3],
177
+ output: 6
178
+ },
179
+ {
180
+ input: [6],
181
+ output: 12
182
+ }
183
+ ]
184
+ },
185
+ taskName: 'test',
186
+ metadata: {},
187
+ type: 'success'
188
+ }]);
213
189
  });
214
- it('Should record 2 boundary logs', async () => {
190
+ it('Should add a listener to the task and capture boundaries with mixed results', async () => {
215
191
  const tape = [];
216
- // Create a schema for the task
217
- const schema = new index_1.Schema({
218
- value: index_1.Schema.number()
219
- });
220
- // Define the boundaries
221
- const boundaries = {
222
- add: async (value) => {
223
- return value + 1;
224
- },
225
- subtract: async (value) => {
226
- return value - 1;
227
- }
228
- };
229
- // Create the task using createTask
230
192
  const task = (0, index_1.createTask)({
231
- name: 'task',
232
- schema,
233
- boundaries,
193
+ name: 'test',
194
+ schema: new index_1.Schema({
195
+ value: index_1.Schema.number()
196
+ }),
197
+ boundaries: {
198
+ getResult: async (num) => {
199
+ if (num > 5) {
200
+ return num * 2;
201
+ }
202
+ throw new Error('Number too small');
203
+ }
204
+ },
234
205
  fn: async (argv, boundaries) => {
235
- let counter = argv.value;
236
- counter = await boundaries.add(counter);
237
- counter = await boundaries.subtract(counter);
238
- counter = await boundaries.subtract(counter);
239
- return counter;
206
+ let result = 0;
207
+ try {
208
+ result = await boundaries.getResult(argv.value);
209
+ }
210
+ catch (error) {
211
+ // Continue with default
212
+ }
213
+ return result;
240
214
  }
241
215
  });
242
216
  task.addListener((record) => {
243
217
  tape.push(record);
244
218
  });
245
- await task.run({ value: 5 });
246
- expect(tape.length).toBe(1);
247
- expect(tape[0].input).toEqual({ value: 5 });
248
- expect(tape[0].output).toBe(4);
249
- expect(tape[0].boundaries).toEqual({
250
- add: [
251
- { input: [5], output: 6 }
252
- ],
253
- subtract: [
254
- { input: [6], output: 5 },
255
- { input: [5], output: 4 }
256
- ]
257
- });
219
+ await task.run({ value: 3 });
220
+ expect(tape).toEqual([{
221
+ input: { value: 3 },
222
+ output: 0,
223
+ boundaries: {
224
+ getResult: [{
225
+ input: [3],
226
+ error: 'Number too small'
227
+ }]
228
+ },
229
+ taskName: 'test',
230
+ metadata: {},
231
+ type: 'success'
232
+ }]);
258
233
  });
259
234
  });
260
235
  //# sourceMappingURL=add-listener-with-boundaries.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-listener-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/add-listener-with-boundaries.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add-listener-with-boundaries.test.js","sourceRoot":"","sources":["../../src/test/add-listener-with-boundaries.test.ts"],"names":[],"mappings":";;AAAA,oCAAmE;AAEnE,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,IAAI,GAAsB,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC;YACtB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,cAAM,CAAC;gBACjB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,UAAU,EAAE;gBACV,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,OAAO,EAAE,CAAA;gBACX,CAAC;aACF;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAC7B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAA;gBACrC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;YAC5C,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBACnB,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE;gBAC/B,UAAU,EAAE;oBACV,MAAM,EAAE,CAAC;4BACP,KAAK,EAAE,EAAE;4BACT,MAAM,EAAE,EAAE;yBACX,CAAC;iBACH;gBACD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAI,GAAsB,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC;YACtB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,cAAM,CAAC;gBACjB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,UAAU,EAAE;gBACV,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;gBAClC,CAAC;aACF;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAC7B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,CAAA;gBACrC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;YAC5C,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iBAAiB;QACnB,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBACnB,KAAK,EAAE,eAAe;gBACtB,UAAU,EAAE;oBACV,MAAM,EAAE,CAAC;4BACP,KAAK,EAAE,EAAE;4BACT,KAAK,EAAE,eAAe;yBACvB,CAAC;iBACH;gBACD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,OAAO;aACd,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,MAAM,IAAI,GAAsB,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC;YACtB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,cAAM,CAAC,EAAE,CAAC;YACtB,UAAU,EAAE;gBACV,UAAU,EAAE,KAAK,EAAE,CAAS,EAAE,CAAS,EAAE,EAAE;oBACzC,OAAO,CAAC,GAAG,CAAC,CAAA;gBACd,CAAC;aACF;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAC7B,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC7C,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAA;YACrC,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAClB,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;gBAChC,UAAU,EAAE;oBACV,UAAU,EAAE,CAAC;4BACX,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;4BACb,MAAM,EAAE,EAAE;yBACX,CAAC;iBACH;gBACD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QACjG,MAAM,IAAI,GAAsB,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC;YACtB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,cAAM,CAAC;gBACjB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;aAClC,CAAC;YACF,UAAU,EAAE;gBACV,YAAY,EAAE,KAAK,EAAE,GAAY,EAAE,EAAE;oBACnC,OAAO,GAAG,IAAI,CAAC,CAAA;gBACjB,CAAC;aACF;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAC7B,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC3D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,CAAC,EAAE,CAAA;YACjD,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;QACpC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpB,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC3B,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE;gBAChC,UAAU,EAAE;oBACV,YAAY,EAAE,CAAC;4BACb,KAAK,EAAE,CAAC,SAAS,CAAC;4BAClB,MAAM,EAAE,CAAC;yBACV,CAAC;iBACH;gBACD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,IAAI,GAAsB,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC;YACtB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,cAAM,CAAC;gBACjB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,UAAU,EAAE;gBACV,aAAa,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;oBACnC,OAAO,GAAG,GAAG,CAAC,CAAA;gBAChB,CAAC;aACF;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1D,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC1D,OAAO,EAAE,GAAG,EAAE,UAAU,GAAG,EAAE,EAAE,CAAA;YACjC,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBACnB,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;gBACrB,UAAU,EAAE;oBACV,aAAa,EAAE;wBACb;4BACE,KAAK,EAAE,CAAC,CAAC,CAAC;4BACV,MAAM,EAAE,CAAC;yBACV;wBACD;4BACE,KAAK,EAAE,CAAC,CAAC,CAAC;4BACV,MAAM,EAAE,EAAE;yBACX;qBACF;iBACF;gBACD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,MAAM,IAAI,GAAsB,EAAE,CAAA;QAClC,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC;YACtB,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,IAAI,cAAM,CAAC;gBACjB,KAAK,EAAE,cAAM,CAAC,MAAM,EAAE;aACvB,CAAC;YACF,UAAU,EAAE;gBACV,SAAS,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE;oBAC/B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;wBACZ,OAAO,GAAG,GAAG,CAAC,CAAA;oBAChB,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;gBACrC,CAAC;aACF;YACD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE;gBAC7B,IAAI,MAAM,GAAG,CAAC,CAAA;gBACd,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACjD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,wBAAwB;gBAC1B,CAAC;gBACD,OAAO,MAAM,CAAA;YACf,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;gBACpB,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;gBACnB,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE;oBACV,SAAS,EAAE,CAAC;4BACV,KAAK,EAAE,CAAC,CAAC,CAAC;4BACV,KAAK,EAAE,kBAAkB;yBAC1B,CAAC;iBACH;gBACD,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}