@haneullabs/prettier-plugin-move 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/CONTRIBUTING.md +31 -0
  3. package/README.md +96 -0
  4. package/bin/prettier-move.js +29 -0
  5. package/out/cst/annotation.js +64 -0
  6. package/out/cst/annotation.js.map +1 -0
  7. package/out/cst/common.js +376 -0
  8. package/out/cst/common.js.map +1 -0
  9. package/out/cst/constant.js +92 -0
  10. package/out/cst/constant.js.map +1 -0
  11. package/out/cst/enum_definition.js +69 -0
  12. package/out/cst/enum_definition.js.map +1 -0
  13. package/out/cst/expression/abort_expression.js +32 -0
  14. package/out/cst/expression/abort_expression.js.map +1 -0
  15. package/out/cst/expression/annotation_expression.js +35 -0
  16. package/out/cst/expression/annotation_expression.js.map +1 -0
  17. package/out/cst/expression/assign_expression.js +51 -0
  18. package/out/cst/expression/assign_expression.js.map +1 -0
  19. package/out/cst/expression/binary_expression.js +70 -0
  20. package/out/cst/expression/binary_expression.js.map +1 -0
  21. package/out/cst/expression/block.js +58 -0
  22. package/out/cst/expression/block.js.map +1 -0
  23. package/out/cst/expression/block_item.js +25 -0
  24. package/out/cst/expression/block_item.js.map +1 -0
  25. package/out/cst/expression/borrow_expression.js +26 -0
  26. package/out/cst/expression/borrow_expression.js.map +1 -0
  27. package/out/cst/expression/break_expression.js +27 -0
  28. package/out/cst/expression/break_expression.js.map +1 -0
  29. package/out/cst/expression/call_expression.js +25 -0
  30. package/out/cst/expression/call_expression.js.map +1 -0
  31. package/out/cst/expression/cast_expression.js +31 -0
  32. package/out/cst/expression/cast_expression.js.map +1 -0
  33. package/out/cst/expression/continue_expression.js +26 -0
  34. package/out/cst/expression/continue_expression.js.map +1 -0
  35. package/out/cst/expression/dereference_expression.js +27 -0
  36. package/out/cst/expression/dereference_expression.js.map +1 -0
  37. package/out/cst/expression/dot_expression.js +66 -0
  38. package/out/cst/expression/dot_expression.js.map +1 -0
  39. package/out/cst/expression/expression_list.js +26 -0
  40. package/out/cst/expression/expression_list.js.map +1 -0
  41. package/out/cst/expression/identified_expression.js +28 -0
  42. package/out/cst/expression/identified_expression.js.map +1 -0
  43. package/out/cst/expression/if_expression.js +133 -0
  44. package/out/cst/expression/if_expression.js.map +1 -0
  45. package/out/cst/expression/index.js +74 -0
  46. package/out/cst/expression/index.js.map +1 -0
  47. package/out/cst/expression/index_expression.js +28 -0
  48. package/out/cst/expression/index_expression.js.map +1 -0
  49. package/out/cst/expression/lambda_expression.js +72 -0
  50. package/out/cst/expression/lambda_expression.js.map +1 -0
  51. package/out/cst/expression/let_statement.js +59 -0
  52. package/out/cst/expression/let_statement.js.map +1 -0
  53. package/out/cst/expression/loop_expression.js +27 -0
  54. package/out/cst/expression/loop_expression.js.map +1 -0
  55. package/out/cst/expression/macro_call_expression.js +66 -0
  56. package/out/cst/expression/macro_call_expression.js.map +1 -0
  57. package/out/cst/expression/match_expression.js +86 -0
  58. package/out/cst/expression/match_expression.js.map +1 -0
  59. package/out/cst/expression/move_or_copy_expression.js +27 -0
  60. package/out/cst/expression/move_or_copy_expression.js.map +1 -0
  61. package/out/cst/expression/name_expression.js +26 -0
  62. package/out/cst/expression/name_expression.js.map +1 -0
  63. package/out/cst/expression/pack_expression.js +27 -0
  64. package/out/cst/expression/pack_expression.js.map +1 -0
  65. package/out/cst/expression/return_expression.js +44 -0
  66. package/out/cst/expression/return_expression.js.map +1 -0
  67. package/out/cst/expression/unary_expression.js +26 -0
  68. package/out/cst/expression/unary_expression.js.map +1 -0
  69. package/out/cst/expression/unit_expression.js +17 -0
  70. package/out/cst/expression/unit_expression.js.map +1 -0
  71. package/out/cst/expression/vector_expression.js +80 -0
  72. package/out/cst/expression/vector_expression.js.map +1 -0
  73. package/out/cst/expression/while_expression.js +42 -0
  74. package/out/cst/expression/while_expression.js.map +1 -0
  75. package/out/cst/formatting.js +100 -0
  76. package/out/cst/formatting.js.map +1 -0
  77. package/out/cst/function_definition.js +248 -0
  78. package/out/cst/function_definition.js.map +1 -0
  79. package/out/cst/literal.js +68 -0
  80. package/out/cst/literal.js.map +1 -0
  81. package/out/cst/module.js +158 -0
  82. package/out/cst/module.js.map +1 -0
  83. package/out/cst/source_file.js +38 -0
  84. package/out/cst/source_file.js.map +1 -0
  85. package/out/cst/struct_definition.js +209 -0
  86. package/out/cst/struct_definition.js.map +1 -0
  87. package/out/cst/use_declaration.js +212 -0
  88. package/out/cst/use_declaration.js.map +1 -0
  89. package/out/imports-grouping.js +259 -0
  90. package/out/imports-grouping.js.map +1 -0
  91. package/out/index.js +97 -0
  92. package/out/index.js.map +1 -0
  93. package/out/printer.js +69 -0
  94. package/out/printer.js.map +1 -0
  95. package/out/tree.js +371 -0
  96. package/out/tree.js.map +1 -0
  97. package/out/utilities.js +251 -0
  98. package/out/utilities.js.map +1 -0
  99. package/package.json +34 -0
  100. package/prettier.config.js +12 -0
  101. package/src/cst/annotation.ts +71 -0
  102. package/src/cst/common.ts +430 -0
  103. package/src/cst/constant.ts +110 -0
  104. package/src/cst/enum_definition.ts +73 -0
  105. package/src/cst/expression/abort_expression.ts +35 -0
  106. package/src/cst/expression/annotation_expression.ts +38 -0
  107. package/src/cst/expression/assign_expression.ts +66 -0
  108. package/src/cst/expression/binary_expression.ts +75 -0
  109. package/src/cst/expression/block.ts +72 -0
  110. package/src/cst/expression/block_item.ts +29 -0
  111. package/src/cst/expression/borrow_expression.ts +28 -0
  112. package/src/cst/expression/break_expression.ts +33 -0
  113. package/src/cst/expression/call_expression.ts +28 -0
  114. package/src/cst/expression/cast_expression.ts +35 -0
  115. package/src/cst/expression/continue_expression.ts +29 -0
  116. package/src/cst/expression/dereference_expression.ts +33 -0
  117. package/src/cst/expression/dot_expression.ts +89 -0
  118. package/src/cst/expression/expression_list.ts +28 -0
  119. package/src/cst/expression/identified_expression.ts +30 -0
  120. package/src/cst/expression/if_expression.ts +177 -0
  121. package/src/cst/expression/index.ts +85 -0
  122. package/src/cst/expression/index_expression.ts +37 -0
  123. package/src/cst/expression/lambda_expression.ts +84 -0
  124. package/src/cst/expression/let_statement.ts +73 -0
  125. package/src/cst/expression/loop_expression.ts +29 -0
  126. package/src/cst/expression/macro_call_expression.ts +79 -0
  127. package/src/cst/expression/match_expression.ts +102 -0
  128. package/src/cst/expression/move_or_copy_expression.ts +29 -0
  129. package/src/cst/expression/name_expression.ts +28 -0
  130. package/src/cst/expression/pack_expression.ts +29 -0
  131. package/src/cst/expression/return_expression.ts +50 -0
  132. package/src/cst/expression/unary_expression.ts +28 -0
  133. package/src/cst/expression/unit_expression.ts +18 -0
  134. package/src/cst/expression/vector_expression.ts +97 -0
  135. package/src/cst/expression/while_expression.ts +45 -0
  136. package/src/cst/formatting.ts +100 -0
  137. package/src/cst/function_definition.ts +300 -0
  138. package/src/cst/literal.ts +69 -0
  139. package/src/cst/module.ts +191 -0
  140. package/src/cst/source_file.ts +38 -0
  141. package/src/cst/struct_definition.ts +267 -0
  142. package/src/cst/use_declaration.ts +238 -0
  143. package/src/imports-grouping.ts +300 -0
  144. package/src/index.ts +119 -0
  145. package/src/printer.ts +93 -0
  146. package/src/tree.ts +438 -0
  147. package/src/utilities.ts +387 -0
  148. package/tree-sitter-move.wasm +0 -0
  149. package/tsconfig.json +26 -0
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.default = default_1;
6
+ const prettier_1 = require("prettier");
7
+ const utilities_1 = require("../../utilities");
8
+ const { group, indentIfBreak, line, softline, ifBreak, join } = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ const NODE_TYPE = 'macro_call_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === NODE_TYPE) {
13
+ return printMacroCallExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `macro_call_expression` node.
19
+ * Inside:
20
+ * - `macro_module_access`
21
+ * - `type_arguments`
22
+ * - `arg_list`
23
+ */
24
+ function printMacroCallExpression(path, options, print) {
25
+ return path.map((path) => {
26
+ if (path.node.type === 'macro_module_access') {
27
+ return printMacroModuleAccess(path, options, print);
28
+ }
29
+ if (path.node.type === 'arg_list') {
30
+ return printMacroArgsList(path, options, print);
31
+ }
32
+ return print(path);
33
+ }, 'nonFormattingChildren');
34
+ }
35
+ /**
36
+ * Print `macro_module_access` node.
37
+ * Inside:
38
+ * - `module_access`
39
+ * - `!`
40
+ */
41
+ function printMacroModuleAccess(path, options, print) {
42
+ return [path.call(print, 'nonFormattingChildren', 0), '!'];
43
+ }
44
+ /**
45
+ * Special function to print macro arguments list instead of `arg_list`.
46
+ */
47
+ function printMacroArgsList(path, options, print) {
48
+ if (path.node.type !== 'arg_list') {
49
+ throw new Error('Expected `arg_list` node');
50
+ }
51
+ if (path.node.namedChildCount === 0) {
52
+ return '()';
53
+ }
54
+ const groupId = Symbol('macro_args_list');
55
+ return group((0, utilities_1.list)({
56
+ path,
57
+ options,
58
+ print,
59
+ open: '(',
60
+ close: ')',
61
+ addWhitespace: false,
62
+ shouldBreak: false,
63
+ indentGroup: groupId,
64
+ }), { id: groupId });
65
+ }
66
+ //# sourceMappingURL=macro_call_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"macro_call_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/macro_call_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;AAWtC,4BAMC;AAbD,uCAA6C;AAC7C,+CAAuC;AACvC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAE7E,oDAAoD;AACpD,MAAM,SAAS,GAAG,uBAAuB,CAAC;AAE1C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,wBAAwB,CAAC;IACpC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACvF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YAC3C,OAAO,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAChC,OAAO,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EAAE,uBAAuB,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACrF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACjF,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE1C,OAAO,KAAK,CACR,IAAA,gBAAI,EAAC;QACD,IAAI;QACJ,OAAO;QACP,KAAK;QACL,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,GAAG;QACV,aAAa,EAAE,KAAK;QACpB,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,OAAO;KACvB,CAAC,EACF,EAAE,EAAE,EAAE,OAAO,EAAE,CAClB,CAAC;AACN,CAAC"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const utilities_1 = require("../../utilities");
8
+ const doc_1 = require("prettier/doc");
9
+ const { join, indent, group, softline, line } = doc_1.builders;
10
+ /** The type of the node implemented in this file */
11
+ exports.NODE_TYPE = 'match_expression';
12
+ function default_1(path) {
13
+ if (path.node.type === exports.NODE_TYPE) {
14
+ return printMatchExpression;
15
+ }
16
+ else if (path.node.type === 'match_arm') {
17
+ return printMatchArm;
18
+ }
19
+ else if (path.node.type === 'match_condition') {
20
+ return printMatchCondition;
21
+ }
22
+ return null;
23
+ }
24
+ /**
25
+ * Print `match_expression` node.
26
+ * Inside:
27
+ * - `match`
28
+ * - `(`
29
+ * - `_expression`
30
+ * - `)`
31
+ * - `_match_body`
32
+ */
33
+ function printMatchExpression(path, options, print) {
34
+ const condNode = path.node.nonFormattingChildren[0];
35
+ const parts = ['match '];
36
+ if (condNode.isBreakableExpression) {
37
+ parts.push('(', path.call(print, 'nonFormattingChildren', 0), ')');
38
+ }
39
+ else {
40
+ parts.push(group([
41
+ '(',
42
+ indent(softline),
43
+ indent(path.call(print, 'nonFormattingChildren', 0)),
44
+ softline,
45
+ ')',
46
+ ]));
47
+ }
48
+ parts.push(' ', (0, utilities_1.list)({
49
+ path,
50
+ print,
51
+ options,
52
+ open: '{',
53
+ close: '}',
54
+ skipChildren: 1,
55
+ shouldBreak: true,
56
+ }));
57
+ return parts;
58
+ }
59
+ /**
60
+ * Print `match_arm` node.
61
+ */
62
+ function printMatchArm(path, options, print) {
63
+ const children = path.map(print, 'nonFormattingChildren');
64
+ if (children.length < 2) {
65
+ throw new Error('`match_arm` node should have at least 2 children');
66
+ }
67
+ if (children.length == 2) {
68
+ return group(join(' => ', children));
69
+ }
70
+ if (children.length == 3) {
71
+ return [children[0], ' ', children[1], group([' =>', indent(line), children[2]])];
72
+ }
73
+ throw new Error('`match_arm` node should have at most 3 children');
74
+ }
75
+ /**
76
+ * Prints `match_condition` node in `match_arm`.
77
+ * Example: `Enum if (x == 1) => 1,`, `if (...)` here is a `match_condition` node.
78
+ */
79
+ function printMatchCondition(path, options, print) {
80
+ const children = path.node.nonFormattingChildren;
81
+ if (children.length !== 1) {
82
+ throw new Error('`match_condition` expects 1 child');
83
+ }
84
+ return ['if (', path.call(print, 'nonFormattingChildren', 0), ')'];
85
+ }
86
+ //# sourceMappingURL=match_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/match_expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const {} = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'move_or_copy_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printMoveOrCopyExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `move_or_copy_expression` node.
19
+ */
20
+ function printMoveOrCopyExpression(path, options, print) {
21
+ const ref = path.node.child(0).text == 'move' ? ['move', ' '] : ['copy', ' '];
22
+ return [
23
+ ...ref,
24
+ path.call(print, 'nonFormattingChildren', 0), // expression
25
+ ];
26
+ }
27
+ //# sourceMappingURL=move_or_copy_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"move_or_copy_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/move_or_copy_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,yBAAyB,CAAC;AAEnD,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,yBAAyB,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACxF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/E,OAAO;QACH,GAAG,GAAG;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,aAAa;KAC9D,CAAC;AACN,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const {} = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'name_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printNameExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `name_expression` node.
19
+ * Inside:
20
+ * - `module_access`
21
+ * - `type_arguments`
22
+ */
23
+ function printNameExpression(path, options, print) {
24
+ return path.map(print, 'nonFormattingChildren');
25
+ }
26
+ //# sourceMappingURL=name_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/name_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const {} = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'pack_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printPackExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `pack_expression` node.
19
+ * Inside:
20
+ * - `module_access`
21
+ * - `type_arguments` (optional)
22
+ * - `field_initialize_list`
23
+ */
24
+ function printPackExpression(path, options, print) {
25
+ return path.map(print, 'nonFormattingChildren');
26
+ }
27
+ //# sourceMappingURL=pack_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/pack_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,mBAAmB,CAAC;IAC/B,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IAClF,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const { join, indent } = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'return_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printReturnExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `return_expression` node.
19
+ */
20
+ function printReturnExpression(path, options, print) {
21
+ const nodes = path.node.nonFormattingChildren;
22
+ if (nodes.length === 0) {
23
+ return 'return';
24
+ }
25
+ // either label or expression
26
+ if (nodes.length === 1) {
27
+ const expression = nodes[0];
28
+ const printed = path.call(print, 'nonFormattingChildren', 0);
29
+ return ['return ', expression.isBreakableExpression ? printed : indent(printed)];
30
+ }
31
+ // labeled expression
32
+ if (nodes.length === 2) {
33
+ const expression = nodes[1];
34
+ const printedLabel = path.call(print, 'nonFormattingChildren', 0);
35
+ const printedExpression = path.call(print, 'nonFormattingChildren', 1);
36
+ return join(' ', [
37
+ 'return',
38
+ printedLabel,
39
+ expression.isBreakableExpression ? printedExpression : indent(printedExpression),
40
+ ]);
41
+ }
42
+ throw new Error('Invalid return expression');
43
+ }
44
+ //# sourceMappingURL=return_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"return_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/return_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAEtC,oDAAoD;AACvC,QAAA,SAAS,GAAG,mBAAmB,CAAC;AAE7C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,qBAAqB,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;IAE9C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,qBAAqB;IACrB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QAClE,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,IAAI,CAAC,GAAG,EAAE;YACb,QAAQ;YACR,YAAY;YACZ,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;SACnF,CAAC,CAAC;IACP,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const {} = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'unary_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printUnaryExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `unary_expression` node.
19
+ */
20
+ function printUnaryExpression(path, options, print) {
21
+ return [
22
+ path.call(print, 'nonFormattingChildren', 0),
23
+ path.call(print, 'nonFormattingChildren', 1),
24
+ ];
25
+ }
26
+ //# sourceMappingURL=unary_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unary_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/unary_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,kBAAkB,CAAC;AAE5C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACnF,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;KAC/C,CAAC;AACN,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const {} = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'unit_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return () => '()';
14
+ }
15
+ return null;
16
+ }
17
+ //# sourceMappingURL=unit_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unit_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/unit_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAExB,oDAAoD;AACvC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const utilities_1 = require("../../utilities");
9
+ const block_1 = require("./block");
10
+ const { group, lineSuffix } = prettier_1.doc.builders;
11
+ /** The type of the node implemented in this file */
12
+ exports.NODE_TYPE = 'vector_expression';
13
+ function default_1(path) {
14
+ if (path.node.type === exports.NODE_TYPE) {
15
+ return printVectorExpression;
16
+ }
17
+ return null;
18
+ }
19
+ /**
20
+ * Print `vector_expression` node.
21
+ */
22
+ function printVectorExpression(path, options, print) {
23
+ if (path.node.namedChildCount === 0) {
24
+ return 'vector[]';
25
+ }
26
+ // Injected print callback for elements in the vector
27
+ const printCb = (path) => printElement(path, options, print);
28
+ const trailing = path.node.trailingComment;
29
+ let trailingComment = '';
30
+ if (trailing?.type === 'line_comment') {
31
+ trailingComment = (0, utilities_1.printTrailingComment)(path, false);
32
+ path.node.disableTrailingComment();
33
+ }
34
+ // Vector without type specified
35
+ // Eg: `vector[....]`
36
+ if (path.node.child(0)?.text == 'vector[') {
37
+ return group([
38
+ 'vector',
39
+ (0, utilities_1.list)({ path, print: printCb, options, open: '[', close: ']' }),
40
+ lineSuffix(trailingComment),
41
+ ], { shouldBreak: false });
42
+ }
43
+ if (!path.node.nonFormattingChildren[0]?.isTypeParam) {
44
+ throw new Error(`Expected a type parameter in the \`vector_expression\`, got \`${path.node.nonFormattingChildren[0]?.type}\``);
45
+ }
46
+ if (path.node.nonFormattingChildren.slice(1).some((child) => child.isTypeParam)) {
47
+ throw new Error('Expected only one type parameter in the `vector_expression`');
48
+ }
49
+ // Vector with type
50
+ // Eg: `vector<TYPE>[...]`
51
+ return [
52
+ 'vector<',
53
+ // do not break the type in vector literal
54
+ // indent(softline),
55
+ group(path.call(print, 'nonFormattingChildren', 0), { shouldBreak: false }),
56
+ '>',
57
+ group((0, utilities_1.list)({
58
+ path,
59
+ print: printCb,
60
+ options,
61
+ open: '[',
62
+ close: ']',
63
+ skipChildren: 1,
64
+ shouldBreak: false,
65
+ })),
66
+ lineSuffix(trailingComment),
67
+ ];
68
+ }
69
+ /**
70
+ * Special print elements in the `vector_expression`.
71
+ *
72
+ * - we want to use breakable blocks for `block` nodes;
73
+ */
74
+ function printElement(path, options, print) {
75
+ if (path.node.type === 'block') {
76
+ return (0, block_1.printBreakableBlock)(path, options, print);
77
+ }
78
+ return print(path);
79
+ }
80
+ //# sourceMappingURL=vector_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/vector_expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.NODE_TYPE = void 0;
6
+ exports.default = default_1;
7
+ const prettier_1 = require("prettier");
8
+ const { indent, softline, group } = prettier_1.doc.builders;
9
+ /** The type of the node implemented in this file */
10
+ exports.NODE_TYPE = 'while_expression';
11
+ function default_1(path) {
12
+ if (path.node.type === exports.NODE_TYPE) {
13
+ return printWhileExpression;
14
+ }
15
+ return null;
16
+ }
17
+ /**
18
+ * Print `while_expression` node.
19
+ *
20
+ * ```
21
+ * // single line
22
+ * while (bool_expr) expr
23
+ *
24
+ * // break condition
25
+ * while (
26
+ * very_long_expr &&
27
+ * very_long_expr
28
+ * ) {
29
+ * expr;
30
+ * }
31
+ * ```
32
+ */
33
+ function printWhileExpression(path, options, print) {
34
+ const condition = path.node.nonFormattingChildren[0].isList
35
+ ? [indent(softline), path.call(print, 'nonFormattingChildren', 0), softline]
36
+ : [indent(softline), indent(path.call(print, 'nonFormattingChildren', 0)), softline];
37
+ return [
38
+ ['while (', group(condition), ') '],
39
+ path.call(print, 'nonFormattingChildren', 1), // body
40
+ ];
41
+ }
42
+ //# sourceMappingURL=while_expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"while_expression.js","sourceRoot":"","sources":["../../../src/cst/expression/while_expression.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAUtC,4BAMC;AAZD,uCAA6C;AAC7C,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,cAAG,CAAC,QAAQ,CAAC;AAEjD,oDAAoD;AACvC,QAAA,SAAS,GAAG,kBAAkB,CAAC;AAE5C,mBAAyB,IAAmB;IACxC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAS,EAAE,CAAC;QAC/B,OAAO,oBAAoB,CAAC;IAChC,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,oBAAoB,CAAC,IAAmB,EAAE,OAAoB,EAAE,KAAc;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAE,CAAC,MAAM;QACxD,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;QAC5E,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEzF,OAAO;QACH,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,EAAE,OAAO;KACxD,CAAC;AACN,CAAC"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ // Copyright (c) The Move Contributors
3
+ // SPDX-License-Identifier: Apache-2.0
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Formatting = void 0;
6
+ exports.default = default_1;
7
+ exports.startsOnNewLine = startsOnNewLine;
8
+ exports.shouldNewLine = shouldNewLine;
9
+ exports.isFormatting = isFormatting;
10
+ exports.isComment = isComment;
11
+ exports.isEmptyLine = isEmptyLine;
12
+ exports.isNewline = isNewline;
13
+ exports.printLineComment = printLineComment;
14
+ exports.printBlockComment = printBlockComment;
15
+ exports.printEmptyLine = printEmptyLine;
16
+ exports.printNewline = printNewline;
17
+ /**
18
+ * Creates a callback function to print commments and comment-related nodes.
19
+ *
20
+ * @param path
21
+ * @returns
22
+ */
23
+ function default_1(path) {
24
+ switch (path.node.type) {
25
+ case Formatting.LineComment:
26
+ return printLineComment;
27
+ case Formatting.BlockComment:
28
+ return printBlockComment;
29
+ case Formatting.EmptyLine:
30
+ return printEmptyLine;
31
+ case Formatting.Newline:
32
+ return printNewline;
33
+ default:
34
+ return null;
35
+ }
36
+ }
37
+ var Formatting;
38
+ (function (Formatting) {
39
+ Formatting["LineComment"] = "line_comment";
40
+ Formatting["BlockComment"] = "block_comment";
41
+ /**
42
+ * Token that doesn't exist in the grammar but we insert it in
43
+ * the `Tree` representation of CST to represent an empty line.
44
+ */
45
+ Formatting["EmptyLine"] = "empty_line";
46
+ /**
47
+ * Special node to insert a newline before the next node.
48
+ * We use it to make a call to hardline or not.
49
+ */
50
+ Formatting["Newline"] = "newline";
51
+ })(Formatting || (exports.Formatting = Formatting = {}));
52
+ function startsOnNewLine(path) {
53
+ return path.previous?.type == Formatting.EmptyLine;
54
+ }
55
+ function shouldNewLine(path) {
56
+ return path.node.nextNamedSibling?.type == Formatting.Newline;
57
+ }
58
+ /**
59
+ * Test if a node is a formatting node.
60
+ *
61
+ * @param node
62
+ * @returns
63
+ */
64
+ function isFormatting(node) {
65
+ return [
66
+ Formatting.LineComment,
67
+ Formatting.BlockComment,
68
+ Formatting.EmptyLine,
69
+ Formatting.Newline,
70
+ ].includes(node.type);
71
+ }
72
+ function isComment(node) {
73
+ return [Formatting.LineComment, Formatting.BlockComment].includes(node?.type);
74
+ }
75
+ function isEmptyLine(node) {
76
+ return Formatting.EmptyLine == node?.type;
77
+ }
78
+ function isNewline(node) {
79
+ return Formatting.Newline == node?.type;
80
+ }
81
+ /**
82
+ * Print `line_comment` node.
83
+ * Comments are handled via the `addLeadingComments` function.
84
+ */
85
+ function printLineComment(path) {
86
+ return path.node.text;
87
+ }
88
+ /**
89
+ * Print `block_comment` node.
90
+ */
91
+ function printBlockComment(path) {
92
+ return path.node.text;
93
+ }
94
+ function printEmptyLine(path) {
95
+ return ''; // should not be printed directly, used in `join(hardline)` to act as an extra newline
96
+ }
97
+ function printNewline(path) {
98
+ return ''; // should not be printed, ever
99
+ }
100
+ //# sourceMappingURL=formatting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatting.js","sourceRoot":"","sources":["../../src/cst/formatting.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,sCAAsC;;;AAYtC,4BAaC;AAiBD,0CAEC;AAED,sCAEC;AAQD,oCAOC;AAED,8BAEC;AAED,kCAEC;AAED,8BAEC;AAMD,4CAEC;AAKD,8CAEC;AAED,wCAEC;AAED,oCAEC;AA5FD;;;;;GAKG;AACH,mBAAyB,IAAmB;IACxC,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,UAAU,CAAC,WAAW;YACvB,OAAO,gBAAgB,CAAC;QAC5B,KAAK,UAAU,CAAC,YAAY;YACxB,OAAO,iBAAiB,CAAC;QAC7B,KAAK,UAAU,CAAC,SAAS;YACrB,OAAO,cAAc,CAAC;QAC1B,KAAK,UAAU,CAAC,OAAO;YACnB,OAAO,YAAY,CAAC;QACxB;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAY,UAaX;AAbD,WAAY,UAAU;IAClB,0CAA4B,CAAA;IAC5B,4CAA8B,CAAA;IAC9B;;;OAGG;IACH,sCAAwB,CAAA;IACxB;;;OAGG;IACH,iCAAmB,CAAA;AACvB,CAAC,EAbW,UAAU,0BAAV,UAAU,QAarB;AAED,SAAgB,eAAe,CAAC,IAAmB;IAC/C,OAAO,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,UAAU,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAgB,aAAa,CAAC,IAAmB;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC;AAClE,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,IAAU;IACnC,OAAO;QACH,UAAU,CAAC,WAAW;QACtB,UAAU,CAAC,YAAY;QACvB,UAAU,CAAC,SAAS;QACpB,UAAU,CAAC,OAAO;KACrB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAkB,CAAC,CAAC;AACxC,CAAC;AAED,SAAgB,SAAS,CAAC,IAAiB;IACvC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAkB,CAAC,CAAC;AAChG,CAAC;AAED,SAAgB,WAAW,CAAC,IAAiB;IACzC,OAAO,UAAU,CAAC,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC;AAC9C,CAAC;AAED,SAAgB,SAAS,CAAC,IAAiB;IACvC,OAAO,UAAU,CAAC,OAAO,IAAI,IAAI,EAAE,IAAI,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,IAAmB;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,IAAmB;IACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,CAAC;AAED,SAAgB,cAAc,CAAC,IAAmB;IAC9C,OAAO,EAAE,CAAC,CAAC,sFAAsF;AACrG,CAAC;AAED,SAAgB,YAAY,CAAC,IAAmB;IAC5C,OAAO,EAAE,CAAC,CAAC,8BAA8B;AAC7C,CAAC"}