@tramvai/cli 5.53.80 → 6.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/bin/spawn.js +8 -2
  2. package/lib/api/start/application.experimental.d.ts +7 -0
  3. package/lib/api/start/application.experimental.d.ts.map +1 -0
  4. package/lib/api/start/application.experimental.js +275 -0
  5. package/lib/api/start/application.experimental.js.map +1 -0
  6. package/lib/api/start/index.d.ts +1 -0
  7. package/lib/api/start/index.d.ts.map +1 -1
  8. package/lib/api/start/index.js +17 -6
  9. package/lib/api/start/index.js.map +1 -1
  10. package/lib/builder/webpack/devServer/setup.d.ts.map +1 -1
  11. package/lib/builder/webpack/devServer/setup.js +3 -1
  12. package/lib/builder/webpack/devServer/setup.js.map +1 -1
  13. package/lib/builder/webpack/providers/analyze/shared.d.ts.map +1 -1
  14. package/lib/builder/webpack/providers/analyze/shared.js +5 -9
  15. package/lib/builder/webpack/providers/analyze/shared.js.map +1 -1
  16. package/lib/builder/webpack/providers/client.d.ts.map +1 -1
  17. package/lib/builder/webpack/providers/client.js +10 -9
  18. package/lib/builder/webpack/providers/client.js.map +1 -1
  19. package/lib/builder/webpack/providers/server.d.ts.map +1 -1
  20. package/lib/builder/webpack/providers/server.js +10 -9
  21. package/lib/builder/webpack/providers/server.js.map +1 -1
  22. package/lib/cli/CLI.d.ts +1 -1
  23. package/lib/cli/CLI.d.ts.map +1 -1
  24. package/lib/cli/CLI.js.map +1 -1
  25. package/lib/cli/bin-init.js +0 -2
  26. package/lib/cli/bin-init.js.map +1 -1
  27. package/lib/cli/index.d.ts.map +1 -1
  28. package/lib/cli/index.js +1 -12
  29. package/lib/cli/index.js.map +1 -1
  30. package/lib/cli/runCLI.d.ts.map +1 -1
  31. package/lib/cli/runCLI.js.map +1 -1
  32. package/lib/commands/add/command.d.ts +1 -4
  33. package/lib/commands/add/command.d.ts.map +1 -1
  34. package/lib/commands/add/command.js +3 -2
  35. package/lib/commands/add/command.js.map +1 -1
  36. package/lib/commands/analyze/command.d.ts +1 -1
  37. package/lib/commands/analyze/command.d.ts.map +1 -1
  38. package/lib/commands/analyze/command.js +11 -13
  39. package/lib/commands/analyze/command.js.map +1 -1
  40. package/lib/commands/benchmark/command.d.ts +1 -1
  41. package/lib/commands/benchmark/command.d.ts.map +1 -1
  42. package/lib/commands/benchmark/command.js +8 -9
  43. package/lib/commands/benchmark/command.js.map +1 -1
  44. package/lib/commands/build/build.d.ts.map +1 -1
  45. package/lib/commands/build/build.js +1 -0
  46. package/lib/commands/build/build.js.map +1 -1
  47. package/lib/commands/build/command.d.ts +1 -1
  48. package/lib/commands/build/command.d.ts.map +1 -1
  49. package/lib/commands/build/command.js +12 -15
  50. package/lib/commands/build/command.js.map +1 -1
  51. package/lib/commands/generate/command.d.ts +1 -1
  52. package/lib/commands/generate/command.d.ts.map +1 -1
  53. package/lib/commands/generate/command.js +3 -2
  54. package/lib/commands/generate/command.js.map +1 -1
  55. package/lib/commands/lint/command.d.ts +1 -1
  56. package/lib/commands/lint/command.d.ts.map +1 -1
  57. package/lib/commands/lint/command.js +3 -2
  58. package/lib/commands/lint/command.js.map +1 -1
  59. package/lib/commands/new/command.d.ts +0 -1
  60. package/lib/commands/new/command.d.ts.map +1 -1
  61. package/lib/commands/new/command.js +0 -1
  62. package/lib/commands/new/command.js.map +1 -1
  63. package/lib/commands/new/steps/installDependencies.js +3 -3
  64. package/lib/commands/new/steps/installDependencies.js.map +1 -1
  65. package/lib/commands/start/command.d.ts +1 -1
  66. package/lib/commands/start/command.d.ts.map +1 -1
  67. package/lib/commands/start/command.js +18 -15
  68. package/lib/commands/start/command.js.map +1 -1
  69. package/lib/commands/start-prod/command.d.ts +1 -1
  70. package/lib/commands/start-prod/command.d.ts.map +1 -1
  71. package/lib/commands/start-prod/command.js +11 -13
  72. package/lib/commands/start-prod/command.js.map +1 -1
  73. package/lib/commands/static/command.d.ts +1 -1
  74. package/lib/commands/static/command.d.ts.map +1 -1
  75. package/lib/commands/static/command.js +7 -3
  76. package/lib/commands/static/command.js.map +1 -1
  77. package/lib/commands/update/command.d.ts +1 -4
  78. package/lib/commands/update/command.d.ts.map +1 -1
  79. package/lib/commands/update/command.js +3 -2
  80. package/lib/commands/update/command.js.map +1 -1
  81. package/lib/external/config.d.ts.map +1 -1
  82. package/lib/external/config.js.map +1 -1
  83. package/lib/library/babel/index.d.ts +3 -9
  84. package/lib/library/babel/index.d.ts.map +1 -1
  85. package/lib/library/babel/index.js +3 -132
  86. package/lib/library/babel/index.js.map +1 -1
  87. package/lib/library/swc/index.d.ts +3 -3
  88. package/lib/library/swc/index.d.ts.map +1 -1
  89. package/lib/library/swc/index.js +4 -114
  90. package/lib/library/swc/index.js.map +1 -1
  91. package/lib/library/webpack/application/client/common.d.ts.map +1 -1
  92. package/lib/library/webpack/application/client/common.js +10 -9
  93. package/lib/library/webpack/application/client/common.js.map +1 -1
  94. package/lib/library/webpack/application/common.d.ts.map +1 -1
  95. package/lib/library/webpack/application/common.js +3 -4
  96. package/lib/library/webpack/application/common.js.map +1 -1
  97. package/lib/library/webpack/blocks/pwa/client.d.ts.map +1 -1
  98. package/lib/library/webpack/blocks/pwa/client.js +9 -58
  99. package/lib/library/webpack/blocks/pwa/client.js.map +1 -1
  100. package/lib/library/webpack/blocks/resolve.d.ts.map +1 -1
  101. package/lib/library/webpack/blocks/resolve.js +1 -0
  102. package/lib/library/webpack/blocks/resolve.js.map +1 -1
  103. package/lib/library/webpack/child-app/client/common.d.ts.map +1 -1
  104. package/lib/library/webpack/child-app/client/common.js +2 -2
  105. package/lib/library/webpack/child-app/client/common.js.map +1 -1
  106. package/lib/library/webpack/child-app/common.d.ts.map +1 -1
  107. package/lib/library/webpack/child-app/common.js +3 -4
  108. package/lib/library/webpack/child-app/common.js.map +1 -1
  109. package/lib/library/webpack/utils/threadLoader.d.ts.map +1 -1
  110. package/lib/library/webpack/utils/threadLoader.js +20 -3
  111. package/lib/library/webpack/utils/threadLoader.js.map +1 -1
  112. package/lib/library/webpack/utils/transpiler.js +1 -1
  113. package/lib/library/webpack/utils/transpiler.js.map +1 -1
  114. package/lib/models/analytics/utils.d.ts +2 -1
  115. package/lib/models/analytics/utils.d.ts.map +1 -1
  116. package/lib/models/analytics/utils.js +3 -0
  117. package/lib/models/analytics/utils.js.map +1 -1
  118. package/lib/models/command.d.ts +1 -1
  119. package/lib/models/command.d.ts.map +1 -1
  120. package/lib/models/command.js +1 -1
  121. package/lib/models/command.js.map +1 -1
  122. package/lib/models/context.d.ts +1 -1
  123. package/lib/models/context.d.ts.map +1 -1
  124. package/lib/models/logger.d.ts +0 -1
  125. package/lib/models/logger.d.ts.map +1 -1
  126. package/lib/models/logger.js +2 -3
  127. package/lib/models/logger.js.map +1 -1
  128. package/lib/schema/autogeneratedSchema.json +15 -15
  129. package/lib/typings/configEntry/application.d.ts +1 -1
  130. package/lib/typings/configEntry/application.d.ts.map +1 -1
  131. package/lib/typings/public.d.ts +0 -1
  132. package/lib/typings/public.d.ts.map +1 -1
  133. package/lib/typings/public.js +0 -2
  134. package/lib/typings/public.js.map +1 -1
  135. package/lib/utils/cpu-profile.d.ts.map +1 -1
  136. package/lib/utils/cpu-profile.js +0 -1
  137. package/lib/utils/cpu-profile.js.map +1 -1
  138. package/package.json +23 -27
  139. package/schema.json +15 -15
  140. package/src/api/start/__integration__/start.test.ts +8 -0
  141. package/src/api/start/application.experimental.ts +305 -0
  142. package/src/api/start/index.ts +20 -4
  143. package/src/builder/webpack/devServer/setup.ts +1 -0
  144. package/src/builder/webpack/providers/analyze/shared.ts +6 -10
  145. package/src/builder/webpack/providers/client.ts +15 -10
  146. package/src/builder/webpack/providers/server.ts +15 -10
  147. package/src/cli/CLI.ts +1 -1
  148. package/src/cli/bin-init.ts +0 -2
  149. package/src/cli/index.ts +4 -11
  150. package/src/cli/runCLI.ts +0 -1
  151. package/src/commands/add/command.ts +3 -2
  152. package/src/commands/analyze/command.ts +12 -14
  153. package/src/commands/benchmark/command.ts +9 -10
  154. package/src/commands/build/build.ts +2 -0
  155. package/src/commands/build/command.ts +13 -16
  156. package/src/commands/generate/command.ts +3 -2
  157. package/src/commands/lint/command.ts +3 -2
  158. package/src/commands/new/command.ts +0 -2
  159. package/src/commands/new/steps/installDependencies.ts +3 -3
  160. package/src/commands/new/templates/shared/_prettierrc.js.hbs +1 -1
  161. package/src/commands/start/command.ts +20 -16
  162. package/src/commands/start-prod/command.ts +12 -14
  163. package/src/commands/static/command.ts +7 -3
  164. package/src/commands/update/command.ts +3 -2
  165. package/src/external/config.ts +1 -0
  166. package/src/library/babel/index.ts +3 -160
  167. package/src/library/swc/__integration__/__snapshots__/swc.build.test.ts.snap +46 -28
  168. package/src/library/swc/__integration__/__snapshots__/swc.start.test.ts.snap +12 -8
  169. package/src/library/swc/__integration__/swc.start.test.ts +4 -4
  170. package/src/library/swc/index.ts +3 -139
  171. package/src/library/webpack/application/client/common.ts +12 -7
  172. package/src/library/webpack/application/common.ts +8 -4
  173. package/src/library/webpack/blocks/pwa/client.ts +13 -64
  174. package/src/library/webpack/blocks/resolve.ts +1 -0
  175. package/src/library/webpack/child-app/client/common.ts +2 -2
  176. package/src/library/webpack/child-app/common.ts +7 -5
  177. package/src/library/webpack/utils/threadLoader.ts +21 -0
  178. package/src/library/webpack/utils/transpiler.ts +2 -2
  179. package/src/models/analytics/utils.ts +6 -2
  180. package/src/models/command.ts +3 -4
  181. package/src/models/context.ts +1 -1
  182. package/src/models/logger.ts +1 -3
  183. package/src/schema/autogeneratedSchema.json +15 -15
  184. package/src/typings/configEntry/application.ts +5 -1
  185. package/src/typings/public.ts +0 -2
  186. package/src/utils/cpu-profile.ts +0 -1
  187. package/lib/library/babel/plugins/create-token-pure.d.ts +0 -7
  188. package/lib/library/babel/plugins/create-token-pure.d.ts.map +0 -1
  189. package/lib/library/babel/plugins/create-token-pure.js +0 -39
  190. package/lib/library/babel/plugins/create-token-pure.js.map +0 -1
  191. package/lib/library/babel/plugins/fill-action-name.d.ts +0 -3
  192. package/lib/library/babel/plugins/fill-action-name.d.ts.map +0 -1
  193. package/lib/library/babel/plugins/fill-action-name.js +0 -107
  194. package/lib/library/babel/plugins/fill-action-name.js.map +0 -1
  195. package/lib/library/babel/plugins/fill-declare-action-name.d.ts +0 -6
  196. package/lib/library/babel/plugins/fill-declare-action-name.d.ts.map +0 -1
  197. package/lib/library/babel/plugins/fill-declare-action-name.js +0 -94
  198. package/lib/library/babel/plugins/fill-declare-action-name.js.map +0 -1
  199. package/lib/library/babel/plugins/lazy-component/lazy-component.d.ts +0 -7
  200. package/lib/library/babel/plugins/lazy-component/lazy-component.d.ts.map +0 -1
  201. package/lib/library/babel/plugins/lazy-component/lazy-component.js +0 -75
  202. package/lib/library/babel/plugins/lazy-component/lazy-component.js.map +0 -1
  203. package/lib/library/babel/plugins/lazy-component/legacy-universal-replace.d.ts +0 -14
  204. package/lib/library/babel/plugins/lazy-component/legacy-universal-replace.d.ts.map +0 -1
  205. package/lib/library/babel/plugins/lazy-component/legacy-universal-replace.js +0 -53
  206. package/lib/library/babel/plugins/lazy-component/legacy-universal-replace.js.map +0 -1
  207. package/lib/library/babel/plugins/lazy-component/properties/chunkName.d.ts +0 -3
  208. package/lib/library/babel/plugins/lazy-component/properties/chunkName.d.ts.map +0 -1
  209. package/lib/library/babel/plugins/lazy-component/properties/chunkName.js +0 -133
  210. package/lib/library/babel/plugins/lazy-component/properties/chunkName.js.map +0 -1
  211. package/lib/library/babel/plugins/lazy-component/properties/importAsync.d.ts +0 -3
  212. package/lib/library/babel/plugins/lazy-component/properties/importAsync.d.ts.map +0 -1
  213. package/lib/library/babel/plugins/lazy-component/properties/importAsync.js +0 -11
  214. package/lib/library/babel/plugins/lazy-component/properties/importAsync.js.map +0 -1
  215. package/lib/library/babel/plugins/lazy-component/properties/isReady.d.ts +0 -3
  216. package/lib/library/babel/plugins/lazy-component/properties/isReady.d.ts.map +0 -1
  217. package/lib/library/babel/plugins/lazy-component/properties/isReady.js +0 -14
  218. package/lib/library/babel/plugins/lazy-component/properties/isReady.js.map +0 -1
  219. package/lib/library/babel/plugins/lazy-component/properties/requireAsync.d.ts +0 -3
  220. package/lib/library/babel/plugins/lazy-component/properties/requireAsync.d.ts.map +0 -1
  221. package/lib/library/babel/plugins/lazy-component/properties/requireAsync.js +0 -15
  222. package/lib/library/babel/plugins/lazy-component/properties/requireAsync.js.map +0 -1
  223. package/lib/library/babel/plugins/lazy-component/properties/requireSync.d.ts +0 -3
  224. package/lib/library/babel/plugins/lazy-component/properties/requireSync.d.ts.map +0 -1
  225. package/lib/library/babel/plugins/lazy-component/properties/requireSync.js +0 -16
  226. package/lib/library/babel/plugins/lazy-component/properties/requireSync.js.map +0 -1
  227. package/lib/library/babel/plugins/lazy-component/properties/resolve.d.ts +0 -3
  228. package/lib/library/babel/plugins/lazy-component/properties/resolve.d.ts.map +0 -1
  229. package/lib/library/babel/plugins/lazy-component/properties/resolve.js +0 -14
  230. package/lib/library/babel/plugins/lazy-component/properties/resolve.js.map +0 -1
  231. package/lib/library/babel/plugins/lazy-component/properties/types.d.ts +0 -14
  232. package/lib/library/babel/plugins/lazy-component/properties/types.d.ts.map +0 -1
  233. package/lib/library/babel/plugins/lazy-component/properties/types.js +0 -3
  234. package/lib/library/babel/plugins/lazy-component/properties/types.js.map +0 -1
  235. package/lib/library/babel/plugins/lazy-component/properties/utils/webpackComments.d.ts +0 -14
  236. package/lib/library/babel/plugins/lazy-component/properties/utils/webpackComments.d.ts.map +0 -1
  237. package/lib/library/babel/plugins/lazy-component/properties/utils/webpackComments.js +0 -57
  238. package/lib/library/babel/plugins/lazy-component/properties/utils/webpackComments.js.map +0 -1
  239. package/lib/library/babel/plugins/provider-stack.d.ts +0 -4
  240. package/lib/library/babel/plugins/provider-stack.d.ts.map +0 -1
  241. package/lib/library/babel/plugins/provider-stack.js +0 -63
  242. package/lib/library/babel/plugins/provider-stack.js.map +0 -1
  243. package/lib/library/babel/plugins/react-compiler.d.ts +0 -13
  244. package/lib/library/babel/plugins/react-compiler.d.ts.map +0 -1
  245. package/lib/library/babel/plugins/react-compiler.js +0 -27
  246. package/lib/library/babel/plugins/react-compiler.js.map +0 -1
  247. package/lib/library/babel/plugins/react-element-info-unique.d.ts +0 -26
  248. package/lib/library/babel/plugins/react-element-info-unique.d.ts.map +0 -1
  249. package/lib/library/babel/plugins/react-element-info-unique.js +0 -112
  250. package/lib/library/babel/plugins/react-element-info-unique.js.map +0 -1
  251. package/lib/library/babel/plugins/types.h.d.ts +0 -7
  252. package/lib/library/babel/plugins/types.h.d.ts.map +0 -1
  253. package/lib/library/babel/plugins/types.h.js +0 -3
  254. package/lib/library/babel/plugins/types.h.js.map +0 -1
  255. package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.d.ts +0 -8
  256. package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.d.ts.map +0 -1
  257. package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.js +0 -29
  258. package/lib/library/webpack/plugins/AssetsIntegritiesPlugin.js.map +0 -1
  259. package/lib/library/webpack/plugins/AutoPublicPathPlugin.d.ts +0 -4
  260. package/lib/library/webpack/plugins/AutoPublicPathPlugin.d.ts.map +0 -1
  261. package/lib/library/webpack/plugins/AutoPublicPathPlugin.js +0 -23
  262. package/lib/library/webpack/plugins/AutoPublicPathPlugin.js.map +0 -1
  263. package/lib/library/webpack/plugins/ModuleFederationFixRange.d.ts +0 -24
  264. package/lib/library/webpack/plugins/ModuleFederationFixRange.d.ts.map +0 -1
  265. package/lib/library/webpack/plugins/ModuleFederationFixRange.js +0 -127
  266. package/lib/library/webpack/plugins/ModuleFederationFixRange.js.map +0 -1
  267. package/lib/library/webpack/plugins/ModuleFederationIgnoreEntries.d.ts +0 -15
  268. package/lib/library/webpack/plugins/ModuleFederationIgnoreEntries.d.ts.map +0 -1
  269. package/lib/library/webpack/plugins/ModuleFederationIgnoreEntries.js +0 -49
  270. package/lib/library/webpack/plugins/ModuleFederationIgnoreEntries.js.map +0 -1
  271. package/lib/library/webpack/plugins/PolyfillCondition.d.ts +0 -8
  272. package/lib/library/webpack/plugins/PolyfillCondition.d.ts.map +0 -1
  273. package/lib/library/webpack/plugins/PolyfillCondition.js +0 -46
  274. package/lib/library/webpack/plugins/PolyfillCondition.js.map +0 -1
  275. package/lib/library/webpack/plugins/PurifyStatsPlugin.d.ts +0 -15
  276. package/lib/library/webpack/plugins/PurifyStatsPlugin.d.ts.map +0 -1
  277. package/lib/library/webpack/plugins/PurifyStatsPlugin.js +0 -47
  278. package/lib/library/webpack/plugins/PurifyStatsPlugin.js.map +0 -1
  279. package/lib/library/webpack/plugins/PwaIconsPlugin.d.ts +0 -12
  280. package/lib/library/webpack/plugins/PwaIconsPlugin.d.ts.map +0 -1
  281. package/lib/library/webpack/plugins/PwaIconsPlugin.js +0 -78
  282. package/lib/library/webpack/plugins/PwaIconsPlugin.js.map +0 -1
  283. package/lib/library/webpack/plugins/WebManifestPlugin.d.ts +0 -13
  284. package/lib/library/webpack/plugins/WebManifestPlugin.d.ts.map +0 -1
  285. package/lib/library/webpack/plugins/WebManifestPlugin.js +0 -47
  286. package/lib/library/webpack/plugins/WebManifestPlugin.js.map +0 -1
  287. package/lib/library/webpack/utils/polyfills/const.d.ts +0 -3
  288. package/lib/library/webpack/utils/polyfills/const.d.ts.map +0 -1
  289. package/lib/library/webpack/utils/polyfills/const.js +0 -49
  290. package/lib/library/webpack/utils/polyfills/const.js.map +0 -1
  291. package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts +0 -8
  292. package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts.map +0 -1
  293. package/lib/library/webpack/utils/polyfills/polyfillCondition.js +0 -51
  294. package/lib/library/webpack/utils/polyfills/polyfillCondition.js.map +0 -1
  295. package/lib/library/webpack/utils/polyfills/specToFeature.d.ts +0 -7
  296. package/lib/library/webpack/utils/polyfills/specToFeature.d.ts.map +0 -1
  297. package/lib/library/webpack/utils/polyfills/specToFeature.js +0 -207
  298. package/lib/library/webpack/utils/polyfills/specToFeature.js.map +0 -1
  299. package/lib/models/analytics/analytics.d.ts +0 -156
  300. package/lib/models/analytics/analytics.d.ts.map +0 -1
  301. package/lib/models/analytics/analytics.js +0 -259
  302. package/lib/models/analytics/analytics.js.map +0 -1
  303. package/lib/models/analytics/analytics.worker.d.ts +0 -5
  304. package/lib/models/analytics/analytics.worker.d.ts.map +0 -1
  305. package/lib/models/analytics/analytics.worker.js +0 -87
  306. package/lib/models/analytics/analytics.worker.js.map +0 -1
  307. package/lib/typings/pwa/index.d.ts +0 -80
  308. package/lib/typings/pwa/index.d.ts.map +0 -1
  309. package/lib/typings/pwa/index.js +0 -3
  310. package/lib/typings/pwa/index.js.map +0 -1
  311. package/lib/utils/errors.d.ts +0 -7
  312. package/lib/utils/errors.d.ts.map +0 -1
  313. package/lib/utils/errors.js +0 -43
  314. package/lib/utils/errors.js.map +0 -1
  315. package/lib/utils/memoryUsage.d.ts +0 -20
  316. package/lib/utils/memoryUsage.d.ts.map +0 -1
  317. package/lib/utils/memoryUsage.js +0 -51
  318. package/lib/utils/memoryUsage.js.map +0 -1
  319. package/lib/utils/sentry.d.ts +0 -2
  320. package/lib/utils/sentry.d.ts.map +0 -1
  321. package/lib/utils/sentry.js +0 -27
  322. package/lib/utils/sentry.js.map +0 -1
  323. package/src/library/babel/plugins/__fixtures__/create-token-pure/already-has-comment.ts +0 -5
  324. package/src/library/babel/plugins/__fixtures__/create-token-pure/do-nothing.ts +0 -10
  325. package/src/library/babel/plugins/__fixtures__/create-token-pure/from-core.ts +0 -5
  326. package/src/library/babel/plugins/__fixtures__/create-token-pure/from-dippy.ts +0 -5
  327. package/src/library/babel/plugins/__fixtures__/create-token-pure/many-imports.ts +0 -9
  328. package/src/library/babel/plugins/__fixtures__/fill-declare-action-name/import-mixed.ts +0 -17
  329. package/src/library/babel/plugins/__fixtures__/fill-declare-action-name/import-with-name.ts +0 -28
  330. package/src/library/babel/plugins/__fixtures__/fill-declare-action-name/import-without-name.ts +0 -25
  331. package/src/library/babel/plugins/__fixtures__/fill-declare-action-name/require-with-name.ts +0 -21
  332. package/src/library/babel/plugins/__fixtures__/fill-declare-action-name/require-without-name.ts +0 -19
  333. package/src/library/babel/plugins/__fixtures__/lazy-component/base.ts +0 -3
  334. package/src/library/babel/plugins/__fixtures__/lazy-component/cmp.tsx +0 -7
  335. package/src/library/babel/plugins/__fixtures__/lazy-component/comments.ts +0 -7
  336. package/src/library/babel/plugins/__fixtures__/lazy-component/dynamic.ts +0 -3
  337. package/src/library/babel/plugins/__fixtures__/lazy-component/inner/first.tsx +0 -7
  338. package/src/library/babel/plugins/__fixtures__/lazy-component/inner/path/cmp.tsx +0 -7
  339. package/src/library/babel/plugins/__fixtures__/lazy-component/inner/second.tsx +0 -7
  340. package/src/library/babel/plugins/__fixtures__/lazy-component/inner/third.tsx +0 -7
  341. package/src/library/babel/plugins/__fixtures__/lazy-component/lazy+hmr.ts +0 -3
  342. package/src/library/babel/plugins/__fixtures__/lazy-component/long-import.ts +0 -3
  343. package/src/library/babel/plugins/__fixtures__/lazy-component/not-lazy-import.ts +0 -7
  344. package/src/library/babel/plugins/__fixtures__/lazy-component/not-lazy.ts +0 -8
  345. package/src/library/babel/plugins/__fixtures__/legacy-universal-replace/cmp.tsx +0 -7
  346. package/src/library/babel/plugins/__fixtures__/legacy-universal-replace/not-universal.ts +0 -8
  347. package/src/library/babel/plugins/__fixtures__/legacy-universal-replace/platform-legacy.ts +0 -5
  348. package/src/library/babel/plugins/__fixtures__/legacy-universal-replace/react-universal.ts +0 -3
  349. package/src/library/babel/plugins/__fixtures__/legacy-universal-replace/tramvai/react/index.es.ts +0 -3
  350. package/src/library/babel/plugins/__fixtures__/provider-stack/add-stack.ts +0 -22
  351. package/src/library/babel/plugins/__fixtures__/provider-stack/check-function-name.ts +0 -10
  352. package/src/library/babel/plugins/__fixtures__/provider-stack/do-nothing.ts +0 -16
  353. package/src/library/babel/plugins/__fixtures__/provider-stack/error-in-scope.ts +0 -24
  354. package/src/library/babel/plugins/__fixtures__/provider-stack/inside-await.ts +0 -12
  355. package/src/library/babel/plugins/__fixtures__/provider-stack/module-decorator.ts +0 -27
  356. package/src/library/babel/plugins/__snapshots__/create-token-pure.spec.ts.snap +0 -108
  357. package/src/library/babel/plugins/__snapshots__/fill-declare-action-name.spec.ts.snap +0 -264
  358. package/src/library/babel/plugins/__snapshots__/provider-stack.spec.ts.snap +0 -362
  359. package/src/library/babel/plugins/create-token-pure.spec.ts +0 -39
  360. package/src/library/babel/plugins/create-token-pure.ts +0 -47
  361. package/src/library/babel/plugins/fill-action-name.ts +0 -126
  362. package/src/library/babel/plugins/fill-declare-action-name.spec.ts +0 -37
  363. package/src/library/babel/plugins/fill-declare-action-name.ts +0 -110
  364. package/src/library/babel/plugins/lazy-component/__snapshots__/lazy-component.spec.ts.snap +0 -313
  365. package/src/library/babel/plugins/lazy-component/__snapshots__/legacy-universal-replace.spec.ts.snap +0 -114
  366. package/src/library/babel/plugins/lazy-component/lazy-component.spec.ts +0 -46
  367. package/src/library/babel/plugins/lazy-component/lazy-component.ts +0 -91
  368. package/src/library/babel/plugins/lazy-component/legacy-universal-replace.spec.ts +0 -33
  369. package/src/library/babel/plugins/lazy-component/legacy-universal-replace.ts +0 -88
  370. package/src/library/babel/plugins/lazy-component/properties/chunkName.ts +0 -185
  371. package/src/library/babel/plugins/lazy-component/properties/importAsync.ts +0 -8
  372. package/src/library/babel/plugins/lazy-component/properties/isReady.ts +0 -19
  373. package/src/library/babel/plugins/lazy-component/properties/requireAsync.ts +0 -20
  374. package/src/library/babel/plugins/lazy-component/properties/requireSync.ts +0 -21
  375. package/src/library/babel/plugins/lazy-component/properties/resolve.ts +0 -21
  376. package/src/library/babel/plugins/lazy-component/properties/types.ts +0 -20
  377. package/src/library/babel/plugins/lazy-component/properties/utils/webpackComments.ts +0 -61
  378. package/src/library/babel/plugins/provider-stack.spec.ts +0 -55
  379. package/src/library/babel/plugins/provider-stack.ts +0 -88
  380. package/src/library/babel/plugins/react-compiler.ts +0 -39
  381. package/src/library/babel/plugins/react-element-info-unique.ts +0 -144
  382. package/src/library/babel/plugins/types.h.ts +0 -8
  383. package/src/library/webpack/plugins/AssetsIntegritiesPlugin.ts +0 -34
  384. package/src/library/webpack/plugins/AutoPublicPathPlugin.ts +0 -23
  385. package/src/library/webpack/plugins/ModuleFederationFixRange.ts +0 -181
  386. package/src/library/webpack/plugins/ModuleFederationIgnoreEntries.ts +0 -59
  387. package/src/library/webpack/plugins/PolyfillCondition.ts +0 -62
  388. package/src/library/webpack/plugins/PurifyStatsPlugin.ts +0 -57
  389. package/src/library/webpack/plugins/PwaIconsPlugin.ts +0 -94
  390. package/src/library/webpack/plugins/WebManifestPlugin.ts +0 -62
  391. package/src/library/webpack/utils/polyfills/__integration__/__snapshots__/condition.test.ts.snap +0 -1348
  392. package/src/library/webpack/utils/polyfills/__integration__/condition.test.ts +0 -128
  393. package/src/library/webpack/utils/polyfills/const.ts +0 -46
  394. package/src/library/webpack/utils/polyfills/polyfillCondition.ts +0 -63
  395. package/src/library/webpack/utils/polyfills/specToFeature.ts +0 -243
  396. package/src/models/analytics/analytics.ts +0 -488
  397. package/src/models/analytics/analytics.worker.ts +0 -102
  398. package/src/typings/pwa/index.ts +0 -83
  399. package/src/utils/errors.ts +0 -39
  400. package/src/utils/memoryUsage.ts +0 -58
  401. package/src/utils/sentry.ts +0 -25
@@ -1,88 +0,0 @@
1
- import type { Identifier } from '@babel/types';
2
- import type { Plugin } from '../types.h';
3
-
4
- interface InnerState {
5
- legacyImport: string;
6
- lazyIdentifier: Identifier;
7
- file: {
8
- opts: {
9
- filename: string;
10
- };
11
- };
12
- }
13
-
14
- export const legacyUniversalReplace: Plugin<InnerState> = (api) => {
15
- const { types: t } = api;
16
-
17
- return {
18
- visitor: {
19
- // находим импорты `import universal from 'react-universal-component'` или `import async from '/decorators/asyncUniversal`
20
- ImportDeclaration(path) {
21
- const { filename } = this.file.opts;
22
-
23
- const isTramvaiReact = /tramvai\/react/.test(filename);
24
-
25
- const { value: source } = path.get('source').node;
26
- if (
27
- source === 'react-universal-component' ||
28
- /\/decorators\/asyncUniversal(\.js)?$/.test(source)
29
- ) {
30
- const specifiers = path.get('specifiers');
31
-
32
- if (isTramvaiReact) {
33
- path.replaceWith(
34
- t.importDeclaration(
35
- [t.importDefaultSpecifier(t.identifier('universal'))],
36
- t.stringLiteral('@loadable/component')
37
- )
38
- );
39
-
40
- return;
41
- }
42
-
43
- for (const specifier of specifiers) {
44
- if (t.isImportDefaultSpecifier(specifier.node)) {
45
- this.legacyImport = specifier.node.local.name;
46
- }
47
- }
48
-
49
- if (this.legacyImport) {
50
- const oldImport = path.node;
51
-
52
- this.lazyIdentifier = path.scope.generateUidIdentifier('lazy');
53
-
54
- path.replaceWith(
55
- t.importDeclaration(
56
- [t.importSpecifier(this.lazyIdentifier, t.identifier('lazy'))],
57
- t.stringLiteral('@tramvai/react')
58
- )
59
- );
60
-
61
- if (specifiers.length > 1) {
62
- // возвращаем старый импорт на место, если вдруг используются другие импорты из legacy файла
63
- path.insertBefore(oldImport);
64
- }
65
- }
66
- }
67
- },
68
- CallExpression(path) {
69
- if (!this.legacyImport) {
70
- // если импорт не был найден, то нет смысла работать с файлом дальше
71
- return;
72
- }
73
-
74
- if (path.get('callee').isIdentifier({ name: this.legacyImport })) {
75
- const impPath = path.get('arguments')[0];
76
-
77
- if (impPath.isCallExpression() && impPath.get('callee').isImport()) {
78
- path.replaceWith(
79
- t.callExpression(this.lazyIdentifier, [t.arrowFunctionExpression([], impPath.node)])
80
- );
81
- }
82
- }
83
- },
84
- },
85
- };
86
- };
87
-
88
- export default legacyUniversalReplace;
@@ -1,185 +0,0 @@
1
- import type { NodePath } from '@babel/core';
2
- import type {
3
- BinaryExpression,
4
- CallExpression,
5
- Expression,
6
- StringLiteral,
7
- TemplateElement,
8
- TemplateLiteral,
9
- } from '@babel/types';
10
- import type { ImportPath, PropertyFactory } from './types';
11
- import type { WebpackComments } from './utils/webpackComments';
12
- import { generateWebpackComments, parseWebpackComments } from './utils/webpackComments';
13
-
14
- const JS_PATH_REGEXP = /^[./]+|(\.js$)/g;
15
- const MATCH_LEFT_HYPHENS_REPLACE_REGEX = /^-/g;
16
- const WEBPACK_CHUNK_NAME_REGEXP = /webpackChunkName/;
17
- const WEBPACK_PATH_NAME_NORMALIZE_REPLACE_REGEX = /[^a-zA-Z0-9_!§$()=\-^°]+/g;
18
- const WEBPACK_MATCH_PADDED_HYPHENS_REPLACE_REGEX = /^-|-$/g;
19
-
20
- const getChunkNameComment = (importArg: NodePath) => {
21
- const comments = importArg.node.leadingComments;
22
-
23
- if (!comments) return null;
24
-
25
- return comments.find((comment) => comment.value.match(WEBPACK_CHUNK_NAME_REGEXP));
26
- };
27
-
28
- const getRawChunkNameFromComments = (importArg: NodePath) => {
29
- const chunkNameComment = getChunkNameComment(importArg);
30
-
31
- if (!chunkNameComment) return null;
32
-
33
- return parseWebpackComments(chunkNameComment.value);
34
- };
35
-
36
- const moduleToChunk = (str?: string) => {
37
- if (typeof str !== 'string') return '';
38
-
39
- return str
40
- .replace(JS_PATH_REGEXP, '')
41
- .replace(WEBPACK_PATH_NAME_NORMALIZE_REPLACE_REGEX, '-')
42
- .replace(WEBPACK_MATCH_PADDED_HYPHENS_REPLACE_REGEX, '');
43
- };
44
-
45
- const replaceQuasi = (str: string, stripLeftHyphen: boolean) => {
46
- if (!str) return '';
47
- const result = str.replace(WEBPACK_PATH_NAME_NORMALIZE_REPLACE_REGEX, '-');
48
- if (!stripLeftHyphen) return result;
49
- return result.replace(MATCH_LEFT_HYPHENS_REPLACE_REGEX, '');
50
- };
51
-
52
- const getChunkNamePrefix = (chunkName?: string) => {
53
- if (typeof chunkName !== 'string') return '';
54
- const match = chunkName.match(/(.+?)\[(request|index)\]$/);
55
- return match ? match[1] : '';
56
- };
57
-
58
- const getImportArg = (importPath: ImportPath) => {
59
- const arg = importPath.get('arguments')[0];
60
-
61
- if (arg.isStringLiteral() || arg.isTemplateLiteral()) {
62
- return arg;
63
- }
64
- };
65
-
66
- // высчитывает имя чанка, учитывая разные кейсы нейминга и использование динамических испортов на основании пропсов
67
- // также добавляет комментарий для webpack чтобы это имя чанка использовалось для файла
68
- export const chunkNameMethod: PropertyFactory = ({ types: t }) => {
69
- const transformQuasi = (quasi: TemplateElement, first: boolean, single: boolean) => {
70
- return t.templateElement(
71
- {
72
- raw: single ? moduleToChunk(quasi.value.raw) : replaceQuasi(quasi.value.raw, first),
73
- cooked: single
74
- ? moduleToChunk(quasi.value.cooked)
75
- : replaceQuasi(quasi.value.cooked, first),
76
- },
77
- quasi.tail
78
- );
79
- };
80
-
81
- const sanitizeChunkNameTemplateLiteral = (node: Expression) => {
82
- return t.callExpression(t.memberExpression(node, t.identifier('replace')), [
83
- t.regExpLiteral(WEBPACK_PATH_NAME_NORMALIZE_REPLACE_REGEX.source, 'g'),
84
- t.stringLiteral('-'),
85
- ]);
86
- };
87
-
88
- const combineExpressions = (node: TemplateLiteral) => {
89
- const expressions = node.expressions as Expression[];
90
- const { length } = expressions;
91
-
92
- if (length === 1) {
93
- return expressions[0];
94
- }
95
-
96
- return expressions.slice(1).reduce((r, p) => t.binaryExpression('+', r, p), expressions[0]);
97
- };
98
-
99
- const generateChunkNameNode = (importPath: ImportPath, prefix?: string) => {
100
- const importArg = getImportArg(importPath);
101
- if (importArg.isTemplateLiteral()) {
102
- return prefix
103
- ? t.binaryExpression(
104
- '+',
105
- t.stringLiteral(prefix),
106
- sanitizeChunkNameTemplateLiteral(combineExpressions(importArg.node))
107
- )
108
- : t.templateLiteral(
109
- importArg.node.quasis.map((quasi, index) =>
110
- transformQuasi(quasi, index === 0, importArg.node.quasis.length === 1)
111
- ),
112
- importArg.node.expressions
113
- );
114
- }
115
- return t.stringLiteral(moduleToChunk(importArg.node.value));
116
- };
117
-
118
- const getExistingChunkNameComment = (importPath: ImportPath) => {
119
- const importArg = getImportArg(importPath);
120
- const values = getRawChunkNameFromComments(importArg);
121
-
122
- return values;
123
- };
124
-
125
- const isAggressiveImport = (importPath: ImportPath) => {
126
- const importArg = getImportArg(importPath);
127
-
128
- return importArg.isTemplateLiteral() && importArg.node.expressions.length > 0;
129
- };
130
-
131
- const addOrReplaceChunkNameComment = (importPath: ImportPath, values: WebpackComments) => {
132
- const importArg = getImportArg(importPath);
133
- const chunkNameComment = getChunkNameComment(importArg);
134
-
135
- if (chunkNameComment) {
136
- t.removeComments(importArg.node);
137
- }
138
-
139
- importArg.addComment('leading', generateWebpackComments(values));
140
- };
141
-
142
- const chunkNameFromTemplateLiteral = (node: TemplateLiteral) => {
143
- const [q1] = node.quasis;
144
- const v1 = q1 ? q1.value.cooked : '';
145
-
146
- if (!node.expressions.length) return v1;
147
-
148
- return `${v1}[request]`;
149
- };
150
-
151
- const replaceChunkName = (importPath: ImportPath) => {
152
- const aggressiveImport = isAggressiveImport(importPath);
153
- const values = getExistingChunkNameComment(importPath);
154
- let { webpackChunkName } = values || {};
155
-
156
- if (!aggressiveImport && values) {
157
- addOrReplaceChunkNameComment(importPath, values);
158
- return t.stringLiteral(webpackChunkName);
159
- }
160
-
161
- let chunkNameNode: CallExpression | TemplateLiteral | StringLiteral | BinaryExpression =
162
- generateChunkNameNode(importPath, getChunkNamePrefix(webpackChunkName));
163
-
164
- if (t.isTemplateLiteral(chunkNameNode)) {
165
- webpackChunkName = chunkNameFromTemplateLiteral(chunkNameNode);
166
- chunkNameNode = sanitizeChunkNameTemplateLiteral(chunkNameNode);
167
- } else if (t.isStringLiteral(chunkNameNode)) {
168
- webpackChunkName = chunkNameNode.value;
169
- }
170
-
171
- addOrReplaceChunkNameComment(importPath, { ...values, webpackChunkName });
172
- return chunkNameNode;
173
- };
174
-
175
- return ({ funcPath, importPath }) => {
176
- const chunkName = replaceChunkName(importPath);
177
-
178
- return t.objectMethod(
179
- 'method',
180
- t.identifier('chunkName'),
181
- funcPath.node.params,
182
- t.blockStatement([t.returnStatement(chunkName)])
183
- );
184
- };
185
- };
@@ -1,8 +0,0 @@
1
- import type { PropertyFactory } from './types';
2
-
3
- // просто оставляет импорт как есть + добавляет автоматически указание имени чанка для вебпака
4
- export const importAsyncMethod: PropertyFactory = ({ types: t }) => {
5
- return ({ funcPath }) => {
6
- return t.objectProperty(t.identifier('importAsync'), funcPath.node);
7
- };
8
- };
@@ -1,19 +0,0 @@
1
- import type { Statement } from '@babel/types';
2
- import type { PropertyFactory } from './types';
3
-
4
- // проверяет на клиенте что нужный чанк загружен и его можно заполучить синхронно
5
- export const isReadyMethod: PropertyFactory = ({ types: t, template }) => {
6
- const statements = template.ast(`
7
- const key=this.resolve(props);
8
-
9
- return !!(__webpack_modules__[key]);
10
- `);
11
-
12
- return () =>
13
- t.objectMethod(
14
- 'method',
15
- t.identifier('isReady'),
16
- [t.identifier('props')],
17
- t.blockStatement(statements as Statement[])
18
- );
19
- };
@@ -1,20 +0,0 @@
1
- import type { Statement } from '@babel/types';
2
- import type { PropertyFactory } from './types';
3
-
4
- export const requireAsyncMethod: PropertyFactory = ({ types: t, template }) => {
5
- const tracking = template.ast(`
6
- const key = this.resolve(props);
7
-
8
- return this.importAsync(props).then(resolved => {
9
- return resolved;
10
- });
11
- `);
12
-
13
- return () =>
14
- t.objectMethod(
15
- 'method',
16
- t.identifier('requireAsync'),
17
- [t.identifier('props')],
18
- t.blockStatement(tracking as Statement[])
19
- );
20
- };
@@ -1,21 +0,0 @@
1
- import type { PropertyFactory } from './types';
2
-
3
- // позволяет загрузить модуль синхронно - нужно на сервере и чтобы не выполнять повторную загрузку,
4
- // если чанк уже был загружен ранее на клиенте
5
- export const requireSyncMethod: PropertyFactory = ({ types: t, template }) => {
6
- return () =>
7
- t.objectMethod(
8
- 'method',
9
- t.identifier('requireSync'),
10
- [t.identifier('props')],
11
- t.blockStatement([
12
- t.returnStatement(
13
- t.callExpression(t.identifier('__webpack_require__'), [
14
- t.callExpression(t.memberExpression(t.thisExpression(), t.identifier('resolve')), [
15
- t.identifier('props'),
16
- ]),
17
- ])
18
- ),
19
- ])
20
- );
21
- };
@@ -1,21 +0,0 @@
1
- import type { PropertyFactory } from './types';
2
-
3
- // позволяет получить в рантайме id модуля, который нужно загрузить. В деве это обычно путь к файлу и в @loadable
4
- // это свойство используется преимущественно для логов
5
- export const resolveMethod: PropertyFactory = ({ types: t }) => {
6
- return ({ importPath, funcPath }) => {
7
- return t.objectMethod(
8
- 'method',
9
- t.identifier('resolve'),
10
- funcPath.node.params ?? [],
11
- t.blockStatement([
12
- t.returnStatement(
13
- t.callExpression(
14
- t.memberExpression(t.identifier('require'), t.identifier('resolveWeak')),
15
- [importPath.get('arguments')[0].node]
16
- )
17
- ),
18
- ])
19
- );
20
- };
21
- };
@@ -1,20 +0,0 @@
1
- import type { types, template, NodePath } from '@babel/core';
2
- import type {
3
- FunctionExpression,
4
- CallExpression,
5
- ObjectMember,
6
- ArrowFunctionExpression,
7
- } from '@babel/types';
8
-
9
- export type LazyCallPath = NodePath<CallExpression>;
10
- export type FuncPath = NodePath<FunctionExpression | ArrowFunctionExpression>;
11
- export type ImportPath = NodePath<CallExpression>;
12
-
13
- export type PropertyFactory = (arg: {
14
- types: typeof types;
15
- template: typeof template;
16
- }) => (arg: {
17
- lazyCallPath: LazyCallPath;
18
- funcPath: FuncPath;
19
- importPath: ImportPath;
20
- }) => ObjectMember;
@@ -1,61 +0,0 @@
1
- export interface WebpackComments {
2
- webpackChunk?: string;
3
- [key: string]: string;
4
- }
5
-
6
- const quotesRegex = /["']/g;
7
-
8
- /**
9
- * Expect string with specific magic comments here - `webpackChunkName`.
10
- * Objects can be here - https://webpack.js.org/api/module-methods/#magic-comments:~:text=This%20is%20wrapped%20in%20a%20JavaScript%20object%20and%20executed%20using%20node%20VM
11
- * But vm.runInThisContext is slow, and we can cover only simple case here, while use this helper only in `chunkName.ts`
12
- *
13
- * @param str - example: ' webpackChunkName: "any_chunk_name" '
14
- */
15
- export const parseWebpackComments = (str: string): WebpackComments => {
16
- try {
17
- const rawValues = str.trim().split(',');
18
- const values: WebpackComments = {};
19
-
20
- rawValues.forEach((comment) => {
21
- const [key, rawValue] = comment.trim().split(':');
22
- let value: any = rawValue.trim();
23
-
24
- switch (value) {
25
- case 'true': {
26
- value = true;
27
- break;
28
- }
29
- case 'false': {
30
- value = false;
31
- break;
32
- }
33
- case 'null': {
34
- value = null;
35
- break;
36
- }
37
- default: {
38
- value = value.replace(quotesRegex, '');
39
- }
40
- }
41
-
42
- values[key] = value;
43
- });
44
-
45
- return values;
46
- } catch (e) {
47
- throw Error(`compilation error while processing: /*${str}*/: ${e.message}`);
48
- }
49
- };
50
-
51
- export const generateWebpackComments = (values: WebpackComments) => {
52
- try {
53
- const str = Object.keys(values)
54
- .map((key) => `${key}: ${JSON.stringify(values[key])}`)
55
- .join(', ');
56
-
57
- return ` ${str} `;
58
- } catch (e) {
59
- throw Error(`compilation error while processing: /*${values}*/: ${e.message}`);
60
- }
61
- };
@@ -1,55 +0,0 @@
1
- import path from 'path';
2
- import pluginTester from 'babel-plugin-tester';
3
- import { providerStackPlugin } from './provider-stack';
4
- import babelConfig from '../index';
5
-
6
- pluginTester({
7
- plugin: providerStackPlugin,
8
- pluginName: 'provider-stack',
9
- filename: path.join(__dirname, '__fixtures__', 'provider-stack', 'test'),
10
- babelOptions: babelConfig({
11
- typescript: true,
12
- generateDataQaTag: false,
13
- loader: false,
14
- }),
15
- tests: {
16
- 'do nothing': {
17
- fixture: 'do-nothing.ts',
18
- snapshot: true,
19
- },
20
- 'add __stack property to module decorator providers': {
21
- fixture: 'module-decorator.ts',
22
- snapshot: true,
23
- },
24
- 'add __stack property external providers': {
25
- fixture: 'add-stack.ts',
26
- snapshot: true,
27
- },
28
- 'add __stack property if Error in scope': {
29
- fixture: 'error-in-scope.ts',
30
- snapshot: true,
31
- },
32
- 'inside await': {
33
- fixture: 'inside-await.ts',
34
- snapshot: true,
35
- },
36
- },
37
- });
38
-
39
- pluginTester({
40
- plugin: providerStackPlugin,
41
- pluginName: 'provider-stack',
42
- filename: path.join(__dirname, '__fixtures__', 'provider-stack', 'test'),
43
- babelOptions: babelConfig({
44
- typescript: true,
45
- generateDataQaTag: false,
46
- loader: false,
47
- excludesPresetEnv: ['transform-function-name'],
48
- }),
49
- tests: {
50
- 'check function naming': {
51
- fixture: 'check-function-name.ts',
52
- snapshot: true,
53
- },
54
- },
55
- });
@@ -1,88 +0,0 @@
1
- import type { Identifier, Expression, ObjectExpression } from '@babel/types';
2
- import type { NodePath } from '@babel/traverse';
3
- import type { Plugin } from './types.h';
4
-
5
- const INNER_COMMENT = '__tramvai_stack_provider__';
6
-
7
- export const providerStackPlugin: Plugin = ({ types: t }) => {
8
- const isProvider = (path: NodePath<ObjectExpression>) => {
9
- const { properties } = path.node;
10
- let hasProvideKey = false;
11
- let hasUseKey = false;
12
-
13
- for (const prop of properties) {
14
- if (t.isObjectProperty(prop)) {
15
- const { key } = prop;
16
-
17
- if (
18
- t.isIdentifier(key, { name: 'useValue' }) ||
19
- t.isIdentifier(key, { name: 'useFactory' }) ||
20
- t.isIdentifier(key, { name: 'useClass' })
21
- ) {
22
- hasUseKey = true;
23
- }
24
-
25
- if (t.isIdentifier(key, { name: 'provide' })) {
26
- hasProvideKey = true;
27
- }
28
-
29
- if (hasProvideKey && hasUseKey) {
30
- return true;
31
- }
32
- }
33
- }
34
-
35
- return false;
36
- };
37
-
38
- const generateStack = (path: NodePath<ObjectExpression>) => {
39
- if (path.scope.hasBinding('Error', true)) {
40
- path.scope.rename('Error');
41
- }
42
-
43
- return t.memberExpression(t.newExpression(t.identifier('Error'), []), t.identifier('stack'));
44
- };
45
-
46
- const defineProperty = (id: Identifier, value: Expression) => {
47
- return t.callExpression(
48
- t.memberExpression(t.identifier('Object'), t.identifier('defineProperty')),
49
- [
50
- id,
51
- t.stringLiteral('__stack'),
52
- t.objectExpression([
53
- t.objectProperty(t.identifier('enumerable'), t.booleanLiteral(false)),
54
- t.objectProperty(t.identifier('value'), value),
55
- ]),
56
- ]
57
- );
58
- };
59
-
60
- return {
61
- visitor: {
62
- ObjectExpression(path) {
63
- if (
64
- isProvider(path) &&
65
- !path.node.leadingComments?.find((comment) => comment.value === INNER_COMMENT)
66
- ) {
67
- const ref = path.scope.generateDeclaredUidIdentifier('ref');
68
-
69
- const newNode = t.addComment(
70
- t.objectExpression(path.node.properties),
71
- 'leading',
72
- INNER_COMMENT
73
- );
74
-
75
- path.replaceWith(
76
- t.sequenceExpression([
77
- t.assignmentExpression('=', ref, newNode),
78
- defineProperty(ref, generateStack(path)),
79
- ref,
80
- ])
81
- );
82
- }
83
- },
84
- },
85
- };
86
- };
87
-
88
- export default providerStackPlugin;
@@ -1,39 +0,0 @@
1
- import { resolveReactVersion } from '../../../utils/resolveReactVersion';
2
- import type { ReactCompilerOptions } from '../../../typings/configEntry/cli';
3
-
4
- type ReactCompilerTarget = '17' | '18' | '19';
5
-
6
- const resolveTarget = (): ReactCompilerTarget => {
7
- const resolved = resolveReactVersion();
8
- const major = resolved.major.toString() as ReactCompilerTarget;
9
-
10
- if (['17', '18', '19'].includes(major)) {
11
- return major;
12
- }
13
-
14
- throw new Error(
15
- `Resolved React version is ${resolved.version} which is not supported. Supported versions are 17, 18 and 19.`
16
- );
17
- };
18
-
19
- export const getReactCompilerPlugin = ({
20
- options,
21
- isServer,
22
- }: {
23
- options: boolean | ReactCompilerOptions;
24
- isServer: boolean;
25
- }) => {
26
- if (!options || isServer) {
27
- return undefined;
28
- }
29
-
30
- const compilerOptions = typeof options === 'boolean' ? {} : options;
31
-
32
- return [
33
- 'babel-plugin-react-compiler',
34
- {
35
- ...compilerOptions,
36
- target: resolveTarget(),
37
- },
38
- ];
39
- };