@embroider/compat 4.1.25 → 4.1.26

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 (305) hide show
  1. package/package.json +5 -5
  2. package/dist/src/add-to-tree.d.ts +0 -9
  3. package/dist/src/add-to-tree.d.ts.map +0 -1
  4. package/dist/src/add-to-tree.js +0 -22
  5. package/dist/src/add-to-tree.js.map +0 -1
  6. package/dist/src/addon-dependency-rules/ember-basic-dropdown.d.ts +0 -4
  7. package/dist/src/addon-dependency-rules/ember-basic-dropdown.d.ts.map +0 -1
  8. package/dist/src/addon-dependency-rules/ember-basic-dropdown.js +0 -28
  9. package/dist/src/addon-dependency-rules/ember-basic-dropdown.js.map +0 -1
  10. package/dist/src/addon-dependency-rules/ember-modal-dialog.d.ts +0 -4
  11. package/dist/src/addon-dependency-rules/ember-modal-dialog.d.ts.map +0 -1
  12. package/dist/src/addon-dependency-rules/ember-modal-dialog.js +0 -27
  13. package/dist/src/addon-dependency-rules/ember-modal-dialog.js.map +0 -1
  14. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.d.ts +0 -4
  15. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.d.ts.map +0 -1
  16. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.js +0 -23
  17. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.js.map +0 -1
  18. package/dist/src/addon-dependency-rules/ember-power-select-with-create.d.ts +0 -4
  19. package/dist/src/addon-dependency-rules/ember-power-select-with-create.d.ts.map +0 -1
  20. package/dist/src/addon-dependency-rules/ember-power-select-with-create.js +0 -18
  21. package/dist/src/addon-dependency-rules/ember-power-select-with-create.js.map +0 -1
  22. package/dist/src/addon-dependency-rules/ember-power-select.d.ts +0 -4
  23. package/dist/src/addon-dependency-rules/ember-power-select.d.ts.map +0 -1
  24. package/dist/src/addon-dependency-rules/ember-power-select.js +0 -57
  25. package/dist/src/addon-dependency-rules/ember-power-select.js.map +0 -1
  26. package/dist/src/audit/babel-visitor.d.ts +0 -41
  27. package/dist/src/audit/babel-visitor.d.ts.map +0 -1
  28. package/dist/src/audit/babel-visitor.js +0 -230
  29. package/dist/src/audit/babel-visitor.js.map +0 -1
  30. package/dist/src/audit/build.d.ts +0 -8
  31. package/dist/src/audit/build.d.ts.map +0 -1
  32. package/dist/src/audit/build.js +0 -71
  33. package/dist/src/audit/build.js.map +0 -1
  34. package/dist/src/audit/options.d.ts +0 -9
  35. package/dist/src/audit/options.d.ts.map +0 -1
  36. package/dist/src/audit/options.js +0 -3
  37. package/dist/src/audit/options.js.map +0 -1
  38. package/dist/src/audit.d.ts +0 -60
  39. package/dist/src/audit.d.ts.map +0 -1
  40. package/dist/src/audit.js +0 -296
  41. package/dist/src/audit.js.map +0 -1
  42. package/dist/src/babel.d.ts +0 -18
  43. package/dist/src/babel.d.ts.map +0 -1
  44. package/dist/src/babel.js +0 -138
  45. package/dist/src/babel.js.map +0 -1
  46. package/dist/src/build-compat-addon.d.ts +0 -5
  47. package/dist/src/build-compat-addon.d.ts.map +0 -1
  48. package/dist/src/build-compat-addon.js +0 -43
  49. package/dist/src/build-compat-addon.js.map +0 -1
  50. package/dist/src/compat-adapters/@ember/test-waiters.d.ts +0 -6
  51. package/dist/src/compat-adapters/@ember/test-waiters.d.ts.map +0 -1
  52. package/dist/src/compat-adapters/@ember/test-waiters.js +0 -26
  53. package/dist/src/compat-adapters/@ember/test-waiters.js.map +0 -1
  54. package/dist/src/compat-adapters/@ember-data/adapter.d.ts +0 -2
  55. package/dist/src/compat-adapters/@ember-data/adapter.d.ts.map +0 -1
  56. package/dist/src/compat-adapters/@ember-data/adapter.js +0 -6
  57. package/dist/src/compat-adapters/@ember-data/adapter.js.map +0 -1
  58. package/dist/src/compat-adapters/@ember-data/model.d.ts +0 -2
  59. package/dist/src/compat-adapters/@ember-data/model.d.ts.map +0 -1
  60. package/dist/src/compat-adapters/@ember-data/model.js +0 -6
  61. package/dist/src/compat-adapters/@ember-data/model.js.map +0 -1
  62. package/dist/src/compat-adapters/@ember-data/record-data.d.ts +0 -2
  63. package/dist/src/compat-adapters/@ember-data/record-data.d.ts.map +0 -1
  64. package/dist/src/compat-adapters/@ember-data/record-data.js +0 -6
  65. package/dist/src/compat-adapters/@ember-data/record-data.js.map +0 -1
  66. package/dist/src/compat-adapters/@ember-data/serializer.d.ts +0 -2
  67. package/dist/src/compat-adapters/@ember-data/serializer.d.ts.map +0 -1
  68. package/dist/src/compat-adapters/@ember-data/serializer.js +0 -6
  69. package/dist/src/compat-adapters/@ember-data/serializer.js.map +0 -1
  70. package/dist/src/compat-adapters/@ember-data/store.d.ts +0 -2
  71. package/dist/src/compat-adapters/@ember-data/store.d.ts.map +0 -1
  72. package/dist/src/compat-adapters/@ember-data/store.js +0 -6
  73. package/dist/src/compat-adapters/@ember-data/store.js.map +0 -1
  74. package/dist/src/compat-adapters/@glimmer/tracking.d.ts +0 -10
  75. package/dist/src/compat-adapters/@glimmer/tracking.d.ts.map +0 -1
  76. package/dist/src/compat-adapters/@glimmer/tracking.js +0 -36
  77. package/dist/src/compat-adapters/@glimmer/tracking.js.map +0 -1
  78. package/dist/src/compat-adapters/@html-next/vertical-collection.d.ts +0 -5
  79. package/dist/src/compat-adapters/@html-next/vertical-collection.d.ts.map +0 -1
  80. package/dist/src/compat-adapters/@html-next/vertical-collection.js +0 -14
  81. package/dist/src/compat-adapters/@html-next/vertical-collection.js.map +0 -1
  82. package/dist/src/compat-adapters/active-model-adapter.d.ts +0 -5
  83. package/dist/src/compat-adapters/active-model-adapter.d.ts.map +0 -1
  84. package/dist/src/compat-adapters/active-model-adapter.js +0 -16
  85. package/dist/src/compat-adapters/active-model-adapter.js.map +0 -1
  86. package/dist/src/compat-adapters/ember-asset-loader.d.ts +0 -6
  87. package/dist/src/compat-adapters/ember-asset-loader.d.ts.map +0 -1
  88. package/dist/src/compat-adapters/ember-asset-loader.js +0 -36
  89. package/dist/src/compat-adapters/ember-asset-loader.js.map +0 -1
  90. package/dist/src/compat-adapters/ember-cli-addon-docs.d.ts +0 -5
  91. package/dist/src/compat-adapters/ember-cli-addon-docs.d.ts.map +0 -1
  92. package/dist/src/compat-adapters/ember-cli-addon-docs.js +0 -14
  93. package/dist/src/compat-adapters/ember-cli-addon-docs.js.map +0 -1
  94. package/dist/src/compat-adapters/ember-cli-babel.d.ts +0 -5
  95. package/dist/src/compat-adapters/ember-cli-babel.d.ts.map +0 -1
  96. package/dist/src/compat-adapters/ember-cli-babel.js +0 -25
  97. package/dist/src/compat-adapters/ember-cli-babel.js.map +0 -1
  98. package/dist/src/compat-adapters/ember-cli-clipboard.d.ts +0 -5
  99. package/dist/src/compat-adapters/ember-cli-clipboard.d.ts.map +0 -1
  100. package/dist/src/compat-adapters/ember-cli-clipboard.js +0 -31
  101. package/dist/src/compat-adapters/ember-cli-clipboard.js.map +0 -1
  102. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.d.ts +0 -6
  103. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.d.ts.map +0 -1
  104. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.js +0 -46
  105. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.js.map +0 -1
  106. package/dist/src/compat-adapters/ember-cli-fastboot-testing.d.ts +0 -5
  107. package/dist/src/compat-adapters/ember-cli-fastboot-testing.d.ts.map +0 -1
  108. package/dist/src/compat-adapters/ember-cli-fastboot-testing.js +0 -21
  109. package/dist/src/compat-adapters/ember-cli-fastboot-testing.js.map +0 -1
  110. package/dist/src/compat-adapters/ember-cli-fastboot.d.ts +0 -12
  111. package/dist/src/compat-adapters/ember-cli-fastboot.d.ts.map +0 -1
  112. package/dist/src/compat-adapters/ember-cli-fastboot.js +0 -157
  113. package/dist/src/compat-adapters/ember-cli-fastboot.js.map +0 -1
  114. package/dist/src/compat-adapters/ember-cli-mirage.d.ts +0 -7
  115. package/dist/src/compat-adapters/ember-cli-mirage.d.ts.map +0 -1
  116. package/dist/src/compat-adapters/ember-cli-mirage.js +0 -29
  117. package/dist/src/compat-adapters/ember-cli-mirage.js.map +0 -1
  118. package/dist/src/compat-adapters/ember-composable-helpers.d.ts +0 -6
  119. package/dist/src/compat-adapters/ember-composable-helpers.d.ts.map +0 -1
  120. package/dist/src/compat-adapters/ember-composable-helpers.js +0 -40
  121. package/dist/src/compat-adapters/ember-composable-helpers.js.map +0 -1
  122. package/dist/src/compat-adapters/ember-data.d.ts +0 -10
  123. package/dist/src/compat-adapters/ember-data.d.ts.map +0 -1
  124. package/dist/src/compat-adapters/ember-data.js +0 -74
  125. package/dist/src/compat-adapters/ember-data.js.map +0 -1
  126. package/dist/src/compat-adapters/ember-decorators.d.ts +0 -5
  127. package/dist/src/compat-adapters/ember-decorators.d.ts.map +0 -1
  128. package/dist/src/compat-adapters/ember-decorators.js +0 -16
  129. package/dist/src/compat-adapters/ember-decorators.js.map +0 -1
  130. package/dist/src/compat-adapters/ember-engines.d.ts +0 -15
  131. package/dist/src/compat-adapters/ember-engines.d.ts.map +0 -1
  132. package/dist/src/compat-adapters/ember-engines.js +0 -34
  133. package/dist/src/compat-adapters/ember-engines.js.map +0 -1
  134. package/dist/src/compat-adapters/ember-exam.d.ts +0 -16
  135. package/dist/src/compat-adapters/ember-exam.d.ts.map +0 -1
  136. package/dist/src/compat-adapters/ember-exam.js +0 -30
  137. package/dist/src/compat-adapters/ember-exam.js.map +0 -1
  138. package/dist/src/compat-adapters/ember-fetch.d.ts +0 -7
  139. package/dist/src/compat-adapters/ember-fetch.d.ts.map +0 -1
  140. package/dist/src/compat-adapters/ember-fetch.js +0 -56
  141. package/dist/src/compat-adapters/ember-fetch.js.map +0 -1
  142. package/dist/src/compat-adapters/ember-get-config.d.ts +0 -17
  143. package/dist/src/compat-adapters/ember-get-config.d.ts.map +0 -1
  144. package/dist/src/compat-adapters/ember-get-config.js +0 -41
  145. package/dist/src/compat-adapters/ember-get-config.js.map +0 -1
  146. package/dist/src/compat-adapters/ember-inflector.d.ts +0 -7
  147. package/dist/src/compat-adapters/ember-inflector.d.ts.map +0 -1
  148. package/dist/src/compat-adapters/ember-inflector.js +0 -39
  149. package/dist/src/compat-adapters/ember-inflector.js.map +0 -1
  150. package/dist/src/compat-adapters/ember-percy.d.ts +0 -5
  151. package/dist/src/compat-adapters/ember-percy.d.ts.map +0 -1
  152. package/dist/src/compat-adapters/ember-percy.js +0 -18
  153. package/dist/src/compat-adapters/ember-percy.js.map +0 -1
  154. package/dist/src/compat-adapters/ember-resolver.d.ts +0 -5
  155. package/dist/src/compat-adapters/ember-resolver.d.ts.map +0 -1
  156. package/dist/src/compat-adapters/ember-resolver.js +0 -21
  157. package/dist/src/compat-adapters/ember-resolver.js.map +0 -1
  158. package/dist/src/compat-adapters/ember-scroll-modifiers.d.ts +0 -5
  159. package/dist/src/compat-adapters/ember-scroll-modifiers.d.ts.map +0 -1
  160. package/dist/src/compat-adapters/ember-scroll-modifiers.js +0 -23
  161. package/dist/src/compat-adapters/ember-scroll-modifiers.js.map +0 -1
  162. package/dist/src/compat-adapters/ember-source.d.ts +0 -12
  163. package/dist/src/compat-adapters/ember-source.d.ts.map +0 -1
  164. package/dist/src/compat-adapters/ember-source.js +0 -465
  165. package/dist/src/compat-adapters/ember-source.js.map +0 -1
  166. package/dist/src/compat-adapters/ember-svg-jar.d.ts +0 -5
  167. package/dist/src/compat-adapters/ember-svg-jar.d.ts.map +0 -1
  168. package/dist/src/compat-adapters/ember-svg-jar.js +0 -29
  169. package/dist/src/compat-adapters/ember-svg-jar.js.map +0 -1
  170. package/dist/src/compat-adapters/ember-test-selectors.d.ts +0 -6
  171. package/dist/src/compat-adapters/ember-test-selectors.d.ts.map +0 -1
  172. package/dist/src/compat-adapters/ember-test-selectors.js +0 -19
  173. package/dist/src/compat-adapters/ember-test-selectors.js.map +0 -1
  174. package/dist/src/compat-addons.d.ts +0 -17
  175. package/dist/src/compat-addons.d.ts.map +0 -1
  176. package/dist/src/compat-addons.js +0 -48
  177. package/dist/src/compat-addons.js.map +0 -1
  178. package/dist/src/compat-app-builder.d.ts +0 -28
  179. package/dist/src/compat-app-builder.d.ts.map +0 -1
  180. package/dist/src/compat-app-builder.js +0 -221
  181. package/dist/src/compat-app-builder.js.map +0 -1
  182. package/dist/src/compat-app.d.ts +0 -62
  183. package/dist/src/compat-app.d.ts.map +0 -1
  184. package/dist/src/compat-app.js +0 -618
  185. package/dist/src/compat-app.js.map +0 -1
  186. package/dist/src/compat-utils.d.ts +0 -10
  187. package/dist/src/compat-utils.d.ts.map +0 -1
  188. package/dist/src/compat-utils.js +0 -65
  189. package/dist/src/compat-utils.js.map +0 -1
  190. package/dist/src/content-for-config.d.ts +0 -12
  191. package/dist/src/content-for-config.d.ts.map +0 -1
  192. package/dist/src/content-for-config.js +0 -66
  193. package/dist/src/content-for-config.js.map +0 -1
  194. package/dist/src/dasherize-component-name.d.ts +0 -3
  195. package/dist/src/dasherize-component-name.d.ts.map +0 -1
  196. package/dist/src/dasherize-component-name.js +0 -28
  197. package/dist/src/dasherize-component-name.js.map +0 -1
  198. package/dist/src/default-pipeline.d.ts +0 -10
  199. package/dist/src/default-pipeline.d.ts.map +0 -1
  200. package/dist/src/default-pipeline.js +0 -43
  201. package/dist/src/default-pipeline.js.map +0 -1
  202. package/dist/src/dependency-rules.d.ts +0 -62
  203. package/dist/src/dependency-rules.d.ts.map +0 -1
  204. package/dist/src/dependency-rules.js +0 -89
  205. package/dist/src/dependency-rules.js.map +0 -1
  206. package/dist/src/detect-babel-plugins.d.ts +0 -7
  207. package/dist/src/detect-babel-plugins.d.ts.map +0 -1
  208. package/dist/src/detect-babel-plugins.js +0 -96
  209. package/dist/src/detect-babel-plugins.js.map +0 -1
  210. package/dist/src/detect-compact-reexports.d.ts +0 -3
  211. package/dist/src/detect-compact-reexports.d.ts.map +0 -1
  212. package/dist/src/detect-compact-reexports.js +0 -17
  213. package/dist/src/detect-compact-reexports.js.map +0 -1
  214. package/dist/src/dummy-package.d.ts +0 -9
  215. package/dist/src/dummy-package.d.ts.map +0 -1
  216. package/dist/src/dummy-package.js +0 -44
  217. package/dist/src/dummy-package.js.map +0 -1
  218. package/dist/src/empty-package-tree.d.ts +0 -9
  219. package/dist/src/empty-package-tree.d.ts.map +0 -1
  220. package/dist/src/empty-package-tree.js +0 -36
  221. package/dist/src/empty-package-tree.js.map +0 -1
  222. package/dist/src/get-real-addon.d.ts +0 -7
  223. package/dist/src/get-real-addon.d.ts.map +0 -1
  224. package/dist/src/get-real-addon.js +0 -33
  225. package/dist/src/get-real-addon.js.map +0 -1
  226. package/dist/src/hbs-to-js-broccoli-plugin.d.ts +0 -9
  227. package/dist/src/hbs-to-js-broccoli-plugin.d.ts.map +0 -1
  228. package/dist/src/hbs-to-js-broccoli-plugin.js +0 -39
  229. package/dist/src/hbs-to-js-broccoli-plugin.js.map +0 -1
  230. package/dist/src/htmlbars-unwrapper.d.ts +0 -6
  231. package/dist/src/htmlbars-unwrapper.d.ts.map +0 -1
  232. package/dist/src/htmlbars-unwrapper.js +0 -8
  233. package/dist/src/htmlbars-unwrapper.js.map +0 -1
  234. package/dist/src/http-audit.d.ts +0 -14
  235. package/dist/src/http-audit.d.ts.map +0 -1
  236. package/dist/src/http-audit.js +0 -60
  237. package/dist/src/http-audit.js.map +0 -1
  238. package/dist/src/index.d.ts +0 -8
  239. package/dist/src/index.d.ts.map +0 -1
  240. package/dist/src/index.js +0 -18
  241. package/dist/src/index.js.map +0 -1
  242. package/dist/src/merges.d.ts +0 -3
  243. package/dist/src/merges.d.ts.map +0 -1
  244. package/dist/src/merges.js +0 -32
  245. package/dist/src/merges.js.map +0 -1
  246. package/dist/src/module-visitor.d.ts +0 -53
  247. package/dist/src/module-visitor.d.ts.map +0 -1
  248. package/dist/src/module-visitor.js +0 -285
  249. package/dist/src/module-visitor.js.map +0 -1
  250. package/dist/src/modules-compat.d.ts +0 -3
  251. package/dist/src/modules-compat.d.ts.map +0 -1
  252. package/dist/src/modules-compat.js +0 -18
  253. package/dist/src/modules-compat.js.map +0 -1
  254. package/dist/src/observe-tree.d.ts +0 -8
  255. package/dist/src/observe-tree.d.ts.map +0 -1
  256. package/dist/src/observe-tree.js +0 -17
  257. package/dist/src/observe-tree.js.map +0 -1
  258. package/dist/src/options.d.ts +0 -17
  259. package/dist/src/options.d.ts.map +0 -1
  260. package/dist/src/options.js +0 -57
  261. package/dist/src/options.js.map +0 -1
  262. package/dist/src/prepare-htmlbars-ast-plugins.d.ts +0 -3
  263. package/dist/src/prepare-htmlbars-ast-plugins.d.ts.map +0 -1
  264. package/dist/src/prepare-htmlbars-ast-plugins.js +0 -39
  265. package/dist/src/prepare-htmlbars-ast-plugins.js.map +0 -1
  266. package/dist/src/resolver-transform.d.ts +0 -29
  267. package/dist/src/resolver-transform.d.ts.map +0 -1
  268. package/dist/src/resolver-transform.js +0 -1094
  269. package/dist/src/resolver-transform.js.map +0 -1
  270. package/dist/src/rewrite-addon-tree.d.ts +0 -9
  271. package/dist/src/rewrite-addon-tree.d.ts.map +0 -1
  272. package/dist/src/rewrite-addon-tree.js +0 -46
  273. package/dist/src/rewrite-addon-tree.js.map +0 -1
  274. package/dist/src/rewrite-package-json.d.ts +0 -8
  275. package/dist/src/rewrite-package-json.d.ts.map +0 -1
  276. package/dist/src/rewrite-package-json.js +0 -23
  277. package/dist/src/rewrite-package-json.js.map +0 -1
  278. package/dist/src/smoosh-package-json.d.ts +0 -9
  279. package/dist/src/smoosh-package-json.d.ts.map +0 -1
  280. package/dist/src/smoosh-package-json.js +0 -30
  281. package/dist/src/smoosh-package-json.js.map +0 -1
  282. package/dist/src/snitch.d.ts +0 -14
  283. package/dist/src/snitch.d.ts.map +0 -1
  284. package/dist/src/snitch.js +0 -42
  285. package/dist/src/snitch.js.map +0 -1
  286. package/dist/src/standalone-addon-build.d.ts +0 -3
  287. package/dist/src/standalone-addon-build.d.ts.map +0 -1
  288. package/dist/src/standalone-addon-build.js +0 -106
  289. package/dist/src/standalone-addon-build.js.map +0 -1
  290. package/dist/src/synthesize-template-only-components.d.ts +0 -17
  291. package/dist/src/synthesize-template-only-components.d.ts.map +0 -1
  292. package/dist/src/synthesize-template-only-components.js +0 -109
  293. package/dist/src/synthesize-template-only-components.js.map +0 -1
  294. package/dist/src/v1-addon.d.ts +0 -71
  295. package/dist/src/v1-addon.d.ts.map +0 -1
  296. package/dist/src/v1-addon.js +0 -1025
  297. package/dist/src/v1-addon.js.map +0 -1
  298. package/dist/src/v1-config.d.ts +0 -17
  299. package/dist/src/v1-config.d.ts.map +0 -1
  300. package/dist/src/v1-config.js +0 -26
  301. package/dist/src/v1-config.js.map +0 -1
  302. package/dist/src/v1-instance-cache.d.ts +0 -14
  303. package/dist/src/v1-instance-cache.d.ts.map +0 -1
  304. package/dist/src/v1-instance-cache.js +0 -66
  305. package/dist/src/v1-instance-cache.js.map +0 -1
@@ -1,53 +0,0 @@
1
- import { type CodeFrameStorage, type NamespaceMarker } from './audit/babel-visitor';
2
- import type { Finding } from './audit';
3
- import type { TransformOptions } from '@babel/core';
4
- export type Module = CompleteModule | ParsedModule | UnparseableModule;
5
- export interface UnparseableModule {
6
- type: 'unparseable';
7
- appRelativePath: string;
8
- consumedFrom: (string | RootMarker)[];
9
- }
10
- export interface ParsedModule extends Omit<UnparseableModule, 'type'> {
11
- type: 'parsed';
12
- imports: Import[];
13
- resolutions: {
14
- [source: string]: string | null;
15
- };
16
- content: string;
17
- isCJS: boolean;
18
- isAMD: boolean;
19
- }
20
- export interface CompleteModule extends Omit<ParsedModule, 'type'> {
21
- type: 'complete';
22
- exports: string[];
23
- }
24
- export interface Import {
25
- source: string;
26
- specifiers: {
27
- name: string | NamespaceMarker;
28
- local: string | null;
29
- codeFrameIndex: number | undefined;
30
- }[];
31
- codeFrameIndex: number | undefined;
32
- }
33
- interface VisitorParams {
34
- base: string;
35
- resolveId: (specifier: string, fromFile: string) => Promise<string | undefined>;
36
- load: (id: string) => Promise<{
37
- content: string | Buffer;
38
- type: ContentType;
39
- } | undefined>;
40
- entrypoints: string[];
41
- debug?: boolean;
42
- findings: Finding[];
43
- frames: CodeFrameStorage;
44
- babelConfig: TransformOptions;
45
- }
46
- export declare function visitModules(params: VisitorParams): Promise<Record<string, Module>>;
47
- export type ContentType = 'javascript' | 'html';
48
- export interface RootMarker {
49
- isRoot: true;
50
- }
51
- export declare function isRootMarker(value: string | RootMarker | undefined): value is RootMarker;
52
- export {};
53
- //# sourceMappingURL=module-visitor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module-visitor.d.ts","sourceRoot":"","sources":["../../src/module-visitor.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EAIrB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,MAAM,MAAM,GAAG,cAAc,GAAG,YAAY,GAAG,iBAAiB,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnE,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC;IAChE,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAyCD,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;QAC/B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;KACpC,EAAE,CAAC;IACJ,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChF,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IAC3F,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,gBAAgB,CAAC;IACzB,WAAW,EAAE,gBAAgB,CAAC;CAC/B;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAGzF;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAiShD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,IAAI,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,IAAI,UAAU,CAExF"}
@@ -1,285 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.visitModules = visitModules;
7
- exports.isRootMarker = isRootMarker;
8
- const core_1 = require("@embroider/core");
9
- const babel_visitor_1 = require("./audit/babel-visitor");
10
- const fromPairs_1 = __importDefault(require("lodash/fromPairs"));
11
- const assert_never_1 = __importDefault(require("assert-never"));
12
- const jsdom_1 = require("jsdom");
13
- function isResolved(module) {
14
- return Boolean((module === null || module === void 0 ? void 0 : module.parsed) && module.resolved);
15
- }
16
- function isLinked(module) {
17
- return Boolean((module === null || module === void 0 ? void 0 : module.parsed) && module.resolved && module.linked);
18
- }
19
- async function visitModules(params) {
20
- let visitor = new ModuleVisitor(params);
21
- return await visitor.run();
22
- }
23
- class ModuleVisitor {
24
- constructor(params) {
25
- this.params = params;
26
- this.modules = new Map();
27
- this.moduleQueue = new Set();
28
- this.base = params.base;
29
- this.debugEnabled = Boolean(params.debug);
30
- this.resolveId = params.resolveId;
31
- this.load = params.load;
32
- this.entrypoints = params.entrypoints;
33
- }
34
- async run() {
35
- for (let entry of this.entrypoints) {
36
- this.scheduleVisit(entry, { isRoot: true });
37
- }
38
- await this.drainQueue();
39
- this.linkModules();
40
- return this.buildResults();
41
- }
42
- async drainQueue() {
43
- while (this.moduleQueue.size > 0) {
44
- let id = this.moduleQueue.values().next().value;
45
- this.moduleQueue.delete(id);
46
- this.debug('visit', id);
47
- let loaded = await this.load(id);
48
- if (Array.isArray(loaded)) {
49
- for (let finding of loaded) {
50
- this.params.findings.push(finding);
51
- }
52
- continue;
53
- }
54
- // if the load hook returned undefined we need to just skip it
55
- if (loaded === undefined) {
56
- continue;
57
- }
58
- let { content, type } = loaded;
59
- let visitor = this.visitorFor(type);
60
- // cast is safe because the only way to get into the queue is to go
61
- // through scheduleVisit, and scheduleVisit creates the entry in
62
- // this.modules.
63
- let module = this.modules.get(id);
64
- let visitResult = await visitor.call(this, id, content);
65
- if (Array.isArray(visitResult)) {
66
- // the visitor was unable to figure out the ParseFields and returned
67
- // some number of Findings to us to explain why.
68
- for (let finding of visitResult) {
69
- this.params.findings.push(finding);
70
- }
71
- }
72
- else {
73
- module.parsed = visitResult;
74
- module.resolved = await this.resolveDeps(visitResult.dependencies, id);
75
- }
76
- }
77
- }
78
- linkModules() {
79
- for (let module of this.modules.values()) {
80
- if (isResolved(module)) {
81
- this.linkModule(module);
82
- }
83
- }
84
- }
85
- linkModule(module) {
86
- let exports = new Set();
87
- for (let exp of module.parsed.exports) {
88
- if (typeof exp === 'string') {
89
- exports.add(exp);
90
- }
91
- else {
92
- let moduleName = module.resolved.get(exp.all);
93
- if (!isResolutionFailure(moduleName)) {
94
- let target = this.modules.get(moduleName);
95
- if (!isLinked(target) && isResolved(target)) {
96
- this.linkModule(target);
97
- }
98
- if (isLinked(target)) {
99
- for (let innerExp of target.linked.exports) {
100
- exports.add(innerExp);
101
- }
102
- }
103
- else {
104
- // our module doesn't successfully enter linked state because it
105
- // depends on stuff that also couldn't
106
- return;
107
- }
108
- }
109
- }
110
- }
111
- module.linked = {
112
- exports,
113
- };
114
- }
115
- async resolveDeps(deps, fromFile) {
116
- let resolved = new Map();
117
- for (let dep of deps) {
118
- if (['@embroider/macros'].includes(dep)) {
119
- // the audit process deliberately removes the @embroider/macros babel
120
- // plugins, so the imports are still present and should be left alone.
121
- continue;
122
- }
123
- let resolution = await this.resolveId(dep, fromFile);
124
- if (resolution) {
125
- resolved.set(dep, resolution);
126
- this.scheduleVisit(resolution, fromFile);
127
- continue;
128
- }
129
- else {
130
- resolved.set(dep, { isResolutionFailure: true });
131
- continue;
132
- }
133
- }
134
- return resolved;
135
- }
136
- scheduleVisit(id, parent) {
137
- let record = this.modules.get(id);
138
- if (!record) {
139
- this.debug(`discovered`, id);
140
- record = {
141
- consumedFrom: [parent],
142
- };
143
- this.modules.set(id, record);
144
- this.moduleQueue.add(id);
145
- }
146
- else {
147
- record.consumedFrom.push(parent);
148
- }
149
- }
150
- visitorFor(type) {
151
- switch (type) {
152
- case 'html':
153
- return this.visitHTML;
154
- case 'javascript':
155
- return this.visitJS;
156
- default:
157
- throw (0, assert_never_1.default)(type);
158
- }
159
- }
160
- async visitHTML(_filename, content) {
161
- let dom = new jsdom_1.JSDOM(content);
162
- let scripts = dom.window.document.querySelectorAll('script[type="module"]');
163
- let dependencies = [];
164
- for (let script of scripts) {
165
- let src = script.src;
166
- if (!src) {
167
- continue;
168
- }
169
- if (new URL(src, 'http://example.com:4321').origin !== 'http://example.com:4321') {
170
- // src was absolute, we don't handle it
171
- continue;
172
- }
173
- dependencies.push(src);
174
- }
175
- return {
176
- imports: [],
177
- exports: new Set(),
178
- isCJS: false,
179
- isAMD: false,
180
- dependencies,
181
- transpiledContent: content,
182
- };
183
- }
184
- async visitJS(filename, content) {
185
- let rawSource = content.toString('utf8');
186
- try {
187
- let result = await (0, babel_visitor_1.auditJS)(rawSource, filename, this.params.babelConfig, this.params.frames);
188
- for (let problem of result.problems) {
189
- this.params.findings.push({
190
- filename,
191
- message: problem.message,
192
- detail: problem.detail,
193
- codeFrame: this.params.frames.render(problem.codeFrameIndex),
194
- });
195
- }
196
- return {
197
- exports: result.exports,
198
- imports: result.imports,
199
- isCJS: result.isCJS,
200
- isAMD: result.isAMD,
201
- dependencies: result.imports.map(i => i.source),
202
- transpiledContent: result.transpiledContent,
203
- };
204
- }
205
- catch (err) {
206
- if (['BABEL_PARSE_ERROR', 'BABEL_TRANSFORM_ERROR'].includes(err.code)) {
207
- return [
208
- {
209
- filename,
210
- message: `failed to parse`,
211
- detail: err.toString().replace(filename, (0, core_1.explicitRelative)(this.base, filename)),
212
- },
213
- ];
214
- }
215
- else {
216
- throw err;
217
- }
218
- }
219
- }
220
- debug(message, ...args) {
221
- if (this.debugEnabled) {
222
- console.log(message, ...args);
223
- }
224
- }
225
- toPublicModule(filename, module) {
226
- let result = {
227
- type: 'unparseable',
228
- appRelativePath: (0, core_1.explicitRelative)(this.base, filename),
229
- consumedFrom: module.consumedFrom.map(entry => {
230
- if (isRootMarker(entry)) {
231
- return entry;
232
- }
233
- else {
234
- return (0, core_1.explicitRelative)(this.base, entry);
235
- }
236
- }),
237
- };
238
- if (!module.parsed || !module.resolved) {
239
- return result;
240
- }
241
- let parsedResult = {
242
- ...result,
243
- type: 'parsed',
244
- resolutions: (0, fromPairs_1.default)(Array.from(module.resolved).map(([source, target]) => [
245
- source,
246
- isResolutionFailure(target) ? null : (0, core_1.explicitRelative)(this.base, target),
247
- ])),
248
- imports: module.parsed.imports.map(i => ({
249
- source: i.source,
250
- specifiers: i.specifiers.map(s => ({
251
- name: s.name,
252
- local: s.local,
253
- codeFrameIndex: s.codeFrameIndex,
254
- })),
255
- codeFrameIndex: i.codeFrameIndex,
256
- })),
257
- content: module.parsed.transpiledContent.toString(),
258
- isAMD: Boolean(module.parsed.isAMD),
259
- isCJS: Boolean(module.parsed.isCJS),
260
- };
261
- if (!module.linked) {
262
- return parsedResult;
263
- }
264
- return {
265
- ...parsedResult,
266
- type: 'complete',
267
- exports: [...module.linked.exports],
268
- };
269
- }
270
- buildResults() {
271
- let publicModules = {};
272
- for (let [filename, module] of this.modules) {
273
- let publicModule = this.toPublicModule(filename, module);
274
- publicModules[(0, core_1.explicitRelative)(this.base, filename)] = publicModule;
275
- }
276
- return publicModules;
277
- }
278
- }
279
- function isRootMarker(value) {
280
- return Boolean(value && typeof value !== 'string' && value.isRoot);
281
- }
282
- function isResolutionFailure(result) {
283
- return typeof result === 'object' && 'isResolutionFailure' in result;
284
- }
285
- //# sourceMappingURL=module-visitor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module-visitor.js","sourceRoot":"","sources":["../../src/module-visitor.ts"],"names":[],"mappings":"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","sourcesContent":["import { explicitRelative } from '@embroider/core';\nimport {\n type CodeFrameStorage,\n auditJS,\n type ExportAll,\n type InternalImport,\n type NamespaceMarker,\n} from './audit/babel-visitor';\nimport fromPairs from 'lodash/fromPairs';\nimport assertNever from 'assert-never';\nimport { JSDOM } from 'jsdom';\n\nimport type { Finding } from './audit';\nimport type { TransformOptions } from '@babel/core';\n\nexport type Module = CompleteModule | ParsedModule | UnparseableModule;\n\nexport interface UnparseableModule {\n type: 'unparseable';\n appRelativePath: string;\n consumedFrom: (string | RootMarker)[];\n}\n\nexport interface ParsedModule extends Omit<UnparseableModule, 'type'> {\n type: 'parsed';\n imports: Import[];\n resolutions: { [source: string]: string | null };\n content: string;\n isCJS: boolean;\n isAMD: boolean;\n}\n\nexport interface CompleteModule extends Omit<ParsedModule, 'type'> {\n type: 'complete';\n exports: string[];\n}\n\ninterface InternalModule {\n consumedFrom: (string | RootMarker)[];\n\n parsed?: {\n imports: InternalImport[];\n exports: Set<string | ExportAll>;\n isCJS: boolean;\n isAMD: boolean;\n dependencies: string[];\n transpiledContent: string | Buffer;\n };\n\n resolved?: Map<string, string | ResolutionFailure>;\n\n linked?: {\n exports: Set<string>;\n };\n}\n\ntype ParsedInternalModule = Omit<InternalModule, 'parsed'> & {\n parsed: NonNullable<InternalModule['parsed']>;\n};\n\ntype ResolvedInternalModule = Omit<ParsedInternalModule, 'resolved'> & {\n resolved: NonNullable<ParsedInternalModule['resolved']>;\n};\n\nfunction isResolved(module: InternalModule | undefined): module is ResolvedInternalModule {\n return Boolean(module?.parsed && module.resolved);\n}\n\ntype LinkedInternalModule = Omit<ResolvedInternalModule, 'linked'> & {\n linked: NonNullable<ResolvedInternalModule['linked']>;\n};\n\nfunction isLinked(module: InternalModule | undefined): module is LinkedInternalModule {\n return Boolean(module?.parsed && module.resolved && module.linked);\n}\n\nexport interface Import {\n source: string;\n specifiers: {\n name: string | NamespaceMarker;\n local: string | null; // can be null when re-exporting, because in that case we import `name` from `source` but don't create any local binding for it\n codeFrameIndex: number | undefined;\n }[];\n codeFrameIndex: number | undefined;\n}\n\ninterface VisitorParams {\n base: string;\n resolveId: (specifier: string, fromFile: string) => Promise<string | undefined>;\n load: (id: string) => Promise<{ content: string | Buffer; type: ContentType } | undefined>;\n entrypoints: string[];\n debug?: boolean;\n\n findings: Finding[];\n frames: CodeFrameStorage;\n babelConfig: TransformOptions;\n}\n\nexport async function visitModules(params: VisitorParams): Promise<Record<string, Module>> {\n let visitor = new ModuleVisitor(params);\n return await visitor.run();\n}\n\nexport type ContentType = 'javascript' | 'html';\n\nclass ModuleVisitor {\n private modules: Map<string, InternalModule> = new Map();\n\n private moduleQueue = new Set<string>();\n private base: string;\n private debugEnabled: boolean;\n private resolveId: (specifier: string, fromFile: string) => Promise<string | undefined>;\n private load: (id: string) => Promise<{ content: string | Buffer; type: ContentType } | undefined>;\n private entrypoints: string[];\n\n constructor(private params: VisitorParams) {\n this.base = params.base;\n this.debugEnabled = Boolean(params.debug);\n this.resolveId = params.resolveId;\n this.load = params.load;\n this.entrypoints = params.entrypoints;\n }\n\n async run(): Promise<Record<string, Module>> {\n for (let entry of this.entrypoints) {\n this.scheduleVisit(entry, { isRoot: true });\n }\n await this.drainQueue();\n this.linkModules();\n return this.buildResults();\n }\n\n private async drainQueue() {\n while (this.moduleQueue.size > 0) {\n let id = this.moduleQueue.values().next().value as string;\n this.moduleQueue.delete(id);\n this.debug('visit', id);\n let loaded = await this.load(id);\n if (Array.isArray(loaded)) {\n for (let finding of loaded) {\n this.params.findings.push(finding);\n }\n continue;\n }\n // if the load hook returned undefined we need to just skip it\n if (loaded === undefined) {\n continue;\n }\n let { content, type } = loaded;\n\n let visitor = this.visitorFor(type);\n\n // cast is safe because the only way to get into the queue is to go\n // through scheduleVisit, and scheduleVisit creates the entry in\n // this.modules.\n let module: InternalModule = this.modules.get(id)!;\n let visitResult = await visitor.call(this, id, content);\n if (Array.isArray(visitResult)) {\n // the visitor was unable to figure out the ParseFields and returned\n // some number of Findings to us to explain why.\n for (let finding of visitResult) {\n this.params.findings.push(finding);\n }\n } else {\n module.parsed = visitResult;\n module.resolved = await this.resolveDeps(visitResult.dependencies, id);\n }\n }\n }\n\n private linkModules() {\n for (let module of this.modules.values()) {\n if (isResolved(module)) {\n this.linkModule(module);\n }\n }\n }\n\n private linkModule(module: ResolvedInternalModule) {\n let exports = new Set<string>();\n for (let exp of module.parsed.exports) {\n if (typeof exp === 'string') {\n exports.add(exp);\n } else {\n let moduleName = module.resolved.get(exp.all)!;\n if (!isResolutionFailure(moduleName)) {\n let target = this.modules.get(moduleName)!;\n if (!isLinked(target) && isResolved(target)) {\n this.linkModule(target);\n }\n if (isLinked(target)) {\n for (let innerExp of target.linked.exports) {\n exports.add(innerExp);\n }\n } else {\n // our module doesn't successfully enter linked state because it\n // depends on stuff that also couldn't\n return;\n }\n }\n }\n }\n module.linked = {\n exports,\n };\n }\n\n private async resolveDeps(deps: string[], fromFile: string): Promise<InternalModule['resolved']> {\n let resolved = new Map() as NonNullable<InternalModule['resolved']>;\n for (let dep of deps) {\n if (['@embroider/macros'].includes(dep)) {\n // the audit process deliberately removes the @embroider/macros babel\n // plugins, so the imports are still present and should be left alone.\n continue;\n }\n\n let resolution = await this.resolveId(dep, fromFile);\n if (resolution) {\n resolved.set(dep, resolution);\n this.scheduleVisit(resolution, fromFile);\n continue;\n } else {\n resolved.set(dep, { isResolutionFailure: true as true });\n continue;\n }\n }\n return resolved;\n }\n\n private scheduleVisit(id: string, parent: string | RootMarker) {\n let record = this.modules.get(id);\n if (!record) {\n this.debug(`discovered`, id);\n record = {\n consumedFrom: [parent],\n };\n this.modules.set(id, record);\n this.moduleQueue.add(id);\n } else {\n record.consumedFrom.push(parent);\n }\n }\n\n private visitorFor(\n type: ContentType\n ): (\n this: ModuleVisitor,\n filename: string,\n content: Buffer | string\n ) => Promise<NonNullable<InternalModule['parsed'] | Finding[]>> {\n switch (type) {\n case 'html':\n return this.visitHTML;\n case 'javascript':\n return this.visitJS;\n default:\n throw assertNever(type);\n }\n }\n\n private async visitHTML(_filename: string, content: Buffer | string): Promise<ParsedInternalModule['parsed']> {\n let dom = new JSDOM(content);\n let scripts = dom.window.document.querySelectorAll('script[type=\"module\"]') as NodeListOf<HTMLScriptElement>;\n let dependencies = [] as string[];\n for (let script of scripts) {\n let src = script.src;\n if (!src) {\n continue;\n }\n if (new URL(src, 'http://example.com:4321').origin !== 'http://example.com:4321') {\n // src was absolute, we don't handle it\n continue;\n }\n dependencies.push(src);\n }\n\n return {\n imports: [],\n exports: new Set(),\n isCJS: false,\n isAMD: false,\n dependencies,\n transpiledContent: content,\n };\n }\n\n private async visitJS(\n filename: string,\n content: Buffer | string\n ): Promise<ParsedInternalModule['parsed'] | Finding[]> {\n let rawSource = content.toString('utf8');\n try {\n let result = await auditJS(rawSource, filename, this.params.babelConfig, this.params.frames);\n\n for (let problem of result.problems) {\n this.params.findings.push({\n filename,\n message: problem.message,\n detail: problem.detail,\n codeFrame: this.params.frames.render(problem.codeFrameIndex),\n });\n }\n return {\n exports: result.exports,\n imports: result.imports,\n isCJS: result.isCJS,\n isAMD: result.isAMD,\n dependencies: result.imports.map(i => i.source),\n transpiledContent: result.transpiledContent,\n };\n } catch (err) {\n if (['BABEL_PARSE_ERROR', 'BABEL_TRANSFORM_ERROR'].includes(err.code)) {\n return [\n {\n filename,\n message: `failed to parse`,\n detail: err.toString().replace(filename, explicitRelative(this.base, filename)),\n },\n ];\n } else {\n throw err;\n }\n }\n }\n\n private debug(message: string, ...args: any[]) {\n if (this.debugEnabled) {\n console.log(message, ...args);\n }\n }\n\n private toPublicModule(filename: string, module: InternalModule): Module {\n let result: UnparseableModule = {\n type: 'unparseable',\n appRelativePath: explicitRelative(this.base, filename),\n consumedFrom: module.consumedFrom.map(entry => {\n if (isRootMarker(entry)) {\n return entry;\n } else {\n return explicitRelative(this.base, entry);\n }\n }),\n };\n\n if (!module.parsed || !module.resolved) {\n return result;\n }\n\n let parsedResult: ParsedModule = {\n ...result,\n type: 'parsed',\n resolutions: fromPairs(\n Array.from(module.resolved).map(([source, target]) => [\n source,\n isResolutionFailure(target) ? null : explicitRelative(this.base, target),\n ])\n ),\n imports: module.parsed.imports.map(i => ({\n source: i.source,\n specifiers: i.specifiers.map(s => ({\n name: s.name,\n local: s.local,\n codeFrameIndex: s.codeFrameIndex,\n })),\n codeFrameIndex: i.codeFrameIndex,\n })),\n content: module.parsed.transpiledContent.toString(),\n isAMD: Boolean(module.parsed.isAMD),\n isCJS: Boolean(module.parsed.isCJS),\n };\n\n if (!module.linked) {\n return parsedResult;\n }\n\n return {\n ...parsedResult,\n type: 'complete',\n exports: [...module.linked.exports],\n };\n }\n\n private buildResults() {\n let publicModules: Record<string, Module> = {};\n for (let [filename, module] of this.modules) {\n let publicModule = this.toPublicModule(filename, module);\n publicModules[explicitRelative(this.base, filename)] = publicModule;\n }\n return publicModules;\n }\n}\n\nexport interface RootMarker {\n isRoot: true;\n}\n\nexport function isRootMarker(value: string | RootMarker | undefined): value is RootMarker {\n return Boolean(value && typeof value !== 'string' && value.isRoot);\n}\n\ninterface ResolutionFailure {\n isResolutionFailure: true;\n}\n\nfunction isResolutionFailure(result: string | ResolutionFailure | undefined): result is ResolutionFailure {\n return typeof result === 'object' && 'isResolutionFailure' in result;\n}\n"]}
@@ -1,3 +0,0 @@
1
- import type { Node } from 'broccoli-node-api';
2
- export default function modulesCompat(tree: Node): Node;
3
- //# sourceMappingURL=modules-compat.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modules-compat.d.ts","sourceRoot":"","sources":["../../src/modules-compat.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAO9C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAKtD"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = modulesCompat;
7
- const broccoli_funnel_1 = __importDefault(require("broccoli-funnel"));
8
- const broccoli_merge_trees_1 = __importDefault(require("broccoli-merge-trees"));
9
- // there is a weirder, older behavior where addons wrapped their addon tree
10
- // output in a `modules` folder. This strips that level off if it exists,
11
- // without discarding any other content that was not inside `modules`.
12
- function modulesCompat(tree) {
13
- return (0, broccoli_merge_trees_1.default)([
14
- (0, broccoli_funnel_1.default)(tree, { exclude: ['modules'] }),
15
- (0, broccoli_funnel_1.default)(tree, { srcDir: 'modules', allowEmpty: true }),
16
- ]);
17
- }
18
- //# sourceMappingURL=modules-compat.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modules-compat.js","sourceRoot":"","sources":["../../src/modules-compat.ts"],"names":[],"mappings":";;;;;AAQA,gCAKC;AAbD,sEAA0C;AAE1C,gFAA8C;AAE9C,2EAA2E;AAC3E,yEAAyE;AACzE,sEAAsE;AAEtE,SAAwB,aAAa,CAAC,IAAU;IAC9C,OAAO,IAAA,8BAAU,EAAC;QAChB,IAAA,yBAAW,EAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3C,IAAA,yBAAW,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;KAC3D,CAAC,CAAC;AACL,CAAC","sourcesContent":["import buildFunnel from 'broccoli-funnel';\nimport type { Node } from 'broccoli-node-api';\nimport mergeTrees from 'broccoli-merge-trees';\n\n// there is a weirder, older behavior where addons wrapped their addon tree\n// output in a `modules` folder. This strips that level off if it exists,\n// without discarding any other content that was not inside `modules`.\n\nexport default function modulesCompat(tree: Node): Node {\n return mergeTrees([\n buildFunnel(tree, { exclude: ['modules'] }),\n buildFunnel(tree, { srcDir: 'modules', allowEmpty: true }),\n ]);\n}\n"]}
@@ -1,8 +0,0 @@
1
- import type { Node } from 'broccoli-node-api';
2
- import { Funnel } from 'broccoli-funnel';
3
- export default class ObserveTree extends Funnel {
4
- private hook;
5
- constructor(combinedVendor: Node, hook: (outputPath: string) => Promise<void> | void);
6
- build(): Promise<void>;
7
- }
8
- //# sourceMappingURL=observe-tree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observe-tree.d.ts","sourceRoot":"","sources":["../../src/observe-tree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,MAAM;IACX,OAAO,CAAC,IAAI;gBAAlC,cAAc,EAAE,IAAI,EAAU,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAKtF,KAAK;CAIZ"}
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const broccoli_funnel_1 = require("broccoli-funnel");
4
- class ObserveTree extends broccoli_funnel_1.Funnel {
5
- constructor(combinedVendor, hook) {
6
- super(combinedVendor, {
7
- annotation: '@embroider/compat/observe-tree',
8
- });
9
- this.hook = hook;
10
- }
11
- async build() {
12
- await super.build();
13
- await this.hook(this.outputPath);
14
- }
15
- }
16
- exports.default = ObserveTree;
17
- //# sourceMappingURL=observe-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observe-tree.js","sourceRoot":"","sources":["../../src/observe-tree.ts"],"names":[],"mappings":";;AACA,qDAAyC;AAEzC,MAAqB,WAAY,SAAQ,wBAAM;IAC7C,YAAY,cAAoB,EAAU,IAAkD;QAC1F,KAAK,CAAC,cAAc,EAAE;YACpB,UAAU,EAAE,gCAAgC;SAC7C,CAAC,CAAC;QAHqC,SAAI,GAAJ,IAAI,CAA8C;IAI5F,CAAC;IACD,KAAK,CAAC,KAAK;QACT,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;CACF;AAVD,8BAUC","sourcesContent":["import type { Node } from 'broccoli-node-api';\nimport { Funnel } from 'broccoli-funnel';\n\nexport default class ObserveTree extends Funnel {\n constructor(combinedVendor: Node, private hook: (outputPath: string) => Promise<void> | void) {\n super(combinedVendor, {\n annotation: '@embroider/compat/observe-tree',\n });\n }\n async build() {\n await super.build();\n await this.hook(this.outputPath);\n }\n}\n"]}
@@ -1,17 +0,0 @@
1
- import type { V1AddonConstructor } from './v1-addon';
2
- import type { Options as CoreOptions } from '@embroider/core';
3
- import type { PackageRules } from './dependency-rules';
4
- export default interface Options extends CoreOptions {
5
- compatAdapters?: Map<string, V1AddonConstructor | null>;
6
- packageRules?: PackageRules[];
7
- allowUnsafeDynamicComponents?: boolean;
8
- availableContentForTypes?: string[];
9
- useAddonAppBoot?: boolean;
10
- useAddonConfigModule?: boolean;
11
- }
12
- export type CompatOptionsType = Required<Options>;
13
- export declare function optionsWithDefaults(options?: Options): CompatOptionsType;
14
- export declare const recommendedOptions: {
15
- [name: string]: Options;
16
- };
17
- //# sourceMappingURL=options.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAMvD,MAAM,CAAC,OAAO,WAAW,OAAQ,SAAQ,WAAW;IAgBlD,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC,CAAC;IAexD,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC;IAK9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;IAOvC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IAMpC,eAAe,CAAC,EAAE,OAAO,CAAC;IAK1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAaD,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;AAElD,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,iBAAiB,CA4CxE;AAMD,eAAO,MAAM,kBAAkB,EAAE;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAMxD,CAAC"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recommendedOptions = void 0;
4
- exports.optionsWithDefaults = optionsWithDefaults;
5
- const core_1 = require("@embroider/core");
6
- const defaults = Object.assign((0, core_1.optionsWithDefaults)(), {
7
- compatAdapters: new Map(),
8
- extraPublicTrees: [],
9
- workspaceDir: null,
10
- packageRules: [],
11
- allowUnsafeDynamicComponents: false,
12
- availableContentForTypes: [],
13
- useAddonAppBoot: true,
14
- useAddonConfigModule: true,
15
- });
16
- function optionsWithDefaults(options) {
17
- if ((options === null || options === void 0 ? void 0 : options.staticEmberSource) !== undefined) {
18
- if (options.staticEmberSource === false) {
19
- throw new Error(`You have set 'staticEmberSource' to 'false' in your Embroider options. This option has been removed is always considered to have the value 'true'. Please remove this setting to continue.`);
20
- }
21
- else {
22
- console.log(`You have set 'staticEmberSource' in your Embroider options. This can safely be removed now and it defaults to true.`);
23
- }
24
- }
25
- if ((options === null || options === void 0 ? void 0 : options.staticAddonTrees) !== undefined) {
26
- if (options.staticAddonTrees === false) {
27
- throw new Error(`You have set 'staticAddonTrees' to 'false' in your Embroider options. This option has been removed is always considered to have the value 'true'. Please remove this setting to continue.`);
28
- }
29
- else {
30
- console.log(`You have set 'staticAddonTrees' in your Embroider options. This can safely be removed now and it defaults to true.`);
31
- }
32
- }
33
- if ((options === null || options === void 0 ? void 0 : options.staticAddonTestSupportTrees) !== undefined) {
34
- if (options.staticAddonTestSupportTrees === false) {
35
- throw new Error(`You have set 'staticAddonTestSupportTrees' to 'false' in your Embroider options. This option has been removed is always considered to have the value 'true'. Please remove this setting to continue.`);
36
- }
37
- else {
38
- console.log(`You have set 'staticAddonTestSupportTrees' in your Embroider options. This can safely be removed now and it defaults to true.`);
39
- }
40
- }
41
- if ((options === null || options === void 0 ? void 0 : options.skipBabel) !== undefined) {
42
- throw new Error(`You have set 'skipBabel' on your Embroider options. This setting has been removed and you can now configure your babel ignores directly in the babel config in your repo https://babeljs.io/docs/options#ignore`);
43
- }
44
- return Object.assign({}, defaults, options);
45
- }
46
- // These are recommended configurations for addons to test themselves under. By
47
- // keeping them here, it's easier to do ecosystem-wide compatibility testing.
48
- // See the `@embroider/test-setup` package which can help consume these to test
49
- // them in CI.
50
- exports.recommendedOptions = Object.freeze({
51
- safe: Object.freeze({}),
52
- optimized: Object.freeze({
53
- allowUnsafeDynamicComponents: false,
54
- staticInvokables: true,
55
- }),
56
- });
57
- //# sourceMappingURL=options.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":";;;AA+EA,kDA4CC;AAzHD,0CAA0E;AAgE1E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAA,0BAAgB,GAAE,EAAE;IACjD,cAAc,EAAE,IAAI,GAAG,EAAE;IACzB,gBAAgB,EAAE,EAAE;IACpB,YAAY,EAAE,IAAI;IAClB,YAAY,EAAE,EAAE;IAChB,4BAA4B,EAAE,KAAK;IACnC,wBAAwB,EAAE,EAAE;IAC5B,eAAe,EAAE,IAAI;IACrB,oBAAoB,EAAE,IAAI;CAC3B,CAAC,CAAC;AAIH,SAAgB,mBAAmB,CAAC,OAAiB;IACnD,IAAI,CAAC,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,iBAAiB,MAAK,SAAS,EAAE,CAAC;QACtD,IAAK,OAAe,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CACb,4LAA4L,CAC7L,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,qHAAqH,CACtH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,gBAAgB,MAAK,SAAS,EAAE,CAAC;QACrD,IAAK,OAAe,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CACb,2LAA2L,CAC5L,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,oHAAoH,CACrH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,2BAA2B,MAAK,SAAS,EAAE,CAAC;QAChE,IAAK,OAAe,CAAC,2BAA2B,KAAK,KAAK,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,sMAAsM,CACvM,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,+HAA+H,CAChI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,aAAf,OAAO,uBAAP,OAAO,CAAU,SAAS,MAAK,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,iNAAiN,CAClN,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,cAAc;AACD,QAAA,kBAAkB,GAAgC,MAAM,CAAC,MAAM,CAAC;IAC3E,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;QACvB,4BAA4B,EAAE,KAAK;QACnC,gBAAgB,EAAE,IAAI;KACvB,CAAC;CACH,CAAC,CAAC","sourcesContent":["import type { V1AddonConstructor } from './v1-addon';\nimport type { Options as CoreOptions } from '@embroider/core';\nimport { optionsWithDefaults as coreWithDefaults } from '@embroider/core';\nimport type { PackageRules } from './dependency-rules';\n\n// These options control how hard we will try to achieve compatibility with v1\n// addons. The defaults are conservative and try to maximize compatibility, at\n// the cost of slower or bigger builds. As you eliminate sources of legacy\n// behavior you can benefit from the more aggressive modes.\nexport default interface Options extends CoreOptions {\n // Allows you to override how specific addons will build. Like:\n //\n // import V1Addon from '@embroider/compat'; let compatAdapters = new Map();\n // compatAdapters.set('some-addon', class extends V1Addon {// do stuff here:\n // see examples in ./compat-adapters\n // });\n //\n // This should be understood as a temporary way to keep yourself from getting\n // stuck, not an alternative to actually fixing upstream. For the most part,\n // the real solution will be converting the addon in question to natively\n // publish as v2.\n //\n // We ship with some default compatAdapters to fix otherwise incompatible\n // behaviors in popular addons. You can override the default adapters by\n // setting your own value here (including null to completely disable it).\n compatAdapters?: Map<string, V1AddonConstructor | null>;\n\n // Allows you to tell Embroider about otherwise dynamic dependencies within\n // your app and addons that it can't figure out on its own. These are combined\n // with the default rules that ship with Embroider. Your own rules take\n // precedence over the built-ins. Order matters, first matching rule will\n // apply to any given addon.\n //\n // See the addon-dependency-rules directory in the @embroider/compat package\n // for the built-in rules.\n //\n // These ONLY APPLY to v1-formatted addons. An addon that ships as native v2\n // is expected to do the right thing on its own.\n //\n // Follow to the definition of PackageRules for more info.\n packageRules?: PackageRules[];\n\n // This turns build errors into runtime errors. It is not a good idea to keep\n // it on in production. But it can be helpful when testing how much of your\n // app is able to work with staticComponents enabled.\n allowUnsafeDynamicComponents?: boolean;\n\n // Allows you to customize the list of content types addons use to provide HTML\n // to {{content-for}}. By default, the following content types are expected:\n // 'head', 'test-head', 'head-footer', 'test-head-footer', 'body', 'test-body',\n // 'body-footer', 'test-body-footer'. You need to use this config only to extend\n // this list.\n availableContentForTypes?: string[];\n\n // Allows you to cancel the warning that at least one classic addon provides\n // content-for 'app-boot'. This warning brings awareness for developers\n // switching to Embroider, but is no longer necessary once content-for\n // 'app-boot' code has been properly moved to the app-side.\n useAddonAppBoot?: boolean;\n\n // content-for 'config-module'. This warning brings awareness for developers\n // switching to Embroider, but is no longer necessary once content-for\n // 'config-module' code has been properly moved to the app-side.\n useAddonConfigModule?: boolean;\n}\n\nconst defaults = Object.assign(coreWithDefaults(), {\n compatAdapters: new Map(),\n extraPublicTrees: [],\n workspaceDir: null,\n packageRules: [],\n allowUnsafeDynamicComponents: false,\n availableContentForTypes: [],\n useAddonAppBoot: true,\n useAddonConfigModule: true,\n});\n\nexport type CompatOptionsType = Required<Options>;\n\nexport function optionsWithDefaults(options?: Options): CompatOptionsType {\n if ((options as any)?.staticEmberSource !== undefined) {\n if ((options as any).staticEmberSource === false) {\n throw new Error(\n `You have set 'staticEmberSource' to 'false' in your Embroider options. This option has been removed is always considered to have the value 'true'. Please remove this setting to continue.`\n );\n } else {\n console.log(\n `You have set 'staticEmberSource' in your Embroider options. This can safely be removed now and it defaults to true.`\n );\n }\n }\n\n if ((options as any)?.staticAddonTrees !== undefined) {\n if ((options as any).staticAddonTrees === false) {\n throw new Error(\n `You have set 'staticAddonTrees' to 'false' in your Embroider options. This option has been removed is always considered to have the value 'true'. Please remove this setting to continue.`\n );\n } else {\n console.log(\n `You have set 'staticAddonTrees' in your Embroider options. This can safely be removed now and it defaults to true.`\n );\n }\n }\n\n if ((options as any)?.staticAddonTestSupportTrees !== undefined) {\n if ((options as any).staticAddonTestSupportTrees === false) {\n throw new Error(\n `You have set 'staticAddonTestSupportTrees' to 'false' in your Embroider options. This option has been removed is always considered to have the value 'true'. Please remove this setting to continue.`\n );\n } else {\n console.log(\n `You have set 'staticAddonTestSupportTrees' in your Embroider options. This can safely be removed now and it defaults to true.`\n );\n }\n }\n\n if ((options as any)?.skipBabel !== undefined) {\n throw new Error(\n `You have set 'skipBabel' on your Embroider options. This setting has been removed and you can now configure your babel ignores directly in the babel config in your repo https://babeljs.io/docs/options#ignore`\n );\n }\n\n return Object.assign({}, defaults, options);\n}\n\n// These are recommended configurations for addons to test themselves under. By\n// keeping them here, it's easier to do ecosystem-wide compatibility testing.\n// See the `@embroider/test-setup` package which can help consume these to test\n// them in CI.\nexport const recommendedOptions: { [name: string]: Options } = Object.freeze({\n safe: Object.freeze({}),\n optimized: Object.freeze({\n allowUnsafeDynamicComponents: false,\n staticInvokables: true,\n }),\n});\n"]}
@@ -1,3 +0,0 @@
1
- import type { Transform } from 'babel-plugin-ember-template-compilation';
2
- export default function loadAstPlugins(registry: any): Transform[];
3
- //# sourceMappingURL=prepare-htmlbars-ast-plugins.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepare-htmlbars-ast-plugins.d.ts","sourceRoot":"","sources":["../../src/prepare-htmlbars-ast-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,EAAE,CAqCjE"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = loadAstPlugins;
4
- const path_1 = require("path");
5
- function loadAstPlugins(registry) {
6
- let wrappers = registry.load('htmlbars-ast-plugin');
7
- for (let wrapper of wrappers) {
8
- const { plugin, parallelBabel, baseDir, cacheKey } = wrapper;
9
- if (plugin) {
10
- // if the parallelBabel options were set on the wrapper, but not on the plugin, add it
11
- if (parallelBabel && !plugin.parallelBabel) {
12
- plugin.parallelBabel = {
13
- requireFile: (0, path_1.join)(__dirname, 'htmlbars-unwrapper.js'),
14
- buildUsing: 'unwrapPlugin',
15
- params: parallelBabel,
16
- };
17
- }
18
- // NOTE: `_parallelBabel` (not `parallelBabel`) is expected by broccoli-babel-transpiler
19
- if (plugin.parallelBabel && !plugin._parallelBabel) {
20
- plugin._parallelBabel = plugin.parallelBabel;
21
- }
22
- // if the baseDir is set on the wrapper, but not on the plugin, add it
23
- if (baseDir && !plugin.baseDir) {
24
- plugin.baseDir = baseDir;
25
- }
26
- // if the cacheKey is set on the wrapper, but not on the plugin, add it
27
- if (cacheKey && !plugin.cacheKey) {
28
- plugin.cacheKey = cacheKey;
29
- }
30
- }
31
- }
32
- let plugins = wrappers.map((wrapper) => wrapper.plugin);
33
- // the plugins in the registry historically run in backwards order for dumb
34
- // reasons. Embroider keeps them in sensible order, so here is where we do the
35
- // compatibility switch.
36
- plugins.reverse();
37
- return plugins;
38
- }
39
- //# sourceMappingURL=prepare-htmlbars-ast-plugins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prepare-htmlbars-ast-plugins.js","sourceRoot":"","sources":["../../src/prepare-htmlbars-ast-plugins.ts"],"names":[],"mappings":";;AAGA,iCAqCC;AAvCD,+BAA4B;AAE5B,SAAwB,cAAc,CAAC,QAAa;IAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACpD,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC7D,IAAI,MAAM,EAAE,CAAC;YACX,sFAAsF;YACtF,IAAI,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC3C,MAAM,CAAC,aAAa,GAAG;oBACrB,WAAW,EAAE,IAAA,WAAI,EAAC,SAAS,EAAE,uBAAuB,CAAC;oBACrD,UAAU,EAAE,cAAc;oBAC1B,MAAM,EAAE,aAAa;iBACtB,CAAC;YACJ,CAAC;YAED,wFAAwF;YACxF,IAAI,MAAM,CAAC,aAAa,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBACnD,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC;YAC/C,CAAC;YAED,sEAAsE;YACtE,IAAI,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;YAC3B,CAAC;YAED,uEAAuE;YACvE,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACjC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7D,2EAA2E;IAC3E,8EAA8E;IAC9E,wBAAwB;IACxB,OAAO,CAAC,OAAO,EAAE,CAAC;IAClB,OAAO,OAAO,CAAC;AACjB,CAAC","sourcesContent":["import type { Transform } from 'babel-plugin-ember-template-compilation';\nimport { join } from 'path';\n\nexport default function loadAstPlugins(registry: any): Transform[] {\n let wrappers = registry.load('htmlbars-ast-plugin');\n for (let wrapper of wrappers) {\n const { plugin, parallelBabel, baseDir, cacheKey } = wrapper;\n if (plugin) {\n // if the parallelBabel options were set on the wrapper, but not on the plugin, add it\n if (parallelBabel && !plugin.parallelBabel) {\n plugin.parallelBabel = {\n requireFile: join(__dirname, 'htmlbars-unwrapper.js'),\n buildUsing: 'unwrapPlugin',\n params: parallelBabel,\n };\n }\n\n // NOTE: `_parallelBabel` (not `parallelBabel`) is expected by broccoli-babel-transpiler\n if (plugin.parallelBabel && !plugin._parallelBabel) {\n plugin._parallelBabel = plugin.parallelBabel;\n }\n\n // if the baseDir is set on the wrapper, but not on the plugin, add it\n if (baseDir && !plugin.baseDir) {\n plugin.baseDir = baseDir;\n }\n\n // if the cacheKey is set on the wrapper, but not on the plugin, add it\n if (cacheKey && !plugin.cacheKey) {\n plugin.cacheKey = cacheKey;\n }\n }\n }\n let plugins = wrappers.map((wrapper: any) => wrapper.plugin);\n\n // the plugins in the registry historically run in backwards order for dumb\n // reasons. Embroider keeps them in sensible order, so here is where we do the\n // compatibility switch.\n plugins.reverse();\n return plugins;\n}\n"]}