@angular/cdk 20.0.0-next.1 → 20.0.0-next.10

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 (445) hide show
  1. package/_adev_assets/cdk_testing.json +1 -0
  2. package/_adev_assets/cdk_testing_protractor.json +1 -0
  3. package/_adev_assets/cdk_testing_selenium_webdriver.json +1 -0
  4. package/_adev_assets/cdk_testing_testbed.json +1 -0
  5. package/a11y/index.d.ts +11 -11
  6. package/{a11y-module.d-7d03e079.d.ts → a11y-module.d-DBHGyKoh.d.ts} +4 -3
  7. package/a11y-prebuilt.css +1 -1
  8. package/accordion/index.d.ts +1 -1
  9. package/{activedescendant-key-manager.d-11921e3a.d.ts → activedescendant-key-manager.d-Bjic5obv.d.ts} +3 -2
  10. package/bidi/index.d.ts +1 -1
  11. package/{bidi-module.d-f8648621.d.ts → bidi-module.d-IN1Vp56w.d.ts} +8 -4
  12. package/clipboard/index.d.ts +2 -1
  13. package/coercion/index.d.ts +3 -2
  14. package/collections/index.d.ts +9 -8
  15. package/{data-source.d-7cab2c9d.d.ts → data-source.d-Bblv7Zvh.d.ts} +2 -1
  16. package/dialog/index.d.ts +26 -19
  17. package/drag-drop/index.d.ts +14 -6
  18. package/fesm2022/{a11y-module-e6996d20.mjs → a11y-module-DpEjWNCj.mjs} +32 -33
  19. package/fesm2022/a11y-module-DpEjWNCj.mjs.map +1 -0
  20. package/fesm2022/a11y.mjs +35 -36
  21. package/fesm2022/a11y.mjs.map +1 -1
  22. package/fesm2022/accordion.mjs +12 -12
  23. package/fesm2022/accordion.mjs.map +1 -1
  24. package/fesm2022/{activedescendant-key-manager-1351a9d3.mjs → activedescendant-key-manager-DC3-fwQI.mjs} +2 -2
  25. package/fesm2022/activedescendant-key-manager-DC3-fwQI.mjs.map +1 -0
  26. package/fesm2022/{array-ee3b4bab.mjs → array-I1yfCXUO.mjs} +1 -1
  27. package/fesm2022/array-I1yfCXUO.mjs.map +1 -0
  28. package/fesm2022/bidi.mjs +77 -4
  29. package/fesm2022/bidi.mjs.map +1 -1
  30. package/fesm2022/{breakpoints-observer-d4584b66.mjs → breakpoints-observer-DpQzdtrE.mjs} +9 -9
  31. package/fesm2022/breakpoints-observer-DpQzdtrE.mjs.map +1 -0
  32. package/fesm2022/cdk.mjs +1 -1
  33. package/fesm2022/cdk.mjs.map +1 -1
  34. package/fesm2022/clipboard.mjs +11 -12
  35. package/fesm2022/clipboard.mjs.map +1 -1
  36. package/fesm2022/coercion/private.mjs +14 -2
  37. package/fesm2022/coercion/private.mjs.map +1 -1
  38. package/fesm2022/coercion.mjs +3 -3
  39. package/fesm2022/coercion.mjs.map +1 -1
  40. package/fesm2022/collections.mjs +5 -5
  41. package/fesm2022/{css-pixel-value-286c9a60.mjs → css-pixel-value-C_HEqLhI.mjs} +1 -1
  42. package/fesm2022/css-pixel-value-C_HEqLhI.mjs.map +1 -0
  43. package/fesm2022/{data-source-5320b6fd.mjs → data-source-D34wiQZj.mjs} +1 -1
  44. package/fesm2022/data-source-D34wiQZj.mjs.map +1 -0
  45. package/fesm2022/dialog.mjs +88 -71
  46. package/fesm2022/dialog.mjs.map +1 -1
  47. package/fesm2022/{directionality-7ea26429.mjs → directionality-Ck5Uc9Se.mjs} +13 -8
  48. package/fesm2022/directionality-Ck5Uc9Se.mjs.map +1 -0
  49. package/fesm2022/{dispose-view-repeater-strategy-b11b87ea.mjs → dispose-view-repeater-strategy-D_JReLI1.mjs} +2 -2
  50. package/fesm2022/dispose-view-repeater-strategy-D_JReLI1.mjs.map +1 -0
  51. package/fesm2022/drag-drop.mjs +125 -60
  52. package/fesm2022/drag-drop.mjs.map +1 -1
  53. package/fesm2022/{element-705567fe.mjs → element-x4z00URv.mjs} +2 -2
  54. package/fesm2022/element-x4z00URv.mjs.map +1 -0
  55. package/fesm2022/{fake-event-detection-7055b1bd.mjs → fake-event-detection-DWOdFTFz.mjs} +1 -1
  56. package/fesm2022/fake-event-detection-DWOdFTFz.mjs.map +1 -0
  57. package/fesm2022/{focus-key-manager-58d29acd.mjs → focus-key-manager-C1rAQJ5z.mjs} +2 -2
  58. package/fesm2022/focus-key-manager-C1rAQJ5z.mjs.map +1 -0
  59. package/fesm2022/{focus-monitor-cebaa0d1.mjs → focus-monitor-DKFfep8Q.mjs} +21 -23
  60. package/fesm2022/focus-monitor-DKFfep8Q.mjs.map +1 -0
  61. package/fesm2022/{id-generator-fba495fb.mjs → id-generator-BwB8lolC.mjs} +4 -4
  62. package/fesm2022/id-generator-BwB8lolC.mjs.map +1 -0
  63. package/fesm2022/{keycodes-107cd3e4.mjs → keycodes-CpHkExLC.mjs} +2 -2
  64. package/fesm2022/keycodes-CpHkExLC.mjs.map +1 -0
  65. package/fesm2022/keycodes.mjs +14 -2
  66. package/fesm2022/keycodes.mjs.map +1 -1
  67. package/fesm2022/layout.mjs +7 -7
  68. package/fesm2022/layout.mjs.map +1 -1
  69. package/fesm2022/{list-key-manager-c7b5cefb.mjs → list-key-manager-CyOIXo8P.mjs} +4 -4
  70. package/fesm2022/list-key-manager-CyOIXo8P.mjs.map +1 -0
  71. package/fesm2022/listbox.mjs +20 -20
  72. package/fesm2022/listbox.mjs.map +1 -1
  73. package/fesm2022/menu.mjs +85 -90
  74. package/fesm2022/menu.mjs.map +1 -1
  75. package/fesm2022/observers/private.mjs +3 -3
  76. package/fesm2022/observers/private.mjs.map +1 -1
  77. package/fesm2022/observers.mjs +209 -5
  78. package/fesm2022/observers.mjs.map +1 -1
  79. package/fesm2022/{overlay-module-863b82c9.mjs → overlay-module-BaGhSGqO.mjs} +204 -171
  80. package/fesm2022/overlay-module-BaGhSGqO.mjs.map +1 -0
  81. package/fesm2022/overlay.mjs +23 -24
  82. package/fesm2022/overlay.mjs.map +1 -1
  83. package/fesm2022/{passive-listeners-c0bdc49f.mjs → passive-listeners-esHZRgIN.mjs} +1 -1
  84. package/fesm2022/passive-listeners-esHZRgIN.mjs.map +1 -0
  85. package/fesm2022/{platform-1be098b0.mjs → platform-CPg0IbDW.mjs} +4 -4
  86. package/fesm2022/platform-CPg0IbDW.mjs.map +1 -0
  87. package/fesm2022/platform.mjs +9 -10
  88. package/fesm2022/platform.mjs.map +1 -1
  89. package/fesm2022/portal.mjs +613 -3
  90. package/fesm2022/portal.mjs.map +1 -1
  91. package/fesm2022/private.mjs +18 -3
  92. package/fesm2022/private.mjs.map +1 -1
  93. package/fesm2022/{recycle-view-repeater-strategy-c1712813.mjs → recycle-view-repeater-strategy-DoWdPqVw.mjs} +2 -2
  94. package/fesm2022/recycle-view-repeater-strategy-DoWdPqVw.mjs.map +1 -0
  95. package/fesm2022/{scrolling-61955dd1.mjs → scrolling-BkvA05C8.mjs} +1 -1
  96. package/fesm2022/scrolling-BkvA05C8.mjs.map +1 -0
  97. package/fesm2022/scrolling.mjs +1462 -11
  98. package/fesm2022/scrolling.mjs.map +1 -1
  99. package/fesm2022/{selection-model-30243dba.mjs → selection-model-BCgC8uEN.mjs} +1 -1
  100. package/fesm2022/selection-model-BCgC8uEN.mjs.map +1 -0
  101. package/fesm2022/{shadow-dom-9f403d00.mjs → shadow-dom-B0oHn41l.mjs} +2 -2
  102. package/fesm2022/shadow-dom-B0oHn41l.mjs.map +1 -0
  103. package/fesm2022/stepper.mjs +43 -38
  104. package/fesm2022/stepper.mjs.map +1 -1
  105. package/fesm2022/{style-loader-e14dc585.mjs → style-loader-BDEAZOey.mjs} +4 -4
  106. package/fesm2022/style-loader-BDEAZOey.mjs.map +1 -0
  107. package/fesm2022/table.mjs +170 -226
  108. package/fesm2022/table.mjs.map +1 -1
  109. package/fesm2022/{test-environment-34eef1ee.mjs → test-environment-CT0XxPyp.mjs} +1 -1
  110. package/fesm2022/test-environment-CT0XxPyp.mjs.map +1 -0
  111. package/fesm2022/testing/selenium-webdriver.mjs +1 -1
  112. package/fesm2022/testing/selenium-webdriver.mjs.map +1 -1
  113. package/fesm2022/testing/testbed.mjs +2 -2
  114. package/fesm2022/testing/testbed.mjs.map +1 -1
  115. package/fesm2022/testing.mjs +697 -2
  116. package/fesm2022/testing.mjs.map +1 -1
  117. package/fesm2022/text-field.mjs +27 -24
  118. package/fesm2022/text-field.mjs.map +1 -1
  119. package/fesm2022/{tree-key-manager-2f20c79c.mjs → tree-key-manager-KnCoIkIC.mjs} +3 -3
  120. package/fesm2022/tree-key-manager-KnCoIkIC.mjs.map +1 -0
  121. package/fesm2022/tree.mjs +47 -35
  122. package/fesm2022/tree.mjs.map +1 -1
  123. package/fesm2022/{typeahead-11ae39bd.mjs → typeahead-9ZW4Dtsf.mjs} +2 -2
  124. package/fesm2022/typeahead-9ZW4Dtsf.mjs.map +1 -0
  125. package/fesm2022/{unique-selection-dispatcher-1d6f91d8.mjs → unique-selection-dispatcher-Cag6cZJ2.mjs} +4 -4
  126. package/fesm2022/unique-selection-dispatcher-Cag6cZJ2.mjs.map +1 -0
  127. package/{focus-key-manager.d-415a6958.d.ts → focus-key-manager.d-BIKDy8oD.d.ts} +4 -3
  128. package/{focus-monitor.d-810a02e6.d.ts → focus-monitor.d-CvvJeQRc.d.ts} +2 -1
  129. package/{harness-environment.d-4d615248.d.ts → harness-environment.d-BatBdODN.d.ts} +2 -1
  130. package/keycodes/index.d.ts +2 -1
  131. package/layout/index.d.ts +2 -1
  132. package/{list-key-manager.d-72e9a2e7.d.ts → list-key-manager.d-BlK3jyRn.d.ts} +2 -1
  133. package/listbox/index.d.ts +5 -4
  134. package/menu/index.d.ts +16 -18
  135. package/{number-property.d-ce316715.d.ts → number-property.d-CJVxXUcb.d.ts} +2 -1
  136. package/observers/index.d.ts +84 -4
  137. package/overlay/_index.scss +7 -1
  138. package/overlay/index.d.ts +77 -80
  139. package/{overlay-module.d-5d06db8a.d.ts → overlay-module.d-BiAhhk6g.d.ts} +23 -12
  140. package/overlay-prebuilt.css +1 -1
  141. package/package.json +2 -4
  142. package/platform/index.d.ts +2 -17
  143. package/portal/index.d.ts +3 -3
  144. package/{portal-directives.d-d345bd53.d.ts → portal-directives.d-DbeNrI5D.d.ts} +2 -1
  145. package/private/index.d.ts +1 -1
  146. package/schematics/index.js +1 -1
  147. package/schematics/index.js.map +1 -0
  148. package/schematics/ng-add/index.js +11 -19
  149. package/schematics/ng-add/index.js.map +1 -0
  150. package/schematics/ng-add/schema.js +1 -1
  151. package/schematics/ng-add/schema.js.map +1 -0
  152. package/schematics/ng-generate/drag-drop/index.js +15 -6
  153. package/schematics/ng-generate/drag-drop/index.js.map +1 -0
  154. package/schematics/ng-generate/drag-drop/schema.js +1 -1
  155. package/schematics/ng-generate/drag-drop/schema.js.map +1 -0
  156. package/schematics/ng-update/data/attribute-selectors.js +1 -1
  157. package/schematics/ng-update/data/attribute-selectors.js.map +1 -0
  158. package/schematics/ng-update/data/class-names.js +1 -1
  159. package/schematics/ng-update/data/class-names.js.map +1 -0
  160. package/schematics/ng-update/data/constructor-checks.js +1 -1
  161. package/schematics/ng-update/data/constructor-checks.js.map +1 -0
  162. package/schematics/ng-update/data/css-selectors.js +1 -1
  163. package/schematics/ng-update/data/css-selectors.js.map +1 -0
  164. package/schematics/ng-update/data/css-tokens.js +1 -1
  165. package/schematics/ng-update/data/css-tokens.js.map +1 -0
  166. package/schematics/ng-update/data/element-selectors.js +1 -1
  167. package/schematics/ng-update/data/element-selectors.js.map +1 -0
  168. package/schematics/ng-update/data/index.js +1 -1
  169. package/schematics/ng-update/data/index.js.map +1 -0
  170. package/schematics/ng-update/data/input-names.js +1 -1
  171. package/schematics/ng-update/data/input-names.js.map +1 -0
  172. package/schematics/ng-update/data/method-call-checks.js +1 -1
  173. package/schematics/ng-update/data/method-call-checks.js.map +1 -0
  174. package/schematics/ng-update/data/output-names.js +1 -1
  175. package/schematics/ng-update/data/output-names.js.map +1 -0
  176. package/schematics/ng-update/data/property-names.js +1 -1
  177. package/schematics/ng-update/data/property-names.js.map +1 -0
  178. package/schematics/ng-update/data/symbol-removal.js +1 -1
  179. package/schematics/ng-update/data/symbol-removal.js.map +1 -0
  180. package/schematics/ng-update/devkit-file-system.js +2 -3
  181. package/schematics/ng-update/devkit-file-system.js.map +1 -0
  182. package/schematics/ng-update/devkit-migration-rule.js +13 -4
  183. package/schematics/ng-update/devkit-migration-rule.js.map +1 -0
  184. package/schematics/ng-update/devkit-migration.d.ts +2 -2
  185. package/schematics/ng-update/devkit-migration.js +1 -1
  186. package/schematics/ng-update/devkit-migration.js.map +1 -0
  187. package/schematics/ng-update/find-stylesheets.js +1 -1
  188. package/schematics/ng-update/find-stylesheets.js.map +1 -0
  189. package/schematics/ng-update/html-parsing/angular.js +2 -2
  190. package/schematics/ng-update/html-parsing/angular.js.map +1 -0
  191. package/schematics/ng-update/html-parsing/elements.js +3 -2
  192. package/schematics/ng-update/html-parsing/elements.js.map +1 -0
  193. package/schematics/ng-update/index.js +1 -1
  194. package/schematics/ng-update/index.js.map +1 -0
  195. package/schematics/ng-update/migrations/attribute-selectors.js +8 -5
  196. package/schematics/ng-update/migrations/attribute-selectors.js.map +1 -0
  197. package/schematics/ng-update/migrations/class-inheritance.js +11 -8
  198. package/schematics/ng-update/migrations/class-inheritance.js.map +1 -0
  199. package/schematics/ng-update/migrations/class-names.js +15 -12
  200. package/schematics/ng-update/migrations/class-names.js.map +1 -0
  201. package/schematics/ng-update/migrations/constructor-signature.js +10 -7
  202. package/schematics/ng-update/migrations/constructor-signature.js.map +1 -0
  203. package/schematics/ng-update/migrations/css-selectors.js +8 -5
  204. package/schematics/ng-update/migrations/css-selectors.js.map +1 -0
  205. package/schematics/ng-update/migrations/css-tokens.js +8 -5
  206. package/schematics/ng-update/migrations/css-tokens.js.map +1 -0
  207. package/schematics/ng-update/migrations/element-selectors.js +8 -5
  208. package/schematics/ng-update/migrations/element-selectors.js.map +1 -0
  209. package/schematics/ng-update/migrations/input-names.js +8 -5
  210. package/schematics/ng-update/migrations/input-names.js.map +1 -0
  211. package/schematics/ng-update/migrations/method-call-arguments.js +8 -5
  212. package/schematics/ng-update/migrations/method-call-arguments.js.map +1 -0
  213. package/schematics/ng-update/migrations/misc-template.js +6 -3
  214. package/schematics/ng-update/migrations/misc-template.js.map +1 -0
  215. package/schematics/ng-update/migrations/output-names.js +8 -5
  216. package/schematics/ng-update/migrations/output-names.js.map +1 -0
  217. package/schematics/ng-update/migrations/property-names.js +8 -5
  218. package/schematics/ng-update/migrations/property-names.js.map +1 -0
  219. package/schematics/ng-update/migrations/symbol-removal.js +10 -6
  220. package/schematics/ng-update/migrations/symbol-removal.js.map +1 -0
  221. package/schematics/ng-update/public-api.js +1 -1
  222. package/schematics/ng-update/public-api.js.map +1 -0
  223. package/schematics/ng-update/typescript/base-types.js +1 -1
  224. package/schematics/ng-update/typescript/base-types.js.map +1 -0
  225. package/schematics/ng-update/typescript/imports.js +1 -1
  226. package/schematics/ng-update/typescript/imports.js.map +1 -0
  227. package/schematics/ng-update/typescript/literal.js +1 -1
  228. package/schematics/ng-update/typescript/literal.js.map +1 -0
  229. package/schematics/ng-update/typescript/module-specifiers.js +1 -1
  230. package/schematics/ng-update/typescript/module-specifiers.js.map +1 -0
  231. package/schematics/ng-update/upgrade-data.js +1 -1
  232. package/schematics/ng-update/upgrade-data.js.map +1 -0
  233. package/schematics/paths.js +1 -1
  234. package/schematics/paths.js.map +1 -0
  235. package/schematics/update-tool/component-resource-collector.js +3 -5
  236. package/schematics/update-tool/component-resource-collector.js.map +1 -0
  237. package/schematics/update-tool/file-system.js +1 -1
  238. package/schematics/update-tool/file-system.js.map +1 -0
  239. package/schematics/update-tool/index.js +2 -8
  240. package/schematics/update-tool/index.js.map +1 -0
  241. package/schematics/update-tool/logger.js +1 -1
  242. package/schematics/update-tool/logger.js.map +1 -0
  243. package/schematics/update-tool/migration.js +3 -10
  244. package/schematics/update-tool/migration.js.map +1 -0
  245. package/schematics/update-tool/public-api.js +1 -1
  246. package/schematics/update-tool/public-api.js.map +1 -0
  247. package/schematics/update-tool/target-version.js +1 -1
  248. package/schematics/update-tool/target-version.js.map +1 -0
  249. package/schematics/update-tool/update-recorder.js +1 -1
  250. package/schematics/update-tool/update-recorder.js.map +1 -0
  251. package/schematics/update-tool/utils/decorators.js +1 -1
  252. package/schematics/update-tool/utils/decorators.js.map +1 -0
  253. package/schematics/update-tool/utils/diagnostics.js +1 -1
  254. package/schematics/update-tool/utils/diagnostics.js.map +1 -0
  255. package/schematics/update-tool/utils/functions.js +1 -1
  256. package/schematics/update-tool/utils/functions.js.map +1 -0
  257. package/schematics/update-tool/utils/imports.js +1 -1
  258. package/schematics/update-tool/utils/imports.js.map +1 -0
  259. package/schematics/update-tool/utils/line-mappings.js +1 -1
  260. package/schematics/update-tool/utils/line-mappings.js.map +1 -0
  261. package/schematics/update-tool/utils/parse-tsconfig.js +1 -1
  262. package/schematics/update-tool/utils/parse-tsconfig.js.map +1 -0
  263. package/schematics/update-tool/utils/property-name.js +1 -1
  264. package/schematics/update-tool/utils/property-name.js.map +1 -0
  265. package/schematics/update-tool/utils/virtual-host.js +2 -3
  266. package/schematics/update-tool/utils/virtual-host.js.map +1 -0
  267. package/schematics/update-tool/version-changes.js +1 -1
  268. package/schematics/update-tool/version-changes.js.map +1 -0
  269. package/schematics/utils/ast/ng-module-imports.js +1 -1
  270. package/schematics/utils/ast/ng-module-imports.js.map +1 -0
  271. package/schematics/utils/ast.d.ts +2 -2
  272. package/schematics/utils/ast.js +23 -12
  273. package/schematics/utils/ast.js.map +1 -0
  274. package/schematics/utils/build-component.js +22 -17
  275. package/schematics/utils/build-component.js.map +1 -0
  276. package/schematics/utils/get-project.d.ts +2 -2
  277. package/schematics/utils/get-project.js +1 -1
  278. package/schematics/utils/get-project.js.map +1 -0
  279. package/schematics/utils/html-manipulation.js +1 -1
  280. package/schematics/utils/html-manipulation.js.map +1 -0
  281. package/schematics/utils/index.js +1 -1
  282. package/schematics/utils/index.js.map +1 -0
  283. package/schematics/utils/parse5-element.js +1 -1
  284. package/schematics/utils/parse5-element.js.map +1 -0
  285. package/schematics/utils/project-index-file.d.ts +6 -3
  286. package/schematics/utils/project-index-file.js +30 -7
  287. package/schematics/utils/project-index-file.js.map +1 -0
  288. package/schematics/utils/project-main-file.d.ts +3 -2
  289. package/schematics/utils/project-main-file.js +1 -1
  290. package/schematics/utils/project-main-file.js.map +1 -0
  291. package/schematics/utils/project-style-file.d.ts +2 -2
  292. package/schematics/utils/project-style-file.js +1 -1
  293. package/schematics/utils/project-style-file.js.map +1 -0
  294. package/schematics/utils/project-targets.d.ts +5 -4
  295. package/schematics/utils/project-targets.js +15 -8
  296. package/schematics/utils/project-targets.js.map +1 -0
  297. package/schematics/utils/project-tsconfig-paths.d.ts +3 -3
  298. package/schematics/utils/project-tsconfig-paths.js +26 -14
  299. package/schematics/utils/project-tsconfig-paths.js.map +1 -0
  300. package/schematics/utils/schematic-options.d.ts +2 -2
  301. package/schematics/utils/schematic-options.js +27 -15
  302. package/schematics/utils/schematic-options.js.map +1 -0
  303. package/scrolling/index.d.ts +62 -7
  304. package/{scrolling-module.d-a08a462d.d.ts → scrolling-module.d-DP0Qb7T9.d.ts} +5 -4
  305. package/{selection-model.d-1a70542c.d.ts → selection-model.d-DNgOONDg.d.ts} +2 -1
  306. package/stepper/index.d.ts +6 -5
  307. package/table/index.d.ts +9 -197
  308. package/testing/index.d.ts +3 -2
  309. package/testing/selenium-webdriver/index.d.ts +3 -2
  310. package/testing/testbed/index.d.ts +3 -2
  311. package/text-field/index.d.ts +5 -2
  312. package/text-field-prebuilt.css +1 -1
  313. package/tree/index.d.ts +7 -4
  314. package/{tree-key-manager-strategy.d-603161dd.d.ts → tree-key-manager-strategy.d-XB6M79l-.d.ts} +1 -1
  315. package/{unique-selection-dispatcher.d-7993b9f5.d.ts → unique-selection-dispatcher.d-DSFqf1MM.d.ts} +2 -1
  316. package/{view-repeater.d-79039e1f.d.ts → view-repeater.d-BKljR8u8.d.ts} +2 -1
  317. package/fesm2022/a11y-module-e6996d20.mjs.map +0 -1
  318. package/fesm2022/activedescendant-key-manager-1351a9d3.mjs.map +0 -1
  319. package/fesm2022/array-ee3b4bab.mjs.map +0 -1
  320. package/fesm2022/backwards-compatibility-bcbe473e.mjs +0 -25
  321. package/fesm2022/backwards-compatibility-bcbe473e.mjs.map +0 -1
  322. package/fesm2022/bidi-module-0726b65c.mjs +0 -78
  323. package/fesm2022/bidi-module-0726b65c.mjs.map +0 -1
  324. package/fesm2022/breakpoints-observer-d4584b66.mjs.map +0 -1
  325. package/fesm2022/css-pixel-value-286c9a60.mjs.map +0 -1
  326. package/fesm2022/data-source-5320b6fd.mjs.map +0 -1
  327. package/fesm2022/directionality-7ea26429.mjs.map +0 -1
  328. package/fesm2022/dispose-view-repeater-strategy-b11b87ea.mjs.map +0 -1
  329. package/fesm2022/element-705567fe.mjs.map +0 -1
  330. package/fesm2022/fake-event-detection-7055b1bd.mjs.map +0 -1
  331. package/fesm2022/focus-key-manager-58d29acd.mjs.map +0 -1
  332. package/fesm2022/focus-monitor-cebaa0d1.mjs.map +0 -1
  333. package/fesm2022/id-generator-fba495fb.mjs.map +0 -1
  334. package/fesm2022/keycodes-107cd3e4.mjs.map +0 -1
  335. package/fesm2022/list-key-manager-c7b5cefb.mjs.map +0 -1
  336. package/fesm2022/modifiers-33a5859e.mjs +0 -13
  337. package/fesm2022/modifiers-33a5859e.mjs.map +0 -1
  338. package/fesm2022/observable-97c0792c.mjs +0 -15
  339. package/fesm2022/observable-97c0792c.mjs.map +0 -1
  340. package/fesm2022/observe-content-d2a6b5a0.mjs +0 -210
  341. package/fesm2022/observe-content-d2a6b5a0.mjs.map +0 -1
  342. package/fesm2022/overlay-module-863b82c9.mjs.map +0 -1
  343. package/fesm2022/passive-listeners-c0bdc49f.mjs.map +0 -1
  344. package/fesm2022/platform-1be098b0.mjs.map +0 -1
  345. package/fesm2022/portal-directives-c88fea11.mjs +0 -615
  346. package/fesm2022/portal-directives-c88fea11.mjs.map +0 -1
  347. package/fesm2022/recycle-view-repeater-strategy-c1712813.mjs.map +0 -1
  348. package/fesm2022/scrolling-61955dd1.mjs.map +0 -1
  349. package/fesm2022/scrolling-module-aa9eeac5.mjs +0 -1463
  350. package/fesm2022/scrolling-module-aa9eeac5.mjs.map +0 -1
  351. package/fesm2022/selection-model-30243dba.mjs.map +0 -1
  352. package/fesm2022/shadow-dom-9f403d00.mjs.map +0 -1
  353. package/fesm2022/style-loader-e14dc585.mjs.map +0 -1
  354. package/fesm2022/test-environment-34eef1ee.mjs.map +0 -1
  355. package/fesm2022/text-filtering-b60ba8a2.mjs +0 -698
  356. package/fesm2022/text-filtering-b60ba8a2.mjs.map +0 -1
  357. package/fesm2022/tree-key-manager-2f20c79c.mjs.map +0 -1
  358. package/fesm2022/typeahead-11ae39bd.mjs.map +0 -1
  359. package/fesm2022/unique-selection-dispatcher-1d6f91d8.mjs.map +0 -1
  360. package/fesm2022/visually-hidden-83aea4a0.mjs +0 -18
  361. package/fesm2022/visually-hidden-83aea4a0.mjs.map +0 -1
  362. package/observe-content.d-c08bc882.d.ts +0 -84
  363. package/schematics/index.mjs +0 -37
  364. package/schematics/ng-add/index.mjs +0 -39
  365. package/schematics/ng-add/package-config.d.ts +0 -12
  366. package/schematics/ng-add/package-config.js +0 -51
  367. package/schematics/ng-add/package-config.mjs +0 -51
  368. package/schematics/ng-add/schema.mjs +0 -10
  369. package/schematics/ng-generate/drag-drop/index.mjs +0 -33
  370. package/schematics/ng-generate/drag-drop/schema.mjs +0 -10
  371. package/schematics/ng-update/data/attribute-selectors.mjs +0 -12
  372. package/schematics/ng-update/data/class-names.mjs +0 -12
  373. package/schematics/ng-update/data/constructor-checks.mjs +0 -17
  374. package/schematics/ng-update/data/css-selectors.mjs +0 -12
  375. package/schematics/ng-update/data/css-tokens.mjs +0 -12
  376. package/schematics/ng-update/data/element-selectors.mjs +0 -12
  377. package/schematics/ng-update/data/index.mjs +0 -35
  378. package/schematics/ng-update/data/input-names.mjs +0 -12
  379. package/schematics/ng-update/data/method-call-checks.mjs +0 -12
  380. package/schematics/ng-update/data/output-names.mjs +0 -12
  381. package/schematics/ng-update/data/property-names.mjs +0 -12
  382. package/schematics/ng-update/data/symbol-removal.mjs +0 -12
  383. package/schematics/ng-update/devkit-file-system.mjs +0 -84
  384. package/schematics/ng-update/devkit-migration-rule.mjs +0 -133
  385. package/schematics/ng-update/devkit-migration.mjs +0 -20
  386. package/schematics/ng-update/find-stylesheets.mjs +0 -41
  387. package/schematics/ng-update/html-parsing/angular.mjs +0 -51
  388. package/schematics/ng-update/html-parsing/elements.mjs +0 -62
  389. package/schematics/ng-update/index.mjs +0 -29
  390. package/schematics/ng-update/migrations/attribute-selectors.mjs +0 -68
  391. package/schematics/ng-update/migrations/class-inheritance.mjs +0 -55
  392. package/schematics/ng-update/migrations/class-names.mjs +0 -88
  393. package/schematics/ng-update/migrations/constructor-signature.mjs +0 -136
  394. package/schematics/ng-update/migrations/css-selectors.mjs +0 -72
  395. package/schematics/ng-update/migrations/css-tokens.mjs +0 -80
  396. package/schematics/ng-update/migrations/element-selectors.mjs +0 -63
  397. package/schematics/ng-update/migrations/input-names.mjs +0 -56
  398. package/schematics/ng-update/migrations/method-call-arguments.mjs +0 -59
  399. package/schematics/ng-update/migrations/misc-template.mjs +0 -22
  400. package/schematics/ng-update/migrations/output-names.mjs +0 -43
  401. package/schematics/ng-update/migrations/property-names.mjs +0 -57
  402. package/schematics/ng-update/migrations/symbol-removal.mjs +0 -43
  403. package/schematics/ng-update/public-api.mjs +0 -36
  404. package/schematics/ng-update/typescript/base-types.mjs +0 -23
  405. package/schematics/ng-update/typescript/imports.mjs +0 -53
  406. package/schematics/ng-update/typescript/literal.mjs +0 -32
  407. package/schematics/ng-update/typescript/module-specifiers.mjs +0 -35
  408. package/schematics/ng-update/upgrade-data.mjs +0 -40
  409. package/schematics/paths.mjs +0 -16
  410. package/schematics/schematics.externs.js +0 -0
  411. package/schematics/tsconfig.json +0 -29
  412. package/schematics/update-tool/component-resource-collector.mjs +0 -166
  413. package/schematics/update-tool/file-system.mjs +0 -18
  414. package/schematics/update-tool/index.mjs +0 -178
  415. package/schematics/update-tool/logger.mjs +0 -18
  416. package/schematics/update-tool/migration.mjs +0 -77
  417. package/schematics/update-tool/public-api.mjs +0 -33
  418. package/schematics/update-tool/target-version.mjs +0 -27
  419. package/schematics/update-tool/update-recorder.mjs +0 -10
  420. package/schematics/update-tool/update-tool.externs.js +0 -0
  421. package/schematics/update-tool/utils/decorators.mjs +0 -41
  422. package/schematics/update-tool/utils/diagnostics.mjs +0 -18
  423. package/schematics/update-tool/utils/functions.mjs +0 -20
  424. package/schematics/update-tool/utils/imports.mjs +0 -110
  425. package/schematics/update-tool/utils/line-mappings.mjs +0 -75
  426. package/schematics/update-tool/utils/parse-tsconfig.mjs +0 -45
  427. package/schematics/update-tool/utils/property-name.mjs +0 -27
  428. package/schematics/update-tool/utils/virtual-host.mjs +0 -72
  429. package/schematics/update-tool/version-changes.mjs +0 -38
  430. package/schematics/utils/ast/ng-module-imports.mjs +0 -82
  431. package/schematics/utils/ast.mjs +0 -68
  432. package/schematics/utils/build-component.mjs +0 -183
  433. package/schematics/utils/get-project.mjs +0 -28
  434. package/schematics/utils/html-manipulation.mjs +0 -91
  435. package/schematics/utils/index.mjs +0 -36
  436. package/schematics/utils/parse5-element.mjs +0 -30
  437. package/schematics/utils/project-index-file.mjs +0 -20
  438. package/schematics/utils/project-main-file.mjs +0 -25
  439. package/schematics/utils/project-style-file.mjs +0 -42
  440. package/schematics/utils/project-targets.mjs +0 -39
  441. package/schematics/utils/project-tsconfig-paths.mjs +0 -34
  442. package/schematics/utils/schematic-options.mjs +0 -77
  443. package/viewport-ruler.d-f3d3e82f.d.ts +0 -57
  444. /package/{platform.d-0a5b4792.d.ts → platform.d-B3vREl3q.d.ts} +0 -0
  445. /package/{style-loader.d-19baab84.d.ts → style-loader.d-BXZfQZTF.d.ts} +0 -0
@@ -1,183 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.buildComponent = buildComponent;
11
- const core_1 = require("@angular-devkit/core");
12
- const schematics_1 = require("@angular-devkit/schematics");
13
- const schema_1 = require("@schematics/angular/component/schema");
14
- const change_1 = require("@schematics/angular/utility/change");
15
- const workspace_1 = require("@schematics/angular/utility/workspace");
16
- const find_module_1 = require("@schematics/angular/utility/find-module");
17
- const parse_name_1 = require("@schematics/angular/utility/parse-name");
18
- const validation_1 = require("@schematics/angular/utility/validation");
19
- const workspace_models_1 = require("@schematics/angular/utility/workspace-models");
20
- const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
21
- const fs_1 = require("fs");
22
- const path_1 = require("path");
23
- const ts = require("typescript");
24
- const get_project_1 = require("./get-project");
25
- const schematic_options_1 = require("./schematic-options");
26
- /**
27
- * Build a default project path for generating.
28
- * @param project The project to build the path for.
29
- */
30
- function buildDefaultPath(project) {
31
- const root = project.sourceRoot ? `/${project.sourceRoot}/` : `/${project.root}/src/`;
32
- const projectDirName = project.extensions['projectType'] === workspace_models_1.ProjectType.Application ? 'app' : 'lib';
33
- return `${root}${projectDirName}`;
34
- }
35
- /**
36
- * List of style extensions which are CSS compatible. All supported CLI style extensions can be
37
- * found here: angular/angular-cli/main/packages/schematics/angular/ng-new/schema.json#L118-L122
38
- */
39
- const supportedCssExtensions = ['css', 'scss', 'less'];
40
- function readIntoSourceFile(host, modulePath) {
41
- const text = host.read(modulePath);
42
- if (text === null) {
43
- throw new schematics_1.SchematicsException(`File ${modulePath} does not exist.`);
44
- }
45
- return ts.createSourceFile(modulePath, text.toString('utf-8'), ts.ScriptTarget.Latest, true);
46
- }
47
- function addDeclarationToNgModule(options) {
48
- return (host) => {
49
- if (options.skipImport || options.standalone || !options.module) {
50
- return host;
51
- }
52
- const modulePath = options.module;
53
- let source = readIntoSourceFile(host, modulePath);
54
- const componentPath = `/${options.path}/` +
55
- (options.flat ? '' : core_1.strings.dasherize(options.name) + '/') +
56
- core_1.strings.dasherize(options.name) +
57
- '.component';
58
- const relativePath = (0, find_module_1.buildRelativePath)(modulePath, componentPath);
59
- const classifiedName = core_1.strings.classify(`${options.name}Component`);
60
- const declarationChanges = (0, ast_utils_1.addDeclarationToModule)(source, modulePath, classifiedName, relativePath);
61
- const declarationRecorder = host.beginUpdate(modulePath);
62
- for (const change of declarationChanges) {
63
- if (change instanceof change_1.InsertChange) {
64
- declarationRecorder.insertLeft(change.pos, change.toAdd);
65
- }
66
- }
67
- host.commitUpdate(declarationRecorder);
68
- if (options.export) {
69
- // Need to refresh the AST because we overwrote the file in the host.
70
- source = readIntoSourceFile(host, modulePath);
71
- const exportRecorder = host.beginUpdate(modulePath);
72
- const exportChanges = (0, ast_utils_1.addExportToModule)(source, modulePath, core_1.strings.classify(`${options.name}Component`), relativePath);
73
- for (const change of exportChanges) {
74
- if (change instanceof change_1.InsertChange) {
75
- exportRecorder.insertLeft(change.pos, change.toAdd);
76
- }
77
- }
78
- host.commitUpdate(exportRecorder);
79
- }
80
- return host;
81
- };
82
- }
83
- function buildSelector(options, projectPrefix) {
84
- let selector = core_1.strings.dasherize(options.name);
85
- if (options.prefix) {
86
- selector = `${options.prefix}-${selector}`;
87
- }
88
- else if (options.prefix === undefined && projectPrefix) {
89
- selector = `${projectPrefix}-${selector}`;
90
- }
91
- return selector;
92
- }
93
- /**
94
- * Indents the text content with the amount of specified spaces. The spaces will be added after
95
- * every line-break. This utility function can be used inside of EJS templates to properly
96
- * include the additional files.
97
- */
98
- function indentTextContent(text, numSpaces) {
99
- // In the Material project there should be only LF line-endings, but the schematic files
100
- // are not being linted and therefore there can be also CRLF or just CR line-endings.
101
- return text.replace(/(\r\n|\r|\n)/g, `$1${' '.repeat(numSpaces)}`);
102
- }
103
- /**
104
- * Rule that copies and interpolates the files that belong to this schematic context. Additionally
105
- * a list of file paths can be passed to this rule in order to expose them inside the EJS
106
- * template context.
107
- *
108
- * This allows inlining the external template or stylesheet files in EJS without having
109
- * to manually duplicate the file content.
110
- */
111
- function buildComponent(options, additionalFiles = {}) {
112
- return async (host, ctx) => {
113
- const context = ctx;
114
- const workspace = await (0, workspace_1.getWorkspace)(host);
115
- const project = (0, get_project_1.getProjectFromWorkspace)(workspace, options.project);
116
- const defaultComponentOptions = (0, schematic_options_1.getDefaultComponentOptions)(project);
117
- // TODO(devversion): Remove if we drop support for older CLI versions.
118
- // This handles an unreported breaking change from the @angular-devkit/schematics. Previously
119
- // the description path resolved to the factory file, but starting from 6.2.0, it resolves
120
- // to the factory directory.
121
- const schematicPath = (0, fs_1.statSync)(context.schematic.description.path).isDirectory()
122
- ? context.schematic.description.path
123
- : (0, path_1.dirname)(context.schematic.description.path);
124
- const schematicFilesUrl = './files';
125
- const schematicFilesPath = (0, path_1.resolve)(schematicPath, schematicFilesUrl);
126
- // Add the default component option values to the options if an option is not explicitly
127
- // specified but a default component option is available.
128
- Object.keys(options)
129
- .filter(key => options[key] == null &&
130
- defaultComponentOptions[key])
131
- .forEach(key => (options[key] = defaultComponentOptions[key]));
132
- if (options.path === undefined) {
133
- options.path = buildDefaultPath(project);
134
- }
135
- options.standalone = await (0, schematic_options_1.isStandaloneSchematic)(host, options);
136
- if (!options.standalone) {
137
- options.module = (0, find_module_1.findModuleFromOptions)(host, options);
138
- }
139
- const parsedPath = (0, parse_name_1.parseName)(options.path, options.name);
140
- options.name = parsedPath.name;
141
- options.path = parsedPath.path;
142
- options.selector = options.selector || buildSelector(options, project.prefix);
143
- (0, validation_1.validateHtmlSelector)(options.selector);
144
- // In case the specified style extension is not part of the supported CSS supersets,
145
- // we generate the stylesheets with the "css" extension. This ensures that we don't
146
- // accidentally generate invalid stylesheets (e.g. drag-drop-comp.styl) which will
147
- // break the Angular CLI project. See: https://github.com/angular/components/issues/15164
148
- if (!supportedCssExtensions.includes(options.style)) {
149
- options.style = schema_1.Style.Css;
150
- }
151
- // Object that will be used as context for the EJS templates.
152
- const baseTemplateContext = {
153
- ...core_1.strings,
154
- 'if-flat': (s) => (options.flat ? '' : s),
155
- ...options,
156
- };
157
- // Key-value object that includes the specified additional files with their loaded content.
158
- // The resolved contents can be used inside EJS templates.
159
- const resolvedFiles = {};
160
- for (let key in additionalFiles) {
161
- if (additionalFiles[key]) {
162
- const fileContent = (0, fs_1.readFileSync)((0, path_1.join)(schematicFilesPath, additionalFiles[key]), 'utf-8');
163
- // Interpolate the additional files with the base EJS template context.
164
- resolvedFiles[key] = (0, core_1.template)(fileContent)(baseTemplateContext);
165
- }
166
- }
167
- const templateSource = (0, schematics_1.apply)((0, schematics_1.url)(schematicFilesUrl), [
168
- options.skipTests ? (0, schematics_1.filter)(path => !path.endsWith('.spec.ts.template')) : (0, schematics_1.noop)(),
169
- options.inlineStyle ? (0, schematics_1.filter)(path => !path.endsWith('.__style__.template')) : (0, schematics_1.noop)(),
170
- options.inlineTemplate ? (0, schematics_1.filter)(path => !path.endsWith('.html.template')) : (0, schematics_1.noop)(),
171
- // Treat the template options as any, because the type definition for the template options
172
- // is made unnecessarily explicit. Every type of object can be used in the EJS template.
173
- (0, schematics_1.applyTemplates)({ indentTextContent, resolvedFiles, ...baseTemplateContext }),
174
- // TODO(devversion): figure out why we cannot just remove the first parameter
175
- // See for example: angular-cli#schematics/angular/component/index.ts#L160
176
- (0, schematics_1.move)(null, parsedPath.path),
177
- ]);
178
- return () => (0, schematics_1.chain)([
179
- (0, schematics_1.branchAndMerge)((0, schematics_1.chain)([addDeclarationToNgModule(options), (0, schematics_1.mergeWith)(templateSource)])),
180
- ])(host, context);
181
- };
182
- }
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL2J1aWxkLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQWtKSCx3Q0FtR0M7QUFuUEQsK0NBQTBGO0FBQzFGLDJEQWFvQztBQUVwQyxpRUFBdUY7QUFDdkYsK0RBQWdFO0FBQ2hFLHFFQUFtRTtBQUNuRSx5RUFBaUc7QUFDakcsdUVBQWlFO0FBQ2pFLHVFQUE0RTtBQUM1RSxtRkFBeUU7QUFDekUscUVBQWdHO0FBQ2hHLDJCQUEwQztBQUMxQywrQkFBNEM7QUFDNUMsaUNBQWlDO0FBQ2pDLCtDQUFzRDtBQUN0RCwyREFBc0Y7QUFFdEY7OztHQUdHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFxQztJQUM3RCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUM7SUFFdEYsTUFBTSxjQUFjLEdBQ2xCLE9BQU8sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssOEJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRWhGLE9BQU8sR0FBRyxJQUFJLEdBQUcsY0FBYyxFQUFFLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRXZELFNBQVMsa0JBQWtCLENBQUMsSUFBVSxFQUFFLFVBQWtCO0lBQ3hELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkMsSUFBSSxJQUFJ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QUFBLHNCQUFTLEVBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3RGLENBQUMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtzdHJpbmdzLCB0ZW1wbGF0ZSBhcyBpbnRlcnBvbGF0ZVRlbXBsYXRlLCB3b3Jrc3BhY2VzfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQge1xuICBhcHBseSxcbiAgYXBwbHlUZW1wbGF0ZXMsXG4gIGJyYW5jaEFuZE1lcmdlLFxuICBjaGFpbixcbiAgZmlsdGVyLFxuICBtZXJnZVdpdGgsXG4gIG1vdmUsXG4gIG5vb3AsXG4gIFJ1bGUsXG4gIFNjaGVtYXRpY3NFeGNlcHRpb24sXG4gIFRyZWUsXG4gIHVybCxcbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuaW1wb3J0IHtGaWxlU3lzdGVtU2NoZW1hdGljQ29udGV4dH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MvdG9vbHMnO1xuaW1wb3J0IHtTY2hlbWEgYXMgQ29tcG9uZW50T3B0aW9ucywgU3R5bGV9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvY29tcG9uZW50L3NjaGVtYSc7XG5pbXBvcnQge0luc2VydENoYW5nZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L2NoYW5nZSc7XG5pbXBvcnQge2dldFdvcmtzcGFjZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L3dvcmtzcGFjZSc7XG5pbXBvcnQge2J1aWxkUmVsYXRpdmVQYXRoLCBmaW5kTW9kdWxlRnJvbU9wdGlvbnN9IGZyb20gJ0BzY2hlbWF0aWNzL2FuZ3VsYXIvdXRpbGl0eS9maW5kLW1vZHVsZSc7XG5pbXBvcnQge3BhcnNlTmFtZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L3BhcnNlLW5hbWUnO1xuaW1wb3J0IHt2YWxpZGF0ZUh0bWxTZWxlY3Rvcn0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L3ZhbGlkYXRpb24nO1xuaW1wb3J0IHtQcm9qZWN0VHlwZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L3dvcmtzcGFjZS1tb2RlbHMnO1xuaW1wb3J0IHthZGREZWNsYXJhdGlvblRvTW9kdWxlLCBhZGRFeHBvcnRUb01vZHVsZX0gZnJvbSAnQHNjaGVtYXRpY3MvYW5ndWxhci91dGlsaXR5L2FzdC11dGlscyc7XG5pbXBvcnQge3JlYWRGaWxlU3luYywgc3RhdFN5bmN9IGZyb20gJ2ZzJztcbmltcG9ydCB7ZGlybmFtZSwgam9pbiwgcmVzb2x2ZX0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB0cyBmcm9tICd0eXBlc2NyaXB0JztcbmltcG9ydCB7Z2V0UHJvamVjdEZyb21Xb3Jrc3BhY2V9IGZyb20gJy4vZ2V0LXByb2plY3QnO1xuaW1wb3J0IHtnZXREZWZhdWx0Q29tcG9uZW50T3B0aW9ucywgaXNTdGFuZGFsb25lU2NoZW1hdGljfSBmcm9tICcuL3NjaGVtYXRpYy1vcHRpb25zJztcblxuLyoqXG4gKiBCdWlsZCBhIGRlZmF1bHQgcHJvamVjdCBwYXRoIGZvciBnZW5lcmF0aW5nLlxuICogQHBhcmFtIHByb2plY3QgVGhlIHByb2plY3QgdG8gYnVpbGQgdGhlIHBhdGggZm9yLlxuICovXG5mdW5jdGlvbiBidWlsZERlZmF1bHRQYXRoKHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24pOiBzdHJpbmcge1xuICBjb25zdCByb290ID0gcHJvamVjdC5zb3VyY2VSb290ID8gYC8ke3Byb2plY3Quc291cmNlUm9vdH0vYCA6IGAvJHtwcm9qZWN0LnJvb3R9L3NyYy9gO1xuXG4gIGNvbnN0IHByb2plY3REaXJOYW1lID1cbiAgICBwcm9qZWN0LmV4dGVuc2lvbnNbJ3Byb2plY3RUeXBlJ10gPT09IFByb2plY3RUeXBlLkFwcGxpY2F0aW9uID8gJ2FwcCcgOiAnbGliJztcblxuICByZXR1cm4gYCR7cm9vdH0ke3Byb2plY3REaXJOYW1lfWA7XG59XG5cbi8qKlxuICogTGlzdCBvZiBzdHlsZSBleHRlbnNpb25zIHdoaWNoIGFyZSBDU1MgY29tcGF0aWJsZS4gQWxsIHN1cHBvcnRlZCBDTEkgc3R5bGUgZXh0ZW5zaW9ucyBjYW4gYmVcbiAqIGZvdW5kIGhlcmU6IGFuZ3VsYXIvYW5ndWxhci1jbGkvbWFpbi9wYWNrYWdlcy9zY2hlbWF0aWNzL2FuZ3VsYXIvbmctbmV3L3NjaGVtYS5qc29uI0wxMTgtTDEyMlxuICovXG5jb25zdCBzdXBwb3J0ZWRDc3NFeHRlbnNpb25zID0gWydjc3MnLCAnc2NzcycsICdsZXNzJ107XG5cbmZ1bmN0aW9uIHJlYWRJbnRvU291cmNlRmlsZShob3N0OiBUcmVlLCBtb2R1bGVQYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgdGV4dCA9IGhvc3QucmVhZChtb2R1bGVQYXRoKTtcbiAgaWYgKHRleHQgPT09IG51bGwpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihgRmlsZSAke21vZHVsZVBhdGh9IGRvZXMgbm90IGV4aXN0LmApO1xuICB9XG5cbiAgcmV0dXJuIHRzLmNyZWF0ZVNvdXJjZUZpbGUobW9kdWxlUGF0aCwgdGV4dC50b1N0cmluZygndXRmLTgnKSwgdHMuU2NyaXB0VGFyZ2V0LkxhdGVzdCwgdHJ1ZSk7XG59XG5cbmZ1bmN0aW9uIGFkZERlY2xhcmF0aW9uVG9OZ01vZHVsZShvcHRpb25zOiBDb21wb25lbnRPcHRpb25zKTogUnVsZSB7XG4gIHJldHVybiAoaG9zdDogVHJlZSkgPT4ge1xuICAgIGlmIChvcHRpb25zLnNraXBJbXBvcnQgfHwgb3B0aW9ucy5zdGFuZGFsb25lIHx8ICFvcHRpb25zLm1vZHVsZSkge1xuICAgICAgcmV0dXJuIGhvc3Q7XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlUGF0aCA9IG9wdGlvbnMubW9kdWxlO1xuICAgIGxldCBzb3VyY2UgPSByZWFkSW50b1NvdXJjZUZpbGUoaG9zdCwgbW9kdWxlUGF0aCk7XG5cbiAgICBjb25zdCBjb21wb25lbnRQYXRoID1cbiAgICAgIGAvJHtvcHRpb25zLnBhdGh9L2AgK1xuICAgICAgKG9wdGlvbnMuZmxhdCA/ICcnIDogc3RyaW5ncy5kYXNoZXJpemUob3B0aW9ucy5uYW1lKSArICcvJykgK1xuICAgICAgc3RyaW5ncy5kYXNoZXJpemUob3B0aW9ucy5uYW1lKSArXG4gICAgICAnLmNvbXBvbmVudCc7XG4gICAgY29uc3QgcmVsYXRpdmVQYXRoID0gYnVpbGRSZWxhdGl2ZVBhdGgobW9kdWxlUGF0aCwgY29tcG9uZW50UGF0aCk7XG4gICAgY29uc3QgY2xhc3NpZmllZE5hbWUgPSBzdHJpbmdzLmNsYXNzaWZ5KGAke29wdGlvbnMubmFtZX1Db21wb25lbnRgKTtcblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uQ2hhbmdlcyA9IGFkZERlY2xhcmF0aW9uVG9Nb2R1bGUoXG4gICAgICBzb3VyY2UsXG4gICAgICBtb2R1bGVQYXRoLFxuICAgICAgY2xhc3NpZmllZE5hbWUsXG4gICAgICByZWxhdGl2ZVBhdGgsXG4gICAgKTtcblxuICAgIGNvbnN0IGRlY2xhcmF0aW9uUmVjb3JkZXIgPSBob3N0LmJlZ2luVXBkYXRlKG1vZHVsZVBhdGgpO1xuICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGRlY2xhcmF0aW9uQ2hhbmdlcykge1xuICAgICAgaWYgKGNoYW5nZSBpbnN0YW5jZW9mIEluc2VydENoYW5nZSkge1xuICAgICAgICBkZWNsYXJhdGlvblJlY29yZGVyLmluc2VydExlZnQoY2hhbmdlLnBvcywgY2hhbmdlLnRvQWRkKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaG9zdC5jb21taXRVcGRhdGUoZGVjbGFyYXRpb25SZWNvcmRlcik7XG5cbiAgICBpZiAob3B0aW9ucy5leHBvcnQpIHtcbiAgICAgIC8vIE5lZWQgdG8gcmVmcmVzaCB0aGUgQVNUIGJlY2F1c2Ugd2Ugb3Zlcndyb3RlIHRoZSBmaWxlIGluIHRoZSBob3N0LlxuICAgICAgc291cmNlID0gcmVhZEludG9Tb3VyY2VGaWxlKGhvc3QsIG1vZHVsZVBhdGgpO1xuXG4gICAgICBjb25zdCBleHBvcnRSZWNvcmRlciA9IGhvc3QuYmVnaW5VcGRhdGUobW9kdWxlUGF0aCk7XG4gICAgICBjb25zdCBleHBvcnRDaGFuZ2VzID0gYWRkRXhwb3J0VG9Nb2R1bGUoXG4gICAgICAgIHNvdXJjZSxcbiAgICAgICAgbW9kdWxlUGF0aCxcbiAgICAgICAgc3RyaW5ncy5jbGFzc2lmeShgJHtvcHRpb25zLm5hbWV9Q29tcG9uZW50YCksXG4gICAgICAgIHJlbGF0aXZlUGF0aCxcbiAgICAgICk7XG5cbiAgICAgIGZvciAoY29uc3QgY2hhbmdlIG9mIGV4cG9ydENoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZSBpbnN0YW5jZW9mIEluc2VydENoYW5nZSkge1xuICAgICAgICAgIGV4cG9ydFJlY29yZGVyLmluc2VydExlZnQoY2hhbmdlLnBvcywgY2hhbmdlLnRvQWRkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaG9zdC5jb21taXRVcGRhdGUoZXhwb3J0UmVjb3JkZXIpO1xuICAgIH1cblxuICAgIHJldHVybiBob3N0O1xuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZFNlbGVjdG9yKG9wdGlvbnM6IENvbXBvbmVudE9wdGlvbnMsIHByb2plY3RQcmVmaXg/OiBzdHJpbmcpIHtcbiAgbGV0IHNlbGVjdG9yID0gc3RyaW5ncy5kYXNoZXJpemUob3B0aW9ucy5uYW1lKTtcbiAgaWYgKG9wdGlvbnMucHJlZml4KSB7XG4gICAgc2VsZWN0b3IgPSBgJHtvcHRpb25zLnByZWZpeH0tJHtzZWxlY3Rvcn1gO1xuICB9IGVsc2UgaWYgKG9wdGlvbnMucHJlZml4ID09PSB1bmRlZmluZWQgJiYgcHJvamVjdFByZWZpeCkge1xuICAgIHNlbGVjdG9yID0gYCR7cHJvamVjdFByZWZpeH0tJHtzZWxlY3Rvcn1gO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdG9yO1xufVxuXG4vKipcbiAqIEluZGVudHMgdGhlIHRleHQgY29udGVudCB3aXRoIHRoZSBhbW91bnQgb2Ygc3BlY2lmaWVkIHNwYWNlcy4gVGhlIHNwYWNlcyB3aWxsIGJlIGFkZGVkIGFmdGVyXG4gKiBldmVyeSBsaW5lLWJyZWFrLiBUaGlzIHV0aWxpdHkgZnVuY3Rpb24gY2FuIGJlIHVzZWQgaW5zaWRlIG9mIEVKUyB0ZW1wbGF0ZXMgdG8gcHJvcGVybHlcbiAqIGluY2x1ZGUgdGhlIGFkZGl0aW9uYWwgZmlsZXMuXG4gKi9cbmZ1bmN0aW9uIGluZGVudFRleHRDb250ZW50KHRleHQ6IHN0cmluZywgbnVtU3BhY2VzOiBudW1iZXIpOiBzdHJpbmcge1xuICAvLyBJbiB0aGUgTWF0ZXJpYWwgcHJvamVjdCB0aGVyZSBzaG91bGQgYmUgb25seSBMRiBsaW5lLWVuZGluZ3MsIGJ1dCB0aGUgc2NoZW1hdGljIGZpbGVzXG4gIC8vIGFyZSBub3QgYmVpbmcgbGludGVkIGFuZCB0aGVyZWZvcmUgdGhlcmUgY2FuIGJlIGFsc28gQ1JMRiBvciBqdXN0IENSIGxpbmUtZW5kaW5ncy5cbiAgcmV0dXJuIHRleHQucmVwbGFjZSgvKFxcclxcbnxcXHJ8XFxuKS9nLCBgJDEkeycgJy5yZXBlYXQobnVtU3BhY2VzKX1gKTtcbn1cblxuLyoqXG4gKiBSdWxlIHRoYXQgY29waWVzIGFuZCBpbnRlcnBvbGF0ZXMgdGhlIGZpbGVzIHRoYXQgYmVsb25nIHRvIHRoaXMgc2NoZW1hdGljIGNvbnRleHQuIEFkZGl0aW9uYWxseVxuICogYSBsaXN0IG9mIGZpbGUgcGF0aHMgY2FuIGJlIHBhc3NlZCB0byB0aGlzIHJ1bGUgaW4gb3JkZXIgdG8gZXhwb3NlIHRoZW0gaW5zaWRlIHRoZSBFSlNcbiAqIHRlbXBsYXRlIGNvbnRleHQuXG4gKlxuICogVGhpcyBhbGxvd3MgaW5saW5pbmcgdGhlIGV4dGVybmFsIHRlbXBsYXRlIG9yIHN0eWxlc2hlZXQgZmlsZXMgaW4gRUpTIHdpdGhvdXQgaGF2aW5nXG4gKiB0byBtYW51YWxseSBkdXBsaWNhdGUgdGhlIGZpbGUgY29udGVudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29tcG9uZW50KFxuICBvcHRpb25zOiBDb21wb25lbnRPcHRpb25zLFxuICBhZGRpdGlvbmFsRmlsZXM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9ID0ge30sXG4pOiBSdWxlIHtcbiAgcmV0dXJuIGFzeW5jIChob3N0LCBjdHgpID0+IHtcbiAgICBjb25zdCBjb250ZXh0ID0gY3R4IGFzIEZpbGVTeXN0ZW1TY2hlbWF0aWNDb250ZXh0O1xuICAgIGNvbnN0IHdvcmtzcGFjZSA9IGF3YWl0IGdldFdvcmtzcGFjZShob3N0KTtcbiAgICBjb25zdCBwcm9qZWN0ID0gZ2V0UHJvamVjdEZyb21Xb3Jrc3BhY2Uod29ya3NwYWNlLCBvcHRpb25zLnByb2plY3QpO1xuICAgIGNvbnN0IGRlZmF1bHRDb21wb25lbnRPcHRpb25zID0gZ2V0RGVmYXVsdENvbXBvbmVudE9wdGlvbnMocHJvamVjdCk7XG5cbiAgICAvLyBUT0RPKGRldnZlcnNpb24pOiBSZW1vdmUgaWYgd2UgZHJvcCBzdXBwb3J0IGZvciBvbGRlciBDTEkgdmVyc2lvbnMuXG4gICAgLy8gVGhpcyBoYW5kbGVzIGFuIHVucmVwb3J0ZWQgYnJlYWtpbmcgY2hhbmdlIGZyb20gdGhlIEBhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzLiBQcmV2aW91c2x5XG4gICAgLy8gdGhlIGRlc2NyaXB0aW9uIHBhdGggcmVzb2x2ZWQgdG8gdGhlIGZhY3RvcnkgZmlsZSwgYnV0IHN0YXJ0aW5nIGZyb20gNi4yLjAsIGl0IHJlc29sdmVzXG4gICAgLy8gdG8gdGhlIGZhY3RvcnkgZGlyZWN0b3J5LlxuICAgIGNvbnN0IHNjaGVtYXRpY1BhdGggPSBzdGF0U3luYyhjb250ZXh0LnNjaGVtYXRpYy5kZXNjcmlwdGlvbi5wYXRoKS5pc0RpcmVjdG9yeSgpXG4gICAgICA/IGNvbnRleHQuc2NoZW1hdGljLmRlc2NyaXB0aW9uLnBhdGhcbiAgICAgIDogZGlybmFtZShjb250ZXh0LnNjaGVtYXRpYy5kZXNjcmlwdGlvbi5wYXRoKTtcblxuICAgIGNvbnN0IHNjaGVtYXRpY0ZpbGVzVXJsID0gJy4vZmlsZXMnO1xuICAgIGNvbnN0IHNjaGVtYXRpY0ZpbGVzUGF0aCA9IHJlc29sdmUoc2NoZW1hdGljUGF0aCwgc2NoZW1hdGljRmlsZXNVcmwpO1xuXG4gICAgLy8gQWRkIHRoZSBkZWZhdWx0IGNvbXBvbmVudCBvcHRpb24gdmFsdWVzIHRvIHRoZSBvcHRpb25zIGlmIGFuIG9wdGlvbiBpcyBub3QgZXhwbGljaXRseVxuICAgIC8vIHNwZWNpZmllZCBidXQgYSBkZWZhdWx0IGNvbXBvbmVudCBvcHRpb24gaXMgYXZhaWxhYmxlLlxuICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpXG4gICAgICAuZmlsdGVyKFxuICAgICAgICBrZXkgPT5cbiAgICAgICAgICBvcHRpb25zW2tleSBhcyBrZXlvZiBDb21wb25lbnRPcHRpb25zXSA9PSBudWxsICYmXG4gICAgICAgICAgZGVmYXVsdENvbXBvbmVudE9wdGlvbnNba2V5IGFzIGtleW9mIENvbXBvbmVudE9wdGlvbnNdLFxuICAgICAgKVxuICAgICAgLmZvckVhY2goXG4gICAgICAgIGtleSA9PlxuICAgICAgICAgICgob3B0aW9ucyBhcyBhbnkpW2tleV0gPSAoZGVmYXVsdENvbXBvbmVudE9wdGlvbnMgYXMgQ29tcG9uZW50T3B0aW9ucylbXG4gICAgICAgICAgICBrZXkgYXMga2V5b2YgQ29tcG9uZW50T3B0aW9uc1xuICAgICAgICAgIF0pLFxuICAgICAgKTtcblxuICAgIGlmIChvcHRpb25zLnBhdGggPT09IHVuZGVmaW5lZCkge1xuICAgICAgb3B0aW9ucy5wYXRoID0gYnVpbGREZWZhdWx0UGF0aChwcm9qZWN0KTtcbiAgICB9XG5cbiAgICBvcHRpb25zLnN0YW5kYWxvbmUgPSBhd2FpdCBpc1N0YW5kYWxvbmVTY2hlbWF0aWMoaG9zdCwgb3B0aW9ucyk7XG5cbiAgICBpZiAoIW9wdGlvbnMuc3RhbmRhbG9uZSkge1xuICAgICAgb3B0aW9ucy5tb2R1bGUgPSBmaW5kTW9kdWxlRnJvbU9wdGlvbnMoaG9zdCwgb3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkUGF0aCA9IHBhcnNlTmFtZShvcHRpb25zLnBhdGghLCBvcHRpb25zLm5hbWUpO1xuXG4gICAgb3B0aW9ucy5uYW1lID0gcGFyc2VkUGF0aC5uYW1lO1xuICAgIG9wdGlvbnMucGF0aCA9IHBhcnNlZFBhdGgucGF0aDtcbiAgICBvcHRpb25zLnNlbGVjdG9yID0gb3B0aW9ucy5zZWxlY3RvciB8fCBidWlsZFNlbGVjdG9yKG9wdGlvbnMsIHByb2plY3QucHJlZml4KTtcblxuICAgIHZhbGlkYXRlSHRtbFNlbGVjdG9yKG9wdGlvbnMuc2VsZWN0b3IhKTtcblxuICAgIC8vIEluIGNhc2UgdGhlIHNwZWNpZmllZCBzdHlsZSBleHRlbnNpb24gaXMgbm90IHBhcnQgb2YgdGhlIHN1cHBvcnRlZCBDU1Mgc3VwZXJzZXRzLFxuICAgIC8vIHdlIGdlbmVyYXRlIHRoZSBzdHlsZXNoZWV0cyB3aXRoIHRoZSBcImNzc1wiIGV4dGVuc2lvbi4gVGhpcyBlbnN1cmVzIHRoYXQgd2UgZG9uJ3RcbiAgICAvLyBhY2NpZGVudGFsbHkgZ2VuZXJhdGUgaW52YWxpZCBzdHlsZXNoZWV0cyAoZS5nLiBkcmFnLWRyb3AtY29tcC5zdHlsKSB3aGljaCB3aWxsXG4gICAgLy8gYnJlYWsgdGhlIEFuZ3VsYXIgQ0xJIHByb2plY3QuIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9pc3N1ZXMvMTUxNjRcbiAgICBpZiAoIXN1cHBvcnRlZENzc0V4dGVuc2lvbnMuaW5jbHVkZXMob3B0aW9ucy5zdHlsZSEpKSB7XG4gICAgICBvcHRpb25zLnN0eWxlID0gU3R5bGUuQ3NzO1xuICAgIH1cblxuICAgIC8vIE9iamVjdCB0aGF0IHdpbGwgYmUgdXNlZCBhcyBjb250ZXh0IGZvciB0aGUgRUpTIHRlbXBsYXRlcy5cbiAgICBjb25zdCBiYXNlVGVtcGxhdGVDb250ZXh0ID0ge1xuICAgICAgLi4uc3RyaW5ncyxcbiAgICAgICdpZi1mbGF0JzogKHM6IHN0cmluZykgPT4gKG9wdGlvbnMuZmxhdCA/ICcnIDogcyksXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBLZXktdmFsdWUgb2JqZWN0IHRoYXQgaW5jbHVkZXMgdGhlIHNwZWNpZmllZCBhZGRpdGlvbmFsIGZpbGVzIHdpdGggdGhlaXIgbG9hZGVkIGNvbnRlbnQuXG4gICAgLy8gVGhlIHJlc29sdmVkIGNvbnRlbnRzIGNhbiBiZSB1c2VkIGluc2lkZSBFSlMgdGVtcGxhdGVzLlxuICAgIGNvbnN0IHJlc29sdmVkRmlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAgIGZvciAobGV0IGtleSBpbiBhZGRpdGlvbmFsRmlsZXMpIHtcbiAgICAgIGlmIChhZGRpdGlvbmFsRmlsZXNba2V5XSkge1xuICAgICAgICBjb25zdCBmaWxlQ29udGVudCA9IHJlYWRGaWxlU3luYyhqb2luKHNjaGVtYXRpY0ZpbGVzUGF0aCwgYWRkaXRpb25hbEZpbGVzW2tleV0pLCAndXRmLTgnKTtcblxuICAgICAgICAvLyBJbnRlcnBvbGF0ZSB0aGUgYWRkaXRpb25hbCBmaWxlcyB3aXRoIHRoZSBiYXNlIEVKUyB0ZW1wbGF0ZSBjb250ZXh0LlxuICAgICAgICByZXNvbHZlZEZpbGVzW2tleV0gPSBpbnRlcnBvbGF0ZVRlbXBsYXRlKGZpbGVDb250ZW50KShiYXNlVGVtcGxhdGVDb250ZXh0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0ZW1wbGF0ZVNvdXJjZSA9IGFwcGx5KHVybChzY2hlbWF0aWNGaWxlc1VybCksIFtcbiAgICAgIG9wdGlvbnMuc2tpcFRlc3RzID8gZmlsdGVyKHBhdGggPT4gIXBhdGguZW5kc1dpdGgoJy5zcGVjLnRzLnRlbXBsYXRlJykpIDogbm9vcCgpLFxuICAgICAgb3B0aW9ucy5pbmxpbmVTdHlsZSA/IGZpbHRlcihwYXRoID0+ICFwYXRoLmVuZHNXaXRoKCcuX19zdHlsZV9fLnRlbXBsYXRlJykpIDogbm9vcCgpLFxuICAgICAgb3B0aW9ucy5pbmxpbmVUZW1wbGF0ZSA/IGZpbHRlcihwYXRoID0+ICFwYXRoLmVuZHNXaXRoKCcuaHRtbC50ZW1wbGF0ZScpKSA6IG5vb3AoKSxcbiAgICAgIC8vIFRyZWF0IHRoZSB0ZW1wbGF0ZSBvcHRpb25zIGFzIGFueSwgYmVjYXVzZSB0aGUgdHlwZSBkZWZpbml0aW9uIGZvciB0aGUgdGVtcGxhdGUgb3B0aW9uc1xuICAgICAgLy8gaXMgbWFkZSB1bm5lY2Vzc2FyaWx5IGV4cGxpY2l0LiBFdmVyeSB0eXBlIG9mIG9iamVjdCBjYW4gYmUgdXNlZCBpbiB0aGUgRUpTIHRlbXBsYXRlLlxuICAgICAgYXBwbHlUZW1wbGF0ZXMoe2luZGVudFRleHRDb250ZW50LCByZXNvbHZlZEZpbGVzLCAuLi5iYXNlVGVtcGxhdGVDb250ZXh0fSBhcyBhbnkpLFxuICAgICAgLy8gVE9ETyhkZXZ2ZXJzaW9uKTogZmlndXJlIG91dCB3aHkgd2UgY2Fubm90IGp1c3QgcmVtb3ZlIHRoZSBmaXJzdCBwYXJhbWV0ZXJcbiAgICAgIC8vIFNlZSBmb3IgZXhhbXBsZTogYW5ndWxhci1jbGkjc2NoZW1hdGljcy9hbmd1bGFyL2NvbXBvbmVudC9pbmRleC50cyNMMTYwXG4gICAgICBtb3ZlKG51bGwgYXMgYW55LCBwYXJzZWRQYXRoLnBhdGgpLFxuICAgIF0pO1xuXG4gICAgcmV0dXJuICgpID0+XG4gICAgICBjaGFpbihbXG4gICAgICAgIGJyYW5jaEFuZE1lcmdlKGNoYWluKFthZGREZWNsYXJhdGlvblRvTmdNb2R1bGUob3B0aW9ucyksIG1lcmdlV2l0aCh0ZW1wbGF0ZVNvdXJjZSldKSksXG4gICAgICBdKShob3N0LCBjb250ZXh0KTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectFromWorkspace = getProjectFromWorkspace;
11
- const schematics_1 = require("@angular-devkit/schematics");
12
- /**
13
- * Finds the specified project configuration in the workspace. Throws an error if the project
14
- * couldn't be found.
15
- */
16
- function getProjectFromWorkspace(workspace, projectName) {
17
- if (!projectName) {
18
- // TODO(crisbeto): some schematics APIs have the project name as optional so for now it's
19
- // simpler to allow undefined and checking it at runtime. Eventually we should clean this up.
20
- throw new schematics_1.SchematicsException('Project name is required.');
21
- }
22
- const project = workspace.projects.get(projectName);
23
- if (!project) {
24
- throw new schematics_1.SchematicsException(`Could not find project in workspace: ${projectName}`);
25
- }
26
- return project;
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvZ2V0LXByb2plY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFTSCwwREFpQkM7QUF2QkQsMkRBQStEO0FBRS9EOzs7R0FHRztBQUNILFNBQWdCLHVCQUF1QixDQUNyQyxTQUF5QyxFQUN6QyxXQUErQjtJQUUvQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIseUZBQXlGO1FBQ3pGLDZGQUE2RjtRQUM3RixNQUFNLElBQUksZ0NBQW1CLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLGdDQUFtQixDQUFDLHdDQUF3QyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge3dvcmtzcGFjZXN9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7U2NoZW1hdGljc0V4Y2VwdGlvbn0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L3NjaGVtYXRpY3MnO1xuXG4vKipcbiAqIEZpbmRzIHRoZSBzcGVjaWZpZWQgcHJvamVjdCBjb25maWd1cmF0aW9uIGluIHRoZSB3b3Jrc3BhY2UuIFRocm93cyBhbiBlcnJvciBpZiB0aGUgcHJvamVjdFxuICogY291bGRuJ3QgYmUgZm91bmQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9qZWN0RnJvbVdvcmtzcGFjZShcbiAgd29ya3NwYWNlOiB3b3Jrc3BhY2VzLldvcmtzcGFjZURlZmluaXRpb24sXG4gIHByb2plY3ROYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4pOiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uIHtcbiAgaWYgKCFwcm9qZWN0TmFtZSkge1xuICAgIC8vIFRPRE8oY3Jpc2JldG8pOiBzb21lIHNjaGVtYXRpY3MgQVBJcyBoYXZlIHRoZSBwcm9qZWN0IG5hbWUgYXMgb3B0aW9uYWwgc28gZm9yIG5vdyBpdCdzXG4gICAgLy8gc2ltcGxlciB0byBhbGxvdyB1bmRlZmluZWQgYW5kIGNoZWNraW5nIGl0IGF0IHJ1bnRpbWUuIEV2ZW50dWFsbHkgd2Ugc2hvdWxkIGNsZWFuIHRoaXMgdXAuXG4gICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oJ1Byb2plY3QgbmFtZSBpcyByZXF1aXJlZC4nKTtcbiAgfVxuXG4gIGNvbnN0IHByb2plY3QgPSB3b3Jrc3BhY2UucHJvamVjdHMuZ2V0KHByb2plY3ROYW1lKTtcblxuICBpZiAoIXByb2plY3QpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihgQ291bGQgbm90IGZpbmQgcHJvamVjdCBpbiB3b3Jrc3BhY2U6ICR7cHJvamVjdE5hbWV9YCk7XG4gIH1cblxuICByZXR1cm4gcHJvamVjdDtcbn1cbiJdfQ==
@@ -1,91 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.appendHtmlElementToHead = appendHtmlElementToHead;
11
- exports.getHtmlHeadTagElement = getHtmlHeadTagElement;
12
- exports.addBodyClass = addBodyClass;
13
- const schematics_1 = require("@angular-devkit/schematics");
14
- const parse5_element_1 = require("./parse5-element");
15
- const parse5_1 = require("parse5");
16
- /** Appends the given element HTML fragment to the `<head>` element of the specified HTML file. */
17
- function appendHtmlElementToHead(host, htmlFilePath, elementHtml) {
18
- const htmlFileBuffer = host.read(htmlFilePath);
19
- if (!htmlFileBuffer) {
20
- throw new schematics_1.SchematicsException(`Could not read file for path: ${htmlFilePath}`);
21
- }
22
- const htmlContent = htmlFileBuffer.toString();
23
- if (htmlContent.includes(elementHtml)) {
24
- return;
25
- }
26
- const headTag = getHtmlHeadTagElement(htmlContent);
27
- if (!headTag) {
28
- throw Error(`Could not find '<head>' element in HTML file: ${htmlFileBuffer}`);
29
- }
30
- // We always have access to the source code location here because the `getHeadTagElement`
31
- // function explicitly has the `sourceCodeLocationInfo` option enabled.
32
- const endTagOffset = headTag.sourceCodeLocation.endTag.startOffset;
33
- const indentationOffset = (0, parse5_element_1.getChildElementIndentation)(headTag);
34
- const insertion = `${' '.repeat(indentationOffset)}${elementHtml}`;
35
- const recordedChange = host.beginUpdate(htmlFilePath).insertRight(endTagOffset, `${insertion}\n`);
36
- host.commitUpdate(recordedChange);
37
- }
38
- /** Parses the given HTML file and returns the head element if available. */
39
- function getHtmlHeadTagElement(htmlContent) {
40
- return getElementByTagName('head', htmlContent);
41
- }
42
- /** Adds a class to the body of the document. */
43
- function addBodyClass(host, htmlFilePath, className) {
44
- const htmlFileBuffer = host.read(htmlFilePath);
45
- if (!htmlFileBuffer) {
46
- throw new schematics_1.SchematicsException(`Could not read file for path: ${htmlFilePath}`);
47
- }
48
- const htmlContent = htmlFileBuffer.toString();
49
- const body = getElementByTagName('body', htmlContent);
50
- if (!body) {
51
- throw Error(`Could not find <body> element in HTML file: ${htmlFileBuffer}`);
52
- }
53
- const classAttribute = body.attrs.find(attribute => attribute.name === 'class');
54
- if (classAttribute) {
55
- const hasClass = classAttribute.value
56
- .split(' ')
57
- .map(part => part.trim())
58
- .includes(className);
59
- if (!hasClass) {
60
- // We have source code location info enabled, and we pre-checked that the element
61
- // has attributes, specifically the `class` attribute.
62
- const classAttributeLocation = body.sourceCodeLocation.attrs['class'];
63
- const recordedChange = host
64
- .beginUpdate(htmlFilePath)
65
- .insertRight(classAttributeLocation.endOffset - 1, ` ${className}`);
66
- host.commitUpdate(recordedChange);
67
- }
68
- }
69
- else {
70
- const recordedChange = host
71
- .beginUpdate(htmlFilePath)
72
- .insertRight(body.sourceCodeLocation.startTag.endOffset - 1, ` class="${className}"`);
73
- host.commitUpdate(recordedChange);
74
- }
75
- }
76
- /** Finds an element by its tag name. */
77
- function getElementByTagName(tagName, htmlContent) {
78
- const document = (0, parse5_1.parse)(htmlContent, { sourceCodeLocationInfo: true });
79
- const nodeQueue = [...document.childNodes];
80
- while (nodeQueue.length) {
81
- const node = nodeQueue.shift();
82
- if (node.nodeName.toLowerCase() === tagName) {
83
- return node;
84
- }
85
- else if (node.childNodes) {
86
- nodeQueue.push(...node.childNodes);
87
- }
88
- }
89
- return null;
90
- }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHRtbC1tYW5pcHVsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvaHRtbC1tYW5pcHVsYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFPSCwwREE0QkM7QUFHRCxzREFFQztBQUdELG9DQXFDQztBQTlFRCwyREFBcUU7QUFDckUscURBQXFFO0FBQ3JFLG1DQUEwQztBQUUxQyxrR0FBa0c7QUFDbEcsU0FBZ0IsdUJBQXVCLENBQUMsSUFBVSxFQUFFLFlBQW9CLEVBQUUsV0FBbUI7SUFDM0YsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUUvQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDcEIsTUFBTSxJQUFJLGdDQUFtQixDQUFDLGlDQUFpQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFOUMsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7UUFDdEMsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVuRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLEtBQUssQ0FBQyxpREFBaUQsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQseUZBQXlGO0lBQ3pGLHVFQUF1RTtJQUN2RSxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsa0JBQW1CLENBQUMsTUFBTyxDQUFDLFdBQVcsQ0FBQztJQUNyRSxNQUFNLGlCQUFpQixHQUFHLElBQUEsMkNBQTBCLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsTUFBTSxTQUFTLEdBQUcsR0FBRyxHQUFHLENB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QUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1NjaGVtYXRpY3NFeGNlcHRpb24sIFRyZWV9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7RWxlbWVudCwgZ2V0Q2hpbGRFbGVtZW50SW5kZW50YXRpb259IGZyb20gJy4vcGFyc2U1LWVsZW1lbnQnO1xuaW1wb3J0IHtwYXJzZSBhcyBwYXJzZUh0bWx9IGZyb20gJ3BhcnNlNSc7XG5cbi8qKiBBcHBlbmRzIHRoZSBnaXZlbiBlbGVtZW50IEhUTUwgZnJhZ21lbnQgdG8gdGhlIGA8aGVhZD5gIGVsZW1lbnQgb2YgdGhlIHNwZWNpZmllZCBIVE1MIGZpbGUuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kSHRtbEVsZW1lbnRUb0hlYWQoaG9zdDogVHJlZSwgaHRtbEZpbGVQYXRoOiBzdHJpbmcsIGVsZW1lbnRIdG1sOiBzdHJpbmcpIHtcbiAgY29uc3QgaHRtbEZpbGVCdWZmZXIgPSBob3N0LnJlYWQoaHRtbEZpbGVQYXRoKTtcblxuICBpZiAoIWh0bWxGaWxlQnVmZmVyKSB7XG4gICAgdGhyb3cgbmV3IFNjaGVtYXRpY3NFeGNlcHRpb24oYENvdWxkIG5vdCByZWFkIGZpbGUgZm9yIHBhdGg6ICR7aHRtbEZpbGVQYXRofWApO1xuICB9XG5cbiAgY29uc3QgaHRtbENvbnRlbnQgPSBodG1sRmlsZUJ1ZmZlci50b1N0cmluZygpO1xuXG4gIGlmIChodG1sQ29udGVudC5pbmNsdWRlcyhlbGVtZW50SHRtbCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBoZWFkVGFnID0gZ2V0SHRtbEhlYWRUYWdFbGVtZW50KGh0bWxDb250ZW50KTtcblxuICBpZiAoIWhlYWRUYWcpIHtcbiAgICB0aHJvdyBFcnJvcihgQ291bGQgbm90IGZpbmQgJzxoZWFkPicgZWxlbWVudCBpbiBIVE1MIGZpbGU6ICR7aHRtbEZpbGVCdWZmZXJ9YCk7XG4gIH1cblxuICAvLyBXZSBhbHdheXMgaGF2ZSBhY2Nlc3MgdG8gdGhlIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGhlcmUgYmVjYXVzZSB0aGUgYGdldEhlYWRUYWdFbGVtZW50YFxuICAvLyBmdW5jdGlvbiBleHBsaWNpdGx5IGhhcyB0aGUgYHNvdXJjZUNvZGVMb2NhdGlvbkluZm9gIG9wdGlvbiBlbmFibGVkLlxuICBjb25zdCBlbmRUYWdPZmZzZXQgPSBoZWFkVGFnLnNvdXJjZUNvZGVMb2NhdGlvbiEuZW5kVGFnIS5zdGFydE9mZnNldDtcbiAgY29uc3QgaW5kZW50YXRpb25PZmZzZXQgPSBnZXRDaGlsZEVsZW1lbnRJbmRlbnRhdGlvbihoZWFkVGFnKTtcbiAgY29uc3QgaW5zZXJ0aW9uID0gYCR7JyAnLnJlcGVhdChpbmRlbnRhdGlvbk9mZnNldCl9JHtlbGVtZW50SHRtbH1gO1xuXG4gIGNvbnN0IHJlY29yZGVkQ2hhbmdlID0gaG9zdC5iZWdpblVwZGF0ZShodG1sRmlsZVBhdGgpLmluc2VydFJpZ2h0KGVuZFRhZ09mZnNldCwgYCR7aW5zZXJ0aW9ufVxcbmApO1xuXG4gIGhvc3QuY29tbWl0VXBkYXRlKHJlY29yZGVkQ2hhbmdlKTtcbn1cblxuLyoqIFBhcnNlcyB0aGUgZ2l2ZW4gSFRNTCBmaWxlIGFuZCByZXR1cm5zIHRoZSBoZWFkIGVsZW1lbnQgaWYgYXZhaWxhYmxlLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEh0bWxIZWFkVGFnRWxlbWVudChodG1sQ29udGVudDogc3RyaW5nKTogRWxlbWVudCB8IG51bGwge1xuICByZXR1cm4gZ2V0RWxlbWVudEJ5VGFnTmFtZSgnaGVhZCcsIGh0bWxDb250ZW50KTtcbn1cblxuLyoqIEFkZHMgYSBjbGFzcyB0byB0aGUgYm9keSBvZiB0aGUgZG9jdW1lbnQuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkQm9keUNsYXNzKGhvc3Q6IFRyZWUsIGh0bWxGaWxlUGF0aDogc3RyaW5nLCBjbGFzc05hbWU6IHN0cmluZyk6IHZvaWQge1xuICBjb25zdCBodG1sRmlsZUJ1ZmZlciA9IGhvc3QucmVhZChodG1sRmlsZVBhdGgpO1xuXG4gIGlmICghaHRtbEZpbGVCdWZmZXIpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihgQ291bGQgbm90IHJlYWQgZmlsZSBmb3IgcGF0aDogJHtodG1sRmlsZVBhdGh9YCk7XG4gIH1cblxuICBjb25zdCBodG1sQ29udGVudCA9IGh0bWxGaWxlQnVmZmVyLnRvU3RyaW5nKCk7XG4gIGNvbnN0IGJvZHkgPSBnZXRFbGVtZW50QnlUYWdOYW1lKCdib2R5JywgaHRtbENvbnRlbnQpO1xuXG4gIGlmICghYm9keSkge1xuICAgIHRocm93IEVycm9yKGBDb3VsZCBub3QgZmluZCA8Ym9keT4gZWxlbWVudCBpbiBIVE1MIGZpbGU6ICR7aHRtbEZpbGVCdWZmZXJ9YCk7XG4gIH1cblxuICBjb25zdCBjbGFzc0F0dHJpYnV0ZSA9IGJvZHkuYXR0cnMuZmluZChhdHRyaWJ1dGUgPT4gYXR0cmlidXRlLm5hbWUgPT09ICdjbGFzcycpO1xuXG4gIGlmIChjbGFzc0F0dHJpYnV0ZSkge1xuICAgIGNvbnN0IGhhc0NsYXNzID0gY2xhc3NBdHRyaWJ1dGUudmFsdWVcbiAgICAgIC5zcGxpdCgnICcpXG4gICAgICAubWFwKHBhcnQgPT4gcGFydC50cmltKCkpXG4gICAgICAuaW5jbHVkZXMoY2xhc3NOYW1lKTtcblxuICAgIGlmICghaGFzQ2xhc3MpIHtcbiAgICAgIC8vIFdlIGhhdmUgc291cmNlIGNvZGUgbG9jYXRpb24gaW5mbyBlbmFibGVkLCBhbmQgd2UgcHJlLWNoZWNrZWQgdGhhdCB0aGUgZWxlbWVudFxuICAgICAgLy8gaGFzIGF0dHJpYnV0ZXMsIHNwZWNpZmljYWxseSB0aGUgYGNsYXNzYCBhdHRyaWJ1dGUuXG4gICAgICBjb25zdCBjbGFzc0F0dHJpYnV0ZUxvY2F0aW9uID0gYm9keS5zb3VyY2VDb2RlTG9jYXRpb24hLmF0dHJzIVsnY2xhc3MnXTtcbiAgICAgIGNvbnN0IHJlY29yZGVkQ2hhbmdlID0gaG9zdFxuICAgICAgICAuYmVnaW5VcGRhdGUoaHRtbEZpbGVQYXRoKVxuICAgICAgICAuaW5zZXJ0UmlnaHQoY2xhc3NBdHRyaWJ1dGVMb2NhdGlvbi5lbmRPZmZzZXQgLSAxLCBgICR7Y2xhc3NOYW1lfWApO1xuICAgICAgaG9zdC5jb21taXRVcGRhdGUocmVjb3JkZWRDaGFuZ2UpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCByZWNvcmRlZENoYW5nZSA9IGhvc3RcbiAgICAgIC5iZWdpblVwZGF0ZShodG1sRmlsZVBhdGgpXG4gICAgICAuaW5zZXJ0UmlnaHQoYm9keS5zb3VyY2VDb2RlTG9jYXRpb24hLnN0YXJ0VGFnIS5lbmRPZmZzZXQgLSAxLCBgIGNsYXNzPVwiJHtjbGFzc05hbWV9XCJgKTtcbiAgICBob3N0LmNvbW1pdFVwZGF0ZShyZWNvcmRlZENoYW5nZSk7XG4gIH1cbn1cblxuLyoqIEZpbmRzIGFuIGVsZW1lbnQgYnkgaXRzIHRhZyBuYW1lLiAqL1xuZnVuY3Rpb24gZ2V0RWxlbWVudEJ5VGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcsIGh0bWxDb250ZW50OiBzdHJpbmcpOiBFbGVtZW50IHwgbnVsbCB7XG4gIGNvbnN0IGRvY3VtZW50ID0gcGFyc2VIdG1sKGh0bWxDb250ZW50LCB7c291cmNlQ29kZUxvY2F0aW9uSW5mbzogdHJ1ZX0pO1xuICBjb25zdCBub2RlUXVldWUgPSBbLi4uZG9jdW1lbnQuY2hpbGROb2Rlc107XG5cbiAgd2hpbGUgKG5vZGVRdWV1ZS5sZW5ndGgpIHtcbiAgICBjb25zdCBub2RlID0gbm9kZVF1ZXVlLnNoaWZ0KCkgYXMgRWxlbWVudDtcblxuICAgIGlmIChub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IHRhZ05hbWUpIHtcbiAgICAgIHJldHVybiBub2RlO1xuICAgIH0gZWxzZSBpZiAobm9kZS5jaGlsZE5vZGVzKSB7XG4gICAgICBub2RlUXVldWUucHVzaCguLi5ub2RlLmNoaWxkTm9kZXMpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuIl19
@@ -1,36 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
- };
23
- Object.defineProperty(exports, "__esModule", { value: true });
24
- __exportStar(require("./ast"), exports);
25
- __exportStar(require("./ast/ng-module-imports"), exports);
26
- __exportStar(require("./build-component"), exports);
27
- __exportStar(require("./get-project"), exports);
28
- __exportStar(require("./html-manipulation"), exports);
29
- __exportStar(require("./parse5-element"), exports);
30
- __exportStar(require("./project-index-file"), exports);
31
- __exportStar(require("./project-main-file"), exports);
32
- __exportStar(require("./project-style-file"), exports);
33
- __exportStar(require("./project-targets"), exports);
34
- __exportStar(require("./project-tsconfig-paths"), exports);
35
- __exportStar(require("./schematic-options"), exports);
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHdDQUFzQjtBQUN0QiwwREFBd0M7QUFDeEMsb0RBQWtDO0FBQ2xDLGdEQUE4QjtBQUM5QixzREFBb0M7QUFDcEMsbURBQWlDO0FBQ2pDLHVEQUFxQztBQUNyQyxzREFBb0M7QUFDcEMsdURBQXFDO0FBQ3JDLG9EQUFrQztBQUNsQywyREFBeUM7QUFDekMsc0RBQW9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2FzdCc7XG5leHBvcnQgKiBmcm9tICcuL2FzdC9uZy1tb2R1bGUtaW1wb3J0cyc7XG5leHBvcnQgKiBmcm9tICcuL2J1aWxkLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dldC1wcm9qZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vaHRtbC1tYW5pcHVsYXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9wYXJzZTUtZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QtaW5kZXgtZmlsZSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2plY3QtbWFpbi1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdC1zdHlsZS1maWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdC10YXJnZXRzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJvamVjdC10c2NvbmZpZy1wYXRocyc7XG5leHBvcnQgKiBmcm9tICcuL3NjaGVtYXRpYy1vcHRpb25zJztcbiJdfQ==
@@ -1,30 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getChildElementIndentation = getChildElementIndentation;
11
- const schematics_1 = require("@angular-devkit/schematics");
12
- /** Determines the indentation of child elements for the given Parse5 element. */
13
- function getChildElementIndentation(element) {
14
- const childElement = element.childNodes.find(node => node.tagName);
15
- if ((childElement && !childElement.sourceCodeLocation) || !element.sourceCodeLocation) {
16
- throw new schematics_1.SchematicsException('Cannot determine child element indentation because the ' +
17
- 'specified Parse5 element does not have any source code location metadata.');
18
- }
19
- const startColumns = childElement
20
- ? // In case there are child elements inside of the element, we assume that their
21
- // indentation is also applicable for other child elements.
22
- childElement.sourceCodeLocation.startCol
23
- : // In case there is no child element, we just assume that child elements should be indented
24
- // by two spaces.
25
- element.sourceCodeLocation.startCol + 2;
26
- // Since Parse5 does not set the `startCol` properties as zero-based, we need to subtract
27
- // one column in order to have a proper zero-based offset for the indentation.
28
- return startColumns - 1;
29
- }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2U1LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvcGFyc2U1LWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFXSCxnRUFxQkM7QUE5QkQsMkRBQStEO0FBUS9ELGlGQUFpRjtBQUNqRixTQUFnQiwwQkFBMEIsQ0FBQyxPQUFnQjtJQUN6RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFFLElBQWdCLENBQUMsT0FBTyxDQUFtQixDQUFDO0lBRWxHLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3RGLE1BQU0sSUFBSSxnQ0FBbUIsQ0FDM0IseURBQXlEO1lBQ3ZELDJFQUEyRSxDQUM5RSxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFlBQVk7UUFDL0IsQ0FBQyxDQUFDLCtFQUErRTtZQUMvRSwyREFBMkQ7WUFDM0QsWUFBWSxDQUFDLGtCQUFtQixDQUFDLFFBQVE7UUFDM0MsQ0FBQyxDQUFDLDJGQUEyRjtZQUMzRixpQkFBaUI7WUFDakIsT0FBTyxDQUFDLGtCQUFtQixDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFN0MseUZBQXlGO0lBQ3pGLDhFQUE4RTtJQUM5RSxPQUFPLFlBQVksR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtTY2hlbWF0aWNzRXhjZXB0aW9ufSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge0RlZmF1bHRUcmVlQWRhcHRlck1hcH0gZnJvbSAncGFyc2U1JztcblxuLy8gQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyBgcGFyc2U1YCBkb2Vzbid0IGV4cG9zZSB0aGUgbm9kZSBpbnRlcmZhY2VzIGRpcmVjdGx5LCBldmVuIHRob3VnaFxuLy8gdGhleSdyZSB1c2VkIGFzIHJldHVybiB0eXBlcywgYnV0IFdlIGNhbiBzdGlsbCBhY2Nlc3MgdGhlbSB0aHJvdWdoIGBEZWZhdWx0VHJlZUFkYXB0ZXJNYXBgLlxuZXhwb3J0IHR5cGUgRWxlbWVudCA9IERlZmF1bHRUcmVlQWRhcHRlck1hcFsnZWxlbWVudCddO1xuZXhwb3J0IHR5cGUgQ2hpbGROb2RlID0gRGVmYXVsdFRyZWVBZGFwdGVyTWFwWydjaGlsZE5vZGUnXTtcblxuLyoqIERldGVybWluZXMgdGhlIGluZGVudGF0aW9uIG9mIGNoaWxkIGVsZW1lbnRzIGZvciB0aGUgZ2l2ZW4gUGFyc2U1IGVsZW1lbnQuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hpbGRFbGVtZW50SW5kZW50YXRpb24oZWxlbWVudDogRWxlbWVudCkge1xuICBjb25zdCBjaGlsZEVsZW1lbnQgPSBlbGVtZW50LmNoaWxkTm9kZXMuZmluZChub2RlID0+IChub2RlIGFzIEVsZW1lbnQpLnRhZ05hbWUpIGFzIEVsZW1lbnQgfCBudWxsO1xuXG4gIGlmICgoY2hpbGRFbGVtZW50ICYmICFjaGlsZEVsZW1lbnQuc291cmNlQ29kZUxvY2F0aW9uKSB8fCAhZWxlbWVudC5zb3VyY2VDb2RlTG9jYXRpb24pIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgICdDYW5ub3QgZGV0ZXJtaW5lIGNoaWxkIGVsZW1lbnQgaW5kZW50YXRpb24gYmVjYXVzZSB0aGUgJyArXG4gICAgICAgICdzcGVjaWZpZWQgUGFyc2U1IGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhbnkgc291cmNlIGNvZGUgbG9jYXRpb24gbWV0YWRhdGEuJyxcbiAgICApO1xuICB9XG5cbiAgY29uc3Qgc3RhcnRDb2x1bW5zID0gY2hpbGRFbGVtZW50XG4gICAgPyAvLyBJbiBjYXNlIHRoZXJlIGFyZSBjaGlsZCBlbGVtZW50cyBpbnNpZGUgb2YgdGhlIGVsZW1lbnQsIHdlIGFzc3VtZSB0aGF0IHRoZWlyXG4gICAgICAvLyBpbmRlbnRhdGlvbiBpcyBhbHNvIGFwcGxpY2FibGUgZm9yIG90aGVyIGNoaWxkIGVsZW1lbnRzLlxuICAgICAgY2hpbGRFbGVtZW50LnNvdXJjZUNvZGVMb2NhdGlvbiEuc3RhcnRDb2xcbiAgICA6IC8vIEluIGNhc2UgdGhlcmUgaXMgbm8gY2hpbGQgZWxlbWVudCwgd2UganVzdCBhc3N1bWUgdGhhdCBjaGlsZCBlbGVtZW50cyBzaG91bGQgYmUgaW5kZW50ZWRcbiAgICAgIC8vIGJ5IHR3byBzcGFjZXMuXG4gICAgICBlbGVtZW50LnNvdXJjZUNvZGVMb2NhdGlvbiEuc3RhcnRDb2wgKyAyO1xuXG4gIC8vIFNpbmNlIFBhcnNlNSBkb2VzIG5vdCBzZXQgdGhlIGBzdGFydENvbGAgcHJvcGVydGllcyBhcyB6ZXJvLWJhc2VkLCB3ZSBuZWVkIHRvIHN1YnRyYWN0XG4gIC8vIG9uZSBjb2x1bW4gaW4gb3JkZXIgdG8gaGF2ZSBhIHByb3BlciB6ZXJvLWJhc2VkIG9mZnNldCBmb3IgdGhlIGluZGVudGF0aW9uLlxuICByZXR1cm4gc3RhcnRDb2x1bW5zIC0gMTtcbn1cbiJdfQ==
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectIndexFiles = getProjectIndexFiles;
11
- const project_targets_1 = require("./project-targets");
12
- /** Gets the path of the index file in the given project. */
13
- function getProjectIndexFiles(project) {
14
- const paths = (0, project_targets_1.getProjectBuildTargets)(project)
15
- .filter(t => t.options?.['index'])
16
- .map(t => t.options['index']);
17
- // Use a set to remove duplicate index files referenced in multiple build targets of a project.
18
- return Array.from(new Set(paths));
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1pbmRleC1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL3Byb2plY3QtaW5kZXgtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQU1ILG9EQU9DO0FBVkQsdURBQXlEO0FBRXpELDREQUE0RDtBQUM1RCxTQUFnQixvQkFBb0IsQ0FBQyxPQUFxQztJQUN4RSxNQUFNLEtBQUssR0FBRyxJQUFBLHdDQUFzQixFQUFDLE9BQU8sQ0FBQztTQUMxQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQVEsQ0FBQyxPQUFPLENBQVMsQ0FBQyxDQUFDO0lBRXpDLCtGQUErRjtJQUMvRixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztBQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1BhdGgsIHdvcmtzcGFjZXN9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7Z2V0UHJvamVjdEJ1aWxkVGFyZ2V0c30gZnJvbSAnLi9wcm9qZWN0LXRhcmdldHMnO1xuXG4vKiogR2V0cyB0aGUgcGF0aCBvZiB0aGUgaW5kZXggZmlsZSBpbiB0aGUgZ2l2ZW4gcHJvamVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9qZWN0SW5kZXhGaWxlcyhwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uKTogUGF0aFtdIHtcbiAgY29uc3QgcGF0aHMgPSBnZXRQcm9qZWN0QnVpbGRUYXJnZXRzKHByb2plY3QpXG4gICAgLmZpbHRlcih0ID0+IHQub3B0aW9ucz8uWydpbmRleCddKVxuICAgIC5tYXAodCA9PiB0Lm9wdGlvbnMhWydpbmRleCddIGFzIFBhdGgpO1xuXG4gIC8vIFVzZSBhIHNldCB0byByZW1vdmUgZHVwbGljYXRlIGluZGV4IGZpbGVzIHJlZmVyZW5jZWQgaW4gbXVsdGlwbGUgYnVpbGQgdGFyZ2V0cyBvZiBhIHByb2plY3QuXG4gIHJldHVybiBBcnJheS5mcm9tKG5ldyBTZXQocGF0aHMpKTtcbn1cbiJdfQ==
@@ -1,25 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectMainFile = getProjectMainFile;
11
- const schematics_1 = require("@angular-devkit/schematics");
12
- const project_targets_1 = require("./project-targets");
13
- /** Looks for the main TypeScript file in the given project and returns its path. */
14
- function getProjectMainFile(project) {
15
- const buildOptions = (0, project_targets_1.getProjectTargetOptions)(project, 'build');
16
- // `browser` is for the `@angular-devkit/build-angular:application` builder while
17
- // `main` is for the `@angular-devkit/build-angular:browser` builder.
18
- const mainPath = (buildOptions['browser'] || buildOptions['main']);
19
- if (!mainPath) {
20
- throw new schematics_1.SchematicsException(`Could not find the project main file inside of the ` +
21
- `workspace config (${project.sourceRoot})`);
22
- }
23
- return mainPath;
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1tYWluLWZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvcHJvamVjdC1tYWluLWZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFPSCxnREFlQztBQW5CRCwyREFBK0Q7QUFDL0QsdURBQTBEO0FBRTFELG9GQUFvRjtBQUNwRixTQUFnQixrQkFBa0IsQ0FBQyxPQUFxQztJQUN0RSxNQUFNLFlBQVksR0FBRyxJQUFBLHlDQUF1QixFQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUvRCxpRkFBaUY7SUFDakYscUVBQXFFO0lBQ3JFLE1BQU0sUUFBUSxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBcUIsQ0FBQztJQUV2RixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxNQUFNLElBQUksZ0NBQW1CLENBQzNCLHFEQUFxRDtZQUNuRCxxQkFBcUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxDQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7UGF0aCwgd29ya3NwYWNlc30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtTY2hlbWF0aWNzRXhjZXB0aW9ufSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQge2dldFByb2plY3RUYXJnZXRPcHRpb25zfSBmcm9tICcuL3Byb2plY3QtdGFyZ2V0cyc7XG5cbi8qKiBMb29rcyBmb3IgdGhlIG1haW4gVHlwZVNjcmlwdCBmaWxlIGluIHRoZSBnaXZlbiBwcm9qZWN0IGFuZCByZXR1cm5zIGl0cyBwYXRoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RNYWluRmlsZShwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uKTogUGF0aCB7XG4gIGNvbnN0IGJ1aWxkT3B0aW9ucyA9IGdldFByb2plY3RUYXJnZXRPcHRpb25zKHByb2plY3QsICdidWlsZCcpO1xuXG4gIC8vIGBicm93c2VyYCBpcyBmb3IgdGhlIGBAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjphcHBsaWNhdGlvbmAgYnVpbGRlciB3aGlsZVxuICAvLyBgbWFpbmAgaXMgZm9yIHRoZSBgQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3NlcmAgYnVpbGRlci5cbiAgY29uc3QgbWFpblBhdGggPSAoYnVpbGRPcHRpb25zWydicm93c2VyJ10gfHwgYnVpbGRPcHRpb25zWydtYWluJ10pIGFzIFBhdGggfCB1bmRlZmluZWQ7XG5cbiAgaWYgKCFtYWluUGF0aCkge1xuICAgIHRocm93IG5ldyBTY2hlbWF0aWNzRXhjZXB0aW9uKFxuICAgICAgYENvdWxkIG5vdCBmaW5kIHRoZSBwcm9qZWN0IG1haW4gZmlsZSBpbnNpZGUgb2YgdGhlIGAgK1xuICAgICAgICBgd29ya3NwYWNlIGNvbmZpZyAoJHtwcm9qZWN0LnNvdXJjZVJvb3R9KWAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBtYWluUGF0aDtcbn1cbiJdfQ==
@@ -1,42 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectStyleFile = getProjectStyleFile;
11
- const core_1 = require("@angular-devkit/core");
12
- const project_targets_1 = require("./project-targets");
13
- /** Regular expression that matches all possible Angular CLI default style files. */
14
- const defaultStyleFileRegex = /styles\.(c|le|sc)ss/;
15
- /** Regular expression that matches all files that have a proper stylesheet extension. */
16
- const validStyleFileRegex = /\.(c|le|sc)ss/;
17
- /**
18
- * Gets a style file with the given extension in a project and returns its path. If no
19
- * extension is specified, any style file with a valid extension will be returned.
20
- */
21
- function getProjectStyleFile(project, extension) {
22
- const buildOptions = (0, project_targets_1.getProjectTargetOptions)(project, 'build');
23
- const buildStyles = buildOptions['styles'];
24
- if (buildStyles && (0, core_1.isJsonArray)(buildStyles) && buildStyles.length) {
25
- const styles = buildStyles.map(s => (typeof s === 'string' ? s : s.input));
26
- // Look for the default style file that is generated for new projects by the Angular CLI. This
27
- // default style file is usually called `styles.ext` unless it has been changed explicitly.
28
- const defaultMainStylePath = styles.find(file => extension ? file === `styles.${extension}` : defaultStyleFileRegex.test(file));
29
- if (defaultMainStylePath) {
30
- return (0, core_1.normalize)(defaultMainStylePath);
31
- }
32
- // If no default style file could be found, use the first style file that matches the given
33
- // extension. If no extension specified explicitly, we look for any file with a valid style
34
- // file extension.
35
- const fallbackStylePath = styles.find(file => extension ? file.endsWith(`.${extension}`) : validStyleFileRegex.test(file));
36
- if (fallbackStylePath) {
37
- return (0, core_1.normalize)(fallbackStylePath);
38
- }
39
- }
40
- return null;
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC1zdHlsZS1maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL3Byb2plY3Qtc3R5bGUtZmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQWVILGtEQWlDQztBQTlDRCwrQ0FBd0U7QUFDeEUsdURBQTBEO0FBRTFELG9GQUFvRjtBQUNwRixNQUFNLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO0FBRXBELHlGQUF5RjtBQUN6RixNQUFNLG1CQUFtQixHQUFHLGVBQWUsQ0FBQztBQUU1Qzs7O0dBR0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FDakMsT0FBcUMsRUFDckMsU0FBa0I7SUFFbEIsTUFBTSxZQUFZLEdBQUcsSUFBQSx5Q0FBdUIsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0QsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNDLElBQUksV0FBVyxJQUFJLElBQUEsa0JBQVcsRUFBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVoRyw4RkFBOEY7UUFDOUYsMkZBQTJGO1FBQzNGLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM5QyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxVQUFVLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQzlFLENBQUM7UUFFRixJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFBLGdCQUFTLEVBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsMkZBQTJGO1FBQzNGLDJGQUEyRjtRQUMzRixrQkFBa0I7UUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQzNDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDNUUsQ0FBQztRQUVGLElBQUksaUJBQWlCLEVBQUUsQ0FBQztZQUN0QixPQUFPLElBQUEsZ0JBQVMsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge2lzSnNvbkFycmF5LCBub3JtYWxpemUsIHdvcmtzcGFjZXN9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7Z2V0UHJvamVjdFRhcmdldE9wdGlvbnN9IGZyb20gJy4vcHJvamVjdC10YXJnZXRzJztcblxuLyoqIFJlZ3VsYXIgZXhwcmVzc2lvbiB0aGF0IG1hdGNoZXMgYWxsIHBvc3NpYmxlIEFuZ3VsYXIgQ0xJIGRlZmF1bHQgc3R5bGUgZmlsZXMuICovXG5jb25zdCBkZWZhdWx0U3R5bGVGaWxlUmVnZXggPSAvc3R5bGVzXFwuKGN8bGV8c2Mpc3MvO1xuXG4vKiogUmVndWxhciBleHByZXNzaW9uIHRoYXQgbWF0Y2hlcyBhbGwgZmlsZXMgdGhhdCBoYXZlIGEgcHJvcGVyIHN0eWxlc2hlZXQgZXh0ZW5zaW9uLiAqL1xuY29uc3QgdmFsaWRTdHlsZUZpbGVSZWdleCA9IC9cXC4oY3xsZXxzYylzcy87XG5cbi8qKlxuICogR2V0cyBhIHN0eWxlIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gZXh0ZW5zaW9uIGluIGEgcHJvamVjdCBhbmQgcmV0dXJucyBpdHMgcGF0aC4gSWYgbm9cbiAqIGV4dGVuc2lvbiBpcyBzcGVjaWZpZWQsIGFueSBzdHlsZSBmaWxlIHdpdGggYSB2YWxpZCBleHRlbnNpb24gd2lsbCBiZSByZXR1cm5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RTdHlsZUZpbGUoXG4gIHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24sXG4gIGV4dGVuc2lvbj86IHN0cmluZyxcbik6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBidWlsZE9wdGlvbnMgPSBnZXRQcm9qZWN0VGFyZ2V0T3B0aW9ucyhwcm9qZWN0LCAnYnVpbGQnKTtcbiAgY29uc3QgYnVpbGRTdHlsZXMgPSBidWlsZE9wdGlvbnNbJ3N0eWxlcyddO1xuXG4gIGlmIChidWlsZFN0eWxlcyAmJiBpc0pzb25BcnJheShidWlsZFN0eWxlcykgJiYgYnVpbGRTdHlsZXMubGVuZ3RoKSB7XG4gICAgY29uc3Qgc3R5bGVzID0gYnVpbGRTdHlsZXMubWFwKHMgPT4gKHR5cGVvZiBzID09PSAnc3RyaW5nJyA/IHMgOiAocyBhcyB7aW5wdXQ6IHN0cmluZ30pLmlucHV0KSk7XG5cbiAgICAvLyBMb29rIGZvciB0aGUgZGVmYXVsdCBzdHlsZSBmaWxlIHRoYXQgaXMgZ2VuZXJhdGVkIGZvciBuZXcgcHJvamVjdHMgYnkgdGhlIEFuZ3VsYXIgQ0xJLiBUaGlzXG4gICAgLy8gZGVmYXVsdCBzdHlsZSBmaWxlIGlzIHVzdWFsbHkgY2FsbGVkIGBzdHlsZXMuZXh0YCB1bmxlc3MgaXQgaGFzIGJlZW4gY2hhbmdlZCBleHBsaWNpdGx5LlxuICAgIGNvbnN0IGRlZmF1bHRNYWluU3R5bGVQYXRoID0gc3R5bGVzLmZpbmQoZmlsZSA9PlxuICAgICAgZXh0ZW5zaW9uID8gZmlsZSA9PT0gYHN0eWxlcy4ke2V4dGVuc2lvbn1gIDogZGVmYXVsdFN0eWxlRmlsZVJlZ2V4LnRlc3QoZmlsZSksXG4gICAgKTtcblxuICAgIGlmIChkZWZhdWx0TWFpblN0eWxlUGF0aCkge1xuICAgICAgcmV0dXJuIG5vcm1hbGl6ZShkZWZhdWx0TWFpblN0eWxlUGF0aCk7XG4gICAgfVxuXG4gICAgLy8gSWYgbm8gZGVmYXVsdCBzdHlsZSBmaWxlIGNvdWxkIGJlIGZvdW5kLCB1c2UgdGhlIGZpcnN0IHN0eWxlIGZpbGUgdGhhdCBtYXRjaGVzIHRoZSBnaXZlblxuICAgIC8vIGV4dGVuc2lvbi4gSWYgbm8gZXh0ZW5zaW9uIHNwZWNpZmllZCBleHBsaWNpdGx5LCB3ZSBsb29rIGZvciBhbnkgZmlsZSB3aXRoIGEgdmFsaWQgc3R5bGVcbiAgICAvLyBmaWxlIGV4dGVuc2lvbi5cbiAgICBjb25zdCBmYWxsYmFja1N0eWxlUGF0aCA9IHN0eWxlcy5maW5kKGZpbGUgPT5cbiAgICAgIGV4dGVuc2lvbiA/IGZpbGUuZW5kc1dpdGgoYC4ke2V4dGVuc2lvbn1gKSA6IHZhbGlkU3R5bGVGaWxlUmVnZXgudGVzdChmaWxlKSxcbiAgICApO1xuXG4gICAgaWYgKGZhbGxiYWNrU3R5bGVQYXRoKSB7XG4gICAgICByZXR1cm4gbm9ybWFsaXplKGZhbGxiYWNrU3R5bGVQYXRoKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
@@ -1,39 +0,0 @@
1
- "use strict";
2
- /**
3
- * @license
4
- * Copyright Google LLC All Rights Reserved.
5
- *
6
- * Use of this source code is governed by an MIT-style license that can be
7
- * found in the LICENSE file at https://angular.dev/license
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.getProjectTargetOptions = getProjectTargetOptions;
11
- exports.getProjectBuildTargets = getProjectBuildTargets;
12
- exports.getProjectTestTargets = getProjectTestTargets;
13
- const schematics_1 = require("@angular-devkit/schematics");
14
- /** Resolves the architect options for the build target of the given project. */
15
- function getProjectTargetOptions(project, buildTarget) {
16
- const options = project.targets?.get(buildTarget)?.options;
17
- if (!options) {
18
- throw new schematics_1.SchematicsException(`Cannot determine project target configuration for: ${buildTarget}.`);
19
- }
20
- return options;
21
- }
22
- /** Gets all of the default CLI-provided build targets in a project. */
23
- function getProjectBuildTargets(project) {
24
- return getTargetsByBuilderName(project, builder => builder === '@angular-devkit/build-angular:application' ||
25
- builder === '@angular-devkit/build-angular:browser' ||
26
- builder === '@angular-devkit/build-angular:browser-esbuild' ||
27
- builder === '@angular/build:application');
28
- }
29
- /** Gets all of the default CLI-provided testing targets in a project. */
30
- function getProjectTestTargets(project) {
31
- return getTargetsByBuilderName(project, builder => builder === '@angular-devkit/build-angular:karma');
32
- }
33
- /** Gets all targets from the given project that pass a predicate check. */
34
- function getTargetsByBuilderName(project, predicate) {
35
- return Array.from(project.targets.keys())
36
- .filter(name => predicate(project.targets.get(name)?.builder))
37
- .map(name => project.targets.get(name));
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVjdC10YXJnZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay9zY2hlbWF0aWNzL3V0aWxzL3Byb2plY3QtdGFyZ2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQU1ILDBEQWFDO0FBR0Qsd0RBV0M7QUFHRCxzREFPQztBQXhDRCwyREFBK0Q7QUFFL0QsZ0ZBQWdGO0FBQ2hGLFNBQWdCLHVCQUF1QixDQUNyQyxPQUFxQyxFQUNyQyxXQUFtQjtJQUVuQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUM7SUFFM0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsTUFBTSxJQUFJLGdDQUFtQixDQUMzQixzREFBc0QsV0FBVyxHQUFHLENBQ3JFLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELHVFQUF1RTtBQUN2RSxTQUFnQixzQkFBc0IsQ0FDcEMsT0FBcUM7SUFFckMsT0FBTyx1QkFBdUIsQ0FDNUIsT0FBTyxFQUNQLE9BQU8sQ0FBQyxFQUFFLENBQ1IsT0FBTyxLQUFLLDJDQUEyQztRQUN2RCxPQUFPLEtBQUssdUNBQXVDO1FBQ25ELE9BQU8sS0FBSywrQ0FBK0M7UUFDM0QsT0FBTyxLQUFLLDRCQUE0QixDQUMzQyxDQUFDO0FBQ0osQ0FBQztBQUVELHlFQUF5RTtBQUN6RSxTQUFnQixxQkFBcUIsQ0FDbkMsT0FBcUM7SUFFckMsT0FBTyx1QkFBdUIsQ0FDNUIsT0FBTyxFQUNQLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxLQUFLLHFDQUFxQyxDQUM3RCxDQUFDO0FBQ0osQ0FBQztBQUVELDJFQUEyRTtBQUMzRSxTQUFTLHVCQUF1QixDQUM5QixPQUFxQyxFQUNyQyxTQUFnRDtJQUVoRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN0QyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDN0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFFLENBQUMsQ0FBQztBQUM3QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuZGV2L2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0pzb25WYWx1ZSwgd29ya3NwYWNlc30gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHtTY2hlbWF0aWNzRXhjZXB0aW9ufSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5cbi8qKiBSZXNvbHZlcyB0aGUgYXJjaGl0ZWN0IG9wdGlvbnMgZm9yIHRoZSBidWlsZCB0YXJnZXQgb2YgdGhlIGdpdmVuIHByb2plY3QuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvamVjdFRhcmdldE9wdGlvbnMoXG4gIHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24sXG4gIGJ1aWxkVGFyZ2V0OiBzdHJpbmcsXG4pOiBSZWNvcmQ8c3RyaW5nLCBKc29uVmFsdWUgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3Qgb3B0aW9ucyA9IHByb2plY3QudGFyZ2V0cz8uZ2V0KGJ1aWxkVGFyZ2V0KT8ub3B0aW9ucztcblxuICBpZiAoIW9wdGlvbnMpIHtcbiAgICB0aHJvdyBuZXcgU2NoZW1hdGljc0V4Y2VwdGlvbihcbiAgICAgIGBDYW5ub3QgZGV0ZXJtaW5lIHByb2plY3QgdGFyZ2V0IGNvbmZpZ3VyYXRpb24gZm9yOiAke2J1aWxkVGFyZ2V0fS5gLFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuLyoqIEdldHMgYWxsIG9mIHRoZSBkZWZhdWx0IENMSS1wcm92aWRlZCBidWlsZCB0YXJnZXRzIGluIGEgcHJvamVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9qZWN0QnVpbGRUYXJnZXRzKFxuICBwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uLFxuKTogd29ya3NwYWNlcy5UYXJnZXREZWZpbml0aW9uW10ge1xuICByZXR1cm4gZ2V0VGFyZ2V0c0J5QnVpbGRlck5hbWUoXG4gICAgcHJvamVjdCxcbiAgICBidWlsZGVyID0+XG4gICAgICBidWlsZGVyID09PSAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YXBwbGljYXRpb24nIHx8XG4gICAgICBidWlsZGVyID09PSAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YnJvd3NlcicgfHxcbiAgICAgIGJ1aWxkZXIgPT09ICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjpicm93c2VyLWVzYnVpbGQnIHx8XG4gICAgICBidWlsZGVyID09PSAnQGFuZ3VsYXIvYnVpbGQ6YXBwbGljYXRpb24nLFxuICApO1xufVxuXG4vKiogR2V0cyBhbGwgb2YgdGhlIGRlZmF1bHQgQ0xJLXByb3ZpZGVkIHRlc3RpbmcgdGFyZ2V0cyBpbiBhIHByb2plY3QuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvamVjdFRlc3RUYXJnZXRzKFxuICBwcm9qZWN0OiB3b3Jrc3BhY2VzLlByb2plY3REZWZpbml0aW9uLFxuKTogd29ya3NwYWNlcy5UYXJnZXREZWZpbml0aW9uW10ge1xuICByZXR1cm4gZ2V0VGFyZ2V0c0J5QnVpbGRlck5hbWUoXG4gICAgcHJvamVjdCxcbiAgICBidWlsZGVyID0+IGJ1aWxkZXIgPT09ICdAYW5ndWxhci1kZXZraXQvYnVpbGQtYW5ndWxhcjprYXJtYScsXG4gICk7XG59XG5cbi8qKiBHZXRzIGFsbCB0YXJnZXRzIGZyb20gdGhlIGdpdmVuIHByb2plY3QgdGhhdCBwYXNzIGEgcHJlZGljYXRlIGNoZWNrLiAqL1xuZnVuY3Rpb24gZ2V0VGFyZ2V0c0J5QnVpbGRlck5hbWUoXG4gIHByb2plY3Q6IHdvcmtzcGFjZXMuUHJvamVjdERlZmluaXRpb24sXG4gIHByZWRpY2F0ZTogKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gYm9vbGVhbixcbik6IHdvcmtzcGFjZXMuVGFyZ2V0RGVmaW5pdGlvbltdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20ocHJvamVjdC50YXJnZXRzLmtleXMoKSlcbiAgICAuZmlsdGVyKG5hbWUgPT4gcHJlZGljYXRlKHByb2plY3QudGFyZ2V0cy5nZXQobmFtZSk/LmJ1aWxkZXIpKVxuICAgIC5tYXAobmFtZSA9PiBwcm9qZWN0LnRhcmdldHMuZ2V0KG5hbWUpISk7XG59XG4iXX0=