@embroider/compat 4.1.26 → 4.1.28

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 (306) hide show
  1. package/README.md +30 -0
  2. package/dist/src/add-to-tree.d.ts +9 -0
  3. package/dist/src/add-to-tree.d.ts.map +1 -0
  4. package/dist/src/add-to-tree.js +22 -0
  5. package/dist/src/add-to-tree.js.map +1 -0
  6. package/dist/src/addon-dependency-rules/ember-basic-dropdown.d.ts +4 -0
  7. package/dist/src/addon-dependency-rules/ember-basic-dropdown.d.ts.map +1 -0
  8. package/dist/src/addon-dependency-rules/ember-basic-dropdown.js +28 -0
  9. package/dist/src/addon-dependency-rules/ember-basic-dropdown.js.map +1 -0
  10. package/dist/src/addon-dependency-rules/ember-modal-dialog.d.ts +4 -0
  11. package/dist/src/addon-dependency-rules/ember-modal-dialog.d.ts.map +1 -0
  12. package/dist/src/addon-dependency-rules/ember-modal-dialog.js +27 -0
  13. package/dist/src/addon-dependency-rules/ember-modal-dialog.js.map +1 -0
  14. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.d.ts +4 -0
  15. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.d.ts.map +1 -0
  16. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.js +23 -0
  17. package/dist/src/addon-dependency-rules/ember-power-select-typeahead.js.map +1 -0
  18. package/dist/src/addon-dependency-rules/ember-power-select-with-create.d.ts +4 -0
  19. package/dist/src/addon-dependency-rules/ember-power-select-with-create.d.ts.map +1 -0
  20. package/dist/src/addon-dependency-rules/ember-power-select-with-create.js +18 -0
  21. package/dist/src/addon-dependency-rules/ember-power-select-with-create.js.map +1 -0
  22. package/dist/src/addon-dependency-rules/ember-power-select.d.ts +4 -0
  23. package/dist/src/addon-dependency-rules/ember-power-select.d.ts.map +1 -0
  24. package/dist/src/addon-dependency-rules/ember-power-select.js +57 -0
  25. package/dist/src/addon-dependency-rules/ember-power-select.js.map +1 -0
  26. package/dist/src/audit/babel-visitor.d.ts +41 -0
  27. package/dist/src/audit/babel-visitor.d.ts.map +1 -0
  28. package/dist/src/audit/babel-visitor.js +230 -0
  29. package/dist/src/audit/babel-visitor.js.map +1 -0
  30. package/dist/src/audit/build.d.ts +8 -0
  31. package/dist/src/audit/build.d.ts.map +1 -0
  32. package/dist/src/audit/build.js +71 -0
  33. package/dist/src/audit/build.js.map +1 -0
  34. package/dist/src/audit/options.d.ts +9 -0
  35. package/dist/src/audit/options.d.ts.map +1 -0
  36. package/dist/src/audit/options.js +3 -0
  37. package/dist/src/audit/options.js.map +1 -0
  38. package/dist/src/audit.d.ts +60 -0
  39. package/dist/src/audit.d.ts.map +1 -0
  40. package/dist/src/audit.js +296 -0
  41. package/dist/src/audit.js.map +1 -0
  42. package/dist/src/babel.d.ts +18 -0
  43. package/dist/src/babel.d.ts.map +1 -0
  44. package/dist/src/babel.js +138 -0
  45. package/dist/src/babel.js.map +1 -0
  46. package/dist/src/build-compat-addon.d.ts +5 -0
  47. package/dist/src/build-compat-addon.d.ts.map +1 -0
  48. package/dist/src/build-compat-addon.js +43 -0
  49. package/dist/src/build-compat-addon.js.map +1 -0
  50. package/dist/src/compat-adapters/@ember/test-waiters.d.ts +6 -0
  51. package/dist/src/compat-adapters/@ember/test-waiters.d.ts.map +1 -0
  52. package/dist/src/compat-adapters/@ember/test-waiters.js +26 -0
  53. package/dist/src/compat-adapters/@ember/test-waiters.js.map +1 -0
  54. package/dist/src/compat-adapters/@ember-data/adapter.d.ts +2 -0
  55. package/dist/src/compat-adapters/@ember-data/adapter.d.ts.map +1 -0
  56. package/dist/src/compat-adapters/@ember-data/adapter.js +6 -0
  57. package/dist/src/compat-adapters/@ember-data/adapter.js.map +1 -0
  58. package/dist/src/compat-adapters/@ember-data/model.d.ts +2 -0
  59. package/dist/src/compat-adapters/@ember-data/model.d.ts.map +1 -0
  60. package/dist/src/compat-adapters/@ember-data/model.js +6 -0
  61. package/dist/src/compat-adapters/@ember-data/model.js.map +1 -0
  62. package/dist/src/compat-adapters/@ember-data/record-data.d.ts +2 -0
  63. package/dist/src/compat-adapters/@ember-data/record-data.d.ts.map +1 -0
  64. package/dist/src/compat-adapters/@ember-data/record-data.js +6 -0
  65. package/dist/src/compat-adapters/@ember-data/record-data.js.map +1 -0
  66. package/dist/src/compat-adapters/@ember-data/serializer.d.ts +2 -0
  67. package/dist/src/compat-adapters/@ember-data/serializer.d.ts.map +1 -0
  68. package/dist/src/compat-adapters/@ember-data/serializer.js +6 -0
  69. package/dist/src/compat-adapters/@ember-data/serializer.js.map +1 -0
  70. package/dist/src/compat-adapters/@ember-data/store.d.ts +2 -0
  71. package/dist/src/compat-adapters/@ember-data/store.d.ts.map +1 -0
  72. package/dist/src/compat-adapters/@ember-data/store.js +6 -0
  73. package/dist/src/compat-adapters/@ember-data/store.js.map +1 -0
  74. package/dist/src/compat-adapters/@glimmer/tracking.d.ts +10 -0
  75. package/dist/src/compat-adapters/@glimmer/tracking.d.ts.map +1 -0
  76. package/dist/src/compat-adapters/@glimmer/tracking.js +36 -0
  77. package/dist/src/compat-adapters/@glimmer/tracking.js.map +1 -0
  78. package/dist/src/compat-adapters/@html-next/vertical-collection.d.ts +5 -0
  79. package/dist/src/compat-adapters/@html-next/vertical-collection.d.ts.map +1 -0
  80. package/dist/src/compat-adapters/@html-next/vertical-collection.js +14 -0
  81. package/dist/src/compat-adapters/@html-next/vertical-collection.js.map +1 -0
  82. package/dist/src/compat-adapters/active-model-adapter.d.ts +5 -0
  83. package/dist/src/compat-adapters/active-model-adapter.d.ts.map +1 -0
  84. package/dist/src/compat-adapters/active-model-adapter.js +16 -0
  85. package/dist/src/compat-adapters/active-model-adapter.js.map +1 -0
  86. package/dist/src/compat-adapters/ember-asset-loader.d.ts +6 -0
  87. package/dist/src/compat-adapters/ember-asset-loader.d.ts.map +1 -0
  88. package/dist/src/compat-adapters/ember-asset-loader.js +36 -0
  89. package/dist/src/compat-adapters/ember-asset-loader.js.map +1 -0
  90. package/dist/src/compat-adapters/ember-cli-addon-docs.d.ts +5 -0
  91. package/dist/src/compat-adapters/ember-cli-addon-docs.d.ts.map +1 -0
  92. package/dist/src/compat-adapters/ember-cli-addon-docs.js +14 -0
  93. package/dist/src/compat-adapters/ember-cli-addon-docs.js.map +1 -0
  94. package/dist/src/compat-adapters/ember-cli-babel.d.ts +5 -0
  95. package/dist/src/compat-adapters/ember-cli-babel.d.ts.map +1 -0
  96. package/dist/src/compat-adapters/ember-cli-babel.js +25 -0
  97. package/dist/src/compat-adapters/ember-cli-babel.js.map +1 -0
  98. package/dist/src/compat-adapters/ember-cli-clipboard.d.ts +5 -0
  99. package/dist/src/compat-adapters/ember-cli-clipboard.d.ts.map +1 -0
  100. package/dist/src/compat-adapters/ember-cli-clipboard.js +31 -0
  101. package/dist/src/compat-adapters/ember-cli-clipboard.js.map +1 -0
  102. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.d.ts +6 -0
  103. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.d.ts.map +1 -0
  104. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.js +46 -0
  105. package/dist/src/compat-adapters/ember-cli-deprecation-workflow.js.map +1 -0
  106. package/dist/src/compat-adapters/ember-cli-fastboot-testing.d.ts +5 -0
  107. package/dist/src/compat-adapters/ember-cli-fastboot-testing.d.ts.map +1 -0
  108. package/dist/src/compat-adapters/ember-cli-fastboot-testing.js +21 -0
  109. package/dist/src/compat-adapters/ember-cli-fastboot-testing.js.map +1 -0
  110. package/dist/src/compat-adapters/ember-cli-fastboot.d.ts +12 -0
  111. package/dist/src/compat-adapters/ember-cli-fastboot.d.ts.map +1 -0
  112. package/dist/src/compat-adapters/ember-cli-fastboot.js +157 -0
  113. package/dist/src/compat-adapters/ember-cli-fastboot.js.map +1 -0
  114. package/dist/src/compat-adapters/ember-cli-mirage.d.ts +7 -0
  115. package/dist/src/compat-adapters/ember-cli-mirage.d.ts.map +1 -0
  116. package/dist/src/compat-adapters/ember-cli-mirage.js +29 -0
  117. package/dist/src/compat-adapters/ember-cli-mirage.js.map +1 -0
  118. package/dist/src/compat-adapters/ember-composable-helpers.d.ts +6 -0
  119. package/dist/src/compat-adapters/ember-composable-helpers.d.ts.map +1 -0
  120. package/dist/src/compat-adapters/ember-composable-helpers.js +40 -0
  121. package/dist/src/compat-adapters/ember-composable-helpers.js.map +1 -0
  122. package/dist/src/compat-adapters/ember-data.d.ts +10 -0
  123. package/dist/src/compat-adapters/ember-data.d.ts.map +1 -0
  124. package/dist/src/compat-adapters/ember-data.js +74 -0
  125. package/dist/src/compat-adapters/ember-data.js.map +1 -0
  126. package/dist/src/compat-adapters/ember-decorators.d.ts +5 -0
  127. package/dist/src/compat-adapters/ember-decorators.d.ts.map +1 -0
  128. package/dist/src/compat-adapters/ember-decorators.js +16 -0
  129. package/dist/src/compat-adapters/ember-decorators.js.map +1 -0
  130. package/dist/src/compat-adapters/ember-engines.d.ts +15 -0
  131. package/dist/src/compat-adapters/ember-engines.d.ts.map +1 -0
  132. package/dist/src/compat-adapters/ember-engines.js +34 -0
  133. package/dist/src/compat-adapters/ember-engines.js.map +1 -0
  134. package/dist/src/compat-adapters/ember-exam.d.ts +16 -0
  135. package/dist/src/compat-adapters/ember-exam.d.ts.map +1 -0
  136. package/dist/src/compat-adapters/ember-exam.js +30 -0
  137. package/dist/src/compat-adapters/ember-exam.js.map +1 -0
  138. package/dist/src/compat-adapters/ember-fetch.d.ts +7 -0
  139. package/dist/src/compat-adapters/ember-fetch.d.ts.map +1 -0
  140. package/dist/src/compat-adapters/ember-fetch.js +56 -0
  141. package/dist/src/compat-adapters/ember-fetch.js.map +1 -0
  142. package/dist/src/compat-adapters/ember-get-config.d.ts +17 -0
  143. package/dist/src/compat-adapters/ember-get-config.d.ts.map +1 -0
  144. package/dist/src/compat-adapters/ember-get-config.js +41 -0
  145. package/dist/src/compat-adapters/ember-get-config.js.map +1 -0
  146. package/dist/src/compat-adapters/ember-inflector.d.ts +7 -0
  147. package/dist/src/compat-adapters/ember-inflector.d.ts.map +1 -0
  148. package/dist/src/compat-adapters/ember-inflector.js +39 -0
  149. package/dist/src/compat-adapters/ember-inflector.js.map +1 -0
  150. package/dist/src/compat-adapters/ember-percy.d.ts +5 -0
  151. package/dist/src/compat-adapters/ember-percy.d.ts.map +1 -0
  152. package/dist/src/compat-adapters/ember-percy.js +18 -0
  153. package/dist/src/compat-adapters/ember-percy.js.map +1 -0
  154. package/dist/src/compat-adapters/ember-resolver.d.ts +5 -0
  155. package/dist/src/compat-adapters/ember-resolver.d.ts.map +1 -0
  156. package/dist/src/compat-adapters/ember-resolver.js +21 -0
  157. package/dist/src/compat-adapters/ember-resolver.js.map +1 -0
  158. package/dist/src/compat-adapters/ember-scroll-modifiers.d.ts +5 -0
  159. package/dist/src/compat-adapters/ember-scroll-modifiers.d.ts.map +1 -0
  160. package/dist/src/compat-adapters/ember-scroll-modifiers.js +23 -0
  161. package/dist/src/compat-adapters/ember-scroll-modifiers.js.map +1 -0
  162. package/dist/src/compat-adapters/ember-source.d.ts +12 -0
  163. package/dist/src/compat-adapters/ember-source.d.ts.map +1 -0
  164. package/dist/src/compat-adapters/ember-source.js +465 -0
  165. package/dist/src/compat-adapters/ember-source.js.map +1 -0
  166. package/dist/src/compat-adapters/ember-svg-jar.d.ts +5 -0
  167. package/dist/src/compat-adapters/ember-svg-jar.d.ts.map +1 -0
  168. package/dist/src/compat-adapters/ember-svg-jar.js +29 -0
  169. package/dist/src/compat-adapters/ember-svg-jar.js.map +1 -0
  170. package/dist/src/compat-adapters/ember-test-selectors.d.ts +6 -0
  171. package/dist/src/compat-adapters/ember-test-selectors.d.ts.map +1 -0
  172. package/dist/src/compat-adapters/ember-test-selectors.js +19 -0
  173. package/dist/src/compat-adapters/ember-test-selectors.js.map +1 -0
  174. package/dist/src/compat-addons.d.ts +17 -0
  175. package/dist/src/compat-addons.d.ts.map +1 -0
  176. package/dist/src/compat-addons.js +48 -0
  177. package/dist/src/compat-addons.js.map +1 -0
  178. package/dist/src/compat-app-builder.d.ts +28 -0
  179. package/dist/src/compat-app-builder.d.ts.map +1 -0
  180. package/dist/src/compat-app-builder.js +221 -0
  181. package/dist/src/compat-app-builder.js.map +1 -0
  182. package/dist/src/compat-app.d.ts +62 -0
  183. package/dist/src/compat-app.d.ts.map +1 -0
  184. package/dist/src/compat-app.js +618 -0
  185. package/dist/src/compat-app.js.map +1 -0
  186. package/dist/src/compat-utils.d.ts +10 -0
  187. package/dist/src/compat-utils.d.ts.map +1 -0
  188. package/dist/src/compat-utils.js +65 -0
  189. package/dist/src/compat-utils.js.map +1 -0
  190. package/dist/src/content-for-config.d.ts +12 -0
  191. package/dist/src/content-for-config.d.ts.map +1 -0
  192. package/dist/src/content-for-config.js +66 -0
  193. package/dist/src/content-for-config.js.map +1 -0
  194. package/dist/src/dasherize-component-name.d.ts +3 -0
  195. package/dist/src/dasherize-component-name.d.ts.map +1 -0
  196. package/dist/src/dasherize-component-name.js +28 -0
  197. package/dist/src/dasherize-component-name.js.map +1 -0
  198. package/dist/src/default-pipeline.d.ts +10 -0
  199. package/dist/src/default-pipeline.d.ts.map +1 -0
  200. package/dist/src/default-pipeline.js +43 -0
  201. package/dist/src/default-pipeline.js.map +1 -0
  202. package/dist/src/dependency-rules.d.ts +62 -0
  203. package/dist/src/dependency-rules.d.ts.map +1 -0
  204. package/dist/src/dependency-rules.js +89 -0
  205. package/dist/src/dependency-rules.js.map +1 -0
  206. package/dist/src/detect-babel-plugins.d.ts +7 -0
  207. package/dist/src/detect-babel-plugins.d.ts.map +1 -0
  208. package/dist/src/detect-babel-plugins.js +96 -0
  209. package/dist/src/detect-babel-plugins.js.map +1 -0
  210. package/dist/src/detect-compact-reexports.d.ts +3 -0
  211. package/dist/src/detect-compact-reexports.d.ts.map +1 -0
  212. package/dist/src/detect-compact-reexports.js +17 -0
  213. package/dist/src/detect-compact-reexports.js.map +1 -0
  214. package/dist/src/dummy-package.d.ts +9 -0
  215. package/dist/src/dummy-package.d.ts.map +1 -0
  216. package/dist/src/dummy-package.js +44 -0
  217. package/dist/src/dummy-package.js.map +1 -0
  218. package/dist/src/empty-package-tree.d.ts +9 -0
  219. package/dist/src/empty-package-tree.d.ts.map +1 -0
  220. package/dist/src/empty-package-tree.js +36 -0
  221. package/dist/src/empty-package-tree.js.map +1 -0
  222. package/dist/src/get-real-addon.d.ts +7 -0
  223. package/dist/src/get-real-addon.d.ts.map +1 -0
  224. package/dist/src/get-real-addon.js +33 -0
  225. package/dist/src/get-real-addon.js.map +1 -0
  226. package/dist/src/hbs-to-js-broccoli-plugin.d.ts +9 -0
  227. package/dist/src/hbs-to-js-broccoli-plugin.d.ts.map +1 -0
  228. package/dist/src/hbs-to-js-broccoli-plugin.js +39 -0
  229. package/dist/src/hbs-to-js-broccoli-plugin.js.map +1 -0
  230. package/dist/src/htmlbars-unwrapper.d.ts +6 -0
  231. package/dist/src/htmlbars-unwrapper.d.ts.map +1 -0
  232. package/dist/src/htmlbars-unwrapper.js +8 -0
  233. package/dist/src/htmlbars-unwrapper.js.map +1 -0
  234. package/dist/src/http-audit.d.ts +14 -0
  235. package/dist/src/http-audit.d.ts.map +1 -0
  236. package/dist/src/http-audit.js +60 -0
  237. package/dist/src/http-audit.js.map +1 -0
  238. package/dist/src/index.d.ts +8 -0
  239. package/dist/src/index.d.ts.map +1 -0
  240. package/dist/src/index.js +18 -0
  241. package/dist/src/index.js.map +1 -0
  242. package/dist/src/merges.d.ts +3 -0
  243. package/dist/src/merges.d.ts.map +1 -0
  244. package/dist/src/merges.js +32 -0
  245. package/dist/src/merges.js.map +1 -0
  246. package/dist/src/module-visitor.d.ts +53 -0
  247. package/dist/src/module-visitor.d.ts.map +1 -0
  248. package/dist/src/module-visitor.js +285 -0
  249. package/dist/src/module-visitor.js.map +1 -0
  250. package/dist/src/modules-compat.d.ts +3 -0
  251. package/dist/src/modules-compat.d.ts.map +1 -0
  252. package/dist/src/modules-compat.js +18 -0
  253. package/dist/src/modules-compat.js.map +1 -0
  254. package/dist/src/observe-tree.d.ts +8 -0
  255. package/dist/src/observe-tree.d.ts.map +1 -0
  256. package/dist/src/observe-tree.js +17 -0
  257. package/dist/src/observe-tree.js.map +1 -0
  258. package/dist/src/options.d.ts +17 -0
  259. package/dist/src/options.d.ts.map +1 -0
  260. package/dist/src/options.js +57 -0
  261. package/dist/src/options.js.map +1 -0
  262. package/dist/src/prepare-htmlbars-ast-plugins.d.ts +3 -0
  263. package/dist/src/prepare-htmlbars-ast-plugins.d.ts.map +1 -0
  264. package/dist/src/prepare-htmlbars-ast-plugins.js +39 -0
  265. package/dist/src/prepare-htmlbars-ast-plugins.js.map +1 -0
  266. package/dist/src/resolver-transform.d.ts +29 -0
  267. package/dist/src/resolver-transform.d.ts.map +1 -0
  268. package/dist/src/resolver-transform.js +1094 -0
  269. package/dist/src/resolver-transform.js.map +1 -0
  270. package/dist/src/rewrite-addon-tree.d.ts +9 -0
  271. package/dist/src/rewrite-addon-tree.d.ts.map +1 -0
  272. package/dist/src/rewrite-addon-tree.js +46 -0
  273. package/dist/src/rewrite-addon-tree.js.map +1 -0
  274. package/dist/src/rewrite-package-json.d.ts +8 -0
  275. package/dist/src/rewrite-package-json.d.ts.map +1 -0
  276. package/dist/src/rewrite-package-json.js +23 -0
  277. package/dist/src/rewrite-package-json.js.map +1 -0
  278. package/dist/src/smoosh-package-json.d.ts +9 -0
  279. package/dist/src/smoosh-package-json.d.ts.map +1 -0
  280. package/dist/src/smoosh-package-json.js +30 -0
  281. package/dist/src/smoosh-package-json.js.map +1 -0
  282. package/dist/src/snitch.d.ts +14 -0
  283. package/dist/src/snitch.d.ts.map +1 -0
  284. package/dist/src/snitch.js +42 -0
  285. package/dist/src/snitch.js.map +1 -0
  286. package/dist/src/standalone-addon-build.d.ts +3 -0
  287. package/dist/src/standalone-addon-build.d.ts.map +1 -0
  288. package/dist/src/standalone-addon-build.js +106 -0
  289. package/dist/src/standalone-addon-build.js.map +1 -0
  290. package/dist/src/synthesize-template-only-components.d.ts +17 -0
  291. package/dist/src/synthesize-template-only-components.d.ts.map +1 -0
  292. package/dist/src/synthesize-template-only-components.js +109 -0
  293. package/dist/src/synthesize-template-only-components.js.map +1 -0
  294. package/dist/src/v1-addon.d.ts +71 -0
  295. package/dist/src/v1-addon.d.ts.map +1 -0
  296. package/dist/src/v1-addon.js +1025 -0
  297. package/dist/src/v1-addon.js.map +1 -0
  298. package/dist/src/v1-config.d.ts +17 -0
  299. package/dist/src/v1-config.d.ts.map +1 -0
  300. package/dist/src/v1-config.js +26 -0
  301. package/dist/src/v1-config.js.map +1 -0
  302. package/dist/src/v1-instance-cache.d.ts +14 -0
  303. package/dist/src/v1-instance-cache.d.ts.map +1 -0
  304. package/dist/src/v1-instance-cache.js +66 -0
  305. package/dist/src/v1-instance-cache.js.map +1 -0
  306. package/package.json +6 -6
@@ -0,0 +1,465 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const v1_addon_1 = __importDefault(require("../v1-addon"));
13
+ const broccoli_funnel_1 = __importDefault(require("broccoli-funnel"));
14
+ const broccoli_merge_trees_1 = __importDefault(require("broccoli-merge-trees"));
15
+ const add_to_tree_1 = __importDefault(require("../add-to-tree"));
16
+ const fs_extra_1 = require("fs-extra");
17
+ const path_1 = require("path");
18
+ const typescript_memoize_1 = require("typescript-memoize");
19
+ const semver_1 = require("semver");
20
+ const core_1 = require("@babel/core");
21
+ const broccoli_plugin_1 = __importDefault(require("broccoli-plugin"));
22
+ const fs_1 = require("fs");
23
+ class default_1 extends v1_addon_1.default {
24
+ get v2Tree() {
25
+ return (0, broccoli_merge_trees_1.default)([super.v2Tree, (0, broccoli_funnel_1.default)(this.rootTree, { include: ['dist/ember-template-compiler.js'] })]);
26
+ }
27
+ // versions of ember-source prior to
28
+ // https://github.com/emberjs/ember.js/pull/20675 ship dist/packages and
29
+ // dist/dependencies separately and the imports between them are package-name
30
+ // imports. Since many of the dependencies are also true package.json
31
+ // dependencies (in order to get typescript types), and our module-resolver
32
+ // prioritizes true dependencies, it's necessary to detect and remove the
33
+ // package.json dependencies.
34
+ //
35
+ // After the above linked change, ember-source ships only dist/packages and
36
+ // the inter-package imports are all relative. Some of the things in
37
+ // dist/packages are still the rolled-in dependencies, but now that the
38
+ // imports are all relative we need no special handling for them (beyond the
39
+ // normal v2 addon renamed-modules support.
40
+ get includedDependencies() {
41
+ let result = [];
42
+ let depsDir = (0, path_1.resolve)(this.root, 'dist', 'dependencies');
43
+ if (!(0, fs_1.existsSync)(depsDir)) {
44
+ return result;
45
+ }
46
+ for (let name of (0, fs_extra_1.readdirSync)(depsDir)) {
47
+ if (name[0] === '@') {
48
+ for (let innerName of (0, fs_extra_1.readdirSync)((0, path_1.resolve)(this.root, 'dist', 'dependencies', name))) {
49
+ if (innerName.endsWith('.js')) {
50
+ result.push(name + '/' + innerName.slice(0, -3));
51
+ }
52
+ }
53
+ }
54
+ else {
55
+ if (name.endsWith('.js')) {
56
+ result.push(name.slice(0, -3));
57
+ }
58
+ }
59
+ }
60
+ return result;
61
+ }
62
+ get newPackageJSON() {
63
+ var _a;
64
+ let json = super.newPackageJSON;
65
+ for (let name of this.includedDependencies) {
66
+ // weirdly, many of the inlined dependency are still listed as real
67
+ // dependencies too. If we don't delete them here, they will take
68
+ // precedence over the inlined ones, because the embroider module-resolver
69
+ // tries to prioritize real deps.
70
+ (_a = json.dependencies) === null || _a === void 0 ? true : delete _a[name];
71
+ }
72
+ return json;
73
+ }
74
+ customizes(treeName) {
75
+ // we are adding custom implementations of these
76
+ return treeName === 'treeForAddon' || treeName === 'treeForVendor' || super.customizes(treeName);
77
+ }
78
+ invokeOriginalTreeFor(name) {
79
+ if (name === 'addon') {
80
+ return this.customAddonTree();
81
+ }
82
+ if (name === 'vendor') {
83
+ return this.customVendorTree();
84
+ }
85
+ }
86
+ // Our addon tree is all of the "packages" we share. @embroider/compat already
87
+ // supports that pattern of emitting modules into other package's namespaces.
88
+ customAddonTree() {
89
+ let packages = (0, broccoli_funnel_1.default)(this.rootTree, {
90
+ srcDir: 'dist/packages',
91
+ });
92
+ let trees = [
93
+ packages,
94
+ (0, broccoli_funnel_1.default)(this.rootTree, {
95
+ srcDir: 'dist/dependencies',
96
+ allowEmpty: true,
97
+ }),
98
+ ];
99
+ if ((0, semver_1.satisfies)(this.packageJSON.version, '>= 4.0.0-alpha.0 <4.10.0-alpha.0', { includePrerelease: true })) {
100
+ // import { loc } from '@ember/string' was removed in 4.0. but the
101
+ // top-level `ember` package tries to import it until 4.10. A
102
+ // spec-compliant ES modules implementation will treat this as a parse
103
+ // error.
104
+ trees.push(new ReplaceRequire([new FixStringLoc([packages])]));
105
+ }
106
+ else if ((0, semver_1.satisfies)(this.packageJSON.version, '<5.7.0')) {
107
+ trees.push(new ReplaceRequire([packages]));
108
+ }
109
+ if ((0, semver_1.satisfies)(this.packageJSON.version, '<5.12.0')) {
110
+ trees.push(new FixDeprecateFunction([packages]));
111
+ }
112
+ if ((0, semver_1.satisfies)(this.packageJSON.version, '<5.11.1')) {
113
+ trees.push(new FixCycleImports([packages]));
114
+ }
115
+ return (0, broccoli_merge_trees_1.default)(trees, { overwrite: true });
116
+ }
117
+ // We're zeroing out these files in vendor rather than deleting them, because
118
+ // we can't easily intercept the `app.import` that presumably exists for them,
119
+ // so rather than error they will just be empty.
120
+ //
121
+ // The reason we're zeroing these out is that we're going to consume all our
122
+ // modules directly out of treeForAddon instead, as real modules that webpack
123
+ // can see.
124
+ customVendorTree() {
125
+ return new add_to_tree_1.default(this.addonInstance._treeFor('vendor'), outputPath => {
126
+ (0, fs_extra_1.unlinkSync)((0, path_1.join)(outputPath, 'ember', 'ember.js'));
127
+ (0, fs_extra_1.outputFileSync)((0, path_1.join)(outputPath, 'ember', 'ember.js'), '');
128
+ (0, fs_extra_1.unlinkSync)((0, path_1.join)(outputPath, 'ember', 'ember-testing.js'));
129
+ (0, fs_extra_1.outputFileSync)((0, path_1.join)(outputPath, 'ember', 'ember-testing.js'), '');
130
+ });
131
+ }
132
+ get packageMeta() {
133
+ let meta = super.packageMeta;
134
+ if (!meta['implicit-modules']) {
135
+ meta['implicit-modules'] = [];
136
+ }
137
+ meta['implicit-modules'].push('./ember/index.js');
138
+ // before 5.6, Ember uses the AMD loader to decide if it's test-only parts
139
+ // are present, so we must ensure they're registered. After that it's
140
+ // enough to evaluate ember-testing, which @embroider/core is hard-coded
141
+ // to do in the backward-compatible tests bundle.
142
+ if (!(0, semver_1.satisfies)(this.packageJSON.version, '>= 5.6.0-alpha.0', { includePrerelease: true })) {
143
+ if (!meta['implicit-test-modules']) {
144
+ meta['implicit-test-modules'] = [];
145
+ }
146
+ meta['implicit-test-modules'].push('./ember-testing/index.js');
147
+ }
148
+ return meta;
149
+ }
150
+ }
151
+ exports.default = default_1;
152
+ __decorate([
153
+ (0, typescript_memoize_1.Memoize)()
154
+ ], default_1.prototype, "includedDependencies", null);
155
+ class FixStringLoc extends broccoli_plugin_1.default {
156
+ build() {
157
+ let inSource = (0, fs_extra_1.readFileSync)((0, path_1.resolve)(this.inputPaths[0], 'ember', 'index.js'), 'utf8');
158
+ let outSource = (0, core_1.transform)(inSource, {
159
+ plugins: [fixStringLoc],
160
+ configFile: false,
161
+ }).code;
162
+ (0, fs_extra_1.outputFileSync)((0, path_1.resolve)(this.outputPath, 'ember', 'index.js'), outSource, 'utf8');
163
+ }
164
+ }
165
+ class ReplaceRequire extends broccoli_plugin_1.default {
166
+ build() {
167
+ updateFileWithTransform(this, 'ember/index.js', function (babel) {
168
+ const { types: t } = babel;
169
+ function createLoader() {
170
+ return t.objectExpression([
171
+ t.objectMethod('get', t.identifier('require'), [], t.blockStatement([
172
+ t.returnStatement(t.memberExpression(t.identifier('globalThis'), t.identifier('require'))),
173
+ ])),
174
+ t.objectMethod('get', t.identifier('define'), [], t.blockStatement([
175
+ t.returnStatement(t.memberExpression(t.identifier('globalThis'), t.identifier('define'))),
176
+ ])),
177
+ t.objectMethod('get', t.identifier('registry'), [], t.blockStatement([
178
+ t.returnStatement(t.logicalExpression('??', t.optionalMemberExpression(t.memberExpression(t.identifier('globalThis'), t.identifier('requirejs')), t.identifier('entries'), false, true), t.optionalMemberExpression(t.memberExpression(t.identifier('globalThis'), t.identifier('require')), t.identifier('entries'), false, true))),
179
+ ])),
180
+ ]);
181
+ }
182
+ return {
183
+ visitor: {
184
+ CallExpression(path) {
185
+ if (path.node.callee.type === 'Identifier' &&
186
+ (path.node.callee.name === 'has' || path.node.callee.name === 'require') &&
187
+ path.node.arguments[0].type === 'StringLiteral' &&
188
+ path.node.arguments[0].value === 'ember-testing') {
189
+ path.replaceWith(t.identifier('EmberTestingImpl'));
190
+ }
191
+ },
192
+ ImportDeclaration(path) {
193
+ if (path.node.source.value === 'require') {
194
+ path.replaceWith(t.importDeclaration([t.importSpecifier(t.identifier('EmberTestingImpl'), t.identifier('_impl'))], t.stringLiteral('@ember/test')));
195
+ }
196
+ },
197
+ VariableDeclaration(path) {
198
+ if (path.node.declarations[0].id.type === 'Identifier' &&
199
+ path.node.declarations[0].id.name === 'PartialEmber' &&
200
+ path.node.declarations[0].init.type === 'ObjectExpression') {
201
+ const declaration = path.node.declarations[0];
202
+ const loader = declaration.init.properties.find(p => (p.type === 'ObjectProperty' && p.key.type === 'Identifier' && p.key.name) === '__loader');
203
+ loader.value = createLoader();
204
+ }
205
+ },
206
+ AssignmentExpression(path) {
207
+ if (path.node.left.type === 'MemberExpression' &&
208
+ path.node.left.object.type === 'Identifier' &&
209
+ path.node.left.object.name === 'Ember' &&
210
+ path.node.left.property.type === 'Identifier' &&
211
+ path.node.left.property.name === '__loader') {
212
+ path.node.right = createLoader();
213
+ }
214
+ },
215
+ },
216
+ };
217
+ });
218
+ replaceFile(this, '@ember/test/adapter.js', `import { Adapter } from 'ember-testing';
219
+ export default Adapter;`);
220
+ replaceFile(this, '@ember/test/index.js', `export let registerAsyncHelper;
221
+ export let registerHelper;
222
+ export let registerWaiter;
223
+ export let unregisterHelper;
224
+ export let unregisterWaiter;
225
+ export let _impl;
226
+
227
+ let testingNotAvailableMessage = () => {
228
+ throw new Error('Attempted to use test utilities, but \`ember-testing\` was not included');
229
+ };
230
+
231
+ registerAsyncHelper = testingNotAvailableMessage;
232
+ registerHelper = testingNotAvailableMessage;
233
+ registerWaiter = testingNotAvailableMessage;
234
+ unregisterHelper = testingNotAvailableMessage;
235
+ unregisterWaiter = testingNotAvailableMessage;
236
+
237
+ export function registerTestImplementaiton(impl) {
238
+ let { Test } = impl;
239
+ registerAsyncHelper = Test.registerAsyncHelper;
240
+ registerHelper = Test.registerHelper;
241
+ registerWaiter = Test.registerWaiter;
242
+ unregisterHelper = Test.unregisterHelper;
243
+ unregisterWaiter = Test.unregisterWaiter;
244
+ _impl = impl;
245
+ }`);
246
+ replaceFile(this, 'ember-testing/index.js', `export * from './lib/public-api';
247
+ import * as EmberTesting from './lib/public-api';
248
+ import { registerTestImplementaiton } from '@ember/test';
249
+
250
+
251
+ registerTestImplementaiton(EmberTesting);`);
252
+ replaceFile(this, 'ember-testing/lib/public-api.js', `
253
+ export { default as Test } from './test';
254
+ export { default as Adapter } from './adapters/adapter';
255
+ export { default as setupForTesting } from './setup_for_testing';
256
+ export { default as QUnitAdapter } from './adapters/qunit';
257
+
258
+ import './ext/application';
259
+ import './ext/rsvp'; // setup RSVP + run loop integration
260
+ import './helpers'; // adds helpers to helpers object in Test
261
+ import './initializers'; // to setup initializer`);
262
+ }
263
+ }
264
+ class FixDeprecateFunction extends broccoli_plugin_1.default {
265
+ build() {
266
+ let inSource = (0, fs_extra_1.readFileSync)((0, path_1.resolve)(this.inputPaths[0], '@ember', 'debug', 'index.js'), 'utf8');
267
+ let outSource = (0, core_1.transform)(inSource, {
268
+ plugins: [fixDeprecate],
269
+ configFile: false,
270
+ }).code;
271
+ (0, fs_extra_1.outputFileSync)((0, path_1.resolve)(this.outputPath, '@ember', 'debug', 'index.js'), outSource, 'utf8');
272
+ }
273
+ }
274
+ function fixDeprecate(babel) {
275
+ const { types: t } = babel;
276
+ return {
277
+ name: 'ast-transform', // not required
278
+ visitor: {
279
+ Program(path) {
280
+ path.node.body.unshift(t.functionDeclaration(t.identifier('newDeprecate'), [t.restElement(t.identifier('rest'))], t.blockStatement([
281
+ t.returnStatement(t.callExpression(t.logicalExpression('??', t.identifier('currentDeprecate'), t.identifier('_deprecate')), [t.spreadElement(t.identifier('rest'))])),
282
+ ])));
283
+ },
284
+ AssignmentExpression(path) {
285
+ if (path.node.left.type === 'Identifier' && path.node.left.name === 'deprecate') {
286
+ path.node.left.name = 'currentDeprecate';
287
+ }
288
+ },
289
+ ReturnStatement(path) {
290
+ var _a;
291
+ if (((_a = path.node.argument) === null || _a === void 0 ? void 0 : _a.type) === 'Identifier' && path.node.argument.name === 'deprecate') {
292
+ path.node.argument.name = 'newDeprecate';
293
+ }
294
+ },
295
+ CallExpression(path) {
296
+ if (path.node.callee.type === 'Identifier' && path.node.callee.name === 'deprecate') {
297
+ path.node.callee.name = 'newDeprecate';
298
+ }
299
+ if (path.node.callee.type === 'Identifier' &&
300
+ path.node.callee.name === 'setDebugFunction' &&
301
+ path.node.arguments[0].type === 'StringLiteral' &&
302
+ path.node.arguments[0].value === 'deprecate') {
303
+ path.remove();
304
+ }
305
+ },
306
+ ExportSpecifier(path) {
307
+ if (path.node.local.name === 'deprecate') {
308
+ path.node.local = t.identifier('newDeprecate');
309
+ }
310
+ },
311
+ VariableDeclarator(path) {
312
+ if (path.node.id.type === 'Identifier' && path.node.id.name === 'deprecate') {
313
+ path.node.id.name = 'currentDeprecate';
314
+ path.node.init = null; // leave undefined for newDeprecate's (currentDeprecate ?? _deprecated) expression
315
+ }
316
+ },
317
+ },
318
+ };
319
+ }
320
+ function updateFileWithTransform(context, file, transformFunction) {
321
+ // only update the file if it exists - this helps the codemods to work across many different versions
322
+ if (!(0, fs_1.existsSync)((0, path_1.resolve)(context.inputPaths[0], file))) {
323
+ return;
324
+ }
325
+ let inSource = (0, fs_extra_1.readFileSync)((0, path_1.resolve)(context.inputPaths[0], file), 'utf8');
326
+ let plugins = Array.isArray(transformFunction) ? transformFunction : [transformFunction];
327
+ let outSource = (0, core_1.transform)(inSource, {
328
+ plugins,
329
+ configFile: false,
330
+ }).code;
331
+ (0, fs_extra_1.outputFileSync)((0, path_1.resolve)(context.outputPath, file), outSource, 'utf8');
332
+ }
333
+ function replaceFile(context, file, content) {
334
+ (0, fs_extra_1.outputFileSync)((0, path_1.resolve)(context.outputPath, file), content, 'utf8');
335
+ }
336
+ class FixCycleImports extends broccoli_plugin_1.default {
337
+ build() {
338
+ for (let file of ['@ember/object/observable.js', '@ember/utils/lib/is_empty.js']) {
339
+ updateFileWithTransform(this, file, moveObjectSpecifiersToMetal);
340
+ }
341
+ updateFileWithTransform(this, '@ember/array/index.js', [
342
+ moveObjectSpecifiersToMetal,
343
+ function (babel) {
344
+ const { types: t } = babel;
345
+ return {
346
+ visitor: {
347
+ ExportNamedDeclaration(path) {
348
+ var _a;
349
+ if (((_a = path.node.source) === null || _a === void 0 ? void 0 : _a.value) === './lib/make-array') {
350
+ path.node.source = t.stringLiteral('./make');
351
+ }
352
+ },
353
+ },
354
+ };
355
+ },
356
+ ]);
357
+ updateFileWithTransform(this, '@ember/runloop/index.js', function (babel) {
358
+ const { types: t } = babel;
359
+ return {
360
+ visitor: {
361
+ CallExpression(path) {
362
+ if (path.node.callee.type === 'Identifier' && path.node.callee.name === 'flushAsyncObservers') {
363
+ path.node.arguments = [t.identifier('schedule')];
364
+ }
365
+ },
366
+ },
367
+ };
368
+ });
369
+ updateFileWithTransform(this, '@ember/object/core.js', function (babel) {
370
+ const { types: t } = babel;
371
+ return {
372
+ visitor: {
373
+ ImportDeclaration(path) {
374
+ if (path.node.source.value === '@ember/array') {
375
+ path.node.source = t.stringLiteral('@ember/array/make');
376
+ path.node.specifiers = [t.importDefaultSpecifier(t.identifier('makeArray'))];
377
+ }
378
+ if (path.node.source.value === '@ember/-internals/runtime') {
379
+ path.replaceWith(t.importDeclaration([t.importSpecifier(t.identifier('ActionHandler'), t.identifier('default'))], t.stringLiteral('@ember/-internals/runtime/lib/mixins/action_handler')));
380
+ }
381
+ },
382
+ },
383
+ };
384
+ });
385
+ (0, fs_extra_1.outputFileSync)((0, path_1.resolve)(this.outputPath, '@ember/array/make.js'), `export { default } from './lib/make-array';`, 'utf8');
386
+ updateFileWithTransform(this, '@ember/-internals/metal/index.js', function (babel) {
387
+ const { types: t } = babel;
388
+ return {
389
+ visitor: {
390
+ FunctionDeclaration(path) {
391
+ var _a;
392
+ if (((_a = path.node.id) === null || _a === void 0 ? void 0 : _a.name) === 'flushAsyncObservers') {
393
+ path.node.params = [t.identifier('_schedule')];
394
+ }
395
+ },
396
+ IfStatement(path) {
397
+ if (path.node.test.type === 'Identifier' && path.node.test.name === 'shouldSchedule') {
398
+ path.node.test.name = '_schedule';
399
+ }
400
+ },
401
+ CallExpression(path) {
402
+ if (path.node.callee.type === 'Identifier' && path.node.callee.name === 'schedule') {
403
+ path.node.callee.name = '_schedule';
404
+ }
405
+ },
406
+ ImportDeclaration(path) {
407
+ if (path.node.source.value === '@ember/runloop') {
408
+ path.remove();
409
+ }
410
+ },
411
+ },
412
+ };
413
+ });
414
+ }
415
+ }
416
+ function moveObjectSpecifiersToMetal() {
417
+ let done = false;
418
+ return {
419
+ visitor: {
420
+ ImportDeclaration(path) {
421
+ if (path.node.source.value === '@ember/-internals/metal') {
422
+ if (done) {
423
+ return;
424
+ }
425
+ /**
426
+ * I need to use getAllPRevSiblings and getAllNextSiblings here because I need the siblings
427
+ * to be paths and path.container only holds nodes (for some strange reason).
428
+ */
429
+ const searchObjects = Array.from(path.getAllPrevSiblings()).concat(Array.from(path.getAllNextSiblings()));
430
+ const objectimport = searchObjects.find(p => p.node.type === 'ImportDeclaration' && p.node.source.value === '@ember/object');
431
+ path.node.specifiers.push(...objectimport.node.specifiers);
432
+ objectimport.remove();
433
+ done = true;
434
+ }
435
+ },
436
+ },
437
+ };
438
+ }
439
+ function fixStringLoc(babel) {
440
+ let t = babel.types;
441
+ return {
442
+ visitor: {
443
+ Program(path) {
444
+ path.node.body.unshift(t.variableDeclaration('const', [t.variableDeclarator(t.identifier('loc'), t.identifier('undefined'))]));
445
+ },
446
+ ImportDeclaration: {
447
+ enter(path, state) {
448
+ if (path.node.source.value === '@ember/string') {
449
+ state.inEmberString = true;
450
+ }
451
+ },
452
+ exit(_path, state) {
453
+ state.inEmberString = false;
454
+ },
455
+ },
456
+ ImportSpecifier(path, state) {
457
+ let name = 'value' in path.node.imported ? path.node.imported.value : path.node.imported.name;
458
+ if (state.inEmberString && name === 'loc') {
459
+ path.remove();
460
+ }
461
+ },
462
+ },
463
+ };
464
+ }
465
+ //# sourceMappingURL=ember-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-source.js","sourceRoot":"","sources":["../../../src/compat-adapters/ember-source.ts"],"names":[],"mappings":"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","sourcesContent":["import V1Addon from '../v1-addon';\nimport buildFunnel from 'broccoli-funnel';\nimport mergeTrees from 'broccoli-merge-trees';\nimport AddToTree from '../add-to-tree';\nimport { outputFileSync, readFileSync, readdirSync, unlinkSync } from 'fs-extra';\nimport { join, resolve } from 'path';\nimport { Memoize } from 'typescript-memoize';\nimport { satisfies } from 'semver';\nimport { transform } from '@babel/core';\nimport type * as Babel from '@babel/core';\nimport type { NodePath } from '@babel/traverse';\nimport Plugin from 'broccoli-plugin';\nimport type { Node } from 'broccoli-node-api';\nimport { existsSync } from 'fs';\n\nexport default class extends V1Addon {\n get v2Tree() {\n return mergeTrees([super.v2Tree, buildFunnel(this.rootTree, { include: ['dist/ember-template-compiler.js'] })]);\n }\n\n // versions of ember-source prior to\n // https://github.com/emberjs/ember.js/pull/20675 ship dist/packages and\n // dist/dependencies separately and the imports between them are package-name\n // imports. Since many of the dependencies are also true package.json\n // dependencies (in order to get typescript types), and our module-resolver\n // prioritizes true dependencies, it's necessary to detect and remove the\n // package.json dependencies.\n //\n // After the above linked change, ember-source ships only dist/packages and\n // the inter-package imports are all relative. Some of the things in\n // dist/packages are still the rolled-in dependencies, but now that the\n // imports are all relative we need no special handling for them (beyond the\n // normal v2 addon renamed-modules support.\n @Memoize()\n private get includedDependencies() {\n let result: string[] = [];\n let depsDir = resolve(this.root, 'dist', 'dependencies');\n if (!existsSync(depsDir)) {\n return result;\n }\n for (let name of readdirSync(depsDir)) {\n if (name[0] === '@') {\n for (let innerName of readdirSync(resolve(this.root, 'dist', 'dependencies', name))) {\n if (innerName.endsWith('.js')) {\n result.push(name + '/' + innerName.slice(0, -3));\n }\n }\n } else {\n if (name.endsWith('.js')) {\n result.push(name.slice(0, -3));\n }\n }\n }\n return result;\n }\n\n get newPackageJSON() {\n let json = super.newPackageJSON;\n\n for (let name of this.includedDependencies) {\n // weirdly, many of the inlined dependency are still listed as real\n // dependencies too. If we don't delete them here, they will take\n // precedence over the inlined ones, because the embroider module-resolver\n // tries to prioritize real deps.\n delete json.dependencies?.[name];\n }\n\n return json;\n }\n\n customizes(treeName: string) {\n // we are adding custom implementations of these\n return treeName === 'treeForAddon' || treeName === 'treeForVendor' || super.customizes(treeName);\n }\n\n invokeOriginalTreeFor(name: string) {\n if (name === 'addon') {\n return this.customAddonTree();\n }\n if (name === 'vendor') {\n return this.customVendorTree();\n }\n }\n\n // Our addon tree is all of the \"packages\" we share. @embroider/compat already\n // supports that pattern of emitting modules into other package's namespaces.\n private customAddonTree() {\n let packages = buildFunnel(this.rootTree, {\n srcDir: 'dist/packages',\n });\n\n let trees: Node[] = [\n packages,\n buildFunnel(this.rootTree, {\n srcDir: 'dist/dependencies',\n allowEmpty: true,\n }),\n ];\n\n if (satisfies(this.packageJSON.version, '>= 4.0.0-alpha.0 <4.10.0-alpha.0', { includePrerelease: true })) {\n // import { loc } from '@ember/string' was removed in 4.0. but the\n // top-level `ember` package tries to import it until 4.10. A\n // spec-compliant ES modules implementation will treat this as a parse\n // error.\n trees.push(new ReplaceRequire([new FixStringLoc([packages])]));\n } else if (satisfies(this.packageJSON.version, '<5.7.0')) {\n trees.push(new ReplaceRequire([packages]));\n }\n\n if (satisfies(this.packageJSON.version, '<5.12.0')) {\n trees.push(new FixDeprecateFunction([packages]));\n }\n\n if (satisfies(this.packageJSON.version, '<5.11.1')) {\n trees.push(new FixCycleImports([packages]));\n }\n\n return mergeTrees(trees, { overwrite: true });\n }\n\n // We're zeroing out these files in vendor rather than deleting them, because\n // we can't easily intercept the `app.import` that presumably exists for them,\n // so rather than error they will just be empty.\n //\n // The reason we're zeroing these out is that we're going to consume all our\n // modules directly out of treeForAddon instead, as real modules that webpack\n // can see.\n private customVendorTree() {\n return new AddToTree(this.addonInstance._treeFor('vendor'), outputPath => {\n unlinkSync(join(outputPath, 'ember', 'ember.js'));\n outputFileSync(join(outputPath, 'ember', 'ember.js'), '');\n unlinkSync(join(outputPath, 'ember', 'ember-testing.js'));\n outputFileSync(join(outputPath, 'ember', 'ember-testing.js'), '');\n });\n }\n\n get packageMeta() {\n let meta = super.packageMeta;\n\n if (!meta['implicit-modules']) {\n meta['implicit-modules'] = [];\n }\n meta['implicit-modules'].push('./ember/index.js');\n // before 5.6, Ember uses the AMD loader to decide if it's test-only parts\n // are present, so we must ensure they're registered. After that it's\n // enough to evaluate ember-testing, which @embroider/core is hard-coded\n // to do in the backward-compatible tests bundle.\n if (!satisfies(this.packageJSON.version, '>= 5.6.0-alpha.0', { includePrerelease: true })) {\n if (!meta['implicit-test-modules']) {\n meta['implicit-test-modules'] = [];\n }\n meta['implicit-test-modules'].push('./ember-testing/index.js');\n }\n\n return meta;\n }\n}\n\nclass FixStringLoc extends Plugin {\n build() {\n let inSource = readFileSync(resolve(this.inputPaths[0], 'ember', 'index.js'), 'utf8');\n let outSource = transform(inSource, {\n plugins: [fixStringLoc],\n configFile: false,\n })!.code!;\n outputFileSync(resolve(this.outputPath, 'ember', 'index.js'), outSource, 'utf8');\n }\n}\n\nclass ReplaceRequire extends Plugin {\n build() {\n updateFileWithTransform(this, 'ember/index.js', function (babel: typeof Babel) {\n const { types: t } = babel;\n\n function createLoader() {\n return t.objectExpression([\n t.objectMethod(\n 'get',\n t.identifier('require'),\n [],\n t.blockStatement([\n t.returnStatement(t.memberExpression(t.identifier('globalThis'), t.identifier('require'))),\n ])\n ),\n t.objectMethod(\n 'get',\n t.identifier('define'),\n [],\n t.blockStatement([\n t.returnStatement(t.memberExpression(t.identifier('globalThis'), t.identifier('define'))),\n ])\n ),\n t.objectMethod(\n 'get',\n t.identifier('registry'),\n [],\n\n t.blockStatement([\n t.returnStatement(\n t.logicalExpression(\n '??',\n t.optionalMemberExpression(\n t.memberExpression(t.identifier('globalThis'), t.identifier('requirejs')),\n t.identifier('entries'),\n false,\n true\n ),\n t.optionalMemberExpression(\n t.memberExpression(t.identifier('globalThis'), t.identifier('require')),\n t.identifier('entries'),\n false,\n true\n )\n )\n ),\n ])\n ),\n ]);\n }\n\n return {\n visitor: {\n CallExpression(path: NodePath<Babel.types.CallExpression>) {\n if (\n path.node.callee.type === 'Identifier' &&\n (path.node.callee.name === 'has' || path.node.callee.name === 'require') &&\n path.node.arguments[0].type === 'StringLiteral' &&\n path.node.arguments[0].value === 'ember-testing'\n ) {\n path.replaceWith(t.identifier('EmberTestingImpl'));\n }\n },\n ImportDeclaration(path: NodePath<Babel.types.ImportDeclaration>) {\n if (path.node.source.value === 'require') {\n path.replaceWith(\n t.importDeclaration(\n [t.importSpecifier(t.identifier('EmberTestingImpl'), t.identifier('_impl'))],\n t.stringLiteral('@ember/test')\n )\n );\n }\n },\n VariableDeclaration(path: NodePath<Babel.types.VariableDeclaration>) {\n if (\n path.node.declarations[0].id.type === 'Identifier' &&\n path.node.declarations[0].id.name === 'PartialEmber' &&\n path.node.declarations[0].init!.type === 'ObjectExpression'\n ) {\n const declaration = path.node.declarations[0];\n const loader = (declaration.init! as Babel.types.ObjectExpression).properties.find(\n p => (p.type === 'ObjectProperty' && p.key.type === 'Identifier' && p.key.name) === '__loader'\n );\n (loader as Babel.types.ObjectProperty).value = createLoader();\n }\n },\n AssignmentExpression(path: NodePath<Babel.types.AssignmentExpression>) {\n if (\n path.node.left.type === 'MemberExpression' &&\n path.node.left.object.type === 'Identifier' &&\n path.node.left.object.name === 'Ember' &&\n path.node.left.property.type === 'Identifier' &&\n path.node.left.property.name === '__loader'\n ) {\n path.node.right = createLoader();\n }\n },\n },\n };\n });\n\n replaceFile(\n this,\n '@ember/test/adapter.js',\n `import { Adapter } from 'ember-testing';\n export default Adapter;`\n );\n\n replaceFile(\n this,\n '@ember/test/index.js',\n `export let registerAsyncHelper;\nexport let registerHelper;\nexport let registerWaiter;\nexport let unregisterHelper;\nexport let unregisterWaiter;\nexport let _impl;\n\nlet testingNotAvailableMessage = () => {\n throw new Error('Attempted to use test utilities, but \\`ember-testing\\` was not included');\n};\n\nregisterAsyncHelper = testingNotAvailableMessage;\nregisterHelper = testingNotAvailableMessage;\nregisterWaiter = testingNotAvailableMessage;\nunregisterHelper = testingNotAvailableMessage;\nunregisterWaiter = testingNotAvailableMessage;\n\nexport function registerTestImplementaiton(impl) {\n let { Test } = impl;\n registerAsyncHelper = Test.registerAsyncHelper;\n registerHelper = Test.registerHelper;\n registerWaiter = Test.registerWaiter;\n unregisterHelper = Test.unregisterHelper;\n unregisterWaiter = Test.unregisterWaiter;\n _impl = impl;\n}`\n );\n\n replaceFile(\n this,\n 'ember-testing/index.js',\n `export * from './lib/public-api';\nimport * as EmberTesting from './lib/public-api';\nimport { registerTestImplementaiton } from '@ember/test';\n\n\nregisterTestImplementaiton(EmberTesting);`\n );\n\n replaceFile(\n this,\n 'ember-testing/lib/public-api.js',\n `\nexport { default as Test } from './test';\nexport { default as Adapter } from './adapters/adapter';\nexport { default as setupForTesting } from './setup_for_testing';\nexport { default as QUnitAdapter } from './adapters/qunit';\n\nimport './ext/application';\nimport './ext/rsvp'; // setup RSVP + run loop integration\nimport './helpers'; // adds helpers to helpers object in Test\nimport './initializers'; // to setup initializer`\n );\n }\n}\n\nclass FixDeprecateFunction extends Plugin {\n build() {\n let inSource = readFileSync(resolve(this.inputPaths[0], '@ember', 'debug', 'index.js'), 'utf8');\n let outSource = transform(inSource, {\n plugins: [fixDeprecate],\n configFile: false,\n })!.code!;\n outputFileSync(resolve(this.outputPath, '@ember', 'debug', 'index.js'), outSource, 'utf8');\n }\n}\n\nfunction fixDeprecate(babel: typeof Babel) {\n const { types: t } = babel;\n\n return {\n name: 'ast-transform', // not required\n visitor: {\n Program(path: NodePath<Babel.types.Program>) {\n path.node.body.unshift(\n t.functionDeclaration(\n t.identifier('newDeprecate'),\n [t.restElement(t.identifier('rest'))],\n t.blockStatement([\n t.returnStatement(\n t.callExpression(\n t.logicalExpression('??', t.identifier('currentDeprecate'), t.identifier('_deprecate')),\n [t.spreadElement(t.identifier('rest'))]\n )\n ),\n ])\n )\n );\n },\n AssignmentExpression(path: NodePath<Babel.types.AssignmentExpression>) {\n if (path.node.left.type === 'Identifier' && path.node.left.name === 'deprecate') {\n path.node.left.name = 'currentDeprecate';\n }\n },\n\n ReturnStatement(path: NodePath<Babel.types.ReturnStatement>) {\n if (path.node.argument?.type === 'Identifier' && path.node.argument.name === 'deprecate') {\n path.node.argument.name = 'newDeprecate';\n }\n },\n\n CallExpression(path: NodePath<Babel.types.CallExpression>) {\n if (path.node.callee.type === 'Identifier' && path.node.callee.name === 'deprecate') {\n path.node.callee.name = 'newDeprecate';\n }\n if (\n path.node.callee.type === 'Identifier' &&\n path.node.callee.name === 'setDebugFunction' &&\n path.node.arguments[0].type === 'StringLiteral' &&\n path.node.arguments[0].value === 'deprecate'\n ) {\n path.remove();\n }\n },\n ExportSpecifier(path: NodePath<Babel.types.ExportSpecifier>) {\n if (path.node.local.name === 'deprecate') {\n path.node.local = t.identifier('newDeprecate');\n }\n },\n VariableDeclarator(path: NodePath<Babel.types.VariableDeclarator>) {\n if (path.node.id.type === 'Identifier' && path.node.id.name === 'deprecate') {\n path.node.id.name = 'currentDeprecate';\n path.node.init = null; // leave undefined for newDeprecate's (currentDeprecate ?? _deprecated) expression\n }\n },\n },\n };\n}\n\nfunction updateFileWithTransform(\n context: Plugin,\n file: string,\n transformFunction: Babel.PluginItem | Babel.PluginItem[]\n) {\n // only update the file if it exists - this helps the codemods to work across many different versions\n if (!existsSync(resolve(context.inputPaths[0], file))) {\n return;\n }\n let inSource = readFileSync(resolve(context.inputPaths[0], file), 'utf8');\n\n let plugins = Array.isArray(transformFunction) ? transformFunction : [transformFunction];\n let outSource = transform(inSource, {\n plugins,\n configFile: false,\n })!.code!;\n outputFileSync(resolve(context.outputPath, file), outSource, 'utf8');\n}\n\nfunction replaceFile(context: Plugin, file: string, content: string) {\n outputFileSync(resolve(context.outputPath, file), content, 'utf8');\n}\n\nclass FixCycleImports extends Plugin {\n build() {\n for (let file of ['@ember/object/observable.js', '@ember/utils/lib/is_empty.js']) {\n updateFileWithTransform(this, file, moveObjectSpecifiersToMetal);\n }\n\n updateFileWithTransform(this, '@ember/array/index.js', [\n moveObjectSpecifiersToMetal,\n function (babel: typeof Babel) {\n const { types: t } = babel;\n return {\n visitor: {\n ExportNamedDeclaration(path: NodePath<Babel.types.ExportNamedDeclaration>) {\n if (path.node.source?.value === './lib/make-array') {\n path.node.source = t.stringLiteral('./make');\n }\n },\n },\n };\n },\n ]);\n\n updateFileWithTransform(this, '@ember/runloop/index.js', function (babel: typeof Babel) {\n const { types: t } = babel;\n\n return {\n visitor: {\n CallExpression(path: NodePath<Babel.types.CallExpression>) {\n if (path.node.callee.type === 'Identifier' && path.node.callee.name === 'flushAsyncObservers') {\n path.node.arguments = [t.identifier('schedule')];\n }\n },\n },\n };\n });\n\n updateFileWithTransform(this, '@ember/object/core.js', function (babel: typeof Babel) {\n const { types: t } = babel;\n\n return {\n visitor: {\n ImportDeclaration(path: NodePath<Babel.types.ImportDeclaration>) {\n if (path.node.source.value === '@ember/array') {\n path.node.source = t.stringLiteral('@ember/array/make');\n path.node.specifiers = [t.importDefaultSpecifier(t.identifier('makeArray'))];\n }\n\n if (path.node.source.value === '@ember/-internals/runtime') {\n path.replaceWith(\n t.importDeclaration(\n [t.importSpecifier(t.identifier('ActionHandler'), t.identifier('default'))],\n t.stringLiteral('@ember/-internals/runtime/lib/mixins/action_handler')\n )\n );\n }\n },\n },\n };\n });\n\n outputFileSync(\n resolve(this.outputPath, '@ember/array/make.js'),\n `export { default } from './lib/make-array';`,\n 'utf8'\n );\n\n updateFileWithTransform(this, '@ember/-internals/metal/index.js', function (babel: typeof Babel) {\n const { types: t } = babel;\n\n return {\n visitor: {\n FunctionDeclaration(path: NodePath<Babel.types.FunctionDeclaration>) {\n if (path.node.id?.name === 'flushAsyncObservers') {\n path.node.params = [t.identifier('_schedule')];\n }\n },\n IfStatement(path: NodePath<Babel.types.IfStatement>) {\n if (path.node.test.type === 'Identifier' && path.node.test.name === 'shouldSchedule') {\n path.node.test.name = '_schedule';\n }\n },\n CallExpression(path: NodePath<Babel.types.CallExpression>) {\n if (path.node.callee.type === 'Identifier' && path.node.callee.name === 'schedule') {\n path.node.callee.name = '_schedule';\n }\n },\n ImportDeclaration(path: NodePath<Babel.types.ImportDeclaration>) {\n if (path.node.source.value === '@ember/runloop') {\n path.remove();\n }\n },\n },\n };\n });\n }\n}\n\nfunction moveObjectSpecifiersToMetal() {\n let done = false;\n\n return {\n visitor: {\n ImportDeclaration(path: NodePath<Babel.types.ImportDeclaration>) {\n if (path.node.source.value === '@ember/-internals/metal') {\n if (done) {\n return;\n }\n\n /**\n * I need to use getAllPRevSiblings and getAllNextSiblings here because I need the siblings\n * to be paths and path.container only holds nodes (for some strange reason).\n */\n const searchObjects = Array.from(path.getAllPrevSiblings()).concat(Array.from(path.getAllNextSiblings()));\n const objectimport = searchObjects.find(\n p => p.node.type === 'ImportDeclaration' && p.node.source.value === '@ember/object'\n ) as NodePath<Babel.types.ImportDeclaration>;\n\n path.node.specifiers.push(...objectimport!.node.specifiers);\n objectimport.remove();\n\n done = true;\n }\n },\n },\n };\n}\n\nfunction fixStringLoc(babel: typeof Babel) {\n let t = babel.types;\n return {\n visitor: {\n Program(path: NodePath<Babel.types.Program>) {\n path.node.body.unshift(\n t.variableDeclaration('const', [t.variableDeclarator(t.identifier('loc'), t.identifier('undefined'))])\n );\n },\n ImportDeclaration: {\n enter(path: NodePath<Babel.types.ImportDeclaration>, state: { inEmberString: boolean }) {\n if (path.node.source.value === '@ember/string') {\n state.inEmberString = true;\n }\n },\n exit(_path: NodePath<Babel.types.ImportDeclaration>, state: { inEmberString: boolean }) {\n state.inEmberString = false;\n },\n },\n ImportSpecifier(path: NodePath<Babel.types.ImportSpecifier>, state: { inEmberString: boolean }) {\n let name = 'value' in path.node.imported ? path.node.imported.value : path.node.imported.name;\n if (state.inEmberString && name === 'loc') {\n path.remove();\n }\n },\n },\n };\n}\n"]}
@@ -0,0 +1,5 @@
1
+ import V1Addon from '../v1-addon';
2
+ export default class extends V1Addon {
3
+ get v2Tree(): Node;
4
+ }
5
+ //# sourceMappingURL=ember-svg-jar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-svg-jar.d.ts","sourceRoot":"","sources":["../../../src/compat-adapters/ember-svg-jar.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAkBlC,MAAM,CAAC,OAAO,MAAO,SAAQ,OAAO;IAClC,IAAI,MAAM,SAGT;CACF"}
@@ -0,0 +1,29 @@
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
+ const v1_addon_1 = __importDefault(require("../v1-addon"));
7
+ const broccoli_merge_trees_1 = __importDefault(require("broccoli-merge-trees"));
8
+ const broccoli_plugin_1 = __importDefault(require("broccoli-plugin"));
9
+ const fs_extra_1 = require("fs-extra");
10
+ const path_1 = require("path");
11
+ class FixSVGJar extends broccoli_plugin_1.default {
12
+ build() {
13
+ let helperFile = (0, path_1.join)(this.inputPaths[0], '_app_', 'helpers', 'svg-jar.js');
14
+ if ((0, fs_extra_1.pathExistsSync)(helperFile)) {
15
+ let source = (0, fs_extra_1.readFileSync)(helperFile, 'utf8');
16
+ source = `import { importSync } from '@embroider/macros';\n` + source.replace(/\brequire\b/g, 'importSync');
17
+ (0, fs_extra_1.ensureDirSync)((0, path_1.join)(this.outputPath, '_app_', 'helpers'));
18
+ (0, fs_extra_1.writeFileSync)((0, path_1.join)(this.outputPath, '_app_', 'helpers', 'svg-jar.js'), source);
19
+ }
20
+ }
21
+ }
22
+ class default_1 extends v1_addon_1.default {
23
+ get v2Tree() {
24
+ let orig = super.v2Tree;
25
+ return (0, broccoli_merge_trees_1.default)([orig, new FixSVGJar([orig], { annotation: 'fix-svg-jar' })], { overwrite: true });
26
+ }
27
+ }
28
+ exports.default = default_1;
29
+ //# sourceMappingURL=ember-svg-jar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-svg-jar.js","sourceRoot":"","sources":["../../../src/compat-adapters/ember-svg-jar.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAClC,gFAA8C;AAC9C,sEAAqC;AACrC,uCAAsF;AACtF,+BAA4B;AAE5B,MAAM,SAAU,SAAQ,yBAAM;IAC5B,KAAK;QACH,IAAI,UAAU,GAAG,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC5E,IAAI,IAAA,yBAAc,EAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,IAAI,MAAM,GAAG,IAAA,uBAAY,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAC9C,MAAM,GAAG,mDAAmD,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;YAC5G,IAAA,wBAAa,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YACzD,IAAA,wBAAa,EAAC,IAAA,WAAI,EAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF;AAED,eAAqB,SAAQ,kBAAO;IAClC,IAAI,MAAM;QACR,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;QACxB,OAAO,IAAA,8BAAU,EAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvG,CAAC;CACF;AALD,4BAKC","sourcesContent":["import V1Addon from '../v1-addon';\nimport mergeTrees from 'broccoli-merge-trees';\nimport Plugin from 'broccoli-plugin';\nimport { readFileSync, writeFileSync, ensureDirSync, pathExistsSync } from 'fs-extra';\nimport { join } from 'path';\n\nclass FixSVGJar extends Plugin {\n build() {\n let helperFile = join(this.inputPaths[0], '_app_', 'helpers', 'svg-jar.js');\n if (pathExistsSync(helperFile)) {\n let source = readFileSync(helperFile, 'utf8');\n source = `import { importSync } from '@embroider/macros';\\n` + source.replace(/\\brequire\\b/g, 'importSync');\n ensureDirSync(join(this.outputPath, '_app_', 'helpers'));\n writeFileSync(join(this.outputPath, '_app_', 'helpers', 'svg-jar.js'), source);\n }\n }\n}\n\nexport default class extends V1Addon {\n get v2Tree() {\n let orig = super.v2Tree;\n return mergeTrees([orig, new FixSVGJar([orig], { annotation: 'fix-svg-jar' })], { overwrite: true });\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import V1Addon from '../v1-addon';
2
+ export default class extends V1Addon {
3
+ static shouldApplyAdapter(addonInstance: any): boolean;
4
+ get packageMeta(): Partial<import("@embroider/shared-internals").AddonMeta>;
5
+ }
6
+ //# sourceMappingURL=ember-test-selectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-test-selectors.d.ts","sourceRoot":"","sources":["../../../src/compat-adapters/ember-test-selectors.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAIlC,MAAM,CAAC,OAAO,MAAO,SAAQ,OAAO;IAElC,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,GAAG;IAI5C,IAAI,WAAW,6DAEd;CACF"}
@@ -0,0 +1,19 @@
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
+ const v1_addon_1 = __importDefault(require("../v1-addon"));
7
+ const compat_utils_1 = require("../compat-utils");
8
+ const semver_1 = __importDefault(require("semver"));
9
+ class default_1 extends v1_addon_1.default {
10
+ // v6.0.0 of ember-test-selectors dropped the attribute binding for classic components
11
+ static shouldApplyAdapter(addonInstance) {
12
+ return semver_1.default.lt(addonInstance.pkg.version, '6.0.0') && !addonInstance._stripTestSelectors;
13
+ }
14
+ get packageMeta() {
15
+ return (0, compat_utils_1.forceIncludeModule)(super.packageMeta, './utils/bind-data-test-attributes');
16
+ }
17
+ }
18
+ exports.default = default_1;
19
+ //# sourceMappingURL=ember-test-selectors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-test-selectors.js","sourceRoot":"","sources":["../../../src/compat-adapters/ember-test-selectors.ts"],"names":[],"mappings":";;;;;AAAA,2DAAkC;AAClC,kDAAqD;AACrD,oDAA4B;AAE5B,eAAqB,SAAQ,kBAAO;IAClC,sFAAsF;IACtF,MAAM,CAAC,kBAAkB,CAAC,aAAkB;QAC1C,OAAO,gBAAM,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC;IAC7F,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAA,iCAAkB,EAAC,KAAK,CAAC,WAAW,EAAE,mCAAmC,CAAC,CAAC;IACpF,CAAC;CACF;AATD,4BASC","sourcesContent":["import V1Addon from '../v1-addon';\nimport { forceIncludeModule } from '../compat-utils';\nimport semver from 'semver';\n\nexport default class extends V1Addon {\n // v6.0.0 of ember-test-selectors dropped the attribute binding for classic components\n static shouldApplyAdapter(addonInstance: any) {\n return semver.lt(addonInstance.pkg.version, '6.0.0') && !addonInstance._stripTestSelectors;\n }\n\n get packageMeta() {\n return forceIncludeModule(super.packageMeta, './utils/bind-data-test-attributes');\n }\n}\n"]}