flow-parser 0.318.0 → 0.320.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 (103) hide show
  1. package/flow_parser.js +9498 -9488
  2. package/oxidized/FlowParser.js +249 -0
  3. package/oxidized/FlowParser.js.flow +457 -0
  4. package/oxidized/FlowParserDeserializer.js +209 -0
  5. package/oxidized/FlowParserDeserializer.js.flow +323 -0
  6. package/oxidized/FlowParserNodeDeserializers.js +1781 -0
  7. package/oxidized/FlowParserNodeDeserializers.js.flow +18 -0
  8. package/oxidized/FlowParserWASM.js +1 -0
  9. package/oxidized/FlowParserWASM.js.flow +119 -0
  10. package/oxidized/HermesAST.js.flow +57 -0
  11. package/oxidized/HermesParserDecodeUTF8String.js +45 -0
  12. package/oxidized/HermesParserDecodeUTF8String.js.flow +65 -0
  13. package/oxidized/ParserOptions.js +8 -0
  14. package/oxidized/ParserOptions.js.flow +55 -0
  15. package/oxidized/babel/TransformESTreeToBabel.js +1063 -0
  16. package/oxidized/babel/TransformESTreeToBabel.js.flow +1357 -0
  17. package/oxidized/estree/StripFlowTypes.js +158 -0
  18. package/oxidized/estree/StripFlowTypes.js.flow +158 -0
  19. package/oxidized/estree/StripFlowTypesForBabel.js +191 -0
  20. package/oxidized/estree/StripFlowTypesForBabel.js.flow +238 -0
  21. package/oxidized/estree/TransformComponentSyntax.js +764 -0
  22. package/oxidized/estree/TransformComponentSyntax.js.flow +882 -0
  23. package/oxidized/estree/TransformEnumSyntax.js +92 -0
  24. package/oxidized/estree/TransformEnumSyntax.js.flow +125 -0
  25. package/oxidized/estree/TransformMatchSyntax.js +990 -0
  26. package/oxidized/estree/TransformMatchSyntax.js.flow +991 -0
  27. package/oxidized/estree/TransformRecordSyntax.js +283 -0
  28. package/oxidized/estree/TransformRecordSyntax.js.flow +310 -0
  29. package/oxidized/generated/ESTreeVisitorKeys.js +234 -0
  30. package/oxidized/generated/ESTreeVisitorKeys.js.flow +22 -0
  31. package/oxidized/getModuleDocblock.js +87 -0
  32. package/oxidized/getModuleDocblock.js.flow +119 -0
  33. package/oxidized/index.js +220 -0
  34. package/oxidized/index.js.flow +183 -0
  35. package/oxidized/oxidized-src/FlowParser.js +249 -0
  36. package/oxidized/oxidized-src/FlowParserDeserializer.js +209 -0
  37. package/oxidized/oxidized-src/FlowParserNodeDeserializers.js +1781 -0
  38. package/oxidized/oxidized-src/HermesParserDecodeUTF8String.js +45 -0
  39. package/oxidized/oxidized-src/ParserOptions.js +8 -0
  40. package/oxidized/oxidized-src/babel/TransformESTreeToBabel.js +1063 -0
  41. package/oxidized/oxidized-src/estree/StripFlowTypes.js +158 -0
  42. package/oxidized/oxidized-src/estree/StripFlowTypesForBabel.js +191 -0
  43. package/oxidized/oxidized-src/estree/TransformComponentSyntax.js +764 -0
  44. package/oxidized/oxidized-src/estree/TransformEnumSyntax.js +92 -0
  45. package/oxidized/oxidized-src/estree/TransformMatchSyntax.js +990 -0
  46. package/oxidized/oxidized-src/estree/TransformRecordSyntax.js +283 -0
  47. package/oxidized/oxidized-src/generated/ESTreeVisitorKeys.js +234 -0
  48. package/oxidized/oxidized-src/getModuleDocblock.js +87 -0
  49. package/oxidized/oxidized-src/index.js +220 -0
  50. package/oxidized/oxidized-src/transform/SimpleTransform.js +95 -0
  51. package/oxidized/oxidized-src/transform/astArrayMutationHelpers.js +52 -0
  52. package/oxidized/oxidized-src/transform/astNodeMutationHelpers.js +142 -0
  53. package/oxidized/oxidized-src/transform/print/comments/comments.js +245 -0
  54. package/oxidized/oxidized-src/transform/print/comments/prettier/common/util.js +235 -0
  55. package/oxidized/oxidized-src/transform/print/comments/prettier/language-js/comments.js +663 -0
  56. package/oxidized/oxidized-src/transform/print/comments/prettier/language-js/loc.js +30 -0
  57. package/oxidized/oxidized-src/transform/print/comments/prettier/language-js/printer-estree.js +23 -0
  58. package/oxidized/oxidized-src/transform/print/comments/prettier/language-js/utils.js +89 -0
  59. package/oxidized/oxidized-src/transform/print/comments/prettier/main/comments.js +374 -0
  60. package/oxidized/oxidized-src/transform/print/comments/prettier/utils/get-last.js +5 -0
  61. package/oxidized/oxidized-src/transform/print/detachedNodeTypes.js +1 -0
  62. package/oxidized/oxidized-src/transform/print/print.js +68 -0
  63. package/oxidized/oxidized-src/traverse/SimpleTraverser.js +90 -0
  64. package/oxidized/oxidized-src/traverse/getVisitorKeys.js +29 -0
  65. package/oxidized/oxidized-src/utils/Builders.js +181 -0
  66. package/oxidized/oxidized-src/utils/GenID.js +37 -0
  67. package/oxidized/oxidized-src/utils/createSyntaxError.js +15 -0
  68. package/oxidized/oxidized-src/utils/isReservedWord.js +53 -0
  69. package/oxidized/oxidized-src/utils/mutateESTreeASTForPrettier.js +85 -0
  70. package/oxidized/transform/SimpleTransform.js +95 -0
  71. package/oxidized/transform/SimpleTransform.js.flow +168 -0
  72. package/oxidized/transform/astArrayMutationHelpers.js +52 -0
  73. package/oxidized/transform/astArrayMutationHelpers.js.flow +71 -0
  74. package/oxidized/transform/astNodeMutationHelpers.js +142 -0
  75. package/oxidized/transform/astNodeMutationHelpers.js.flow +252 -0
  76. package/oxidized/transform/print/comments/comments.js +245 -0
  77. package/oxidized/transform/print/comments/comments.js.flow +330 -0
  78. package/oxidized/transform/print/comments/prettier/common/util.js +235 -0
  79. package/oxidized/transform/print/comments/prettier/language-js/comments.js +663 -0
  80. package/oxidized/transform/print/comments/prettier/language-js/loc.js +30 -0
  81. package/oxidized/transform/print/comments/prettier/language-js/printer-estree.js +23 -0
  82. package/oxidized/transform/print/comments/prettier/language-js/utils.js +89 -0
  83. package/oxidized/transform/print/comments/prettier/main/comments.js +374 -0
  84. package/oxidized/transform/print/comments/prettier/utils/get-last.js +5 -0
  85. package/oxidized/transform/print/detachedNodeTypes.js +1 -0
  86. package/oxidized/transform/print/detachedNodeTypes.js.flow +24 -0
  87. package/oxidized/transform/print/print.js +68 -0
  88. package/oxidized/transform/print/print.js.flow +87 -0
  89. package/oxidized/traverse/SimpleTraverser.js +90 -0
  90. package/oxidized/traverse/SimpleTraverser.js.flow +133 -0
  91. package/oxidized/traverse/getVisitorKeys.js +29 -0
  92. package/oxidized/traverse/getVisitorKeys.js.flow +36 -0
  93. package/oxidized/utils/Builders.js +181 -0
  94. package/oxidized/utils/Builders.js.flow +218 -0
  95. package/oxidized/utils/GenID.js +37 -0
  96. package/oxidized/utils/GenID.js.flow +39 -0
  97. package/oxidized/utils/createSyntaxError.js +15 -0
  98. package/oxidized/utils/createSyntaxError.js.flow +24 -0
  99. package/oxidized/utils/isReservedWord.js +53 -0
  100. package/oxidized/utils/isReservedWord.js.flow +57 -0
  101. package/oxidized/utils/mutateESTreeASTForPrettier.js +85 -0
  102. package/oxidized/utils/mutateESTreeASTForPrettier.js.flow +130 -0
  103. package/package.json +6 -4
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.transformProgram = transformProgram;
7
+
8
+ var _flowEstree = require("flow-estree");
9
+
10
+ var _SimpleTransform = require("../transform/SimpleTransform");
11
+
12
+ var _Builders = require("../utils/Builders");
13
+
14
+ function mapEnumDeclaration(node, options) {
15
+ var _options$transformOpt, _options$transformOpt2;
16
+
17
+ const {
18
+ body
19
+ } = node;
20
+ const {
21
+ members
22
+ } = body;
23
+ const getRuntime = (_options$transformOpt = options.transformOptions) == null ? void 0 : (_options$transformOpt2 = _options$transformOpt.TransformEnumSyntax) == null ? void 0 : _options$transformOpt2.getRuntime;
24
+ const enumModule = typeof getRuntime === 'function' ? getRuntime() : (0, _Builders.callExpression)((0, _Builders.ident)('require'), [(0, _Builders.stringLiteral)('flow-enums-runtime')]);
25
+ const mirrored = body.type === 'EnumStringBody' && (!members.length || members[0].type === 'EnumDefaultedMember');
26
+ const enumExpression = mirrored ? (0, _Builders.callExpression)({
27
+ type: 'MemberExpression',
28
+ object: enumModule,
29
+ property: (0, _Builders.ident)('Mirrored'),
30
+ computed: false,
31
+ optional: false,
32
+ ...(0, _Builders.etc)()
33
+ }, [{
34
+ type: 'ArrayExpression',
35
+ elements: members.map(member => (0, _Builders.stringLiteral)(member.id.name)),
36
+ trailingComma: false,
37
+ ...(0, _Builders.etc)()
38
+ }]) : (0, _Builders.callExpression)(enumModule, [{
39
+ type: 'ObjectExpression',
40
+ properties: members.map(member => ({
41
+ type: 'Property',
42
+ key: member.id,
43
+ value: member.type === 'EnumDefaultedMember' ? (0, _Builders.callExpression)((0, _Builders.ident)('Symbol'), [(0, _Builders.stringLiteral)(member.id.name)]) : member.init,
44
+ kind: 'init',
45
+ method: false,
46
+ shorthand: false,
47
+ computed: false,
48
+ ...(0, _Builders.etc)(),
49
+ parent: _Builders.EMPTY_PARENT
50
+ })),
51
+ ...(0, _Builders.etc)()
52
+ }]);
53
+ return (0, _Builders.variableDeclaration)('const', node.id, enumExpression);
54
+ }
55
+
56
+ function transformProgram(program, options) {
57
+ return _SimpleTransform.SimpleTransform.transformProgram(program, {
58
+ transform(node) {
59
+ switch (node.type) {
60
+ case 'EnumDeclaration':
61
+ {
62
+ return mapEnumDeclaration(node, options);
63
+ }
64
+
65
+ case 'ExportDefaultDeclaration':
66
+ {
67
+ const {
68
+ declaration
69
+ } = node;
70
+
71
+ if ((0, _flowEstree.isEnumDeclaration)(declaration)) {
72
+ const enumDeclaration = mapEnumDeclaration(declaration, options);
73
+
74
+ const exportDefault = _SimpleTransform.SimpleTransform.nodeWith(node, {
75
+ declaration: (0, _Builders.ident)(declaration.id.name)
76
+ });
77
+
78
+ return [enumDeclaration, exportDefault];
79
+ } else {
80
+ return node;
81
+ }
82
+ }
83
+
84
+ default:
85
+ {
86
+ return node;
87
+ }
88
+ }
89
+ }
90
+
91
+ });
92
+ }
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ * @flow strict
8
+ * @format
9
+ */
10
+
11
+ 'use strict';
12
+
13
+ /**
14
+ * Transform Flow Enum declarations (https://flow.org/en/docs/enums/).
15
+ */
16
+
17
+ import type {ParserOptions} from '../ParserOptions';
18
+ import type {
19
+ ESNode,
20
+ EnumDeclaration,
21
+ ExportDefaultDeclaration,
22
+ ObjectPropertyWithNonShorthandStaticName,
23
+ Program,
24
+ } from 'flow-estree';
25
+
26
+ import {isEnumDeclaration} from 'flow-estree';
27
+ import {SimpleTransform} from '../transform/SimpleTransform';
28
+ import {
29
+ EMPTY_PARENT,
30
+ callExpression,
31
+ etc,
32
+ ident,
33
+ stringLiteral,
34
+ variableDeclaration,
35
+ } from '../utils/Builders';
36
+
37
+ function mapEnumDeclaration(node: EnumDeclaration, options: ParserOptions) {
38
+ const {body} = node;
39
+ const {members} = body;
40
+ const getRuntime = options.transformOptions?.TransformEnumSyntax?.getRuntime;
41
+ const enumModule =
42
+ typeof getRuntime === 'function'
43
+ ? getRuntime()
44
+ : callExpression(ident('require'), [stringLiteral('flow-enums-runtime')]);
45
+ const mirrored =
46
+ body.type === 'EnumStringBody' &&
47
+ (!members.length || members[0].type === 'EnumDefaultedMember');
48
+ const enumExpression = mirrored
49
+ ? callExpression(
50
+ {
51
+ type: 'MemberExpression',
52
+ object: enumModule,
53
+ property: ident('Mirrored'),
54
+ computed: false,
55
+ optional: false,
56
+ ...etc(),
57
+ },
58
+ [
59
+ {
60
+ type: 'ArrayExpression',
61
+ elements: members.map(member => stringLiteral(member.id.name)),
62
+ trailingComma: false,
63
+ ...etc(),
64
+ },
65
+ ],
66
+ )
67
+ : callExpression(enumModule, [
68
+ {
69
+ type: 'ObjectExpression',
70
+ properties: members.map(
71
+ (member): ObjectPropertyWithNonShorthandStaticName => ({
72
+ type: 'Property',
73
+ key: member.id,
74
+ value:
75
+ // String enums with `EnumDefaultedMember` are handled above by
76
+ // calculation of `mirrored`.
77
+ member.type === 'EnumDefaultedMember'
78
+ ? callExpression(ident('Symbol'), [
79
+ stringLiteral(member.id.name),
80
+ ])
81
+ : member.init,
82
+ kind: 'init',
83
+ method: false,
84
+ shorthand: false,
85
+ computed: false,
86
+ ...etc(),
87
+ parent: EMPTY_PARENT,
88
+ }),
89
+ ),
90
+ ...etc(),
91
+ },
92
+ ]);
93
+ return variableDeclaration('const', node.id, enumExpression);
94
+ }
95
+
96
+ export function transformProgram(
97
+ program: Program,
98
+ options: ParserOptions,
99
+ ): Program {
100
+ return SimpleTransform.transformProgram(program, {
101
+ transform(node: ESNode): ESNode | ReadonlyArray<ESNode> {
102
+ switch (node.type) {
103
+ case 'EnumDeclaration': {
104
+ return mapEnumDeclaration(node, options);
105
+ }
106
+ case 'ExportDefaultDeclaration': {
107
+ const {declaration} = node;
108
+ if (isEnumDeclaration(declaration)) {
109
+ const enumDeclaration = mapEnumDeclaration(declaration, options);
110
+ const exportDefault: ExportDefaultDeclaration =
111
+ SimpleTransform.nodeWith(node, {
112
+ declaration: ident(declaration.id.name),
113
+ });
114
+ return [enumDeclaration, exportDefault];
115
+ } else {
116
+ return node;
117
+ }
118
+ }
119
+ default: {
120
+ return node;
121
+ }
122
+ }
123
+ },
124
+ });
125
+ }