immosquare-cleaner 0.1.63 → 0.1.65

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 (1339) hide show
  1. checksums.yaml +4 -4
  2. data/lib/immosquare-cleaner/version.rb +1 -1
  3. data/lib/immosquare-cleaner.rb +37 -37
  4. data/lib/tasks/immosquare_cleaner.rake +17 -1
  5. data/linters/rubocop/cop/custom_cops/style/font_awesome_normalization.rb +106 -0
  6. data/linters/rubocop-3.4.1.yml +3 -1
  7. data/linters/rubocop.yml +4 -0
  8. data/node_modules/@babel/compat-data/data/plugins.json +6 -7
  9. data/node_modules/@babel/compat-data/package.json +2 -2
  10. data/node_modules/@babel/core/lib/config/files/configuration.js +3 -0
  11. data/node_modules/@babel/core/lib/config/files/configuration.js.map +1 -1
  12. data/node_modules/@babel/core/lib/config/files/module-types.js +74 -63
  13. data/node_modules/@babel/core/lib/config/files/module-types.js.map +1 -1
  14. data/node_modules/@babel/core/lib/config/files/plugins.js +1 -0
  15. data/node_modules/@babel/core/lib/config/files/plugins.js.map +1 -1
  16. data/node_modules/@babel/core/lib/config/partial.js +1 -1
  17. data/node_modules/@babel/core/lib/config/partial.js.map +1 -1
  18. data/node_modules/@babel/core/lib/index.js +1 -2
  19. data/node_modules/@babel/core/lib/index.js.map +1 -1
  20. data/node_modules/@babel/core/lib/parser/index.js.map +1 -1
  21. data/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs +3 -1
  22. data/node_modules/@babel/core/lib/transformation/file/babel-7-helpers.cjs.map +1 -1
  23. data/node_modules/@babel/core/lib/transformation/file/file.js +2 -4
  24. data/node_modules/@babel/core/lib/transformation/file/file.js.map +1 -1
  25. data/node_modules/@babel/core/lib/transformation/normalize-file.js.map +1 -1
  26. data/node_modules/@babel/core/lib/transformation/util/clone-deep.js +27 -7
  27. data/node_modules/@babel/core/lib/transformation/util/clone-deep.js.map +1 -1
  28. data/node_modules/@babel/core/package.json +13 -14
  29. data/node_modules/@babel/generator/lib/generators/classes.js +7 -4
  30. data/node_modules/@babel/generator/lib/generators/classes.js.map +1 -1
  31. data/node_modules/@babel/generator/lib/generators/deprecated.js +28 -0
  32. data/node_modules/@babel/generator/lib/generators/deprecated.js.map +1 -0
  33. data/node_modules/@babel/generator/lib/generators/expressions.js +9 -3
  34. data/node_modules/@babel/generator/lib/generators/expressions.js.map +1 -1
  35. data/node_modules/@babel/generator/lib/generators/jsx.js +6 -1
  36. data/node_modules/@babel/generator/lib/generators/jsx.js.map +1 -1
  37. data/node_modules/@babel/generator/lib/generators/template-literals.js +16 -11
  38. data/node_modules/@babel/generator/lib/generators/template-literals.js.map +1 -1
  39. data/node_modules/@babel/generator/lib/generators/types.js +0 -9
  40. data/node_modules/@babel/generator/lib/generators/types.js.map +1 -1
  41. data/node_modules/@babel/generator/lib/generators/typescript.js +36 -18
  42. data/node_modules/@babel/generator/lib/generators/typescript.js.map +1 -1
  43. data/node_modules/@babel/generator/lib/node/parentheses.js +40 -3
  44. data/node_modules/@babel/generator/lib/node/parentheses.js.map +1 -1
  45. data/node_modules/@babel/generator/lib/printer.js +4 -3
  46. data/node_modules/@babel/generator/lib/printer.js.map +1 -1
  47. data/node_modules/@babel/generator/package.json +5 -5
  48. data/node_modules/@babel/helper-compilation-targets/lib/index.js +1 -1
  49. data/node_modules/@babel/helper-compilation-targets/lib/index.js.map +1 -1
  50. data/node_modules/@babel/helper-compilation-targets/package.json +2 -2
  51. data/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js +1 -9
  52. data/node_modules/@babel/helper-create-class-features-plugin/lib/decorators-2018-09.js.map +1 -1
  53. data/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js +9 -0
  54. data/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map +1 -1
  55. data/node_modules/@babel/helper-create-class-features-plugin/lib/features.js +1 -1
  56. data/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map +1 -1
  57. data/node_modules/@babel/helper-create-class-features-plugin/lib/index.js +8 -8
  58. data/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map +1 -1
  59. data/node_modules/@babel/helper-create-class-features-plugin/package.json +5 -5
  60. data/node_modules/@babel/helper-plugin-utils/lib/index.js.map +1 -1
  61. data/node_modules/@babel/helper-plugin-utils/package.json +2 -2
  62. data/node_modules/@babel/helper-replace-supers/lib/index.js.map +1 -1
  63. data/node_modules/@babel/helper-replace-supers/package.json +3 -3
  64. data/node_modules/@babel/helpers/lib/helpers/asyncIterator.js.map +1 -1
  65. data/node_modules/@babel/helpers/lib/helpers/isNativeFunction.js.map +1 -1
  66. data/node_modules/@babel/helpers/lib/helpers/objectWithoutProperties.js +1 -1
  67. data/node_modules/@babel/helpers/lib/helpers/objectWithoutProperties.js.map +1 -1
  68. data/node_modules/@babel/helpers/lib/helpers/objectWithoutPropertiesLoose.js +1 -1
  69. data/node_modules/@babel/helpers/lib/helpers/objectWithoutPropertiesLoose.js.map +1 -1
  70. data/node_modules/@babel/helpers/lib/helpers/wrapRegExp.js +7 -3
  71. data/node_modules/@babel/helpers/lib/helpers/wrapRegExp.js.map +1 -1
  72. data/node_modules/@babel/helpers/lib/helpers-generated.js +3 -3
  73. data/node_modules/@babel/helpers/lib/helpers-generated.js.map +1 -1
  74. data/node_modules/@babel/helpers/package.json +5 -5
  75. data/node_modules/@babel/parser/lib/index.js +426 -236
  76. data/node_modules/@babel/parser/lib/index.js.map +1 -1
  77. data/node_modules/@babel/parser/package.json +2 -2
  78. data/node_modules/@babel/parser/typings/babel-parser.d.ts +127 -164
  79. data/node_modules/@babel/plugin-transform-flow-strip-types/lib/index.js +6 -0
  80. data/node_modules/@babel/plugin-transform-flow-strip-types/lib/index.js.map +1 -1
  81. data/node_modules/@babel/plugin-transform-flow-strip-types/package.json +4 -4
  82. data/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js +3 -2
  83. data/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js.map +1 -1
  84. data/node_modules/@babel/plugin-transform-nullish-coalescing-operator/package.json +3 -3
  85. data/node_modules/@babel/plugin-transform-typescript/lib/const-enum.js +3 -1
  86. data/node_modules/@babel/plugin-transform-typescript/lib/const-enum.js.map +1 -1
  87. data/node_modules/@babel/plugin-transform-typescript/lib/enum.js +24 -11
  88. data/node_modules/@babel/plugin-transform-typescript/lib/enum.js.map +1 -1
  89. data/node_modules/@babel/plugin-transform-typescript/lib/index.js +38 -9
  90. data/node_modules/@babel/plugin-transform-typescript/lib/index.js.map +1 -1
  91. data/node_modules/@babel/plugin-transform-typescript/lib/namespace.js +2 -0
  92. data/node_modules/@babel/plugin-transform-typescript/lib/namespace.js.map +1 -1
  93. data/node_modules/@babel/plugin-transform-typescript/package.json +5 -5
  94. data/node_modules/@babel/template/lib/options.js.map +1 -1
  95. data/node_modules/@babel/template/lib/parse.js.map +1 -1
  96. data/node_modules/@babel/template/package.json +4 -4
  97. data/node_modules/@babel/traverse/lib/cache.js +4 -5
  98. data/node_modules/@babel/traverse/lib/cache.js.map +1 -1
  99. data/node_modules/@babel/traverse/lib/path/conversion.js +1 -2
  100. data/node_modules/@babel/traverse/lib/path/conversion.js.map +1 -1
  101. data/node_modules/@babel/traverse/lib/path/evaluation.js +17 -0
  102. data/node_modules/@babel/traverse/lib/path/evaluation.js.map +1 -1
  103. data/node_modules/@babel/traverse/lib/path/lib/hoister.js.map +1 -1
  104. data/node_modules/@babel/traverse/lib/path/modification.js +1 -1
  105. data/node_modules/@babel/traverse/lib/path/modification.js.map +1 -1
  106. data/node_modules/@babel/traverse/lib/path/replacement.js.map +1 -1
  107. data/node_modules/@babel/traverse/lib/scope/index.js +9 -2
  108. data/node_modules/@babel/traverse/lib/scope/index.js.map +1 -1
  109. data/node_modules/@babel/traverse/lib/visitors.js +1 -1
  110. data/node_modules/@babel/traverse/lib/visitors.js.map +1 -1
  111. data/node_modules/@babel/traverse/package.json +6 -6
  112. data/node_modules/@babel/types/lib/asserts/generated/index.js +8 -0
  113. data/node_modules/@babel/types/lib/asserts/generated/index.js.map +1 -1
  114. data/node_modules/@babel/types/lib/ast-types/generated/index.js.map +1 -1
  115. data/node_modules/@babel/types/lib/builders/generated/index.js +22 -2858
  116. data/node_modules/@babel/types/lib/builders/generated/index.js.map +1 -1
  117. data/node_modules/@babel/types/lib/builders/generated/lowercase.js +2886 -0
  118. data/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +1 -0
  119. data/node_modules/@babel/types/lib/builders/generated/uppercase.js +267 -255
  120. data/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +1 -1
  121. data/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +1 -1
  122. data/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +1 -1
  123. data/node_modules/@babel/types/lib/definitions/core.js +26 -17
  124. data/node_modules/@babel/types/lib/definitions/core.js.map +1 -1
  125. data/node_modules/@babel/types/lib/definitions/flow.js +6 -3
  126. data/node_modules/@babel/types/lib/definitions/flow.js.map +1 -1
  127. data/node_modules/@babel/types/lib/definitions/jsx.js +9 -4
  128. data/node_modules/@babel/types/lib/definitions/jsx.js.map +1 -1
  129. data/node_modules/@babel/types/lib/definitions/typescript.js +51 -26
  130. data/node_modules/@babel/types/lib/definitions/typescript.js.map +1 -1
  131. data/node_modules/@babel/types/lib/definitions/utils.js +2 -2
  132. data/node_modules/@babel/types/lib/definitions/utils.js.map +1 -1
  133. data/node_modules/@babel/types/lib/index-legacy.d.ts +27 -7
  134. data/node_modules/@babel/types/lib/index.d.ts +1178 -1156
  135. data/node_modules/@babel/types/lib/index.js +10 -21
  136. data/node_modules/@babel/types/lib/index.js.flow +26 -6
  137. data/node_modules/@babel/types/lib/index.js.map +1 -1
  138. data/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +9 -8
  139. data/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +1 -1
  140. data/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +1 -0
  141. data/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +1 -1
  142. data/node_modules/@babel/types/lib/validators/generated/index.js +17 -0
  143. data/node_modules/@babel/types/lib/validators/generated/index.js.map +1 -1
  144. data/node_modules/@babel/types/package.json +12 -12
  145. data/node_modules/{@babel/eslint-parser/node_modules/eslint-visitor-keys → @eslint/config-helpers}/LICENSE +2 -2
  146. data/node_modules/@eslint/config-helpers/README.md +97 -0
  147. data/node_modules/@eslint/config-helpers/dist/cjs/index.cjs +546 -0
  148. data/node_modules/@eslint/config-helpers/dist/cjs/index.d.cts +22 -0
  149. data/node_modules/@eslint/config-helpers/dist/cjs/types.cts +31 -0
  150. data/node_modules/@eslint/config-helpers/dist/esm/index.d.ts +22 -0
  151. data/node_modules/@eslint/config-helpers/dist/esm/index.js +544 -0
  152. data/node_modules/@eslint/config-helpers/dist/esm/types.d.ts +23 -0
  153. data/node_modules/@eslint/config-helpers/dist/esm/types.ts +31 -0
  154. data/node_modules/@eslint/config-helpers/package.json +60 -0
  155. data/node_modules/@eslint/js/package.json +1 -1
  156. data/node_modules/@eslint-community/eslint-utils/index.js +21 -1
  157. data/node_modules/@eslint-community/eslint-utils/index.js.map +1 -1
  158. data/node_modules/@eslint-community/eslint-utils/index.mjs +21 -1
  159. data/node_modules/@eslint-community/eslint-utils/index.mjs.map +1 -1
  160. data/node_modules/@eslint-community/eslint-utils/package.json +1 -1
  161. data/node_modules/acorn/CHANGELOG.md +12 -0
  162. data/node_modules/acorn/dist/acorn.js +33 -24
  163. data/node_modules/acorn/dist/acorn.mjs +33 -24
  164. data/node_modules/acorn/package.json +1 -1
  165. data/node_modules/async-function/CHANGELOG.md +16 -0
  166. data/node_modules/{jscodeshift → async-function}/LICENSE +1 -1
  167. data/node_modules/async-function/README.md +51 -0
  168. data/node_modules/async-function/index.d.mts +3 -0
  169. data/node_modules/async-function/index.d.ts +13 -0
  170. data/node_modules/async-function/index.js +8 -0
  171. data/node_modules/async-function/index.mjs +4 -0
  172. data/node_modules/async-function/legacy.js +18 -0
  173. data/node_modules/async-function/package.json +86 -0
  174. data/node_modules/async-function/require.mjs +5 -0
  175. data/node_modules/async-function/test/index.js +40 -0
  176. data/node_modules/async-function/tsconfig.json +9 -0
  177. data/node_modules/browserslist/index.js +23 -4
  178. data/node_modules/browserslist/node.js +69 -60
  179. data/node_modules/browserslist/package.json +1 -1
  180. data/node_modules/call-bind-apply-helpers/CHANGELOG.md +7 -0
  181. data/node_modules/call-bind-apply-helpers/index.d.ts +38 -20
  182. data/node_modules/call-bind-apply-helpers/index.js +1 -1
  183. data/node_modules/call-bind-apply-helpers/package.json +8 -8
  184. data/node_modules/call-bind-apply-helpers/test/index.js +4 -4
  185. data/node_modules/call-bound/CHANGELOG.md +8 -0
  186. data/node_modules/call-bound/index.d.ts +91 -10
  187. data/node_modules/call-bound/index.js +4 -3
  188. data/node_modules/call-bound/package.json +10 -10
  189. data/node_modules/call-bound/test/index.js +11 -4
  190. data/node_modules/call-bound/tsconfig.json +2 -1
  191. data/node_modules/caniuse-lite/data/agents.js +1 -1
  192. data/node_modules/caniuse-lite/data/browserVersions.js +1 -1
  193. data/node_modules/caniuse-lite/data/features/aac.js +1 -1
  194. data/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  195. data/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  196. data/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  197. data/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  198. data/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  199. data/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  200. data/node_modules/caniuse-lite/data/features/apng.js +1 -1
  201. data/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  202. data/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  203. data/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  204. data/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
  205. data/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  206. data/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  207. data/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  208. data/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  209. data/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  210. data/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  211. data/node_modules/caniuse-lite/data/features/audio.js +1 -1
  212. data/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  213. data/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  214. data/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  215. data/node_modules/caniuse-lite/data/features/av1.js +1 -1
  216. data/node_modules/caniuse-lite/data/features/avif.js +1 -1
  217. data/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  218. data/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  219. data/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  220. data/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  221. data/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  222. data/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  223. data/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  224. data/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  225. data/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  226. data/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  227. data/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  228. data/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  229. data/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  230. data/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  231. data/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  232. data/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  233. data/node_modules/caniuse-lite/data/features/calc.js +1 -1
  234. data/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  235. data/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  236. data/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  237. data/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  238. data/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  239. data/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  240. data/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  241. data/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  242. data/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  243. data/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  244. data/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  245. data/node_modules/caniuse-lite/data/features/colr.js +1 -1
  246. data/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  247. data/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  248. data/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  249. data/node_modules/caniuse-lite/data/features/const.js +1 -1
  250. data/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  251. data/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  252. data/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  253. data/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  254. data/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  255. data/node_modules/caniuse-lite/data/features/cors.js +1 -1
  256. data/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  257. data/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  258. data/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  259. data/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  260. data/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  261. data/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  262. data/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  263. data/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  264. data/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  265. data/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  266. data/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  267. data/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  268. data/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  269. data/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  270. data/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  271. data/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  272. data/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  273. data/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  274. data/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  275. data/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  276. data/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  277. data/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  278. data/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  279. data/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  280. data/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  281. data/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  282. data/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  283. data/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  284. data/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  285. data/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  286. data/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  287. data/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  288. data/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  289. data/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  290. data/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  291. data/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  292. data/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  293. data/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
  294. data/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  295. data/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
  296. data/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  297. data/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  298. data/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  299. data/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  300. data/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  301. data/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
  302. data/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  303. data/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  304. data/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  305. data/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  306. data/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  307. data/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  308. data/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
  309. data/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  310. data/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  311. data/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  312. data/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  313. data/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  314. data/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  315. data/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  316. data/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  317. data/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  318. data/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  319. data/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  320. data/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  321. data/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  322. data/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  323. data/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  324. data/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  325. data/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  326. data/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  327. data/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  328. data/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  329. data/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  330. data/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  331. data/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  332. data/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
  333. data/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  334. data/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  335. data/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  336. data/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  337. data/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  338. data/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  339. data/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  340. data/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  341. data/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
  342. data/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  343. data/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  344. data/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  345. data/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  346. data/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  347. data/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  348. data/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  349. data/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  350. data/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  351. data/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  352. data/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  353. data/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  354. data/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  355. data/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
  356. data/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  357. data/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  358. data/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  359. data/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  360. data/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  361. data/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  362. data/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  363. data/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  364. data/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  365. data/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  366. data/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  367. data/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  368. data/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  369. data/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  370. data/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  371. data/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  372. data/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  373. data/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  374. data/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  375. data/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  376. data/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  377. data/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  378. data/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  379. data/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  380. data/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  381. data/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  382. data/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  383. data/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  384. data/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  385. data/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  386. data/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
  387. data/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  388. data/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  389. data/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  390. data/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  391. data/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  392. data/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  393. data/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  394. data/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  395. data/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  396. data/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  397. data/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  398. data/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
  399. data/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  400. data/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  401. data/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  402. data/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  403. data/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  404. data/node_modules/caniuse-lite/data/features/datauri.js +1 -1
  405. data/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  406. data/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  407. data/node_modules/caniuse-lite/data/features/decorators.js +1 -1
  408. data/node_modules/caniuse-lite/data/features/details.js +1 -1
  409. data/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  410. data/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  411. data/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  412. data/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  413. data/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  414. data/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  415. data/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  416. data/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  417. data/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  418. data/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  419. data/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  420. data/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  421. data/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  422. data/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
  423. data/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
  424. data/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  425. data/node_modules/caniuse-lite/data/features/download.js +1 -1
  426. data/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  427. data/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  428. data/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  429. data/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  430. data/node_modules/caniuse-lite/data/features/eme.js +1 -1
  431. data/node_modules/caniuse-lite/data/features/eot.js +1 -1
  432. data/node_modules/caniuse-lite/data/features/es5.js +1 -1
  433. data/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  434. data/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  435. data/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  436. data/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  437. data/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  438. data/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  439. data/node_modules/caniuse-lite/data/features/es6.js +1 -1
  440. data/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  441. data/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  442. data/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  443. data/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  444. data/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  445. data/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  446. data/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  447. data/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  448. data/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  449. data/node_modules/caniuse-lite/data/features/flac.js +1 -1
  450. data/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  451. data/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  452. data/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  453. data/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  454. data/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  455. data/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  456. data/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  457. data/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  458. data/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  459. data/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  460. data/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  461. data/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  462. data/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  463. data/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  464. data/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  465. data/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  466. data/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  467. data/node_modules/caniuse-lite/data/features/forms.js +1 -1
  468. data/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  469. data/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  470. data/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  471. data/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  472. data/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  473. data/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  474. data/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  475. data/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  476. data/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  477. data/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  478. data/node_modules/caniuse-lite/data/features/heif.js +1 -1
  479. data/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  480. data/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  481. data/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  482. data/node_modules/caniuse-lite/data/features/history.js +1 -1
  483. data/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  484. data/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  485. data/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  486. data/node_modules/caniuse-lite/data/features/http2.js +1 -1
  487. data/node_modules/caniuse-lite/data/features/http3.js +1 -1
  488. data/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  489. data/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  490. data/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  491. data/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  492. data/node_modules/caniuse-lite/data/features/ime.js +1 -1
  493. data/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
  494. data/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  495. data/node_modules/caniuse-lite/data/features/imports.js +1 -1
  496. data/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  497. data/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  498. data/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  499. data/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  500. data/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  501. data/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  502. data/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  503. data/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  504. data/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  505. data/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  506. data/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  507. data/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  508. data/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  509. data/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  510. data/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  511. data/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  512. data/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  513. data/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  514. data/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  515. data/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  516. data/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  517. data/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  518. data/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  519. data/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  520. data/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  521. data/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  522. data/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  523. data/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  524. data/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  525. data/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  526. data/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
  527. data/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  528. data/node_modules/caniuse-lite/data/features/json.js +1 -1
  529. data/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  530. data/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  531. data/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  532. data/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  533. data/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  534. data/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  535. data/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  536. data/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  537. data/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
  538. data/node_modules/caniuse-lite/data/features/let.js +1 -1
  539. data/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  540. data/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  541. data/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  542. data/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  543. data/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  544. data/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  545. data/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  546. data/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  547. data/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  548. data/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  549. data/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
  550. data/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  551. data/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  552. data/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  553. data/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  554. data/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  555. data/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  556. data/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  557. data/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  558. data/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  559. data/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  560. data/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  561. data/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  562. data/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  563. data/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  564. data/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  565. data/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  566. data/node_modules/caniuse-lite/data/features/menu.js +1 -1
  567. data/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  568. data/node_modules/caniuse-lite/data/features/meter.js +1 -1
  569. data/node_modules/caniuse-lite/data/features/midi.js +1 -1
  570. data/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  571. data/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  572. data/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  573. data/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  574. data/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  575. data/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  576. data/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  577. data/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  578. data/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  579. data/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  580. data/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  581. data/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  582. data/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  583. data/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  584. data/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  585. data/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  586. data/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  587. data/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  588. data/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  589. data/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  590. data/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  591. data/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  592. data/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  593. data/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  594. data/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  595. data/node_modules/caniuse-lite/data/features/opus.js +1 -1
  596. data/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  597. data/node_modules/caniuse-lite/data/features/outline.js +1 -1
  598. data/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  599. data/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  600. data/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  601. data/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  602. data/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  603. data/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  604. data/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  605. data/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  606. data/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  607. data/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  608. data/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  609. data/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  610. data/node_modules/caniuse-lite/data/features/picture.js +1 -1
  611. data/node_modules/caniuse-lite/data/features/ping.js +1 -1
  612. data/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  613. data/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  614. data/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  615. data/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  616. data/node_modules/caniuse-lite/data/features/portals.js +1 -1
  617. data/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  618. data/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  619. data/node_modules/caniuse-lite/data/features/progress.js +1 -1
  620. data/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  621. data/node_modules/caniuse-lite/data/features/promises.js +1 -1
  622. data/node_modules/caniuse-lite/data/features/proximity.js +1 -1
  623. data/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  624. data/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  625. data/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  626. data/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  627. data/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  628. data/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  629. data/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  630. data/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  631. data/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  632. data/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  633. data/node_modules/caniuse-lite/data/features/rem.js +1 -1
  634. data/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  635. data/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  636. data/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  637. data/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  638. data/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  639. data/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  640. data/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  641. data/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  642. data/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  643. data/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  644. data/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  645. data/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  646. data/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  647. data/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  648. data/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  649. data/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  650. data/node_modules/caniuse-lite/data/features/selectlist.js +1 -1
  651. data/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  652. data/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  653. data/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
  654. data/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  655. data/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  656. data/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  657. data/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  658. data/node_modules/caniuse-lite/data/features/sni.js +1 -1
  659. data/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  660. data/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  661. data/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  662. data/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  663. data/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  664. data/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  665. data/node_modules/caniuse-lite/data/features/stream.js +1 -1
  666. data/node_modules/caniuse-lite/data/features/streams.js +1 -1
  667. data/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  668. data/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  669. data/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  670. data/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  671. data/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  672. data/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  673. data/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  674. data/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  675. data/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  676. data/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  677. data/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  678. data/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  679. data/node_modules/caniuse-lite/data/features/svg.js +1 -1
  680. data/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  681. data/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  682. data/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  683. data/node_modules/caniuse-lite/data/features/template.js +1 -1
  684. data/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  685. data/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  686. data/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  687. data/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  688. data/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  689. data/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  690. data/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  691. data/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  692. data/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  693. data/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  694. data/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  695. data/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  696. data/node_modules/caniuse-lite/data/features/touch.js +1 -1
  697. data/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  698. data/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  699. data/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  700. data/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  701. data/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  702. data/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  703. data/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  704. data/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  705. data/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  706. data/node_modules/caniuse-lite/data/features/url.js +1 -1
  707. data/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  708. data/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  709. data/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  710. data/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  711. data/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  712. data/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  713. data/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  714. data/node_modules/caniuse-lite/data/features/video.js +1 -1
  715. data/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  716. data/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  717. data/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  718. data/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  719. data/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  720. data/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  721. data/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  722. data/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  723. data/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  724. data/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  725. data/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  726. data/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  727. data/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  728. data/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  729. data/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  730. data/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  731. data/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  732. data/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  733. data/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  734. data/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  735. data/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  736. data/node_modules/caniuse-lite/data/features/wav.js +1 -1
  737. data/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  738. data/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  739. data/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  740. data/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  741. data/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  742. data/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  743. data/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  744. data/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  745. data/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  746. data/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  747. data/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  748. data/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  749. data/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  750. data/node_modules/caniuse-lite/data/features/webm.js +1 -1
  751. data/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  752. data/node_modules/caniuse-lite/data/features/webp.js +1 -1
  753. data/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  754. data/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  755. data/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  756. data/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  757. data/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  758. data/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  759. data/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  760. data/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  761. data/node_modules/caniuse-lite/data/features/woff.js +1 -1
  762. data/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  763. data/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  764. data/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  765. data/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  766. data/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  767. data/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  768. data/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
  769. data/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
  770. data/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  771. data/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  772. data/node_modules/caniuse-lite/data/regions/AD.js +1 -1
  773. data/node_modules/caniuse-lite/data/regions/AE.js +1 -1
  774. data/node_modules/caniuse-lite/data/regions/AF.js +1 -1
  775. data/node_modules/caniuse-lite/data/regions/AG.js +1 -1
  776. data/node_modules/caniuse-lite/data/regions/AI.js +1 -1
  777. data/node_modules/caniuse-lite/data/regions/AL.js +1 -1
  778. data/node_modules/caniuse-lite/data/regions/AM.js +1 -1
  779. data/node_modules/caniuse-lite/data/regions/AO.js +1 -1
  780. data/node_modules/caniuse-lite/data/regions/AR.js +1 -1
  781. data/node_modules/caniuse-lite/data/regions/AS.js +1 -1
  782. data/node_modules/caniuse-lite/data/regions/AT.js +1 -1
  783. data/node_modules/caniuse-lite/data/regions/AU.js +1 -1
  784. data/node_modules/caniuse-lite/data/regions/AW.js +1 -1
  785. data/node_modules/caniuse-lite/data/regions/AX.js +1 -1
  786. data/node_modules/caniuse-lite/data/regions/AZ.js +1 -1
  787. data/node_modules/caniuse-lite/data/regions/BA.js +1 -1
  788. data/node_modules/caniuse-lite/data/regions/BB.js +1 -1
  789. data/node_modules/caniuse-lite/data/regions/BD.js +1 -1
  790. data/node_modules/caniuse-lite/data/regions/BE.js +1 -1
  791. data/node_modules/caniuse-lite/data/regions/BF.js +1 -1
  792. data/node_modules/caniuse-lite/data/regions/BG.js +1 -1
  793. data/node_modules/caniuse-lite/data/regions/BH.js +1 -1
  794. data/node_modules/caniuse-lite/data/regions/BI.js +1 -1
  795. data/node_modules/caniuse-lite/data/regions/BJ.js +1 -1
  796. data/node_modules/caniuse-lite/data/regions/BM.js +1 -1
  797. data/node_modules/caniuse-lite/data/regions/BN.js +1 -1
  798. data/node_modules/caniuse-lite/data/regions/BO.js +1 -1
  799. data/node_modules/caniuse-lite/data/regions/BR.js +1 -1
  800. data/node_modules/caniuse-lite/data/regions/BS.js +1 -1
  801. data/node_modules/caniuse-lite/data/regions/BT.js +1 -1
  802. data/node_modules/caniuse-lite/data/regions/BW.js +1 -1
  803. data/node_modules/caniuse-lite/data/regions/BY.js +1 -1
  804. data/node_modules/caniuse-lite/data/regions/BZ.js +1 -1
  805. data/node_modules/caniuse-lite/data/regions/CA.js +1 -1
  806. data/node_modules/caniuse-lite/data/regions/CD.js +1 -1
  807. data/node_modules/caniuse-lite/data/regions/CF.js +1 -1
  808. data/node_modules/caniuse-lite/data/regions/CG.js +1 -1
  809. data/node_modules/caniuse-lite/data/regions/CH.js +1 -1
  810. data/node_modules/caniuse-lite/data/regions/CI.js +1 -1
  811. data/node_modules/caniuse-lite/data/regions/CK.js +1 -1
  812. data/node_modules/caniuse-lite/data/regions/CL.js +1 -1
  813. data/node_modules/caniuse-lite/data/regions/CM.js +1 -1
  814. data/node_modules/caniuse-lite/data/regions/CN.js +1 -1
  815. data/node_modules/caniuse-lite/data/regions/CO.js +1 -1
  816. data/node_modules/caniuse-lite/data/regions/CR.js +1 -1
  817. data/node_modules/caniuse-lite/data/regions/CU.js +1 -1
  818. data/node_modules/caniuse-lite/data/regions/CV.js +1 -1
  819. data/node_modules/caniuse-lite/data/regions/CX.js +1 -1
  820. data/node_modules/caniuse-lite/data/regions/CY.js +1 -1
  821. data/node_modules/caniuse-lite/data/regions/CZ.js +1 -1
  822. data/node_modules/caniuse-lite/data/regions/DE.js +1 -1
  823. data/node_modules/caniuse-lite/data/regions/DJ.js +1 -1
  824. data/node_modules/caniuse-lite/data/regions/DK.js +1 -1
  825. data/node_modules/caniuse-lite/data/regions/DM.js +1 -1
  826. data/node_modules/caniuse-lite/data/regions/DO.js +1 -1
  827. data/node_modules/caniuse-lite/data/regions/DZ.js +1 -1
  828. data/node_modules/caniuse-lite/data/regions/EC.js +1 -1
  829. data/node_modules/caniuse-lite/data/regions/EE.js +1 -1
  830. data/node_modules/caniuse-lite/data/regions/EG.js +1 -1
  831. data/node_modules/caniuse-lite/data/regions/ER.js +1 -1
  832. data/node_modules/caniuse-lite/data/regions/ES.js +1 -1
  833. data/node_modules/caniuse-lite/data/regions/ET.js +1 -1
  834. data/node_modules/caniuse-lite/data/regions/FI.js +1 -1
  835. data/node_modules/caniuse-lite/data/regions/FJ.js +1 -1
  836. data/node_modules/caniuse-lite/data/regions/FK.js +1 -1
  837. data/node_modules/caniuse-lite/data/regions/FM.js +1 -1
  838. data/node_modules/caniuse-lite/data/regions/FO.js +1 -1
  839. data/node_modules/caniuse-lite/data/regions/FR.js +1 -1
  840. data/node_modules/caniuse-lite/data/regions/GA.js +1 -1
  841. data/node_modules/caniuse-lite/data/regions/GB.js +1 -1
  842. data/node_modules/caniuse-lite/data/regions/GD.js +1 -1
  843. data/node_modules/caniuse-lite/data/regions/GE.js +1 -1
  844. data/node_modules/caniuse-lite/data/regions/GF.js +1 -1
  845. data/node_modules/caniuse-lite/data/regions/GG.js +1 -1
  846. data/node_modules/caniuse-lite/data/regions/GH.js +1 -1
  847. data/node_modules/caniuse-lite/data/regions/GI.js +1 -1
  848. data/node_modules/caniuse-lite/data/regions/GL.js +1 -1
  849. data/node_modules/caniuse-lite/data/regions/GM.js +1 -1
  850. data/node_modules/caniuse-lite/data/regions/GN.js +1 -1
  851. data/node_modules/caniuse-lite/data/regions/GP.js +1 -1
  852. data/node_modules/caniuse-lite/data/regions/GQ.js +1 -1
  853. data/node_modules/caniuse-lite/data/regions/GR.js +1 -1
  854. data/node_modules/caniuse-lite/data/regions/GT.js +1 -1
  855. data/node_modules/caniuse-lite/data/regions/GU.js +1 -1
  856. data/node_modules/caniuse-lite/data/regions/GW.js +1 -1
  857. data/node_modules/caniuse-lite/data/regions/GY.js +1 -1
  858. data/node_modules/caniuse-lite/data/regions/HK.js +1 -1
  859. data/node_modules/caniuse-lite/data/regions/HN.js +1 -1
  860. data/node_modules/caniuse-lite/data/regions/HR.js +1 -1
  861. data/node_modules/caniuse-lite/data/regions/HT.js +1 -1
  862. data/node_modules/caniuse-lite/data/regions/HU.js +1 -1
  863. data/node_modules/caniuse-lite/data/regions/ID.js +1 -1
  864. data/node_modules/caniuse-lite/data/regions/IE.js +1 -1
  865. data/node_modules/caniuse-lite/data/regions/IL.js +1 -1
  866. data/node_modules/caniuse-lite/data/regions/IM.js +1 -1
  867. data/node_modules/caniuse-lite/data/regions/IN.js +1 -1
  868. data/node_modules/caniuse-lite/data/regions/IQ.js +1 -1
  869. data/node_modules/caniuse-lite/data/regions/IR.js +1 -1
  870. data/node_modules/caniuse-lite/data/regions/IS.js +1 -1
  871. data/node_modules/caniuse-lite/data/regions/IT.js +1 -1
  872. data/node_modules/caniuse-lite/data/regions/JE.js +1 -1
  873. data/node_modules/caniuse-lite/data/regions/JM.js +1 -1
  874. data/node_modules/caniuse-lite/data/regions/JO.js +1 -1
  875. data/node_modules/caniuse-lite/data/regions/JP.js +1 -1
  876. data/node_modules/caniuse-lite/data/regions/KE.js +1 -1
  877. data/node_modules/caniuse-lite/data/regions/KG.js +1 -1
  878. data/node_modules/caniuse-lite/data/regions/KH.js +1 -1
  879. data/node_modules/caniuse-lite/data/regions/KI.js +1 -1
  880. data/node_modules/caniuse-lite/data/regions/KM.js +1 -1
  881. data/node_modules/caniuse-lite/data/regions/KN.js +1 -1
  882. data/node_modules/caniuse-lite/data/regions/KP.js +1 -1
  883. data/node_modules/caniuse-lite/data/regions/KR.js +1 -1
  884. data/node_modules/caniuse-lite/data/regions/KW.js +1 -1
  885. data/node_modules/caniuse-lite/data/regions/KY.js +1 -1
  886. data/node_modules/caniuse-lite/data/regions/KZ.js +1 -1
  887. data/node_modules/caniuse-lite/data/regions/LA.js +1 -1
  888. data/node_modules/caniuse-lite/data/regions/LB.js +1 -1
  889. data/node_modules/caniuse-lite/data/regions/LC.js +1 -1
  890. data/node_modules/caniuse-lite/data/regions/LI.js +1 -1
  891. data/node_modules/caniuse-lite/data/regions/LK.js +1 -1
  892. data/node_modules/caniuse-lite/data/regions/LR.js +1 -1
  893. data/node_modules/caniuse-lite/data/regions/LS.js +1 -1
  894. data/node_modules/caniuse-lite/data/regions/LT.js +1 -1
  895. data/node_modules/caniuse-lite/data/regions/LU.js +1 -1
  896. data/node_modules/caniuse-lite/data/regions/LV.js +1 -1
  897. data/node_modules/caniuse-lite/data/regions/LY.js +1 -1
  898. data/node_modules/caniuse-lite/data/regions/MA.js +1 -1
  899. data/node_modules/caniuse-lite/data/regions/MC.js +1 -1
  900. data/node_modules/caniuse-lite/data/regions/MD.js +1 -1
  901. data/node_modules/caniuse-lite/data/regions/ME.js +1 -1
  902. data/node_modules/caniuse-lite/data/regions/MG.js +1 -1
  903. data/node_modules/caniuse-lite/data/regions/MH.js +1 -1
  904. data/node_modules/caniuse-lite/data/regions/MK.js +1 -1
  905. data/node_modules/caniuse-lite/data/regions/ML.js +1 -1
  906. data/node_modules/caniuse-lite/data/regions/MM.js +1 -1
  907. data/node_modules/caniuse-lite/data/regions/MN.js +1 -1
  908. data/node_modules/caniuse-lite/data/regions/MO.js +1 -1
  909. data/node_modules/caniuse-lite/data/regions/MP.js +1 -1
  910. data/node_modules/caniuse-lite/data/regions/MQ.js +1 -1
  911. data/node_modules/caniuse-lite/data/regions/MR.js +1 -1
  912. data/node_modules/caniuse-lite/data/regions/MS.js +1 -1
  913. data/node_modules/caniuse-lite/data/regions/MT.js +1 -1
  914. data/node_modules/caniuse-lite/data/regions/MU.js +1 -1
  915. data/node_modules/caniuse-lite/data/regions/MV.js +1 -1
  916. data/node_modules/caniuse-lite/data/regions/MW.js +1 -1
  917. data/node_modules/caniuse-lite/data/regions/MX.js +1 -1
  918. data/node_modules/caniuse-lite/data/regions/MY.js +1 -1
  919. data/node_modules/caniuse-lite/data/regions/MZ.js +1 -1
  920. data/node_modules/caniuse-lite/data/regions/NA.js +1 -1
  921. data/node_modules/caniuse-lite/data/regions/NC.js +1 -1
  922. data/node_modules/caniuse-lite/data/regions/NE.js +1 -1
  923. data/node_modules/caniuse-lite/data/regions/NF.js +1 -1
  924. data/node_modules/caniuse-lite/data/regions/NG.js +1 -1
  925. data/node_modules/caniuse-lite/data/regions/NI.js +1 -1
  926. data/node_modules/caniuse-lite/data/regions/NL.js +1 -1
  927. data/node_modules/caniuse-lite/data/regions/NO.js +1 -1
  928. data/node_modules/caniuse-lite/data/regions/NP.js +1 -1
  929. data/node_modules/caniuse-lite/data/regions/NR.js +1 -1
  930. data/node_modules/caniuse-lite/data/regions/NU.js +1 -1
  931. data/node_modules/caniuse-lite/data/regions/NZ.js +1 -1
  932. data/node_modules/caniuse-lite/data/regions/OM.js +1 -1
  933. data/node_modules/caniuse-lite/data/regions/PA.js +1 -1
  934. data/node_modules/caniuse-lite/data/regions/PE.js +1 -1
  935. data/node_modules/caniuse-lite/data/regions/PF.js +1 -1
  936. data/node_modules/caniuse-lite/data/regions/PG.js +1 -1
  937. data/node_modules/caniuse-lite/data/regions/PH.js +1 -1
  938. data/node_modules/caniuse-lite/data/regions/PK.js +1 -1
  939. data/node_modules/caniuse-lite/data/regions/PL.js +1 -1
  940. data/node_modules/caniuse-lite/data/regions/PM.js +1 -1
  941. data/node_modules/caniuse-lite/data/regions/PN.js +1 -1
  942. data/node_modules/caniuse-lite/data/regions/PR.js +1 -1
  943. data/node_modules/caniuse-lite/data/regions/PS.js +1 -1
  944. data/node_modules/caniuse-lite/data/regions/PT.js +1 -1
  945. data/node_modules/caniuse-lite/data/regions/PW.js +1 -1
  946. data/node_modules/caniuse-lite/data/regions/PY.js +1 -1
  947. data/node_modules/caniuse-lite/data/regions/QA.js +1 -1
  948. data/node_modules/caniuse-lite/data/regions/RE.js +1 -1
  949. data/node_modules/caniuse-lite/data/regions/RO.js +1 -1
  950. data/node_modules/caniuse-lite/data/regions/RS.js +1 -1
  951. data/node_modules/caniuse-lite/data/regions/RU.js +1 -1
  952. data/node_modules/caniuse-lite/data/regions/RW.js +1 -1
  953. data/node_modules/caniuse-lite/data/regions/SA.js +1 -1
  954. data/node_modules/caniuse-lite/data/regions/SB.js +1 -1
  955. data/node_modules/caniuse-lite/data/regions/SC.js +1 -1
  956. data/node_modules/caniuse-lite/data/regions/SD.js +1 -1
  957. data/node_modules/caniuse-lite/data/regions/SE.js +1 -1
  958. data/node_modules/caniuse-lite/data/regions/SG.js +1 -1
  959. data/node_modules/caniuse-lite/data/regions/SH.js +1 -1
  960. data/node_modules/caniuse-lite/data/regions/SI.js +1 -1
  961. data/node_modules/caniuse-lite/data/regions/SK.js +1 -1
  962. data/node_modules/caniuse-lite/data/regions/SL.js +1 -1
  963. data/node_modules/caniuse-lite/data/regions/SM.js +1 -1
  964. data/node_modules/caniuse-lite/data/regions/SN.js +1 -1
  965. data/node_modules/caniuse-lite/data/regions/SO.js +1 -1
  966. data/node_modules/caniuse-lite/data/regions/SR.js +1 -1
  967. data/node_modules/caniuse-lite/data/regions/ST.js +1 -1
  968. data/node_modules/caniuse-lite/data/regions/SV.js +1 -1
  969. data/node_modules/caniuse-lite/data/regions/SY.js +1 -1
  970. data/node_modules/caniuse-lite/data/regions/SZ.js +1 -1
  971. data/node_modules/caniuse-lite/data/regions/TC.js +1 -1
  972. data/node_modules/caniuse-lite/data/regions/TD.js +1 -1
  973. data/node_modules/caniuse-lite/data/regions/TG.js +1 -1
  974. data/node_modules/caniuse-lite/data/regions/TH.js +1 -1
  975. data/node_modules/caniuse-lite/data/regions/TJ.js +1 -1
  976. data/node_modules/caniuse-lite/data/regions/TL.js +1 -1
  977. data/node_modules/caniuse-lite/data/regions/TM.js +1 -1
  978. data/node_modules/caniuse-lite/data/regions/TN.js +1 -1
  979. data/node_modules/caniuse-lite/data/regions/TO.js +1 -1
  980. data/node_modules/caniuse-lite/data/regions/TR.js +1 -1
  981. data/node_modules/caniuse-lite/data/regions/TT.js +1 -1
  982. data/node_modules/caniuse-lite/data/regions/TV.js +1 -1
  983. data/node_modules/caniuse-lite/data/regions/TW.js +1 -1
  984. data/node_modules/caniuse-lite/data/regions/TZ.js +1 -1
  985. data/node_modules/caniuse-lite/data/regions/UA.js +1 -1
  986. data/node_modules/caniuse-lite/data/regions/UG.js +1 -1
  987. data/node_modules/caniuse-lite/data/regions/US.js +1 -1
  988. data/node_modules/caniuse-lite/data/regions/UY.js +1 -1
  989. data/node_modules/caniuse-lite/data/regions/UZ.js +1 -1
  990. data/node_modules/caniuse-lite/data/regions/VA.js +1 -1
  991. data/node_modules/caniuse-lite/data/regions/VC.js +1 -1
  992. data/node_modules/caniuse-lite/data/regions/VE.js +1 -1
  993. data/node_modules/caniuse-lite/data/regions/VG.js +1 -1
  994. data/node_modules/caniuse-lite/data/regions/VI.js +1 -1
  995. data/node_modules/caniuse-lite/data/regions/VN.js +1 -1
  996. data/node_modules/caniuse-lite/data/regions/VU.js +1 -1
  997. data/node_modules/caniuse-lite/data/regions/WF.js +1 -1
  998. data/node_modules/caniuse-lite/data/regions/WS.js +1 -1
  999. data/node_modules/caniuse-lite/data/regions/YE.js +1 -1
  1000. data/node_modules/caniuse-lite/data/regions/YT.js +1 -1
  1001. data/node_modules/caniuse-lite/data/regions/ZA.js +1 -1
  1002. data/node_modules/caniuse-lite/data/regions/ZM.js +1 -1
  1003. data/node_modules/caniuse-lite/data/regions/ZW.js +1 -1
  1004. data/node_modules/caniuse-lite/data/regions/alt-af.js +1 -1
  1005. data/node_modules/caniuse-lite/data/regions/alt-an.js +1 -1
  1006. data/node_modules/caniuse-lite/data/regions/alt-as.js +1 -1
  1007. data/node_modules/caniuse-lite/data/regions/alt-eu.js +1 -1
  1008. data/node_modules/caniuse-lite/data/regions/alt-na.js +1 -1
  1009. data/node_modules/caniuse-lite/data/regions/alt-oc.js +1 -1
  1010. data/node_modules/caniuse-lite/data/regions/alt-sa.js +1 -1
  1011. data/node_modules/caniuse-lite/data/regions/alt-ww.js +1 -1
  1012. data/node_modules/caniuse-lite/package.json +1 -1
  1013. data/node_modules/electron-to-chromium/chromium-versions.js +4 -1
  1014. data/node_modules/electron-to-chromium/chromium-versions.json +1 -1
  1015. data/node_modules/electron-to-chromium/full-chromium-versions.js +75 -3
  1016. data/node_modules/electron-to-chromium/full-chromium-versions.json +1 -1
  1017. data/node_modules/electron-to-chromium/full-versions.js +45 -1
  1018. data/node_modules/electron-to-chromium/full-versions.json +1 -1
  1019. data/node_modules/electron-to-chromium/package.json +1 -1
  1020. data/node_modules/electron-to-chromium/versions.js +8 -1
  1021. data/node_modules/electron-to-chromium/versions.json +1 -1
  1022. data/node_modules/es-object-atoms/CHANGELOG.md +21 -0
  1023. data/node_modules/es-object-atoms/README.md +7 -0
  1024. data/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +2 -2
  1025. data/node_modules/es-object-atoms/ToObject.d.ts +6 -2
  1026. data/node_modules/es-object-atoms/isObject.d.ts +3 -0
  1027. data/node_modules/es-object-atoms/isObject.js +6 -0
  1028. data/node_modules/es-object-atoms/package.json +9 -8
  1029. data/node_modules/es-object-atoms/test/index.js +11 -1
  1030. data/node_modules/es-shim-unscopables/CHANGELOG.md +8 -0
  1031. data/node_modules/es-shim-unscopables/index.d.ts +8 -0
  1032. data/node_modules/es-shim-unscopables/index.js +2 -1
  1033. data/node_modules/es-shim-unscopables/package.json +20 -11
  1034. data/node_modules/es-shim-unscopables/test/index.js +4 -1
  1035. data/node_modules/es-shim-unscopables/test/with.js +8 -0
  1036. data/node_modules/es-shim-unscopables/tsconfig.json +10 -0
  1037. data/node_modules/eslint/README.md +6 -4
  1038. data/node_modules/eslint/lib/config-api.js +12 -0
  1039. data/node_modules/eslint/lib/languages/js/source-code/source-code.js +18 -14
  1040. data/node_modules/eslint/lib/rules/no-console.js +19 -11
  1041. data/node_modules/eslint/lib/rules/no-native-reassign.js +1 -1
  1042. data/node_modules/eslint/lib/rules/no-negated-in-lhs.js +1 -1
  1043. data/node_modules/eslint/lib/types/config-api.d.ts +8 -0
  1044. data/node_modules/eslint/lib/types/rules.d.ts +5199 -0
  1045. data/node_modules/eslint/package.json +14 -6
  1046. data/node_modules/eslint-scope/README.md +4 -3
  1047. data/node_modules/eslint-scope/dist/eslint-scope.cjs +59 -2
  1048. data/node_modules/eslint-scope/lib/index.js +1 -0
  1049. data/node_modules/eslint-scope/lib/referencer.js +52 -0
  1050. data/node_modules/eslint-scope/lib/scope-manager.js +4 -0
  1051. data/node_modules/eslint-scope/lib/scope.js +1 -1
  1052. data/node_modules/eslint-scope/lib/version.js +1 -1
  1053. data/node_modules/eslint-scope/package.json +1 -1
  1054. data/node_modules/flatted/index.js +3 -3
  1055. data/node_modules/flatted/min.js +1 -1
  1056. data/node_modules/flatted/package.json +21 -8
  1057. data/node_modules/flatted/python/flatted.py +4 -4
  1058. data/node_modules/flow-parser/flow_parser.js +5550 -5530
  1059. data/node_modules/flow-parser/package.json +1 -1
  1060. data/node_modules/for-each/CHANGELOG.md +107 -0
  1061. data/node_modules/for-each/README.md +0 -4
  1062. data/node_modules/for-each/index.d.ts +35 -0
  1063. data/node_modules/for-each/index.js +11 -4
  1064. data/node_modules/for-each/package.json +47 -36
  1065. data/node_modules/for-each/test/test.js +54 -12
  1066. data/node_modules/for-each/tsconfig.json +8 -0
  1067. data/node_modules/get-intrinsic/CHANGELOG.md +8 -0
  1068. data/node_modules/get-intrinsic/index.js +1 -0
  1069. data/node_modules/get-intrinsic/package.json +8 -8
  1070. data/node_modules/import-fresh/index.js +2 -1
  1071. data/node_modules/import-fresh/package.json +6 -1
  1072. data/node_modules/import-fresh/readme.md +14 -8
  1073. data/node_modules/is-async-function/CHANGELOG.md +13 -0
  1074. data/node_modules/is-async-function/index.d.ts +4 -2
  1075. data/node_modules/is-async-function/index.js +3 -18
  1076. data/node_modules/is-async-function/package.json +8 -3
  1077. data/node_modules/is-boolean-object/CHANGELOG.md +11 -0
  1078. data/node_modules/is-boolean-object/index.js +1 -1
  1079. data/node_modules/is-boolean-object/package.json +8 -6
  1080. data/node_modules/is-boolean-object/test/index.js +24 -1
  1081. data/node_modules/is-weakref/CHANGELOG.md +8 -0
  1082. data/node_modules/is-weakref/index.d.ts +1 -1
  1083. data/node_modules/is-weakref/index.js +3 -1
  1084. data/node_modules/is-weakref/package.json +6 -6
  1085. data/node_modules/object-inspect/CHANGELOG.md +8 -0
  1086. data/node_modules/object-inspect/index.js +10 -7
  1087. data/node_modules/object-inspect/package.json +5 -4
  1088. data/node_modules/object-inspect/test/values.js +50 -0
  1089. data/node_modules/possible-typed-array-names/CHANGELOG.md +14 -0
  1090. data/node_modules/possible-typed-array-names/README.md +4 -2
  1091. data/node_modules/possible-typed-array-names/index.d.ts +1 -0
  1092. data/node_modules/possible-typed-array-names/index.js +1 -0
  1093. data/node_modules/possible-typed-array-names/package.json +10 -9
  1094. data/node_modules/possible-typed-array-names/test/index.js +6 -3
  1095. data/node_modules/possible-typed-array-names/tsconfig.json +2 -42
  1096. data/node_modules/recast/lib/lines.d.ts +2 -2
  1097. data/node_modules/recast/lib/printer.js +17 -5
  1098. data/node_modules/recast/package.json +1 -1
  1099. data/node_modules/typescript/README.md +1 -1
  1100. data/node_modules/typescript/lib/_tsc.js +931 -500
  1101. data/node_modules/typescript/lib/_tsserver.js +43 -7
  1102. data/node_modules/typescript/lib/cs/diagnosticMessages.generated.json +14 -8
  1103. data/node_modules/typescript/lib/de/diagnosticMessages.generated.json +14 -8
  1104. data/node_modules/typescript/lib/es/diagnosticMessages.generated.json +14 -8
  1105. data/node_modules/typescript/lib/fr/diagnosticMessages.generated.json +14 -8
  1106. data/node_modules/typescript/lib/it/diagnosticMessages.generated.json +14 -8
  1107. data/node_modules/typescript/lib/ja/diagnosticMessages.generated.json +14 -8
  1108. data/node_modules/typescript/lib/ko/diagnosticMessages.generated.json +14 -8
  1109. data/node_modules/typescript/lib/lib.dom.d.ts +769 -142
  1110. data/node_modules/typescript/lib/lib.dom.iterable.d.ts +9 -7
  1111. data/node_modules/typescript/lib/lib.es2015.iterable.d.ts +69 -54
  1112. data/node_modules/typescript/lib/lib.es2020.bigint.d.ts +41 -7
  1113. data/node_modules/typescript/lib/lib.es2023.array.d.ts +24 -24
  1114. data/node_modules/typescript/lib/lib.es5.d.ts +60 -51
  1115. data/node_modules/typescript/lib/lib.esnext.d.ts +2 -0
  1116. data/node_modules/typescript/lib/lib.esnext.float16.d.ts +443 -0
  1117. data/node_modules/typescript/lib/lib.esnext.iterator.d.ts +1 -1
  1118. data/node_modules/typescript/lib/lib.esnext.promise.d.ts +34 -0
  1119. data/node_modules/typescript/lib/lib.webworker.d.ts +262 -55
  1120. data/node_modules/typescript/lib/lib.webworker.iterable.d.ts +6 -7
  1121. data/node_modules/typescript/lib/pl/diagnosticMessages.generated.json +14 -8
  1122. data/node_modules/typescript/lib/pt-br/diagnosticMessages.generated.json +14 -8
  1123. data/node_modules/typescript/lib/ru/diagnosticMessages.generated.json +14 -8
  1124. data/node_modules/typescript/lib/tr/diagnosticMessages.generated.json +14 -8
  1125. data/node_modules/typescript/lib/typescript.d.ts +14 -3
  1126. data/node_modules/typescript/lib/typescript.js +1035 -570
  1127. data/node_modules/typescript/lib/zh-cn/diagnosticMessages.generated.json +14 -8
  1128. data/node_modules/typescript/lib/zh-tw/diagnosticMessages.generated.json +14 -8
  1129. data/node_modules/typescript/package.json +22 -22
  1130. data/node_modules/update-browserslist-db/index.js +5 -7
  1131. data/node_modules/update-browserslist-db/package.json +2 -2
  1132. data/node_modules/which-typed-array/CHANGELOG.md +10 -0
  1133. data/node_modules/which-typed-array/index.js +21 -20
  1134. data/node_modules/which-typed-array/package.json +9 -7
  1135. data/node_modules/which-typed-array/tsconfig.json +1 -1
  1136. data/package.json +2 -3
  1137. metadata +41 -206
  1138. data/linters/jscodeshift/arrow-function-transform.js +0 -42
  1139. data/node_modules/.bin/jscodeshift +0 -1
  1140. data/node_modules/@babel/eslint-parser/LICENSE +0 -22
  1141. data/node_modules/@babel/eslint-parser/README.md +0 -142
  1142. data/node_modules/@babel/eslint-parser/lib/analyze-scope.cjs +0 -322
  1143. data/node_modules/@babel/eslint-parser/lib/analyze-scope.cjs.map +0 -1
  1144. data/node_modules/@babel/eslint-parser/lib/client.cjs +0 -106
  1145. data/node_modules/@babel/eslint-parser/lib/client.cjs.map +0 -1
  1146. data/node_modules/@babel/eslint-parser/lib/configuration.cjs +0 -23
  1147. data/node_modules/@babel/eslint-parser/lib/configuration.cjs.map +0 -1
  1148. data/node_modules/@babel/eslint-parser/lib/convert/convertAST.cjs +0 -134
  1149. data/node_modules/@babel/eslint-parser/lib/convert/convertAST.cjs.map +0 -1
  1150. data/node_modules/@babel/eslint-parser/lib/convert/convertComments.cjs +0 -10
  1151. data/node_modules/@babel/eslint-parser/lib/convert/convertComments.cjs.map +0 -1
  1152. data/node_modules/@babel/eslint-parser/lib/convert/convertTokens.cjs +0 -159
  1153. data/node_modules/@babel/eslint-parser/lib/convert/convertTokens.cjs.map +0 -1
  1154. data/node_modules/@babel/eslint-parser/lib/convert/index.cjs +0 -25
  1155. data/node_modules/@babel/eslint-parser/lib/convert/index.cjs.map +0 -1
  1156. data/node_modules/@babel/eslint-parser/lib/experimental-worker.cjs +0 -32
  1157. data/node_modules/@babel/eslint-parser/lib/experimental-worker.cjs.map +0 -1
  1158. data/node_modules/@babel/eslint-parser/lib/index.cjs +0 -32
  1159. data/node_modules/@babel/eslint-parser/lib/index.cjs.map +0 -1
  1160. data/node_modules/@babel/eslint-parser/lib/parse.cjs +0 -37
  1161. data/node_modules/@babel/eslint-parser/lib/parse.cjs.map +0 -1
  1162. data/node_modules/@babel/eslint-parser/lib/utils/eslint-version.cjs +0 -5
  1163. data/node_modules/@babel/eslint-parser/lib/utils/eslint-version.cjs.map +0 -1
  1164. data/node_modules/@babel/eslint-parser/lib/worker/ast-info.cjs +0 -37
  1165. data/node_modules/@babel/eslint-parser/lib/worker/ast-info.cjs.map +0 -1
  1166. data/node_modules/@babel/eslint-parser/lib/worker/babel-core.cjs +0 -21
  1167. data/node_modules/@babel/eslint-parser/lib/worker/babel-core.cjs.map +0 -1
  1168. data/node_modules/@babel/eslint-parser/lib/worker/configuration.cjs +0 -91
  1169. data/node_modules/@babel/eslint-parser/lib/worker/configuration.cjs.map +0 -1
  1170. data/node_modules/@babel/eslint-parser/lib/worker/extract-parser-options-plugin.cjs +0 -11
  1171. data/node_modules/@babel/eslint-parser/lib/worker/extract-parser-options-plugin.cjs.map +0 -1
  1172. data/node_modules/@babel/eslint-parser/lib/worker/handle-message.cjs +0 -32
  1173. data/node_modules/@babel/eslint-parser/lib/worker/handle-message.cjs.map +0 -1
  1174. data/node_modules/@babel/eslint-parser/lib/worker/index.cjs +0 -39
  1175. data/node_modules/@babel/eslint-parser/lib/worker/index.cjs.map +0 -1
  1176. data/node_modules/@babel/eslint-parser/lib/worker/maybeParse.cjs +0 -48
  1177. data/node_modules/@babel/eslint-parser/lib/worker/maybeParse.cjs.map +0 -1
  1178. data/node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys/CHANGELOG.md +0 -36
  1179. data/node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys/README.md +0 -98
  1180. data/node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys/lib/index.js +0 -81
  1181. data/node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys/lib/visitor-keys.json +0 -289
  1182. data/node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys/package.json +0 -39
  1183. data/node_modules/@babel/eslint-parser/node_modules/semver/LICENSE +0 -15
  1184. data/node_modules/@babel/eslint-parser/node_modules/semver/README.md +0 -443
  1185. data/node_modules/@babel/eslint-parser/node_modules/semver/bin/semver.js +0 -174
  1186. data/node_modules/@babel/eslint-parser/node_modules/semver/package.json +0 -38
  1187. data/node_modules/@babel/eslint-parser/node_modules/semver/range.bnf +0 -16
  1188. data/node_modules/@babel/eslint-parser/node_modules/semver/semver.js +0 -1643
  1189. data/node_modules/@babel/eslint-parser/package.json +0 -53
  1190. data/node_modules/@babel/eslint-parser/types.d.cts +0 -9
  1191. data/node_modules/@babel/plugin-proposal-decorators/LICENSE +0 -22
  1192. data/node_modules/@babel/plugin-proposal-decorators/README.md +0 -19
  1193. data/node_modules/@babel/plugin-proposal-decorators/lib/index.js +0 -41
  1194. data/node_modules/@babel/plugin-proposal-decorators/lib/index.js.map +0 -1
  1195. data/node_modules/@babel/plugin-proposal-decorators/lib/transformer-legacy.js +0 -165
  1196. data/node_modules/@babel/plugin-proposal-decorators/lib/transformer-legacy.js.map +0 -1
  1197. data/node_modules/@babel/plugin-proposal-decorators/package.json +0 -42
  1198. data/node_modules/@babel/plugin-syntax-decorators/LICENSE +0 -22
  1199. data/node_modules/@babel/plugin-syntax-decorators/README.md +0 -19
  1200. data/node_modules/@babel/plugin-syntax-decorators/lib/index.js +0 -81
  1201. data/node_modules/@babel/plugin-syntax-decorators/lib/index.js.map +0 -1
  1202. data/node_modules/@babel/plugin-syntax-decorators/package.json +0 -33
  1203. data/node_modules/@babel/plugin-transform-react-display-name/LICENSE +0 -22
  1204. data/node_modules/@babel/plugin-transform-react-display-name/README.md +0 -19
  1205. data/node_modules/@babel/plugin-transform-react-display-name/lib/index.js +0 -92
  1206. data/node_modules/@babel/plugin-transform-react-display-name/lib/index.js.map +0 -1
  1207. data/node_modules/@babel/plugin-transform-react-display-name/package.json +0 -34
  1208. data/node_modules/@babel/plugin-transform-react-jsx/LICENSE +0 -22
  1209. data/node_modules/@babel/plugin-transform-react-jsx/README.md +0 -19
  1210. data/node_modules/@babel/plugin-transform-react-jsx/lib/create-plugin.js +0 -505
  1211. data/node_modules/@babel/plugin-transform-react-jsx/lib/create-plugin.js.map +0 -1
  1212. data/node_modules/@babel/plugin-transform-react-jsx/lib/development.js +0 -13
  1213. data/node_modules/@babel/plugin-transform-react-jsx/lib/development.js.map +0 -1
  1214. data/node_modules/@babel/plugin-transform-react-jsx/lib/index.js +0 -13
  1215. data/node_modules/@babel/plugin-transform-react-jsx/lib/index.js.map +0 -1
  1216. data/node_modules/@babel/plugin-transform-react-jsx/package.json +0 -39
  1217. data/node_modules/@babel/plugin-transform-react-jsx-development/LICENSE +0 -22
  1218. data/node_modules/@babel/plugin-transform-react-jsx-development/README.md +0 -19
  1219. data/node_modules/@babel/plugin-transform-react-jsx-development/lib/index.js +0 -10
  1220. data/node_modules/@babel/plugin-transform-react-jsx-development/lib/index.js.map +0 -1
  1221. data/node_modules/@babel/plugin-transform-react-jsx-development/package.json +0 -33
  1222. data/node_modules/@babel/plugin-transform-react-pure-annotations/LICENSE +0 -22
  1223. data/node_modules/@babel/plugin-transform-react-pure-annotations/README.md +0 -19
  1224. data/node_modules/@babel/plugin-transform-react-pure-annotations/lib/index.js +0 -49
  1225. data/node_modules/@babel/plugin-transform-react-pure-annotations/lib/index.js.map +0 -1
  1226. data/node_modules/@babel/plugin-transform-react-pure-annotations/package.json +0 -34
  1227. data/node_modules/@babel/preset-react/LICENSE +0 -22
  1228. data/node_modules/@babel/preset-react/README.md +0 -19
  1229. data/node_modules/@babel/preset-react/lib/index.js +0 -79
  1230. data/node_modules/@babel/preset-react/lib/index.js.map +0 -1
  1231. data/node_modules/@babel/preset-react/package.json +0 -37
  1232. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/LICENSE +0 -7
  1233. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/index.js +0 -8
  1234. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/CHANGELOG.md +0 -70
  1235. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/LICENSE +0 -22
  1236. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/README.md +0 -54
  1237. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/definition.js +0 -86
  1238. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/index.js +0 -165
  1239. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/pattern-visitor.js +0 -152
  1240. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/reference.js +0 -167
  1241. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/referencer.js +0 -629
  1242. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/scope-manager.js +0 -247
  1243. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/scope.js +0 -748
  1244. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/lib/variable.js +0 -88
  1245. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/node_modules/estraverse/LICENSE.BSD +0 -19
  1246. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/node_modules/estraverse/README.md +0 -153
  1247. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/node_modules/estraverse/estraverse.js +0 -782
  1248. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/node_modules/estraverse/gulpfile.js +0 -70
  1249. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/node_modules/estraverse/package.json +0 -40
  1250. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope/package.json +0 -48
  1251. data/node_modules/@nicolo-ribaudo/eslint-scope-5-internals/package.json +0 -14
  1252. data/node_modules/eslint/lib/types/rules/best-practices.d.ts +0 -1143
  1253. data/node_modules/eslint/lib/types/rules/deprecated.d.ts +0 -252
  1254. data/node_modules/eslint/lib/types/rules/ecmascript-6.d.ts +0 -647
  1255. data/node_modules/eslint/lib/types/rules/index.d.ts +0 -50
  1256. data/node_modules/eslint/lib/types/rules/node-commonjs.d.ts +0 -171
  1257. data/node_modules/eslint/lib/types/rules/possible-errors.d.ts +0 -685
  1258. data/node_modules/eslint/lib/types/rules/strict-mode.d.ts +0 -38
  1259. data/node_modules/eslint/lib/types/rules/stylistic-issues.d.ts +0 -2043
  1260. data/node_modules/eslint/lib/types/rules/variables.d.ts +0 -234
  1261. data/node_modules/flatted/python/test.py +0 -63
  1262. data/node_modules/jscodeshift/CHANGELOG.md +0 -226
  1263. data/node_modules/jscodeshift/CODE_OF_CONDUCT.md +0 -3
  1264. data/node_modules/jscodeshift/CONTRIBUTING.md +0 -48
  1265. data/node_modules/jscodeshift/README.md +0 -671
  1266. data/node_modules/jscodeshift/bin/jscodeshift.js +0 -182
  1267. data/node_modules/jscodeshift/bin/jscodeshift.sh +0 -12
  1268. data/node_modules/jscodeshift/dist/Collection.js +0 -472
  1269. data/node_modules/jscodeshift/dist/Runner.js +0 -322
  1270. data/node_modules/jscodeshift/dist/Worker.js +0 -210
  1271. data/node_modules/jscodeshift/dist/__testfixtures__/test-async-transform.input.js +0 -1
  1272. data/node_modules/jscodeshift/dist/__testfixtures__/test-async-transform.js +0 -11
  1273. data/node_modules/jscodeshift/dist/__testfixtures__/test-async-transform.output.js +0 -1
  1274. data/node_modules/jscodeshift/dist/__testfixtures__/test-sync-transform.input.js +0 -1
  1275. data/node_modules/jscodeshift/dist/__testfixtures__/test-sync-transform.js +0 -7
  1276. data/node_modules/jscodeshift/dist/__testfixtures__/test-sync-transform.output.js +0 -1
  1277. data/node_modules/jscodeshift/dist/argsParser.js +0 -273
  1278. data/node_modules/jscodeshift/dist/collections/ImportDeclaration.js +0 -113
  1279. data/node_modules/jscodeshift/dist/collections/JSXElement.js +0 -221
  1280. data/node_modules/jscodeshift/dist/collections/Node.js +0 -187
  1281. data/node_modules/jscodeshift/dist/collections/VariableDeclarator.js +0 -210
  1282. data/node_modules/jscodeshift/dist/collections/index.js +0 -14
  1283. data/node_modules/jscodeshift/dist/core.js +0 -183
  1284. data/node_modules/jscodeshift/dist/getParser.js +0 -25
  1285. data/node_modules/jscodeshift/dist/ignoreFiles.js +0 -68
  1286. data/node_modules/jscodeshift/dist/matchNode.js +0 -40
  1287. data/node_modules/jscodeshift/dist/template.js +0 -173
  1288. data/node_modules/jscodeshift/dist/testUtils.js +0 -173
  1289. data/node_modules/jscodeshift/dist/utils/intersection.js +0 -27
  1290. data/node_modules/jscodeshift/dist/utils/once.js +0 -21
  1291. data/node_modules/jscodeshift/dist/utils/union.js +0 -20
  1292. data/node_modules/jscodeshift/index.js +0 -9
  1293. data/node_modules/jscodeshift/package.json +0 -74
  1294. data/node_modules/jscodeshift/parser/babel5Compat.js +0 -50
  1295. data/node_modules/jscodeshift/parser/babylon.js +0 -57
  1296. data/node_modules/jscodeshift/parser/flow.js +0 -34
  1297. data/node_modules/jscodeshift/parser/ts.js +0 -24
  1298. data/node_modules/jscodeshift/parser/tsOptions.js +0 -46
  1299. data/node_modules/jscodeshift/parser/tsx.js +0 -27
  1300. data/node_modules/jscodeshift/src/Collection.js +0 -472
  1301. data/node_modules/jscodeshift/src/Runner.js +0 -322
  1302. data/node_modules/jscodeshift/src/Worker.js +0 -210
  1303. data/node_modules/jscodeshift/src/__testfixtures__/test-async-transform.input.js +0 -1
  1304. data/node_modules/jscodeshift/src/__testfixtures__/test-async-transform.js +0 -11
  1305. data/node_modules/jscodeshift/src/__testfixtures__/test-async-transform.output.js +0 -1
  1306. data/node_modules/jscodeshift/src/__testfixtures__/test-sync-transform.input.js +0 -1
  1307. data/node_modules/jscodeshift/src/__testfixtures__/test-sync-transform.js +0 -7
  1308. data/node_modules/jscodeshift/src/__testfixtures__/test-sync-transform.output.js +0 -1
  1309. data/node_modules/jscodeshift/src/argsParser.js +0 -273
  1310. data/node_modules/jscodeshift/src/collections/ImportDeclaration.js +0 -113
  1311. data/node_modules/jscodeshift/src/collections/JSXElement.js +0 -221
  1312. data/node_modules/jscodeshift/src/collections/Node.js +0 -187
  1313. data/node_modules/jscodeshift/src/collections/VariableDeclarator.js +0 -210
  1314. data/node_modules/jscodeshift/src/collections/index.js +0 -14
  1315. data/node_modules/jscodeshift/src/core.js +0 -183
  1316. data/node_modules/jscodeshift/src/getParser.js +0 -25
  1317. data/node_modules/jscodeshift/src/ignoreFiles.js +0 -68
  1318. data/node_modules/jscodeshift/src/matchNode.js +0 -40
  1319. data/node_modules/jscodeshift/src/template.js +0 -173
  1320. data/node_modules/jscodeshift/src/testUtils.js +0 -173
  1321. data/node_modules/jscodeshift/src/utils/intersection.js +0 -27
  1322. data/node_modules/jscodeshift/src/utils/once.js +0 -21
  1323. data/node_modules/jscodeshift/src/utils/union.js +0 -20
  1324. data/node_modules/jscodeshift/utils/requirePackage.js +0 -24
  1325. data/node_modules/jscodeshift/utils/testUtils.js +0 -49
  1326. data/node_modules/jscodeshift/website/README.md +0 -44
  1327. data/node_modules/jscodeshift/website/astro.config.mjs +0 -36
  1328. data/node_modules/jscodeshift/website/package.json +0 -17
  1329. data/node_modules/jscodeshift/website/public/favicon.svg +0 -1
  1330. data/node_modules/jscodeshift/website/src/assets/houston.webp +0 -0
  1331. data/node_modules/jscodeshift/website/src/content/config.ts +0 -6
  1332. data/node_modules/jscodeshift/website/src/content/docs/build/api-reference.mdx +0 -406
  1333. data/node_modules/jscodeshift/website/src/content/docs/build/ast-grammar.mdx +0 -3086
  1334. data/node_modules/jscodeshift/website/src/content/docs/index.mdx +0 -15
  1335. data/node_modules/jscodeshift/website/src/content/docs/overview/introduction.mdx +0 -45
  1336. data/node_modules/jscodeshift/website/src/content/docs/run/cli.mdx +0 -161
  1337. data/node_modules/jscodeshift/website/src/env.d.ts +0 -2
  1338. data/node_modules/jscodeshift/website/tsconfig.json +0 -3
  1339. data/node_modules/typescript/lib/cancellationToken.js +0 -90
@@ -1 +1 @@
1
- {"version":3,"names":["_t","require","_index","isArrayTypeAnnotation","isBinaryExpression","isCallExpression","isForOfStatement","isIndexedAccessType","isMemberExpression","isObjectPattern","isOptionalMemberExpression","isYieldExpression","isStatement","PRECEDENCE","Map","getBinaryPrecedence","node","nodeType","get","operator","isTSTypeExpression","isClassExtendsClause","parent","parentType","type","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","tokenContext","Boolean","TokenContext","arrowFlowReturnType","UpdateExpression","needsParenBeforeExpressionBrace","expressionStatement","arrowBody","ObjectExpression","DoExpression","async","Binary","left","parentPos","nodePos","right","undefined","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSUnionType","TSInferType","TSInstantiationExpression","typeParameters","BinaryExpression","inForStatementInit","SequenceExpression","property","YieldExpression","test","ClassExpression","exportDefault","UnaryLike","FunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","_inForInit","getRawIdentifier","_node$extra","extra","parenthesized","rightType","id","name","isFollowedByBracket","computed","optional","forHead","forInHead","forOfHead","await"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isBinaryExpression,\n isCallExpression,\n isForOfStatement,\n isIndexedAccessType,\n isMemberExpression,\n isObjectPattern,\n isOptionalMemberExpression,\n isYieldExpression,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport { TokenContext } from \"./index.ts\";\n\nconst PRECEDENCE = new Map([\n [\"||\", 0],\n [\"??\", 0],\n [\"|>\", 0],\n [\"&&\", 1],\n [\"|\", 2],\n [\"^\", 3],\n [\"&\", 4],\n [\"==\", 5],\n [\"===\", 5],\n [\"!=\", 5],\n [\"!==\", 5],\n [\"<\", 6],\n [\">\", 6],\n [\"<=\", 6],\n [\">=\", 6],\n [\"in\", 6],\n [\"instanceof\", 6],\n [\">>\", 7],\n [\"<<\", 7],\n [\">>>\", 7],\n [\"+\", 8],\n [\"-\", 8],\n [\"*\", 9],\n [\"/\", 9],\n [\"%\", 9],\n [\"**\", 10],\n]);\n\nfunction getBinaryPrecedence(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n nodeType: string,\n): number;\nfunction getBinaryPrecedence(\n node: t.Node,\n nodeType: string,\n): number | undefined;\nfunction getBinaryPrecedence(node: t.Node, nodeType: string) {\n if (nodeType === \"BinaryExpression\" || nodeType === \"LogicalExpression\") {\n return PRECEDENCE.get((node as t.Binary).operator);\n }\n if (nodeType === \"TSAsExpression\" || nodeType === \"TSSatisfiesExpression\") {\n return PRECEDENCE.get(\"in\");\n }\n}\n\nfunction isTSTypeExpression(nodeType: string) {\n return (\n nodeType === \"TSAsExpression\" ||\n nodeType === \"TSSatisfiesExpression\" ||\n nodeType === \"TSTypeAssertion\"\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => {\n const parentType = parent.type;\n return (\n (parentType === \"ClassDeclaration\" || parentType === \"ClassExpression\") &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) => {\n const parentType = parent.type;\n return (\n ((parentType === \"MemberExpression\" ||\n parentType === \"OptionalMemberExpression\") &&\n parent.object === node) ||\n ((parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\") &&\n parent.callee === node) ||\n (parentType === \"TaggedTemplateExpression\" && parent.tag === node) ||\n parentType === \"TSNonNullExpression\"\n );\n};\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: t.Node,\n): boolean {\n return isArrayTypeAnnotation(parent);\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n const parentType = parent.type;\n return (\n // (() => A) | (() => B)\n parentType === \"UnionTypeAnnotation\" ||\n // (() => A) & (() => B)\n parentType === \"IntersectionTypeAnnotation\" ||\n // (() => A)[]\n parentType === \"ArrayTypeAnnotation\" ||\n Boolean(tokenContext & TokenContext.arrowFlowReturnType)\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: t.Node,\n): boolean {\n return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);\n}\n\nfunction needsParenBeforeExpressionBrace(tokenContext: number) {\n return Boolean(\n tokenContext & (TokenContext.expressionStatement | TokenContext.arrowBody),\n );\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return needsParenBeforeExpressionBrace(tokenContext);\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && Boolean(tokenContext & TokenContext.expressionStatement)\n );\n}\n\nexport function Binary(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean | undefined {\n const parentType = parent.type;\n if (\n node.type === \"BinaryExpression\" &&\n node.operator === \"**\" &&\n parentType === \"BinaryExpression\" &&\n parent.operator === \"**\"\n ) {\n return parent.left === node;\n }\n\n if (isClassExtendsClause(node, parent)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent) ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"AwaitExpression\"\n ) {\n return true;\n }\n\n const parentPos = getBinaryPrecedence(parent, parentType);\n if (parentPos != null) {\n const nodePos = getBinaryPrecedence(node, node.type);\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parentType === \"BinaryExpression\" &&\n parent.right === node) ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n\n return undefined;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"ArrayTypeAnnotation\" ||\n parentType === \"NullableTypeAnnotation\" ||\n parentType === \"IntersectionTypeAnnotation\" ||\n parentType === \"UnionTypeAnnotation\"\n );\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: t.Node,\n): boolean {\n return isIndexedAccessType(parent) && parent.objectType === node;\n}\n\nexport function TSAsExpression(\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean {\n if (\n (parent.type === \"AssignmentExpression\" ||\n parent.type === \"AssignmentPattern\") &&\n parent.left === node\n ) {\n return true;\n }\n if (\n parent.type === \"BinaryExpression\" &&\n (parent.operator === \"|\" || parent.operator === \"&\") &&\n node === parent.left\n ) {\n return true;\n }\n return Binary(node, parent);\n}\n\nexport { TSAsExpression as TSSatisfiesExpression };\n\nexport { UnaryLike as TSTypeAssertion };\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSArrayType\" ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSRestType\"\n );\n}\n\nexport { TSUnionType as TSIntersectionType };\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n const parentType = parent.type;\n return parentType === \"TSArrayType\" || parentType === \"TSOptionalType\";\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n const parentType = parent.type;\n return (\n (parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\" ||\n parentType === \"TSInstantiationExpression\") &&\n !!parent.typeParameters\n );\n}\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n tokenContext: unknown,\n inForStatementInit: boolean,\n): boolean {\n // for ((1 in []);;);\n // for (var x = (1 in []) in 2);\n return node.operator === \"in\" && inForStatementInit;\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"SequenceExpression\" ||\n parentType === \"ParenthesizedExpression\" ||\n (parentType === \"MemberExpression\" && parent.property === node) ||\n (parentType === \"OptionalMemberExpression\" && parent.property === node) ||\n parentType === \"TemplateLiteral\"\n ) {\n return false;\n }\n if (parentType === \"ClassDeclaration\") {\n return true;\n }\n if (parentType === \"ForOfStatement\") {\n return parent.right === node;\n }\n if (parentType === \"ExportDefaultDeclaration\") {\n return true;\n }\n\n return !isStatement(parent);\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n hasPostfixPart(node, parent) ||\n (parentType === \"AwaitExpression\" && isYieldExpression(node)) ||\n (parentType === \"ConditionalExpression\" && node === parent.test) ||\n isClassExtendsClause(node, parent) ||\n isTSTypeExpression(parentType)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.TSTypeAssertion\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n (isBinaryExpression(parent) &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n parentType === \"AwaitExpression\" ||\n isTSTypeExpression(parentType)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport { ConditionalExpression as ArrowFunctionExpression };\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n (isCallExpression(parent) && parent.callee === node) ||\n (isMemberExpression(parent) && parent.object === node)\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n if (\n needsParenBeforeExpressionBrace(tokenContext) &&\n isObjectPattern(node.left)\n ) {\n return true;\n } else {\n return ConditionalExpression(node, parent);\n }\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (isTSTypeExpression(parentType)) return true;\n if (parentType !== \"LogicalExpression\") return false;\n switch (node.operator) {\n case \"||\":\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return parent.operator === \"??\";\n case \"??\":\n return parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n tokenContext: number,\n _inForInit: boolean,\n getRawIdentifier: (node: t.Identifier) => string,\n): boolean {\n const parentType = parent.type;\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n parentType === \"AssignmentExpression\" &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\n }\n\n if (getRawIdentifier && getRawIdentifier(node) !== node.name) {\n return false;\n }\n\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n if (\n isFollowedByBracket &&\n tokenContext &\n (TokenContext.expressionStatement |\n TokenContext.forHead |\n TokenContext.forInHead)\n ) {\n return true;\n }\n return Boolean(tokenContext & TokenContext.forOfHead);\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n return (\n node.name === \"async\" &&\n isForOfStatement(parent, { left: node, await: false })\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_t","require","_index","isArrayTypeAnnotation","isBinaryExpression","isCallExpression","isForOfStatement","isIndexedAccessType","isMemberExpression","isObjectPattern","isOptionalMemberExpression","isYieldExpression","isStatement","PRECEDENCE","Map","getBinaryPrecedence","node","nodeType","get","operator","isTSTypeExpression","isClassExtendsClause","parent","parentType","type","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","tokenContext","Boolean","TokenContext","arrowFlowReturnType","UpdateExpression","needsParenBeforeExpressionBrace","expressionStatement","arrowBody","ObjectExpression","DoExpression","async","Binary","left","parentPos","nodePos","right","undefined","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSConditionalType","types","checkType","extendsType","TSUnionType","TSIntersectionType","TSInferType","typeParameter","constraint","TSTypeOperator","TSInstantiationExpression","typeParameters","TSFunctionType","BinaryExpression","inForStatementInit","SequenceExpression","property","YieldExpression","test","ClassExpression","exportDefault","UnaryLike","FunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","_inForInit","getRawIdentifier","_node$extra","extra","parenthesized","rightType","id","name","isFollowedByBracket","computed","optional","forHead","forInHead","forOfHead","await"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isBinaryExpression,\n isCallExpression,\n isForOfStatement,\n isIndexedAccessType,\n isMemberExpression,\n isObjectPattern,\n isOptionalMemberExpression,\n isYieldExpression,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport { TokenContext } from \"./index.ts\";\n\nconst PRECEDENCE = new Map([\n [\"||\", 0],\n [\"??\", 0],\n [\"|>\", 0],\n [\"&&\", 1],\n [\"|\", 2],\n [\"^\", 3],\n [\"&\", 4],\n [\"==\", 5],\n [\"===\", 5],\n [\"!=\", 5],\n [\"!==\", 5],\n [\"<\", 6],\n [\">\", 6],\n [\"<=\", 6],\n [\">=\", 6],\n [\"in\", 6],\n [\"instanceof\", 6],\n [\">>\", 7],\n [\"<<\", 7],\n [\">>>\", 7],\n [\"+\", 8],\n [\"-\", 8],\n [\"*\", 9],\n [\"/\", 9],\n [\"%\", 9],\n [\"**\", 10],\n]);\n\nfunction getBinaryPrecedence(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n nodeType: string,\n): number;\nfunction getBinaryPrecedence(\n node: t.Node,\n nodeType: string,\n): number | undefined;\nfunction getBinaryPrecedence(node: t.Node, nodeType: string) {\n if (nodeType === \"BinaryExpression\" || nodeType === \"LogicalExpression\") {\n return PRECEDENCE.get((node as t.Binary).operator);\n }\n if (nodeType === \"TSAsExpression\" || nodeType === \"TSSatisfiesExpression\") {\n return PRECEDENCE.get(\"in\");\n }\n}\n\nfunction isTSTypeExpression(nodeType: string) {\n return (\n nodeType === \"TSAsExpression\" ||\n nodeType === \"TSSatisfiesExpression\" ||\n nodeType === \"TSTypeAssertion\"\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => {\n const parentType = parent.type;\n return (\n (parentType === \"ClassDeclaration\" || parentType === \"ClassExpression\") &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) => {\n const parentType = parent.type;\n return (\n ((parentType === \"MemberExpression\" ||\n parentType === \"OptionalMemberExpression\") &&\n parent.object === node) ||\n ((parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\") &&\n parent.callee === node) ||\n (parentType === \"TaggedTemplateExpression\" && parent.tag === node) ||\n parentType === \"TSNonNullExpression\"\n );\n};\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: t.Node,\n): boolean {\n return isArrayTypeAnnotation(parent);\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n const parentType = parent.type;\n return (\n // (() => A) | (() => B)\n parentType === \"UnionTypeAnnotation\" ||\n // (() => A) & (() => B)\n parentType === \"IntersectionTypeAnnotation\" ||\n // (() => A)[]\n parentType === \"ArrayTypeAnnotation\" ||\n Boolean(tokenContext & TokenContext.arrowFlowReturnType)\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: t.Node,\n): boolean {\n return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);\n}\n\nfunction needsParenBeforeExpressionBrace(tokenContext: number) {\n return Boolean(\n tokenContext & (TokenContext.expressionStatement | TokenContext.arrowBody),\n );\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return needsParenBeforeExpressionBrace(tokenContext);\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && Boolean(tokenContext & TokenContext.expressionStatement)\n );\n}\n\nexport function Binary(\n node: t.Binary | t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean | undefined {\n const parentType = parent.type;\n if (\n node.type === \"BinaryExpression\" &&\n node.operator === \"**\" &&\n parentType === \"BinaryExpression\" &&\n parent.operator === \"**\"\n ) {\n return parent.left === node;\n }\n\n if (isClassExtendsClause(node, parent)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent) ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"AwaitExpression\"\n ) {\n return true;\n }\n\n const parentPos = getBinaryPrecedence(parent, parentType);\n if (parentPos != null) {\n const nodePos = getBinaryPrecedence(node, node.type);\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parentType === \"BinaryExpression\" &&\n parent.right === node) ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n\n return undefined;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"ArrayTypeAnnotation\" ||\n parentType === \"NullableTypeAnnotation\" ||\n parentType === \"IntersectionTypeAnnotation\" ||\n parentType === \"UnionTypeAnnotation\"\n );\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: t.Node,\n): boolean {\n return isIndexedAccessType(parent) && parent.objectType === node;\n}\n\nexport function TSAsExpression(\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n parent: t.Node,\n): boolean {\n if (\n (parent.type === \"AssignmentExpression\" ||\n parent.type === \"AssignmentPattern\") &&\n parent.left === node\n ) {\n return true;\n }\n if (\n parent.type === \"BinaryExpression\" &&\n (parent.operator === \"|\" || parent.operator === \"&\") &&\n node === parent.left\n ) {\n return true;\n }\n return Binary(node, parent);\n}\n\nexport { TSAsExpression as TSSatisfiesExpression };\n\nexport { UnaryLike as TSTypeAssertion };\n\nexport function TSConditionalType(\n node: t.TSConditionalType,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSTypeOperator\" ||\n // for `infer K extends (L extends M ? M : ...)`\n parentType === \"TSTypeParameter\"\n ) {\n return true;\n }\n if (\n (parentType === \"TSIntersectionType\" || parentType === \"TSUnionType\") &&\n parent.types[0] === node\n ) {\n return true;\n }\n if (\n parentType === \"TSConditionalType\" &&\n (parent.checkType === node || parent.extendsType === node)\n ) {\n return true;\n }\n return false;\n}\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSTypeOperator\" ||\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n );\n}\n\nexport function TSIntersectionType(\n node: t.TSUnionType,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSTypeOperator\" ||\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n );\n}\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n const parentType = parent.type;\n if (\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n ) {\n return true;\n }\n if (node.typeParameter.constraint) {\n if (\n (parentType === \"TSIntersectionType\" || parentType === \"TSUnionType\") &&\n parent.types[0] === node\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function TSTypeOperator(\n node: t.TSTypeOperator,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n parentType === \"TSOptionalType\"\n );\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n const parentType = parent.type;\n return (\n (parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\" ||\n parentType === \"TSInstantiationExpression\") &&\n !!(process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST\n parent.typeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n parent.typeParameters)\n );\n}\n\nexport function TSFunctionType(\n node: t.TSFunctionType,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSUnionType\" ||\n parentType === \"TSTypeOperator\" ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSArrayType\" ||\n (parentType === \"TSIndexedAccessType\" && parent.objectType === node) ||\n (parentType === \"TSConditionalType\" &&\n (parent.checkType === node || parent.extendsType === node))\n );\n}\n\nexport { TSFunctionType as TSConstructorType };\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n tokenContext: unknown,\n inForStatementInit: boolean,\n): boolean {\n // for ((1 in []);;);\n // for (var x = (1 in []) in 2);\n return node.operator === \"in\" && inForStatementInit;\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"SequenceExpression\" ||\n parentType === \"ParenthesizedExpression\" ||\n (parentType === \"MemberExpression\" && parent.property === node) ||\n (parentType === \"OptionalMemberExpression\" && parent.property === node) ||\n parentType === \"TemplateLiteral\"\n ) {\n return false;\n }\n if (parentType === \"ClassDeclaration\") {\n return true;\n }\n if (parentType === \"ForOfStatement\") {\n return parent.right === node;\n }\n if (parentType === \"ExportDefaultDeclaration\") {\n return true;\n }\n\n return !isStatement(parent);\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n hasPostfixPart(node, parent) ||\n (parentType === \"AwaitExpression\" && isYieldExpression(node)) ||\n (parentType === \"ConditionalExpression\" && node === parent.test) ||\n isClassExtendsClause(node, parent) ||\n isTSTypeExpression(parentType)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.TSTypeAssertion\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n (isBinaryExpression(parent) &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n return Boolean(\n tokenContext &\n (TokenContext.expressionStatement | TokenContext.exportDefault),\n );\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n parentType === \"AwaitExpression\" ||\n isTSTypeExpression(parentType)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport { ConditionalExpression as ArrowFunctionExpression };\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n (isCallExpression(parent) && parent.callee === node) ||\n (isMemberExpression(parent) && parent.object === node)\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n tokenContext: number,\n): boolean {\n if (\n needsParenBeforeExpressionBrace(tokenContext) &&\n isObjectPattern(node.left)\n ) {\n return true;\n } else {\n return ConditionalExpression(node, parent);\n }\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (isTSTypeExpression(parentType)) return true;\n if (parentType !== \"LogicalExpression\") return false;\n switch (node.operator) {\n case \"||\":\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return parent.operator === \"??\";\n case \"??\":\n return parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n tokenContext: number,\n _inForInit: boolean,\n getRawIdentifier: (node: t.Identifier) => string,\n): boolean {\n const parentType = parent.type;\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n parentType === \"AssignmentExpression\" &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\n }\n\n if (getRawIdentifier && getRawIdentifier(node) !== node.name) {\n return false;\n }\n\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n if (\n isFollowedByBracket &&\n tokenContext &\n (TokenContext.expressionStatement |\n TokenContext.forHead |\n TokenContext.forInHead)\n ) {\n return true;\n }\n return Boolean(tokenContext & TokenContext.forOfHead);\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n return (\n node.name === \"async\" &&\n isForOfStatement(parent, { left: node, await: false })\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,13 +9,14 @@ var n = require("./node/index.js");
9
9
  var _t = require("@babel/types");
10
10
  var _tokenMap = require("./token-map.js");
11
11
  var generatorFunctions = require("./generators/index.js");
12
+ var _deprecated = require("./generators/deprecated.js");
12
13
  const {
13
14
  isExpression,
14
15
  isFunction,
15
16
  isStatement,
16
17
  isClassBody,
17
18
  isTSInterfaceBody,
18
- isTSEnumDeclaration
19
+ isTSEnumMember
19
20
  } = _t;
20
21
  const SCIENTIFIC_NOTATION = /e/i;
21
22
  const ZERO_DECIMAL_INTEGER = /\.0+$/;
@@ -739,7 +740,7 @@ class Printer {
739
740
  }
740
741
  if (len === 1) {
741
742
  const singleLine = comment.loc ? comment.loc.start.line === comment.loc.end.line : !HAS_NEWLINE.test(comment.value);
742
- const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent) && !isTSEnumDeclaration(parent);
743
+ const shouldSkipNewline = singleLine && !isStatement(node) && !isClassBody(parent) && !isTSInterfaceBody(parent) && !isTSEnumMember(node);
743
744
  if (type === 0) {
744
745
  this._printComment(comment, shouldSkipNewline && node.type !== "ObjectExpression" || singleLine && isFunction(parent, {
745
746
  body: node
@@ -763,7 +764,7 @@ class Printer {
763
764
  }
764
765
  Object.assign(Printer.prototype, generatorFunctions);
765
766
  {
766
- Printer.prototype.Noop = function Noop() {};
767
+ (0, _deprecated.addDeprecatedGenerators)(Printer);
767
768
  }
768
769
  var _default = exports.default = Printer;
769
770
  function commaSeparator(occurrenceCount, last) {
@@ -1 +1 @@
1
- {"version":3,"names":["_buffer","require","n","_t","_tokenMap","generatorFunctions","isExpression","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumDeclaration","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","commentIsNewline","c","type","test","value","needsParens","Printer","constructor","format","map","tokens","originalCode","inForStatementInit","tokenContext","_tokens","_originalCode","_currentNode","_indent","_indentRepeat","_insideAux","_noLineTerminator","_noLineTerminatorAfterNode","_printAuxAfterOnNextUserNode","_printedComments","Set","_endsWithInteger","_endsWithWord","_endsWithDiv","_lastCommentLine","_endsWithInnerRaw","_indentInnerComments","tokenMap","_boundGetRawIdentifier","_getRawIdentifier","bind","_printSemicolonBeforeNextNode","_printSemicolonBeforeNextToken","indent","style","length","_inputMap","_buf","Buffer","enterForStatementInit","enterDelimited","oldInForStatementInit","oldNoLineTerminatorAfterNode","generate","ast","preserveFormat","TokenMap","print","_maybeAddAuxComment","get","compact","concise","dedent","semicolon","force","_appendChar","node","start","end","endMatches","getCurrentLine","indexes","getIndexes","_catchUpTo","loc","_queue","rightBrace","minified","removeLastSemicolon","sourceWithOffset","token","rightParens","space","_space","hasContent","lastCp","getLastChar","word","str","noLineTerminatorAfter","_maybePrintInnerComments","_catchUpToCurrentToken","charCodeAt","_append","number","isNonDecimalLiteral","secondChar","Number","isInteger","maybeNewline","occurrenceCount","lastChar","strFirst","tokenChar","char","String","fromCharCode","newline","i","retainLines","getNewlineCount","j","_newline","endsWith","endsWithCharAndNewline","removeTrailingNewline","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","findMatching","appendChar","_maybeIndent","append","queue","firstChar","queueIndentation","_getIndent","_shouldIndent","catchUp","line","count","column","index","spacesCount","getCurrentColumn","spaces","slice","replace","repeat","printTerminatorless","trailingCommentsLineOffset","_node$extra","_node$leadingComments","_node$leadingComments2","nodeType","oldConcise","_compact","printMethod","undefined","ReferenceError","JSON","stringify","name","parent","oldInAux","parenthesized","extra","shouldPrintParens","retainFunctionParens","leadingComments","parentType","callee","indentParenthesized","some","oldInForStatementInitWasTrue","isLastChild","_node$trailingComment","trailingComments","_printLeadingComments","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","auxiliaryCommentBefore","_printComment","auxiliaryCommentAfter","getPossibleRaw","raw","rawValue","printJoin","nodes","statement","separator","printTrailingSeparator","addNewlines","iterator","_nodes$0$loc","startLine","newlineOpts","nextNodeStartLine","boundSeparator","len","_printNewline","_node$trailingComment2","_nextNode$loc","nextNode","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","nextTokenStr","nextTokenOccurrenceCount","_this$tokenMap","printInnerComments","nextToken","hasSpace","printedCommentsCount","size","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","shouldPrintTrailingComma","listEnd","listEndIndex","findLastIndex","matchesOriginal","newLine","opts","lastCommentLine","offset","_shouldPrintComment","ignore","has","commentTok","find","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","lastCharCode","val","adjustMultilineComment","_comment$loc","newlineRegex","RegExp","indentSize","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","Object","assign","prototype","Noop","_default","exports","default","last"],"sources":["../src/printer.ts"],"sourcesContent":["import Buffer, { type Pos } from \"./buffer.ts\";\nimport type { Loc } from \"./buffer.ts\";\nimport * as n from \"./node/index.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumDeclaration,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport { TokenMap } from \"./token-map.ts\";\nimport type { GeneratorOptions } from \"./index.ts\";\nimport * as generatorFunctions from \"./generators/index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport type { Token } from \"@babel/parser\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nfunction commentIsNewline(c: t.Comment) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\n\nconst { needsParens } = n;\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n preserveFormat: boolean;\n retainLines: boolean;\n retainFunctionParens: boolean;\n comments: boolean;\n auxiliaryCommentBefore: string;\n auxiliaryCommentAfter: string;\n compact: boolean | \"auto\";\n minified: boolean;\n concise: boolean;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface AddNewlinesOptions {\n addNewlines(leading: boolean, node: t.Node): number;\n nextNodeStartLine: number;\n}\n\ninterface PrintSequenceOptions extends Partial<AddNewlinesOptions> {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer, occurrenceCount: number, last: boolean) => void;\n iterator?: (node: t.Node, index: number) => void;\n statement?: boolean;\n indent?: boolean;\n printTrailingSeparator?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(\n format: Format,\n map: SourceMap,\n tokens?: Token[],\n originalCode?: string,\n ) {\n this.format = format;\n\n this._tokens = tokens;\n this._originalCode = originalCode;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n }\n declare _inputMap: TraceMap;\n\n declare format: Format;\n\n inForStatementInit: boolean = false;\n enterForStatementInit() {\n if (this.inForStatementInit) return () => {};\n this.inForStatementInit = true;\n return () => {\n this.inForStatementInit = false;\n };\n }\n\n enterDelimited() {\n const oldInForStatementInit = this.inForStatementInit;\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (\n oldInForStatementInit === false &&\n oldNoLineTerminatorAfterNode === null\n ) {\n return () => {};\n }\n this.inForStatementInit = false;\n this._noLineTerminatorAfterNode = null;\n return () => {\n this.inForStatementInit = oldInForStatementInit;\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n };\n }\n\n tokenContext: number = 0;\n\n _tokens: Token[] = null;\n _originalCode: string | null = null;\n\n declare _buf: Buffer;\n _currentNode: t.Node = null;\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _noLineTerminator: boolean = false;\n _noLineTerminatorAfterNode: t.Node | null = null;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _endsWithInteger = false;\n _endsWithWord = false;\n _endsWithDiv = false;\n _lastCommentLine = 0;\n _endsWithInnerRaw: boolean = false;\n _indentInnerComments: boolean = true;\n tokenMap: TokenMap = null;\n\n _boundGetRawIdentifier = this._getRawIdentifier.bind(this);\n\n generate(ast: t.Node) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens, this._originalCode);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(): void {\n const { format } = this;\n if (format.preserveFormat || format.compact || format.concise) {\n return;\n }\n\n this._indent++;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(): void {\n const { format } = this;\n if (format.preserveFormat || format.compact || format.concise) {\n return;\n }\n\n this._indent--;\n }\n\n /**\n * If the next token is on the same line, we must first print a semicolon.\n * This option is only used in `preserveFormat` node, for semicolons that\n * might have omitted due to them being absent in the original code (thanks\n * to ASI).\n *\n * We need both *NextToken and *NextNode because we only want to insert the\n * semicolon when the next token starts a new node, and not in cases like\n * foo} (where } is not starting a new node). So we first set *NextNode, and\n * then the print() method will move it to *NextToken.\n */\n _printSemicolonBeforeNextNode: number = -1;\n _printSemicolonBeforeNextToken: number = -1;\n\n /**\n * Add a semicolon to the buffer.\n */\n semicolon(force: boolean = false): void {\n this._maybeAddAuxComment();\n if (force) {\n this._appendChar(charCodes.semicolon);\n this._noLineTerminator = false;\n return;\n }\n if (this.tokenMap) {\n const node = this._currentNode;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap.endMatches(node, \";\")) {\n // no semicolon\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap.getIndexes(this._currentNode);\n this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start);\n }\n }\n this._queue(charCodes.semicolon);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n const { format } = this;\n if (format.compact || format.preserveFormat) return;\n\n if (force) {\n this._space();\n } else if (this._buf.hasContent()) {\n const lastCp = this.getLastChar();\n if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this.tokenContext = 0;\n\n this._maybePrintInnerComments(str);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str);\n\n // prevent concatenating words and creating // comment out of division and regex\n if (\n this._endsWithWord ||\n (this._endsWithDiv && str.charCodeAt(0) === charCodes.slash)\n ) {\n this._space();\n }\n this._append(str, false);\n\n this._endsWithWord = true;\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted\n // immediately after them.\n this._endsWithInteger =\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot;\n }\n\n /**\n * Writes a simple token.\n *\n * @param {string} str The string to append.\n * @param {boolean} [maybeNewline=false] Wether `str` might potentially\n * contain a line terminator or not.\n * @param {number} [occurrenceCount=0] The occurrence count of this token in\n * the current node. This is used when printing in `preserveFormat` mode,\n * to know which token we should map to (for example, to disambiguate the\n * commas in an array literal).\n */\n token(str: string, maybeNewline = false, occurrenceCount = 0): void {\n this.tokenContext = 0;\n\n this._maybePrintInnerComments(str, occurrenceCount);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str, occurrenceCount);\n\n const lastChar = this.getLastChar();\n const strFirst = str.charCodeAt(0);\n if (\n (lastChar === charCodes.exclamationMark &&\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n (str === \"--\" ||\n // Needs spaces to avoid changing a! == 0 to a!== 0\n strFirst === charCodes.equalsTo)) ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (strFirst === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n\n tokenChar(char: number): void {\n this.tokenContext = 0;\n\n const str = String.fromCharCode(char);\n this._maybePrintInnerComments(str);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str);\n\n const lastChar = this.getLastChar();\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (char === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n * This function checks the number of newlines in the queue and subtracts them.\n * It currently has some limitations.\n * @see {Buffer#getNewlineCount}\n */\n newline(i: number = 1, force?: boolean): void {\n if (i <= 0) return;\n\n if (!force) {\n if (this.format.retainLines || this.format.compact) return;\n\n if (this.format.concise) {\n this.space();\n return;\n }\n }\n\n if (i > 2) i = 2; // Max two lines\n\n i -= this._buf.getNewlineCount();\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n\n return;\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar() === char;\n }\n\n getLastChar(): number {\n return this._buf.getLastChar();\n }\n\n endsWithCharAndNewline(): number {\n return this._buf.endsWithCharAndNewline();\n }\n\n removeTrailingNewline(): void {\n this._buf.removeTrailingNewline();\n }\n\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!loc || this.format.preserveFormat) return;\n\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n\n sourceIdentifierName(identifierName: string, pos?: Pos): void {\n if (!this._buf._canMarkIdName) return;\n\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n this._queue(charCodes.lineFeed);\n }\n\n _catchUpToCurrentToken(str: string, occurrenceCount: number = 0): void {\n // Assert: this.tokenMap\n\n const token = this.tokenMap.findMatching(\n this._currentNode,\n str,\n occurrenceCount,\n );\n if (token) this._catchUpTo(token.loc.start);\n\n if (\n this._printSemicolonBeforeNextToken !== -1 &&\n this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()\n ) {\n this._buf.appendChar(charCodes.semicolon);\n this._endsWithWord = false;\n this._endsWithInteger = false;\n this._endsWithDiv = false;\n }\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeIndent(str.charCodeAt(0));\n\n this._buf.append(str, maybeNewline);\n\n // callers are expected to then set these to `true` when needed\n this._endsWithWord = false;\n this._endsWithInteger = false;\n this._endsWithDiv = false;\n }\n\n _appendChar(char: number): void {\n this._maybeIndent(char);\n\n this._buf.appendChar(char);\n\n // callers are expected to then set these to `true` when needed\n this._endsWithWord = false;\n this._endsWithInteger = false;\n this._endsWithDiv = false;\n }\n\n _queue(char: number) {\n this._maybeIndent(char);\n\n this._buf.queue(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _maybeIndent(firstChar: number): void {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n this._buf.queueIndentation(this._getIndent());\n }\n }\n\n _shouldIndent(firstChar: number) {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n return true;\n }\n }\n\n catchUp(line: number) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n const { format } = this;\n if (!format.preserveFormat) {\n if (format.retainLines && loc?.[prop]) {\n this.catchUp(loc[prop].line);\n }\n return;\n }\n\n // catch up to this nodes newline if we're behind\n const pos = loc?.[prop];\n if (pos != null) this._catchUpTo(pos);\n }\n\n _catchUpTo({ line, column, index }: Pos) {\n const count = line - this._buf.getCurrentLine();\n if (count > 0 && this._noLineTerminator) {\n // We cannot inject new lines when _noLineTemrinator is set\n // to `true`, or we would generate invalid code.\n return;\n }\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n\n const spacesCount =\n count > 0 ? column : column - this._buf.getCurrentColumn();\n if (spacesCount > 0) {\n const spaces = this._originalCode\n ? this._originalCode\n .slice(index - spacesCount, index)\n // https://tc39.es/ecma262/#sec-white-space\n .replace(/[^\\t\\v\\f\\uFEFF\\p{Space_Separator}]/gu, \" \")\n : \" \".repeat(spacesCount);\n this._append(spaces, false);\n }\n }\n\n /**\n * Get the current indent.\n */\n\n _getIndent(): number {\n return this._indentRepeat * this._indent;\n }\n\n printTerminatorless(node: t.Node) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n this._noLineTerminator = true;\n this.print(node);\n }\n\n print(\n node: t.Node | null,\n noLineTerminatorAfter?: boolean,\n // trailingCommentsLineOffset also used to check if called from printJoin\n // it will be ignored if `noLineTerminatorAfter||this._noLineTerminator`\n trailingCommentsLineOffset?: number,\n ) {\n if (!node) return;\n\n this._endsWithInnerRaw = false;\n\n const nodeType = node.type;\n const format = this.format;\n\n const oldConcise = format.concise;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n format.concise = true;\n }\n\n const printMethod =\n this[\n nodeType as Exclude<\n t.Node[\"type\"],\n // removed\n | \"Noop\"\n // renamed\n | t.DeprecatedAliases[\"type\"]\n >\n ];\n if (printMethod === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n nodeType,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n const parent = this._currentNode;\n this._currentNode = node;\n\n if (this.tokenMap) {\n this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode;\n }\n\n const oldInAux = this._insideAux;\n this._insideAux = node.loc == null;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n\n const parenthesized = node.extra?.parenthesized as boolean | undefined;\n let shouldPrintParens =\n (parenthesized && format.preserveFormat) ||\n (parenthesized &&\n format.retainFunctionParens &&\n nodeType === \"FunctionExpression\") ||\n needsParens(\n node,\n parent,\n this.tokenContext,\n this.inForStatementInit,\n format.preserveFormat ? this._boundGetRawIdentifier : undefined,\n );\n\n if (\n !shouldPrintParens &&\n parenthesized &&\n node.leadingComments?.length &&\n node.leadingComments[0].type === \"CommentBlock\"\n ) {\n const parentType = parent?.type;\n switch (parentType) {\n case \"ExpressionStatement\":\n case \"VariableDeclarator\":\n case \"AssignmentExpression\":\n case \"ReturnStatement\":\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n case \"NewExpression\":\n if (parent.callee !== node) break;\n // falls through\n default:\n shouldPrintParens = true;\n }\n }\n\n let indentParenthesized = false;\n if (\n !shouldPrintParens &&\n this._noLineTerminator &&\n (node.leadingComments?.some(commentIsNewline) ||\n (this.format.retainLines &&\n node.loc &&\n node.loc.start.line > this._buf.getCurrentLine()))\n ) {\n shouldPrintParens = true;\n indentParenthesized = true;\n }\n\n let oldNoLineTerminatorAfterNode;\n let oldInForStatementInitWasTrue;\n if (!shouldPrintParens) {\n noLineTerminatorAfter ||=\n parent &&\n this._noLineTerminatorAfterNode === parent &&\n n.isLastChild(parent, node);\n if (noLineTerminatorAfter) {\n if (node.trailingComments?.some(commentIsNewline)) {\n if (isExpression(node)) shouldPrintParens = true;\n } else {\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = node;\n }\n }\n }\n\n if (shouldPrintParens) {\n this.token(\"(\");\n if (indentParenthesized) this.indent();\n this._endsWithInnerRaw = false;\n if (this.inForStatementInit) {\n oldInForStatementInitWasTrue = true;\n this.inForStatementInit = false;\n }\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = null;\n }\n\n this._lastCommentLine = 0;\n\n this._printLeadingComments(node, parent);\n\n const loc = nodeType === \"Program\" || nodeType === \"File\" ? null : node.loc;\n\n this.exactSource(\n loc,\n // @ts-expect-error Expected 1 arguments, but got 3.\n printMethod.bind(this, node, parent),\n );\n\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n if (indentParenthesized) {\n this.dedent();\n this.newline();\n }\n this.token(\")\");\n this._noLineTerminator = noLineTerminatorAfter;\n if (oldInForStatementInitWasTrue) this.inForStatementInit = true;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n\n // end\n this._currentNode = parent;\n format.concise = oldConcise;\n this._insideAux = oldInAux;\n\n if (oldNoLineTerminatorAfterNode !== undefined) {\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n\n this._endsWithInnerRaw = false;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra?.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: Array<t.Node> | undefined | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintJoinOptions[\"separator\"],\n printTrailingSeparator?: boolean,\n addNewlines?: PrintJoinOptions[\"addNewlines\"],\n iterator?: PrintJoinOptions[\"iterator\"],\n trailingCommentsLineOffset?: number,\n ) {\n if (!nodes?.length) return;\n\n if (indent == null && this.format.retainLines) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n\n if (indent) this.indent();\n\n const newlineOpts: AddNewlinesOptions = {\n addNewlines: addNewlines,\n nextNodeStartLine: 0,\n };\n\n const boundSeparator = separator?.bind(this);\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n if (statement) this._printNewline(i === 0, newlineOpts);\n\n this.print(node, undefined, trailingCommentsLineOffset || 0);\n\n iterator?.(node, i);\n\n if (boundSeparator != null) {\n if (i < len - 1) boundSeparator(i, false);\n else if (printTrailingSeparator) boundSeparator(i, true);\n }\n\n if (statement) {\n if (!node.trailingComments?.length) {\n this._lastCommentLine = 0;\n }\n\n if (i + 1 === len) {\n this.newline(1);\n } else {\n const nextNode = nodes[i + 1];\n newlineOpts.nextNodeStartLine = nextNode.loc?.start.line || 0;\n\n this._printNewline(true, newlineOpts);\n }\n }\n }\n\n if (indent) this.dedent();\n }\n\n printAndIndentOnComments(node: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node);\n if (indent) this.dedent();\n }\n\n printBlock(parent: Extract<t.Node, { body: t.Statement }>) {\n const node = parent.body;\n\n if (node.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(node);\n }\n\n _printTrailingComments(node: t.Node, parent?: t.Node, lineOffset?: number) {\n const { innerComments, trailingComments } = node;\n // We print inner comments here, so that if for some reason they couldn't\n // be printed in earlier locations they are still printed *somewhere*,\n // even if at the end of the node.\n if (innerComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n innerComments,\n node,\n parent,\n lineOffset,\n );\n }\n if (trailingComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n trailingComments,\n node,\n parent,\n lineOffset,\n );\n }\n }\n\n _printLeadingComments(node: t.Node, parent: t.Node) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(COMMENT_TYPE.LEADING, comments, node, parent);\n }\n\n _maybePrintInnerComments(\n nextTokenStr: string,\n nextTokenOccurrenceCount?: number,\n ) {\n if (this._endsWithInnerRaw) {\n this.printInnerComments(\n this.tokenMap?.findMatching(\n this._currentNode,\n nextTokenStr,\n nextTokenOccurrenceCount,\n ),\n );\n }\n this._endsWithInnerRaw = true;\n this._indentInnerComments = true;\n }\n\n printInnerComments(nextToken?: Token) {\n const node = this._currentNode;\n const comments = node.innerComments;\n if (!comments?.length) return;\n\n const hasSpace = this.endsWith(charCodes.space);\n const indent = this._indentInnerComments;\n const printedCommentsCount = this._printedComments.size;\n if (indent) this.indent();\n this._printComments(\n COMMENT_TYPE.INNER,\n comments,\n node,\n undefined,\n undefined,\n nextToken,\n );\n if (hasSpace && printedCommentsCount !== this._printedComments.size) {\n this.space();\n }\n if (indent) this.dedent();\n }\n\n noIndentInnerCommentsHere() {\n this._indentInnerComments = false;\n }\n\n printSequence(\n nodes: t.Node[],\n indent?: boolean,\n trailingCommentsLineOffset?: number,\n addNewlines?: PrintSequenceOptions[\"addNewlines\"],\n ) {\n this.printJoin(\n nodes,\n true,\n indent ?? false,\n undefined,\n undefined,\n addNewlines,\n undefined,\n trailingCommentsLineOffset,\n );\n }\n\n printList(\n items: t.Node[],\n printTrailingSeparator?: boolean,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintListOptions[\"separator\"],\n iterator?: PrintListOptions[\"iterator\"],\n ) {\n this.printJoin(\n items,\n statement,\n indent,\n separator ?? commaSeparator,\n printTrailingSeparator,\n undefined,\n iterator,\n );\n }\n\n shouldPrintTrailingComma(listEnd: string): boolean | null {\n if (!this.tokenMap) return null;\n\n const listEndIndex = this.tokenMap.findLastIndex(this._currentNode, token =>\n this.tokenMap.matchesOriginal(token, listEnd),\n );\n if (listEndIndex <= 0) return null;\n return this.tokenMap.matchesOriginal(this._tokens[listEndIndex - 1], \",\");\n }\n\n _printNewline(newLine: boolean, opts: AddNewlinesOptions) {\n const format = this.format;\n\n // Fast path since 'this.newline' does nothing when not tracking lines.\n if (format.retainLines || format.compact) return;\n\n // Fast path for concise since 'this.newline' just inserts a space when\n // concise formatting is in use.\n if (format.concise) {\n this.space();\n return;\n }\n\n if (!newLine) {\n return;\n }\n\n const startLine = opts.nextNodeStartLine;\n const lastCommentLine = this._lastCommentLine;\n if (startLine > 0 && lastCommentLine > 0) {\n const offset = startLine - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1);\n return;\n }\n }\n\n // don't add newlines at the beginning of the file\n if (this._buf.hasContent()) {\n // Here is the logic of the original line wrapping according to the node layout, we are not using it now.\n // We currently add at most one newline to each node in the list, ignoring `opts.addNewlines`.\n\n // let lines = 0;\n // if (!leading) lines++; // always include at least a single line after\n // if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;\n\n // const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter;\n // if (needs(node, parent)) lines++;\n\n // this.newline(Math.min(2, lines));\n\n this.newline(1);\n }\n }\n\n // Returns `PRINT_COMMENT_HINT.DEFER` if the comment cannot be printed in this position due to\n // line terminators, signaling that the print comments loop can stop and\n // resume printing comments at the next possible position. This happens when\n // printing inner comments, since if we have an inner comment with a multiline\n // there is at least one inner position where line terminators are allowed.\n _shouldPrintComment(\n comment: t.Comment,\n nextToken?: Token,\n ): PRINT_COMMENT_HINT {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return PRINT_COMMENT_HINT.SKIP;\n\n if (this._printedComments.has(comment)) return PRINT_COMMENT_HINT.SKIP;\n\n if (\n this._noLineTerminator &&\n HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)\n ) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n\n if (nextToken && this.tokenMap) {\n const commentTok = this.tokenMap.find(\n this._currentNode,\n token => token.value === comment.value,\n );\n if (commentTok && commentTok.start > nextToken.start) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n }\n\n this._printedComments.add(comment);\n\n if (!this.format.shouldPrintComment(comment.value)) {\n return PRINT_COMMENT_HINT.SKIP;\n }\n\n return PRINT_COMMENT_HINT.ALLOW;\n }\n\n _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.ALL &&\n !this._noLineTerminator;\n\n if (\n printNewLines &&\n this._buf.hasContent() &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.LEADING\n ) {\n this.newline(1);\n }\n\n const lastCharCode = this.getLastChar();\n if (\n lastCharCode !== charCodes.leftSquareBracket &&\n lastCharCode !== charCodes.leftCurlyBrace &&\n lastCharCode !== charCodes.leftParenthesis\n ) {\n this.space();\n }\n\n let val;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n if (this.format.concise) {\n val = val.replace(/\\n(?!$)/g, `\\n`);\n } else {\n let indentSize = this.format.retainLines\n ? 0\n : this._buf.getCurrentColumn();\n\n if (this._shouldIndent(charCodes.slash) || this.format.retainLines) {\n indentSize += this._getIndent();\n }\n\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n // It was a single-line comment, so it's guaranteed to not\n // contain newlines and it can be safely printed as a block\n // comment.\n val = `/*${comment.value}*/`;\n }\n\n // Avoid converting a / operator into a line comment by appending /* to it\n if (this._endsWithDiv) this._space();\n\n if (this.tokenMap) {\n const { _printSemicolonBeforeNextToken, _printSemicolonBeforeNextNode } =\n this;\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n this._printSemicolonBeforeNextNode = _printSemicolonBeforeNextNode;\n this._printSemicolonBeforeNextToken = _printSemicolonBeforeNextToken;\n } else {\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n }\n\n if (!isBlockComment && !noLineTerminator) {\n this.newline(1, true);\n }\n\n if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.TRAILING) {\n this.newline(1);\n }\n }\n\n _printComments(\n type: COMMENT_TYPE,\n comments: readonly t.Comment[],\n node: t.Node,\n parent?: t.Node,\n lineOffset: number = 0,\n nextToken?: Token,\n ) {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n\n const maybeNewline = this._noLineTerminator\n ? function () {}\n : this.newline.bind(this);\n\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n\n const shouldPrint = this._shouldPrintComment(comment, nextToken);\n if (shouldPrint === PRINT_COMMENT_HINT.DEFER) {\n hasLoc = false;\n break;\n }\n if (hasLoc && comment.loc && shouldPrint === PRINT_COMMENT_HINT.ALLOW) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === COMMENT_TYPE.LEADING) {\n let offset = 0;\n if (i === 0) {\n // Because currently we cannot handle blank lines before leading comments,\n // we always wrap before and after multi-line comments.\n if (\n this._buf.hasContent() &&\n (comment.type === \"CommentLine\" ||\n commentStartLine !== commentEndLine)\n ) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(\n Math.max(nodeStartLine - lastLine, leadingCommentNewline),\n );\n lastLine = nodeStartLine;\n }\n } else if (type === COMMENT_TYPE.INNER) {\n const offset =\n commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(Math.min(1, nodeEndLine - lastLine)); // TODO: Improve here when inner comments processing is stronger\n lastLine = nodeEndLine;\n }\n } else {\n const offset =\n commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== PRINT_COMMENT_HINT.ALLOW) {\n continue;\n }\n\n if (len === 1) {\n const singleLine = comment.loc\n ? comment.loc.start.line === comment.loc.end.line\n : !HAS_NEWLINE.test(comment.value);\n\n const shouldSkipNewline =\n singleLine &&\n !isStatement(node) &&\n !isClassBody(parent) &&\n !isTSInterfaceBody(parent) &&\n !isTSEnumDeclaration(parent);\n\n if (type === COMMENT_TYPE.LEADING) {\n this._printComment(\n comment,\n (shouldSkipNewline && node.type !== \"ObjectExpression\") ||\n (singleLine && isFunction(parent, { body: node }))\n ? COMMENT_SKIP_NEWLINE.ALL\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else if (shouldSkipNewline && type === COMMENT_TYPE.TRAILING) {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n } else if (\n type === COMMENT_TYPE.INNER &&\n !(node.type === \"ObjectExpression\" && node.properties.length > 1) &&\n node.type !== \"ClassBody\" &&\n node.type !== \"TSInterfaceBody\"\n ) {\n // class X {\n // /*:: a: number*/\n // /*:: b: ?string*/\n // }\n\n this._printComment(\n comment,\n i === 0\n ? COMMENT_SKIP_NEWLINE.LEADING\n : i === len - 1\n ? COMMENT_SKIP_NEWLINE.TRAILING\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n }\n }\n\n if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n }\n}\n\n// Expose the node type functions and helpers on the prototype for easy usage.\nObject.assign(Printer.prototype, generatorFunctions);\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 has Noop print method\n Printer.prototype.Noop = function Noop(this: Printer) {};\n}\n\ntype GeneratorFunctions = typeof generatorFunctions;\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\ninterface Printer extends GeneratorFunctions {}\nexport default Printer;\n\nfunction commaSeparator(this: Printer, occurrenceCount: number, last: boolean) {\n this.token(\",\", false, occurrenceCount);\n if (!last) this.space();\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_buffer","require","n","_t","_tokenMap","generatorFunctions","_deprecated","isExpression","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumMember","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","commentIsNewline","c","type","test","value","needsParens","Printer","constructor","format","map","tokens","originalCode","inForStatementInit","tokenContext","_tokens","_originalCode","_currentNode","_indent","_indentRepeat","_insideAux","_noLineTerminator","_noLineTerminatorAfterNode","_printAuxAfterOnNextUserNode","_printedComments","Set","_endsWithInteger","_endsWithWord","_endsWithDiv","_lastCommentLine","_endsWithInnerRaw","_indentInnerComments","tokenMap","_boundGetRawIdentifier","_getRawIdentifier","bind","_printSemicolonBeforeNextNode","_printSemicolonBeforeNextToken","indent","style","length","_inputMap","_buf","Buffer","enterForStatementInit","enterDelimited","oldInForStatementInit","oldNoLineTerminatorAfterNode","generate","ast","preserveFormat","TokenMap","print","_maybeAddAuxComment","get","compact","concise","dedent","semicolon","force","_appendChar","node","start","end","endMatches","getCurrentLine","indexes","getIndexes","_catchUpTo","loc","_queue","rightBrace","minified","removeLastSemicolon","sourceWithOffset","token","rightParens","space","_space","hasContent","lastCp","getLastChar","word","str","noLineTerminatorAfter","_maybePrintInnerComments","_catchUpToCurrentToken","charCodeAt","_append","number","isNonDecimalLiteral","secondChar","Number","isInteger","maybeNewline","occurrenceCount","lastChar","strFirst","tokenChar","char","String","fromCharCode","newline","i","retainLines","getNewlineCount","j","_newline","endsWith","endsWithCharAndNewline","removeTrailingNewline","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","findMatching","appendChar","_maybeIndent","append","queue","firstChar","queueIndentation","_getIndent","_shouldIndent","catchUp","line","count","column","index","spacesCount","getCurrentColumn","spaces","slice","replace","repeat","printTerminatorless","trailingCommentsLineOffset","_node$extra","_node$leadingComments","_node$leadingComments2","nodeType","oldConcise","_compact","printMethod","undefined","ReferenceError","JSON","stringify","name","parent","oldInAux","parenthesized","extra","shouldPrintParens","retainFunctionParens","leadingComments","parentType","callee","indentParenthesized","some","oldInForStatementInitWasTrue","isLastChild","_node$trailingComment","trailingComments","_printLeadingComments","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","auxiliaryCommentBefore","_printComment","auxiliaryCommentAfter","getPossibleRaw","raw","rawValue","printJoin","nodes","statement","separator","printTrailingSeparator","addNewlines","iterator","_nodes$0$loc","startLine","newlineOpts","nextNodeStartLine","boundSeparator","len","_printNewline","_node$trailingComment2","_nextNode$loc","nextNode","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","nextTokenStr","nextTokenOccurrenceCount","_this$tokenMap","printInnerComments","nextToken","hasSpace","printedCommentsCount","size","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","shouldPrintTrailingComma","listEnd","listEndIndex","findLastIndex","matchesOriginal","newLine","opts","lastCommentLine","offset","_shouldPrintComment","ignore","has","commentTok","find","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","lastCharCode","val","adjustMultilineComment","_comment$loc","newlineRegex","RegExp","indentSize","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","Object","assign","prototype","addDeprecatedGenerators","_default","exports","default","last"],"sources":["../src/printer.ts"],"sourcesContent":["import Buffer, { type Pos } from \"./buffer.ts\";\nimport type { Loc } from \"./buffer.ts\";\nimport * as n from \"./node/index.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumMember,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport { TokenMap } from \"./token-map.ts\";\nimport type { GeneratorOptions } from \"./index.ts\";\nimport * as generatorFunctions from \"./generators/index.ts\";\nimport {\n addDeprecatedGenerators,\n type DeprecatedBabel7ASTTypes,\n} from \"./generators/deprecated.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport type { Token } from \"@babel/parser\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nfunction commentIsNewline(c: t.Comment) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\n\nconst { needsParens } = n;\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n preserveFormat: boolean;\n retainLines: boolean;\n retainFunctionParens: boolean;\n comments: boolean;\n auxiliaryCommentBefore: string;\n auxiliaryCommentAfter: string;\n compact: boolean | \"auto\";\n minified: boolean;\n concise: boolean;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface AddNewlinesOptions {\n addNewlines(leading: boolean, node: t.Node): number;\n nextNodeStartLine: number;\n}\n\ninterface PrintSequenceOptions extends Partial<AddNewlinesOptions> {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer, occurrenceCount: number, last: boolean) => void;\n iterator?: (node: t.Node, index: number) => void;\n statement?: boolean;\n indent?: boolean;\n printTrailingSeparator?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(\n format: Format,\n map: SourceMap,\n tokens?: Token[],\n originalCode?: string,\n ) {\n this.format = format;\n\n this._tokens = tokens;\n this._originalCode = originalCode;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n }\n declare _inputMap: TraceMap;\n\n declare format: Format;\n\n inForStatementInit: boolean = false;\n enterForStatementInit() {\n if (this.inForStatementInit) return () => {};\n this.inForStatementInit = true;\n return () => {\n this.inForStatementInit = false;\n };\n }\n\n enterDelimited() {\n const oldInForStatementInit = this.inForStatementInit;\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (\n oldInForStatementInit === false &&\n oldNoLineTerminatorAfterNode === null\n ) {\n return () => {};\n }\n this.inForStatementInit = false;\n this._noLineTerminatorAfterNode = null;\n return () => {\n this.inForStatementInit = oldInForStatementInit;\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n };\n }\n\n tokenContext: number = 0;\n\n _tokens: Token[] = null;\n _originalCode: string | null = null;\n\n declare _buf: Buffer;\n _currentNode: t.Node = null;\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _noLineTerminator: boolean = false;\n _noLineTerminatorAfterNode: t.Node | null = null;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _endsWithInteger = false;\n _endsWithWord = false;\n _endsWithDiv = false;\n _lastCommentLine = 0;\n _endsWithInnerRaw: boolean = false;\n _indentInnerComments: boolean = true;\n tokenMap: TokenMap = null;\n\n _boundGetRawIdentifier = this._getRawIdentifier.bind(this);\n\n generate(ast: t.Node) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens, this._originalCode);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(): void {\n const { format } = this;\n if (format.preserveFormat || format.compact || format.concise) {\n return;\n }\n\n this._indent++;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(): void {\n const { format } = this;\n if (format.preserveFormat || format.compact || format.concise) {\n return;\n }\n\n this._indent--;\n }\n\n /**\n * If the next token is on the same line, we must first print a semicolon.\n * This option is only used in `preserveFormat` node, for semicolons that\n * might have omitted due to them being absent in the original code (thanks\n * to ASI).\n *\n * We need both *NextToken and *NextNode because we only want to insert the\n * semicolon when the next token starts a new node, and not in cases like\n * foo} (where } is not starting a new node). So we first set *NextNode, and\n * then the print() method will move it to *NextToken.\n */\n _printSemicolonBeforeNextNode: number = -1;\n _printSemicolonBeforeNextToken: number = -1;\n\n /**\n * Add a semicolon to the buffer.\n */\n semicolon(force: boolean = false): void {\n this._maybeAddAuxComment();\n if (force) {\n this._appendChar(charCodes.semicolon);\n this._noLineTerminator = false;\n return;\n }\n if (this.tokenMap) {\n const node = this._currentNode;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap.endMatches(node, \";\")) {\n // no semicolon\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap.getIndexes(this._currentNode);\n this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start);\n }\n }\n this._queue(charCodes.semicolon);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n const { format } = this;\n if (format.compact || format.preserveFormat) return;\n\n if (force) {\n this._space();\n } else if (this._buf.hasContent()) {\n const lastCp = this.getLastChar();\n if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this.tokenContext = 0;\n\n this._maybePrintInnerComments(str);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str);\n\n // prevent concatenating words and creating // comment out of division and regex\n if (\n this._endsWithWord ||\n (this._endsWithDiv && str.charCodeAt(0) === charCodes.slash)\n ) {\n this._space();\n }\n this._append(str, false);\n\n this._endsWithWord = true;\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted\n // immediately after them.\n this._endsWithInteger =\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot;\n }\n\n /**\n * Writes a simple token.\n *\n * @param {string} str The string to append.\n * @param {boolean} [maybeNewline=false] Wether `str` might potentially\n * contain a line terminator or not.\n * @param {number} [occurrenceCount=0] The occurrence count of this token in\n * the current node. This is used when printing in `preserveFormat` mode,\n * to know which token we should map to (for example, to disambiguate the\n * commas in an array literal).\n */\n token(str: string, maybeNewline = false, occurrenceCount = 0): void {\n this.tokenContext = 0;\n\n this._maybePrintInnerComments(str, occurrenceCount);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str, occurrenceCount);\n\n const lastChar = this.getLastChar();\n const strFirst = str.charCodeAt(0);\n if (\n (lastChar === charCodes.exclamationMark &&\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n (str === \"--\" ||\n // Needs spaces to avoid changing a! == 0 to a!== 0\n strFirst === charCodes.equalsTo)) ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (strFirst === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n\n tokenChar(char: number): void {\n this.tokenContext = 0;\n\n const str = String.fromCharCode(char);\n this._maybePrintInnerComments(str);\n\n this._maybeAddAuxComment();\n\n if (this.tokenMap) this._catchUpToCurrentToken(str);\n\n const lastChar = this.getLastChar();\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (char === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n * This function checks the number of newlines in the queue and subtracts them.\n * It currently has some limitations.\n * @see {Buffer#getNewlineCount}\n */\n newline(i: number = 1, force?: boolean): void {\n if (i <= 0) return;\n\n if (!force) {\n if (this.format.retainLines || this.format.compact) return;\n\n if (this.format.concise) {\n this.space();\n return;\n }\n }\n\n if (i > 2) i = 2; // Max two lines\n\n i -= this._buf.getNewlineCount();\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n\n return;\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar() === char;\n }\n\n getLastChar(): number {\n return this._buf.getLastChar();\n }\n\n endsWithCharAndNewline(): number {\n return this._buf.endsWithCharAndNewline();\n }\n\n removeTrailingNewline(): void {\n this._buf.removeTrailingNewline();\n }\n\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!loc || this.format.preserveFormat) return;\n\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n\n sourceIdentifierName(identifierName: string, pos?: Pos): void {\n if (!this._buf._canMarkIdName) return;\n\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n this._queue(charCodes.lineFeed);\n }\n\n _catchUpToCurrentToken(str: string, occurrenceCount: number = 0): void {\n // Assert: this.tokenMap\n\n const token = this.tokenMap.findMatching(\n this._currentNode,\n str,\n occurrenceCount,\n );\n if (token) this._catchUpTo(token.loc.start);\n\n if (\n this._printSemicolonBeforeNextToken !== -1 &&\n this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()\n ) {\n this._buf.appendChar(charCodes.semicolon);\n this._endsWithWord = false;\n this._endsWithInteger = false;\n this._endsWithDiv = false;\n }\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeIndent(str.charCodeAt(0));\n\n this._buf.append(str, maybeNewline);\n\n // callers are expected to then set these to `true` when needed\n this._endsWithWord = false;\n this._endsWithInteger = false;\n this._endsWithDiv = false;\n }\n\n _appendChar(char: number): void {\n this._maybeIndent(char);\n\n this._buf.appendChar(char);\n\n // callers are expected to then set these to `true` when needed\n this._endsWithWord = false;\n this._endsWithInteger = false;\n this._endsWithDiv = false;\n }\n\n _queue(char: number) {\n this._maybeIndent(char);\n\n this._buf.queue(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _maybeIndent(firstChar: number): void {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n this._buf.queueIndentation(this._getIndent());\n }\n }\n\n _shouldIndent(firstChar: number) {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n return true;\n }\n }\n\n catchUp(line: number) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n const { format } = this;\n if (!format.preserveFormat) {\n if (format.retainLines && loc?.[prop]) {\n this.catchUp(loc[prop].line);\n }\n return;\n }\n\n // catch up to this nodes newline if we're behind\n const pos = loc?.[prop];\n if (pos != null) this._catchUpTo(pos);\n }\n\n _catchUpTo({ line, column, index }: Pos) {\n const count = line - this._buf.getCurrentLine();\n if (count > 0 && this._noLineTerminator) {\n // We cannot inject new lines when _noLineTemrinator is set\n // to `true`, or we would generate invalid code.\n return;\n }\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n\n const spacesCount =\n count > 0 ? column : column - this._buf.getCurrentColumn();\n if (spacesCount > 0) {\n const spaces = this._originalCode\n ? this._originalCode\n .slice(index - spacesCount, index)\n // https://tc39.es/ecma262/#sec-white-space\n .replace(/[^\\t\\v\\f\\uFEFF\\p{Space_Separator}]/gu, \" \")\n : \" \".repeat(spacesCount);\n this._append(spaces, false);\n }\n }\n\n /**\n * Get the current indent.\n */\n\n _getIndent(): number {\n return this._indentRepeat * this._indent;\n }\n\n printTerminatorless(node: t.Node) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n this._noLineTerminator = true;\n this.print(node);\n }\n\n print(\n node: t.Node | null,\n noLineTerminatorAfter?: boolean,\n // trailingCommentsLineOffset also used to check if called from printJoin\n // it will be ignored if `noLineTerminatorAfter||this._noLineTerminator`\n trailingCommentsLineOffset?: number,\n ) {\n if (!node) return;\n\n this._endsWithInnerRaw = false;\n\n const nodeType = node.type;\n const format = this.format;\n\n const oldConcise = format.concise;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n format.concise = true;\n }\n\n const printMethod =\n this[\n nodeType as Exclude<\n t.Node[\"type\"],\n | DeprecatedBabel7ASTTypes\n // renamed\n | t.DeprecatedAliases[\"type\"]\n >\n ];\n if (printMethod === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n nodeType,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n const parent = this._currentNode;\n this._currentNode = node;\n\n if (this.tokenMap) {\n this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode;\n }\n\n const oldInAux = this._insideAux;\n this._insideAux = node.loc == null;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n\n const parenthesized = node.extra?.parenthesized as boolean | undefined;\n let shouldPrintParens =\n (parenthesized && format.preserveFormat) ||\n (parenthesized &&\n format.retainFunctionParens &&\n nodeType === \"FunctionExpression\") ||\n needsParens(\n node,\n parent,\n this.tokenContext,\n this.inForStatementInit,\n format.preserveFormat ? this._boundGetRawIdentifier : undefined,\n );\n\n if (\n !shouldPrintParens &&\n parenthesized &&\n node.leadingComments?.length &&\n node.leadingComments[0].type === \"CommentBlock\"\n ) {\n const parentType = parent?.type;\n switch (parentType) {\n case \"ExpressionStatement\":\n case \"VariableDeclarator\":\n case \"AssignmentExpression\":\n case \"ReturnStatement\":\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n case \"NewExpression\":\n if (parent.callee !== node) break;\n // falls through\n default:\n shouldPrintParens = true;\n }\n }\n\n let indentParenthesized = false;\n if (\n !shouldPrintParens &&\n this._noLineTerminator &&\n (node.leadingComments?.some(commentIsNewline) ||\n (this.format.retainLines &&\n node.loc &&\n node.loc.start.line > this._buf.getCurrentLine()))\n ) {\n shouldPrintParens = true;\n indentParenthesized = true;\n }\n\n let oldNoLineTerminatorAfterNode;\n let oldInForStatementInitWasTrue;\n if (!shouldPrintParens) {\n noLineTerminatorAfter ||=\n parent &&\n this._noLineTerminatorAfterNode === parent &&\n n.isLastChild(parent, node);\n if (noLineTerminatorAfter) {\n if (node.trailingComments?.some(commentIsNewline)) {\n if (isExpression(node)) shouldPrintParens = true;\n } else {\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = node;\n }\n }\n }\n\n if (shouldPrintParens) {\n this.token(\"(\");\n if (indentParenthesized) this.indent();\n this._endsWithInnerRaw = false;\n if (this.inForStatementInit) {\n oldInForStatementInitWasTrue = true;\n this.inForStatementInit = false;\n }\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = null;\n }\n\n this._lastCommentLine = 0;\n\n this._printLeadingComments(node, parent);\n\n const loc = nodeType === \"Program\" || nodeType === \"File\" ? null : node.loc;\n\n this.exactSource(\n loc,\n // @ts-expect-error Expected 1 arguments, but got 3.\n printMethod.bind(this, node, parent),\n );\n\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n if (indentParenthesized) {\n this.dedent();\n this.newline();\n }\n this.token(\")\");\n this._noLineTerminator = noLineTerminatorAfter;\n if (oldInForStatementInitWasTrue) this.inForStatementInit = true;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n\n // end\n this._currentNode = parent;\n format.concise = oldConcise;\n this._insideAux = oldInAux;\n\n if (oldNoLineTerminatorAfterNode !== undefined) {\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n\n this._endsWithInnerRaw = false;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra?.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: Array<t.Node> | undefined | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintJoinOptions[\"separator\"],\n printTrailingSeparator?: boolean,\n addNewlines?: PrintJoinOptions[\"addNewlines\"],\n iterator?: PrintJoinOptions[\"iterator\"],\n trailingCommentsLineOffset?: number,\n ) {\n if (!nodes?.length) return;\n\n if (indent == null && this.format.retainLines) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n\n if (indent) this.indent();\n\n const newlineOpts: AddNewlinesOptions = {\n addNewlines: addNewlines,\n nextNodeStartLine: 0,\n };\n\n const boundSeparator = separator?.bind(this);\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n if (statement) this._printNewline(i === 0, newlineOpts);\n\n this.print(node, undefined, trailingCommentsLineOffset || 0);\n\n iterator?.(node, i);\n\n if (boundSeparator != null) {\n if (i < len - 1) boundSeparator(i, false);\n else if (printTrailingSeparator) boundSeparator(i, true);\n }\n\n if (statement) {\n if (!node.trailingComments?.length) {\n this._lastCommentLine = 0;\n }\n\n if (i + 1 === len) {\n this.newline(1);\n } else {\n const nextNode = nodes[i + 1];\n newlineOpts.nextNodeStartLine = nextNode.loc?.start.line || 0;\n\n this._printNewline(true, newlineOpts);\n }\n }\n }\n\n if (indent) this.dedent();\n }\n\n printAndIndentOnComments(node: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node);\n if (indent) this.dedent();\n }\n\n printBlock(parent: Extract<t.Node, { body: t.Statement }>) {\n const node = parent.body;\n\n if (node.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(node);\n }\n\n _printTrailingComments(node: t.Node, parent?: t.Node, lineOffset?: number) {\n const { innerComments, trailingComments } = node;\n // We print inner comments here, so that if for some reason they couldn't\n // be printed in earlier locations they are still printed *somewhere*,\n // even if at the end of the node.\n if (innerComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n innerComments,\n node,\n parent,\n lineOffset,\n );\n }\n if (trailingComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n trailingComments,\n node,\n parent,\n lineOffset,\n );\n }\n }\n\n _printLeadingComments(node: t.Node, parent: t.Node) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(COMMENT_TYPE.LEADING, comments, node, parent);\n }\n\n _maybePrintInnerComments(\n nextTokenStr: string,\n nextTokenOccurrenceCount?: number,\n ) {\n if (this._endsWithInnerRaw) {\n this.printInnerComments(\n this.tokenMap?.findMatching(\n this._currentNode,\n nextTokenStr,\n nextTokenOccurrenceCount,\n ),\n );\n }\n this._endsWithInnerRaw = true;\n this._indentInnerComments = true;\n }\n\n printInnerComments(nextToken?: Token) {\n const node = this._currentNode;\n const comments = node.innerComments;\n if (!comments?.length) return;\n\n const hasSpace = this.endsWith(charCodes.space);\n const indent = this._indentInnerComments;\n const printedCommentsCount = this._printedComments.size;\n if (indent) this.indent();\n this._printComments(\n COMMENT_TYPE.INNER,\n comments,\n node,\n undefined,\n undefined,\n nextToken,\n );\n if (hasSpace && printedCommentsCount !== this._printedComments.size) {\n this.space();\n }\n if (indent) this.dedent();\n }\n\n noIndentInnerCommentsHere() {\n this._indentInnerComments = false;\n }\n\n printSequence(\n nodes: t.Node[],\n indent?: boolean,\n trailingCommentsLineOffset?: number,\n addNewlines?: PrintSequenceOptions[\"addNewlines\"],\n ) {\n this.printJoin(\n nodes,\n true,\n indent ?? false,\n undefined,\n undefined,\n addNewlines,\n undefined,\n trailingCommentsLineOffset,\n );\n }\n\n printList(\n items: t.Node[],\n printTrailingSeparator?: boolean,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintListOptions[\"separator\"],\n iterator?: PrintListOptions[\"iterator\"],\n ) {\n this.printJoin(\n items,\n statement,\n indent,\n separator ?? commaSeparator,\n printTrailingSeparator,\n undefined,\n iterator,\n );\n }\n\n shouldPrintTrailingComma(listEnd: string): boolean | null {\n if (!this.tokenMap) return null;\n\n const listEndIndex = this.tokenMap.findLastIndex(this._currentNode, token =>\n this.tokenMap.matchesOriginal(token, listEnd),\n );\n if (listEndIndex <= 0) return null;\n return this.tokenMap.matchesOriginal(this._tokens[listEndIndex - 1], \",\");\n }\n\n _printNewline(newLine: boolean, opts: AddNewlinesOptions) {\n const format = this.format;\n\n // Fast path since 'this.newline' does nothing when not tracking lines.\n if (format.retainLines || format.compact) return;\n\n // Fast path for concise since 'this.newline' just inserts a space when\n // concise formatting is in use.\n if (format.concise) {\n this.space();\n return;\n }\n\n if (!newLine) {\n return;\n }\n\n const startLine = opts.nextNodeStartLine;\n const lastCommentLine = this._lastCommentLine;\n if (startLine > 0 && lastCommentLine > 0) {\n const offset = startLine - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1);\n return;\n }\n }\n\n // don't add newlines at the beginning of the file\n if (this._buf.hasContent()) {\n // Here is the logic of the original line wrapping according to the node layout, we are not using it now.\n // We currently add at most one newline to each node in the list, ignoring `opts.addNewlines`.\n\n // let lines = 0;\n // if (!leading) lines++; // always include at least a single line after\n // if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;\n\n // const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter;\n // if (needs(node, parent)) lines++;\n\n // this.newline(Math.min(2, lines));\n\n this.newline(1);\n }\n }\n\n // Returns `PRINT_COMMENT_HINT.DEFER` if the comment cannot be printed in this position due to\n // line terminators, signaling that the print comments loop can stop and\n // resume printing comments at the next possible position. This happens when\n // printing inner comments, since if we have an inner comment with a multiline\n // there is at least one inner position where line terminators are allowed.\n _shouldPrintComment(\n comment: t.Comment,\n nextToken?: Token,\n ): PRINT_COMMENT_HINT {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return PRINT_COMMENT_HINT.SKIP;\n\n if (this._printedComments.has(comment)) return PRINT_COMMENT_HINT.SKIP;\n\n if (\n this._noLineTerminator &&\n HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)\n ) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n\n if (nextToken && this.tokenMap) {\n const commentTok = this.tokenMap.find(\n this._currentNode,\n token => token.value === comment.value,\n );\n if (commentTok && commentTok.start > nextToken.start) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n }\n\n this._printedComments.add(comment);\n\n if (!this.format.shouldPrintComment(comment.value)) {\n return PRINT_COMMENT_HINT.SKIP;\n }\n\n return PRINT_COMMENT_HINT.ALLOW;\n }\n\n _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.ALL &&\n !this._noLineTerminator;\n\n if (\n printNewLines &&\n this._buf.hasContent() &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.LEADING\n ) {\n this.newline(1);\n }\n\n const lastCharCode = this.getLastChar();\n if (\n lastCharCode !== charCodes.leftSquareBracket &&\n lastCharCode !== charCodes.leftCurlyBrace &&\n lastCharCode !== charCodes.leftParenthesis\n ) {\n this.space();\n }\n\n let val;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n if (this.format.concise) {\n val = val.replace(/\\n(?!$)/g, `\\n`);\n } else {\n let indentSize = this.format.retainLines\n ? 0\n : this._buf.getCurrentColumn();\n\n if (this._shouldIndent(charCodes.slash) || this.format.retainLines) {\n indentSize += this._getIndent();\n }\n\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n // It was a single-line comment, so it's guaranteed to not\n // contain newlines and it can be safely printed as a block\n // comment.\n val = `/*${comment.value}*/`;\n }\n\n // Avoid converting a / operator into a line comment by appending /* to it\n if (this._endsWithDiv) this._space();\n\n if (this.tokenMap) {\n const { _printSemicolonBeforeNextToken, _printSemicolonBeforeNextNode } =\n this;\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n this._printSemicolonBeforeNextNode = _printSemicolonBeforeNextNode;\n this._printSemicolonBeforeNextToken = _printSemicolonBeforeNextToken;\n } else {\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n }\n\n if (!isBlockComment && !noLineTerminator) {\n this.newline(1, true);\n }\n\n if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.TRAILING) {\n this.newline(1);\n }\n }\n\n _printComments(\n type: COMMENT_TYPE,\n comments: readonly t.Comment[],\n node: t.Node,\n parent?: t.Node,\n lineOffset: number = 0,\n nextToken?: Token,\n ) {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n\n const maybeNewline = this._noLineTerminator\n ? function () {}\n : this.newline.bind(this);\n\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n\n const shouldPrint = this._shouldPrintComment(comment, nextToken);\n if (shouldPrint === PRINT_COMMENT_HINT.DEFER) {\n hasLoc = false;\n break;\n }\n if (hasLoc && comment.loc && shouldPrint === PRINT_COMMENT_HINT.ALLOW) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === COMMENT_TYPE.LEADING) {\n let offset = 0;\n if (i === 0) {\n // Because currently we cannot handle blank lines before leading comments,\n // we always wrap before and after multi-line comments.\n if (\n this._buf.hasContent() &&\n (comment.type === \"CommentLine\" ||\n commentStartLine !== commentEndLine)\n ) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(\n Math.max(nodeStartLine - lastLine, leadingCommentNewline),\n );\n lastLine = nodeStartLine;\n }\n } else if (type === COMMENT_TYPE.INNER) {\n const offset =\n commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(Math.min(1, nodeEndLine - lastLine)); // TODO: Improve here when inner comments processing is stronger\n lastLine = nodeEndLine;\n }\n } else {\n const offset =\n commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== PRINT_COMMENT_HINT.ALLOW) {\n continue;\n }\n\n if (len === 1) {\n const singleLine = comment.loc\n ? comment.loc.start.line === comment.loc.end.line\n : !HAS_NEWLINE.test(comment.value);\n\n const shouldSkipNewline =\n singleLine &&\n !isStatement(node) &&\n !isClassBody(parent) &&\n !isTSInterfaceBody(parent) &&\n !isTSEnumMember(node);\n\n if (type === COMMENT_TYPE.LEADING) {\n this._printComment(\n comment,\n (shouldSkipNewline && node.type !== \"ObjectExpression\") ||\n (singleLine && isFunction(parent, { body: node }))\n ? COMMENT_SKIP_NEWLINE.ALL\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else if (shouldSkipNewline && type === COMMENT_TYPE.TRAILING) {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n } else if (\n type === COMMENT_TYPE.INNER &&\n !(node.type === \"ObjectExpression\" && node.properties.length > 1) &&\n node.type !== \"ClassBody\" &&\n node.type !== \"TSInterfaceBody\"\n ) {\n // class X {\n // /*:: a: number*/\n // /*:: b: ?string*/\n // }\n\n this._printComment(\n comment,\n i === 0\n ? COMMENT_SKIP_NEWLINE.LEADING\n : i === len - 1\n ? COMMENT_SKIP_NEWLINE.TRAILING\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n }\n }\n\n if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n }\n}\n\n// Expose the node type functions and helpers on the prototype for easy usage.\nObject.assign(Printer.prototype, generatorFunctions);\n\nif (!process.env.BABEL_8_BREAKING) {\n addDeprecatedGenerators(Printer);\n}\n\ntype GeneratorFunctions = typeof generatorFunctions;\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\ninterface Printer extends GeneratorFunctions {}\nexport default Printer;\n\nfunction commaSeparator(this: Printer, occurrenceCount: number, last: boolean) {\n this.token(\",\", false, occurrenceCount);\n if (!last) this.space();\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,CAAA,GAAAD,OAAA;AAEA,IAAAE,EAAA,GAAAF,OAAA;AAUA,IAAAG,SAAA,GAAAH,OAAA;AAEA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAGoC;EAflCM,YAAY;EACZC,UAAU;EACVC,WAAW;EACXC,WAAW;EACXC,iBAAiB;EACjBC;AAAc,IAAAT,EAAA;AAmBhB,MAAMU,mBAAmB,GAAG,IAAI;AAChC,MAAMC,oBAAoB,GAAG,OAAO;AACpC,MAAMC,WAAW,GAAG,oBAAoB;AACxC,MAAMC,gCAAgC,GAAG,yBAAyB;AAElE,SAASC,gBAAgBA,CAACC,CAAY,EAAE;EACtC,OAAOA,CAAC,CAACC,IAAI,KAAK,aAAa,IAAIJ,WAAW,CAACK,IAAI,CAACF,CAAC,CAACG,KAAK,CAAC;AAC9D;AAEA,MAAM;EAAEC;AAAY,CAAC,GAAGpB,CAAC;AAmFzB,MAAMqB,OAAO,CAAC;EACZC,WAAWA,CACTC,MAAc,EACdC,GAAc,EACdC,MAAgB,EAChBC,YAAqB,EACrB;IAAA,KAgBFC,kBAAkB,GAAY,KAAK;IAAA,KA0BnCC,YAAY,GAAW,CAAC;IAAA,KAExBC,OAAO,GAAY,IAAI;IAAA,KACvBC,aAAa,GAAkB,IAAI;IAAA,KAGnCC,YAAY,GAAW,IAAI;IAAA,KAC3BC,OAAO,GAAW,CAAC;IAAA,KACnBC,aAAa,GAAW,CAAC;IAAA,KACzBC,UAAU,GAAY,KAAK;IAAA,KAC3BC,iBAAiB,GAAY,KAAK;IAAA,KAClCC,0BAA0B,GAAkB,IAAI;IAAA,KAChDC,4BAA4B,GAAY,KAAK;IAAA,KAC7CC,gBAAgB,GAAG,IAAIC,GAAG,CAAY,CAAC;IAAA,KACvCC,gBAAgB,GAAG,KAAK;IAAA,KACxBC,aAAa,GAAG,KAAK;IAAA,KACrBC,YAAY,GAAG,KAAK;IAAA,KACpBC,gBAAgB,GAAG,CAAC;IAAA,KACpBC,iBAAiB,GAAY,KAAK;IAAA,KAClCC,oBAAoB,GAAY,IAAI;IAAA,KACpCC,QAAQ,GAAa,IAAI;IAAA,KAEzBC,sBAAsB,GAAG,IAAI,CAACC,iBAAiB,CAACC,IAAI,CAAC,IAAI,CAAC;IAAA,KAiD1DC,6BAA6B,GAAW,CAAC,CAAC;IAAA,KAC1CC,8BAA8B,GAAW,CAAC,CAAC;IAjHzC,IAAI,CAAC5B,MAAM,GAAGA,MAAM;IAEpB,IAAI,CAACM,OAAO,GAAGJ,MAAM;IACrB,IAAI,CAACK,aAAa,GAAGJ,YAAY;IAEjC,IAAI,CAACO,aAAa,GAAGV,MAAM,CAAC6B,MAAM,CAACC,KAAK,CAACC,MAAM;IAE/C,IAAI,CAACC,SAAS,GAAG/B,GAAG,oBAAHA,GAAG,CAAE+B,SAAS;IAE/B,IAAI,CAACC,IAAI,GAAG,IAAIC,eAAM,CAACjC,GAAG,EAAED,MAAM,CAAC6B,MAAM,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;EACrD;EAMAK,qBAAqBA,CAAA,EAAG;IACtB,IAAI,IAAI,CAAC/B,kBAAkB,EAAE,OAAO,MAAM,CAAC,CAAC;IAC5C,IAAI,CAACA,kBAAkB,GAAG,IAAI;IAC9B,OAAO,MAAM;MACX,IAAI,CAACA,kBAAkB,GAAG,KAAK;IACjC,CAAC;EACH;EAEAgC,cAAcA,CAAA,EAAG;IACf,MAAMC,qBAAqB,GAAG,IAAI,CAACjC,kBAAkB;IACrD,MAAMkC,4BAA4B,GAAG,IAAI,CAACzB,0BAA0B;IACpE,IACEwB,qBAAqB,KAAK,KAAK,IAC/BC,4BAA4B,KAAK,IAAI,EACrC;MACA,OAAO,MAAM,CAAC,CAAC;IACjB;IACA,IAAI,CAAClC,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACS,0BAA0B,GAAG,IAAI;IACtC,OAAO,MAAM;MACX,IAAI,CAACT,kBAAkB,GAAGiC,qBAAqB;MAC/C,IAAI,CAACxB,0BAA0B,GAAGyB,4BAA4B;IAChE,CAAC;EACH;EA0BAC,QAAQA,CAACC,GAAW,EAAE;IACpB,IAAI,IAAI,CAACxC,MAAM,CAACyC,cAAc,EAAE;MAC9B,IAAI,CAAClB,QAAQ,GAAG,IAAImB,kBAAQ,CAACF,GAAG,EAAE,IAAI,CAAClC,OAAO,EAAE,IAAI,CAACC,aAAa,CAAC;IACrE;IACA,IAAI,CAACoC,KAAK,CAACH,GAAG,CAAC;IACf,IAAI,CAACI,mBAAmB,CAAC,CAAC;IAE1B,OAAO,IAAI,CAACX,IAAI,CAACY,GAAG,CAAC,CAAC;EACxB;EAMAhB,MAAMA,CAAA,EAAS;IACb,MAAM;MAAE7B;IAAO,CAAC,GAAG,IAAI;IACvB,IAAIA,MAAM,CAACyC,cAAc,IAAIzC,MAAM,CAAC8C,OAAO,IAAI9C,MAAM,CAAC+C,OAAO,EAAE;MAC7D;IACF;IAEA,IAAI,CAACtC,OAAO,EAAE;EAChB;EAMAuC,MAAMA,CAAA,EAAS;IACb,MAAM;MAAEhD;IAAO,CAAC,GAAG,IAAI;IACvB,IAAIA,MAAM,CAACyC,cAAc,IAAIzC,MAAM,CAAC8C,OAAO,IAAI9C,MAAM,CAAC+C,OAAO,EAAE;MAC7D;IACF;IAEA,IAAI,CAACtC,OAAO,EAAE;EAChB;EAmBAwC,SAASA,CAACC,KAAc,GAAG,KAAK,EAAQ;IACtC,IAAI,CAACN,mBAAmB,CAAC,CAAC;IAC1B,IAAIM,KAAK,EAAE;MACT,IAAI,CAACC,WAAW,GAAoB,CAAC;MACrC,IAAI,CAACvC,iBAAiB,GAAG,KAAK;MAC9B;IACF;IACA,IAAI,IAAI,CAACW,QAAQ,EAAE;MACjB,MAAM6B,IAAI,GAAG,IAAI,CAAC5C,YAAY;MAC9B,IAAI4C,IAAI,CAACC,KAAK,IAAI,IAAI,IAAID,IAAI,CAACE,GAAG,IAAI,IAAI,EAAE;QAC1C,IAAI,CAAC,IAAI,CAAC/B,QAAQ,CAACgC,UAAU,CAACH,IAAI,EAAE,GAAG,CAAC,EAAE;UAExC,IAAI,CAACzB,6BAA6B,GAAG,IAAI,CAACM,IAAI,CAACuB,cAAc,CAAC,CAAC;UAC/D;QACF;QACA,MAAMC,OAAO,GAAG,IAAI,CAAClC,QAAQ,CAACmC,UAAU,CAAC,IAAI,CAAClD,YAAY,CAAC;QAC3D,IAAI,CAACmD,UAAU,CAAC,IAAI,CAACrD,OAAO,CAACmD,OAAO,CAACA,OAAO,CAAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC6B,GAAG,CAACP,KAAK,CAAC;MACtE;IACF;IACA,IAAI,CAACQ,MAAM,GAAoB,CAAC;IAChC,IAAI,CAACjD,iBAAiB,GAAG,KAAK;EAChC;EAMAkD,UAAUA,CAACV,IAAY,EAAQ;IAC7B,IAAI,IAAI,CAACpD,MAAM,CAAC+D,QAAQ,EAAE;MACxB,IAAI,CAAC9B,IAAI,CAAC+B,mBAAmB,CAAC,CAAC;IACjC;IACA,IAAI,CAACC,gBAAgB,CAAC,KAAK,EAAEb,IAAI,CAACQ,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,CAACM,SAAK,IAAI,CAAC;EACjB;EAEAC,WAAWA,CAACf,IAAY,EAAQ;IAC9B,IAAI,CAACa,gBAAgB,CAAC,KAAK,EAAEb,IAAI,CAACQ,GAAG,EAAE,CAAC,CAAC,CAAC;IAC1C,IAAI,CAACM,SAAK,GAAI,CAAC;EACjB;EAMAE,KAAKA,CAAClB,KAAc,GAAG,KAAK,EAAQ;IAClC,MAAM;MAAElD;IAAO,CAAC,GAAG,IAAI;IACvB,IAAIA,MAAM,CAAC8C,OAAO,IAAI9C,MAAM,CAACyC,cAAc,EAAE;IAE7C,IAAIS,KAAK,EAAE;MACT,IAAI,CAACmB,MAAM,CAAC,CAAC;IACf,CAAC,MAAM,IAAI,IAAI,CAACpC,IAAI,CAACqC,UAAU,CAAC,CAAC,EAAE;MACjC,MAAMC,MAAM,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC;MACjC,IAAID,MAAM,OAAoB,IAAIA,MAAM,OAAuB,EAAE;QAC/D,IAAI,CAACF,MAAM,CAAC,CAAC;MACf;IACF;EACF;EAMAI,IAAIA,CAACC,GAAW,EAAEC,qBAA8B,GAAG,KAAK,EAAQ;IAC9D,IAAI,CAACtE,YAAY,GAAG,CAAC;IAErB,IAAI,CAACuE,wBAAwB,CAACF,GAAG,CAAC;IAElC,IAAI,CAAC9B,mBAAmB,CAAC,CAAC;IAE1B,IAAI,IAAI,CAACrB,QAAQ,EAAE,IAAI,CAACsD,sBAAsB,CAACH,GAAG,CAAC;IAGnD,IACE,IAAI,CAACxD,aAAa,IACjB,IAAI,CAACC,YAAY,IAAIuD,GAAG,CAACI,UAAU,CAAC,CAAC,CAAC,OAAqB,EAC5D;MACA,IAAI,CAACT,MAAM,CAAC,CAAC;IACf;IACA,IAAI,CAACU,OAAO,CAACL,GAAG,EAAE,KAAK,CAAC;IAExB,IAAI,CAACxD,aAAa,GAAG,IAAI;IACzB,IAAI,CAACN,iBAAiB,GAAG+D,qBAAqB;EAChD;EAMAK,MAAMA,CAACN,GAAW,EAAEM,MAAe,EAAQ;IAEzC,SAASC,mBAAmBA,CAACP,GAAW,EAAE;MACxC,IAAIA,GAAG,CAAC3C,MAAM,GAAG,CAAC,IAAI2C,GAAG,CAACI,UAAU,CAAC,CAAC,CAAC,OAAqB,EAAE;QAC5D,MAAMI,UAAU,GAAGR,GAAG,CAACI,UAAU,CAAC,CAAC,CAAC;QACpC,OACEI,UAAU,OAAyB,IACnCA,UAAU,QAAyB,IACnCA,UAAU,QAAyB;MAEvC;MACA,OAAO,KAAK;IACd;IACA,IAAI,CAACT,IAAI,CAACC,GAAG,CAAC;IAId,IAAI,CAACzD,gBAAgB,GACnBkE,MAAM,CAACC,SAAS,CAACJ,MAAM,CAAC,IACxB,CAACC,mBAAmB,CAACP,GAAG,CAAC,IACzB,CAACtF,mBAAmB,CAACO,IAAI,CAAC+E,GAAG,CAAC,IAC9B,CAACrF,oBAAoB,CAACM,IAAI,CAAC+E,GAAG,CAAC,IAC/BA,GAAG,CAACI,UAAU,CAACJ,GAAG,CAAC3C,MAAM,GAAG,CAAC,CAAC,OAAkB;EACpD;EAaAmC,KAAKA,CAACQ,GAAW,EAAEW,YAAY,GAAG,KAAK,EAAEC,eAAe,GAAG,CAAC,EAAQ;IAClE,IAAI,CAACjF,YAAY,GAAG,CAAC;IAErB,IAAI,CAACuE,wBAAwB,CAACF,GAAG,EAAEY,eAAe,CAAC;IAEnD,IAAI,CAAC1C,mBAAmB,CAAC,CAAC;IAE1B,IAAI,IAAI,CAACrB,QAAQ,EAAE,IAAI,CAACsD,sBAAsB,CAACH,GAAG,EAAEY,eAAe,CAAC;IAEpE,MAAMC,QAAQ,GAAG,IAAI,CAACf,WAAW,CAAC,CAAC;IACnC,MAAMgB,QAAQ,GAAGd,GAAG,CAACI,UAAU,CAAC,CAAC,CAAC;IAClC,IACGS,QAAQ,OAA8B,KAGpCb,GAAG,KAAK,IAAI,IAEXc,QAAQ,OAAuB,CAAC,IAEnCA,QAAQ,OAAuB,IAAID,QAAQ,OAAwB,IACnEC,QAAQ,OAAmB,IAAID,QAAQ,OAAoB,IAE3DC,QAAQ,OAAkB,IAAI,IAAI,CAACvE,gBAAiB,EACrD;MACA,IAAI,CAACoD,MAAM,CAAC,CAAC;IACf;IACA,IAAI,CAACU,OAAO,CAACL,GAAG,EAAEW,YAAY,CAAC;IAC/B,IAAI,CAACzE,iBAAiB,GAAG,KAAK;EAChC;EAEA6E,SAASA,CAACC,IAAY,EAAQ;IAC5B,IAAI,CAACrF,YAAY,GAAG,CAAC;IAErB,MAAMqE,GAAG,GAAGiB,MAAM,CAACC,YAAY,CAACF,IAAI,CAAC;IACrC,IAAI,CAACd,wBAAwB,CAACF,GAAG,CAAC;IAElC,IAAI,CAAC9B,mBAAmB,CAAC,CAAC;IAE1B,IAAI,IAAI,CAACrB,QAAQ,EAAE,IAAI,CAACsD,sBAAsB,CAACH,GAAG,CAAC;IAEnD,MAAMa,QAAQ,GAAG,IAAI,CAACf,WAAW,CAAC,CAAC;IACnC,IAEGkB,IAAI,OAAuB,IAAIH,QAAQ,OAAuB,IAC9DG,IAAI,OAAmB,IAAIH,QAAQ,OAAoB,IAEvDG,IAAI,OAAkB,IAAI,IAAI,CAACzE,gBAAiB,EACjD;MACA,IAAI,CAACoD,MAAM,CAAC,CAAC;IACf;IACA,IAAI,CAAClB,WAAW,CAACuC,IAAI,CAAC;IACtB,IAAI,CAAC9E,iBAAiB,GAAG,KAAK;EAChC;EAQAiF,OAAOA,CAACC,CAAS,GAAG,CAAC,EAAE5C,KAAe,EAAQ;IAC5C,IAAI4C,CAAC,IAAI,CAAC,EAAE;IAEZ,IAAI,CAAC5C,KAAK,EAAE;MACV,IAAI,IAAI,CAAClD,MAAM,CAAC+F,WAAW,IAAI,IAAI,CAAC/F,MAAM,CAAC8C,OAAO,EAAE;MAEpD,IAAI,IAAI,CAAC9C,MAAM,CAAC+C,OAAO,EAAE;QACvB,IAAI,CAACqB,KAAK,CAAC,CAAC;QACZ;MACF;IACF;IAEA,IAAI0B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC;IAEhBA,CAAC,IAAI,IAAI,CAAC7D,IAAI,CAAC+D,eAAe,CAAC,CAAC;IAEhC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,CAAC,EAAEG,CAAC,EAAE,EAAE;MAC1B,IAAI,CAACC,QAAQ,CAAC,CAAC;IACjB;IAEA;EACF;EAEAC,QAAQA,CAACT,IAAY,EAAW;IAC9B,OAAO,IAAI,CAAClB,WAAW,CAAC,CAAC,KAAKkB,IAAI;EACpC;EAEAlB,WAAWA,CAAA,EAAW;IACpB,OAAO,IAAI,CAACvC,IAAI,CAACuC,WAAW,CAAC,CAAC;EAChC;EAEA4B,sBAAsBA,CAAA,EAAW;IAC/B,OAAO,IAAI,CAACnE,IAAI,CAACmE,sBAAsB,CAAC,CAAC;EAC3C;EAEAC,qBAAqBA,CAAA,EAAS;IAC5B,IAAI,CAACpE,IAAI,CAACoE,qBAAqB,CAAC,CAAC;EACnC;EAEAC,WAAWA,CAAC1C,GAAoB,EAAE2C,EAAc,EAAE;IAChD,IAAI,CAAC3C,GAAG,EAAE;MACR2C,EAAE,CAAC,CAAC;MACJ;IACF;IAEA,IAAI,CAACC,QAAQ,CAAC,OAAO,EAAE5C,GAAG,CAAC;IAE3B,IAAI,CAAC3B,IAAI,CAACqE,WAAW,CAAC1C,GAAG,EAAE2C,EAAE,CAAC;EAChC;EAEAE,MAAMA,CAACC,IAAqB,EAAE9C,GAAoB,EAAQ;IACxD,IAAI,CAACA,GAAG,EAAE;IAEV,IAAI,CAAC4C,QAAQ,CAACE,IAAI,EAAE9C,GAAG,CAAC;IAExB,IAAI,CAAC3B,IAAI,CAACwE,MAAM,CAACC,IAAI,EAAE9C,GAAG,CAAC;EAC7B;EAEAK,gBAAgBA,CACdyC,IAAqB,EACrB9C,GAAoB,EACpB+C,YAAoB,EACd;IACN,IAAI,CAAC/C,GAAG,IAAI,IAAI,CAAC5D,MAAM,CAACyC,cAAc,EAAE;IAExC,IAAI,CAAC+D,QAAQ,CAACE,IAAI,EAAE9C,GAAG,CAAC;IAExB,IAAI,CAAC3B,IAAI,CAACgC,gBAAgB,CAACyC,IAAI,EAAE9C,GAAG,EAAE+C,YAAY,CAAC;EACrD;EAEAC,oBAAoBA,CAACC,cAAsB,EAAEC,GAAS,EAAQ;IAC5D,IAAI,CAAC,IAAI,CAAC7E,IAAI,CAAC8E,cAAc,EAAE;IAE/B,MAAMC,cAAc,GAAG,IAAI,CAAC/E,IAAI,CAACgF,eAAe;IAChDD,cAAc,CAACE,iBAAiB,GAAGJ,GAAG;IACtCE,cAAc,CAACH,cAAc,GAAGA,cAAc;EAChD;EAEAxC,MAAMA,CAAA,EAAS;IACb,IAAI,CAACR,MAAM,GAAgB,CAAC;EAC9B;EAEAqC,QAAQA,CAAA,EAAS;IACf,IAAI,CAACrC,MAAM,GAAmB,CAAC;EACjC;EAEAgB,sBAAsBA,CAACH,GAAW,EAAEY,eAAuB,GAAG,CAAC,EAAQ;IAGrE,MAAMpB,KAAK,GAAG,IAAI,CAAC3C,QAAQ,CAAC4F,YAAY,CACtC,IAAI,CAAC3G,YAAY,EACjBkE,GAAG,EACHY,eACF,CAAC;IACD,IAAIpB,KAAK,EAAE,IAAI,CAACP,UAAU,CAACO,KAAK,CAACN,GAAG,CAACP,KAAK,CAAC;IAE3C,IACE,IAAI,CAACzB,8BAA8B,KAAK,CAAC,CAAC,IAC1C,IAAI,CAACA,8BAA8B,KAAK,IAAI,CAACK,IAAI,CAACuB,cAAc,CAAC,CAAC,EAClE;MACA,IAAI,CAACvB,IAAI,CAACmF,UAAU,GAAoB,CAAC;MACzC,IAAI,CAAClG,aAAa,GAAG,KAAK;MAC1B,IAAI,CAACD,gBAAgB,GAAG,KAAK;MAC7B,IAAI,CAACE,YAAY,GAAG,KAAK;IAC3B;IACA,IAAI,CAACS,8BAA8B,GAAG,CAAC,CAAC;IACxC,IAAI,CAACD,6BAA6B,GAAG,CAAC,CAAC;EACzC;EAEAoD,OAAOA,CAACL,GAAW,EAAEW,YAAqB,EAAQ;IAChD,IAAI,CAACgC,YAAY,CAAC3C,GAAG,CAACI,UAAU,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,CAAC7C,IAAI,CAACqF,MAAM,CAAC5C,GAAG,EAAEW,YAAY,CAAC;IAGnC,IAAI,CAACnE,aAAa,GAAG,KAAK;IAC1B,IAAI,CAACD,gBAAgB,GAAG,KAAK;IAC7B,IAAI,CAACE,YAAY,GAAG,KAAK;EAC3B;EAEAgC,WAAWA,CAACuC,IAAY,EAAQ;IAC9B,IAAI,CAAC2B,YAAY,CAAC3B,IAAI,CAAC;IAEvB,IAAI,CAACzD,IAAI,CAACmF,UAAU,CAAC1B,IAAI,CAAC;IAG1B,IAAI,CAACxE,aAAa,GAAG,KAAK;IAC1B,IAAI,CAACD,gBAAgB,GAAG,KAAK;IAC7B,IAAI,CAACE,YAAY,GAAG,KAAK;EAC3B;EAEA0C,MAAMA,CAAC6B,IAAY,EAAE;IACnB,IAAI,CAAC2B,YAAY,CAAC3B,IAAI,CAAC;IAEvB,IAAI,CAACzD,IAAI,CAACsF,KAAK,CAAC7B,IAAI,CAAC;IAErB,IAAI,CAACxE,aAAa,GAAG,KAAK;IAC1B,IAAI,CAACD,gBAAgB,GAAG,KAAK;EAC/B;EAEAoG,YAAYA,CAACG,SAAiB,EAAQ;IAEpC,IACE,IAAI,CAAC/G,OAAO,IACZ+G,SAAS,OAAuB,IAChC,IAAI,CAACrB,QAAQ,GAAmB,CAAC,EACjC;MACA,IAAI,CAAClE,IAAI,CAACwF,gBAAgB,CAAC,IAAI,CAACC,UAAU,CAAC,CAAC,CAAC;IAC/C;EACF;EAEAC,aAAaA,CAACH,SAAiB,EAAE;IAE/B,IACE,IAAI,CAAC/G,OAAO,IACZ+G,SAAS,OAAuB,IAChC,IAAI,CAACrB,QAAQ,GAAmB,CAAC,EACjC;MACA,OAAO,IAAI;IACb;EACF;EAEAyB,OAAOA,CAACC,IAAY,EAAE;IACpB,IAAI,CAAC,IAAI,CAAC7H,MAAM,CAAC+F,WAAW,EAAE;IAG9B,MAAM+B,KAAK,GAAGD,IAAI,GAAG,IAAI,CAAC5F,IAAI,CAACuB,cAAc,CAAC,CAAC;IAE/C,KAAK,IAAIsC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgC,KAAK,EAAEhC,CAAC,EAAE,EAAE;MAC9B,IAAI,CAACI,QAAQ,CAAC,CAAC;IACjB;EACF;EAEAM,QAAQA,CAACE,IAAqB,EAAE9C,GAAS,EAAE;IACzC,MAAM;MAAE5D;IAAO,CAAC,GAAG,IAAI;IACvB,IAAI,CAACA,MAAM,CAACyC,cAAc,EAAE;MAC1B,IAAIzC,MAAM,CAAC+F,WAAW,IAAInC,GAAG,YAAHA,GAAG,CAAG8C,IAAI,CAAC,EAAE;QACrC,IAAI,CAACkB,OAAO,CAAChE,GAAG,CAAC8C,IAAI,CAAC,CAACmB,IAAI,CAAC;MAC9B;MACA;IACF;IAGA,MAAMf,GAAG,GAAGlD,GAAG,oBAAHA,GAAG,CAAG8C,IAAI,CAAC;IACvB,IAAII,GAAG,IAAI,IAAI,EAAE,IAAI,CAACnD,UAAU,CAACmD,GAAG,CAAC;EACvC;EAEAnD,UAAUA,CAAC;IAAEkE,IAAI;IAAEE,MAAM;IAAEC;EAAW,CAAC,EAAE;IACvC,MAAMF,KAAK,GAAGD,IAAI,GAAG,IAAI,CAAC5F,IAAI,CAACuB,cAAc,CAAC,CAAC;IAC/C,IAAIsE,KAAK,GAAG,CAAC,IAAI,IAAI,CAAClH,iBAAiB,EAAE;MAGvC;IACF;IAEA,KAAK,IAAIkF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGgC,KAAK,EAAEhC,CAAC,EAAE,EAAE;MAC9B,IAAI,CAACI,QAAQ,CAAC,CAAC;IACjB;IAEA,MAAM+B,WAAW,GACfH,KAAK,GAAG,CAAC,GAAGC,MAAM,GAAGA,MAAM,GAAG,IAAI,CAAC9F,IAAI,CAACiG,gBAAgB,CAAC,CAAC;IAC5D,IAAID,WAAW,GAAG,CAAC,EAAE;MACnB,MAAME,MAAM,GAAG,IAAI,CAAC5H,aAAa,GAC7B,IAAI,CAACA,aAAa,CACf6H,KAAK,CAACJ,KAAK,GAAGC,WAAW,EAAED,KAAK,CAAC,CAEjCK,OAAO,CAAC,+DAAsC,EAAE,GAAG,CAAC,GACvD,GAAG,CAACC,MAAM,CAACL,WAAW,CAAC;MAC3B,IAAI,CAAClD,OAAO,CAACoD,MAAM,EAAE,KAAK,CAAC;IAC7B;EACF;EAMAT,UAAUA,CAAA,EAAW;IACnB,OAAO,IAAI,CAAChH,aAAa,GAAG,IAAI,CAACD,OAAO;EAC1C;EAEA8H,mBAAmBA,CAACnF,IAAY,EAAE;IAgBhC,IAAI,CAACxC,iBAAiB,GAAG,IAAI;IAC7B,IAAI,CAAC+B,KAAK,CAACS,IAAI,CAAC;EAClB;EAEAT,KAAKA,CACHS,IAAmB,EACnBuB,qBAA+B,EAG/B6D,0BAAmC,EACnC;IAAA,IAAAC,WAAA,EAAAC,qBAAA,EAAAC,sBAAA;IACA,IAAI,CAACvF,IAAI,EAAE;IAEX,IAAI,CAAC/B,iBAAiB,GAAG,KAAK;IAE9B,MAAMuH,QAAQ,GAAGxF,IAAI,CAAC1D,IAAI;IAC1B,MAAMM,MAAM,GAAG,IAAI,CAACA,MAAM;IAE1B,MAAM6I,UAAU,GAAG7I,MAAM,CAAC+C,OAAO;IACjC,IAEEK,IAAI,CAAC0F,QAAQ,EACb;MACA9I,MAAM,CAAC+C,OAAO,GAAG,IAAI;IACvB;IAEA,MAAMgG,WAAW,GACf,IAAI,CACFH,QAAQ,CAMT;IACH,IAAIG,WAAW,KAAKC,SAAS,EAAE;MAC7B,MAAM,IAAIC,cAAc,CACtB,wBAAwBC,IAAI,CAACC,SAAS,CACpCP,QACF,CAAC,qBAAqBM,IAAI,CAACC,SAAS,CAAC/F,IAAI,CAACrD,WAAW,CAACqJ,IAAI,CAAC,EAC7D,CAAC;IACH;IAEA,MAAMC,MAAM,GAAG,IAAI,CAAC7I,YAAY;IAChC,IAAI,CAACA,YAAY,GAAG4C,IAAI;IAExB,IAAI,IAAI,CAAC7B,QAAQ,EAAE;MACjB,IAAI,CAACK,8BAA8B,GAAG,IAAI,CAACD,6BAA6B;IAC1E;IAEA,MAAM2H,QAAQ,GAAG,IAAI,CAAC3I,UAAU;IAChC,IAAI,CAACA,UAAU,GAAGyC,IAAI,CAACQ,GAAG,IAAI,IAAI;IAClC,IAAI,CAAChB,mBAAmB,CAAC,IAAI,CAACjC,UAAU,IAAI,CAAC2I,QAAQ,CAAC;IAEtD,MAAMC,aAAa,IAAAd,WAAA,GAAGrF,IAAI,CAACoG,KAAK,qBAAVf,WAAA,CAAYc,aAAoC;IACtE,IAAIE,iBAAiB,GAClBF,aAAa,IAAIvJ,MAAM,CAACyC,cAAc,IACtC8G,aAAa,IACZvJ,MAAM,CAAC0J,oBAAoB,IAC3Bd,QAAQ,KAAK,oBAAqB,IACpC/I,WAAW,CACTuD,IAAI,EACJiG,MAAM,EACN,IAAI,CAAChJ,YAAY,EACjB,IAAI,CAACD,kBAAkB,EACvBJ,MAAM,CAACyC,cAAc,GAAG,IAAI,CAACjB,sBAAsB,GAAGwH,SACxD,CAAC;IAEH,IACE,CAACS,iBAAiB,IAClBF,aAAa,KAAAb,qBAAA,GACbtF,IAAI,CAACuG,eAAe,aAApBjB,qBAAA,CAAsB3G,MAAM,IAC5BqB,IAAI,CAACuG,eAAe,CAAC,CAAC,CAAC,CAACjK,IAAI,KAAK,cAAc,EAC/C;MACA,MAAMkK,UAAU,GAAGP,MAAM,oBAANA,MAAM,CAAE3J,IAAI;MAC/B,QAAQkK,UAAU;QAChB,KAAK,qBAAqB;QAC1B,KAAK,oBAAoB;QACzB,KAAK,sBAAsB;QAC3B,KAAK,iBAAiB;UACpB;QACF,KAAK,gBAAgB;QACrB,KAAK,wBAAwB;QAC7B,KAAK,eAAe;UAClB,IAAIP,MAAM,CAACQ,MAAM,KAAKzG,IAAI,EAAE;QAE9B;UACEqG,iBAAiB,GAAG,IAAI;MAC5B;IACF;IAEA,IAAIK,mBAAmB,GAAG,KAAK;IAC/B,IACE,CAACL,iBAAiB,IAClB,IAAI,CAAC7I,iBAAiB,KACrB,CAAA+H,sBAAA,GAAAvF,IAAI,CAACuG,eAAe,aAApBhB,sBAAA,CAAsBoB,IAAI,CAACvK,gBAAgB,CAAC,IAC1C,IAAI,CAACQ,MAAM,CAAC+F,WAAW,IACtB3C,IAAI,CAACQ,GAAG,IACRR,IAAI,CAACQ,GAAG,CAACP,KAAK,CAACwE,IAAI,GAAG,IAAI,CAAC5F,IAAI,CAACuB,cAAc,CAAC,CAAE,CAAC,EACtD;MACAiG,iBAAiB,GAAG,IAAI;MACxBK,mBAAmB,GAAG,IAAI;IAC5B;IAEA,IAAIxH,4BAA4B;IAChC,IAAI0H,4BAA4B;IAChC,IAAI,CAACP,iBAAiB,EAAE;MACtB9E,qBAAqB,KAArBA,qBAAqB,GACnB0E,MAAM,IACN,IAAI,CAACxI,0BAA0B,KAAKwI,MAAM,IAC1C5K,CAAC,CAACwL,WAAW,CAACZ,MAAM,EAAEjG,IAAI,CAAC;MAC7B,IAAIuB,qBAAqB,EAAE;QAAA,IAAAuF,qBAAA;QACzB,KAAAA,qBAAA,GAAI9G,IAAI,CAAC+G,gBAAgB,aAArBD,qBAAA,CAAuBH,IAAI,CAACvK,gBAAgB,CAAC,EAAE;UACjD,IAAIV,YAAY,CAACsE,IAAI,CAAC,EAAEqG,iBAAiB,GAAG,IAAI;QAClD,CAAC,MAAM;UACLnH,4BAA4B,GAAG,IAAI,CAACzB,0BAA0B;UAC9D,IAAI,CAACA,0BAA0B,GAAGuC,IAAI;QACxC;MACF;IACF;IAEA,IAAIqG,iBAAiB,EAAE;MACrB,IAAI,CAACvF,SAAK,GAAI,CAAC;MACf,IAAI4F,mBAAmB,EAAE,IAAI,CAACjI,MAAM,CAAC,CAAC;MACtC,IAAI,CAACR,iBAAiB,GAAG,KAAK;MAC9B,IAAI,IAAI,CAACjB,kBAAkB,EAAE;QAC3B4J,4BAA4B,GAAG,IAAI;QACnC,IAAI,CAAC5J,kBAAkB,GAAG,KAAK;MACjC;MACAkC,4BAA4B,GAAG,IAAI,CAACzB,0BAA0B;MAC9D,IAAI,CAACA,0BAA0B,GAAG,IAAI;IACxC;IAEA,IAAI,CAACO,gBAAgB,GAAG,CAAC;IAEzB,IAAI,CAACgJ,qBAAqB,CAAChH,IAAI,EAAEiG,MAAM,CAAC;IAExC,MAAMzF,GAAG,GAAGgF,QAAQ,KAAK,SAAS,IAAIA,QAAQ,KAAK,MAAM,GAAG,IAAI,GAAGxF,IAAI,CAACQ,GAAG;IAE3E,IAAI,CAAC0C,WAAW,CACd1C,GAAG,EAEHmF,WAAW,CAACrH,IAAI,CAAC,IAAI,EAAE0B,IAAI,EAAEiG,MAAM,CACrC,CAAC;IAED,IAAII,iBAAiB,EAAE;MACrB,IAAI,CAACY,sBAAsB,CAACjH,IAAI,EAAEiG,MAAM,CAAC;MACzC,IAAIS,mBAAmB,EAAE;QACvB,IAAI,CAAC9G,MAAM,CAAC,CAAC;QACb,IAAI,CAAC6C,OAAO,CAAC,CAAC;MAChB;MACA,IAAI,CAAC3B,SAAK,GAAI,CAAC;MACf,IAAI,CAACtD,iBAAiB,GAAG+D,qBAAqB;MAC9C,IAAIqF,4BAA4B,EAAE,IAAI,CAAC5J,kBAAkB,GAAG,IAAI;IAClE,CAAC,MAAM,IAAIuE,qBAAqB,IAAI,CAAC,IAAI,CAAC/D,iBAAiB,EAAE;MAC3D,IAAI,CAACA,iBAAiB,GAAG,IAAI;MAC7B,IAAI,CAACyJ,sBAAsB,CAACjH,IAAI,EAAEiG,MAAM,CAAC;IAC3C,CAAC,MAAM;MACL,IAAI,CAACgB,sBAAsB,CAACjH,IAAI,EAAEiG,MAAM,EAAEb,0BAA0B,CAAC;IACvE;IAGA,IAAI,CAAChI,YAAY,GAAG6I,MAAM;IAC1BrJ,MAAM,CAAC+C,OAAO,GAAG8F,UAAU;IAC3B,IAAI,CAAClI,UAAU,GAAG2I,QAAQ;IAE1B,IAAIhH,4BAA4B,KAAK0G,SAAS,EAAE;MAC9C,IAAI,CAACnI,0BAA0B,GAAGyB,4BAA4B;IAChE;IAEA,IAAI,CAACjB,iBAAiB,GAAG,KAAK;EAChC;EAEAuB,mBAAmBA,CAAC0H,uBAAiC,EAAE;IACrD,IAAIA,uBAAuB,EAAE,IAAI,CAACC,sBAAsB,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC5J,UAAU,EAAE,IAAI,CAAC6J,qBAAqB,CAAC,CAAC;EACpD;EAEAD,sBAAsBA,CAAA,EAAG;IACvB,IAAI,IAAI,CAACzJ,4BAA4B,EAAE;IACvC,IAAI,CAACA,4BAA4B,GAAG,IAAI;IAExC,MAAM2J,OAAO,GAAG,IAAI,CAACzK,MAAM,CAAC0K,sBAAsB;IAClD,IAAID,OAAO,EAAE;MACX,IAAI,CAACE,aAAa,CAChB;QACEjL,IAAI,EAAE,cAAc;QACpBE,KAAK,EAAE6K;MACT,CAAC,GAEH,CAAC;IACH;EACF;EAEAD,qBAAqBA,CAAA,EAAG;IACtB,IAAI,CAAC,IAAI,CAAC1J,4BAA4B,EAAE;IACxC,IAAI,CAACA,4BAA4B,GAAG,KAAK;IAEzC,MAAM2J,OAAO,GAAG,IAAI,CAACzK,MAAM,CAAC4K,qBAAqB;IACjD,IAAIH,OAAO,EAAE;MACX,IAAI,CAACE,aAAa,CAChB;QACEjL,IAAI,EAAE,cAAc;QACpBE,KAAK,EAAE6K;MACT,CAAC,GAEH,CAAC;IACH;EACF;EAEAI,cAAcA,CACZzH,IAKa,EACO;IACpB,MAAMoG,KAAK,GAAGpG,IAAI,CAACoG,KAAK;IACxB,IACE,CAAAA,KAAK,oBAALA,KAAK,CAAEsB,GAAG,KAAI,IAAI,IAClBtB,KAAK,CAACuB,QAAQ,IAAI,IAAI,IACtB3H,IAAI,CAACxD,KAAK,KAAK4J,KAAK,CAACuB,QAAQ,EAC7B;MAEA,OAAOvB,KAAK,CAACsB,GAAG;IAClB;EACF;EAEAE,SAASA,CACPC,KAAuC,EACvCC,SAAmB,EACnBrJ,MAAgB,EAChBsJ,SAAyC,EACzCC,sBAAgC,EAChCC,WAA6C,EAC7CC,QAAuC,EACvC9C,0BAAmC,EACnC;IACA,IAAI,EAACyC,KAAK,YAALA,KAAK,CAAElJ,MAAM,GAAE;IAEpB,IAAIF,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC7B,MAAM,CAAC+F,WAAW,EAAE;MAAA,IAAAwF,YAAA;MAC7C,MAAMC,SAAS,IAAAD,YAAA,GAAGN,KAAK,CAAC,CAAC,CAAC,CAACrH,GAAG,qBAAZ2H,YAAA,CAAclI,KAAK,CAACwE,IAAI;MAC1C,IAAI2D,SAAS,IAAI,IAAI,IAAIA,SAAS,KAAK,IAAI,CAACvJ,IAAI,CAACuB,cAAc,CAAC,CAAC,EAAE;QACjE3B,MAAM,GAAG,IAAI;MACf;IACF;IAEA,IAAIA,MAAM,EAAE,IAAI,CAACA,MAAM,CAAC,CAAC;IAEzB,MAAM4J,WAA+B,GAAG;MACtCJ,WAAW,EAAEA,WAAW;MACxBK,iBAAiB,EAAE;IACrB,CAAC;IAED,MAAMC,cAAc,GAAGR,SAAS,oBAATA,SAAS,CAAEzJ,IAAI,CAAC,IAAI,CAAC;IAE5C,MAAMkK,GAAG,GAAGX,KAAK,CAAClJ,MAAM;IACxB,KAAK,IAAI+D,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8F,GAAG,EAAE9F,CAAC,EAAE,EAAE;MAC5B,MAAM1C,IAAI,GAAG6H,KAAK,CAACnF,CAAC,CAAC;MACrB,IAAI,CAAC1C,IAAI,EAAE;MAEX,IAAI8H,SAAS,EAAE,IAAI,CAACW,aAAa,CAAC/F,CAAC,KAAK,CAAC,EAAE2F,WAAW,CAAC;MAEvD,IAAI,CAAC9I,KAAK,CAACS,IAAI,EAAE4F,SAAS,EAAER,0BAA0B,IAAI,CAAC,CAAC;MAE5D8C,QAAQ,YAARA,QAAQ,CAAGlI,IAAI,EAAE0C,CAAC,CAAC;MAEnB,IAAI6F,cAAc,IAAI,IAAI,EAAE;QAC1B,IAAI7F,CAAC,GAAG8F,GAAG,GAAG,CAAC,EAAED,cAAc,CAAC7F,CAAC,EAAE,KAAK,CAAC,CAAC,KACrC,IAAIsF,sBAAsB,EAAEO,cAAc,CAAC7F,CAAC,EAAE,IAAI,CAAC;MAC1D;MAEA,IAAIoF,SAAS,EAAE;QAAA,IAAAY,sBAAA;QACb,IAAI,GAAAA,sBAAA,GAAC1I,IAAI,CAAC+G,gBAAgB,aAArB2B,sBAAA,CAAuB/J,MAAM,GAAE;UAClC,IAAI,CAACX,gBAAgB,GAAG,CAAC;QAC3B;QAEA,IAAI0E,CAAC,GAAG,CAAC,KAAK8F,GAAG,EAAE;UACjB,IAAI,CAAC/F,OAAO,CAAC,CAAC,CAAC;QACjB,CAAC,MAAM;UAAA,IAAAkG,aAAA;UACL,MAAMC,QAAQ,GAAGf,KAAK,CAACnF,CAAC,GAAG,CAAC,CAAC;UAC7B2F,WAAW,CAACC,iBAAiB,GAAG,EAAAK,aAAA,GAAAC,QAAQ,CAACpI,GAAG,qBAAZmI,aAAA,CAAc1I,KAAK,CAACwE,IAAI,KAAI,CAAC;UAE7D,IAAI,CAACgE,aAAa,CAAC,IAAI,EAAEJ,WAAW,CAAC;QACvC;MACF;IACF;IAEA,IAAI5J,MAAM,EAAE,IAAI,CAACmB,MAAM,CAAC,CAAC;EAC3B;EAEAiJ,wBAAwBA,CAAC7I,IAAY,EAAE;IACrC,MAAMvB,MAAM,GAAGuB,IAAI,CAACuG,eAAe,IAAIvG,IAAI,CAACuG,eAAe,CAAC5H,MAAM,GAAG,CAAC;IACtE,IAAIF,MAAM,EAAE,IAAI,CAACA,MAAM,CAAC,CAAC;IACzB,IAAI,CAACc,KAAK,CAACS,IAAI,CAAC;IAChB,IAAIvB,MAAM,EAAE,IAAI,CAACmB,MAAM,CAAC,CAAC;EAC3B;EAEAkJ,UAAUA,CAAC7C,MAA8C,EAAE;IACzD,MAAMjG,IAAI,GAAGiG,MAAM,CAAC8C,IAAI;IAExB,IAAI/I,IAAI,CAAC1D,IAAI,KAAK,gBAAgB,EAAE;MAClC,IAAI,CAAC0E,KAAK,CAAC,CAAC;IACd;IAEA,IAAI,CAACzB,KAAK,CAACS,IAAI,CAAC;EAClB;EAEAiH,sBAAsBA,CAACjH,IAAY,EAAEiG,MAAe,EAAE+C,UAAmB,EAAE;IACzE,MAAM;MAAEC,aAAa;MAAElC;IAAiB,CAAC,GAAG/G,IAAI;IAIhD,IAAIiJ,aAAa,YAAbA,aAAa,CAAEtK,MAAM,EAAE;MACzB,IAAI,CAACuK,cAAc,IAEjBD,aAAa,EACbjJ,IAAI,EACJiG,MAAM,EACN+C,UACF,CAAC;IACH;IACA,IAAIjC,gBAAgB,YAAhBA,gBAAgB,CAAEpI,MAAM,EAAE;MAC5B,IAAI,CAACuK,cAAc,IAEjBnC,gBAAgB,EAChB/G,IAAI,EACJiG,MAAM,EACN+C,UACF,CAAC;IACH;EACF;EAEAhC,qBAAqBA,CAAChH,IAAY,EAAEiG,MAAc,EAAE;IAClD,MAAMkD,QAAQ,GAAGnJ,IAAI,CAACuG,eAAe;IACrC,IAAI,EAAC4C,QAAQ,YAARA,QAAQ,CAAExK,MAAM,GAAE;IACvB,IAAI,CAACuK,cAAc,IAAuBC,QAAQ,EAAEnJ,IAAI,EAAEiG,MAAM,CAAC;EACnE;EAEAzE,wBAAwBA,CACtB4H,YAAoB,EACpBC,wBAAiC,EACjC;IACA,IAAI,IAAI,CAACpL,iBAAiB,EAAE;MAAA,IAAAqL,cAAA;MAC1B,IAAI,CAACC,kBAAkB,EAAAD,cAAA,GACrB,IAAI,CAACnL,QAAQ,qBAAbmL,cAAA,CAAevF,YAAY,CACzB,IAAI,CAAC3G,YAAY,EACjBgM,YAAY,EACZC,wBACF,CACF,CAAC;IACH;IACA,IAAI,CAACpL,iBAAiB,GAAG,IAAI;IAC7B,IAAI,CAACC,oBAAoB,GAAG,IAAI;EAClC;EAEAqL,kBAAkBA,CAACC,SAAiB,EAAE;IACpC,MAAMxJ,IAAI,GAAG,IAAI,CAAC5C,YAAY;IAC9B,MAAM+L,QAAQ,GAAGnJ,IAAI,CAACiJ,aAAa;IACnC,IAAI,EAACE,QAAQ,YAARA,QAAQ,CAAExK,MAAM,GAAE;IAEvB,MAAM8K,QAAQ,GAAG,IAAI,CAAC1G,QAAQ,GAAgB,CAAC;IAC/C,MAAMtE,MAAM,GAAG,IAAI,CAACP,oBAAoB;IACxC,MAAMwL,oBAAoB,GAAG,IAAI,CAAC/L,gBAAgB,CAACgM,IAAI;IACvD,IAAIlL,MAAM,EAAE,IAAI,CAACA,MAAM,CAAC,CAAC;IACzB,IAAI,CAACyK,cAAc,IAEjBC,QAAQ,EACRnJ,IAAI,EACJ4F,SAAS,EACTA,SAAS,EACT4D,SACF,CAAC;IACD,IAAIC,QAAQ,IAAIC,oBAAoB,KAAK,IAAI,CAAC/L,gBAAgB,CAACgM,IAAI,EAAE;MACnE,IAAI,CAAC3I,KAAK,CAAC,CAAC;IACd;IACA,IAAIvC,MAAM,EAAE,IAAI,CAACmB,MAAM,CAAC,CAAC;EAC3B;EAEAgK,yBAAyBA,CAAA,EAAG;IAC1B,IAAI,CAAC1L,oBAAoB,GAAG,KAAK;EACnC;EAEA2L,aAAaA,CACXhC,KAAe,EACfpJ,MAAgB,EAChB2G,0BAAmC,EACnC6C,WAAiD,EACjD;IACA,IAAI,CAACL,SAAS,CACZC,KAAK,EACL,IAAI,EACJpJ,MAAM,WAANA,MAAM,GAAI,KAAK,EACfmH,SAAS,EACTA,SAAS,EACTqC,WAAW,EACXrC,SAAS,EACTR,0BACF,CAAC;EACH;EAEA0E,SAASA,CACPC,KAAe,EACf/B,sBAAgC,EAChCF,SAAmB,EACnBrJ,MAAgB,EAChBsJ,SAAyC,EACzCG,QAAuC,EACvC;IACA,IAAI,CAACN,SAAS,CACZmC,KAAK,EACLjC,SAAS,EACTrJ,MAAM,EACNsJ,SAAS,WAATA,SAAS,GAAIiC,cAAc,EAC3BhC,sBAAsB,EACtBpC,SAAS,EACTsC,QACF,CAAC;EACH;EAEA+B,wBAAwBA,CAACC,OAAe,EAAkB;IACxD,IAAI,CAAC,IAAI,CAAC/L,QAAQ,EAAE,OAAO,IAAI;IAE/B,MAAMgM,YAAY,GAAG,IAAI,CAAChM,QAAQ,CAACiM,aAAa,CAAC,IAAI,CAAChN,YAAY,EAAE0D,KAAK,IACvE,IAAI,CAAC3C,QAAQ,CAACkM,eAAe,CAACvJ,KAAK,EAAEoJ,OAAO,CAC9C,CAAC;IACD,IAAIC,YAAY,IAAI,CAAC,EAAE,OAAO,IAAI;IAClC,OAAO,IAAI,CAAChM,QAAQ,CAACkM,eAAe,CAAC,IAAI,CAACnN,OAAO,CAACiN,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC;EAC3E;EAEA1B,aAAaA,CAAC6B,OAAgB,EAAEC,IAAwB,EAAE;IACxD,MAAM3N,MAAM,GAAG,IAAI,CAACA,MAAM;IAG1B,IAAIA,MAAM,CAAC+F,WAAW,IAAI/F,MAAM,CAAC8C,OAAO,EAAE;IAI1C,IAAI9C,MAAM,CAAC+C,OAAO,EAAE;MAClB,IAAI,CAACqB,KAAK,CAAC,CAAC;MACZ;IACF;IAEA,IAAI,CAACsJ,OAAO,EAAE;MACZ;IACF;IAEA,MAAMlC,SAAS,GAAGmC,IAAI,CAACjC,iBAAiB;IACxC,MAAMkC,eAAe,GAAG,IAAI,CAACxM,gBAAgB;IAC7C,IAAIoK,SAAS,GAAG,CAAC,IAAIoC,eAAe,GAAG,CAAC,EAAE;MACxC,MAAMC,MAAM,GAAGrC,SAAS,GAAGoC,eAAe;MAC1C,IAAIC,MAAM,IAAI,CAAC,EAAE;QACf,IAAI,CAAChI,OAAO,CAACgI,MAAM,IAAI,CAAC,CAAC;QACzB;MACF;IACF;IAGA,IAAI,IAAI,CAAC5L,IAAI,CAACqC,UAAU,CAAC,CAAC,EAAE;MAa1B,IAAI,CAACuB,OAAO,CAAC,CAAC,CAAC;IACjB;EACF;EAOAiI,mBAAmBA,CACjBrD,OAAkB,EAClBmC,SAAiB,EACG;IAGpB,IAAInC,OAAO,CAACsD,MAAM,EAAE;IAEpB,IAAI,IAAI,CAAChN,gBAAgB,CAACiN,GAAG,CAACvD,OAAO,CAAC,EAAE;IAExC,IACE,IAAI,CAAC7J,iBAAiB,IACtBrB,gCAAgC,CAACI,IAAI,CAAC8K,OAAO,CAAC7K,KAAK,CAAC,EACpD;MACA;IACF;IAEA,IAAIgN,SAAS,IAAI,IAAI,CAACrL,QAAQ,EAAE;MAC9B,MAAM0M,UAAU,GAAG,IAAI,CAAC1M,QAAQ,CAAC2M,IAAI,CACnC,IAAI,CAAC1N,YAAY,EACjB0D,KAAK,IAAIA,KAAK,CAACtE,KAAK,KAAK6K,OAAO,CAAC7K,KACnC,CAAC;MACD,IAAIqO,UAAU,IAAIA,UAAU,CAAC5K,KAAK,GAAGuJ,SAAS,CAACvJ,KAAK,EAAE;QACpD;MACF;IACF;IAEA,IAAI,CAACtC,gBAAgB,CAACoN,GAAG,CAAC1D,OAAO,CAAC;IAElC,IAAI,CAAC,IAAI,CAACzK,MAAM,CAACoO,kBAAkB,CAAC3D,OAAO,CAAC7K,KAAK,CAAC,EAAE;MAClD;IACF;IAEA;EACF;EAEA+K,aAAaA,CAACF,OAAkB,EAAE4D,YAAkC,EAAE;IACpE,MAAMC,gBAAgB,GAAG,IAAI,CAAC1N,iBAAiB;IAC/C,MAAM2N,cAAc,GAAG9D,OAAO,CAAC/K,IAAI,KAAK,cAAc;IAItD,MAAM8O,aAAa,GACjBD,cAAc,IACdF,YAAY,MAA6B,IACzC,CAAC,IAAI,CAACzN,iBAAiB;IAEzB,IACE4N,aAAa,IACb,IAAI,CAACvM,IAAI,CAACqC,UAAU,CAAC,CAAC,IACtB+J,YAAY,MAAiC,EAC7C;MACA,IAAI,CAACxI,OAAO,CAAC,CAAC,CAAC;IACjB;IAEA,MAAM4I,YAAY,GAAG,IAAI,CAACjK,WAAW,CAAC,CAAC;IACvC,IACEiK,YAAY,OAAgC,IAC5CA,YAAY,QAA6B,IACzCA,YAAY,OAA8B,EAC1C;MACA,IAAI,CAACrK,KAAK,CAAC,CAAC;IACd;IAEA,IAAIsK,GAAG;IACP,IAAIH,cAAc,EAAE;MAClBG,GAAG,GAAG,KAAKjE,OAAO,CAAC7K,KAAK,IAAI;MAC5B,IAAI,IAAI,CAACI,MAAM,CAAC6B,MAAM,CAAC8M,sBAAsB,EAAE;QAAA,IAAAC,YAAA;QAC7C,MAAMf,MAAM,IAAAe,YAAA,GAAGnE,OAAO,CAAC7G,GAAG,qBAAXgL,YAAA,CAAavL,KAAK,CAAC0E,MAAM;QACxC,IAAI8F,MAAM,EAAE;UACV,MAAMgB,YAAY,GAAG,IAAIC,MAAM,CAAC,WAAW,GAAGjB,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC;UAChEa,GAAG,GAAGA,GAAG,CAACrG,OAAO,CAACwG,YAAY,EAAE,IAAI,CAAC;QACvC;QACA,IAAI,IAAI,CAAC7O,MAAM,CAAC+C,OAAO,EAAE;UACvB2L,GAAG,GAAGA,GAAG,CAACrG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;QACrC,CAAC,MAAM;UACL,IAAI0G,UAAU,GAAG,IAAI,CAAC/O,MAAM,CAAC+F,WAAW,GACpC,CAAC,GACD,IAAI,CAAC9D,IAAI,CAACiG,gBAAgB,CAAC,CAAC;UAEhC,IAAI,IAAI,CAACP,aAAa,GAAgB,CAAC,IAAI,IAAI,CAAC3H,MAAM,CAAC+F,WAAW,EAAE;YAClEgJ,UAAU,IAAI,IAAI,CAACrH,UAAU,CAAC,CAAC;UACjC;UAEAgH,GAAG,GAAGA,GAAG,CAACrG,OAAO,CAAC,UAAU,EAAE,KAAK,GAAG,CAACC,MAAM,CAACyG,UAAU,CAAC,EAAE,CAAC;QAC9D;MACF;IACF,CAAC,MAAM,IAAI,CAACT,gBAAgB,EAAE;MAC5BI,GAAG,GAAG,KAAKjE,OAAO,CAAC7K,KAAK,EAAE;IAC5B,CAAC,MAAM;MAIL8O,GAAG,GAAG,KAAKjE,OAAO,CAAC7K,KAAK,IAAI;IAC9B;IAGA,IAAI,IAAI,CAACuB,YAAY,EAAE,IAAI,CAACkD,MAAM,CAAC,CAAC;IAEpC,IAAI,IAAI,CAAC9C,QAAQ,EAAE;MACjB,MAAM;QAAEK,8BAA8B;QAAED;MAA8B,CAAC,GACrE,IAAI;MACN,IAAI,CAACC,8BAA8B,GAAG,CAAC,CAAC;MACxC,IAAI,CAACD,6BAA6B,GAAG,CAAC,CAAC;MACvC,IAAI,CAAC8E,MAAM,CAAC,OAAO,EAAEgE,OAAO,CAAC7G,GAAG,CAAC;MACjC,IAAI,CAACmB,OAAO,CAAC2J,GAAG,EAAEH,cAAc,CAAC;MACjC,IAAI,CAAC5M,6BAA6B,GAAGA,6BAA6B;MAClE,IAAI,CAACC,8BAA8B,GAAGA,8BAA8B;IACtE,CAAC,MAAM;MACL,IAAI,CAAC6E,MAAM,CAAC,OAAO,EAAEgE,OAAO,CAAC7G,GAAG,CAAC;MACjC,IAAI,CAACmB,OAAO,CAAC2J,GAAG,EAAEH,cAAc,CAAC;IACnC;IAEA,IAAI,CAACA,cAAc,IAAI,CAACD,gBAAgB,EAAE;MACxC,IAAI,CAACzI,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC;IACvB;IAEA,IAAI2I,aAAa,IAAIH,YAAY,MAAkC,EAAE;MACnE,IAAI,CAACxI,OAAO,CAAC,CAAC,CAAC;IACjB;EACF;EAEAyG,cAAcA,CACZ5M,IAAkB,EAClB6M,QAA8B,EAC9BnJ,IAAY,EACZiG,MAAe,EACf+C,UAAkB,GAAG,CAAC,EACtBQ,SAAiB,EACjB;IACA,MAAMoC,OAAO,GAAG5L,IAAI,CAACQ,GAAG;IACxB,MAAMgI,GAAG,GAAGW,QAAQ,CAACxK,MAAM;IAC3B,IAAIkN,MAAM,GAAG,CAAC,CAACD,OAAO;IACtB,MAAME,aAAa,GAAGD,MAAM,GAAGD,OAAO,CAAC3L,KAAK,CAACwE,IAAI,GAAG,CAAC;IACrD,MAAMsH,WAAW,GAAGF,MAAM,GAAGD,OAAO,CAAC1L,GAAG,CAACuE,IAAI,GAAG,CAAC;IACjD,IAAIuH,QAAQ,GAAG,CAAC;IAChB,IAAIC,qBAAqB,GAAG,CAAC;IAE7B,MAAMhK,YAAY,GAAG,IAAI,CAACzE,iBAAiB,GACvC,YAAY,CAAC,CAAC,GACd,IAAI,CAACiF,OAAO,CAACnE,IAAI,CAAC,IAAI,CAAC;IAE3B,KAAK,IAAIoE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8F,GAAG,EAAE9F,CAAC,EAAE,EAAE;MAC5B,MAAM2E,OAAO,GAAG8B,QAAQ,CAACzG,CAAC,CAAC;MAE3B,MAAMwJ,WAAW,GAAG,IAAI,CAACxB,mBAAmB,CAACrD,OAAO,EAAEmC,SAAS,CAAC;MAChE,IAAI0C,WAAW,MAA6B,EAAE;QAC5CL,MAAM,GAAG,KAAK;QACd;MACF;MACA,IAAIA,MAAM,IAAIxE,OAAO,CAAC7G,GAAG,IAAI0L,WAAW,MAA6B,EAAE;QACrE,MAAMC,gBAAgB,GAAG9E,OAAO,CAAC7G,GAAG,CAACP,KAAK,CAACwE,IAAI;QAC/C,MAAM2H,cAAc,GAAG/E,OAAO,CAAC7G,GAAG,CAACN,GAAG,CAACuE,IAAI;QAC3C,IAAInI,IAAI,MAAyB,EAAE;UACjC,IAAImO,MAAM,GAAG,CAAC;UACd,IAAI/H,CAAC,KAAK,CAAC,EAAE;YAGX,IACE,IAAI,CAAC7D,IAAI,CAACqC,UAAU,CAAC,CAAC,KACrBmG,OAAO,CAAC/K,IAAI,KAAK,aAAa,IAC7B6P,gBAAgB,KAAKC,cAAc,CAAC,EACtC;cACA3B,MAAM,GAAGwB,qBAAqB,GAAG,CAAC;YACpC;UACF,CAAC,MAAM;YACLxB,MAAM,GAAG0B,gBAAgB,GAAGH,QAAQ;UACtC;UACAA,QAAQ,GAAGI,cAAc;UAEzBnK,YAAY,CAACwI,MAAM,CAAC;UACpB,IAAI,CAAClD,aAAa,CAACF,OAAO,GAA0B,CAAC;UAErD,IAAI3E,CAAC,GAAG,CAAC,KAAK8F,GAAG,EAAE;YACjBvG,YAAY,CACVoK,IAAI,CAACC,GAAG,CAACR,aAAa,GAAGE,QAAQ,EAAEC,qBAAqB,CAC1D,CAAC;YACDD,QAAQ,GAAGF,aAAa;UAC1B;QACF,CAAC,MAAM,IAAIxP,IAAI,MAAuB,EAAE;UACtC,MAAMmO,MAAM,GACV0B,gBAAgB,IAAIzJ,CAAC,KAAK,CAAC,GAAGoJ,aAAa,GAAGE,QAAQ,CAAC;UACzDA,QAAQ,GAAGI,cAAc;UAEzBnK,YAAY,CAACwI,MAAM,CAAC;UACpB,IAAI,CAAClD,aAAa,CAACF,OAAO,GAA0B,CAAC;UAErD,IAAI3E,CAAC,GAAG,CAAC,KAAK8F,GAAG,EAAE;YACjBvG,YAAY,CAACoK,IAAI,CAACE,GAAG,CAAC,CAAC,EAAER,WAAW,GAAGC,QAAQ,CAAC,CAAC;YACjDA,QAAQ,GAAGD,WAAW;UACxB;QACF,CAAC,MAAM;UACL,MAAMtB,MAAM,GACV0B,gBAAgB,IAAIzJ,CAAC,KAAK,CAAC,GAAGqJ,WAAW,GAAG/C,UAAU,GAAGgD,QAAQ,CAAC;UACpEA,QAAQ,GAAGI,cAAc;UAEzBnK,YAAY,CAACwI,MAAM,CAAC;UACpB,IAAI,CAAClD,aAAa,CAACF,OAAO,GAA0B,CAAC;QACvD;MACF,CAAC,MAAM;QACLwE,MAAM,GAAG,KAAK;QACd,IAAIK,WAAW,MAA6B,EAAE;UAC5C;QACF;QAEA,IAAI1D,GAAG,KAAK,CAAC,EAAE;UACb,MAAMgE,UAAU,GAAGnF,OAAO,CAAC7G,GAAG,GAC1B6G,OAAO,CAAC7G,GAAG,CAACP,KAAK,CAACwE,IAAI,KAAK4C,OAAO,CAAC7G,GAAG,CAACN,GAAG,CAACuE,IAAI,GAC/C,CAACvI,WAAW,CAACK,IAAI,CAAC8K,OAAO,CAAC7K,KAAK,CAAC;UAEpC,MAAMiQ,iBAAiB,GACrBD,UAAU,IACV,CAAC5Q,WAAW,CAACoE,IAAI,CAAC,IAClB,CAACnE,WAAW,CAACoK,MAAM,CAAC,IACpB,CAACnK,iBAAiB,CAACmK,MAAM,CAAC,IAC1B,CAAClK,cAAc,CAACiE,IAAI,CAAC;UAEvB,IAAI1D,IAAI,MAAyB,EAAE;YACjC,IAAI,CAACiL,aAAa,CAChBF,OAAO,EACNoF,iBAAiB,IAAIzM,IAAI,CAAC1D,IAAI,KAAK,kBAAkB,IACnDkQ,UAAU,IAAI7Q,UAAU,CAACsK,MAAM,EAAE;cAAE8C,IAAI,EAAE/I;YAAK,CAAC,CAAE,QAGtD,CAAC;UACH,CAAC,MAAM,IAAIyM,iBAAiB,IAAInQ,IAAI,MAA0B,EAAE;YAC9D,IAAI,CAACiL,aAAa,CAACF,OAAO,GAA0B,CAAC;UACvD,CAAC,MAAM;YACL,IAAI,CAACE,aAAa,CAACF,OAAO,GAA8B,CAAC;UAC3D;QACF,CAAC,MAAM,IACL/K,IAAI,MAAuB,IAC3B,EAAE0D,IAAI,CAAC1D,IAAI,KAAK,kBAAkB,IAAI0D,IAAI,CAAC0M,UAAU,CAAC/N,MAAM,GAAG,CAAC,CAAC,IACjEqB,IAAI,CAAC1D,IAAI,KAAK,WAAW,IACzB0D,IAAI,CAAC1D,IAAI,KAAK,iBAAiB,EAC/B;UAMA,IAAI,CAACiL,aAAa,CAChBF,OAAO,EACP3E,CAAC,KAAK,CAAC,OAEHA,CAAC,KAAK8F,GAAG,GAAG,CAAC,QAGnB,CAAC;QACH,CAAC,MAAM;UACL,IAAI,CAACjB,aAAa,CAACF,OAAO,GAA8B,CAAC;QAC3D;MACF;IACF;IAEA,IAAI/K,IAAI,MAA0B,IAAIuP,MAAM,IAAIG,QAAQ,EAAE;MACxD,IAAI,CAAChO,gBAAgB,GAAGgO,QAAQ;IAClC;EACF;AACF;AAGAW,MAAM,CAACC,MAAM,CAAClQ,OAAO,CAACmQ,SAAS,EAAErR,kBAAkB,CAAC;AAEjB;EACjC,IAAAsR,mCAAuB,EAACpQ,OAAO,CAAC;AAClC;AAAC,IAAAqQ,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAKcvQ,OAAO;AAEtB,SAASsN,cAAcA,CAAgB9H,eAAuB,EAAEgL,IAAa,EAAE;EAC7E,IAAI,CAACpM,KAAK,CAAC,GAAG,EAAE,KAAK,EAAEoB,eAAe,CAAC;EACvC,IAAI,CAACgL,IAAI,EAAE,IAAI,CAAClM,KAAK,CAAC,CAAC;AACzB","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babel/generator",
3
- "version": "7.26.3",
3
+ "version": "7.26.10",
4
4
  "description": "Turns an AST into code.",
5
5
  "author": "The Babel Team (https://babel.dev/team)",
6
6
  "license": "MIT",
@@ -19,16 +19,16 @@
19
19
  "lib"
20
20
  ],
21
21
  "dependencies": {
22
- "@babel/parser": "^7.26.3",
23
- "@babel/types": "^7.26.3",
22
+ "@babel/parser": "^7.26.10",
23
+ "@babel/types": "^7.26.10",
24
24
  "@jridgewell/gen-mapping": "^0.3.5",
25
25
  "@jridgewell/trace-mapping": "^0.3.25",
26
26
  "jsesc": "^3.0.2"
27
27
  },
28
28
  "devDependencies": {
29
- "@babel/core": "^7.26.0",
29
+ "@babel/core": "^7.26.10",
30
30
  "@babel/helper-fixtures": "^7.26.0",
31
- "@babel/plugin-transform-typescript": "^7.26.3",
31
+ "@babel/plugin-transform-typescript": "^7.26.8",
32
32
  "@jridgewell/sourcemap-codec": "^1.4.15",
33
33
  "@types/jsesc": "^2.5.0",
34
34
  "charcodes": "^0.2.0"
@@ -120,7 +120,7 @@ function semverifyTarget(target, value) {
120
120
  }
121
121
  }
122
122
  function nodeTargetParser(value) {
123
- const parsed = value === true || value === "current" ? process.versions.node : semverifyTarget("node", value);
123
+ const parsed = value === true || value === "current" ? process.versions.node.split("-")[0] : semverifyTarget("node", value);
124
124
  return ["node", parsed];
125
125
  }
126
126
  function defaultTargetParser(target, value) {