@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
package/README.md ADDED
@@ -0,0 +1,30 @@
1
+ # @embroider/compat
2
+
3
+ Backward compatibility layer for the Embroider build system.
4
+
5
+ ## Usage
6
+
7
+ ```js
8
+ // ember-cli-build.js
9
+ const EmberApp = require('ember-cli/lib/broccoli/ember-app');
10
+ const { compatBuild } = require('@embroider/compat');
11
+
12
+ module.exports = async function (defaults) {
13
+ const { buildOnce } = await import('@embroider/vite');
14
+ let app = new EmberApp(defaults, {});
15
+
16
+ return compatBuild(app, buildOnce);
17
+ };
18
+ ```
19
+
20
+ `compatBuild` takes options as its third argument. They are documented in [Compat Options](https://github.com/embroider-build/embroider/blob/main/packages/compat/src/options.ts) and [Core Options](https://github.com/embroider-build/embroider/blob/main/packages/core/src/options.ts).
21
+
22
+ See the [top-level README](https://github.com/embroider-build/embroider#readme) for the status of the project.
23
+
24
+ ## Contributing
25
+
26
+ See the top-level CONTRIBUTING.md in this monorepo.
27
+
28
+ ## License
29
+
30
+ This project is licensed under the MIT License.
@@ -0,0 +1,9 @@
1
+ import type { Node } from 'broccoli-node-api';
2
+ import { Funnel } from 'broccoli-funnel';
3
+ export default class AddToTree extends Funnel {
4
+ private hook;
5
+ constructor(combinedVendor: Node, hook: (outputPath: string) => Promise<void> | void);
6
+ shouldLinkRoots(): boolean;
7
+ build(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=add-to-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-to-tree.d.ts","sourceRoot":"","sources":["../../src/add-to-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,SAAU,SAAQ,MAAM;IACT,OAAO,CAAC,IAAI;gBAAlC,cAAc,EAAE,IAAI,EAAU,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAK5F,eAAe;IAKT,KAAK;CAIZ"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const broccoli_funnel_1 = require("broccoli-funnel");
4
+ class AddToTree extends broccoli_funnel_1.Funnel {
5
+ constructor(combinedVendor, hook) {
6
+ super(combinedVendor, {
7
+ annotation: '@embroider/compat/synthvendor',
8
+ });
9
+ this.hook = hook;
10
+ }
11
+ shouldLinkRoots() {
12
+ // We want to force funnel to copy things rather than just linking the whole
13
+ // directory, because we're planning to mutate it.
14
+ return false;
15
+ }
16
+ async build() {
17
+ await super.build();
18
+ await this.hook(this.outputPath);
19
+ }
20
+ }
21
+ exports.default = AddToTree;
22
+ //# sourceMappingURL=add-to-tree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-to-tree.js","sourceRoot":"","sources":["../../src/add-to-tree.ts"],"names":[],"mappings":";;AACA,qDAAyC;AAEzC,MAAqB,SAAU,SAAQ,wBAAM;IAC3C,YAAY,cAAoB,EAAU,IAAkD;QAC1F,KAAK,CAAC,cAAc,EAAE;YACpB,UAAU,EAAE,+BAA+B;SAC5C,CAAC,CAAC;QAHqC,SAAI,GAAJ,IAAI,CAA8C;IAI5F,CAAC;IACD,eAAe;QACb,4EAA4E;QAC5E,kDAAkD;QAClD,OAAO,KAAK,CAAC;IACf,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;AAfD,4BAeC","sourcesContent":["import type { Node } from 'broccoli-node-api';\nimport { Funnel } from 'broccoli-funnel';\n\nexport default class AddToTree extends Funnel {\n constructor(combinedVendor: Node, private hook: (outputPath: string) => Promise<void> | void) {\n super(combinedVendor, {\n annotation: '@embroider/compat/synthvendor',\n });\n }\n shouldLinkRoots() {\n // We want to force funnel to copy things rather than just linking the whole\n // directory, because we're planning to mutate it.\n return false;\n }\n async build() {\n await super.build();\n await this.hook(this.outputPath);\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { PackageRules } from '..';
2
+ declare const _default: PackageRules[];
3
+ export default _default;
4
+ //# sourceMappingURL=ember-basic-dropdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-basic-dropdown.d.ts","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-basic-dropdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;;AA4BvC,wBAAwC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ let rulesForV1 = {
4
+ package: 'ember-basic-dropdown',
5
+ semverRange: '1.x',
6
+ components: {
7
+ '{{basic-dropdown}}': {
8
+ layout: {
9
+ addonPath: 'templates/components/basic-dropdown.hbs',
10
+ },
11
+ acceptsComponentArguments: ['triggerComponent', 'contentComponent'],
12
+ },
13
+ },
14
+ };
15
+ let rulesForV2 = {
16
+ package: 'ember-basic-dropdown',
17
+ semverRange: '>=2.0.0 <=3.0.18',
18
+ components: {
19
+ '{{basic-dropdown}}': {
20
+ layout: {
21
+ addonPath: 'templates/components/basic-dropdown.hbs',
22
+ },
23
+ acceptsComponentArguments: ['triggerComponent', 'contentComponent'],
24
+ },
25
+ },
26
+ };
27
+ exports.default = [rulesForV1, rulesForV2];
28
+ //# sourceMappingURL=ember-basic-dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-basic-dropdown.js","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-basic-dropdown.ts"],"names":[],"mappings":";;AAEA,IAAI,UAAU,GAAiB;IAC7B,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,KAAK;IAClB,UAAU,EAAE;QACV,oBAAoB,EAAE;YACpB,MAAM,EAAE;gBACN,SAAS,EAAE,yCAAyC;aACrD;YACD,yBAAyB,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SACpE;KACF;CACF,CAAC;AAEF,IAAI,UAAU,GAAiB;IAC7B,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE;QACV,oBAAoB,EAAE;YACpB,MAAM,EAAE;gBACN,SAAS,EAAE,yCAAyC;aACrD;YACD,yBAAyB,EAAE,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;SACpE;KACF;CACF,CAAC;AAEF,kBAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC","sourcesContent":["import type { PackageRules } from '..';\n\nlet rulesForV1: PackageRules = {\n package: 'ember-basic-dropdown',\n semverRange: '1.x',\n components: {\n '{{basic-dropdown}}': {\n layout: {\n addonPath: 'templates/components/basic-dropdown.hbs',\n },\n acceptsComponentArguments: ['triggerComponent', 'contentComponent'],\n },\n },\n};\n\nlet rulesForV2: PackageRules = {\n package: 'ember-basic-dropdown',\n semverRange: '>=2.0.0 <=3.0.18',\n components: {\n '{{basic-dropdown}}': {\n layout: {\n addonPath: 'templates/components/basic-dropdown.hbs',\n },\n acceptsComponentArguments: ['triggerComponent', 'contentComponent'],\n },\n },\n};\n\nexport default [rulesForV1, rulesForV2];\n"]}
@@ -0,0 +1,4 @@
1
+ import type { PackageRules } from '..';
2
+ declare const rules: PackageRules[];
3
+ export default rules;
4
+ //# sourceMappingURL=ember-modal-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-modal-dialog.d.ts","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-modal-dialog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAEvC,QAAA,MAAM,KAAK,EAAE,YAAY,EAsBxB,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rules = [
4
+ {
5
+ package: 'ember-modal-dialog',
6
+ components: {
7
+ '<ModalDialog/>': {
8
+ invokes: {
9
+ modalDialogComponentName: [
10
+ '{{ember-modal-dialog/-in-place-dialog}}',
11
+ '{{ember-modal-dialog/-liquid-tether-dialog}}',
12
+ '{{ember-modal-dialog/-tether-dialog}}',
13
+ '{{ember-modal-dialog/-liquid-dialog}}',
14
+ '{{ember-modal-dialog/-basic-dialog}}',
15
+ ],
16
+ },
17
+ layout: {
18
+ addonPath: 'templates/components/modal-dialog.hbs',
19
+ },
20
+ },
21
+ '<LiquidWormhole/>': { safeToIgnore: true },
22
+ '<LiquidTether/>': { safeToIgnore: true },
23
+ },
24
+ },
25
+ ];
26
+ exports.default = rules;
27
+ //# sourceMappingURL=ember-modal-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-modal-dialog.js","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-modal-dialog.ts"],"names":[],"mappings":";;AAEA,MAAM,KAAK,GAAmB;IAC5B;QACE,OAAO,EAAE,oBAAoB;QAC7B,UAAU,EAAE;YACV,gBAAgB,EAAE;gBAChB,OAAO,EAAE;oBACP,wBAAwB,EAAE;wBACxB,yCAAyC;wBACzC,8CAA8C;wBAC9C,uCAAuC;wBACvC,uCAAuC;wBACvC,sCAAsC;qBACvC;iBACF;gBACD,MAAM,EAAE;oBACN,SAAS,EAAE,uCAAuC;iBACnD;aACF;YACD,mBAAmB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;YAC3C,iBAAiB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;SAC1C;KACF;CACF,CAAC;AAEF,kBAAe,KAAK,CAAC","sourcesContent":["import type { PackageRules } from '..';\n\nconst rules: PackageRules[] = [\n {\n package: 'ember-modal-dialog',\n components: {\n '<ModalDialog/>': {\n invokes: {\n modalDialogComponentName: [\n '{{ember-modal-dialog/-in-place-dialog}}',\n '{{ember-modal-dialog/-liquid-tether-dialog}}',\n '{{ember-modal-dialog/-tether-dialog}}',\n '{{ember-modal-dialog/-liquid-dialog}}',\n '{{ember-modal-dialog/-basic-dialog}}',\n ],\n },\n layout: {\n addonPath: 'templates/components/modal-dialog.hbs',\n },\n },\n '<LiquidWormhole/>': { safeToIgnore: true },\n '<LiquidTether/>': { safeToIgnore: true },\n },\n },\n];\n\nexport default rules;\n"]}
@@ -0,0 +1,4 @@
1
+ import type { PackageRules } from '..';
2
+ declare const _default: PackageRules[];
3
+ export default _default;
4
+ //# sourceMappingURL=ember-power-select-typeahead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-power-select-typeahead.d.ts","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-power-select-typeahead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;;AAsBvC,wBAAuB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ let rules = {
4
+ package: 'ember-power-select-typeahead',
5
+ components: {
6
+ '{{power-select-typeahead}}': {
7
+ layout: {
8
+ addonPath: 'templates/components/power-select-typeahead.hbs',
9
+ },
10
+ acceptsComponentArguments: [
11
+ 'afterOptionsComponent',
12
+ 'beforeOptionsComponent',
13
+ 'optionsComponent',
14
+ 'placeholderComponent',
15
+ 'searchMessageComponent',
16
+ 'selectedItemComponent',
17
+ 'triggerComponent',
18
+ ],
19
+ },
20
+ },
21
+ };
22
+ exports.default = [rules];
23
+ //# sourceMappingURL=ember-power-select-typeahead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-power-select-typeahead.js","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-power-select-typeahead.ts"],"names":[],"mappings":";;AAEA,IAAI,KAAK,GAAiB;IACxB,OAAO,EAAE,8BAA8B;IACvC,UAAU,EAAE;QACV,4BAA4B,EAAE;YAC5B,MAAM,EAAE;gBACN,SAAS,EAAE,iDAAiD;aAC7D;YACD,yBAAyB,EAAE;gBACzB,uBAAuB;gBACvB,wBAAwB;gBACxB,kBAAkB;gBAClB,sBAAsB;gBACtB,wBAAwB;gBACxB,uBAAuB;gBACvB,kBAAkB;aACnB;SACF;KACF;CACF,CAAC;AAEF,kBAAe,CAAC,KAAK,CAAC,CAAC","sourcesContent":["import type { PackageRules } from '..';\n\nlet rules: PackageRules = {\n package: 'ember-power-select-typeahead',\n components: {\n '{{power-select-typeahead}}': {\n layout: {\n addonPath: 'templates/components/power-select-typeahead.hbs',\n },\n acceptsComponentArguments: [\n 'afterOptionsComponent',\n 'beforeOptionsComponent',\n 'optionsComponent',\n 'placeholderComponent',\n 'searchMessageComponent',\n 'selectedItemComponent',\n 'triggerComponent',\n ],\n },\n },\n};\n\nexport default [rules];\n"]}
@@ -0,0 +1,4 @@
1
+ import type { PackageRules } from '..';
2
+ declare const rules: PackageRules[];
3
+ export default rules;
4
+ //# sourceMappingURL=ember-power-select-with-create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-power-select-with-create.d.ts","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-power-select-with-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAEvC,QAAA,MAAM,KAAK,EAAE,YAAY,EAaxB,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rules = [
4
+ {
5
+ package: 'ember-power-select-with-create',
6
+ semverRange: '<3.0.0',
7
+ components: {
8
+ '<PowerSelectWithCreate/>': {
9
+ acceptsComponentArguments: ['powerSelectComponentName', 'suggestedOptionComponent'],
10
+ layout: {
11
+ addonPath: 'templates/components/power-select-with-create.hbs',
12
+ },
13
+ },
14
+ },
15
+ },
16
+ ];
17
+ exports.default = rules;
18
+ //# sourceMappingURL=ember-power-select-with-create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-power-select-with-create.js","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-power-select-with-create.ts"],"names":[],"mappings":";;AAEA,MAAM,KAAK,GAAmB;IAC5B;QACE,OAAO,EAAE,gCAAgC;QACzC,WAAW,EAAE,QAAQ;QACrB,UAAU,EAAE;YACV,0BAA0B,EAAE;gBAC1B,yBAAyB,EAAE,CAAC,0BAA0B,EAAE,0BAA0B,CAAC;gBACnF,MAAM,EAAE;oBACN,SAAS,EAAE,mDAAmD;iBAC/D;aACF;SACF;KACF;CACF,CAAC;AAEF,kBAAe,KAAK,CAAC","sourcesContent":["import type { PackageRules } from '..';\n\nconst rules: PackageRules[] = [\n {\n package: 'ember-power-select-with-create',\n semverRange: '<3.0.0',\n components: {\n '<PowerSelectWithCreate/>': {\n acceptsComponentArguments: ['powerSelectComponentName', 'suggestedOptionComponent'],\n layout: {\n addonPath: 'templates/components/power-select-with-create.hbs',\n },\n },\n },\n },\n];\n\nexport default rules;\n"]}
@@ -0,0 +1,4 @@
1
+ import type { PackageRules } from '..';
2
+ declare const _default: PackageRules[];
3
+ export default _default;
4
+ //# sourceMappingURL=ember-power-select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-power-select.d.ts","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-power-select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;;AAwDvC,wBAAuB"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ let rules = {
4
+ package: 'ember-power-select',
5
+ semverRange: '< 5.0.1',
6
+ components: {
7
+ '{{power-select}}': {
8
+ layout: {
9
+ addonPath: 'templates/components/power-select.hbs',
10
+ },
11
+ acceptsComponentArguments: [
12
+ 'afterOptionsComponent',
13
+ 'beforeOptionsComponent',
14
+ 'optionsComponent',
15
+ 'placeholderComponent',
16
+ 'searchMessageComponent',
17
+ 'selectedItemComponent',
18
+ 'triggerComponent',
19
+ ],
20
+ },
21
+ '{{power-select-multiple}}': {
22
+ layout: {
23
+ addonPath: 'templates/components/power-select-multiple.hbs',
24
+ },
25
+ acceptsComponentArguments: [
26
+ 'afterOptionsComponent',
27
+ 'beforeOptionsComponent',
28
+ 'groupComponent',
29
+ 'optionsComponent',
30
+ 'placeholderComponent',
31
+ 'searchMessageComponent',
32
+ 'selectedItemComponent',
33
+ 'triggerComponent',
34
+ ],
35
+ },
36
+ '{{power-select/trigger}}': {
37
+ layout: {
38
+ addonPath: 'templates/components/power-select/trigger.hbs',
39
+ },
40
+ acceptsComponentArguments: ['selectedItemComponent', 'placeholderComponent'],
41
+ },
42
+ '{{power-select/options}}': {
43
+ layout: {
44
+ addonPath: 'templates/components/power-select/options.hbs',
45
+ },
46
+ acceptsComponentArguments: ['groupComponent', 'optionsComponent'],
47
+ },
48
+ '{{power-select-multiple/trigger}}': {
49
+ layout: {
50
+ addonPath: 'templates/components/power-select-multiple/trigger.hbs',
51
+ },
52
+ acceptsComponentArguments: ['selectedItemComponent'],
53
+ },
54
+ },
55
+ };
56
+ exports.default = [rules];
57
+ //# sourceMappingURL=ember-power-select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ember-power-select.js","sourceRoot":"","sources":["../../../src/addon-dependency-rules/ember-power-select.ts"],"names":[],"mappings":";;AAEA,IAAI,KAAK,GAAiB;IACxB,OAAO,EAAE,oBAAoB;IAC7B,WAAW,EAAE,SAAS;IACtB,UAAU,EAAE;QACV,kBAAkB,EAAE;YAClB,MAAM,EAAE;gBACN,SAAS,EAAE,uCAAuC;aACnD;YACD,yBAAyB,EAAE;gBACzB,uBAAuB;gBACvB,wBAAwB;gBACxB,kBAAkB;gBAClB,sBAAsB;gBACtB,wBAAwB;gBACxB,uBAAuB;gBACvB,kBAAkB;aACnB;SACF;QACD,2BAA2B,EAAE;YAC3B,MAAM,EAAE;gBACN,SAAS,EAAE,gDAAgD;aAC5D;YACD,yBAAyB,EAAE;gBACzB,uBAAuB;gBACvB,wBAAwB;gBACxB,gBAAgB;gBAChB,kBAAkB;gBAClB,sBAAsB;gBACtB,wBAAwB;gBACxB,uBAAuB;gBACvB,kBAAkB;aACnB;SACF;QACD,0BAA0B,EAAE;YAC1B,MAAM,EAAE;gBACN,SAAS,EAAE,+CAA+C;aAC3D;YACD,yBAAyB,EAAE,CAAC,uBAAuB,EAAE,sBAAsB,CAAC;SAC7E;QACD,0BAA0B,EAAE;YAC1B,MAAM,EAAE;gBACN,SAAS,EAAE,+CAA+C;aAC3D;YACD,yBAAyB,EAAE,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;SAClE;QACD,mCAAmC,EAAE;YACnC,MAAM,EAAE;gBACN,SAAS,EAAE,wDAAwD;aACpE;YACD,yBAAyB,EAAE,CAAC,uBAAuB,CAAC;SACrD;KACF;CACF,CAAC;AAEF,kBAAe,CAAC,KAAK,CAAC,CAAC","sourcesContent":["import type { PackageRules } from '..';\n\nlet rules: PackageRules = {\n package: 'ember-power-select',\n semverRange: '< 5.0.1',\n components: {\n '{{power-select}}': {\n layout: {\n addonPath: 'templates/components/power-select.hbs',\n },\n acceptsComponentArguments: [\n 'afterOptionsComponent',\n 'beforeOptionsComponent',\n 'optionsComponent',\n 'placeholderComponent',\n 'searchMessageComponent',\n 'selectedItemComponent',\n 'triggerComponent',\n ],\n },\n '{{power-select-multiple}}': {\n layout: {\n addonPath: 'templates/components/power-select-multiple.hbs',\n },\n acceptsComponentArguments: [\n 'afterOptionsComponent',\n 'beforeOptionsComponent',\n 'groupComponent',\n 'optionsComponent',\n 'placeholderComponent',\n 'searchMessageComponent',\n 'selectedItemComponent',\n 'triggerComponent',\n ],\n },\n '{{power-select/trigger}}': {\n layout: {\n addonPath: 'templates/components/power-select/trigger.hbs',\n },\n acceptsComponentArguments: ['selectedItemComponent', 'placeholderComponent'],\n },\n '{{power-select/options}}': {\n layout: {\n addonPath: 'templates/components/power-select/options.hbs',\n },\n acceptsComponentArguments: ['groupComponent', 'optionsComponent'],\n },\n '{{power-select-multiple/trigger}}': {\n layout: {\n addonPath: 'templates/components/power-select-multiple/trigger.hbs',\n },\n acceptsComponentArguments: ['selectedItemComponent'],\n },\n },\n};\n\nexport default [rules];\n"]}
@@ -0,0 +1,41 @@
1
+ import type { TransformOptions } from '@babel/core';
2
+ import type { SourceLocation } from '@babel/code-frame';
3
+ export declare class VisitorState {
4
+ }
5
+ export interface InternalImport {
6
+ source: string;
7
+ codeFrameIndex: number | undefined;
8
+ specifiers: {
9
+ name: string | NamespaceMarker;
10
+ local: string | null;
11
+ codeFrameIndex: number | undefined;
12
+ }[];
13
+ }
14
+ export interface NamespaceMarker {
15
+ isNamespace: true;
16
+ }
17
+ export declare function isNamespaceMarker(value: string | NamespaceMarker): value is NamespaceMarker;
18
+ export interface ExportAll {
19
+ all: string;
20
+ }
21
+ export declare function auditJS(rawSource: string, filename: string, babelConfig: TransformOptions, frames: CodeFrameStorage): Promise<{
22
+ imports: InternalImport[];
23
+ exports: Set<string | ExportAll>;
24
+ isCJS: false;
25
+ isAMD: false;
26
+ problems: {
27
+ message: string;
28
+ detail: string;
29
+ codeFrameIndex: number | undefined;
30
+ }[];
31
+ transpiledContent: string;
32
+ }>;
33
+ export declare class CodeFrameStorage {
34
+ private codeFrames;
35
+ private rawSources;
36
+ forSource(rawSource: string): (node: {
37
+ loc?: SourceLocation | null;
38
+ }) => number | undefined;
39
+ render(codeFrameIndex: number | undefined): string | undefined;
40
+ }
41
+ //# sourceMappingURL=babel-visitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babel-visitor.d.ts","sourceRoot":"","sources":["../../../src/audit/babel-visitor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGxD,qBAAa,YAAY;CAAG;AAE5B,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,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;CACL;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,IAAI,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,KAAK,IAAI,eAAe,CAE3F;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,gBAAgB,EAC7B,MAAM,EAAE,gBAAgB;;;;;;iBAQQ,MAAM;gBAAU,MAAM;wBAAkB,MAAM,GAAG,SAAS;;;GAiI3F;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,UAAU,CAAkB;IAEpC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,EAAE,cAAc,GAAG,IAAI,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS;IAoB3F,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS;CAM/D"}
@@ -0,0 +1,230 @@
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.CodeFrameStorage = exports.VisitorState = void 0;
7
+ exports.isNamespaceMarker = isNamespaceMarker;
8
+ exports.auditJS = auditJS;
9
+ const traverse_1 = __importDefault(require("@babel/traverse"));
10
+ const core_1 = require("@babel/core");
11
+ const code_frame_1 = require("@babel/code-frame");
12
+ class VisitorState {
13
+ }
14
+ exports.VisitorState = VisitorState;
15
+ function isNamespaceMarker(value) {
16
+ return typeof value !== 'string';
17
+ }
18
+ async function auditJS(rawSource, filename, babelConfig, frames) {
19
+ if (!babelConfig.ast) {
20
+ throw new Error(`module auditing requires a babel config with ast: true`);
21
+ }
22
+ let imports = [];
23
+ let exports = new Set();
24
+ let problems = [];
25
+ /* eslint-disable @typescript-eslint/no-inferrable-types */
26
+ // These are not really inferrable. Without explicit declarations, TS thinks
27
+ // they're always false because it doesn't know the handler methods run
28
+ // synchronously
29
+ let sawModule = false;
30
+ let sawExports = false;
31
+ let sawDefine = false;
32
+ /* eslint-enable @typescript-eslint/no-inferrable-types */
33
+ let { ast, code } = (await (0, core_1.transformAsync)(rawSource, Object.assign({ filename: filename }, babelConfig)));
34
+ let saveCodeFrame = frames.forSource(rawSource);
35
+ (0, traverse_1.default)(ast, {
36
+ Identifier(path) {
37
+ if (path.node.name === 'module' && isFreeVariable(path)) {
38
+ sawModule = true;
39
+ }
40
+ else if (path.node.name === 'exports' && isFreeVariable(path)) {
41
+ sawExports = true;
42
+ }
43
+ else if (path.node.name === 'define' && isFreeVariable(path)) {
44
+ sawDefine = true;
45
+ }
46
+ if (inExportDeclarationContext(path)) {
47
+ exports.add(path.node.name);
48
+ }
49
+ },
50
+ CallExpression(path) {
51
+ var _a;
52
+ let callee = path.get('callee');
53
+ if (callee.referencesImport('@embroider/macros', 'importSync') || core_1.types.isImport(callee.node)) {
54
+ let arg = path.node.arguments[0];
55
+ if (arg.type === 'StringLiteral') {
56
+ imports.push({
57
+ source: arg.value,
58
+ codeFrameIndex: saveCodeFrame(arg),
59
+ specifiers: [],
60
+ });
61
+ }
62
+ else if ((_a = arg.leadingComments) === null || _a === void 0 ? void 0 : _a.find(c => /@vite-ignore/.test(c.value))) {
63
+ // this is vite internals that we should ignore too
64
+ }
65
+ else {
66
+ problems.push({
67
+ message: `audit tool is unable to understand this usage of ${core_1.types.isImport(callee.node) ? 'import' : 'importSync'}`,
68
+ detail: arg.type,
69
+ codeFrameIndex: saveCodeFrame(arg),
70
+ });
71
+ }
72
+ }
73
+ },
74
+ ImportDeclaration(path) {
75
+ imports.push({
76
+ source: path.node.source.value,
77
+ codeFrameIndex: saveCodeFrame(path.node.source),
78
+ specifiers: [],
79
+ });
80
+ },
81
+ ImportDefaultSpecifier(path) {
82
+ imports[imports.length - 1].specifiers.push({
83
+ name: 'default',
84
+ local: path.node.local.name,
85
+ codeFrameIndex: saveCodeFrame(path.node),
86
+ });
87
+ },
88
+ ImportNamespaceSpecifier(path) {
89
+ imports[imports.length - 1].specifiers.push({
90
+ name: { isNamespace: true },
91
+ local: path.node.local.name,
92
+ codeFrameIndex: saveCodeFrame(path.node),
93
+ });
94
+ },
95
+ ImportSpecifier(path) {
96
+ imports[imports.length - 1].specifiers.push({
97
+ name: name(path.node.imported),
98
+ local: path.node.local.name,
99
+ codeFrameIndex: saveCodeFrame(path.node),
100
+ });
101
+ },
102
+ ExportDefaultDeclaration(_path) {
103
+ exports.add('default');
104
+ },
105
+ ExportSpecifier(path) {
106
+ exports.add(name(path.node.exported));
107
+ if (path.parent.type === 'ExportNamedDeclaration' && path.parent.source) {
108
+ imports[imports.length - 1].specifiers.push({
109
+ name: name(path.node.local),
110
+ local: null, // re-exports don't create local bindings
111
+ codeFrameIndex: saveCodeFrame(path.node),
112
+ });
113
+ }
114
+ },
115
+ ExportNamespaceSpecifier(path) {
116
+ exports.add(name(path.node.exported));
117
+ if (path.parent.type === 'ExportNamedDeclaration' && path.parent.source) {
118
+ imports[imports.length - 1].specifiers.push({
119
+ name: { isNamespace: true },
120
+ local: null, // re-exports don't create local bindings
121
+ codeFrameIndex: saveCodeFrame(path.node),
122
+ });
123
+ }
124
+ },
125
+ ExportAllDeclaration(path) {
126
+ exports.add({ all: path.node.source.value });
127
+ imports.push({
128
+ source: path.node.source.value,
129
+ codeFrameIndex: saveCodeFrame(path.node.source),
130
+ specifiers: [
131
+ {
132
+ name: { isNamespace: true },
133
+ local: null,
134
+ codeFrameIndex: saveCodeFrame(path.node),
135
+ },
136
+ ],
137
+ });
138
+ },
139
+ ExportNamedDeclaration(path) {
140
+ if (path.node.source) {
141
+ imports.push({
142
+ source: path.node.source.value,
143
+ codeFrameIndex: saveCodeFrame(path.node.source),
144
+ specifiers: [],
145
+ });
146
+ }
147
+ },
148
+ });
149
+ let isCJS = imports.length === 0 && exports.size === 0 && (sawModule || sawExports);
150
+ let isAMD = imports.length === 0 && exports.size === 0 && sawDefine;
151
+ return { imports, exports, isCJS, isAMD, problems, transpiledContent: code };
152
+ }
153
+ class CodeFrameStorage {
154
+ constructor() {
155
+ this.codeFrames = [];
156
+ this.rawSources = [];
157
+ }
158
+ forSource(rawSource) {
159
+ let rawSourceIndex;
160
+ return (node) => {
161
+ let loc = node.loc;
162
+ if (!loc) {
163
+ return;
164
+ }
165
+ if (rawSourceIndex == null) {
166
+ rawSourceIndex = this.rawSources.length;
167
+ this.rawSources.push(rawSource);
168
+ }
169
+ let codeFrameIndex = this.codeFrames.length;
170
+ this.codeFrames.push({
171
+ rawSourceIndex,
172
+ loc,
173
+ });
174
+ return codeFrameIndex;
175
+ };
176
+ }
177
+ render(codeFrameIndex) {
178
+ if (codeFrameIndex != null) {
179
+ let { loc, rawSourceIndex } = this.codeFrames[codeFrameIndex];
180
+ return (0, code_frame_1.codeFrameColumns)(this.rawSources[rawSourceIndex], loc, { highlightCode: true });
181
+ }
182
+ }
183
+ }
184
+ exports.CodeFrameStorage = CodeFrameStorage;
185
+ function name(node) {
186
+ if (core_1.types.isStringLiteral(node)) {
187
+ return node.value;
188
+ }
189
+ else {
190
+ return node.name;
191
+ }
192
+ }
193
+ function isFreeVariable(path) {
194
+ return !path.scope.hasBinding(path.node.name);
195
+ }
196
+ const contextCache = new WeakMap();
197
+ function inExportDeclarationContext(path) {
198
+ if (contextCache.has(path.node)) {
199
+ return contextCache.get(path.node);
200
+ }
201
+ else {
202
+ let answer = _inExportDeclarationContext(path);
203
+ contextCache.set(path.node, answer);
204
+ return answer;
205
+ }
206
+ }
207
+ function _inExportDeclarationContext(path) {
208
+ let parent = path.parent;
209
+ switch (parent.type) {
210
+ case 'ExportNamedDeclaration':
211
+ return parent.declaration === path.node;
212
+ case 'VariableDeclaration':
213
+ case 'ObjectPattern':
214
+ case 'ArrayPattern':
215
+ case 'RestElement':
216
+ return inExportDeclarationContext(path.parentPath);
217
+ case 'VariableDeclarator':
218
+ return parent.id === path.node && inExportDeclarationContext(path.parentPath);
219
+ case 'ObjectProperty':
220
+ return parent.value === path.node && inExportDeclarationContext(path.parentPath);
221
+ case 'AssignmentPattern':
222
+ return parent.left === path.node && inExportDeclarationContext(path.parentPath);
223
+ case 'FunctionDeclaration':
224
+ case 'ClassDeclaration':
225
+ return parent.id === path.node && inExportDeclarationContext(path.parentPath);
226
+ default:
227
+ return false;
228
+ }
229
+ }
230
+ //# sourceMappingURL=babel-visitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babel-visitor.js","sourceRoot":"","sources":["../../../src/audit/babel-visitor.ts"],"names":[],"mappings":"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","sourcesContent":["import type { NodePath, Node } from '@babel/traverse';\nimport traverse from '@babel/traverse';\nimport type { TransformOptions } from '@babel/core';\nimport { transformAsync, types as t } from '@babel/core';\nimport type { SourceLocation } from '@babel/code-frame';\nimport { codeFrameColumns } from '@babel/code-frame';\n\nexport class VisitorState {}\n\nexport interface InternalImport {\n source: string;\n codeFrameIndex: number | undefined;\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}\n\nexport interface NamespaceMarker {\n isNamespace: true;\n}\n\nexport function isNamespaceMarker(value: string | NamespaceMarker): value is NamespaceMarker {\n return typeof value !== 'string';\n}\n\nexport interface ExportAll {\n all: string;\n}\n\nexport async function auditJS(\n rawSource: string,\n filename: string,\n babelConfig: TransformOptions,\n frames: CodeFrameStorage\n) {\n if (!babelConfig.ast) {\n throw new Error(`module auditing requires a babel config with ast: true`);\n }\n\n let imports = [] as InternalImport[];\n let exports = new Set<string | ExportAll>();\n let problems = [] as { message: string; detail: string; codeFrameIndex: number | undefined }[];\n\n /* eslint-disable @typescript-eslint/no-inferrable-types */\n // These are not really inferrable. Without explicit declarations, TS thinks\n // they're always false because it doesn't know the handler methods run\n // synchronously\n let sawModule: boolean = false;\n let sawExports: boolean = false;\n let sawDefine: boolean = false;\n /* eslint-enable @typescript-eslint/no-inferrable-types */\n\n let { ast, code } = (await transformAsync(rawSource, Object.assign({ filename: filename }, babelConfig)))!;\n let saveCodeFrame = frames.forSource(rawSource);\n\n traverse(ast!, {\n Identifier(path: NodePath<t.Identifier>) {\n if (path.node.name === 'module' && isFreeVariable(path)) {\n sawModule = true;\n } else if (path.node.name === 'exports' && isFreeVariable(path)) {\n sawExports = true;\n } else if (path.node.name === 'define' && isFreeVariable(path)) {\n sawDefine = true;\n }\n if (inExportDeclarationContext(path)) {\n exports.add(path.node.name);\n }\n },\n CallExpression(path: NodePath<t.CallExpression>) {\n let callee = path.get('callee');\n if (callee.referencesImport('@embroider/macros', 'importSync') || t.isImport(callee.node)) {\n let arg = path.node.arguments[0];\n if (arg.type === 'StringLiteral') {\n imports.push({\n source: arg.value,\n codeFrameIndex: saveCodeFrame(arg),\n specifiers: [],\n });\n } else if (arg.leadingComments?.find(c => /@vite-ignore/.test(c.value))) {\n // this is vite internals that we should ignore too\n } else {\n problems.push({\n message: `audit tool is unable to understand this usage of ${\n t.isImport(callee.node) ? 'import' : 'importSync'\n }`,\n detail: arg.type,\n codeFrameIndex: saveCodeFrame(arg),\n });\n }\n }\n },\n ImportDeclaration(path: NodePath<t.ImportDeclaration>) {\n imports.push({\n source: path.node.source.value,\n codeFrameIndex: saveCodeFrame(path.node.source),\n specifiers: [],\n });\n },\n ImportDefaultSpecifier(path: NodePath<t.ImportDefaultSpecifier>) {\n imports[imports.length - 1].specifiers.push({\n name: 'default',\n local: path.node.local.name,\n codeFrameIndex: saveCodeFrame(path.node),\n });\n },\n ImportNamespaceSpecifier(path: NodePath<t.ImportNamespaceSpecifier>) {\n imports[imports.length - 1].specifiers.push({\n name: { isNamespace: true },\n local: path.node.local.name,\n codeFrameIndex: saveCodeFrame(path.node),\n });\n },\n ImportSpecifier(path: NodePath<t.ImportSpecifier>) {\n imports[imports.length - 1].specifiers.push({\n name: name(path.node.imported),\n local: path.node.local.name,\n codeFrameIndex: saveCodeFrame(path.node),\n });\n },\n ExportDefaultDeclaration(_path: NodePath<t.ExportDefaultDeclaration>) {\n exports.add('default');\n },\n ExportSpecifier(path: NodePath<t.ExportSpecifier>) {\n exports.add(name(path.node.exported));\n if (path.parent.type === 'ExportNamedDeclaration' && path.parent.source) {\n imports[imports.length - 1].specifiers.push({\n name: name(path.node.local),\n local: null, // re-exports don't create local bindings\n codeFrameIndex: saveCodeFrame(path.node),\n });\n }\n },\n ExportNamespaceSpecifier(path: NodePath<t.ExportNamespaceSpecifier>) {\n exports.add(name(path.node.exported));\n if (path.parent.type === 'ExportNamedDeclaration' && path.parent.source) {\n imports[imports.length - 1].specifiers.push({\n name: { isNamespace: true },\n local: null, // re-exports don't create local bindings\n codeFrameIndex: saveCodeFrame(path.node),\n });\n }\n },\n ExportAllDeclaration(path: NodePath<t.ExportAllDeclaration>) {\n exports.add({ all: path.node.source.value });\n imports.push({\n source: path.node.source.value,\n codeFrameIndex: saveCodeFrame(path.node.source),\n specifiers: [\n {\n name: { isNamespace: true },\n local: null,\n codeFrameIndex: saveCodeFrame(path.node),\n },\n ],\n });\n },\n ExportNamedDeclaration(path: NodePath<t.ExportNamedDeclaration>) {\n if (path.node.source) {\n imports.push({\n source: path.node.source.value,\n codeFrameIndex: saveCodeFrame(path.node.source),\n specifiers: [],\n });\n }\n },\n });\n\n let isCJS = imports.length === 0 && exports.size === 0 && (sawModule || sawExports);\n let isAMD = imports.length === 0 && exports.size === 0 && sawDefine;\n return { imports, exports, isCJS, isAMD, problems, transpiledContent: code! };\n}\n\nexport class CodeFrameStorage {\n private codeFrames = [] as { rawSourceIndex: number; loc: SourceLocation }[];\n private rawSources = [] as string[];\n\n forSource(rawSource: string): (node: { loc?: SourceLocation | null }) => number | undefined {\n let rawSourceIndex: number | undefined;\n return (node: { loc?: SourceLocation | null | undefined }) => {\n let loc = node.loc;\n if (!loc) {\n return;\n }\n if (rawSourceIndex == null) {\n rawSourceIndex = this.rawSources.length;\n this.rawSources.push(rawSource);\n }\n let codeFrameIndex = this.codeFrames.length;\n this.codeFrames.push({\n rawSourceIndex,\n loc,\n });\n return codeFrameIndex;\n };\n }\n\n render(codeFrameIndex: number | undefined): string | undefined {\n if (codeFrameIndex != null) {\n let { loc, rawSourceIndex } = this.codeFrames[codeFrameIndex];\n return codeFrameColumns(this.rawSources[rawSourceIndex], loc, { highlightCode: true });\n }\n }\n}\n\nfunction name(node: t.StringLiteral | t.Identifier): string {\n if (t.isStringLiteral(node)) {\n return node.value;\n } else {\n return node.name;\n }\n}\n\nfunction isFreeVariable(path: NodePath<t.Identifier>) {\n return !path.scope.hasBinding(path.node.name);\n}\n\nconst contextCache: WeakMap<Node, boolean> = new WeakMap();\n\nfunction inExportDeclarationContext(path: NodePath): boolean {\n if (contextCache.has(path.node)) {\n return contextCache.get(path.node)!;\n } else {\n let answer = _inExportDeclarationContext(path);\n contextCache.set(path.node, answer);\n return answer;\n }\n}\n\nfunction _inExportDeclarationContext(path: NodePath): boolean {\n let parent = path.parent;\n switch (parent.type) {\n case 'ExportNamedDeclaration':\n return parent.declaration === path.node;\n case 'VariableDeclaration':\n case 'ObjectPattern':\n case 'ArrayPattern':\n case 'RestElement':\n return inExportDeclarationContext(path.parentPath!);\n case 'VariableDeclarator':\n return parent.id === path.node && inExportDeclarationContext(path.parentPath!);\n case 'ObjectProperty':\n return parent.value === path.node && inExportDeclarationContext(path.parentPath!);\n case 'AssignmentPattern':\n return parent.left === path.node && inExportDeclarationContext(path.parentPath!);\n case 'FunctionDeclaration':\n case 'ClassDeclaration':\n return parent.id === path.node && inExportDeclarationContext(path.parentPath!);\n default:\n return false;\n }\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import type { AuditBuildOptions } from '../audit';
2
+ export declare function buildApp(options: AuditBuildOptions): Promise<void>;
3
+ export declare class BuildError extends Error {
4
+ isBuildError: boolean;
5
+ constructor(buildOutput: string);
6
+ }
7
+ export declare function isBuildError(err: any): err is BuildError;
8
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/audit/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGlD,wBAAsB,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAaxE;AAED,qBAAa,UAAW,SAAQ,KAAK;IACnC,YAAY,UAAQ;gBACR,WAAW,EAAE,MAAM;CAGhC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,UAAU,CAExD"}