@tinacms/app 1.1.0 → 1.1.1

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 (134) hide show
  1. package/appFiles/node_modules/.package-lock.json +29 -28
  2. package/appFiles/node_modules/@babel/generator/lib/buffer.js +34 -10
  3. package/appFiles/node_modules/@babel/generator/lib/buffer.js.map +1 -1
  4. package/appFiles/node_modules/@babel/generator/lib/generators/classes.js +3 -4
  5. package/appFiles/node_modules/@babel/generator/lib/generators/classes.js.map +1 -1
  6. package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js +7 -0
  7. package/appFiles/node_modules/@babel/generator/lib/generators/expressions.js.map +1 -1
  8. package/appFiles/node_modules/@babel/generator/lib/generators/methods.js +51 -8
  9. package/appFiles/node_modules/@babel/generator/lib/generators/methods.js.map +1 -1
  10. package/appFiles/node_modules/@babel/generator/lib/generators/modules.js +7 -10
  11. package/appFiles/node_modules/@babel/generator/lib/generators/modules.js.map +1 -1
  12. package/appFiles/node_modules/@babel/generator/lib/generators/types.js +2 -0
  13. package/appFiles/node_modules/@babel/generator/lib/generators/types.js.map +1 -1
  14. package/appFiles/node_modules/@babel/generator/lib/generators/typescript.js +2 -2
  15. package/appFiles/node_modules/@babel/generator/lib/generators/typescript.js.map +1 -1
  16. package/appFiles/node_modules/@babel/generator/lib/index.js +1 -1
  17. package/appFiles/node_modules/@babel/generator/lib/index.js.map +1 -1
  18. package/appFiles/node_modules/@babel/generator/lib/node/parentheses.js.map +1 -1
  19. package/appFiles/node_modules/@babel/generator/lib/printer.js +7 -0
  20. package/appFiles/node_modules/@babel/generator/lib/printer.js.map +1 -1
  21. package/appFiles/node_modules/@babel/generator/lib/source-map.js +40 -9
  22. package/appFiles/node_modules/@babel/generator/lib/source-map.js.map +1 -1
  23. package/appFiles/node_modules/@babel/generator/package.json +5 -5
  24. package/appFiles/node_modules/@babel/helper-function-name/lib/index.js +0 -31
  25. package/appFiles/node_modules/@babel/helper-function-name/lib/index.js.map +1 -1
  26. package/appFiles/node_modules/@babel/helper-function-name/package.json +3 -3
  27. package/appFiles/node_modules/@babel/parser/lib/index.js +1901 -1885
  28. package/appFiles/node_modules/@babel/parser/lib/index.js.map +1 -1
  29. package/appFiles/node_modules/@babel/parser/package.json +2 -2
  30. package/appFiles/node_modules/@babel/parser/typings/babel-parser.d.ts +12 -0
  31. package/appFiles/node_modules/@babel/runtime/helpers/applyDecs2203R.js +173 -170
  32. package/appFiles/node_modules/@babel/runtime/helpers/applyDecs2301.js +221 -0
  33. package/appFiles/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +173 -170
  34. package/appFiles/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +220 -0
  35. package/appFiles/node_modules/@babel/runtime/package.json +10 -1
  36. package/appFiles/node_modules/@babel/traverse/lib/path/modification.js.map +1 -1
  37. package/appFiles/node_modules/@babel/traverse/lib/visitors.js +11 -5
  38. package/appFiles/node_modules/@babel/traverse/lib/visitors.js.map +1 -1
  39. package/appFiles/node_modules/@babel/traverse/package.json +5 -5
  40. package/appFiles/node_modules/@babel/types/lib/asserts/generated/index.js +12 -7
  41. package/appFiles/node_modules/@babel/types/lib/asserts/generated/index.js.map +1 -1
  42. package/appFiles/node_modules/@babel/types/lib/ast-types/generated/index.js.map +1 -1
  43. package/appFiles/node_modules/@babel/types/lib/builders/generated/index.js +5 -5
  44. package/appFiles/node_modules/@babel/types/lib/builders/generated/index.js.map +1 -1
  45. package/appFiles/node_modules/@babel/types/lib/clone/cloneNode.js +2 -6
  46. package/appFiles/node_modules/@babel/types/lib/clone/cloneNode.js.map +1 -1
  47. package/appFiles/node_modules/@babel/types/lib/constants/generated/index.js +5 -4
  48. package/appFiles/node_modules/@babel/types/lib/constants/generated/index.js.map +1 -1
  49. package/appFiles/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -3
  50. package/appFiles/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +1 -1
  51. package/appFiles/node_modules/@babel/types/lib/converters/toComputedKey.js +1 -2
  52. package/appFiles/node_modules/@babel/types/lib/converters/toComputedKey.js.map +1 -1
  53. package/appFiles/node_modules/@babel/types/lib/converters/toExpression.js +0 -3
  54. package/appFiles/node_modules/@babel/types/lib/converters/toExpression.js.map +1 -1
  55. package/appFiles/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -3
  56. package/appFiles/node_modules/@babel/types/lib/converters/toIdentifier.js.map +1 -1
  57. package/appFiles/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -3
  58. package/appFiles/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +1 -1
  59. package/appFiles/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
  60. package/appFiles/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +1 -1
  61. package/appFiles/node_modules/@babel/types/lib/converters/toStatement.js +0 -3
  62. package/appFiles/node_modules/@babel/types/lib/converters/toStatement.js.map +1 -1
  63. package/appFiles/node_modules/@babel/types/lib/converters/valueToNode.js +1 -9
  64. package/appFiles/node_modules/@babel/types/lib/converters/valueToNode.js.map +1 -1
  65. package/appFiles/node_modules/@babel/types/lib/definitions/core.js +21 -57
  66. package/appFiles/node_modules/@babel/types/lib/definitions/core.js.map +1 -1
  67. package/appFiles/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +12 -0
  68. package/appFiles/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +1 -0
  69. package/appFiles/node_modules/@babel/types/lib/definitions/experimental.js +0 -3
  70. package/appFiles/node_modules/@babel/types/lib/definitions/experimental.js.map +1 -1
  71. package/appFiles/node_modules/@babel/types/lib/definitions/flow.js +0 -1
  72. package/appFiles/node_modules/@babel/types/lib/definitions/flow.js.map +1 -1
  73. package/appFiles/node_modules/@babel/types/lib/definitions/index.js +10 -0
  74. package/appFiles/node_modules/@babel/types/lib/definitions/index.js.map +1 -1
  75. package/appFiles/node_modules/@babel/types/lib/definitions/typescript.js +6 -4
  76. package/appFiles/node_modules/@babel/types/lib/definitions/typescript.js.map +1 -1
  77. package/appFiles/node_modules/@babel/types/lib/definitions/utils.js +0 -2
  78. package/appFiles/node_modules/@babel/types/lib/definitions/utils.js.map +1 -1
  79. package/appFiles/node_modules/@babel/types/lib/index-legacy.d.ts +10 -3
  80. package/appFiles/node_modules/@babel/types/lib/index.d.ts +23 -6
  81. package/appFiles/node_modules/@babel/types/lib/index.js +9 -2
  82. package/appFiles/node_modules/@babel/types/lib/index.js.flow +8 -3
  83. package/appFiles/node_modules/@babel/types/lib/index.js.map +1 -1
  84. package/appFiles/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +1 -9
  85. package/appFiles/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +1 -1
  86. package/appFiles/node_modules/@babel/types/lib/modifications/inherits.js +0 -3
  87. package/appFiles/node_modules/@babel/types/lib/modifications/inherits.js.map +1 -1
  88. package/appFiles/node_modules/@babel/types/lib/modifications/removeProperties.js +1 -3
  89. package/appFiles/node_modules/@babel/types/lib/modifications/removeProperties.js.map +1 -1
  90. package/appFiles/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -8
  91. package/appFiles/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +1 -1
  92. package/appFiles/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +2 -6
  93. package/appFiles/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +1 -1
  94. package/appFiles/node_modules/@babel/types/lib/traverse/traverseFast.js +1 -2
  95. package/appFiles/node_modules/@babel/types/lib/traverse/traverseFast.js.map +1 -1
  96. package/appFiles/node_modules/@babel/types/lib/utils/deprecationWarning.js +30 -0
  97. package/appFiles/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +1 -0
  98. package/appFiles/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -3
  99. package/appFiles/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +1 -1
  100. package/appFiles/node_modules/@babel/types/lib/utils/shallowEqual.js +1 -2
  101. package/appFiles/node_modules/@babel/types/lib/utils/shallowEqual.js.map +1 -1
  102. package/appFiles/node_modules/@babel/types/lib/validators/generated/index.js +11 -6
  103. package/appFiles/node_modules/@babel/types/lib/validators/generated/index.js.map +1 -1
  104. package/appFiles/node_modules/@babel/types/lib/validators/isBinding.js +2 -4
  105. package/appFiles/node_modules/@babel/types/lib/validators/isBinding.js.map +1 -1
  106. package/appFiles/node_modules/@babel/types/lib/validators/isLet.js +1 -2
  107. package/appFiles/node_modules/@babel/types/lib/validators/isLet.js.map +1 -1
  108. package/appFiles/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +1 -2
  109. package/appFiles/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +1 -1
  110. package/appFiles/node_modules/@babel/types/lib/validators/isReferenced.js +0 -21
  111. package/appFiles/node_modules/@babel/types/lib/validators/isReferenced.js.map +1 -1
  112. package/appFiles/node_modules/@babel/types/lib/validators/isScope.js +0 -1
  113. package/appFiles/node_modules/@babel/types/lib/validators/isScope.js.map +1 -1
  114. package/appFiles/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +1 -2
  115. package/appFiles/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +1 -1
  116. package/appFiles/node_modules/@babel/types/lib/validators/isType.js +0 -1
  117. package/appFiles/node_modules/@babel/types/lib/validators/isType.js.map +1 -1
  118. package/appFiles/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
  119. package/appFiles/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +1 -1
  120. package/appFiles/node_modules/@babel/types/lib/validators/isVar.js +1 -2
  121. package/appFiles/node_modules/@babel/types/lib/validators/isVar.js.map +1 -1
  122. package/appFiles/node_modules/@babel/types/package.json +3 -3
  123. package/appFiles/node_modules/css-to-react-native/index.d.ts +17 -0
  124. package/appFiles/node_modules/css-to-react-native/index.js +15 -0
  125. package/appFiles/node_modules/css-to-react-native/package.json +2 -1
  126. package/appFiles/node_modules/css-to-react-native/src/__tests__/aspectRatio.js +23 -0
  127. package/appFiles/node_modules/css-to-react-native/src/transforms/aspectRatio.js +12 -0
  128. package/appFiles/node_modules/css-to-react-native/src/transforms/index.js +2 -0
  129. package/appFiles/src/App.tsx +3 -5
  130. package/appFiles/src/fields/rich-text/monaco/mdx.js +2 -2
  131. package/appFiles/src/lib/machines/query-machine.ts +0 -13
  132. package/appFiles/src/preview.tsx +22 -0
  133. package/dist/index.js +3 -1
  134. package/package.json +4 -4
@@ -8,22 +8,17 @@ var _generated = require("../../validators/generated");
8
8
  function getQualifiedName(node) {
9
9
  return (0, _generated.isIdentifier)(node) ? node.name : `${node.id.name}.${getQualifiedName(node.qualification)}`;
10
10
  }
11
-
12
- function removeTypeDuplicates(
13
- nodes) {
11
+ function removeTypeDuplicates(nodes) {
14
12
  const generics = new Map();
15
13
  const bases = new Map();
16
-
17
14
  const typeGroups = new Set();
18
15
  const types = [];
19
16
  for (let i = 0; i < nodes.length; i++) {
20
17
  const node = nodes[i];
21
18
  if (!node) continue;
22
-
23
19
  if (types.indexOf(node) >= 0) {
24
20
  continue;
25
21
  }
26
-
27
22
  if ((0, _generated.isAnyTypeAnnotation)(node)) {
28
23
  return [node];
29
24
  }
@@ -38,7 +33,6 @@ nodes) {
38
33
  }
39
34
  continue;
40
35
  }
41
-
42
36
  if ((0, _generated.isGenericTypeAnnotation)(node)) {
43
37
  const name = getQualifiedName(node.id);
44
38
  if (generics.has(name)) {
@@ -57,11 +51,9 @@ nodes) {
57
51
  }
58
52
  types.push(node);
59
53
  }
60
-
61
54
  for (const [, baseType] of bases) {
62
55
  types.push(baseType);
63
56
  }
64
-
65
57
  for (const [, genericName] of generics) {
66
58
  types.push(genericName);
67
59
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getQualifiedName","node","isIdentifier","name","id","qualification","removeTypeDuplicates","nodes","generics","Map","bases","typeGroups","Set","types","i","length","indexOf","isAnyTypeAnnotation","isFlowBaseAnnotation","set","type","isUnionTypeAnnotation","has","concat","add","isGenericTypeAnnotation","existing","get","typeParameters","params","push","baseType","genericName"],"sources":["../../../src/modifications/flow/removeTypeDuplicates.ts"],"sourcesContent":["import {\n isAnyTypeAnnotation,\n isGenericTypeAnnotation,\n isUnionTypeAnnotation,\n isFlowBaseAnnotation,\n isIdentifier,\n} from \"../../validators/generated\";\nimport type * as t from \"../..\";\n\nfunction getQualifiedName(node: t.GenericTypeAnnotation[\"id\"]): string {\n return isIdentifier(node)\n ? node.name\n : `${node.id.name}.${getQualifiedName(node.qualification)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n // todo(babel-8): change type to Array<...>\n nodes: ReadonlyArray<t.FlowType | false | null | undefined>,\n): t.FlowType[] {\n const generics = new Map<string, t.GenericTypeAnnotation>();\n const bases = new Map<t.FlowBaseAnnotation[\"type\"], t.FlowBaseAnnotation>();\n\n // store union type groups to circular references\n const typeGroups = new Set<t.FlowType[]>();\n\n const types: t.FlowType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.indexOf(node) >= 0) {\n continue;\n }\n\n // this type matches anything\n if (isAnyTypeAnnotation(node)) {\n return [node];\n }\n\n if (isFlowBaseAnnotation(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isUnionTypeAnnotation(node)) {\n if (!typeGroups.has(node.types)) {\n // todo(babel-8): use .push when nodes is mutable\n nodes = nodes.concat(node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // find a matching generic type and merge and deduplicate the type parameters\n if (isGenericTypeAnnotation(node)) {\n const name = getQualifiedName(node.id);\n\n if (generics.has(name)) {\n let existing: t.Flow = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params = removeTypeDuplicates(\n existing.typeParameters.params.concat(node.typeParameters.params),\n );\n }\n } else {\n existing = node.typeParameters;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n"],"mappings":";;;;;;AAAA;AASA,SAASA,gBAAgB,CAACC,IAAmC,EAAU;EACrE,OAAO,IAAAC,uBAAY,EAACD,IAAI,CAAC,GACrBA,IAAI,CAACE,IAAI,GACR,GAAEF,IAAI,CAACG,EAAE,CAACD,IAAK,IAAGH,gBAAgB,CAACC,IAAI,CAACI,aAAa,CAAE,EAAC;AAC/D;;AAKe,SAASC,oBAAoB;AAE1CC,KAA2D,EAC7C;EACd,MAAMC,QAAQ,GAAG,IAAIC,GAAG,EAAmC;EAC3D,MAAMC,KAAK,GAAG,IAAID,GAAG,EAAsD;;EAG3E,MAAME,UAAU,GAAG,IAAIC,GAAG,EAAgB;EAE1C,MAAMC,KAAmB,GAAG,EAAE;EAE9B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,KAAK,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMb,IAAI,GAAGM,KAAK,CAACO,CAAC,CAAC;IACrB,IAAI,CAACb,IAAI,EAAE;;IAGX,IAAIY,KAAK,CAACG,OAAO,CAACf,IAAI,CAAC,IAAI,CAAC,EAAE;MAC5B;IACF;;IAGA,IAAI,IAAAgB,8BAAmB,EAAChB,IAAI,CAAC,EAAE;MAC7B,OAAO,CAACA,IAAI,CAAC;IACf;IAEA,IAAI,IAAAiB,+BAAoB,EAACjB,IAAI,CAAC,EAAE;MAC9BS,KAAK,CAACS,GAAG,CAAClB,IAAI,CAACmB,IAAI,EAAEnB,IAAI,CAAC;MAC1B;IACF;IAEA,IAAI,IAAAoB,gCAAqB,EAACpB,IAAI,CAAC,EAAE;MAC/B,IAAI,CAACU,UAAU,CAACW,GAAG,CAACrB,IAAI,CAACY,KAAK,CAAC,EAAE;QAE/BN,KAAK,GAAGA,KAAK,CAACgB,MAAM,CAACtB,IAAI,CAACY,KAAK,CAAC;QAChCF,UAAU,CAACa,GAAG,CAACvB,IAAI,CAACY,KAAK,CAAC;MAC5B;MACA;IACF;;IAGA,IAAI,IAAAY,kCAAuB,EAACxB,IAAI,CAAC,EAAE;MACjC,MAAME,IAAI,GAAGH,gBAAgB,CAACC,IAAI,CAACG,EAAE,CAAC;MAEtC,IAAII,QAAQ,CAACc,GAAG,CAACnB,IAAI,CAAC,EAAE;QACtB,IAAIuB,QAAgB,GAAGlB,QAAQ,CAACmB,GAAG,CAACxB,IAAI,CAAC;QACzC,IAAIuB,QAAQ,CAACE,cAAc,EAAE;UAC3B,IAAI3B,IAAI,CAAC2B,cAAc,EAAE;YACvBF,QAAQ,CAACE,cAAc,CAACC,MAAM,GAAGvB,oBAAoB,CACnDoB,QAAQ,CAACE,cAAc,CAACC,MAAM,CAACN,MAAM,CAACtB,IAAI,CAAC2B,cAAc,CAACC,MAAM,CAAC,CAClE;UACH;QACF,CAAC,MAAM;UACLH,QAAQ,GAAGzB,IAAI,CAAC2B,cAAc;QAChC;MACF,CAAC,MAAM;QACLpB,QAAQ,CAACW,GAAG,CAAChB,IAAI,EAAEF,IAAI,CAAC;MAC1B;MAEA;IACF;IAEAY,KAAK,CAACiB,IAAI,CAAC7B,IAAI,CAAC;EAClB;;EAGA,KAAK,MAAM,GAAG8B,QAAQ,CAAC,IAAIrB,KAAK,EAAE;IAChCG,KAAK,CAACiB,IAAI,CAACC,QAAQ,CAAC;EACtB;;EAGA,KAAK,MAAM,GAAGC,WAAW,CAAC,IAAIxB,QAAQ,EAAE;IACtCK,KAAK,CAACiB,IAAI,CAACE,WAAW,CAAC;EACzB;EAEA,OAAOnB,KAAK;AACd"}
1
+ {"version":3,"names":["getQualifiedName","node","isIdentifier","name","id","qualification","removeTypeDuplicates","nodes","generics","Map","bases","typeGroups","Set","types","i","length","indexOf","isAnyTypeAnnotation","isFlowBaseAnnotation","set","type","isUnionTypeAnnotation","has","concat","add","isGenericTypeAnnotation","existing","get","typeParameters","params","push","baseType","genericName"],"sources":["../../../src/modifications/flow/removeTypeDuplicates.ts"],"sourcesContent":["import {\n isAnyTypeAnnotation,\n isGenericTypeAnnotation,\n isUnionTypeAnnotation,\n isFlowBaseAnnotation,\n isIdentifier,\n} from \"../../validators/generated\";\nimport type * as t from \"../..\";\n\nfunction getQualifiedName(node: t.GenericTypeAnnotation[\"id\"]): string {\n return isIdentifier(node)\n ? node.name\n : `${node.id.name}.${getQualifiedName(node.qualification)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n // todo(babel-8): change type to Array<...>\n nodes: ReadonlyArray<t.FlowType | false | null | undefined>,\n): t.FlowType[] {\n const generics = new Map<string, t.GenericTypeAnnotation>();\n const bases = new Map<t.FlowBaseAnnotation[\"type\"], t.FlowBaseAnnotation>();\n\n // store union type groups to circular references\n const typeGroups = new Set<t.FlowType[]>();\n\n const types: t.FlowType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.indexOf(node) >= 0) {\n continue;\n }\n\n // this type matches anything\n if (isAnyTypeAnnotation(node)) {\n return [node];\n }\n\n if (isFlowBaseAnnotation(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isUnionTypeAnnotation(node)) {\n if (!typeGroups.has(node.types)) {\n // todo(babel-8): use .push when nodes is mutable\n nodes = nodes.concat(node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // find a matching generic type and merge and deduplicate the type parameters\n if (isGenericTypeAnnotation(node)) {\n const name = getQualifiedName(node.id);\n\n if (generics.has(name)) {\n let existing: t.Flow = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params = removeTypeDuplicates(\n existing.typeParameters.params.concat(node.typeParameters.params),\n );\n }\n } else {\n existing = node.typeParameters;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n"],"mappings":";;;;;;AAAA;AASA,SAASA,gBAAgB,CAACC,IAAmC,EAAU;EACrE,OAAO,IAAAC,uBAAY,EAACD,IAAI,CAAC,GACrBA,IAAI,CAACE,IAAI,GACR,GAAEF,IAAI,CAACG,EAAE,CAACD,IAAK,IAAGH,gBAAgB,CAACC,IAAI,CAACI,aAAa,CAAE,EAAC;AAC/D;AAKe,SAASC,oBAAoB,CAE1CC,KAA2D,EAC7C;EACd,MAAMC,QAAQ,GAAG,IAAIC,GAAG,EAAmC;EAC3D,MAAMC,KAAK,GAAG,IAAID,GAAG,EAAsD;EAG3E,MAAME,UAAU,GAAG,IAAIC,GAAG,EAAgB;EAE1C,MAAMC,KAAmB,GAAG,EAAE;EAE9B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,KAAK,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMb,IAAI,GAAGM,KAAK,CAACO,CAAC,CAAC;IACrB,IAAI,CAACb,IAAI,EAAE;IAGX,IAAIY,KAAK,CAACG,OAAO,CAACf,IAAI,CAAC,IAAI,CAAC,EAAE;MAC5B;IACF;IAGA,IAAI,IAAAgB,8BAAmB,EAAChB,IAAI,CAAC,EAAE;MAC7B,OAAO,CAACA,IAAI,CAAC;IACf;IAEA,IAAI,IAAAiB,+BAAoB,EAACjB,IAAI,CAAC,EAAE;MAC9BS,KAAK,CAACS,GAAG,CAAClB,IAAI,CAACmB,IAAI,EAAEnB,IAAI,CAAC;MAC1B;IACF;IAEA,IAAI,IAAAoB,gCAAqB,EAACpB,IAAI,CAAC,EAAE;MAC/B,IAAI,CAACU,UAAU,CAACW,GAAG,CAACrB,IAAI,CAACY,KAAK,CAAC,EAAE;QAE/BN,KAAK,GAAGA,KAAK,CAACgB,MAAM,CAACtB,IAAI,CAACY,KAAK,CAAC;QAChCF,UAAU,CAACa,GAAG,CAACvB,IAAI,CAACY,KAAK,CAAC;MAC5B;MACA;IACF;IAGA,IAAI,IAAAY,kCAAuB,EAACxB,IAAI,CAAC,EAAE;MACjC,MAAME,IAAI,GAAGH,gBAAgB,CAACC,IAAI,CAACG,EAAE,CAAC;MAEtC,IAAII,QAAQ,CAACc,GAAG,CAACnB,IAAI,CAAC,EAAE;QACtB,IAAIuB,QAAgB,GAAGlB,QAAQ,CAACmB,GAAG,CAACxB,IAAI,CAAC;QACzC,IAAIuB,QAAQ,CAACE,cAAc,EAAE;UAC3B,IAAI3B,IAAI,CAAC2B,cAAc,EAAE;YACvBF,QAAQ,CAACE,cAAc,CAACC,MAAM,GAAGvB,oBAAoB,CACnDoB,QAAQ,CAACE,cAAc,CAACC,MAAM,CAACN,MAAM,CAACtB,IAAI,CAAC2B,cAAc,CAACC,MAAM,CAAC,CAClE;UACH;QACF,CAAC,MAAM;UACLH,QAAQ,GAAGzB,IAAI,CAAC2B,cAAc;QAChC;MACF,CAAC,MAAM;QACLpB,QAAQ,CAACW,GAAG,CAAChB,IAAI,EAAEF,IAAI,CAAC;MAC1B;MAEA;IACF;IAEAY,KAAK,CAACiB,IAAI,CAAC7B,IAAI,CAAC;EAClB;EAGA,KAAK,MAAM,GAAG8B,QAAQ,CAAC,IAAIrB,KAAK,EAAE;IAChCG,KAAK,CAACiB,IAAI,CAACC,QAAQ,CAAC;EACtB;EAGA,KAAK,MAAM,GAAGC,WAAW,CAAC,IAAIxB,QAAQ,EAAE;IACtCK,KAAK,CAACiB,IAAI,CAACE,WAAW,CAAC;EACzB;EAEA,OAAOnB,KAAK;AACd"}
@@ -8,19 +8,16 @@ var _constants = require("../constants");
8
8
  var _inheritsComments = require("../comments/inheritsComments");
9
9
  function inherits(child, parent) {
10
10
  if (!child || !parent) return child;
11
-
12
11
  for (const key of _constants.INHERIT_KEYS.optional) {
13
12
  if (child[key] == null) {
14
13
  child[key] = parent[key];
15
14
  }
16
15
  }
17
-
18
16
  for (const key of Object.keys(parent)) {
19
17
  if (key[0] === "_" && key !== "__clone") {
20
18
  child[key] = parent[key];
21
19
  }
22
20
  }
23
-
24
21
  for (const key of _constants.INHERIT_KEYS.force) {
25
22
  child[key] = parent[key];
26
23
  }
@@ -1 +1 @@
1
- {"version":3,"names":["inherits","child","parent","key","INHERIT_KEYS","optional","Object","keys","force","inheritsComments"],"sources":["../../src/modifications/inherits.ts"],"sourcesContent":["import { INHERIT_KEYS } from \"../constants\";\nimport inheritsComments from \"../comments/inheritsComments\";\nimport type * as t from \"..\";\n\n/**\n * Inherit all contextual properties from `parent` node to `child` node.\n */\nexport default function inherits<T extends t.Node | null | undefined>(\n child: T,\n parent: t.Node | null | undefined,\n): T {\n if (!child || !parent) return child;\n\n // optionally inherit specific properties if not null\n for (const key of INHERIT_KEYS.optional) {\n // @ts-expect-error Fixme: refine parent types\n if (child[key] == null) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit \"private\" properties\n for (const key of Object.keys(parent)) {\n if (key[0] === \"_\" && key !== \"__clone\") {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit select properties\n for (const key of INHERIT_KEYS.force) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n\n inheritsComments(child, parent);\n\n return child;\n}\n"],"mappings":";;;;;;AAAA;AACA;AAMe,SAASA,QAAQ,CAC9BC,KAAQ,EACRC,MAAiC,EAC9B;EACH,IAAI,CAACD,KAAK,IAAI,CAACC,MAAM,EAAE,OAAOD,KAAK;;EAGnC,KAAK,MAAME,GAAG,IAAIC,uBAAY,CAACC,QAAQ,EAAE;IAEvC,IAAIJ,KAAK,CAACE,GAAG,CAAC,IAAI,IAAI,EAAE;MAEtBF,KAAK,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;IAC1B;EACF;;EAGA,KAAK,MAAMA,GAAG,IAAIG,MAAM,CAACC,IAAI,CAACL,MAAM,CAAC,EAAE;IACrC,IAAIC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,GAAG,KAAK,SAAS,EAAE;MAEvCF,KAAK,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;IAC1B;EACF;;EAGA,KAAK,MAAMA,GAAG,IAAIC,uBAAY,CAACI,KAAK,EAAE;IAEpCP,KAAK,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;EAC1B;EAEA,IAAAM,yBAAgB,EAACR,KAAK,EAAEC,MAAM,CAAC;EAE/B,OAAOD,KAAK;AACd"}
1
+ {"version":3,"names":["inherits","child","parent","key","INHERIT_KEYS","optional","Object","keys","force","inheritsComments"],"sources":["../../src/modifications/inherits.ts"],"sourcesContent":["import { INHERIT_KEYS } from \"../constants\";\nimport inheritsComments from \"../comments/inheritsComments\";\nimport type * as t from \"..\";\n\n/**\n * Inherit all contextual properties from `parent` node to `child` node.\n */\nexport default function inherits<T extends t.Node | null | undefined>(\n child: T,\n parent: t.Node | null | undefined,\n): T {\n if (!child || !parent) return child;\n\n // optionally inherit specific properties if not null\n for (const key of INHERIT_KEYS.optional) {\n // @ts-expect-error Fixme: refine parent types\n if (child[key] == null) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit \"private\" properties\n for (const key of Object.keys(parent)) {\n if (key[0] === \"_\" && key !== \"__clone\") {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit select properties\n for (const key of INHERIT_KEYS.force) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n\n inheritsComments(child, parent);\n\n return child;\n}\n"],"mappings":";;;;;;AAAA;AACA;AAMe,SAASA,QAAQ,CAC9BC,KAAQ,EACRC,MAAiC,EAC9B;EACH,IAAI,CAACD,KAAK,IAAI,CAACC,MAAM,EAAE,OAAOD,KAAK;EAGnC,KAAK,MAAME,GAAG,IAAIC,uBAAY,CAACC,QAAQ,EAAE;IAEvC,IAAIJ,KAAK,CAACE,GAAG,CAAC,IAAI,IAAI,EAAE;MAEtBF,KAAK,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;IAC1B;EACF;EAGA,KAAK,MAAMA,GAAG,IAAIG,MAAM,CAACC,IAAI,CAACL,MAAM,CAAC,EAAE;IACrC,IAAIC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIA,GAAG,KAAK,SAAS,EAAE;MAEvCF,KAAK,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;IAC1B;EACF;EAGA,KAAK,MAAMA,GAAG,IAAIC,uBAAY,CAACI,KAAK,EAAE;IAEpCP,KAAK,CAACE,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;EAC1B;EAEA,IAAAM,yBAAgB,EAACR,KAAK,EAAEC,MAAM,CAAC;EAE/B,OAAOD,KAAK;AACd"}
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = removeProperties;
7
7
  var _constants = require("../constants");
8
- const CLEAR_KEYS = ["tokens",
9
- "start", "end", "loc",
10
- "raw", "rawValue"];
8
+ const CLEAR_KEYS = ["tokens", "start", "end", "loc", "raw", "rawValue"];
11
9
  const CLEAR_KEYS_PLUS_COMMENTS = [..._constants.COMMENT_KEYS, "comments", ...CLEAR_KEYS];
12
10
  function removeProperties(node, opts = {}) {
13
11
  const map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS;
@@ -1 +1 @@
1
- {"version":3,"names":["CLEAR_KEYS","CLEAR_KEYS_PLUS_COMMENTS","COMMENT_KEYS","removeProperties","node","opts","map","preserveComments","key","undefined","Object","keys","symbols","getOwnPropertySymbols","sym"],"sources":["../../src/modifications/removeProperties.ts"],"sourcesContent":["import { COMMENT_KEYS } from \"../constants\";\nimport type * as t from \"..\";\n\nconst CLEAR_KEYS = [\n \"tokens\", // only exist in t.File\n \"start\",\n \"end\",\n \"loc\",\n // Fixme: should be extra.raw / extra.rawValue?\n \"raw\",\n \"rawValue\",\n] as const;\n\nconst CLEAR_KEYS_PLUS_COMMENTS = [\n ...COMMENT_KEYS,\n \"comments\",\n ...CLEAR_KEYS,\n] as const;\n\nexport type Options = { preserveComments?: boolean };\n/**\n * Remove all of the _* properties from a node along with the additional metadata\n * properties like location data and raw token data.\n */\nexport default function removeProperties(\n node: t.Node,\n opts: Options = {},\n): void {\n const map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS;\n for (const key of map) {\n // @ts-expect-error tokens only exist in t.File\n if (node[key] != null) node[key] = undefined;\n }\n\n for (const key of Object.keys(node)) {\n // @ts-expect-error string can not index node\n if (key[0] === \"_\" && node[key] != null) node[key] = undefined;\n }\n\n const symbols: Array<symbol> = Object.getOwnPropertySymbols(node);\n for (const sym of symbols) {\n // @ts-expect-error Fixme: document symbol properties\n node[sym] = null;\n }\n}\n"],"mappings":";;;;;;AAAA;AAGA,MAAMA,UAAU,GAAG,CACjB,QAAQ;AACR,OAAO,EACP,KAAK,EACL,KAAK;AAEL,KAAK,EACL,UAAU,CACF;AAEV,MAAMC,wBAAwB,GAAG,CAC/B,GAAGC,uBAAY,EACf,UAAU,EACV,GAAGF,UAAU,CACL;AAOK,SAASG,gBAAgB,CACtCC,IAAY,EACZC,IAAa,GAAG,CAAC,CAAC,EACZ;EACN,MAAMC,GAAG,GAAGD,IAAI,CAACE,gBAAgB,GAAGP,UAAU,GAAGC,wBAAwB;EACzE,KAAK,MAAMO,GAAG,IAAIF,GAAG,EAAE;IAErB,IAAIF,IAAI,CAACI,GAAG,CAAC,IAAI,IAAI,EAAEJ,IAAI,CAACI,GAAG,CAAC,GAAGC,SAAS;EAC9C;EAEA,KAAK,MAAMD,GAAG,IAAIE,MAAM,CAACC,IAAI,CAACP,IAAI,CAAC,EAAE;IAEnC,IAAII,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIJ,IAAI,CAACI,GAAG,CAAC,IAAI,IAAI,EAAEJ,IAAI,CAACI,GAAG,CAAC,GAAGC,SAAS;EAChE;EAEA,MAAMG,OAAsB,GAAGF,MAAM,CAACG,qBAAqB,CAACT,IAAI,CAAC;EACjE,KAAK,MAAMU,GAAG,IAAIF,OAAO,EAAE;IAEzBR,IAAI,CAACU,GAAG,CAAC,GAAG,IAAI;EAClB;AACF"}
1
+ {"version":3,"names":["CLEAR_KEYS","CLEAR_KEYS_PLUS_COMMENTS","COMMENT_KEYS","removeProperties","node","opts","map","preserveComments","key","undefined","Object","keys","symbols","getOwnPropertySymbols","sym"],"sources":["../../src/modifications/removeProperties.ts"],"sourcesContent":["import { COMMENT_KEYS } from \"../constants\";\nimport type * as t from \"..\";\n\nconst CLEAR_KEYS = [\n \"tokens\", // only exist in t.File\n \"start\",\n \"end\",\n \"loc\",\n // Fixme: should be extra.raw / extra.rawValue?\n \"raw\",\n \"rawValue\",\n] as const;\n\nconst CLEAR_KEYS_PLUS_COMMENTS = [\n ...COMMENT_KEYS,\n \"comments\",\n ...CLEAR_KEYS,\n] as const;\n\nexport type Options = { preserveComments?: boolean };\n/**\n * Remove all of the _* properties from a node along with the additional metadata\n * properties like location data and raw token data.\n */\nexport default function removeProperties(\n node: t.Node,\n opts: Options = {},\n): void {\n const map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS;\n for (const key of map) {\n // @ts-expect-error tokens only exist in t.File\n if (node[key] != null) node[key] = undefined;\n }\n\n for (const key of Object.keys(node)) {\n // @ts-expect-error string can not index node\n if (key[0] === \"_\" && node[key] != null) node[key] = undefined;\n }\n\n const symbols: Array<symbol> = Object.getOwnPropertySymbols(node);\n for (const sym of symbols) {\n // @ts-expect-error Fixme: document symbol properties\n node[sym] = null;\n }\n}\n"],"mappings":";;;;;;AAAA;AAGA,MAAMA,UAAU,GAAG,CACjB,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EAEL,KAAK,EACL,UAAU,CACF;AAEV,MAAMC,wBAAwB,GAAG,CAC/B,GAAGC,uBAAY,EACf,UAAU,EACV,GAAGF,UAAU,CACL;AAOK,SAASG,gBAAgB,CACtCC,IAAY,EACZC,IAAa,GAAG,CAAC,CAAC,EACZ;EACN,MAAMC,GAAG,GAAGD,IAAI,CAACE,gBAAgB,GAAGP,UAAU,GAAGC,wBAAwB;EACzE,KAAK,MAAMO,GAAG,IAAIF,GAAG,EAAE;IAErB,IAAIF,IAAI,CAACI,GAAG,CAAC,IAAI,IAAI,EAAEJ,IAAI,CAACI,GAAG,CAAC,GAAGC,SAAS;EAC9C;EAEA,KAAK,MAAMD,GAAG,IAAIE,MAAM,CAACC,IAAI,CAACP,IAAI,CAAC,EAAE;IAEnC,IAAII,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAIJ,IAAI,CAACI,GAAG,CAAC,IAAI,IAAI,EAAEJ,IAAI,CAACI,GAAG,CAAC,GAAGC,SAAS;EAChE;EAEA,MAAMG,OAAsB,GAAGF,MAAM,CAACG,qBAAqB,CAACT,IAAI,CAAC;EACjE,KAAK,MAAMU,GAAG,IAAIF,OAAO,EAAE;IAEzBR,IAAI,CAACU,GAAG,CAAC,GAAG,IAAI;EAClB;AACF"}
@@ -8,25 +8,20 @@ var _generated = require("../../validators/generated");
8
8
  function getQualifiedName(node) {
9
9
  return (0, _generated.isIdentifier)(node) ? node.name : `${node.right.name}.${getQualifiedName(node.left)}`;
10
10
  }
11
-
12
11
  function removeTypeDuplicates(nodes) {
13
12
  const generics = new Map();
14
13
  const bases = new Map();
15
-
16
14
  const typeGroups = new Set();
17
15
  const types = [];
18
16
  for (let i = 0; i < nodes.length; i++) {
19
17
  const node = nodes[i];
20
18
  if (!node) continue;
21
-
22
19
  if (types.indexOf(node) >= 0) {
23
20
  continue;
24
21
  }
25
-
26
22
  if ((0, _generated.isTSAnyKeyword)(node)) {
27
23
  return [node];
28
24
  }
29
-
30
25
  if ((0, _generated.isTSBaseType)(node)) {
31
26
  bases.set(node.type, node);
32
27
  continue;
@@ -38,7 +33,6 @@ function removeTypeDuplicates(nodes) {
38
33
  }
39
34
  continue;
40
35
  }
41
-
42
36
  if ((0, _generated.isTSTypeReference)(node) && node.typeParameters) {
43
37
  const name = getQualifiedName(node.typeName);
44
38
  if (generics.has(name)) {
@@ -57,11 +51,9 @@ function removeTypeDuplicates(nodes) {
57
51
  }
58
52
  types.push(node);
59
53
  }
60
-
61
54
  for (const [, baseType] of bases) {
62
55
  types.push(baseType);
63
56
  }
64
-
65
57
  for (const [, genericName] of generics) {
66
58
  types.push(genericName);
67
59
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getQualifiedName","node","isIdentifier","name","right","left","removeTypeDuplicates","nodes","generics","Map","bases","typeGroups","Set","types","i","length","indexOf","isTSAnyKeyword","isTSBaseType","set","type","isTSUnionType","has","push","add","isTSTypeReference","typeParameters","typeName","existing","get","params","concat","baseType","genericName"],"sources":["../../../src/modifications/typescript/removeTypeDuplicates.ts"],"sourcesContent":["import {\n isIdentifier,\n isTSAnyKeyword,\n isTSTypeReference,\n isTSUnionType,\n isTSBaseType,\n} from \"../../validators/generated\";\nimport type * as t from \"../..\";\n\nfunction getQualifiedName(node: t.TSTypeReference[\"typeName\"]): string {\n return isIdentifier(node)\n ? node.name\n : `${node.right.name}.${getQualifiedName(node.left)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n nodes: Array<t.TSType>,\n): Array<t.TSType> {\n const generics = new Map<string, t.TSTypeReference>();\n const bases = new Map<t.TSBaseType[\"type\"], t.TSBaseType>();\n\n // store union type groups to circular references\n const typeGroups = new Set<t.TSType[]>();\n\n const types: t.TSType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.indexOf(node) >= 0) {\n continue;\n }\n\n // this type matches anything\n if (isTSAnyKeyword(node)) {\n return [node];\n }\n\n // Analogue of FlowBaseAnnotation\n if (isTSBaseType(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isTSUnionType(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // todo: support merging tuples: number[]\n if (isTSTypeReference(node) && node.typeParameters) {\n const name = getQualifiedName(node.typeName);\n\n if (generics.has(name)) {\n let existing: t.TypeScript = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params = removeTypeDuplicates(\n existing.typeParameters.params.concat(node.typeParameters.params),\n );\n }\n } else {\n existing = node.typeParameters;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n"],"mappings":";;;;;;AAAA;AASA,SAASA,gBAAgB,CAACC,IAAmC,EAAU;EACrE,OAAO,IAAAC,uBAAY,EAACD,IAAI,CAAC,GACrBA,IAAI,CAACE,IAAI,GACR,GAAEF,IAAI,CAACG,KAAK,CAACD,IAAK,IAAGH,gBAAgB,CAACC,IAAI,CAACI,IAAI,CAAE,EAAC;AACzD;;AAKe,SAASC,oBAAoB,CAC1CC,KAAsB,EACL;EACjB,MAAMC,QAAQ,GAAG,IAAIC,GAAG,EAA6B;EACrD,MAAMC,KAAK,GAAG,IAAID,GAAG,EAAsC;;EAG3D,MAAME,UAAU,GAAG,IAAIC,GAAG,EAAc;EAExC,MAAMC,KAAiB,GAAG,EAAE;EAE5B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,KAAK,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMb,IAAI,GAAGM,KAAK,CAACO,CAAC,CAAC;IACrB,IAAI,CAACb,IAAI,EAAE;;IAGX,IAAIY,KAAK,CAACG,OAAO,CAACf,IAAI,CAAC,IAAI,CAAC,EAAE;MAC5B;IACF;;IAGA,IAAI,IAAAgB,yBAAc,EAAChB,IAAI,CAAC,EAAE;MACxB,OAAO,CAACA,IAAI,CAAC;IACf;;IAGA,IAAI,IAAAiB,uBAAY,EAACjB,IAAI,CAAC,EAAE;MACtBS,KAAK,CAACS,GAAG,CAAClB,IAAI,CAACmB,IAAI,EAAEnB,IAAI,CAAC;MAC1B;IACF;IAEA,IAAI,IAAAoB,wBAAa,EAACpB,IAAI,CAAC,EAAE;MACvB,IAAI,CAACU,UAAU,CAACW,GAAG,CAACrB,IAAI,CAACY,KAAK,CAAC,EAAE;QAC/BN,KAAK,CAACgB,IAAI,CAAC,GAAGtB,IAAI,CAACY,KAAK,CAAC;QACzBF,UAAU,CAACa,GAAG,CAACvB,IAAI,CAACY,KAAK,CAAC;MAC5B;MACA;IACF;;IAGA,IAAI,IAAAY,4BAAiB,EAACxB,IAAI,CAAC,IAAIA,IAAI,CAACyB,cAAc,EAAE;MAClD,MAAMvB,IAAI,GAAGH,gBAAgB,CAACC,IAAI,CAAC0B,QAAQ,CAAC;MAE5C,IAAInB,QAAQ,CAACc,GAAG,CAACnB,IAAI,CAAC,EAAE;QACtB,IAAIyB,QAAsB,GAAGpB,QAAQ,CAACqB,GAAG,CAAC1B,IAAI,CAAC;QAC/C,IAAIyB,QAAQ,CAACF,cAAc,EAAE;UAC3B,IAAIzB,IAAI,CAACyB,cAAc,EAAE;YACvBE,QAAQ,CAACF,cAAc,CAACI,MAAM,GAAGxB,oBAAoB,CACnDsB,QAAQ,CAACF,cAAc,CAACI,MAAM,CAACC,MAAM,CAAC9B,IAAI,CAACyB,cAAc,CAACI,MAAM,CAAC,CAClE;UACH;QACF,CAAC,MAAM;UACLF,QAAQ,GAAG3B,IAAI,CAACyB,cAAc;QAChC;MACF,CAAC,MAAM;QACLlB,QAAQ,CAACW,GAAG,CAAChB,IAAI,EAAEF,IAAI,CAAC;MAC1B;MAEA;IACF;IAEAY,KAAK,CAACU,IAAI,CAACtB,IAAI,CAAC;EAClB;;EAGA,KAAK,MAAM,GAAG+B,QAAQ,CAAC,IAAItB,KAAK,EAAE;IAChCG,KAAK,CAACU,IAAI,CAACS,QAAQ,CAAC;EACtB;;EAGA,KAAK,MAAM,GAAGC,WAAW,CAAC,IAAIzB,QAAQ,EAAE;IACtCK,KAAK,CAACU,IAAI,CAACU,WAAW,CAAC;EACzB;EAEA,OAAOpB,KAAK;AACd"}
1
+ {"version":3,"names":["getQualifiedName","node","isIdentifier","name","right","left","removeTypeDuplicates","nodes","generics","Map","bases","typeGroups","Set","types","i","length","indexOf","isTSAnyKeyword","isTSBaseType","set","type","isTSUnionType","has","push","add","isTSTypeReference","typeParameters","typeName","existing","get","params","concat","baseType","genericName"],"sources":["../../../src/modifications/typescript/removeTypeDuplicates.ts"],"sourcesContent":["import {\n isIdentifier,\n isTSAnyKeyword,\n isTSTypeReference,\n isTSUnionType,\n isTSBaseType,\n} from \"../../validators/generated\";\nimport type * as t from \"../..\";\n\nfunction getQualifiedName(node: t.TSTypeReference[\"typeName\"]): string {\n return isIdentifier(node)\n ? node.name\n : `${node.right.name}.${getQualifiedName(node.left)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n nodes: Array<t.TSType>,\n): Array<t.TSType> {\n const generics = new Map<string, t.TSTypeReference>();\n const bases = new Map<t.TSBaseType[\"type\"], t.TSBaseType>();\n\n // store union type groups to circular references\n const typeGroups = new Set<t.TSType[]>();\n\n const types: t.TSType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.indexOf(node) >= 0) {\n continue;\n }\n\n // this type matches anything\n if (isTSAnyKeyword(node)) {\n return [node];\n }\n\n // Analogue of FlowBaseAnnotation\n if (isTSBaseType(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isTSUnionType(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // todo: support merging tuples: number[]\n if (isTSTypeReference(node) && node.typeParameters) {\n const name = getQualifiedName(node.typeName);\n\n if (generics.has(name)) {\n let existing: t.TypeScript = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params = removeTypeDuplicates(\n existing.typeParameters.params.concat(node.typeParameters.params),\n );\n }\n } else {\n existing = node.typeParameters;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n"],"mappings":";;;;;;AAAA;AASA,SAASA,gBAAgB,CAACC,IAAmC,EAAU;EACrE,OAAO,IAAAC,uBAAY,EAACD,IAAI,CAAC,GACrBA,IAAI,CAACE,IAAI,GACR,GAAEF,IAAI,CAACG,KAAK,CAACD,IAAK,IAAGH,gBAAgB,CAACC,IAAI,CAACI,IAAI,CAAE,EAAC;AACzD;AAKe,SAASC,oBAAoB,CAC1CC,KAAsB,EACL;EACjB,MAAMC,QAAQ,GAAG,IAAIC,GAAG,EAA6B;EACrD,MAAMC,KAAK,GAAG,IAAID,GAAG,EAAsC;EAG3D,MAAME,UAAU,GAAG,IAAIC,GAAG,EAAc;EAExC,MAAMC,KAAiB,GAAG,EAAE;EAE5B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,KAAK,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMb,IAAI,GAAGM,KAAK,CAACO,CAAC,CAAC;IACrB,IAAI,CAACb,IAAI,EAAE;IAGX,IAAIY,KAAK,CAACG,OAAO,CAACf,IAAI,CAAC,IAAI,CAAC,EAAE;MAC5B;IACF;IAGA,IAAI,IAAAgB,yBAAc,EAAChB,IAAI,CAAC,EAAE;MACxB,OAAO,CAACA,IAAI,CAAC;IACf;IAGA,IAAI,IAAAiB,uBAAY,EAACjB,IAAI,CAAC,EAAE;MACtBS,KAAK,CAACS,GAAG,CAAClB,IAAI,CAACmB,IAAI,EAAEnB,IAAI,CAAC;MAC1B;IACF;IAEA,IAAI,IAAAoB,wBAAa,EAACpB,IAAI,CAAC,EAAE;MACvB,IAAI,CAACU,UAAU,CAACW,GAAG,CAACrB,IAAI,CAACY,KAAK,CAAC,EAAE;QAC/BN,KAAK,CAACgB,IAAI,CAAC,GAAGtB,IAAI,CAACY,KAAK,CAAC;QACzBF,UAAU,CAACa,GAAG,CAACvB,IAAI,CAACY,KAAK,CAAC;MAC5B;MACA;IACF;IAGA,IAAI,IAAAY,4BAAiB,EAACxB,IAAI,CAAC,IAAIA,IAAI,CAACyB,cAAc,EAAE;MAClD,MAAMvB,IAAI,GAAGH,gBAAgB,CAACC,IAAI,CAAC0B,QAAQ,CAAC;MAE5C,IAAInB,QAAQ,CAACc,GAAG,CAACnB,IAAI,CAAC,EAAE;QACtB,IAAIyB,QAAsB,GAAGpB,QAAQ,CAACqB,GAAG,CAAC1B,IAAI,CAAC;QAC/C,IAAIyB,QAAQ,CAACF,cAAc,EAAE;UAC3B,IAAIzB,IAAI,CAACyB,cAAc,EAAE;YACvBE,QAAQ,CAACF,cAAc,CAACI,MAAM,GAAGxB,oBAAoB,CACnDsB,QAAQ,CAACF,cAAc,CAACI,MAAM,CAACC,MAAM,CAAC9B,IAAI,CAACyB,cAAc,CAACI,MAAM,CAAC,CAClE;UACH;QACF,CAAC,MAAM;UACLF,QAAQ,GAAG3B,IAAI,CAACyB,cAAc;QAChC;MACF,CAAC,MAAM;QACLlB,QAAQ,CAACW,GAAG,CAAChB,IAAI,EAAEF,IAAI,CAAC;MAC1B;MAEA;IACF;IAEAY,KAAK,CAACU,IAAI,CAACtB,IAAI,CAAC;EAClB;EAGA,KAAK,MAAM,GAAG+B,QAAQ,CAAC,IAAItB,KAAK,EAAE;IAChCG,KAAK,CAACU,IAAI,CAACS,QAAQ,CAAC;EACtB;EAGA,KAAK,MAAM,GAAGC,WAAW,CAAC,IAAIzB,QAAQ,EAAE;IACtCK,KAAK,CAACU,IAAI,CAACU,WAAW,CAAC;EACzB;EAEA,OAAOpB,KAAK;AACd"}
@@ -11,8 +11,7 @@ function getBindingIdentifiers(node, duplicates, outerOnly) {
11
11
  while (search.length) {
12
12
  const id = search.shift();
13
13
  if (!id) continue;
14
- const keys =
15
- getBindingIdentifiers.keys[id.type];
14
+ const keys = getBindingIdentifiers.keys[id.type];
16
15
  if ((0, _generated.isIdentifier)(id)) {
17
16
  if (duplicates) {
18
17
  const _ids = ids[id.name] = ids[id.name] || [];
@@ -40,18 +39,15 @@ function getBindingIdentifiers(node, duplicates, outerOnly) {
40
39
  if (keys) {
41
40
  for (let i = 0; i < keys.length; i++) {
42
41
  const key = keys[i];
43
- const nodes =
44
- id[key];
42
+ const nodes = id[key];
45
43
  if (nodes) {
46
44
  Array.isArray(nodes) ? search.push(...nodes) : search.push(nodes);
47
45
  }
48
46
  }
49
47
  }
50
48
  }
51
-
52
49
  return ids;
53
50
  }
54
-
55
51
  getBindingIdentifiers.keys = {
56
52
  DeclareClass: ["id"],
57
53
  DeclareFunction: ["id"],
@@ -1 +1 @@
1
- {"version":3,"names":["getBindingIdentifiers","node","duplicates","outerOnly","search","concat","ids","Object","create","length","id","shift","keys","type","isIdentifier","_ids","name","push","isExportDeclaration","isExportAllDeclaration","isDeclaration","declaration","isFunctionDeclaration","isFunctionExpression","i","key","nodes","Array","isArray","DeclareClass","DeclareFunction","DeclareModule","DeclareVariable","DeclareInterface","DeclareTypeAlias","DeclareOpaqueType","InterfaceDeclaration","TypeAlias","OpaqueType","CatchClause","LabeledStatement","UnaryExpression","AssignmentExpression","ImportSpecifier","ImportNamespaceSpecifier","ImportDefaultSpecifier","ImportDeclaration","ExportSpecifier","ExportNamespaceSpecifier","ExportDefaultSpecifier","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ObjectMethod","ClassMethod","ClassPrivateMethod","ForInStatement","ForOfStatement","ClassDeclaration","ClassExpression","RestElement","UpdateExpression","ObjectProperty","AssignmentPattern","ArrayPattern","ObjectPattern","VariableDeclaration","VariableDeclarator"],"sources":["../../src/retrievers/getBindingIdentifiers.ts"],"sourcesContent":["import {\n isExportDeclaration,\n isIdentifier,\n isDeclaration,\n isFunctionDeclaration,\n isFunctionExpression,\n isExportAllDeclaration,\n} from \"../validators/generated\";\nimport type * as t from \"..\";\n\nexport { getBindingIdentifiers as default };\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates: true,\n outerOnly?: boolean,\n): Record<string, Array<t.Identifier>>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: false,\n outerOnly?: boolean,\n): Record<string, t.Identifier>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>>;\n\n/**\n * Return a list of binding identifiers associated with the input `node`.\n */\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>> {\n const search: t.Node[] = [].concat(node);\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n\n const keys =\n // @ts-expect-error getBindingIdentifiers.keys do not cover all AST types\n getBindingIdentifiers.keys[id.type];\n\n if (isIdentifier(id)) {\n if (duplicates) {\n const _ids = (ids[id.name] = ids[id.name] || []);\n _ids.push(id);\n } else {\n ids[id.name] = id;\n }\n continue;\n }\n\n if (isExportDeclaration(id) && !isExportAllDeclaration(id)) {\n if (isDeclaration(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (isFunctionDeclaration(id)) {\n search.push(id.id);\n continue;\n }\n\n if (isFunctionExpression(id)) {\n continue;\n }\n }\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const nodes =\n // @ts-expect-error key must present in id\n id[key] as t.Node[] | t.Node | undefined | null;\n if (nodes) {\n Array.isArray(nodes) ? search.push(...nodes) : search.push(nodes);\n }\n }\n }\n }\n\n // $FlowIssue Object.create() seems broken\n return ids;\n}\n\n/**\n * Mapping of types to their identifier keys.\n */\ngetBindingIdentifiers.keys = {\n DeclareClass: [\"id\"],\n DeclareFunction: [\"id\"],\n DeclareModule: [\"id\"],\n DeclareVariable: [\"id\"],\n DeclareInterface: [\"id\"],\n DeclareTypeAlias: [\"id\"],\n DeclareOpaqueType: [\"id\"],\n InterfaceDeclaration: [\"id\"],\n TypeAlias: [\"id\"],\n OpaqueType: [\"id\"],\n\n CatchClause: [\"param\"],\n LabeledStatement: [\"label\"],\n UnaryExpression: [\"argument\"],\n AssignmentExpression: [\"left\"],\n\n ImportSpecifier: [\"local\"],\n ImportNamespaceSpecifier: [\"local\"],\n ImportDefaultSpecifier: [\"local\"],\n ImportDeclaration: [\"specifiers\"],\n\n ExportSpecifier: [\"exported\"],\n ExportNamespaceSpecifier: [\"exported\"],\n ExportDefaultSpecifier: [\"exported\"],\n\n FunctionDeclaration: [\"id\", \"params\"],\n FunctionExpression: [\"id\", \"params\"],\n ArrowFunctionExpression: [\"params\"],\n ObjectMethod: [\"params\"],\n ClassMethod: [\"params\"],\n ClassPrivateMethod: [\"params\"],\n\n ForInStatement: [\"left\"],\n ForOfStatement: [\"left\"],\n\n ClassDeclaration: [\"id\"],\n ClassExpression: [\"id\"],\n\n RestElement: [\"argument\"],\n UpdateExpression: [\"argument\"],\n\n ObjectProperty: [\"value\"],\n\n AssignmentPattern: [\"left\"],\n ArrayPattern: [\"elements\"],\n ObjectPattern: [\"properties\"],\n\n VariableDeclaration: [\"declarations\"],\n VariableDeclarator: [\"id\"],\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["getBindingIdentifiers","node","duplicates","outerOnly","search","concat","ids","Object","create","length","id","shift","keys","type","isIdentifier","_ids","name","push","isExportDeclaration","isExportAllDeclaration","isDeclaration","declaration","isFunctionDeclaration","isFunctionExpression","i","key","nodes","Array","isArray","DeclareClass","DeclareFunction","DeclareModule","DeclareVariable","DeclareInterface","DeclareTypeAlias","DeclareOpaqueType","InterfaceDeclaration","TypeAlias","OpaqueType","CatchClause","LabeledStatement","UnaryExpression","AssignmentExpression","ImportSpecifier","ImportNamespaceSpecifier","ImportDefaultSpecifier","ImportDeclaration","ExportSpecifier","ExportNamespaceSpecifier","ExportDefaultSpecifier","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ObjectMethod","ClassMethod","ClassPrivateMethod","ForInStatement","ForOfStatement","ClassDeclaration","ClassExpression","RestElement","UpdateExpression","ObjectProperty","AssignmentPattern","ArrayPattern","ObjectPattern","VariableDeclaration","VariableDeclarator"],"sources":["../../src/retrievers/getBindingIdentifiers.ts"],"sourcesContent":["import {\n isExportDeclaration,\n isIdentifier,\n isDeclaration,\n isFunctionDeclaration,\n isFunctionExpression,\n isExportAllDeclaration,\n} from \"../validators/generated\";\nimport type * as t from \"..\";\n\nexport { getBindingIdentifiers as default };\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates: true,\n outerOnly?: boolean,\n): Record<string, Array<t.Identifier>>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: false,\n outerOnly?: boolean,\n): Record<string, t.Identifier>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>>;\n\n/**\n * Return a list of binding identifiers associated with the input `node`.\n */\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>> {\n const search: t.Node[] = [].concat(node);\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n\n const keys =\n // @ts-expect-error getBindingIdentifiers.keys do not cover all AST types\n getBindingIdentifiers.keys[id.type];\n\n if (isIdentifier(id)) {\n if (duplicates) {\n const _ids = (ids[id.name] = ids[id.name] || []);\n _ids.push(id);\n } else {\n ids[id.name] = id;\n }\n continue;\n }\n\n if (isExportDeclaration(id) && !isExportAllDeclaration(id)) {\n if (isDeclaration(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (isFunctionDeclaration(id)) {\n search.push(id.id);\n continue;\n }\n\n if (isFunctionExpression(id)) {\n continue;\n }\n }\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const nodes =\n // @ts-expect-error key must present in id\n id[key] as t.Node[] | t.Node | undefined | null;\n if (nodes) {\n Array.isArray(nodes) ? search.push(...nodes) : search.push(nodes);\n }\n }\n }\n }\n\n // $FlowIssue Object.create() seems broken\n return ids;\n}\n\n/**\n * Mapping of types to their identifier keys.\n */\ngetBindingIdentifiers.keys = {\n DeclareClass: [\"id\"],\n DeclareFunction: [\"id\"],\n DeclareModule: [\"id\"],\n DeclareVariable: [\"id\"],\n DeclareInterface: [\"id\"],\n DeclareTypeAlias: [\"id\"],\n DeclareOpaqueType: [\"id\"],\n InterfaceDeclaration: [\"id\"],\n TypeAlias: [\"id\"],\n OpaqueType: [\"id\"],\n\n CatchClause: [\"param\"],\n LabeledStatement: [\"label\"],\n UnaryExpression: [\"argument\"],\n AssignmentExpression: [\"left\"],\n\n ImportSpecifier: [\"local\"],\n ImportNamespaceSpecifier: [\"local\"],\n ImportDefaultSpecifier: [\"local\"],\n ImportDeclaration: [\"specifiers\"],\n\n ExportSpecifier: [\"exported\"],\n ExportNamespaceSpecifier: [\"exported\"],\n ExportDefaultSpecifier: [\"exported\"],\n\n FunctionDeclaration: [\"id\", \"params\"],\n FunctionExpression: [\"id\", \"params\"],\n ArrowFunctionExpression: [\"params\"],\n ObjectMethod: [\"params\"],\n ClassMethod: [\"params\"],\n ClassPrivateMethod: [\"params\"],\n\n ForInStatement: [\"left\"],\n ForOfStatement: [\"left\"],\n\n ClassDeclaration: [\"id\"],\n ClassExpression: [\"id\"],\n\n RestElement: [\"argument\"],\n UpdateExpression: [\"argument\"],\n\n ObjectProperty: [\"value\"],\n\n AssignmentPattern: [\"left\"],\n ArrayPattern: [\"elements\"],\n ObjectPattern: [\"properties\"],\n\n VariableDeclaration: [\"declarations\"],\n VariableDeclarator: [\"id\"],\n};\n"],"mappings":"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"}
@@ -12,8 +12,7 @@ function traverseFast(node, enter, opts) {
12
12
  opts = opts || {};
13
13
  enter(node, opts);
14
14
  for (const key of keys) {
15
- const subNode =
16
- node[key];
15
+ const subNode = node[key];
17
16
  if (Array.isArray(subNode)) {
18
17
  for (const node of subNode) {
19
18
  traverseFast(node, enter, opts);
@@ -1 +1 @@
1
- {"version":3,"names":["traverseFast","node","enter","opts","keys","VISITOR_KEYS","type","key","subNode","Array","isArray"],"sources":["../../src/traverse/traverseFast.ts"],"sourcesContent":["import { VISITOR_KEYS } from \"../definitions\";\nimport type * as t from \"..\";\n\n/**\n * A prefix AST traversal implementation meant for simple searching\n * and processing.\n */\nexport default function traverseFast<Options = {}>(\n node: t.Node | null | undefined,\n enter: (node: t.Node, opts?: Options) => void,\n opts?: Options,\n): void {\n if (!node) return;\n\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return;\n\n opts = opts || ({} as Options);\n enter(node, opts);\n\n for (const key of keys) {\n const subNode: t.Node | undefined | null =\n // @ts-expect-error key must present in node\n node[key];\n\n if (Array.isArray(subNode)) {\n for (const node of subNode) {\n traverseFast(node, enter, opts);\n }\n } else {\n traverseFast(subNode, enter, opts);\n }\n }\n}\n"],"mappings":";;;;;;AAAA;AAOe,SAASA,YAAY,CAClCC,IAA+B,EAC/BC,KAA6C,EAC7CC,IAAc,EACR;EACN,IAAI,CAACF,IAAI,EAAE;EAEX,MAAMG,IAAI,GAAGC,yBAAY,CAACJ,IAAI,CAACK,IAAI,CAAC;EACpC,IAAI,CAACF,IAAI,EAAE;EAEXD,IAAI,GAAGA,IAAI,IAAK,CAAC,CAAa;EAC9BD,KAAK,CAACD,IAAI,EAAEE,IAAI,CAAC;EAEjB,KAAK,MAAMI,GAAG,IAAIH,IAAI,EAAE;IACtB,MAAMI,OAAkC;IAEtCP,IAAI,CAACM,GAAG,CAAC;IAEX,IAAIE,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,EAAE;MAC1B,KAAK,MAAMP,IAAI,IAAIO,OAAO,EAAE;QAC1BR,YAAY,CAACC,IAAI,EAAEC,KAAK,EAAEC,IAAI,CAAC;MACjC;IACF,CAAC,MAAM;MACLH,YAAY,CAACQ,OAAO,EAAEN,KAAK,EAAEC,IAAI,CAAC;IACpC;EACF;AACF"}
1
+ {"version":3,"names":["traverseFast","node","enter","opts","keys","VISITOR_KEYS","type","key","subNode","Array","isArray"],"sources":["../../src/traverse/traverseFast.ts"],"sourcesContent":["import { VISITOR_KEYS } from \"../definitions\";\nimport type * as t from \"..\";\n\n/**\n * A prefix AST traversal implementation meant for simple searching\n * and processing.\n */\nexport default function traverseFast<Options = {}>(\n node: t.Node | null | undefined,\n enter: (node: t.Node, opts?: Options) => void,\n opts?: Options,\n): void {\n if (!node) return;\n\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return;\n\n opts = opts || ({} as Options);\n enter(node, opts);\n\n for (const key of keys) {\n const subNode: t.Node | undefined | null =\n // @ts-expect-error key must present in node\n node[key];\n\n if (Array.isArray(subNode)) {\n for (const node of subNode) {\n traverseFast(node, enter, opts);\n }\n } else {\n traverseFast(subNode, enter, opts);\n }\n }\n}\n"],"mappings":";;;;;;AAAA;AAOe,SAASA,YAAY,CAClCC,IAA+B,EAC/BC,KAA6C,EAC7CC,IAAc,EACR;EACN,IAAI,CAACF,IAAI,EAAE;EAEX,MAAMG,IAAI,GAAGC,yBAAY,CAACJ,IAAI,CAACK,IAAI,CAAC;EACpC,IAAI,CAACF,IAAI,EAAE;EAEXD,IAAI,GAAGA,IAAI,IAAK,CAAC,CAAa;EAC9BD,KAAK,CAACD,IAAI,EAAEE,IAAI,CAAC;EAEjB,KAAK,MAAMI,GAAG,IAAIH,IAAI,EAAE;IACtB,MAAMI,OAAkC,GAEtCP,IAAI,CAACM,GAAG,CAAC;IAEX,IAAIE,KAAK,CAACC,OAAO,CAACF,OAAO,CAAC,EAAE;MAC1B,KAAK,MAAMP,IAAI,IAAIO,OAAO,EAAE;QAC1BR,YAAY,CAACC,IAAI,EAAEC,KAAK,EAAEC,IAAI,CAAC;MACjC;IACF,CAAC,MAAM;MACLH,YAAY,CAACQ,OAAO,EAAEN,KAAK,EAAEC,IAAI,CAAC;IACpC;EACF;AACF"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = deprecationWarning;
7
+ const warnings = new Set();
8
+ function deprecationWarning(oldName, newName, prefix = "") {
9
+ if (warnings.has(oldName)) return;
10
+ warnings.add(oldName);
11
+ const stack = captureShortStackTrace(1, 2);
12
+ console.warn(`${prefix}\`${oldName}\` has been deprecated, please migrate to \`${newName}\`\n${stack}`);
13
+ }
14
+ function captureShortStackTrace(skip, length) {
15
+ const {
16
+ stackTraceLimit,
17
+ prepareStackTrace
18
+ } = Error;
19
+ let stackTrace;
20
+ Error.stackTraceLimit = 1 + skip + length;
21
+ Error.prepareStackTrace = function (err, stack) {
22
+ stackTrace = stack;
23
+ };
24
+ new Error().stack;
25
+ Error.stackTraceLimit = stackTraceLimit;
26
+ Error.prepareStackTrace = prepareStackTrace;
27
+ return stackTrace.slice(1 + skip, 1 + skip + length).map(frame => ` at ${frame}`).join("\n");
28
+ }
29
+
30
+ //# sourceMappingURL=deprecationWarning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["warnings","Set","deprecationWarning","oldName","newName","prefix","has","add","stack","captureShortStackTrace","console","warn","skip","length","stackTraceLimit","prepareStackTrace","Error","stackTrace","err","slice","map","frame","join"],"sources":["../../src/utils/deprecationWarning.ts"],"sourcesContent":["const warnings = new Set();\n\nexport default function deprecationWarning(\n oldName: string,\n newName: string,\n prefix: string = \"\",\n) {\n if (warnings.has(oldName)) return;\n warnings.add(oldName);\n\n const stack = captureShortStackTrace(1, 2);\n console.warn(\n `${prefix}\\`${oldName}\\` has been deprecated, please migrate to \\`${newName}\\`\\n${stack}`,\n );\n}\n\nfunction captureShortStackTrace(skip: number, length: number) {\n const { stackTraceLimit, prepareStackTrace } = Error;\n let stackTrace: NodeJS.CallSite[];\n // We add 1 to also take into account this function.\n Error.stackTraceLimit = 1 + skip + length;\n Error.prepareStackTrace = function (err, stack) {\n stackTrace = stack;\n };\n new Error().stack;\n Error.stackTraceLimit = stackTraceLimit;\n Error.prepareStackTrace = prepareStackTrace;\n\n return stackTrace\n .slice(1 + skip, 1 + skip + length)\n .map(frame => ` at ${frame}`)\n .join(\"\\n\");\n}\n"],"mappings":";;;;;;AAAA,MAAMA,QAAQ,GAAG,IAAIC,GAAG,EAAE;AAEX,SAASC,kBAAkB,CACxCC,OAAe,EACfC,OAAe,EACfC,MAAc,GAAG,EAAE,EACnB;EACA,IAAIL,QAAQ,CAACM,GAAG,CAACH,OAAO,CAAC,EAAE;EAC3BH,QAAQ,CAACO,GAAG,CAACJ,OAAO,CAAC;EAErB,MAAMK,KAAK,GAAGC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAC;EAC1CC,OAAO,CAACC,IAAI,CACT,GAAEN,MAAO,KAAIF,OAAQ,+CAA8CC,OAAQ,OAAMI,KAAM,EAAC,CAC1F;AACH;AAEA,SAASC,sBAAsB,CAACG,IAAY,EAAEC,MAAc,EAAE;EAC5D,MAAM;IAAEC,eAAe;IAAEC;EAAkB,CAAC,GAAGC,KAAK;EACpD,IAAIC,UAA6B;EAEjCD,KAAK,CAACF,eAAe,GAAG,CAAC,GAAGF,IAAI,GAAGC,MAAM;EACzCG,KAAK,CAACD,iBAAiB,GAAG,UAAUG,GAAG,EAAEV,KAAK,EAAE;IAC9CS,UAAU,GAAGT,KAAK;EACpB,CAAC;EACD,IAAIQ,KAAK,EAAE,CAACR,KAAK;EACjBQ,KAAK,CAACF,eAAe,GAAGA,eAAe;EACvCE,KAAK,CAACD,iBAAiB,GAAGA,iBAAiB;EAE3C,OAAOE,UAAU,CACdE,KAAK,CAAC,CAAC,GAAGP,IAAI,EAAE,CAAC,GAAGA,IAAI,GAAGC,MAAM,CAAC,CAClCO,GAAG,CAACC,KAAK,IAAK,UAASA,KAAM,EAAC,CAAC,CAC/BC,IAAI,CAAC,IAAI,CAAC;AACf"}
@@ -20,13 +20,10 @@ function cleanJSXElementLiteralChild(child, args) {
20
20
  const isFirstLine = i === 0;
21
21
  const isLastLine = i === lines.length - 1;
22
22
  const isLastNonEmptyLine = i === lastNonEmptyLine;
23
-
24
23
  let trimmedLine = line.replace(/\t/g, " ");
25
-
26
24
  if (!isFirstLine) {
27
25
  trimmedLine = trimmedLine.replace(/^[ ]+/, "");
28
26
  }
29
-
30
27
  if (!isLastLine) {
31
28
  trimmedLine = trimmedLine.replace(/[ ]+$/, "");
32
29
  }
@@ -1 +1 @@
1
- {"version":3,"names":["cleanJSXElementLiteralChild","child","args","lines","value","split","lastNonEmptyLine","i","length","match","str","line","isFirstLine","isLastLine","isLastNonEmptyLine","trimmedLine","replace","push","inherits","stringLiteral"],"sources":["../../../src/utils/react/cleanJSXElementLiteralChild.ts"],"sourcesContent":["import { stringLiteral } from \"../../builders/generated\";\nimport type * as t from \"../..\";\nimport { inherits } from \"../..\";\n\nexport default function cleanJSXElementLiteralChild(\n child: t.JSXText,\n args: Array<t.Node>,\n) {\n const lines = child.value.split(/\\r\\n|\\n|\\r/);\n\n let lastNonEmptyLine = 0;\n\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].match(/[^ \\t]/)) {\n lastNonEmptyLine = i;\n }\n }\n\n let str = \"\";\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n\n const isFirstLine = i === 0;\n const isLastLine = i === lines.length - 1;\n const isLastNonEmptyLine = i === lastNonEmptyLine;\n\n // replace rendered whitespace tabs with spaces\n let trimmedLine = line.replace(/\\t/g, \" \");\n\n // trim whitespace touching a newline\n if (!isFirstLine) {\n trimmedLine = trimmedLine.replace(/^[ ]+/, \"\");\n }\n\n // trim whitespace touching an endline\n if (!isLastLine) {\n trimmedLine = trimmedLine.replace(/[ ]+$/, \"\");\n }\n\n if (trimmedLine) {\n if (!isLastNonEmptyLine) {\n trimmedLine += \" \";\n }\n\n str += trimmedLine;\n }\n }\n\n if (str) args.push(inherits(stringLiteral(str), child));\n}\n"],"mappings":";;;;;;AAAA;AAEA;AAEe,SAASA,2BAA2B,CACjDC,KAAgB,EAChBC,IAAmB,EACnB;EACA,MAAMC,KAAK,GAAGF,KAAK,CAACG,KAAK,CAACC,KAAK,CAAC,YAAY,CAAC;EAE7C,IAAIC,gBAAgB,GAAG,CAAC;EAExB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,IAAIJ,KAAK,CAACI,CAAC,CAAC,CAACE,KAAK,CAAC,QAAQ,CAAC,EAAE;MAC5BH,gBAAgB,GAAGC,CAAC;IACtB;EACF;EAEA,IAAIG,GAAG,GAAG,EAAE;EAEZ,KAAK,IAAIH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMI,IAAI,GAAGR,KAAK,CAACI,CAAC,CAAC;IAErB,MAAMK,WAAW,GAAGL,CAAC,KAAK,CAAC;IAC3B,MAAMM,UAAU,GAAGN,CAAC,KAAKJ,KAAK,CAACK,MAAM,GAAG,CAAC;IACzC,MAAMM,kBAAkB,GAAGP,CAAC,KAAKD,gBAAgB;;IAGjD,IAAIS,WAAW,GAAGJ,IAAI,CAACK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;;IAG1C,IAAI,CAACJ,WAAW,EAAE;MAChBG,WAAW,GAAGA,WAAW,CAACC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAChD;;IAGA,IAAI,CAACH,UAAU,EAAE;MACfE,WAAW,GAAGA,WAAW,CAACC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAChD;IAEA,IAAID,WAAW,EAAE;MACf,IAAI,CAACD,kBAAkB,EAAE;QACvBC,WAAW,IAAI,GAAG;MACpB;MAEAL,GAAG,IAAIK,WAAW;IACpB;EACF;EAEA,IAAIL,GAAG,EAAER,IAAI,CAACe,IAAI,CAAC,IAAAC,UAAQ,EAAC,IAAAC,wBAAa,EAACT,GAAG,CAAC,EAAET,KAAK,CAAC,CAAC;AACzD"}
1
+ {"version":3,"names":["cleanJSXElementLiteralChild","child","args","lines","value","split","lastNonEmptyLine","i","length","match","str","line","isFirstLine","isLastLine","isLastNonEmptyLine","trimmedLine","replace","push","inherits","stringLiteral"],"sources":["../../../src/utils/react/cleanJSXElementLiteralChild.ts"],"sourcesContent":["import { stringLiteral } from \"../../builders/generated\";\nimport type * as t from \"../..\";\nimport { inherits } from \"../..\";\n\nexport default function cleanJSXElementLiteralChild(\n child: t.JSXText,\n args: Array<t.Node>,\n) {\n const lines = child.value.split(/\\r\\n|\\n|\\r/);\n\n let lastNonEmptyLine = 0;\n\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].match(/[^ \\t]/)) {\n lastNonEmptyLine = i;\n }\n }\n\n let str = \"\";\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n\n const isFirstLine = i === 0;\n const isLastLine = i === lines.length - 1;\n const isLastNonEmptyLine = i === lastNonEmptyLine;\n\n // replace rendered whitespace tabs with spaces\n let trimmedLine = line.replace(/\\t/g, \" \");\n\n // trim whitespace touching a newline\n if (!isFirstLine) {\n trimmedLine = trimmedLine.replace(/^[ ]+/, \"\");\n }\n\n // trim whitespace touching an endline\n if (!isLastLine) {\n trimmedLine = trimmedLine.replace(/[ ]+$/, \"\");\n }\n\n if (trimmedLine) {\n if (!isLastNonEmptyLine) {\n trimmedLine += \" \";\n }\n\n str += trimmedLine;\n }\n }\n\n if (str) args.push(inherits(stringLiteral(str), child));\n}\n"],"mappings":";;;;;;AAAA;AAEA;AAEe,SAASA,2BAA2B,CACjDC,KAAgB,EAChBC,IAAmB,EACnB;EACA,MAAMC,KAAK,GAAGF,KAAK,CAACG,KAAK,CAACC,KAAK,CAAC,YAAY,CAAC;EAE7C,IAAIC,gBAAgB,GAAG,CAAC;EAExB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,IAAIJ,KAAK,CAACI,CAAC,CAAC,CAACE,KAAK,CAAC,QAAQ,CAAC,EAAE;MAC5BH,gBAAgB,GAAGC,CAAC;IACtB;EACF;EAEA,IAAIG,GAAG,GAAG,EAAE;EAEZ,KAAK,IAAIH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,KAAK,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAMI,IAAI,GAAGR,KAAK,CAACI,CAAC,CAAC;IAErB,MAAMK,WAAW,GAAGL,CAAC,KAAK,CAAC;IAC3B,MAAMM,UAAU,GAAGN,CAAC,KAAKJ,KAAK,CAACK,MAAM,GAAG,CAAC;IACzC,MAAMM,kBAAkB,GAAGP,CAAC,KAAKD,gBAAgB;IAGjD,IAAIS,WAAW,GAAGJ,IAAI,CAACK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;IAG1C,IAAI,CAACJ,WAAW,EAAE;MAChBG,WAAW,GAAGA,WAAW,CAACC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAChD;IAGA,IAAI,CAACH,UAAU,EAAE;MACfE,WAAW,GAAGA,WAAW,CAACC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;IAChD;IAEA,IAAID,WAAW,EAAE;MACf,IAAI,CAACD,kBAAkB,EAAE;QACvBC,WAAW,IAAI,GAAG;MACpB;MAEAL,GAAG,IAAIK,WAAW;IACpB;EACF;EAEA,IAAIL,GAAG,EAAER,IAAI,CAACe,IAAI,CAAC,IAAAC,UAAQ,EAAC,IAAAC,wBAAa,EAACT,GAAG,CAAC,EAAET,KAAK,CAAC,CAAC;AACzD"}
@@ -7,8 +7,7 @@ exports.default = shallowEqual;
7
7
  function shallowEqual(actual, expected) {
8
8
  const keys = Object.keys(expected);
9
9
  for (const key of keys) {
10
- if (
11
- actual[key] !== expected[key]) {
10
+ if (actual[key] !== expected[key]) {
12
11
  return false;
13
12
  }
14
13
  }
@@ -1 +1 @@
1
- {"version":3,"names":["shallowEqual","actual","expected","keys","Object","key"],"sources":["../../src/utils/shallowEqual.ts"],"sourcesContent":["export default function shallowEqual<T extends object>(\n actual: object,\n expected: T,\n): actual is T {\n const keys = Object.keys(expected) as (keyof T)[];\n\n for (const key of keys) {\n if (\n // @ts-expect-error maybe we should check whether key exists first\n actual[key] !== expected[key]\n ) {\n return false;\n }\n }\n\n return true;\n}\n"],"mappings":";;;;;;AAAe,SAASA,YAAY,CAClCC,MAAc,EACdC,QAAW,EACE;EACb,MAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACD,QAAQ,CAAgB;EAEjD,KAAK,MAAMG,GAAG,IAAIF,IAAI,EAAE;IACtB;IAEEF,MAAM,CAACI,GAAG,CAAC,KAAKH,QAAQ,CAACG,GAAG,CAAC,EAC7B;MACA,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb"}
1
+ {"version":3,"names":["shallowEqual","actual","expected","keys","Object","key"],"sources":["../../src/utils/shallowEqual.ts"],"sourcesContent":["export default function shallowEqual<T extends object>(\n actual: object,\n expected: T,\n): actual is T {\n const keys = Object.keys(expected) as (keyof T)[];\n\n for (const key of keys) {\n if (\n // @ts-expect-error maybe we should check whether key exists first\n actual[key] !== expected[key]\n ) {\n return false;\n }\n }\n\n return true;\n}\n"],"mappings":";;;;;;AAAe,SAASA,YAAY,CAClCC,MAAc,EACdC,QAAW,EACE;EACb,MAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAACD,QAAQ,CAAgB;EAEjD,KAAK,MAAMG,GAAG,IAAIF,IAAI,EAAE;IACtB,IAEEF,MAAM,CAACI,GAAG,CAAC,KAAKH,QAAQ,CAACG,GAAG,CAAC,EAC7B;MACA,OAAO,KAAK;IACd;EACF;EAEA,OAAO,IAAI;AACb"}
@@ -109,6 +109,7 @@ exports.isImportAttribute = isImportAttribute;
109
109
  exports.isImportDeclaration = isImportDeclaration;
110
110
  exports.isImportDefaultSpecifier = isImportDefaultSpecifier;
111
111
  exports.isImportNamespaceSpecifier = isImportNamespaceSpecifier;
112
+ exports.isImportOrExportDeclaration = isImportOrExportDeclaration;
112
113
  exports.isImportSpecifier = isImportSpecifier;
113
114
  exports.isIndexedAccessType = isIndexedAccessType;
114
115
  exports.isInferredPredicate = isInferredPredicate;
@@ -306,7 +307,7 @@ exports.isWhileStatement = isWhileStatement;
306
307
  exports.isWithStatement = isWithStatement;
307
308
  exports.isYieldExpression = isYieldExpression;
308
309
  var _shallowEqual = require("../../utils/shallowEqual");
309
-
310
+ var _deprecationWarning = require("../../utils/deprecationWarning");
310
311
  function isArrayExpression(node, opts) {
311
312
  if (!node) return false;
312
313
  const nodeType = node.type;
@@ -3667,7 +3668,7 @@ function isClass(node, opts) {
3667
3668
  }
3668
3669
  return false;
3669
3670
  }
3670
- function isModuleDeclaration(node, opts) {
3671
+ function isImportOrExportDeclaration(node, opts) {
3671
3672
  if (!node) return false;
3672
3673
  const nodeType = node.type;
3673
3674
  if ("ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ImportDeclaration" === nodeType) {
@@ -3884,7 +3885,7 @@ function isTSBaseType(node, opts) {
3884
3885
  return false;
3885
3886
  }
3886
3887
  function isNumberLiteral(node, opts) {
3887
- console.trace("The node type NumberLiteral has been renamed to NumericLiteral");
3888
+ (0, _deprecationWarning.default)("isNumberLiteral", "isNumericLiteral");
3888
3889
  if (!node) return false;
3889
3890
  const nodeType = node.type;
3890
3891
  if (nodeType === "NumberLiteral") {
@@ -3897,7 +3898,7 @@ function isNumberLiteral(node, opts) {
3897
3898
  return false;
3898
3899
  }
3899
3900
  function isRegexLiteral(node, opts) {
3900
- console.trace("The node type RegexLiteral has been renamed to RegExpLiteral");
3901
+ (0, _deprecationWarning.default)("isRegexLiteral", "isRegExpLiteral");
3901
3902
  if (!node) return false;
3902
3903
  const nodeType = node.type;
3903
3904
  if (nodeType === "RegexLiteral") {
@@ -3910,7 +3911,7 @@ function isRegexLiteral(node, opts) {
3910
3911
  return false;
3911
3912
  }
3912
3913
  function isRestProperty(node, opts) {
3913
- console.trace("The node type RestProperty has been renamed to RestElement");
3914
+ (0, _deprecationWarning.default)("isRestProperty", "isRestElement");
3914
3915
  if (!node) return false;
3915
3916
  const nodeType = node.type;
3916
3917
  if (nodeType === "RestProperty") {
@@ -3923,7 +3924,7 @@ function isRestProperty(node, opts) {
3923
3924
  return false;
3924
3925
  }
3925
3926
  function isSpreadProperty(node, opts) {
3926
- console.trace("The node type SpreadProperty has been renamed to SpreadElement");
3927
+ (0, _deprecationWarning.default)("isSpreadProperty", "isSpreadElement");
3927
3928
  if (!node) return false;
3928
3929
  const nodeType = node.type;
3929
3930
  if (nodeType === "SpreadProperty") {
@@ -3935,5 +3936,9 @@ function isSpreadProperty(node, opts) {
3935
3936
  }
3936
3937
  return false;
3937
3938
  }
3939
+ function isModuleDeclaration(node, opts) {
3940
+ (0, _deprecationWarning.default)("isModuleDeclaration", "isImportOrExportDeclaration");
3941
+ return isImportOrExportDeclaration(node, opts);
3942
+ }
3938
3943
 
3939
3944
  //# sourceMappingURL=index.js.map