ts2workflows 0.3.0 → 0.5.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.
package/README.md CHANGED
@@ -29,10 +29,10 @@ One benefit of writing the workflow programs in Typescript is that the sources c
29
29
  This example command shows how to type check source files in the [samples](samples) directory using the standard Typescript compiler `tsc`. The command prints typing errors or finishes silently, if there are no errors.
30
30
 
31
31
  ```sh
32
- npx tsc --project samples/tsconfig.workflows.json
32
+ npx tsc --project tsconfig.workflows.json
33
33
  ```
34
34
 
35
- The file [samples/tsconfig.workflows.json](samples/tsconfig.workflows.json) contains a sample configuration for type checking workflow sources.
35
+ The file [tsconfig.workflows.json](tsconfig.workflows.json) contains a sample configuration for type checking workflow sources.
36
36
 
37
37
  Type annotations for [Workflows standard library functions and expression helpers](https://cloud.google.com/workflows/docs/reference/stdlib/overview) and for some [connectors](https://cloud.google.com/workflows/docs/reference/googleapis) are provided in [types/workflowslib.d.ts](types/workflowslib.d.ts). They are also included in the published npm module. To import type annotations in a project that has ts2workflows module as a dependency, use the following import command:
38
38
 
@@ -55,6 +55,10 @@ npm run build
55
55
  npm run test
56
56
  ```
57
57
 
58
+ ## Publishing the package to npmjs.com
59
+
60
+ Update CHANGELOG.md, the version number in package.json, npm install, commit, tag with v1.2.3 and push. A Github Actions worklfow will build the package and publish it on tag pushes.
61
+
58
62
  ## Architecture
59
63
 
60
64
  A transpilation using ts2workflows consists of five phases:
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/ast/expressions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/ast/expressions.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { isRecord } from '../utils.js';
1
+ import { isRecord, mapRecordValues } from '../utils.js';
2
2
  // Operator precendence for unary and binary operators in the Workflows language.
3
3
  // Note that these differ somewhat from Javascript.
4
4
  // https://cloud.google.com/workflows/docs/reference/syntax/datatypes
@@ -224,26 +224,23 @@ function primitiveExpressionToLiteralValueOrLiteralExpression(ex) {
224
224
  });
225
225
  }
226
226
  else if (isRecord(ex.value)) {
227
- return Object.fromEntries(Object.entries(ex.value).map(([k, v]) => {
227
+ return mapRecordValues(ex.value, (v) => {
228
228
  if (isExpression(v)) {
229
- return [k, expressionToLiteralValueOrLiteralExpression(v)];
229
+ return expressionToLiteralValueOrLiteralExpression(v);
230
230
  }
231
231
  else if (Array.isArray(v) || isRecord(v)) {
232
- return [
233
- k,
234
- primitiveExpressionToLiteralValueOrLiteralExpression(new PrimitiveExpression(v)),
235
- ];
232
+ return primitiveExpressionToLiteralValueOrLiteralExpression(new PrimitiveExpression(v));
236
233
  }
237
234
  else if (v === null ||
238
235
  typeof v === 'string' ||
239
236
  typeof v === 'number' ||
240
237
  typeof v === 'boolean') {
241
- return [k, v];
238
+ return v;
242
239
  }
243
240
  else {
244
- return [k, `\${${primitiveToString(v)}}`];
241
+ return `\${${primitiveToString(v)}}`;
245
242
  }
246
- }));
243
+ });
247
244
  }
248
245
  else {
249
246
  return `\${${ex.toString()}}`;
@@ -1 +1 @@
1
- {"version":3,"file":"stepnames.d.ts","sourceRoot":"","sources":["../../src/ast/stepnames.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,WAAW,EAGZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAe,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAQzD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;;IAMrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAMjC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAS/D"}
1
+ {"version":3,"file":"stepnames.d.ts","sourceRoot":"","sources":["../../src/ast/stepnames.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,WAAW,EAGZ,MAAM,YAAY,CAAA;AACnB,OAAO,EAAe,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAQzD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;;IAMrC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;CAMjC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,WAAW,CAS/D"}
@@ -168,12 +168,13 @@ function relabelNextLabels(steps, replacements) {
168
168
  */
169
169
  function renameJumpTargets(step, replaceLabels) {
170
170
  switch (step.tag) {
171
- case 'assign':
172
171
  case 'call':
173
172
  case 'raise':
174
173
  case 'return':
175
174
  case 'jumptarget':
176
175
  return step;
176
+ case 'assign':
177
+ return renameJumpTargetsAssign(step, replaceLabels);
177
178
  case 'next':
178
179
  return renameJumpTargetsNext(step, replaceLabels);
179
180
  case 'for':
@@ -188,6 +189,15 @@ function renameJumpTargets(step, replaceLabels) {
188
189
  return renameJumpTargetsTry(step, replaceLabels);
189
190
  }
190
191
  }
192
+ function renameJumpTargetsAssign(step, replaceLabels) {
193
+ if (step.next) {
194
+ const newLabel = replaceLabels.get(step.next);
195
+ if (newLabel) {
196
+ return step.withNext(newLabel);
197
+ }
198
+ }
199
+ return step;
200
+ }
191
201
  function renameJumpTargetsFor(step, replaceLabels) {
192
202
  const transformedSteps = step.steps.map(({ name, step: nested }) => ({
193
203
  name,
@@ -37,17 +37,21 @@ export interface NamedWorkflowStep {
37
37
  export declare class AssignStepAST {
38
38
  readonly tag = "assign";
39
39
  readonly assignments: VariableAssignment[];
40
- readonly label: string | undefined;
41
- constructor(assignments: VariableAssignment[], label?: string);
40
+ readonly label?: string;
41
+ readonly next?: string;
42
+ constructor(assignments: VariableAssignment[], next?: string, label?: string);
43
+ withNext(newNext?: string): AssignStepAST;
44
+ withLabel(newLabel?: string): AssignStepAST;
42
45
  }
43
46
  export declare class CallStepAST {
44
47
  readonly tag = "call";
45
48
  readonly call: string;
46
49
  readonly args?: WorkflowParameters;
47
50
  readonly result?: VariableName;
48
- readonly label: string | undefined;
51
+ readonly label?: string;
49
52
  constructor(call: string, args?: WorkflowParameters, result?: VariableName, label?: string);
50
53
  labelPrefix(): string;
54
+ withLabel(newLabel?: string): CallStepAST;
51
55
  }
52
56
  export declare class ForStepAST {
53
57
  readonly tag = "for";
@@ -57,8 +61,9 @@ export declare class ForStepAST {
57
61
  readonly listExpression: Expression;
58
62
  readonly rangeStart?: number;
59
63
  readonly rangeEnd?: number;
60
- readonly label: string | undefined;
64
+ readonly label?: string;
61
65
  constructor(steps: WorkflowStepAST[], loopVariableName: VariableName, listExpression: Expression, indexVariable?: VariableName, rangeStart?: number, rangeEnd?: number, label?: string);
66
+ withLabel(newLabel?: string): ForStepAST;
62
67
  }
63
68
  export declare class ForStepASTNamed {
64
69
  readonly tag = "for";
@@ -73,8 +78,9 @@ export declare class ForStepASTNamed {
73
78
  export declare class NextStepAST {
74
79
  readonly tag = "next";
75
80
  readonly target: string;
76
- readonly label: string | undefined;
81
+ readonly label?: string;
77
82
  constructor(target: string, label?: string);
83
+ withLabel(newLabel?: string): NextStepAST;
78
84
  }
79
85
  export declare class ParallelStepAST {
80
86
  readonly tag = "parallel";
@@ -82,8 +88,9 @@ export declare class ParallelStepAST {
82
88
  readonly shared?: VariableName[];
83
89
  readonly concurrencyLimit?: number;
84
90
  readonly exceptionPolicy?: string;
85
- readonly label: string | undefined;
91
+ readonly label?: string;
86
92
  constructor(steps: Record<StepName, StepsStepAST> | ForStepAST, shared?: VariableName[], concurrencyLimit?: number, exceptionPolicy?: string, label?: string);
93
+ withLabel(newLabel?: string): ParallelStepAST;
87
94
  }
88
95
  export declare class ParallelStepASTNamed {
89
96
  readonly tag = "parallel";
@@ -97,20 +104,23 @@ export declare class ParallelStepASTNamed {
97
104
  export declare class RaiseStepAST {
98
105
  readonly tag = "raise";
99
106
  readonly value: Expression;
100
- readonly label: string | undefined;
107
+ readonly label?: string;
101
108
  constructor(value: Expression, label?: string);
109
+ withLabel(newLabel?: string): RaiseStepAST;
102
110
  }
103
111
  export declare class ReturnStepAST {
104
112
  readonly tag = "return";
105
- readonly value: Expression | undefined;
106
- readonly label: string | undefined;
113
+ readonly value?: Expression;
114
+ readonly label?: string;
107
115
  constructor(value: Expression | undefined, label?: string);
116
+ withLabel(newLabel?: string): ReturnStepAST;
108
117
  }
109
118
  export declare class StepsStepAST {
110
119
  readonly tag = "steps";
111
120
  readonly steps: WorkflowStepAST[];
112
- readonly label: string | undefined;
121
+ readonly label?: string;
113
122
  constructor(steps: WorkflowStepAST[], label?: string);
123
+ withLabel(newLabel?: string): StepsStepAST;
114
124
  }
115
125
  export declare class StepsStepASTNamed {
116
126
  readonly tag = "steps";
@@ -120,8 +130,9 @@ export declare class StepsStepASTNamed {
120
130
  export declare class SwitchStepAST {
121
131
  readonly tag = "switch";
122
132
  readonly branches: SwitchConditionAST<WorkflowStepAST>[];
123
- readonly label: string | undefined;
133
+ readonly label?: string;
124
134
  constructor(branches: SwitchConditionAST<WorkflowStepAST>[], label?: string);
135
+ withLabel(newLabel?: string): SwitchStepAST;
125
136
  }
126
137
  export declare class SwitchStepASTNamed {
127
138
  readonly tag = "switch";
@@ -140,8 +151,9 @@ export declare class TryStepAST {
140
151
  readonly exceptSteps: WorkflowStepAST[];
141
152
  readonly retryPolicy?: string | CustomRetryPolicy;
142
153
  readonly errorMap?: VariableName;
143
- readonly label: string | undefined;
154
+ readonly label?: string;
144
155
  constructor(trySteps: WorkflowStepAST[], exceptSteps: WorkflowStepAST[], retryPolicy?: string | CustomRetryPolicy, errorMap?: VariableName, label?: string);
156
+ withLabel(newLabel?: string): TryStepAST;
145
157
  }
146
158
  export declare class TryStepASTNamed {
147
159
  readonly tag = "try";
@@ -172,5 +184,4 @@ export declare function nestedSteps(step: WorkflowStepASTWithNamedNested): Named
172
184
  * Returns an GCP Workflows object representation of a step.
173
185
  */
174
186
  export declare function renderStep(step: WorkflowStepASTWithNamedNested): Record<string, unknown>;
175
- export declare function stepWithLabel(step: WorkflowStepAST, label: string): WorkflowStepAST;
176
187
  //# sourceMappingURL=steps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/ast/steps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"steps.d.ts","sourceRoot":"","sources":["../../src/ast/steps.ts"],"names":[],"mappings":"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"}
package/dist/ast/steps.js CHANGED
@@ -1,4 +1,4 @@
1
- import { isRecord } from '../utils.js';
1
+ import { isRecord, mapRecordValues } from '../utils.js';
2
2
  import { expressionToLiteralValueOrLiteralExpression, } from './expressions.js';
3
3
  import { Subworkflow } from './workflows.js';
4
4
  export class SubworkflowAST {
@@ -20,10 +20,23 @@ export class AssignStepAST {
20
20
  tag = 'assign';
21
21
  assignments;
22
22
  label;
23
- constructor(assignments, label) {
23
+ next;
24
+ constructor(assignments, next, label) {
24
25
  this.assignments = assignments;
26
+ this.next = next;
25
27
  this.label = label;
26
28
  }
29
+ withNext(newNext) {
30
+ if (newNext === this.next) {
31
+ return this;
32
+ }
33
+ else {
34
+ return new AssignStepAST(this.assignments, newNext, this.label);
35
+ }
36
+ }
37
+ withLabel(newLabel) {
38
+ return new AssignStepAST(this.assignments, this.next, newLabel);
39
+ }
27
40
  }
28
41
  // https://cloud.google.com/workflows/docs/reference/syntax/calls
29
42
  export class CallStepAST {
@@ -41,6 +54,9 @@ export class CallStepAST {
41
54
  labelPrefix() {
42
55
  return 'call_' + this.call.replaceAll(/[^a-zA-Z0-9]/g, '_') + '_';
43
56
  }
57
+ withLabel(newLabel) {
58
+ return new CallStepAST(this.call, this.args, this.result, newLabel);
59
+ }
44
60
  }
45
61
  // https://cloud.google.com/workflows/docs/reference/syntax/iteration
46
62
  export class ForStepAST {
@@ -61,6 +77,9 @@ export class ForStepAST {
61
77
  this.rangeEnd = rangeEnd;
62
78
  this.label = label;
63
79
  }
80
+ withLabel(newLabel) {
81
+ return new ForStepAST(this.steps, this.loopVariableName, this.listExpression, this.indexVariableName, this.rangeStart, this.rangeEnd, newLabel);
82
+ }
64
83
  }
65
84
  export class ForStepASTNamed {
66
85
  tag = 'for';
@@ -87,6 +106,9 @@ export class NextStepAST {
87
106
  this.target = target;
88
107
  this.label = label;
89
108
  }
109
+ withLabel(newLabel) {
110
+ return new NextStepAST(this.target, newLabel);
111
+ }
90
112
  }
91
113
  // https://cloud.google.com/workflows/docs/reference/syntax/parallel-steps
92
114
  export class ParallelStepAST {
@@ -103,6 +125,9 @@ export class ParallelStepAST {
103
125
  this.exceptionPolicy = exceptionPolicy;
104
126
  this.label = label;
105
127
  }
128
+ withLabel(newLabel) {
129
+ return new ParallelStepAST(this.steps, this.shared, this.concurrencyLimit, this.exceptionPolicy, newLabel);
130
+ }
106
131
  }
107
132
  export class ParallelStepASTNamed {
108
133
  tag = 'parallel';
@@ -134,6 +159,9 @@ export class RaiseStepAST {
134
159
  this.value = value;
135
160
  this.label = label;
136
161
  }
162
+ withLabel(newLabel) {
163
+ return new RaiseStepAST(this.value, newLabel);
164
+ }
137
165
  }
138
166
  // https://cloud.google.com/workflows/docs/reference/syntax/completing
139
167
  export class ReturnStepAST {
@@ -144,6 +172,9 @@ export class ReturnStepAST {
144
172
  this.value = value;
145
173
  this.label = label;
146
174
  }
175
+ withLabel(newLabel) {
176
+ return new ReturnStepAST(this.value, newLabel);
177
+ }
147
178
  }
148
179
  // https://cloud.google.com/workflows/docs/reference/syntax/steps#embedded-steps
149
180
  export class StepsStepAST {
@@ -154,6 +185,9 @@ export class StepsStepAST {
154
185
  this.steps = steps;
155
186
  this.label = label;
156
187
  }
188
+ withLabel(newLabel) {
189
+ return new StepsStepAST(this.steps, newLabel);
190
+ }
157
191
  }
158
192
  export class StepsStepASTNamed {
159
193
  tag = 'steps';
@@ -171,6 +205,9 @@ export class SwitchStepAST {
171
205
  this.branches = branches;
172
206
  this.label = label;
173
207
  }
208
+ withLabel(newLabel) {
209
+ return new SwitchStepAST(this.branches, newLabel);
210
+ }
174
211
  }
175
212
  export class SwitchStepASTNamed {
176
213
  tag = 'switch';
@@ -196,6 +233,9 @@ export class TryStepAST {
196
233
  this.errorMap = errorMap;
197
234
  this.label = label;
198
235
  }
236
+ withLabel(newLabel) {
237
+ return new TryStepAST(this.trySteps, this.exceptSteps, this.retryPolicy, this.errorMap, newLabel);
238
+ }
199
239
  }
200
240
  export class TryStepASTNamed {
201
241
  tag = 'try';
@@ -267,6 +307,7 @@ function namedStepsFor(step, generateName) {
267
307
  }
268
308
  function namedStepsParallel(step, generateName) {
269
309
  let steps;
310
+ const mainLabel = step.label ?? generateName('parallel');
270
311
  if (!isRecord(step.steps)) {
271
312
  const forStep = namedSteps(step.steps, generateName).step;
272
313
  if (forStep.tag !== 'for') {
@@ -275,13 +316,13 @@ function namedStepsParallel(step, generateName) {
275
316
  steps = forStep;
276
317
  }
277
318
  else {
278
- steps = Object.fromEntries(Object.entries(step.steps).map(([name, nested]) => {
279
- const named = nested.steps.map((x) => namedSteps(x, generateName));
280
- return [name, new StepsStepASTNamed(named)];
281
- }));
319
+ steps = mapRecordValues(step.steps, (step) => {
320
+ const named = step.steps.map((x) => namedSteps(x, generateName));
321
+ return new StepsStepASTNamed(named);
322
+ });
282
323
  }
283
324
  return {
284
- name: step.label ?? generateName('parallel'),
325
+ name: mainLabel,
285
326
  step: new ParallelStepASTNamed(steps, step.shared, step.concurrencyLimit, step.exceptionPolicy),
286
327
  };
287
328
  }
@@ -292,21 +333,23 @@ function namedStepsSteps(step, generateName) {
292
333
  };
293
334
  }
294
335
  function namedStepsSwitch(step, generateName) {
336
+ const mainLabel = step.label ?? generateName('switch');
295
337
  const namedBranches = step.branches.map((branch) => ({
296
338
  condition: branch.condition,
297
339
  steps: branch.steps.map((nested) => namedSteps(nested, generateName)),
298
340
  next: branch.next,
299
341
  }));
300
342
  return {
301
- name: step.label ?? generateName('switch'),
343
+ name: mainLabel,
302
344
  step: new SwitchStepASTNamed(namedBranches),
303
345
  };
304
346
  }
305
347
  function namedStepsTry(step, generateName) {
348
+ const mainLabel = step.label ?? generateName('try');
306
349
  const namedTrySteps = step.trySteps.map((nested) => namedSteps(nested, generateName));
307
350
  const namedExceptSteps = step.exceptSteps.map((nested) => namedSteps(nested, generateName));
308
351
  return {
309
- name: step.label ?? generateName('try'),
352
+ name: mainLabel,
310
353
  step: new TryStepASTNamed(namedTrySteps, namedExceptSteps, step.retryPolicy, step.errorMap),
311
354
  };
312
355
  }
@@ -366,6 +409,7 @@ export function renderStep(step) {
366
409
  assign: step.assignments.map(([key, val]) => {
367
410
  return { [key]: expressionToLiteralValueOrLiteralExpression(val) };
368
411
  }),
412
+ ...(step.next && { next: step.next }),
369
413
  };
370
414
  case 'call':
371
415
  return renderCallStep(step);
@@ -422,9 +466,7 @@ function renderSwitchCondition(cond) {
422
466
  function renderCallStep(step) {
423
467
  let args = undefined;
424
468
  if (step.args) {
425
- args = Object.fromEntries(Object.entries(step.args).map(([k, v]) => {
426
- return [k, expressionToLiteralValueOrLiteralExpression(v)];
427
- }));
469
+ args = mapRecordValues(step.args, (v) => expressionToLiteralValueOrLiteralExpression(v));
428
470
  }
429
471
  return {
430
472
  call: step.call,
@@ -506,29 +548,3 @@ function renderSteps(steps) {
506
548
  return { [x.name]: renderStep(x.step) };
507
549
  });
508
550
  }
509
- export function stepWithLabel(step, label) {
510
- switch (step.tag) {
511
- case 'assign':
512
- return new AssignStepAST(step.assignments, label);
513
- case 'call':
514
- return new CallStepAST(step.call, step.args, step.result, label);
515
- case 'for':
516
- return new ForStepAST(step.steps, step.loopVariableName, step.listExpression, step.indexVariableName, step.rangeStart, step.rangeEnd, label);
517
- case 'next':
518
- return new NextStepAST(step.target, label);
519
- case 'parallel':
520
- return new ParallelStepAST(step.steps, step.shared, step.concurrencyLimit, step.exceptionPolicy, label);
521
- case 'raise':
522
- return new RaiseStepAST(step.value, label);
523
- case 'return':
524
- return new ReturnStepAST(step.value, label);
525
- case 'steps':
526
- return new StepsStepAST(step.steps, label);
527
- case 'switch':
528
- return new SwitchStepAST(step.branches, label);
529
- case 'try':
530
- return new TryStepAST(step.trySteps, step.exceptSteps, step.retryPolicy, step.errorMap, label);
531
- case 'jumptarget':
532
- return step;
533
- }
534
- }
@@ -1,6 +1,10 @@
1
+ import { TSESTree } from '@typescript-eslint/typescript-estree';
1
2
  import { Expression, Primitive } from '../ast/expressions.js';
2
- export declare function convertExpression(instance: any): Expression;
3
- export declare function convertObjectExpression(node: any): Record<string, Primitive | Expression>;
4
- export declare function convertObjectAsExpressionValues(node: any): Record<string, Expression>;
5
- export declare function convertMemberExpression(node: any): Expression;
3
+ export declare function convertExpression(instance: TSESTree.Expression): Expression;
4
+ export declare function convertObjectExpression(node: TSESTree.ObjectExpression): Record<string, Primitive | Expression>;
5
+ export declare function convertObjectAsExpressionValues(node: TSESTree.ObjectExpression): Record<string, Expression>;
6
+ export declare function convertMemberExpression(node: TSESTree.MemberExpression): Expression;
7
+ export declare function isMagicFunction(calleeName: string): boolean;
8
+ export declare function isMagicFunctionStatmentOnly(calleeName: string): boolean;
9
+ export declare function throwIfSpread<T extends TSESTree.Expression | TSESTree.Property | TSESTree.SpreadElement | null>(nodes: T[]): Exclude<T, TSESTree.SpreadElement>[];
6
10
  //# sourceMappingURL=expressions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/transpiler/expressions.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,UAAU,EAGV,SAAS,EAMV,MAAM,uBAAuB,CAAA;AAiB9B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,UAAU,CAO3D;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,GAAG,GACR,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC,CAgCxC;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,GAAG,GACR,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAU5B;AAwKD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,UAAU,CAS7D"}
1
+ {"version":3,"file":"expressions.d.ts","sourceRoot":"","sources":["../../src/transpiler/expressions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,sCAAsC,CAAA;AAC/E,OAAO,EAGL,UAAU,EAGV,SAAS,EAMV,MAAM,uBAAuB,CAAA;AAI9B,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,GAAG,UAAU,CAO3E;AAED,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAC9B,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAC,CAgCxC;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAC9B,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAK5B;AAsMD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,QAAQ,CAAC,gBAAgB,GAC9B,UAAU,CAcZ;AA0JD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAG3D;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGvE;AA8CD,wBAAgB,aAAa,CAC3B,CAAC,SACG,QAAQ,CAAC,UAAU,GACnB,QAAQ,CAAC,QAAQ,GACjB,QAAQ,CAAC,aAAa,GACtB,IAAI,EACR,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAgBlD"}